Ethereum data types, cryptography and utilities.
It is recommended to use the utils
, types
and abi
re-exports instead of
the core
module to simplify your imports.
This library provides type definitions for Ethereum's main datatypes along with other utilities for interacting with the Ethereum ecosystem
For more information, please refer to the book.
eip712
: Provides the Eip712
trait and derive procedural macro for EIP-712 encoding of typed data.This crate re-exports the ethabi
crate's functions
under the abi
module, as well as the
secp256k1
and rand
crates for convenience.
The crate provides utilities for launching local Ethereum testnets by using
ganache-cli
via the GanacheBuilder
struct.
Calculate the UniswapV2 pair address for two ERC20 tokens:
```rust
let factory: Address = "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f".parse()?;
let tokena: Address = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48".parse()?; let tokenb: Address = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2".parse()?; let encoded = abi::encodepacked(&[Token::Address(tokena), Token::Address(token_b)])?; let salt = utils::keccak256(encoded);
let initcodehash: H256 = "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f".parse()?;
let pair = utils::getcreate2addressfromhash(factory, salt, initcodehash); let wethusdc = "0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc".parse()?; asserteq!(pair, weth_usdc);
```