decode method
Decodes a byte array from the given ABI-encoded bytes.
Implementation
@override
DecoderResult<List<int>> decode(AbiParameter params, List<int> bytes) {
int partsCount = 1;
int consumed = 0;
List<int> remainingBytes = List<int>.from(bytes);
int? size = ABIUtils._bytesSize(params.type);
if (size == null) {
final decode = const NumbersCoder().decode(
AbiParameter.uint32,
remainingBytes,
);
consumed = decode.consumed;
size = decode.result.toInt();
partsCount = (size / ABIConst.uintBytesLength).ceil();
remainingBytes = bytes.sublist(decode.consumed);
}
_ABIValidator.validateBytesLength(bytes, size);
return DecoderResult(
result: remainingBytes.sublist(0, size),
consumed: consumed + partsCount * ABIConst.uintBytesLength,
name: params.name,
);
}