@@ -227,10 +227,10 @@ pub struct GetBlockHeaderResult {
227
227
228
228
#[ derive( Clone , PartialEq , Debug , Deserialize , Serialize ) ]
229
229
pub 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 ,
234
234
#[ serde( rename = "avgtxsize" ) ]
235
235
pub avg_tx_size : u32 ,
236
236
#[ serde( rename = "blockhash" ) ]
@@ -239,101 +239,207 @@ pub struct GetBlockStatsResult {
239
239
pub fee_rate_percentiles : FeeRatePercentiles ,
240
240
pub height : u64 ,
241
241
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 ,
246
246
#[ serde( rename = "maxtxsize" ) ]
247
247
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 ,
250
250
#[ serde( rename = "mediantime" ) ]
251
- pub median_time : u32 ,
251
+ pub median_time : u64 ,
252
252
#[ serde( rename = "mediantxsize" ) ]
253
253
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 ,
258
258
#[ serde( rename = "mintxsize" ) ]
259
259
pub min_tx_size : u32 ,
260
260
pub outs : usize ,
261
- pub subsidy : u32 ,
261
+ #[ serde( with = "bitcoin::util::amount::serde::as_sat" ) ]
262
+ pub subsidy : Amount ,
262
263
#[ serde( rename = "swtotal_size" ) ]
263
264
pub sw_total_size : usize ,
264
265
#[ serde( rename = "swtotal_weight" ) ]
265
266
pub sw_total_weight : usize ,
266
267
#[ serde( rename = "swtxs" ) ]
267
268
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 ,
270
272
pub total_size : usize ,
271
273
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 ,
274
276
pub txs : usize ,
275
277
pub utxo_increase : i32 ,
276
278
pub utxo_size_inc : i32 ,
277
279
}
278
280
279
281
#[ derive( Clone , PartialEq , Debug , Deserialize , Serialize ) ]
280
282
pub 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
+ ) ]
286
302
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
+ ) ]
288
308
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
+ ) ]
290
314
pub fee_rate_percentiles : Option < FeeRatePercentiles > ,
315
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
291
316
pub height : Option < u64 > ,
317
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
292
318
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
+ ) ]
298
338
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
+ ) ]
304
357
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
+ ) ]
310
377
pub min_tx_size : Option < u32 > ,
378
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
311
379
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
+ ) ]
314
391
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
+ ) ]
316
397
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
+ ) ]
318
403
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" ) ]
321
413
pub total_size : Option < usize > ,
414
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
322
415
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" ) ]
325
424
pub txs : Option < usize > ,
425
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
326
426
pub utxo_increase : Option < i32 > ,
427
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
327
428
pub utxo_size_inc : Option < i32 > ,
328
429
}
329
430
330
431
#[ derive( Clone , PartialEq , Debug , Deserialize , Serialize ) ]
331
432
pub 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 ,
337
443
}
338
444
339
445
pub enum BlockStatsFields {
0 commit comments