1use chia_protocol::{BlockRecord, Bytes32, CoinSpend, FullBlock};
2use serde::Deserialize;
3
4use crate::{CoinRecord, MempoolItem};
5
6#[derive(Deserialize, Debug, Clone)]
7pub struct BlockchainStateResponse {
8 pub blockchain_state: Option<BlockchainState>,
9 pub error: Option<String>,
10 pub success: bool,
11}
12
13#[derive(Deserialize, Debug, Clone)]
14pub struct BlockchainState {
15 pub average_block_time: u64,
16 pub block_max_cost: u64,
17 pub difficulty: u64,
18 pub genesis_challenge_initialized: bool,
19 pub mempool_cost: u64,
20 pub mempool_fees: u64,
21 pub mempool_max_total_cost: u64,
22 pub mempool_min_fees: MempoolMinFees,
23 pub mempool_size: u32,
24 pub node_id: Bytes32,
25 pub peak: BlockRecord,
26 pub space: u128,
27 pub sub_slot_iters: u64,
28 pub sync: SyncState,
29}
30
31#[derive(Deserialize, Debug, Clone, Copy)]
32pub struct MempoolMinFees {
33 pub cost_5000000: u64,
34}
35
36#[derive(Deserialize, Debug, Clone, Copy)]
37pub struct SyncState {
38 pub sync_mode: bool,
39 pub sync_progress_height: u32,
40 pub sync_tip_height: u32,
41 pub synced: bool,
42}
43
44#[derive(Deserialize, Debug, Clone)]
45pub struct AdditionsAndRemovalsResponse {
46 pub additions: Option<Vec<CoinRecord>>,
47 pub removals: Option<Vec<CoinRecord>>,
48 pub error: Option<String>,
49 pub success: bool,
50}
51
52#[derive(Deserialize, Debug, Clone)]
53pub struct GetBlockResponse {
54 pub block: Option<FullBlock>,
55 pub error: Option<String>,
56 pub success: bool,
57}
58
59#[derive(Deserialize, Debug, Clone)]
60pub struct GetBlockRecordResponse {
61 pub block_record: Option<BlockRecord>,
62 pub error: Option<String>,
63 pub success: bool,
64}
65
66pub type GetBlockRecordByHeightResponse = GetBlockRecordResponse;
67
68#[derive(Deserialize, Debug, Clone)]
69pub struct GetBlockRecordsResponse {
70 pub block_records: Option<Vec<BlockRecord>>,
71 pub error: Option<String>,
72 pub success: bool,
73}
74
75#[derive(Deserialize, Debug, Clone)]
76pub struct GetBlocksResponse {
77 pub blocks: Option<Vec<FullBlock>>,
78 pub error: Option<String>,
79 pub success: bool,
80}
81
82#[derive(Deserialize, Debug, Clone)]
83pub struct GetBlockSpendsResponse {
84 pub block_spends: Option<Vec<CoinSpend>>,
85 pub error: Option<String>,
86 pub success: bool,
87}
88
89#[derive(Deserialize, Debug, Clone)]
90pub struct GetCoinRecordResponse {
91 pub coin_record: Option<CoinRecord>,
92 pub error: Option<String>,
93 pub success: bool,
94}
95
96#[derive(Deserialize, Debug, Clone)]
97pub struct GetCoinRecordsResponse {
98 pub coin_records: Option<Vec<CoinRecord>>,
99 pub error: Option<String>,
100 pub success: bool,
101}
102
103#[derive(Deserialize, Debug, Clone)]
104pub struct GetPuzzleAndSolutionResponse {
105 pub coin_solution: Option<CoinSpend>,
106 pub error: Option<String>,
107 pub success: bool,
108}
109
110#[derive(Deserialize, Debug, Clone)]
111pub struct PushTxResponse {
112 pub status: String,
113 pub error: Option<String>,
114 pub success: bool,
115}
116
117#[derive(Deserialize, Debug, Clone)]
118pub struct GetNetworkInfoResponse {
119 pub network_name: Option<String>,
120 pub network_prefix: Option<String>,
121 pub genesis_challenge: Option<Bytes32>,
122 pub error: Option<String>,
123 pub success: bool,
124}
125
126#[derive(Deserialize, Debug, Clone)]
127pub struct GetMempoolItemResponse {
128 pub mempool_item: Option<MempoolItem>,
129 pub error: Option<String>,
130 pub success: bool,
131}
132
133#[derive(Deserialize, Debug, Clone)]
134pub struct GetMempoolItemsResponse {
135 pub mempool_items: Option<Vec<MempoolItem>>,
136 pub error: Option<String>,
137 pub success: bool,
138}