sizeHint method

  1. @override
int sizeHint(
  1. ExtrinsicMetadataV16 value
)
override

If possible give a hint of expected size of the encoding.

This method is used inside default implementation of encode to avoid re-allocations.

Implementation

@override
int sizeHint(ExtrinsicMetadataV16 value) {
  var size = 0;
  size += SequenceCodec(U8Codec.codec).sizeHint(value.versions);
  size += CompactCodec.codec.sizeHint(value.addressType);
  size += CompactCodec.codec.sizeHint(value.callType);
  size += CompactCodec.codec.sizeHint(value.signatureType);

  // BTreeMap size hint
  size += CompactCodec.codec.sizeHint(value.transactionExtensionsByVersion.length);
  for (final entry in value.transactionExtensionsByVersion.entries) {
    size += 1; // u8 key
    size += CompactCodec.codec.sizeHint(entry.value.length);
    for (final v in entry.value) {
      size += CompactCodec.codec.sizeHint(v);
    }
  }

  size += SequenceCodec(TransactionExtensionMetadata.codec).sizeHint(value.transactionExtensions);
  return size;
}