8 releases
Uses new Rust 2024
| new 0.0.8 | May 14, 2026 |
|---|---|
| 0.0.7 | May 3, 2026 |
| 0.0.4 | Apr 14, 2026 |
| 0.0.2 | Mar 22, 2026 |
#165 in Magic Beans
83KB
2K
SLoC
eth-prices
A smol rust crate for fetching Ethereum asset prices directly from rpc.
Quickstart
cargo add eth-prices
use eth_prices::{
quoter::{Quoter, RateDirection},
asset::Asset,
};
// Define your data sources
let quoter = vec![
UniswapV2Quoter::from_selector(provider, UniswapV2Selector::Pair { pair_address }).await,
UniswapV3Quoter::from_selector(provider, UniswapV3Selector::Pool { pool_address }).await,
ERC4626Quoter::new(vault_address, provider).await,
FixedQuoter::new(fixed_rate, provider).await,
];
// Create a router
let router = QuoterGraph::new(quoters);
// Compute a route
let token_in = TokenIdentifier::ERC20 { address: address!("0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48") };
let token_out = TokenIdentifier::Fiat { symbol: "usd".to_string() };
let route = router.compute(&token_in, &token_out).await.unwrap();
// Get the latest block number
let block = provider.get_block_number().await.unwrap();
// Quote the rate
let quote = route.quote(block, amount_in).await.unwrap();
Examples
This crate has a few examples you can toy around with:
Dependencies
~9–32MB
~392K SLoC