Complete Ethereum & Celo library and wallet implementation in Rust. https://docs.rs/ethers
d90b03da06
* feat(provider): implement Streamed logs This utilizes eth_getFilterChanges. The stream struct must be instantiated with a factory that yields logs/hashes. Consumers are expected to use the `FilterStream` trait in order to simplify their type definitions * feat(provider): expose streaming methods * test(provider): add new blocks/pending txs test * feat(contract): allow events to be streamed * test(contract): add integration test for streaming event logs * perf(contract-factory): take abi and bytecode by value instead of reference The abi, bytecode and the factory's deploy method now consume the structs instead of being passed by reference. While this means that consumers might need to clone before using them, this gives us some more flexiblity around factories inside helper functions * refactor(contract): use test helpers to reduce code dup * chore: make clippy happy |
||
---|---|---|
.circleci | ||
ethers | ||
ethers-contract | ||
ethers-core | ||
ethers-providers | ||
ethers-signers | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
README.md
ethers.rs
Complete Ethereum wallet implementation and utilities in Rust (with WASM and FFI support).
Features
- User friendly transaction APIs
- Type-safe EIP-155 transactions
- Querying past events
- Event Monitoring
- Deploy and interact with smart contracts
- Type safe smart contract bindings
- Hardware wallet support
- CLI for creating transactions, interacting with contracts, generating bindings from ABIs (abigen equivalent), ...
- ...
Directory Structure
Acknowledgements
This library would not have been possibly without the great work of the creators of rust-web3
and ethcontract-rs
A lot of the code was inspired and adapted from them, to a unified and opinionated interface. That said, Rust-web3 is ~9k LoC (tests included) and ethcontract-rs is 11k lines, so in total about 20k lines of code with tests. This library is xxx LoC.