code: public static void decode(TransactionEdit dest, DataInput in) throws IOException {
      byte version = in.readByte();
      TransactionEditCodec codec = CODECS.get(version);
      if (codec == null) {
        throw new IOException("TransactionEdit was serialized with an unknown codec version " + version +
            ". Was it written with a newer version of Tephra?");
      }
      codec.decode(dest, in);
    }
docs: Deserializes the encoded data from the given input stream, setting the values as fields
  on the given {@code TransactionEdit} instances.  This method expects first value in the
  {code DataInput} to be a byte representing the codec version used to serialize the instance.
  
  @param dest the transaction edit to populate with the deserialized values
  @param in the input stream containing the encoded data
  @throws IOException if an error occurs while deserializing from the input stream