web3_universal_abi 0.1.1 copy "web3_universal_abi: ^0.1.1" to clipboard
web3_universal_abi: ^0.1.1 copied to clipboard

Ethereum Contract ABI encoding and decoding for Web3 Universal SDK.

example/main.dart

import 'package:web3_universal_abi/web3_universal_abi.dart';
import 'package:web3_universal_core/web3_universal_core.dart';

void main() {
  // Define a simple function signature
  final abi = 'transfer(address,uint256)';
  // Define types
  final types = [AbiUint(256), AbiString()];

  // Define values
  final values = [BigInt.from(123), 'Hello World'];

  // Encode
  final encoded = AbiEncoder.encode(types, values);
  print('Encoded: ${HexUtils.encode(encoded)}');

  // Decode
  final decoded = AbiDecoder.decode(types, encoded);
  print('Decoded: $decoded');

  // Decode data
  // Parse parameter types from signature
  final paramsStr = abi.substring(abi.indexOf('(') + 1, abi.lastIndexOf(')'));
  final tuple = AbiParser.parseType('($paramsStr)') as AbiTuple;

  // Skip 4-byte selector when decoding arguments
  final decodedParams = AbiDecoder.decode(tuple.components, encoded.sublist(4));
  print('Decoded Address: ${decodedParams[0]}');
  print('Decoded Amount: ${decodedParams[1]}');
}
0
likes
150
points
149
downloads

Publisher

unverified uploader

Weekly Downloads

Ethereum Contract ABI encoding and decoding for Web3 Universal SDK.

Homepage
Repository (GitHub)
View/report issues

Topics

#web3 #ethereum #abi #solidity

Documentation

API reference

License

MIT (license)

Dependencies

convert, web3_universal_core, web3_universal_crypto

More

Packages that depend on web3_universal_abi