#ethereum #mev #dex

bin+lib pair_sync

一个简单的库,用于获取任何支持的 Dex 中的所有对并同步储备金

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

MIT 许可证

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_atoken_b 的对。

filter_blacklisted_pools

  • Vec<Pair> 中删除任何与黑名单地址匹配的 pair_address 的对。

filter_blacklisted_addresses

  • Vec<Pair> 中删除任何与黑名单地址匹配的 token_atoken_bpair_address 的对。

filter_pools_below_usd_threshold

  • 删除任何池 USD 价值低于指定 USD 阈值的对。

filter_pools_below_weth_threshold

  • 删除任何池 USD 价值低于指定 WETH 阈值的对。

即将推出的过滤器

filter_fee_tokens

  • 删除任何 token_atoken_b 是带有转账费用的代币的对。

依赖关系

~25–39MB
~711K SLoC