decode method

  1. @override
ExtrinsicMetadataV16 decode(
  1. Input input
)
override

Implementation

@override
ExtrinsicMetadataV16 decode(Input input) {
  // Decode versions as Vec<u8>
  final versions = SequenceCodec(U8Codec.codec).decode(input);

  final addressType = CompactCodec.codec.decode(input);
  final callType = CompactCodec.codec.decode(input);
  final signatureType = CompactCodec.codec.decode(input);

  // Decode BTreeMap<u8, Vec<Compact<u32>>>
  final mapLength = CompactCodec.codec.decode(input);
  final transactionExtensionsByVersion = <int, List<int>>{};
  for (var i = 0; i < mapLength; i++) {
    final key = U8Codec.codec.decode(input);
    final valueLength = CompactCodec.codec.decode(input);
    final value = <int>[];
    for (var j = 0; j < valueLength; j++) {
      value.add(CompactCodec.codec.decode(input));
    }
    transactionExtensionsByVersion[key] = value;
  }

  final transactionExtensions = SequenceCodec(TransactionExtensionMetadata.codec).decode(input);

  return ExtrinsicMetadataV16(
    versions: versions,
    addressType: addressType,
    callType: callType,
    signatureType: signatureType,
    transactionExtensionsByVersion: transactionExtensionsByVersion,
    transactionExtensions: transactionExtensions,
  );
}