murray_rs/blockchain/types/
block.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Deserialize, Serialize, Debug)]
4pub struct Block2Time {
5  pub timestamp: u64,
6  pub height: u32,
7  pub in_future: bool,
8}
9
10#[derive(Deserialize, Serialize, Debug)]
11pub struct Pool {
12  pub id: u64,
13  pub name: String,
14  pub slug: String,
15}
16
17#[derive(Deserialize, Serialize, Debug)]
18#[serde(rename_all = "camelCase")]
19pub struct Extras {
20  pub avg_fee: Option<f64>,
21  pub avg_fee_rate: Option<f64>,
22  pub avg_tx_size: Option<f64>,
23  pub coinbase_address: Option<String>,
24  pub coinbase_raw: Option<String>,
25  pub coinbase_signature: Option<String>,
26  pub coinbase_signature_ascii: Option<String>,
27  pub expected_fees: Option<u64>,
28  pub expected_weight: Option<u64>,
29  pub fee_percentiles: Option<Vec<f64>>,
30  pub fee_range: Option<Vec<f64>>,
31  pub header: Option<String>,
32  pub match_rate: Option<f64>,
33  pub median_fee: Option<f64>,
34  pub median_fee_amt: Option<f64>,
35  pub orphans: Option<Vec<Block>>,
36  pub pool: Option<Pool>,
37  pub reward: Option<u64>,
38  pub segwit_total_size: Option<u64>,
39  pub segwit_total_txs: Option<u64>,
40  pub segwit_total_weight: Option<u64>,
41  pub similarity: Option<f64>,
42  pub total_fees: Option<u64>,
43  pub total_input_amt: Option<f64>,
44  pub total_inputs: Option<u64>,
45  pub total_output_amt: Option<u64>,
46  pub total_outputs: Option<u64>,
47  pub utxo_set_change: Option<f64>,
48  pub utxo_set_size: Option<f64>,
49  pub virtual_size: Option<f64>,
50}
51
52#[derive(Deserialize, Serialize, Debug)]
53pub struct Block {
54  pub id: String,
55  pub height: u32,
56  pub version: u32,
57  pub timestamp: u32,
58  pub bits: u32,
59  pub nonce: u32,
60  pub difficulty: f64,
61  pub merkle_root: String,
62  pub tx_count: u16,
63  pub size: u32,
64  pub weight: u32,
65  pub previousblockhash: String,
66  pub mediantime: u32,
67}