lwk/blockdata/
block_header.rs

1//! Liquid block header
2
3use elements::BlockHeader as ElementsBlockHeader;
4
5/// Wrapper over [`elements::BlockHeader`]
6#[derive(uniffi::Object, Debug, Clone)]
7pub struct BlockHeader {
8    inner: ElementsBlockHeader,
9}
10
11impl From<ElementsBlockHeader> for BlockHeader {
12    fn from(inner: ElementsBlockHeader) -> Self {
13        BlockHeader { inner }
14    }
15}
16
17impl From<BlockHeader> for ElementsBlockHeader {
18    fn from(value: BlockHeader) -> Self {
19        value.inner
20    }
21}
22
23#[uniffi::export]
24impl BlockHeader {
25    /// Get the block hash
26    pub fn block_hash(&self) -> String {
27        self.inner.block_hash().to_string()
28    }
29
30    /// Get the previous block hash
31    pub fn prev_blockhash(&self) -> String {
32        self.inner.prev_blockhash.to_string()
33    }
34
35    /// Get the merkle root
36    pub fn merkle_root(&self) -> String {
37        self.inner.merkle_root.to_string()
38    }
39
40    /// Get the block timestamp
41    pub fn time(&self) -> u32 {
42        self.inner.time
43    }
44
45    /// Get the block version
46    pub fn version(&self) -> u32 {
47        self.inner.version
48    }
49
50    /// Get the block height
51    pub fn height(&self) -> u32 {
52        self.inner.height
53    }
54}