Skip to content

Commit f2d74ca

Browse files
author
Gabriel Comte
committed
Change data types, fix absent values
1 parent c807b14 commit f2d74ca

File tree

1 file changed

+161
-55
lines changed

1 file changed

+161
-55
lines changed

json/src/lib.rs

Lines changed: 161 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,10 @@ pub struct GetBlockHeaderResult {
227227

228228
#[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
229229
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,
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)]
280282
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+
)]
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)]
331432
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,
337443
}
338444

339445
pub enum BlockStatsFields {

0 commit comments

Comments
 (0)