File tree Expand file tree Collapse file tree 28 files changed +134
-23
lines changed Expand file tree Collapse file tree 28 files changed +134
-23
lines changed Original file line number Diff line number Diff line change @@ -155,6 +155,7 @@ crate::impl_client_v17__import_pubkey!();
155
155
crate :: impl_client_v17__import_wallet!( ) ;
156
156
crate :: impl_client_v17__key_pool_refill!( ) ;
157
157
crate :: impl_client_v17__list_address_groupings!( ) ;
158
+ crate :: impl_client_v22__list_descriptors!( ) ;
158
159
crate :: impl_client_v18__list_received_by_label!( ) ;
159
160
crate :: impl_client_v17__list_labels!( ) ;
160
161
crate :: impl_client_v17__list_lock_unspent!( ) ;
Original file line number Diff line number Diff line change 9
9
//!
10
10
//! See or use the `define_jsonrpc_minreq_client!` macro to define a `Client`.
11
11
12
+ /// Implements Bitcoin Core JSON-RPC API method `listdescriptors`
13
+ #[ macro_export]
14
+ macro_rules! impl_client_v22__list_descriptors {
15
+ ( ) => {
16
+ impl Client {
17
+ pub fn list_descriptors( & self ) -> Result <ListDescriptors > {
18
+ self . call( "listdescriptors" , & [ ] )
19
+ }
20
+ }
21
+ } ;
22
+ }
23
+
12
24
/// Implements Bitcoin Core JSON-RPC API method `loadwallet`
13
25
#[ macro_export]
14
26
macro_rules! impl_client_v22__load_wallet {
Original file line number Diff line number Diff line change @@ -156,6 +156,7 @@ crate::impl_client_v17__import_pubkey!();
156
156
crate :: impl_client_v17__import_wallet!( ) ;
157
157
crate :: impl_client_v17__key_pool_refill!( ) ;
158
158
crate :: impl_client_v17__list_address_groupings!( ) ;
159
+ crate :: impl_client_v22__list_descriptors!( ) ;
159
160
crate :: impl_client_v18__list_received_by_label!( ) ;
160
161
crate :: impl_client_v17__list_labels!( ) ;
161
162
crate :: impl_client_v17__list_lock_unspent!( ) ;
Original file line number Diff line number Diff line change @@ -153,6 +153,7 @@ crate::impl_client_v17__import_pubkey!();
153
153
crate :: impl_client_v17__import_wallet!( ) ;
154
154
crate :: impl_client_v17__key_pool_refill!( ) ;
155
155
crate :: impl_client_v17__list_address_groupings!( ) ;
156
+ crate :: impl_client_v22__list_descriptors!( ) ;
156
157
crate :: impl_client_v18__list_received_by_label!( ) ;
157
158
crate :: impl_client_v17__list_labels!( ) ;
158
159
crate :: impl_client_v17__list_lock_unspent!( ) ;
Original file line number Diff line number Diff line change @@ -155,6 +155,7 @@ crate::impl_client_v17__import_pubkey!();
155
155
crate :: impl_client_v17__import_wallet!( ) ;
156
156
crate :: impl_client_v17__key_pool_refill!( ) ;
157
157
crate :: impl_client_v17__list_address_groupings!( ) ;
158
+ crate :: impl_client_v22__list_descriptors!( ) ;
158
159
crate :: impl_client_v18__list_received_by_label!( ) ;
159
160
crate :: impl_client_v17__list_labels!( ) ;
160
161
crate :: impl_client_v17__list_lock_unspent!( ) ;
Original file line number Diff line number Diff line change @@ -159,6 +159,7 @@ crate::impl_client_v17__import_pubkey!();
159
159
crate :: impl_client_v17__import_wallet!( ) ;
160
160
crate :: impl_client_v17__key_pool_refill!( ) ;
161
161
crate :: impl_client_v17__list_address_groupings!( ) ;
162
+ crate :: impl_client_v22__list_descriptors!( ) ;
162
163
crate :: impl_client_v17__list_labels!( ) ;
163
164
crate :: impl_client_v18__list_received_by_label!( ) ;
164
165
crate :: impl_client_v17__list_lock_unspent!( ) ;
Original file line number Diff line number Diff line change @@ -155,6 +155,7 @@ crate::impl_client_v17__import_pubkey!();
155
155
crate :: impl_client_v17__import_wallet!( ) ;
156
156
crate :: impl_client_v17__key_pool_refill!( ) ;
157
157
crate :: impl_client_v17__list_address_groupings!( ) ;
158
+ crate :: impl_client_v22__list_descriptors!( ) ;
158
159
crate :: impl_client_v18__list_received_by_label!( ) ;
159
160
crate :: impl_client_v17__list_labels!( ) ;
160
161
crate :: impl_client_v17__list_lock_unspent!( ) ;
Original file line number Diff line number Diff line change @@ -157,6 +157,7 @@ crate::impl_client_v17__import_pubkey!();
157
157
crate :: impl_client_v17__import_wallet!( ) ;
158
158
crate :: impl_client_v17__key_pool_refill!( ) ;
159
159
crate :: impl_client_v17__list_address_groupings!( ) ;
160
+ crate :: impl_client_v22__list_descriptors!( ) ;
160
161
crate :: impl_client_v18__list_received_by_label!( ) ;
161
162
crate :: impl_client_v17__list_labels!( ) ;
162
163
crate :: impl_client_v17__list_lock_unspent!( ) ;
Original file line number Diff line number Diff line change @@ -157,6 +157,7 @@ crate::impl_client_v17__import_pubkey!();
157
157
crate :: impl_client_v17__import_wallet!( ) ;
158
158
crate :: impl_client_v17__key_pool_refill!( ) ;
159
159
crate :: impl_client_v17__list_address_groupings!( ) ;
160
+ crate :: impl_client_v22__list_descriptors!( ) ;
160
161
crate :: impl_client_v18__list_received_by_label!( ) ;
161
162
crate :: impl_client_v17__list_labels!( ) ;
162
163
crate :: impl_client_v17__list_lock_unspent!( ) ;
Original file line number Diff line number Diff line change @@ -495,6 +495,25 @@ fn wallet__import_pubkey() {
495
495
let _: ( ) = node. client . import_pubkey ( & pubkey) . expect ( "importpubkey" ) ;
496
496
}
497
497
498
+ #[ test]
499
+ #[ cfg( not( feature = "v21_and_below" ) ) ]
500
+ fn wallet__list_descriptors ( ) {
501
+ let node = Node :: with_wallet ( Wallet :: None , & [ ] ) ;
502
+ let wallet_name = "desc_wallet" ;
503
+
504
+ #[ cfg( feature = "v22_and_below" ) ]
505
+ node. client . create_wallet_with_descriptors ( wallet_name) . expect ( "create descriptor wallet" ) ;
506
+
507
+ // v23 onwards uses descriptor wallets by default.
508
+ #[ cfg( not( feature = "v22_and_below" ) ) ]
509
+ node. client . create_wallet ( wallet_name) . expect ( "create wallet" ) ;
510
+
511
+ let json: ListDescriptors = node. client . list_descriptors ( ) . expect ( "listdescriptors" ) ;
512
+
513
+ let has_descriptor = json. descriptors . iter ( ) . any ( |desc_info| desc_info. descriptor . starts_with ( "wpkh(" ) || desc_info. descriptor . starts_with ( "pkh(" ) ) ;
514
+ assert ! ( has_descriptor, "No standard descriptors found in listdescriptors result" ) ;
515
+ }
516
+
498
517
#[ test]
499
518
fn wallet__list_unspent__modelled ( ) {
500
519
let node = match ( ) {
You can’t perform that action at this time.
0 commit comments