bitcoin_blk_reader/
lib.rs1
2use bitcoin_hashes::{
3 Sha256d,
4};
5
6pub mod bitcoin_rest;
7pub use bitcoin_rest::{
8 BitcoinRest,
9 BitcoinRestError,
10};
11pub mod blk_reader;
12pub use blk_reader::{
13 BlkReader,
14};
15
16pub fn block_to_block_hash(block: &[u8]) -> [u8; 32] {
17 if block.len() < 80 {
18 panic!("Block is too short.");
19 }
20 Sha256d::hash(&block[0..80]).to_byte_array()
21}
22
23#[cfg(test)]
24mod tests {
25 use super::*;
26
27 #[test]
28 fn test_block_to_block_hash() {
29 let block = hex::decode("0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c").unwrap();
30 let mut hash = block_to_block_hash(&block);
31 hash.reverse();
32 assert_eq!(hex::encode(hash), "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f");
33 }
34
35}