main/
main.rs

1use std::path::Path;
2
3use bitcoincore_rpc::{Auth, Client};
4use brk_error::Result;
5use brk_parser::Parser;
6
7#[allow(clippy::needless_doctest_main)]
8fn main() -> Result<()> {
9    let i = std::time::Instant::now();
10
11    let bitcoin_dir = Path::new(&std::env::var("HOME").unwrap())
12        .join("Library")
13        .join("Application Support")
14        .join("Bitcoin");
15
16    let rpc = Box::leak(Box::new(Client::new(
17        "http://localhost:8332",
18        Auth::CookieFile(bitcoin_dir.join(".cookie")),
19    )?));
20
21    let parser = Parser::new(bitcoin_dir.join("blocks"), rpc);
22
23    let start = None;
24    // let start = Some(916037_u32.into());
25    let end = None;
26    parser.parse(start, end).iter().for_each(|block| {
27        println!("{}: {}", block.height(), block.hash());
28    });
29
30    // let v = diff.iter().rev().take(10).collect::<Vec<_>>();
31
32    // let block_0 = parser.get(Height::new(0))?;
33    // dbg!("{}", block_0.coinbase_tag());
34
35    // let block_158251 = parser.get(Height::new(158251))?;
36    // dbg!("{}", block_158251.coinbase_tag());
37
38    // let block_173195 = parser.get(Height::new(173195))?;
39    // dbg!("{}", block_173195.coinbase_tag());
40
41    // let block_840_000 = parser.get(Height::new(840_004))?;
42    // dbg!("{}", block_840_000.coinbase_tag());
43
44    dbg!(i.elapsed());
45
46    Ok(())
47}