mev-engine 0.1.1

A mev-engine for starknet
Documentation
use mev_engine::amm::pool::AutomatedMarketMaker;
use mev_engine::amm::tenkswap::pool::TenkSwapPool;
use starknet::core::types::Felt;
use starknet::providers::jsonrpc::HttpTransport;
use starknet::providers::{JsonRpcClient, Url};
use std::sync::Arc;
use tokio;

fn create_rpc_provider(
    rpc_url: &str,
) -> Result<Arc<JsonRpcClient<HttpTransport>>, Box<dyn std::error::Error>> {
    let url = Url::parse(rpc_url)?;
    let provider = JsonRpcClient::new(HttpTransport::new(url));
    Ok(Arc::new(provider))
}

#[tokio::main]
async fn main() {
    let rpc_url = "https://starknet-mainnet.public.blastapi.io/rpc/v0_7";
    let provider = create_rpc_provider(rpc_url).unwrap();

    let pool = TenkSwapPool::new_from_address(
        Felt::from_hex("0x17e9e62c04b50800d7c59454754fe31a2193c9c3c6c92c093f2ab0faadf8c87")
            .unwrap(),
        300u32,
        provider.clone(),
    )
    .await
    .unwrap();

    pool.simulate_swap(
        Felt::from_hex("0xda114221cb83fa859dbdb4c44beeaa0bb37c7537ad5ae66fe5e0efd20e6eb3").unwrap(),
        Felt::from(100u32),
        provider.clone(),
    )
    .await
    .unwrap();
}