chia_sdk_coinset/
models.rs

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}