1use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Deserialize, Serialize)]
7#[serde(transparent)]
8pub struct AbortrescanResponse(pub bool);
9
10#[derive(Debug, Deserialize, Serialize)]
12pub struct AddconnectionResponse {
13 pub address: String,
14 pub connection_type: String,
15}
16
17#[derive(Debug, Deserialize, Serialize)]
19pub struct AddpeeraddressResponse {
20 pub success: bool,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub error: Option<String>,
23}
24
25#[derive(Debug, Deserialize, Serialize)]
27pub struct AnalyzepsbtResponse {
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub inputs: Option<Vec<serde_json::Value>>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub estimated_vsize: Option<u64>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub estimated_feerate: Option<f64>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub fee: Option<f64>,
36 pub next: String,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub error: Option<String>,
39}
40
41#[derive(Debug, Deserialize, Serialize)]
54pub struct BumpfeeResponse {
55 pub txid: bitcoin::Txid,
56 pub origfee: f64,
57 pub fee: f64,
58 pub errors: Vec<serde_json::Value>,
59}
60
61#[derive(Debug, Deserialize, Serialize)]
64#[serde(transparent)]
65pub struct CombinepsbtResponse(pub String);
66
67#[derive(Debug, Deserialize, Serialize)]
71#[serde(transparent)]
72pub struct CombinerawtransactionResponse(pub String);
73
74#[derive(Debug, Deserialize, Serialize)]
77#[serde(transparent)]
78pub struct ConverttopsbtResponse(pub String);
79
80#[derive(Debug, Deserialize, Serialize)]
83pub struct CreatemultisigResponse {
84 pub address: String,
85 #[serde(rename = "redeemScript")]
86 pub redeem_script: String,
87 pub descriptor: String,
88 #[serde(skip_serializing_if = "Option::is_none")]
89 pub warnings: Option<Vec<serde_json::Value>>,
90}
91
92#[derive(Debug, Deserialize, Serialize)]
97#[serde(transparent)]
98pub struct CreatepsbtResponse(pub String);
99
100#[derive(Debug, Deserialize, Serialize)]
106#[serde(transparent)]
107pub struct CreaterawtransactionResponse(pub String);
108
109#[derive(Debug, Deserialize, Serialize)]
111pub struct CreatewalletResponse {
112 pub name: String,
113 #[serde(skip_serializing_if = "Option::is_none")]
114 pub warnings: Option<Vec<serde_json::Value>>,
115}
116
117#[derive(Debug, Deserialize, Serialize)]
120pub struct CreatewalletdescriptorResponse {
121 pub descs: Vec<serde_json::Value>,
122}
123
124#[derive(Debug, Deserialize, Serialize)]
126pub struct DecodepsbtResponse {
127 pub tx: serde_json::Value,
128 pub global_xpubs: Vec<serde_json::Value>,
129 pub psbt_version: u32,
130 pub proprietary: Vec<serde_json::Value>,
131 pub unknown: serde_json::Value,
132 pub inputs: Vec<serde_json::Value>,
133 pub outputs: Vec<serde_json::Value>,
134 #[serde(skip_serializing_if = "Option::is_none")]
135 pub fee: Option<f64>,
136}
137
138#[derive(Debug, Deserialize, Serialize)]
140pub struct DecoderawtransactionResponse {
141 pub txid: bitcoin::Txid,
142 pub hash: String,
143 pub size: u64,
144 pub vsize: u64,
145 pub weight: u64,
146 pub version: u32,
147 pub locktime: serde_json::Value,
148 pub vin: Vec<serde_json::Value>,
149 pub vout: Vec<serde_json::Value>,
150}
151
152#[derive(Debug, Deserialize, Serialize)]
154pub struct DecodescriptResponse {
155 pub asm: String,
156 pub desc: String,
157 #[serde(rename = "type")]
158 pub r#type: String,
159 #[serde(skip_serializing_if = "Option::is_none")]
160 pub address: Option<String>,
161 #[serde(skip_serializing_if = "Option::is_none")]
162 pub p2sh: Option<String>,
163 #[serde(skip_serializing_if = "Option::is_none")]
164 pub segwit: Option<serde_json::Value>,
165}
166
167#[derive(Debug, Deserialize, Serialize)]
179#[serde(untagged)]
180#[allow(clippy::large_enum_variant)]
181pub enum DeriveaddressesResponse {
182 Variant1(Vec<String>),
183 Variant2(Vec<Vec<String>>),
184}
185
186#[derive(Debug, Deserialize, Serialize)]
189pub struct DescriptorprocesspsbtResponse {
190 pub psbt: String,
191 pub complete: bool,
192 #[serde(skip_serializing_if = "Option::is_none")]
193 pub hex: Option<String>,
194}
195
196#[derive(Debug, Deserialize, Serialize)]
202pub struct DumptxoutsetResponse {
203 pub coins_written: u64,
204 pub base_hash: String,
205 pub base_height: u64,
206 pub path: String,
207 pub txoutset_hash: String,
208 pub nchaintx: u64,
209}
210
211#[derive(Debug, Deserialize, Serialize)]
217#[serde(transparent)]
218pub struct EchoResponse(pub serde_json::Value);
219
220#[derive(Debug, Deserialize, Serialize)]
223#[serde(transparent)]
224pub struct EchoipcResponse(pub String);
225
226#[derive(Debug, Deserialize, Serialize)]
232#[serde(transparent)]
233pub struct EchojsonResponse(pub serde_json::Value);
234
235#[derive(Debug, Deserialize, Serialize)]
245#[serde(transparent)]
246pub struct EncryptwalletResponse(pub String);
247
248#[derive(Debug, Deserialize, Serialize)]
250pub struct EnumeratesignersResponse {
251 pub signers: Vec<serde_json::Value>,
252}
253
254#[derive(Debug, Deserialize, Serialize)]
264pub struct EstimaterawfeeResponse {
265 #[serde(skip_serializing_if = "Option::is_none")]
266 pub short: Option<serde_json::Value>,
267 #[serde(skip_serializing_if = "Option::is_none")]
268 pub medium: Option<serde_json::Value>,
269 #[serde(skip_serializing_if = "Option::is_none")]
270 pub long: Option<serde_json::Value>,
271}
272
273#[derive(Debug, Deserialize, Serialize)]
278pub struct EstimatesmartfeeResponse {
279 #[serde(skip_serializing_if = "Option::is_none")]
280 pub feerate: Option<f64>,
281 #[serde(skip_serializing_if = "Option::is_none")]
282 pub errors: Option<Vec<serde_json::Value>>,
283 pub blocks: u64,
284}
285
286#[derive(Debug, Deserialize, Serialize)]
291pub struct FinalizepsbtResponse {
292 #[serde(skip_serializing_if = "Option::is_none")]
293 pub psbt: Option<String>,
294 #[serde(skip_serializing_if = "Option::is_none")]
295 pub hex: Option<String>,
296 pub complete: bool,
297}
298
299#[derive(Debug, Deserialize, Serialize)]
314pub struct FundrawtransactionResponse {
315 pub hex: String,
316 pub fee: f64,
317 pub changepos: u64,
318}
319
320#[derive(Debug, Deserialize, Serialize)]
322pub struct GenerateblockResponse {
323 pub hash: String,
324 #[serde(skip_serializing_if = "Option::is_none")]
325 pub hex: Option<String>,
326}
327
328#[derive(Debug, Deserialize, Serialize)]
330#[serde(transparent)]
331pub struct GeneratetoaddressResponse(pub Vec<serde_json::Value>);
332
333#[derive(Debug, Deserialize, Serialize)]
335#[serde(transparent)]
336pub struct GeneratetodescriptorResponse(pub Vec<serde_json::Value>);
337
338#[derive(Debug, Deserialize, Serialize)]
341#[serde(transparent)]
342pub struct GetaddednodeinfoResponse(pub Vec<serde_json::Value>);
343
344#[derive(Debug, Deserialize, Serialize)]
346pub struct GetaddressesbylabelResponse {
347 pub address: serde_json::Value,
348}
349
350#[derive(Debug, Deserialize, Serialize)]
353pub struct GetaddressinfoResponse {
354 pub address: String,
355 #[serde(rename = "scriptPubKey")]
356 pub script_pubkey: String,
357 pub ismine: bool,
358 pub iswatchonly: bool,
359 pub solvable: bool,
360 #[serde(skip_serializing_if = "Option::is_none")]
361 pub desc: Option<String>,
362 #[serde(skip_serializing_if = "Option::is_none")]
363 pub parent_desc: Option<String>,
364 #[serde(skip_serializing_if = "Option::is_none")]
365 pub isscript: Option<bool>,
366 pub ischange: bool,
367 pub iswitness: bool,
368 #[serde(skip_serializing_if = "Option::is_none")]
369 pub witness_version: Option<u32>,
370 #[serde(skip_serializing_if = "Option::is_none")]
371 pub witness_program: Option<String>,
372 #[serde(skip_serializing_if = "Option::is_none")]
373 pub script: Option<String>,
374 #[serde(skip_serializing_if = "Option::is_none")]
375 pub hex: Option<String>,
376 #[serde(skip_serializing_if = "Option::is_none")]
377 pub pubkeys: Option<Vec<String>>,
378 #[serde(skip_serializing_if = "Option::is_none")]
379 pub sigsrequired: Option<u64>,
380 #[serde(skip_serializing_if = "Option::is_none")]
381 pub pubkey: Option<String>,
382 #[serde(skip_serializing_if = "Option::is_none")]
383 pub embedded: Option<serde_json::Value>,
384 #[serde(skip_serializing_if = "Option::is_none")]
385 pub iscompressed: Option<bool>,
386 #[serde(skip_serializing_if = "Option::is_none")]
387 pub timestamp: Option<serde_json::Value>,
388 #[serde(skip_serializing_if = "Option::is_none")]
389 pub hdkeypath: Option<String>,
390 #[serde(skip_serializing_if = "Option::is_none")]
391 pub hdseedid: Option<String>,
392 #[serde(skip_serializing_if = "Option::is_none")]
393 pub hdmasterfingerprint: Option<String>,
394 pub labels: Vec<serde_json::Value>,
395}
396
397#[derive(Debug, Deserialize, Serialize)]
399pub struct GetaddrmaninfoResponse {
400 pub network: serde_json::Value,
401}
402
403#[derive(Debug, Deserialize, Serialize)]
407#[serde(transparent)]
408pub struct GetbalanceResponse(pub f64);
409
410#[derive(Debug, Deserialize, Serialize)]
412pub struct GetbalancesResponse {
413 pub mine: serde_json::Value,
414 pub lastprocessedblock: serde_json::Value,
415}
416
417#[derive(Debug, Deserialize, Serialize)]
419#[serde(transparent)]
420pub struct GetbestblockhashResponse(pub bitcoin::BlockHash);
421
422#[derive(Debug, Deserialize, Serialize)]
427#[serde(untagged)]
428#[allow(clippy::large_enum_variant)]
429pub enum GetblockResponse {
430 Raw(String),
431 Verbose {
432 hash: String,
433 confirmations: u64,
434 size: u64,
435 strippedsize: u64,
436 weight: u64,
437 height: u64,
438 version: u32,
439 #[serde(rename = "versionHex")]
440 version_hex: String,
441 merkleroot: String,
442 tx: Vec<serde_json::Value>,
443 time: serde_json::Value,
444 mediantime: serde_json::Value,
445 nonce: u64,
446 bits: String,
447 target: String,
448 difficulty: f64,
449 chainwork: String,
450 #[serde(rename = "nTx")]
451 n_tx: u64,
452 #[serde(skip_serializing_if = "Option::is_none")]
453 previousblockhash: Option<bitcoin::BlockHash>,
454 #[serde(skip_serializing_if = "Option::is_none")]
455 nextblockhash: Option<bitcoin::BlockHash>,
456 },
457 Detailed {
458 field_0: serde_json::Value,
459 tx: Vec<serde_json::Value>,
460 },
461 Full {
462 field_0: serde_json::Value,
463 tx: Vec<serde_json::Value>,
464 },
465}
466
467#[derive(Debug, Deserialize, Serialize)]
469pub struct GetblockchaininfoResponse {
470 pub chain: String,
471 pub blocks: u64,
472 pub headers: u64,
473 pub bestblockhash: bitcoin::BlockHash,
474 pub bits: String,
475 pub target: String,
476 pub difficulty: f64,
477 pub time: serde_json::Value,
478 pub mediantime: serde_json::Value,
479 pub verificationprogress: f64,
480 pub initialblockdownload: bool,
481 pub chainwork: String,
482 pub size_on_disk: u64,
483 pub pruned: bool,
484 #[serde(skip_serializing_if = "Option::is_none")]
485 pub pruneheight: Option<u64>,
486 #[serde(skip_serializing_if = "Option::is_none")]
487 pub automatic_pruning: Option<bool>,
488 #[serde(skip_serializing_if = "Option::is_none")]
489 pub prune_target_size: Option<u64>,
490 #[serde(skip_serializing_if = "Option::is_none")]
491 pub signet_challenge: Option<String>,
492 pub warnings: Vec<serde_json::Value>,
493}
494
495#[derive(Debug, Deserialize, Serialize)]
498#[serde(transparent)]
499pub struct GetblockcountResponse(pub u64);
500
501#[derive(Debug, Deserialize, Serialize)]
503pub struct GetblockfilterResponse {
504 pub filter: String,
505 pub header: String,
506}
507
508#[derive(Debug, Deserialize, Serialize)]
519#[serde(transparent)]
520pub struct GetblockfrompeerResponse(pub serde_json::Value);
521
522#[derive(Debug, Deserialize, Serialize)]
524#[serde(transparent)]
525pub struct GetblockhashResponse(pub bitcoin::BlockHash);
526
527#[derive(Debug, Deserialize, Serialize)]
530#[serde(untagged)]
531#[allow(clippy::large_enum_variant)]
532pub enum GetblockheaderResponse {
533 Verbose {
534 hash: String,
535 confirmations: u64,
536 height: u64,
537 version: u32,
538 #[serde(rename = "versionHex")]
539 version_hex: String,
540 merkleroot: String,
541 time: serde_json::Value,
542 mediantime: serde_json::Value,
543 nonce: u64,
544 bits: String,
545 target: String,
546 difficulty: f64,
547 chainwork: String,
548 #[serde(rename = "nTx")]
549 n_tx: u64,
550 #[serde(skip_serializing_if = "Option::is_none")]
551 previousblockhash: Option<bitcoin::BlockHash>,
552 #[serde(skip_serializing_if = "Option::is_none")]
553 nextblockhash: Option<bitcoin::BlockHash>,
554 },
555 Variant2(String),
556}
557
558#[derive(Debug, Deserialize, Serialize)]
561pub struct GetblockstatsResponse {
562 #[serde(skip_serializing_if = "Option::is_none")]
563 pub avgfee: Option<f64>,
564 #[serde(skip_serializing_if = "Option::is_none")]
565 pub avgfeerate: Option<f64>,
566 #[serde(skip_serializing_if = "Option::is_none")]
567 pub avgtxsize: Option<u64>,
568 #[serde(skip_serializing_if = "Option::is_none")]
569 pub blockhash: Option<bitcoin::BlockHash>,
570 #[serde(skip_serializing_if = "Option::is_none")]
571 pub feerate_percentiles: Option<serde_json::Value>,
572 #[serde(skip_serializing_if = "Option::is_none")]
573 pub height: Option<u64>,
574 #[serde(skip_serializing_if = "Option::is_none")]
575 pub ins: Option<u64>,
576 #[serde(skip_serializing_if = "Option::is_none")]
577 pub maxfee: Option<f64>,
578 #[serde(skip_serializing_if = "Option::is_none")]
579 pub maxfeerate: Option<f64>,
580 #[serde(skip_serializing_if = "Option::is_none")]
581 pub maxtxsize: Option<u64>,
582 #[serde(skip_serializing_if = "Option::is_none")]
583 pub medianfee: Option<f64>,
584 #[serde(skip_serializing_if = "Option::is_none")]
585 pub mediantime: Option<u64>,
586 #[serde(skip_serializing_if = "Option::is_none")]
587 pub mediantxsize: Option<u64>,
588 #[serde(skip_serializing_if = "Option::is_none")]
589 pub minfee: Option<f64>,
590 #[serde(skip_serializing_if = "Option::is_none")]
591 pub minfeerate: Option<f64>,
592 #[serde(skip_serializing_if = "Option::is_none")]
593 pub mintxsize: Option<u64>,
594 #[serde(skip_serializing_if = "Option::is_none")]
595 pub outs: Option<u64>,
596 #[serde(skip_serializing_if = "Option::is_none")]
597 pub subsidy: Option<u64>,
598 #[serde(skip_serializing_if = "Option::is_none")]
599 pub swtotal_size: Option<u64>,
600 #[serde(skip_serializing_if = "Option::is_none")]
601 pub swtotal_weight: Option<u64>,
602 #[serde(skip_serializing_if = "Option::is_none")]
603 pub swtxs: Option<u64>,
604 #[serde(skip_serializing_if = "Option::is_none")]
605 pub time: Option<u64>,
606 #[serde(skip_serializing_if = "Option::is_none")]
607 pub total_out: Option<u64>,
608 #[serde(skip_serializing_if = "Option::is_none")]
609 pub total_size: Option<u64>,
610 #[serde(skip_serializing_if = "Option::is_none")]
611 pub total_weight: Option<u64>,
612 #[serde(skip_serializing_if = "Option::is_none")]
613 pub totalfee: Option<f64>,
614 #[serde(skip_serializing_if = "Option::is_none")]
615 pub txs: Option<u64>,
616 #[serde(skip_serializing_if = "Option::is_none")]
617 pub utxo_increase: Option<u64>,
618 #[serde(skip_serializing_if = "Option::is_none")]
619 pub utxo_size_inc: Option<u64>,
620 #[serde(skip_serializing_if = "Option::is_none")]
621 pub utxo_increase_actual: Option<u64>,
622 #[serde(skip_serializing_if = "Option::is_none")]
623 pub utxo_size_inc_actual: Option<u64>,
624}
625
626#[derive(Debug, Deserialize, Serialize)]
634#[serde(untagged)]
635#[allow(clippy::large_enum_variant)]
636pub enum GetblocktemplateResponse {
637 Accepted(String),
638 Variant3 {
639 version: u32,
640 rules: Vec<serde_json::Value>,
641 vbavailable: serde_json::Value,
642 capabilities: Vec<serde_json::Value>,
643 vbrequired: u64,
644 previousblockhash: bitcoin::BlockHash,
645 transactions: Vec<serde_json::Value>,
646 coinbaseaux: serde_json::Value,
647 coinbasevalue: u64,
648 longpollid: String,
649 target: String,
650 mintime: serde_json::Value,
651 mutable: Vec<serde_json::Value>,
652 noncerange: String,
653 sigoplimit: u64,
654 sizelimit: u64,
655 #[serde(skip_serializing_if = "Option::is_none")]
656 weightlimit: Option<u64>,
657 curtime: serde_json::Value,
658 bits: String,
659 height: u64,
660 #[serde(skip_serializing_if = "Option::is_none")]
661 signet_challenge: Option<String>,
662 #[serde(skip_serializing_if = "Option::is_none")]
663 default_witness_commitment: Option<String>,
664 },
665}
666
667#[derive(Debug, Deserialize, Serialize)]
669pub struct GetchainstatesResponse {
670 pub headers: u64,
671 pub chainstates: Vec<serde_json::Value>,
672}
673
674#[derive(Debug, Deserialize, Serialize)]
676#[serde(transparent)]
677pub struct GetchaintipsResponse(pub Vec<serde_json::Value>);
678
679#[derive(Debug, Deserialize, Serialize)]
681pub struct GetchaintxstatsResponse {
682 pub time: serde_json::Value,
683 #[serde(skip_serializing_if = "Option::is_none")]
684 pub txcount: Option<u64>,
685 pub window_final_block_hash: bitcoin::BlockHash,
686 pub window_final_block_height: u64,
687 pub window_block_count: u64,
688 #[serde(skip_serializing_if = "Option::is_none")]
689 pub window_interval: Option<u64>,
690 #[serde(skip_serializing_if = "Option::is_none")]
691 pub window_tx_count: Option<u64>,
692 #[serde(skip_serializing_if = "Option::is_none")]
693 pub txrate: Option<f64>,
694}
695
696#[derive(Debug, Deserialize, Serialize)]
698#[serde(transparent)]
699pub struct GetconnectioncountResponse(pub u64);
700
701#[derive(Debug, Deserialize, Serialize)]
703pub struct GetdeploymentinfoResponse {
704 pub hash: String,
705 pub height: u64,
706 pub deployments: serde_json::Value,
707}
708
709#[derive(Debug, Deserialize, Serialize)]
712pub struct GetdescriptoractivityResponse {
713 pub activity: Vec<serde_json::Value>,
714}
715
716#[derive(Debug, Deserialize, Serialize)]
718pub struct GetdescriptorinfoResponse {
719 pub descriptor: String,
720 #[serde(skip_serializing_if = "Option::is_none")]
721 pub multipath_expansion: Option<Vec<serde_json::Value>>,
722 pub checksum: String,
723 pub isrange: bool,
724 pub issolvable: bool,
725 pub hasprivatekeys: bool,
726}
727
728#[derive(Debug, Deserialize, Serialize)]
730#[serde(transparent)]
731pub struct GetdifficultyResponse(pub f64);
732
733#[derive(Debug, Deserialize, Serialize)]
735#[serde(transparent)]
736pub struct GethdkeysResponse(pub Vec<serde_json::Value>);
737
738#[derive(Debug, Deserialize, Serialize)]
740pub struct GetindexinfoResponse {
741 pub name: serde_json::Value,
742}
743
744#[derive(Debug, Deserialize, Serialize)]
746#[serde(untagged)]
747#[allow(clippy::large_enum_variant)]
748pub enum GetmemoryinfoResponse {
749 Variant1(serde_json::Value),
750 Variant2(String),
751}
752
753#[derive(Debug, Deserialize, Serialize)]
755#[serde(untagged)]
756#[allow(clippy::large_enum_variant)]
757pub enum GetmempoolancestorsResponse {
758 Raw(Vec<String>),
759 Verbose(serde_json::Value),
760}
761
762#[derive(Debug, Deserialize, Serialize)]
764#[serde(untagged)]
765#[allow(clippy::large_enum_variant)]
766pub enum GetmempooldescendantsResponse {
767 Raw(Vec<String>),
768 Verbose(serde_json::Value),
769}
770
771#[derive(Debug, Deserialize, Serialize)]
773pub struct GetmempoolentryResponse {
774 pub vsize: u64,
775 pub weight: u64,
776 pub time: serde_json::Value,
777 pub height: u64,
778 pub descendantcount: u64,
779 pub descendantsize: u64,
780 pub ancestorcount: u64,
781 pub ancestorsize: u64,
782 pub wtxid: bitcoin::Txid,
783 pub fees: serde_json::Value,
784 pub depends: Vec<serde_json::Value>,
785 pub spentby: Vec<serde_json::Value>,
786 pub bip125_replaceable: bool,
787 pub unbroadcast: bool,
788}
789
790#[derive(Debug, Deserialize, Serialize)]
792pub struct GetmempoolinfoResponse {
793 pub loaded: bool,
794 pub size: u64,
795 pub bytes: u64,
796 pub usage: u64,
797 pub total_fee: f64,
798 pub maxmempool: u64,
799 pub mempoolminfee: f64,
800 pub minrelaytxfee: f64,
801 pub incrementalrelayfee: f64,
802 pub unbroadcastcount: u64,
803 pub fullrbf: bool,
804 pub permitbaremultisig: bool,
805 pub maxdatacarriersize: u64,
806}
807
808#[derive(Debug, Deserialize, Serialize)]
810pub struct GetmininginfoResponse {
811 pub blocks: u64,
812 #[serde(skip_serializing_if = "Option::is_none")]
813 pub currentblockweight: Option<u64>,
814 #[serde(skip_serializing_if = "Option::is_none")]
815 pub currentblocktx: Option<u64>,
816 pub bits: String,
817 pub difficulty: f64,
818 pub target: String,
819 pub networkhashps: u64,
820 pub pooledtx: u64,
821 pub blockmintxfee: f64,
822 pub chain: String,
823 #[serde(skip_serializing_if = "Option::is_none")]
824 pub signet_challenge: Option<String>,
825 pub next: serde_json::Value,
826 pub warnings: Vec<serde_json::Value>,
827}
828
829#[derive(Debug, Deserialize, Serialize)]
832pub struct GetnettotalsResponse {
833 pub totalbytesrecv: u64,
834 pub totalbytessent: u64,
835 pub timemillis: serde_json::Value,
836 pub uploadtarget: serde_json::Value,
837}
838
839#[derive(Debug, Deserialize, Serialize)]
843#[serde(transparent)]
844pub struct GetnetworkhashpsResponse(pub u64);
845
846#[derive(Debug, Deserialize, Serialize)]
848pub struct GetnetworkinfoResponse {
849 pub version: u32,
850 pub subversion: String,
851 pub protocolversion: u32,
852 pub localservices: String,
853 pub localservicesnames: Vec<serde_json::Value>,
854 pub localrelay: bool,
855 pub timeoffset: u64,
856 pub connections: u64,
857 pub connections_in: u64,
858 pub connections_out: u64,
859 pub networkactive: bool,
860 pub networks: Vec<serde_json::Value>,
861 pub relayfee: f64,
862 pub incrementalfee: f64,
863 pub localaddresses: Vec<String>,
864 pub warnings: Vec<serde_json::Value>,
865}
866
867#[derive(Debug, Deserialize, Serialize)]
871#[serde(transparent)]
872pub struct GetnewaddressResponse(pub String);
873
874#[derive(Debug, Deserialize, Serialize)]
878#[serde(transparent)]
879pub struct GetnodeaddressesResponse(pub Vec<serde_json::Value>);
880
881#[derive(Debug, Deserialize, Serialize)]
885#[serde(untagged)]
886#[allow(clippy::large_enum_variant)]
887pub enum GetorphantxsResponse {
888 Variant1(Vec<bitcoin::Txid>),
889 Variant2(Vec<serde_json::Value>),
890 Variant3(Vec<serde_json::Value>),
891}
892
893#[derive(Debug, Deserialize, Serialize)]
895#[serde(transparent)]
896pub struct GetpeerinfoResponse(pub Vec<serde_json::Value>);
897
898#[derive(Debug, Deserialize, Serialize)]
900pub struct GetprioritisedtransactionsResponse {
901 pub transactionid: serde_json::Value,
902}
903
904#[derive(Debug, Deserialize, Serialize)]
908pub struct GetrawaddrmanResponse {
909 pub table: serde_json::Value,
910}
911
912#[derive(Debug, Deserialize, Serialize)]
915#[serde(transparent)]
916pub struct GetrawchangeaddressResponse(pub String);
917
918#[derive(Debug, Deserialize, Serialize)]
922#[serde(untagged)]
923#[allow(clippy::large_enum_variant)]
924pub enum GetrawmempoolResponse {
925 Raw(Vec<String>),
926 Verbose(serde_json::Value),
927 RawWithSequence { txids: Vec<bitcoin::Txid>, mempool_sequence: u64 },
928}
929
930#[derive(Debug, Deserialize, Serialize)]
941#[serde(untagged)]
942#[allow(clippy::large_enum_variant)]
943pub enum GetrawtransactionResponse {
944 Raw(String),
945 Verbose {
946 #[serde(skip_serializing_if = "Option::is_none")]
947 in_active_chain: Option<bool>,
948 #[serde(skip_serializing_if = "Option::is_none")]
949 blockhash: Option<bitcoin::BlockHash>,
950 #[serde(skip_serializing_if = "Option::is_none")]
951 confirmations: Option<u64>,
952 #[serde(skip_serializing_if = "Option::is_none")]
953 blocktime: Option<serde_json::Value>,
954 #[serde(skip_serializing_if = "Option::is_none")]
955 time: Option<u64>,
956 hex: String,
957 txid: bitcoin::Txid,
958 hash: String,
959 size: u64,
960 vsize: u64,
961 weight: u64,
962 version: u32,
963 locktime: serde_json::Value,
964 vin: Vec<serde_json::Value>,
965 vout: Vec<serde_json::Value>,
966 },
967 Detailed {
968 field_0: serde_json::Value,
969 #[serde(skip_serializing_if = "Option::is_none")]
970 fee: Option<f64>,
971 vin: Vec<serde_json::Value>,
972 },
973}
974
975#[derive(Debug, Deserialize, Serialize)]
977#[serde(transparent)]
978pub struct GetreceivedbyaddressResponse(pub f64);
979
980#[derive(Debug, Deserialize, Serialize)]
982#[serde(transparent)]
983pub struct GetreceivedbylabelResponse(pub f64);
984
985#[derive(Debug, Deserialize, Serialize)]
987pub struct GetrpcinfoResponse {
988 pub active_commands: Vec<serde_json::Value>,
989 pub logpath: String,
990}
991
992#[derive(Debug, Deserialize, Serialize)]
994pub struct GettransactionResponse {
995 pub amount: f64,
996 #[serde(skip_serializing_if = "Option::is_none")]
997 pub fee: Option<f64>,
998 pub confirmations: u64,
999 #[serde(skip_serializing_if = "Option::is_none")]
1000 pub generated: Option<bool>,
1001 #[serde(skip_serializing_if = "Option::is_none")]
1002 pub trusted: Option<bool>,
1003 #[serde(skip_serializing_if = "Option::is_none")]
1004 pub blockhash: Option<bitcoin::BlockHash>,
1005 #[serde(skip_serializing_if = "Option::is_none")]
1006 pub blockheight: Option<u64>,
1007 #[serde(skip_serializing_if = "Option::is_none")]
1008 pub blockindex: Option<u64>,
1009 #[serde(skip_serializing_if = "Option::is_none")]
1010 pub blocktime: Option<serde_json::Value>,
1011 pub txid: bitcoin::Txid,
1012 pub wtxid: bitcoin::Txid,
1013 pub walletconflicts: Vec<serde_json::Value>,
1014 #[serde(skip_serializing_if = "Option::is_none")]
1015 pub replaced_by_txid: Option<bitcoin::Txid>,
1016 #[serde(skip_serializing_if = "Option::is_none")]
1017 pub replaces_txid: Option<bitcoin::Txid>,
1018 pub mempoolconflicts: Vec<serde_json::Value>,
1019 #[serde(skip_serializing_if = "Option::is_none")]
1020 pub to: Option<String>,
1021 pub time: serde_json::Value,
1022 pub timereceived: serde_json::Value,
1023 #[serde(skip_serializing_if = "Option::is_none")]
1024 pub comment: Option<String>,
1025 pub bip125_replaceable: String,
1026 #[serde(skip_serializing_if = "Option::is_none")]
1027 pub parent_descs: Option<Vec<serde_json::Value>>,
1028 pub details: Vec<serde_json::Value>,
1029 pub hex: String,
1030 #[serde(skip_serializing_if = "Option::is_none")]
1031 pub decoded: Option<serde_json::Value>,
1032 pub lastprocessedblock: serde_json::Value,
1033}
1034
1035#[derive(Debug, Deserialize, Serialize)]
1037#[serde(untagged)]
1038#[allow(clippy::large_enum_variant)]
1039pub enum GettxoutResponse {
1040 Variant2 {
1041 bestblock: String,
1042 confirmations: u64,
1043 value: f64,
1044 #[serde(rename = "scriptPubKey")]
1045 script_pubkey: serde_json::Value,
1046 coinbase: bool,
1047 },
1048}
1049
1050#[derive(Debug, Deserialize, Serialize)]
1057#[serde(transparent)]
1058pub struct GettxoutproofResponse(pub String);
1059
1060#[derive(Debug, Deserialize, Serialize)]
1063pub struct GettxoutsetinfoResponse {
1064 pub height: u64,
1065 pub bestblock: String,
1066 pub txouts: u64,
1067 pub bogosize: u64,
1068 #[serde(skip_serializing_if = "Option::is_none")]
1069 pub hash_serialized_3: Option<String>,
1070 #[serde(skip_serializing_if = "Option::is_none")]
1071 pub muhash: Option<String>,
1072 #[serde(skip_serializing_if = "Option::is_none")]
1073 pub transactions: Option<u64>,
1074 #[serde(skip_serializing_if = "Option::is_none")]
1075 pub disk_size: Option<u64>,
1076 pub total_amount: f64,
1077 #[serde(skip_serializing_if = "Option::is_none")]
1078 pub total_unspendable_amount: Option<f64>,
1079 #[serde(skip_serializing_if = "Option::is_none")]
1080 pub block_info: Option<serde_json::Value>,
1081}
1082
1083#[derive(Debug, Deserialize, Serialize)]
1085#[serde(transparent)]
1086pub struct GettxspendingprevoutResponse(pub Vec<serde_json::Value>);
1087
1088#[derive(Debug, Deserialize, Serialize)]
1090pub struct GetwalletinfoResponse {
1091 pub walletname: String,
1092 pub walletversion: u32,
1093 pub format: String,
1094 pub txcount: u64,
1095 pub keypoolsize: u64,
1096 #[serde(skip_serializing_if = "Option::is_none")]
1097 pub keypoolsize_hd_internal: Option<u64>,
1098 #[serde(skip_serializing_if = "Option::is_none")]
1099 pub unlocked_until: Option<serde_json::Value>,
1100 pub paytxfee: f64,
1101 pub private_keys_enabled: bool,
1102 pub avoid_reuse: bool,
1103 pub scanning: serde_json::Value,
1104 pub descriptors: bool,
1105 pub external_signer: bool,
1106 pub blank: bool,
1107 #[serde(skip_serializing_if = "Option::is_none")]
1108 pub birthtime: Option<serde_json::Value>,
1109 pub flags: Vec<serde_json::Value>,
1110 pub lastprocessedblock: serde_json::Value,
1111}
1112
1113#[derive(Debug, Deserialize, Serialize)]
1115#[serde(transparent)]
1116pub struct GetzmqnotificationsResponse(pub Vec<serde_json::Value>);
1117
1118#[derive(Debug, Deserialize, Serialize)]
1120pub struct HelpResponse {}
1121
1122#[derive(Debug, Deserialize, Serialize)]
1129#[serde(transparent)]
1130pub struct ImportdescriptorsResponse(pub Vec<serde_json::Value>);
1131
1132#[derive(Debug, Deserialize, Serialize)]
1135#[serde(transparent)]
1136pub struct ImportmempoolResponse(pub serde_json::Value);
1137
1138#[derive(Debug, Deserialize, Serialize)]
1141#[serde(transparent)]
1142pub struct JoinpsbtsResponse(pub String);
1143
1144#[derive(Debug, Deserialize, Serialize)]
1148#[serde(transparent)]
1149pub struct ListaddressgroupingsResponse(pub Vec<serde_json::Value>);
1150
1151#[derive(Debug, Deserialize, Serialize)]
1153#[serde(transparent)]
1154pub struct ListbannedResponse(pub Vec<serde_json::Value>);
1155
1156#[derive(Debug, Deserialize, Serialize)]
1158pub struct ListdescriptorsResponse {
1159 pub wallet_name: String,
1160 pub descriptors: Vec<serde_json::Value>,
1161}
1162
1163#[derive(Debug, Deserialize, Serialize)]
1165#[serde(transparent)]
1166pub struct ListlabelsResponse(pub Vec<serde_json::Value>);
1167
1168#[derive(Debug, Deserialize, Serialize)]
1171#[serde(transparent)]
1172pub struct ListlockunspentResponse(pub Vec<serde_json::Value>);
1173
1174#[derive(Debug, Deserialize, Serialize)]
1176#[serde(transparent)]
1177pub struct ListreceivedbyaddressResponse(pub Vec<serde_json::Value>);
1178
1179#[derive(Debug, Deserialize, Serialize)]
1181#[serde(transparent)]
1182pub struct ListreceivedbylabelResponse(pub Vec<serde_json::Value>);
1183
1184#[derive(Debug, Deserialize, Serialize)]
1188pub struct ListsinceblockResponse {
1189 pub transactions: Vec<serde_json::Value>,
1190 #[serde(skip_serializing_if = "Option::is_none")]
1191 pub removed: Option<Vec<serde_json::Value>>,
1192 pub lastblock: String,
1193}
1194
1195#[derive(Debug, Deserialize, Serialize)]
1199#[serde(transparent)]
1200pub struct ListtransactionsResponse(pub Vec<serde_json::Value>);
1201
1202#[derive(Debug, Deserialize, Serialize)]
1206#[serde(transparent)]
1207pub struct ListunspentResponse(pub Vec<serde_json::Value>);
1208
1209#[derive(Debug, Deserialize, Serialize)]
1211pub struct ListwalletdirResponse {
1212 pub wallets: Vec<String>,
1213}
1214
1215#[derive(Debug, Deserialize, Serialize)]
1218#[serde(transparent)]
1219pub struct ListwalletsResponse(pub Vec<serde_json::Value>);
1220
1221#[derive(Debug, Deserialize, Serialize)]
1228pub struct LoadtxoutsetResponse {
1229 pub coins_loaded: u64,
1230 pub tip_hash: String,
1231 pub base_height: u64,
1232 pub path: String,
1233}
1234
1235#[derive(Debug, Deserialize, Serialize)]
1239pub struct LoadwalletResponse {
1240 pub name: String,
1241 #[serde(skip_serializing_if = "Option::is_none")]
1242 pub warnings: Option<Vec<serde_json::Value>>,
1243}
1244
1245#[derive(Debug, Deserialize, Serialize)]
1255#[serde(transparent)]
1256pub struct LockunspentResponse(pub bool);
1257
1258#[derive(Debug, Deserialize, Serialize)]
1267pub struct LoggingResponse {
1268 pub category: bool,
1269}
1270
1271#[derive(Debug, Deserialize, Serialize)]
1281pub struct MigratewalletResponse {
1282 pub wallet_name: String,
1283 #[serde(skip_serializing_if = "Option::is_none")]
1284 pub watchonly_name: Option<String>,
1285 #[serde(skip_serializing_if = "Option::is_none")]
1286 pub solvables_name: Option<String>,
1287 pub backup_path: String,
1288}
1289
1290#[derive(Debug, Deserialize, Serialize)]
1292#[serde(transparent)]
1293pub struct PrioritisetransactionResponse(pub bool);
1294
1295#[derive(Debug, Deserialize, Serialize)]
1298#[serde(transparent)]
1299pub struct PruneblockchainResponse(pub u64);
1300
1301#[derive(Debug, Deserialize, Serialize)]
1315pub struct PsbtbumpfeeResponse {
1316 pub psbt: String,
1317 pub origfee: f64,
1318 pub fee: f64,
1319 pub errors: Vec<serde_json::Value>,
1320}
1321
1322#[derive(Debug, Deserialize, Serialize)]
1327pub struct RescanblockchainResponse {
1328 pub start_height: u64,
1329 pub stop_height: u64,
1330}
1331
1332#[derive(Debug, Deserialize, Serialize)]
1337pub struct RestorewalletResponse {
1338 pub name: String,
1339 #[serde(skip_serializing_if = "Option::is_none")]
1340 pub warnings: Option<Vec<serde_json::Value>>,
1341}
1342
1343#[derive(Debug, Deserialize, Serialize)]
1345pub struct SavemempoolResponse {
1346 pub filename: String,
1347}
1348
1349#[derive(Debug, Deserialize, Serialize)]
1352#[serde(untagged)]
1353#[allow(clippy::large_enum_variant)]
1354pub enum ScanblocksResponse {
1355 Started {
1356 from_height: u64,
1357 to_height: u64,
1358 relevant_blocks: Vec<serde_json::Value>,
1359 completed: bool,
1360 },
1361 Status {
1362 progress: u64,
1363 current_height: u64,
1364 },
1365 Aborted(bool),
1366}
1367
1368#[derive(Debug, Deserialize, Serialize)]
1386#[serde(untagged)]
1387#[allow(clippy::large_enum_variant)]
1388pub enum ScantxoutsetResponse {
1389 Started {
1390 success: bool,
1391 txouts: u64,
1392 height: u64,
1393 bestblock: String,
1394 unspents: Vec<serde_json::Value>,
1395 total_amount: f64,
1396 },
1397 Aborted(bool),
1398 Status(serde_json::Value),
1399}
1400
1401#[derive(Debug, Deserialize, Serialize)]
1403#[serde(transparent)]
1404pub struct SchemaResponse(pub serde_json::Value);
1405
1406#[derive(Debug, Deserialize, Serialize)]
1410pub struct SendResponse {
1411 pub complete: bool,
1412 #[serde(skip_serializing_if = "Option::is_none")]
1413 pub txid: Option<bitcoin::Txid>,
1414 #[serde(skip_serializing_if = "Option::is_none")]
1415 pub hex: Option<String>,
1416 #[serde(skip_serializing_if = "Option::is_none")]
1417 pub psbt: Option<String>,
1418}
1419
1420#[derive(Debug, Deserialize, Serialize)]
1426pub struct SendallResponse {
1427 pub complete: bool,
1428 #[serde(skip_serializing_if = "Option::is_none")]
1429 pub txid: Option<bitcoin::Txid>,
1430 #[serde(skip_serializing_if = "Option::is_none")]
1431 pub hex: Option<String>,
1432 #[serde(skip_serializing_if = "Option::is_none")]
1433 pub psbt: Option<String>,
1434}
1435
1436#[derive(Debug, Deserialize, Serialize)]
1439#[serde(untagged)]
1440#[allow(clippy::large_enum_variant)]
1441pub enum SendmanyResponse {
1442 Variant1(bitcoin::Txid),
1443 Variant2 { txid: bitcoin::Txid, fee_reason: String },
1444}
1445
1446#[derive(Debug, Deserialize, Serialize)]
1450#[serde(transparent)]
1451pub struct SendmsgtopeerResponse(pub serde_json::Value);
1452
1453#[derive(Debug, Deserialize, Serialize)]
1463#[serde(transparent)]
1464pub struct SendrawtransactionResponse(pub String);
1465
1466#[derive(Debug, Deserialize, Serialize)]
1469#[serde(untagged)]
1470#[allow(clippy::large_enum_variant)]
1471pub enum SendtoaddressResponse {
1472 Variant1(bitcoin::Txid),
1473 Variant2 { txid: bitcoin::Txid, fee_reason: String },
1474}
1475
1476#[derive(Debug, Deserialize, Serialize)]
1478#[serde(transparent)]
1479pub struct SetnetworkactiveResponse(pub bool);
1480
1481#[derive(Debug, Deserialize, Serialize)]
1484#[serde(transparent)]
1485pub struct SettxfeeResponse(pub bool);
1486
1487#[derive(Debug, Deserialize, Serialize)]
1489pub struct SetwalletflagResponse {
1490 pub flag_name: String,
1491 pub flag_state: bool,
1492 #[serde(skip_serializing_if = "Option::is_none")]
1493 pub warnings: Option<String>,
1494}
1495
1496#[derive(Debug, Deserialize, Serialize)]
1499#[serde(transparent)]
1500pub struct SignmessageResponse(pub String);
1501
1502#[derive(Debug, Deserialize, Serialize)]
1504#[serde(transparent)]
1505pub struct SignmessagewithprivkeyResponse(pub String);
1506
1507#[derive(Debug, Deserialize, Serialize)]
1513pub struct SignrawtransactionwithkeyResponse {
1514 pub hex: String,
1515 pub complete: bool,
1516 #[serde(skip_serializing_if = "Option::is_none")]
1517 pub errors: Option<Vec<serde_json::Value>>,
1518}
1519
1520#[derive(Debug, Deserialize, Serialize)]
1525pub struct SignrawtransactionwithwalletResponse {
1526 pub hex: String,
1527 pub complete: bool,
1528 #[serde(skip_serializing_if = "Option::is_none")]
1529 pub errors: Option<Vec<serde_json::Value>>,
1530}
1531
1532#[derive(Debug, Deserialize, Serialize)]
1534pub struct SimulaterawtransactionResponse {
1535 pub balance_change: f64,
1536}
1537
1538#[derive(Debug, Deserialize, Serialize)]
1540#[serde(transparent)]
1541pub struct StopResponse(pub String);
1542
1543#[derive(Debug, Deserialize, Serialize)]
1546#[serde(untagged)]
1547#[allow(clippy::large_enum_variant)]
1548pub enum SubmitblockResponse {
1549 Variant2(String),
1550}
1551
1552#[derive(Debug, Deserialize, Serialize)]
1557pub struct SubmitpackageResponse {
1558 pub package_msg: String,
1559 pub tx_results: serde_json::Value,
1560 #[serde(skip_serializing_if = "Option::is_none")]
1561 pub replaced_transactions: Option<Vec<serde_json::Value>>,
1562}
1563
1564#[derive(Debug, Deserialize, Serialize)]
1576#[serde(transparent)]
1577pub struct TestmempoolacceptResponse(pub Vec<serde_json::Value>);
1578
1579#[derive(Debug, Deserialize, Serialize)]
1582pub struct UnloadwalletResponse {
1583 #[serde(skip_serializing_if = "Option::is_none")]
1584 pub warnings: Option<Vec<serde_json::Value>>,
1585}
1586
1587#[derive(Debug, Deserialize, Serialize)]
1589#[serde(transparent)]
1590pub struct UptimeResponse(pub u64);
1591
1592#[derive(Debug, Deserialize, Serialize)]
1594#[serde(transparent)]
1595pub struct UtxoupdatepsbtResponse(pub String);
1596
1597#[derive(Debug, Deserialize, Serialize)]
1599pub struct ValidateaddressResponse {
1600 pub isvalid: bool,
1601 #[serde(skip_serializing_if = "Option::is_none")]
1602 pub address: Option<String>,
1603 #[serde(rename = "scriptPubKey")]
1604 #[serde(skip_serializing_if = "Option::is_none")]
1605 pub script_pubkey: Option<String>,
1606 #[serde(skip_serializing_if = "Option::is_none")]
1607 pub isscript: Option<bool>,
1608 #[serde(skip_serializing_if = "Option::is_none")]
1609 pub iswitness: Option<bool>,
1610 #[serde(skip_serializing_if = "Option::is_none")]
1611 pub witness_version: Option<u32>,
1612 #[serde(skip_serializing_if = "Option::is_none")]
1613 pub witness_program: Option<String>,
1614 #[serde(skip_serializing_if = "Option::is_none")]
1615 pub error: Option<String>,
1616 #[serde(skip_serializing_if = "Option::is_none")]
1617 pub error_locations: Option<Vec<serde_json::Value>>,
1618}
1619
1620#[derive(Debug, Deserialize, Serialize)]
1622#[serde(transparent)]
1623pub struct VerifychainResponse(pub bool);
1624
1625#[derive(Debug, Deserialize, Serialize)]
1627#[serde(transparent)]
1628pub struct VerifymessageResponse(pub bool);
1629
1630#[derive(Debug, Deserialize, Serialize)]
1633#[serde(transparent)]
1634pub struct VerifytxoutproofResponse(pub Vec<serde_json::Value>);
1635
1636#[derive(Debug, Deserialize, Serialize)]
1642pub struct WaitforblockResponse {
1643 pub hash: String,
1644 pub height: u64,
1645}
1646
1647#[derive(Debug, Deserialize, Serialize)]
1654pub struct WaitforblockheightResponse {
1655 pub hash: String,
1656 pub height: u64,
1657}
1658
1659#[derive(Debug, Deserialize, Serialize)]
1665pub struct WaitfornewblockResponse {
1666 pub hash: String,
1667 pub height: u64,
1668}
1669
1670#[derive(Debug, Deserialize, Serialize)]
1675pub struct WalletcreatefundedpsbtResponse {
1676 pub psbt: String,
1677 pub fee: f64,
1678 pub changepos: u64,
1679}
1680
1681#[derive(Debug, Deserialize, Serialize)]
1683pub struct WalletdisplayaddressResponse {
1684 pub address: String,
1685}
1686
1687#[derive(Debug, Deserialize, Serialize)]
1691pub struct WalletprocesspsbtResponse {
1692 pub psbt: String,
1693 pub complete: bool,
1694 #[serde(skip_serializing_if = "Option::is_none")]
1695 pub hex: Option<String>,
1696}