use std::{thread::sleep, time::Duration}; use brk_parser::bitcoincore_rpc::{Client, RpcApi}; mod actions; mod databases; mod datasets; mod price; mod states; pub use actions::*; pub use databases::*; pub use datasets::*; use log::info; pub use states::*; use crate::structs::{Config, Exit}; pub fn main(config: &Config, rpc: &Client, exit: &Exit) -> color_eyre::Result<()> { loop { let block_count = rpc.get_blockchain_info().unwrap().blocks as usize; info!("{block_count} blocks found."); let mut databases = Databases::import(config); let mut datasets = Datasets::import(config)?; iter_blocks(config, rpc, block_count, exit.clone(), &mut databases, &mut datasets)?; if let Some(delay) = config.delay() { sleep(Duration::from_secs(delay)) } info!("Waiting for a new block..."); while block_count == rpc.get_blockchain_info().unwrap().blocks as usize { sleep(Duration::from_secs(1)) } } // Ok(()) }