encode method

  1. @override
Uint8List encode(
  1. Object value
)
override

Implementation

@override
Uint8List encode(Object value) {
  final Uint8List bytes;
  if (value is Uint8List) {
    bytes = value;
  } else if (value is String) {
    var hex = value.toLowerCase().trim();
    if (hex.startsWith('0x')) {
      hex = hex.substring(2);
    }
    bytes = hexToBytes(hex);
  } else {
    throw Exception('Unsuported value type for "bytes"');
  }
  final ret = Uint8List(((bytes.length - 1) ~/ SolidityType.int32Size + 1) *
      SolidityType.int32Size);
  ret.setRange(0, bytes.length, bytes);

  final data = Uint8List.fromList(IntType.encodeFromInt(bytes.length) + ret);
  return data;
}