@@ -211,10 +211,10 @@ fn main() {
211
211
test_backupwallet ( & cl) ;
212
212
test_wait_for_new_block ( & cl) ;
213
213
test_wait_for_block ( & cl) ;
214
+ test_get_descriptor_info ( & cl) ;
215
+ test_derive_addresses ( & cl) ;
214
216
//TODO import_multi(
215
217
//TODO verify_message(
216
- //TODO get_descriptor_info(&self, desc: &str) -> Result<json::GetDescriptorInfoResult> {
217
- //TODO derive_addresses(&self, descriptor: &str, range: Option<[u32; 2]>) -> Result<Vec<Address>> {
218
218
//TODO encrypt_wallet(&self, passphrase: &str) -> Result<()> {
219
219
//TODO get_by_id<T: queryable::Queryable<Self>>(
220
220
//TODO add_multisig_address(
@@ -1327,6 +1327,33 @@ fn test_wait_for_block(cl: &Client) {
1327
1327
assert_eq ! ( cl. wait_for_block( & hash, 0 ) . unwrap( ) , json:: BlockRef { hash, height} ) ;
1328
1328
}
1329
1329
1330
+ fn test_get_descriptor_info ( cl : & Client ) {
1331
+ let res = cl. get_descriptor_info ( r"pkh(cSQPHDBwXGjVzWRqAHm6zfvQhaTuj1f2bFH58h55ghbjtFwvmeXR)" ) . unwrap ( ) ;
1332
+ assert_eq ! ( res. descriptor, r"pkh(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)#62k9sn4x" ) ;
1333
+ assert_eq ! ( res. checksum, "37v3lm8x" ) ;
1334
+ assert_eq ! ( res. is_range, false ) ;
1335
+ assert_eq ! ( res. is_solvable, true ) ;
1336
+ assert_eq ! ( res. has_private_keys, true ) ;
1337
+
1338
+ assert ! ( cl. get_descriptor_info( "abcdef" ) . is_err( ) ) ;
1339
+ }
1340
+
1341
+ fn test_derive_addresses ( cl : & Client ) {
1342
+ let descriptor = r"pkh(02e96fe52ef0e22d2f131dd425ce1893073a3c6ad20e8cac36726393dfb4856a4c)#62k9sn4x" ;
1343
+ assert_eq ! ( cl. derive_addresses( descriptor, None ) . unwrap( ) , vec![ "mrkwtj5xpYQjHeJe5wsweNjVeTKkvR5fCr" . parse( ) . unwrap( ) ] ) ;
1344
+ assert ! ( cl. derive_addresses( descriptor, Some ( [ 0 , 1 ] ) ) . is_err( ) ) ; // Range should not be specified for an unranged descriptor
1345
+
1346
+ let descriptor = std:: concat!(
1347
+ r"wpkh([1004658e/84'/1'/0']tpubDCBEcmVKbfC9KfdydyLbJ2gfNL88grZu1XcWSW9ytTM6fi" ,
1348
+ r"tvaRmVyr8Ddf7SjZ2ZfMx9RicjYAXhuh3fmLiVLPodPEqnQQURUfrBKiiVZc8/0/*)#g8l47ngv" ,
1349
+ ) ;
1350
+ assert_eq ! ( cl. derive_addresses( descriptor, Some ( [ 0 , 1 ] ) ) . unwrap( ) , vec![
1351
+ "bcrt1q5n5tjkpva8v5s0uadu2y5f0g7pn4h5eqaq2ux2" . parse( ) . unwrap( ) ,
1352
+ "bcrt1qcgl303ht03ja2e0hudpwk7ypcxk5t478wspzlt" . parse( ) . unwrap( ) ,
1353
+ ] ) ;
1354
+ assert ! ( cl. derive_addresses( descriptor, None ) . is_err( ) ) ; // Range must be specified for a ranged descriptor
1355
+ }
1356
+
1330
1357
fn test_get_index_info ( cl : & Client ) {
1331
1358
if version ( ) >= 210000 {
1332
1359
let gii = cl. get_index_info ( ) . unwrap ( ) ;
0 commit comments