stellar_xdr/generated/
ledger_header.rs1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4#[cfg_attr(feature = "alloc", derive(Default))]
49#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
50#[cfg_attr(feature = "serde", cfg_eval::cfg_eval)]
51#[cfg_attr(feature = "arbitrary", derive(Arbitrary))]
52#[cfg_attr(
53 all(feature = "serde", feature = "alloc"),
54 serde_with::serde_as,
55 derive(serde::Serialize, serde::Deserialize),
56 serde(rename_all = "snake_case")
57)]
58#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
59pub struct LedgerHeader {
60 pub ledger_version: u32,
61 pub previous_ledger_hash: Hash,
62 pub scp_value: StellarValue,
63 pub tx_set_result_hash: Hash,
64 pub bucket_list_hash: Hash,
65 pub ledger_seq: u32,
66 #[cfg_attr(
67 all(feature = "serde", feature = "alloc"),
68 serde_as(as = "NumberOrString")
69 )]
70 pub total_coins: i64,
71 #[cfg_attr(
72 all(feature = "serde", feature = "alloc"),
73 serde_as(as = "NumberOrString")
74 )]
75 pub fee_pool: i64,
76 pub inflation_seq: u32,
77 #[cfg_attr(
78 all(feature = "serde", feature = "alloc"),
79 serde_as(as = "NumberOrString")
80 )]
81 pub id_pool: u64,
82 pub base_fee: u32,
83 pub base_reserve: u32,
84 pub max_tx_set_size: u32,
85 pub skip_list: [Hash; 4],
86 pub ext: LedgerHeaderExt,
87}
88
89impl ReadXdr for LedgerHeader {
90 #[cfg(feature = "std")]
91 fn read_xdr<R: Read>(r: &mut Limited<R>) -> Result<Self, Error> {
92 r.with_limited_depth(|r| {
93 Ok(Self {
94 ledger_version: u32::read_xdr(r)?,
95 previous_ledger_hash: Hash::read_xdr(r)?,
96 scp_value: StellarValue::read_xdr(r)?,
97 tx_set_result_hash: Hash::read_xdr(r)?,
98 bucket_list_hash: Hash::read_xdr(r)?,
99 ledger_seq: u32::read_xdr(r)?,
100 total_coins: i64::read_xdr(r)?,
101 fee_pool: i64::read_xdr(r)?,
102 inflation_seq: u32::read_xdr(r)?,
103 id_pool: u64::read_xdr(r)?,
104 base_fee: u32::read_xdr(r)?,
105 base_reserve: u32::read_xdr(r)?,
106 max_tx_set_size: u32::read_xdr(r)?,
107 skip_list: <[Hash; 4]>::read_xdr(r)?,
108 ext: LedgerHeaderExt::read_xdr(r)?,
109 })
110 })
111 }
112}
113
114impl WriteXdr for LedgerHeader {
115 #[cfg(feature = "std")]
116 fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
117 w.with_limited_depth(|w| {
118 self.ledger_version.write_xdr(w)?;
119 self.previous_ledger_hash.write_xdr(w)?;
120 self.scp_value.write_xdr(w)?;
121 self.tx_set_result_hash.write_xdr(w)?;
122 self.bucket_list_hash.write_xdr(w)?;
123 self.ledger_seq.write_xdr(w)?;
124 self.total_coins.write_xdr(w)?;
125 self.fee_pool.write_xdr(w)?;
126 self.inflation_seq.write_xdr(w)?;
127 self.id_pool.write_xdr(w)?;
128 self.base_fee.write_xdr(w)?;
129 self.base_reserve.write_xdr(w)?;
130 self.max_tx_set_size.write_xdr(w)?;
131 self.skip_list.write_xdr(w)?;
132 self.ext.write_xdr(w)?;
133 Ok(())
134 })
135 }
136}