bitcoin-blk-reader 0.0.3

Bitcoin blk*.dat reader
Documentation

use bitcoin_hashes::{
    Sha256d,
};

pub mod bitcoin_rest;
pub use bitcoin_rest::{
    BitcoinRest,
    BitcoinRestError,
};
pub mod blk_reader;
pub use blk_reader::{
    BlkReader,
};

pub fn block_to_block_hash(block: &[u8]) -> [u8; 32] {
    if block.len() < 80 {
        panic!("Block is too short.");
    }
    Sha256d::hash(&block[0..80]).to_byte_array()
}

#[cfg(test)]
mod tests {
    use super::*;
    
    #[test]
    fn test_block_to_block_hash() {
        let block = hex::decode("0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c").unwrap();
        let mut hash = block_to_block_hash(&block);
        hash.reverse();
        assert_eq!(hex::encode(hash), "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f");
    }
    
}