pair_sync

Crates.iopair_sync
lib.rspair_sync
version0.4.3
sourcesrc
created_at2022-09-18 17:58:30.039918
updated_at2022-11-30 18:39:28.564339
descriptionA simple library to get all pairs from any supported Dex and sync reserves.
homepagehttps://github.com/0xKitsune/pair_sync
repositoryhttps://github.com/0xKitsune/pair_sync
max_upload_size
id668745
size167,226
(0xKitsune)

documentation

README

pair_sync

A simple library to get all pairs from any supported Dex and sync reserves.

Filename: 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(())
}

Supported Dexes

Dex Status
UniswapV2 variants
UniswapV3

Running Examples

To run any of the examples, supply your node endpoint to the endpoint variable in each example file. For example in sync-pairs.rs:

    //Add rpc endpoint here:
    let rpc_endpoint = "";

Once you have supplied a node endpoint, you can simply run cargo run --example <example_name>.

Filters

filter_blacklisted_tokens

  • Removes any pair from a Vec<Pair> where either token_a or token_b matches a blacklisted address.

filter_blacklisted_pools

  • Removes any pair from a Vec<Pair> where the pair_address matches a blacklisted address.

filter_blacklisted_addresses

  • Removes any pair from a Vec<Pair> where either token_a, token_b or the pair_address matches a blacklisted address.

filter_pools_below_usd_threshold

  • Removes any pair where the USD value of the pool is below the specified USD threshold.

filter_pools_below_weth_threshold

  • Removes any pair where the USD value of the pool is below the specified WETH threshold.

Upcoming Filters

filter_fee_tokens

  • Removes any pair where where either token_a or token_b is a token with fee on transfer.

Commit count: 362

cargo fmt