decode method
ABI-decode from data at byte offset.
Returns (decoded value, bytes consumed from head).
Implementation
@override
(dynamic, int) decode(Uint8List data, int offset) {
final slice = data.sublist(offset, offset + 32);
var raw = BigInt.zero;
for (final b in slice) {
raw = (raw << 8) | BigInt.from(b);
}
final mask = (BigInt.one << bits) - BigInt.one;
raw = raw & mask;
// Sign-extend if high bit set.
if (raw >= (BigInt.one << (bits - 1))) {
raw = raw - (BigInt.one << bits);
}
return (raw, 32);
}