encodePacked method

  1. @override
EncoderResult encodePacked(
  1. AbiParameter params,
  2. List input
)
override

Legacy EIP-712 encoding for tuple values. Optionally keeps the size unchanged based on the keepSize parameter.

Implementation

@override
EncoderResult encodePacked(AbiParameter params, List<dynamic> input) {
  final List<EncoderResult> encoded = [];
  if (input.length != params.components.length) {
    throw const SolidityAbiException('Invalid argument length detected.');
  }
  for (int i = 0; i < params.components.length; i++) {
    final paramComponent = params.components[i];
    final EncoderResult result = paramComponent.encodePacked(input[i]);
    encoded.add(result);
  }
  return EncoderResult(
    isDynamic: false,
    encoded: encoded.expand((e) => e.encoded).toList(),
    name: params.name,
  );
}