A Rust library and CLI for encoding and decoding Ethereum smart contract ABI calls and events.
ethabi is a Rust library and command-line tool for encoding and decoding data according to the Ethereum Application Binary Interface (ABI). It converts function calls and parameters into the binary format required by the Ethereum Virtual Machine (EVM) and parses contract outputs and event logs back into human-readable types. This enables interaction with Ethereum smart contracts from Rust applications or via the terminal.
Rust developers building decentralized applications, wallets, or tools that need to communicate with Ethereum-based smart contracts, particularly those requiring strict ABI compliance.
Developers choose ethabi for its strict adherence to the Ethereum ABI specification, prioritizing correctness and reliability over supporting invalid or buggy ABIs. It provides a robust foundation for Ethereum development in the Rust ecosystem with support for complex data types like tuples, arrays, and nested structures.
Encode and decode smart contract invocations
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Emphasizes only valid ABIs from recent Solidity versions, ensuring correctness and reliability as per the project's philosophy.
Handles complex data types like tuples, arrays, and nested structures, demonstrated in examples with tuples and arrays.
Includes a command-line interface for direct encoding and decoding operations, useful for scripting and testing, as shown in the usage examples.
Provides extensive examples and clear usage instructions in the README, making it easier to implement for specific ABI tasks.
The project is explicitly stated as not actively maintained, meaning no updates, bug fixes, or support for new Ethereum features.
Focuses solely on ABI handling, requiring integration with other libraries for complete Ethereum interaction, which adds complexity.
Does not support invalid or buggy ABIs, necessitating pre-processing for non-standard cases, as admitted in the disclaimer.