Complete Ethereum & Celo library and wallet implementation in Rust. https://docs.rs/ethers
Go to file
Georgios Konstantopoulos d90b03da06
Add streamed logs to the provider (#9)
* 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
2020-06-15 11:46:07 +03:00
.circleci Add streamed logs to the provider (#9) 2020-06-15 11:46:07 +03:00
ethers Add streamed logs to the provider (#9) 2020-06-15 11:46:07 +03:00
ethers-contract Add streamed logs to the provider (#9) 2020-06-15 11:46:07 +03:00
ethers-core Add streamed logs to the provider (#9) 2020-06-15 11:46:07 +03:00
ethers-providers Add streamed logs to the provider (#9) 2020-06-15 11:46:07 +03:00
ethers-signers docs(crate): further expand the docs 2020-06-11 11:41:41 +03:00
.gitignore lock 2020-05-24 19:33:24 +03:00
Cargo.lock Add streamed logs to the provider (#9) 2020-06-15 11:46:07 +03:00
Cargo.toml refactor: pull crates to root dir 2020-06-01 21:24:22 +03:00
README.md progress 2020-05-27 01:41:27 +03:00

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.