murray_rs/blockchain/types/
block.rs1use 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}