1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use crate::response::Transaction;

#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Block {
    #[serde(rename = "blockID")]
    pub block_id: String,
    #[serde(rename = "block_header")]
    pub block_header: BlockHeader,
    #[serde(default)]
    pub transactions: Vec<Transaction>,
}

#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BlockHeader {
    #[serde(rename = "raw_data")]
    pub raw_data: RawData,
    #[serde(rename = "witness_signature")]
    pub witness_signature: String,
}

#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RawData {
    pub number: i64,
    pub tx_trie_root: String,
    #[serde(rename = "witness_address")]
    pub witness_address: String,
    pub parent_hash: String,
    pub timestamp: i64,
}