Sync pairs and simulate swaps with constant function market makers on Ethereum.
Filename: examples/sync-pairs.rs ```rust
async fn main() -> Result<(), Box
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 | Status | |----------|------| | UniswapV2 variants | ✅|| | UniswapV3 | ✅||
To run any of the examples, supply your node endpoint to the endpoint variable in each example file. For example in sync-pairs.rs:
rust
//Add rpc endpoint here:
let rpc_endpoint = "";
Once you have supplied a node endpoint, you can simply run cargo run --example <example_name>.
filter_blacklisted_tokensVec<Pair> where either token_a or token_b matches a blacklisted address.filter_blacklisted_poolsVec<Pair> where the pair_address matches a blacklisted address.filter_blacklisted_addressesVec<Pair> where either token_a, token_b or the pair_address matches a blacklisted address.filter_pools_below_usd_thresholdfilter_pools_below_weth_thresholdfilter_fee_tokenstoken_a or token_b is a token with fee on transfer.