An opinionated and blazing-fast crate for interacting with the EVM ⚡️
This crate tries to simplify the work involved with serializing and deserializing, mostly choosing to default to String, U256, and u128 types. The choice is intentional and prevents assumptions regarding deserialized data.
beta and will not follow semver until a production release. It is recommended that you pin the crate when using it to ensure that non-backward compatible changes do not affect you.
You can install this crate easily via cargo by running the command:
cargo add ethrsor, add it manually in your Cargo.toml file like:
[dependencies]
ethrs = "0.1.1"use ethrs::provider::Provider;
use ethrs::provider::Block;
use ethrs::provider::DefaultBlockParam;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let provider = Provider::new("https://rpc.ankr.com/eth");
// Get the latest block number
print!("Latest block number: {}", provider.block_number().unwrap());
// Or fetch a pending block
let pending_block: Block = provider.get_block_by_number(Some(DefaultBlockParam::PENDING), None)?.unwrap();
// More APIs available in the docs!
Ok(())
}Licensed under either of:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache-2.0 License (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.