use std::{error::Error, str::FromStr, sync::Arc};
use ethers::{
providers::{Http, Provider},
types::H160,
};
use cfmms::{
checkpoint::generate_checkpoint,
dex::{Dex, DexVariant},
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let rpc_endpoint = std::env::var("ETHEREUM_MAINNET_ENDPOINT")
.expect("Could not get ETHEREUM_MAINNET_ENDPOINT");
let provider = Arc::new(Provider::<Http>::try_from(rpc_endpoint).unwrap());
let dexes = vec![
Dex::new(
H160::from_str("0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac").unwrap(),
DexVariant::UniswapV2,
10794229,
Some(300),
),
];
generate_checkpoint(dexes, provider.clone(), "checkpoint.json").await?;
Ok(())
}