Skip to main content

hive_rs/types/
chain.rs

1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6use crate::types::{Asset, Price};
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
9pub struct DynamicGlobalProperties {
10    pub head_block_number: u32,
11    pub head_block_id: String,
12    pub time: String,
13    #[serde(default)]
14    pub current_witness: Option<String>,
15    #[serde(default)]
16    pub last_irreversible_block_num: u32,
17    #[serde(default)]
18    pub total_vesting_fund_hive: Option<Asset>,
19    #[serde(default)]
20    pub total_vesting_shares: Option<Asset>,
21    #[serde(flatten)]
22    pub extra: BTreeMap<String, Value>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
26pub struct ChainProperties {
27    pub account_creation_fee: Asset,
28    pub maximum_block_size: u32,
29    pub hbd_interest_rate: u16,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
33pub struct FeedHistory {
34    #[serde(default)]
35    pub current_median_history: Option<Price>,
36    #[serde(default)]
37    pub price_history: Vec<Price>,
38    #[serde(flatten)]
39    pub extra: BTreeMap<String, Value>,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
43pub struct ScheduledHardfork {
44    pub hf_version: String,
45    pub live_time: String,
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
49pub struct RewardFund {
50    #[serde(default)]
51    pub id: Option<u32>,
52    #[serde(default)]
53    pub name: Option<String>,
54    #[serde(default)]
55    pub reward_balance: Option<Asset>,
56    #[serde(default)]
57    pub recent_claims: Option<String>,
58    #[serde(flatten)]
59    pub extra: BTreeMap<String, Value>,
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
63pub struct Version {
64    pub blockchain_version: String,
65    pub hive_revision: String,
66    pub fc_revision: String,
67}