sizeHint method

  1. @override
int sizeHint(
  1. UncheckedExtrinsic 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(final UncheckedExtrinsic value) {
  int size = 1; // Version byte

  switch (value.type) {
    case ExtrinsicType.signed:
      if (value.signature != null) {
        size += _signatureCodec.sizeHint(value.signature!);
      }
      break;

    case ExtrinsicType.general:
      size += 1; // Extension version byte
      if (value.extensions != null) {
        final extData = Map<String, dynamic>.from(value.extensions!);
        extData.remove('extensionVersion');
        size += _extensionsCodec.sizeHint(extData);
      }
      break;

    case ExtrinsicType.bare:
      // No additional size for bare extrinsics
      break;
  }

  size += _callCodec.sizeHint(value.call);
  return size;
}