/** * Deserializes a transaction. * * @param options The deserialization options. * @param deserializer The deserializer. * @return The deserialized transaction. */ private static Transaction deserialize( final VerifiableEntity.DeserializationOptions options, final Deserializer deserializer) { final int type = deserializer.readInt("type"); final BiFunction<VerifiableEntity.DeserializationOptions, Deserializer, Transaction> constructor = TYPE_TO_CONSTRUCTOR_MAP.getOrDefault(type, null); if (null == constructor) { throw new IllegalArgumentException("Unknown transaction type: " + type); } return constructor.apply(options, deserializer); }