encodeTo method

  1. @override
void encodeTo(
  1. ExtrinsicMetadataV16 value,
  2. Output output
)
override

Convert self to a slice and append it to the destination.

Implementation

@override
void encodeTo(ExtrinsicMetadataV16 value, Output output) {
  // Encode versions as Vec<u8>
  SequenceCodec(U8Codec.codec).encodeTo(value.versions, output);

  CompactCodec.codec.encodeTo(value.addressType, output);
  CompactCodec.codec.encodeTo(value.callType, output);
  CompactCodec.codec.encodeTo(value.signatureType, output);

  // Encode BTreeMap<u8, Vec<Compact<u32>>>
  final entries = value.transactionExtensionsByVersion.entries.toList()
    ..sort((a, b) => a.key.compareTo(b.key));

  CompactCodec.codec.encodeTo(entries.length, output);
  for (final entry in entries) {
    U8Codec.codec.encodeTo(entry.key, output);
    CompactCodec.codec.encodeTo(entry.value.length, output);
    for (final v in entry.value) {
      CompactCodec.codec.encodeTo(v, output);
    }
  }

  SequenceCodec(TransactionExtensionMetadata.codec).encodeTo(value.transactionExtensions, output);
}