master

Master Thesis code
git clone git://popovic.xyz/master.git
Log | Files | Refs | README | LICENSE

main.rs (2274B)


      1 #![allow(dead_code)]
      2 #![allow(unused_variables)]
      3 #![allow(unused_imports)]
      4 
      5 use alloy::{
      6     eips::BlockId,
      7     providers::{Provider, ProviderBuilder, WsConnect}, transports::http::reqwest::Url,
      8 };
      9 use arrow::compute::filter;
     10 use dotenv::dotenv;
     11 use log::info;
     12 use std::path::Path;
     13 use anyhow::{anyhow, Result};
     14 use std::str::FromStr;
     15 use std::sync::Arc;
     16 
     17 use block_extractor_rs::{
     18     interfaces::*,
     19     tokens::*,
     20     pools::*,
     21     prices::*,
     22 };
     23 
     24 use std::fs::File;
     25 use parquet::file::reader::{FileReader, SerializedFileReader};
     26 
     27 
     28 #[tokio::main]
     29 async fn main() -> Result<()> {
     30 
     31     dotenv().ok();
     32     env_logger::init();
     33 
     34 //    let rpc_url = std::env::var("WSS_URL")?;
     35 //    let ws = WsConnect::new(rpc_url);
     36 //    let provider = ProviderBuilder::new().on_ws(ws).await?;
     37 
     38     let https_url = std::env::var("HTTPS_URL").unwrap();
     39     let provider = ProviderBuilder::new().on_builtin(
     40         https_url.as_str()
     41     ).await?;
     42 
     43 //    let block_number = BlockId::from(provider.get_block_number().await.unwrap());
     44 //    let from_block_number = 10000835;
     45 //    let chunks = 50000;
     46 //    let (pools, pool_id) = load_pools(
     47 //        provider.clone(),
     48 //        Path::new("../data/pools.csv"),
     49 //        from_block_number,
     50 //        chunks,
     51 //    ).await.unwrap();
     52 //
     53 //    let parallel_tokens = 1;
     54 //    let tokens = load_tokens(
     55 //        provider.clone(),
     56 //        Path::new("../data/tokens.csv"),
     57 //        &pools,
     58 //        parallel_tokens,
     59 //        pool_id,
     60 //    ).await.unwrap();
     61 //
     62     let filtered_pools = load_pools_from_file(
     63         Path::new("../data/pools/pools_deg_5_liq_100_block_18_grad.csv"),
     64     ).unwrap();
     65 
     66     let tokens = load_tokens_from_file(
     67         Path::new("../data/tokens/tokens.csv"),
     68     ).unwrap();
     69 
     70     info!("#fltered_pools {:?}", filtered_pools.len());
     71     info!("#tokens {:?}", tokens.len());
     72 
     73     let p_to_block = provider.get_block_number().await?;
     74     let p_from_block = 18000000;
     75     let block_gap = 3600; // approx 12 hours
     76 
     77     let prices = load_prices(
     78         provider.clone(),
     79         &filtered_pools,
     80         p_from_block,
     81         p_to_block,
     82         block_gap,
     83         Path::new("../data/prices/prices_deg_5_liq_100_block_18_grad.parquet")
     84     ).await.unwrap();
     85 
     86     info!("Done len prices: {:?}", prices.len());
     87 
     88     Ok(())
     89 
     90 }