@@ -227,10 +227,10 @@ pub struct GetBlockHeaderResult {
227227
228228#[ derive( Clone , PartialEq , Debug , Deserialize , Serialize ) ]
229229pub struct GetBlockStatsResult {
230- #[ serde( rename = "avgfee" ) ]
231- pub avg_fee : u32 ,
232- #[ serde( rename = "avgfeerate" ) ]
233- pub avg_fee_rate : u32 ,
230+ #[ serde( rename = "avgfee" , with = "bitcoin::util::amount::serde::as_sat" ) ]
231+ pub avg_fee : Amount ,
232+ #[ serde( rename = "avgfeerate" , with = "bitcoin::util::amount::serde::as_sat" ) ]
233+ pub avg_fee_rate : Amount ,
234234 #[ serde( rename = "avgtxsize" ) ]
235235 pub avg_tx_size : u32 ,
236236 #[ serde( rename = "blockhash" ) ]
@@ -239,101 +239,207 @@ pub struct GetBlockStatsResult {
239239 pub fee_rate_percentiles : FeeRatePercentiles ,
240240 pub height : u64 ,
241241 pub ins : usize ,
242- #[ serde( rename = "maxfee" ) ]
243- pub max_fee : u64 ,
244- #[ serde( rename = "maxfeerate" ) ]
245- pub max_fee_rate : u32 ,
242+ #[ serde( rename = "maxfee" , with = "bitcoin::util::amount::serde::as_sat" ) ]
243+ pub max_fee : Amount ,
244+ #[ serde( rename = "maxfeerate" , with = "bitcoin::util::amount::serde::as_sat" ) ]
245+ pub max_fee_rate : Amount ,
246246 #[ serde( rename = "maxtxsize" ) ]
247247 pub max_tx_size : u32 ,
248- #[ serde( rename = "medianfee" ) ]
249- pub median_fee : u32 ,
248+ #[ serde( rename = "medianfee" , with = "bitcoin::util::amount::serde::as_sat" ) ]
249+ pub median_fee : Amount ,
250250 #[ serde( rename = "mediantime" ) ]
251- pub median_time : u32 ,
251+ pub median_time : u64 ,
252252 #[ serde( rename = "mediantxsize" ) ]
253253 pub median_tx_size : u32 ,
254- #[ serde( rename = "minfee" ) ]
255- pub min_fee : u32 ,
256- #[ serde( rename = "minfeerate" ) ]
257- pub min_fee_rate : u32 ,
254+ #[ serde( rename = "minfee" , with = "bitcoin::util::amount::serde::as_sat" ) ]
255+ pub min_fee : Amount ,
256+ #[ serde( rename = "minfeerate" , with = "bitcoin::util::amount::serde::as_sat" ) ]
257+ pub min_fee_rate : Amount ,
258258 #[ serde( rename = "mintxsize" ) ]
259259 pub min_tx_size : u32 ,
260260 pub outs : usize ,
261- pub subsidy : u32 ,
261+ #[ serde( with = "bitcoin::util::amount::serde::as_sat" ) ]
262+ pub subsidy : Amount ,
262263 #[ serde( rename = "swtotal_size" ) ]
263264 pub sw_total_size : usize ,
264265 #[ serde( rename = "swtotal_weight" ) ]
265266 pub sw_total_weight : usize ,
266267 #[ serde( rename = "swtxs" ) ]
267268 pub sw_txs : usize ,
268- pub time : u32 ,
269- pub total_out : usize ,
269+ pub time : u64 ,
270+ #[ serde ( with = "bitcoin::util::amount::serde::as_sat" ) ]
271+ pub total_out : Amount ,
270272 pub total_size : usize ,
271273 pub total_weight : usize ,
272- #[ serde( rename = "totalfee" ) ]
273- pub total_fee : u64 ,
274+ #[ serde( rename = "totalfee" , with = "bitcoin::util::amount::serde::as_sat" ) ]
275+ pub total_fee : Amount ,
274276 pub txs : usize ,
275277 pub utxo_increase : i32 ,
276278 pub utxo_size_inc : i32 ,
277279}
278280
279281#[ derive( Clone , PartialEq , Debug , Deserialize , Serialize ) ]
280282pub struct GetBlockStatsResultPartial {
281- #[ serde( rename = "avgfee" ) ]
282- pub avg_fee : Option < u32 > ,
283- #[ serde( rename = "avgfeerate" ) ]
284- pub avg_fee_rate : Option < u32 > ,
285- #[ serde( rename = "avgtxsize" ) ]
283+ #[ serde(
284+ default ,
285+ rename = "avgfee" ,
286+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
287+ skip_serializing_if = "Option::is_none"
288+ ) ]
289+ pub avg_fee : Option < Amount > ,
290+ #[ serde(
291+ default ,
292+ rename = "avgfeerate" ,
293+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
294+ skip_serializing_if = "Option::is_none"
295+ ) ]
296+ pub avg_fee_rate : Option < Amount > ,
297+ #[ serde(
298+ default ,
299+ rename = "avgtxsize" ,
300+ skip_serializing_if = "Option::is_none"
301+ ) ]
286302 pub avg_tx_size : Option < u32 > ,
287- #[ serde( rename = "blockhash" ) ]
303+ #[ serde(
304+ default ,
305+ rename = "blockhash" ,
306+ skip_serializing_if = "Option::is_none"
307+ ) ]
288308 pub block_hash : Option < bitcoin:: BlockHash > ,
289- #[ serde( rename = "feerate_percentiles" ) ]
309+ #[ serde(
310+ default ,
311+ rename = "feerate_percentiles" ,
312+ skip_serializing_if = "Option::is_none"
313+ ) ]
290314 pub fee_rate_percentiles : Option < FeeRatePercentiles > ,
315+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
291316 pub height : Option < u64 > ,
317+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
292318 pub ins : Option < usize > ,
293- #[ serde( rename = "maxfee" ) ]
294- pub max_fee : Option < u64 > ,
295- #[ serde( rename = "maxfeerate" ) ]
296- pub max_fee_rate : Option < u32 > ,
297- #[ serde( rename = "maxtxsize" ) ]
319+ #[ serde(
320+ default ,
321+ rename = "maxfee" ,
322+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
323+ skip_serializing_if = "Option::is_none"
324+ ) ]
325+ pub max_fee : Option < Amount > ,
326+ #[ serde(
327+ default ,
328+ rename = "maxfeerate" ,
329+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
330+ skip_serializing_if = "Option::is_none"
331+ ) ]
332+ pub max_fee_rate : Option < Amount > ,
333+ #[ serde(
334+ default ,
335+ rename = "maxtxsize" ,
336+ skip_serializing_if = "Option::is_none"
337+ ) ]
298338 pub max_tx_size : Option < u32 > ,
299- #[ serde( rename = "medianfee" ) ]
300- pub median_fee : Option < u32 > ,
301- #[ serde( rename = "mediantime" ) ]
302- pub median_time : Option < u32 > ,
303- #[ serde( rename = "mediantxsize" ) ]
339+ #[ serde(
340+ default ,
341+ rename = "medianfee" ,
342+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
343+ skip_serializing_if = "Option::is_none"
344+ ) ]
345+ pub median_fee : Option < Amount > ,
346+ #[ serde(
347+ default ,
348+ rename = "mediantime" ,
349+ skip_serializing_if = "Option::is_none"
350+ ) ]
351+ pub median_time : Option < u64 > ,
352+ #[ serde(
353+ default ,
354+ rename = "mediantxsize" ,
355+ skip_serializing_if = "Option::is_none"
356+ ) ]
304357 pub median_tx_size : Option < u32 > ,
305- #[ serde( rename = "minfee" ) ]
306- pub min_fee : Option < u32 > ,
307- #[ serde( rename = "minfeerate" ) ]
308- pub min_fee_rate : Option < u32 > ,
309- #[ serde( rename = "mintxsize" ) ]
358+ #[ serde(
359+ default ,
360+ rename = "minfee" ,
361+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
362+ skip_serializing_if = "Option::is_none"
363+ ) ]
364+ pub min_fee : Option < Amount > ,
365+ #[ serde(
366+ default ,
367+ rename = "minfeerate" ,
368+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
369+ skip_serializing_if = "Option::is_none"
370+ ) ]
371+ pub min_fee_rate : Option < Amount > ,
372+ #[ serde(
373+ default ,
374+ rename = "mintxsize" ,
375+ skip_serializing_if = "Option::is_none"
376+ ) ]
310377 pub min_tx_size : Option < u32 > ,
378+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
311379 pub outs : Option < usize > ,
312- pub subsidy : Option < u32 > ,
313- #[ serde( rename = "swtotal_size" ) ]
380+ #[ serde(
381+ default ,
382+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
383+ skip_serializing_if = "Option::is_none"
384+ ) ]
385+ pub subsidy : Option < Amount > ,
386+ #[ serde(
387+ default ,
388+ rename = "swtotal_size" ,
389+ skip_serializing_if = "Option::is_none"
390+ ) ]
314391 pub sw_total_size : Option < usize > ,
315- #[ serde( rename = "swtotal_weight" ) ]
392+ #[ serde(
393+ default ,
394+ rename = "swtotal_weight" ,
395+ skip_serializing_if = "Option::is_none"
396+ ) ]
316397 pub sw_total_weight : Option < usize > ,
317- #[ serde( rename = "swtxs" ) ]
398+ #[ serde(
399+ default ,
400+ rename = "swtxs" ,
401+ skip_serializing_if = "Option::is_none"
402+ ) ]
318403 pub sw_txs : Option < usize > ,
319- pub time : Option < u32 > ,
320- pub total_out : Option < usize > ,
404+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
405+ pub time : Option < u64 > ,
406+ #[ serde(
407+ default ,
408+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
409+ skip_serializing_if = "Option::is_none"
410+ ) ]
411+ pub total_out : Option < Amount > ,
412+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
321413 pub total_size : Option < usize > ,
414+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
322415 pub total_weight : Option < usize > ,
323- #[ serde( rename = "totalfee" ) ]
324- pub total_fee : Option < u64 > ,
416+ #[ serde(
417+ default ,
418+ rename = "totalfee" ,
419+ with = "bitcoin::util::amount::serde::as_sat::opt" ,
420+ skip_serializing_if = "Option::is_none"
421+ ) ]
422+ pub total_fee : Option < Amount > ,
423+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
325424 pub txs : Option < usize > ,
425+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
326426 pub utxo_increase : Option < i32 > ,
427+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
327428 pub utxo_size_inc : Option < i32 > ,
328429}
329430
330431#[ derive( Clone , PartialEq , Debug , Deserialize , Serialize ) ]
331432pub struct FeeRatePercentiles {
332- pub fr_10th : u32 ,
333- pub fr_25th : u32 ,
334- pub fr_50th : u32 ,
335- pub fr_75th : u32 ,
336- pub fr_90th : u32 ,
433+ #[ serde( with = "bitcoin::util::amount::serde::as_sat" ) ]
434+ pub fr_10th : Amount ,
435+ #[ serde( with = "bitcoin::util::amount::serde::as_sat" ) ]
436+ pub fr_25th : Amount ,
437+ #[ serde( with = "bitcoin::util::amount::serde::as_sat" ) ]
438+ pub fr_50th : Amount ,
439+ #[ serde( with = "bitcoin::util::amount::serde::as_sat" ) ]
440+ pub fr_75th : Amount ,
441+ #[ serde( with = "bitcoin::util::amount::serde::as_sat" ) ]
442+ pub fr_90th : Amount ,
337443}
338444
339445pub enum BlockStatsFields {
0 commit comments