openbook-candles/candle-creator/src/main.rs

58 lines
1.6 KiB
Rust
Raw Normal View History

2023-03-11 14:50:22 -08:00
use crate::{
database::{fetchers::fetch_latest_finished_candle, Resolution},
trade_fetching::{parsing::OpenBookFillEventLog, scrape::fetch_market_infos},
utils::Config,
};
use database::{
database::{connect_to_database, setup_database},
fetchers::fetch_earliest_fill,
};
use dotenv;
2023-03-11 14:50:22 -08:00
use solana_sdk::pubkey::Pubkey;
2023-03-05 22:52:42 -08:00
use tokio::sync::mpsc;
2023-03-11 14:50:22 -08:00
mod candle_batching;
2023-03-05 22:52:42 -08:00
mod database;
mod trade_fetching;
mod utils;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
dotenv::dotenv().ok();
let rpc_url: String = dotenv::var("RPC_URL").unwrap();
let database_url: String = dotenv::var("DATABASE_URL").unwrap();
let config = Config {
rpc_url,
database_url,
max_pg_pool_connections: 5,
2023-03-05 22:52:42 -08:00
};
2023-03-09 20:54:51 -08:00
let markets = utils::load_markets("/Users/dboures/dev/openbook-candles/markets.json");
let market_infos = fetch_market_infos(&config, markets).await?;
2023-03-11 14:50:22 -08:00
println!("{:?}", market_infos);
2023-03-05 22:52:42 -08:00
let pool = connect_to_database(&config).await?;
2023-03-11 14:50:22 -08:00
// setup_database(&pool, market_infos).await?;
2023-03-05 22:52:42 -08:00
2023-03-11 14:50:22 -08:00
// let (fill_sender, fill_receiver) = mpsc::channel::<OpenBookFillEventLog>(1000);
2023-03-05 22:52:42 -08:00
// tokio::spawn(async move {
2023-03-11 14:50:22 -08:00
// trade_fetching::scrape::scrape(&config, fill_sender.clone()).await;
// });
2023-03-11 14:50:22 -08:00
// database::database::handle_fill_events(&pool, fill_receiver).await;
2023-03-05 22:52:42 -08:00
// trade_fetching::websocket::listen_logs().await?;
2023-03-11 14:50:22 -08:00
candle_batching::batcher::batch_candles(&pool, market_infos).await;
2023-03-05 22:52:42 -08:00
Ok(())
}
// use getconfirmedsignaturesforaddres2 to scan txns
// find filleventlog events
// parse trade data
// persist the last 3 months on differnet timescales