abi/abi library

A Dart library for working with Ethereum ABI (Application Binary Interface), EIP-712 (Ethereum Improvement Proposal 712), and related utilities.

This library provides various components, including ABIs for different data types like addresses, arrays, booleans, bytes, numbers, strings, tuples, and functions. It also includes utilities for Ethereum EIP-712, and common blockchain-related functionality.

The library is structured into different parts, each corresponding to a specific category or type. The utils part contains general utility functions, and other parts contain implementations for specific types and standards.

Parts:

  • utils: General utility functions used across the library.
  • address: Implements ABIs for Ethereum and Tron addresses.
  • array: Implements ABIs for arrays.
  • boolean: Implements ABIs for boolean values.
  • bytes: Implements ABIs for byte arrays.
  • numbers: Implements ABIs for numeric types.
  • string: Implements ABIs for string values.
  • tuple: Implements ABIs for tuples.
  • function: Implements ABIs for function calls.
  • core: Contains the core ABIs and utility functions.
  • eip712: Implements support for Ethereum EIP-712 standard.
  • eip712/utils: Utilities specific to Ethereum EIP-712.

Classes

ABICoder<T>
Solidity contract for encoding and decoding data according to Ethereum ABI specifications.
ABIConst
Constants used in the Ethereum ABI (Application Binary Interface).
AbiParameter
AddressCoder
ABICoder implementation for encoding and decoding Ethereum and Tron addresses.
ArrayCoder
ABICoder implementation for encoding and decoding arrays of arbitrary types.
BooleanCoder
ABICoder implementation for encoding and decoding boolean values.
BytesCoder
ABICoder implementation for encoding and decoding byte arrays.
DecoderResult<T>
Represents the result of decoding data using ABI decoding.
EIP712Base
Abstract base class for encoding data according to the Ethereum Improvement Proposal (EIP) 712 specification.
EIP712Legacy
Represents a typed data structure for EIP-712 version 1. This class implements the EIP712Base interface for encoding data according to EIP-712 specifications.
Eip712TypedData
Represents typed data for EIP-712, implementing the EIP712Base interface.
Eip712TypedDataV1
Represents a typed data field for EIP-712 version 1. This class is used to create instances of typed data fields with specified type, name, and value.
Eip712TypeDetails
Represents details about a type used in EIP-712 encoding.
EIP712Version
Represents different versions of the Ethereum Improvement Proposal (EIP) 712 specification.
EncoderResult
Represents the result of encoding data using ABI encoding.
FunctionCoder
ABICoder implementation for encoding and decoding function signatures (bytes).
NumbersCoder
ABICoder implementation for encoding and decoding numeric types represented by BigInt.
StringCoder
ABICoder implementation for encoding and decoding string types.
TupleCoder
ABICoder implementation for encoding and decoding tuple types.