waves_rust/model/
history_balance.rs

1use crate::error::{Error, Result};
2use crate::util::JsonDeserializer;
3use serde_json::Value;
4
5#[derive(Clone, Eq, PartialEq, Debug)]
6pub struct HistoryBalance {
7    height: u32,
8    balance: u64,
9}
10
11impl HistoryBalance {
12    pub fn new(height: u32, balance: u64) -> Self {
13        Self { height, balance }
14    }
15
16    pub fn height(&self) -> u32 {
17        self.height
18    }
19
20    pub fn balance(&self) -> u64 {
21        self.balance
22    }
23}
24
25impl TryFrom<&Value> for HistoryBalance {
26    type Error = Error;
27
28    fn try_from(value: &Value) -> Result<Self> {
29        let height = JsonDeserializer::safe_to_int_from_field(value, "height")?;
30        let balance = JsonDeserializer::safe_to_int_from_field(value, "balance")?;
31        Ok(HistoryBalance {
32            height: height as u32,
33            balance: balance as u64,
34        })
35    }
36}