blockbook

Crates.ioblockbook
lib.rsblockbook
version0.2.0
sourcesrc
created_at2023-05-16 08:03:43.236539
updated_at2023-11-28 10:47:50.864118
descriptionA robust and blazing fast blockbook blockexporer client
homepagehttps://21analytics.ch
repositoryhttps://gitlab.com/21analytics/blockbook
max_upload_size
id865878
size228,353
Dominik Spicher (dspicher)

documentation

https://docs.rs/blockbook/

README

Rust Blockbook client

Crates.io Documentation

blockbook is a Rust client for the Blockbook block explorer.

It provides both REST and WebSocket clients to access Blockbook APIs in a type-safe manner.

Usage example

#[tokio::main]
async fn main() {
    let client = blockbook::Client::new("https://myblockbook.com".parse().unwrap());

    // query the Genesis block hash
    let genesis_hash = client
        .block_hash(blockbook::Height::from_consensus(0).unwrap())
        .await?;
    assert_eq!(
        genesis_hash.to_string(),
        "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"
    );

    // query the full block
    let genesis = client.block_by_hash(&genesis_hash).await?;
    assert_eq!(genesis.previous_block_hash, None);

    // inspect the first coinbase transaction
    let tx = genesis.txs.get(0).unwrap();
    assert!((tx.vout.get(0).unwrap().value.to_btc() - 50.0).abs() < f64::EPSILON);
}

See the crate documentation for more examples.

Supported Blockbook version

The currently supported version of Blockbook is commit 95ee9b5b.

Supported currencies

Currently, blockbook only provides Bitcoin-specific APIs.

Running the tests

All tests need a BLOCKBOOK_SERVER environment variable set:

BLOCKBOOK_SERVER=myblockbook.com cargo test -- --include-ignored

Authors

This crate is developed and maintained by 21 Analytics.

License

This project is licensed under the MIT license.

Commit count: 69

cargo fmt