@@ -112,34 +112,36 @@ where
112112/// Statistical percentile distribution of Stellar transaction fees.
113113#[ derive( Debug , Clone , PartialEq , Serialize , Deserialize , Default ) ]
114114pub struct FeeDistribution {
115- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
116- pub min : u64 ,
117- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
118- pub max : u64 ,
119- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
120- pub mode : u64 ,
121- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
122- pub p10 : u64 ,
123- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
124- pub p20 : u64 ,
125- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
126- pub p30 : u64 ,
127- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
128- pub p40 : u64 ,
129- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
130- pub p50 : u64 ,
131- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
132- pub p60 : u64 ,
133- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
134- pub p70 : u64 ,
135- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
136- pub p80 : u64 ,
137- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
138- pub p90 : u64 ,
139- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
140- pub p95 : u64 ,
141- #[ serde( default , deserialize_with = "deserialize_u64_lenient" ) ]
142- pub p99 : u64 ,
115+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
116+ pub min : Option < u64 > ,
117+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
118+ pub max : Option < u64 > ,
119+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
120+ pub mode : Option < u64 > ,
121+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
122+ pub p10 : Option < u64 > ,
123+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
124+ pub p20 : Option < u64 > ,
125+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
126+ pub p30 : Option < u64 > ,
127+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
128+ pub p40 : Option < u64 > ,
129+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
130+ pub p50 : Option < u64 > ,
131+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
132+ pub p60 : Option < u64 > ,
133+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
134+ pub p70 : Option < u64 > ,
135+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
136+ pub p80 : Option < u64 > ,
137+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
138+ pub p90 : Option < u64 > ,
139+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
140+ pub p95 : Option < u64 > ,
141+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
142+ pub p99 : Option < u64 > ,
143+ #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
144+ pub transaction_count : Option < u64 > ,
143145}
144146
145147/// Type alias for backward compatibility.
@@ -155,9 +157,9 @@ pub struct HorizonFeeStats {
155157 #[ serde( default , deserialize_with = "deserialize_f64_lenient" ) ]
156158 pub ledger_capacity_usage : f64 ,
157159 #[ serde( default ) ]
158- pub fee_charged : FeeDistribution ,
160+ pub fee_charged : Option < FeeDistribution > ,
159161 #[ serde( default ) ]
160- pub max_fee : FeeDistribution ,
162+ pub max_fee : Option < FeeDistribution > ,
161163
162164 // Legacy/auxiliary top-level fields returned by Horizon
163165 #[ serde( default , deserialize_with = "deserialize_opt_u64_lenient" ) ]
0 commit comments