main/
main.rs

1use bitcoincore_rpc::{Auth, Client};
2use brk_core::{Height, default_bitcoin_path};
3use brk_parser::Parser;
4
5fn main() {
6    let i = std::time::Instant::now();
7
8    let bitcoin_dir = default_bitcoin_path();
9
10    let rpc = Box::leak(Box::new(
11        Client::new(
12            "http://localhost:8332",
13            Auth::CookieFile(bitcoin_dir.join(".cookie")),
14        )
15        .unwrap(),
16    ));
17
18    let start = None;
19    let end = None;
20
21    let parser = Parser::new(bitcoin_dir.join("blocks"), rpc);
22
23    parser
24        .parse(start, end)
25        .iter()
26        .for_each(|(height, _block, hash)| {
27            println!("{height}: {hash}");
28        });
29
30    println!(
31        "{}",
32        parser
33            .get(Height::new(0))
34            .txdata
35            .first()
36            .unwrap()
37            .output
38            .first()
39            .unwrap()
40            .script_pubkey
41    );
42
43    println!(
44        "{}",
45        parser
46            .get(Height::new(840_000))
47            .txdata
48            .first()
49            .unwrap()
50            .output
51            .first()
52            .unwrap()
53            .value
54    );
55
56    dbg!(i.elapsed());
57}