7 个不稳定版本 (3 个破坏性更新)
0.4.3 | 2022 年 11 月 30 日 |
---|---|
0.4.2 | 2022 年 11 月 30 日 |
0.3.1 | 2022 年 11 月 24 日 |
0.2.0 | 2022 年 10 月 1 日 |
0.1.1 | 2022 年 9 月 19 日 |
#4 在 #mev
88KB
2K SLoC
pair_sync
一个简单的库,用于获取任何支持的 Dex 中的所有对并同步储备金。
文件名:examples/sync-pairs.rs
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
//Add rpc endpoint here:
let rpc_endpoint = "";
let provider = Arc::new(Provider::<Http>::try_from(rpc_endpoint).unwrap());
let mut dexes = vec![];
//Add UniswapV2
dexes.push(Dex::new(
//Specify the factory address
H160::from_str("0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f").unwrap(),
//Specify the dex variant
DexVariant::UniswapV2,
//Specify the factory contract's creation block number
2638438,
));
//Add Sushiswap
dexes.push(Dex::new(
H160::from_str("0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac").unwrap(),
DexVariant::UniswapV2,
10794229,
));
//Add UniswapV3
dexes.push(Dex::new(
H160::from_str("0x1F98431c8aD98523631AE4a59f267346ea31F984").unwrap(),
DexVariant::UniswapV3,
12369621,
));
//Sync pairs
sync::sync_pairs(dexes, provider).await?;
Ok(())
}
支持的 Dex
Dex | 状态 |
---|---|
UniswapV2 变体 | ✅ |
UniswapV3 | ✅ |
运行示例
要运行任何示例,请将节点端点提供给每个示例文件中的 endpoint 变量。例如,在 sync-pairs.rs
//Add rpc endpoint here:
let rpc_endpoint = "";
提供节点端点后,您可以直接运行 cargo run --example <example_name>
。
过滤器
filter_blacklisted_tokens
- 从
Vec<Pair>
中删除任何与黑名单地址匹配的token_a
或token_b
的对。
filter_blacklisted_pools
- 从
Vec<Pair>
中删除任何与黑名单地址匹配的pair_address
的对。
filter_blacklisted_addresses
- 从
Vec<Pair>
中删除任何与黑名单地址匹配的token_a
、token_b
或pair_address
的对。
filter_pools_below_usd_threshold
- 删除任何池 USD 价值低于指定 USD 阈值的对。
filter_pools_below_weth_threshold
- 删除任何池 USD 价值低于指定 WETH 阈值的对。
即将推出的过滤器
filter_fee_tokens
- 删除任何
token_a
或token_b
是带有转账费用的代币的对。
依赖关系
~25–39MB
~711K SLoC