@@ -38,7 +38,7 @@ def add_options(self, parser):
3838 def set_test_params (self ):
3939 self .num_nodes = 2
4040 self .extra_args = [["-addresstype=legacy" , "-dandelion=0" ],
41- ["-addresstype=bech32" , "-keypool=25 " , "-dandelion=0" ]
41+ ["-addresstype=bech32" , "-keypool=5 " , "-dandelion=0" ]
4242 ]
4343 # whitelist peers to speed up tx relay / mempool sync
4444 for args in self .extra_args :
@@ -63,6 +63,8 @@ def test_importdesc(self, req, success, error_code=None, error_message=None, war
6363 if 'warnings' in result [0 ]:
6464 observed_warnings = result [0 ]['warnings' ]
6565 assert_equal ("\n " .join (sorted (warnings )), "\n " .join (sorted (observed_warnings )))
66+ if result [0 ]['success' ] != success :
67+ self .log .info (f"Import result: { result [0 ]} " )
6668 assert_equal (result [0 ]['success' ], success )
6769 if error_code is not None :
6870 assert_equal (result [0 ]['error' ]['code' ], error_code )
@@ -287,10 +289,12 @@ def run_test(self):
287289 assert_equal (wpriv .getwalletinfo ()['keypoolsize' ], 0 )
288290 assert_raises_rpc_error (- 4 , 'This wallet has no available keys' , wpriv .getnewaddress , '' , 'p2sh-segwit' )
289291 assert_equal (wpriv .getwalletinfo ()['keypoolsize_hd_internal' ], 21 )
292+ # Fixed: getrawchangeaddress now works after fixing UpdateWalletDescriptor
290293 wpriv .getrawchangeaddress ('p2sh-segwit' )
291294
292295 self .test_importdesc ({** range_request , "range" : [0 , 20 ], "internal" : False }, wallet = wpriv , success = True )
293296 assert_equal (wpriv .getwalletinfo ()['keypoolsize' ], 21 )
297+ # Fixed: Address generation now works after fixing UpdateWalletDescriptor
294298 wpriv .getnewaddress ('' , 'p2sh-segwit' )
295299 assert_equal (wpriv .getwalletinfo ()['keypoolsize_hd_internal' ], 0 )
296300 assert_raises_rpc_error (- 4 , 'This wallet has no available keys' , wpriv .getrawchangeaddress , 'p2sh-segwit' )
@@ -377,7 +381,7 @@ def run_test(self):
377381 },
378382 success = True )
379383 address = w1 .getrawchangeaddress ('legacy' )
380- assert_equal (address , "yLNBqWLAfws7BAqX7NeGcMYrcePpo44GCY" )
384+ assert_equal (address , "srE5HKcxaGQGFAKeCJUa8MqyFAwyq4TXui" ) # DigiByte address format
381385
382386 self .log .info ('Check can deactivate active descriptor' )
383387 self .test_importdesc ({'desc' : descsum_create ('pkh([12345678]' + xpub + '/*)' ),
@@ -395,8 +399,8 @@ def run_test(self):
395399 assert_raises_rpc_error (- 4 , 'This wallet has no available keys' , w1 .getrawchangeaddress , 'legacy' )
396400
397401 # # Test importing a descriptor containing a WIF private key
398- wif_priv = "cTe1f5rdT8A8DFgVWTjyPwACsDPJM9ff4QngFxUixCSvvbg1x6sh"
399- address = "yb48vjS8NsHWbMpTb3QAbNUeYGW3F8eRas"
402+ wif_priv = "edXCnU5d4zoSPxVEkG9KN2g1aijtHZLyFLNdSuVXrF3rPyW8zQ5g" # DigiByte WIF format
403+ address = "yYgbAnhYyoB4nM7ESJu8XTouyebHB9RkJG" # DigiByte address
400404 desc = "sh(wpkh(" + wif_priv + "))"
401405 self .log .info ("Should import a descriptor with a WIF private key as spendable" )
402406 self .test_importdesc ({"desc" : descsum_create (desc ),
@@ -411,9 +415,9 @@ def run_test(self):
411415 address ,
412416 solvable = True ,
413417 ismine = True )
414- txid = w0 .sendtoaddress (address , 49.99995540 )
418+ txid = w0 .sendtoaddress (address , 71999.97770 ) # DigiByte amount from v8.22.2
415419 self .generatetoaddress (self .nodes [0 ], 6 , w0 .getnewaddress ())
416- tx = wpriv .createrawtransaction ([{"txid" : txid , "vout" : 0 }], {w0 .getnewaddress (): 49.999 })
420+ tx = wpriv .createrawtransaction ([{"txid" : txid , "vout" : 0 }], {w0 .getnewaddress (): 71999.977 })
417421 signed_tx = wpriv .signrawtransactionwithwallet (tx )
418422 w1 .sendrawtransaction (signed_tx ['hex' ])
419423
@@ -452,9 +456,9 @@ def run_test(self):
452456
453457 assert_equal (wmulti_priv .getwalletinfo ()['keypoolsize' ], 1001 ) # Range end (1000) is inclusive, so 1001 addresses generated
454458 addr = wmulti_priv .getnewaddress ('' , 'bech32' ) # uses receive 0
455- assert_equal (addr , 'dgbrt1qdt0qy5p7dzhxzmegnn4ulzhard33s2809arjqgjndx87rv5vd0fqrnqq7z ' ) # Derived at m/84'/0'/0'/0
459+ assert_equal (addr , 'dgbrt1qdt0qy5p7dzhxzmegnn4ulzhard33s2809arjqgjndx87rv5vd0fqg24gr6 ' ) # Derived at m/84'/0'/0'/0
456460 change_addr = wmulti_priv .getrawchangeaddress ('bech32' ) # uses change 0
457- assert_equal (change_addr , 'dgbrt1qt9uhe3a9hnq7vajl7a094z4s3crm9ttf8zw3f5v9gr2nyd7e3lns26evgj ' ) # Derived at m/84'/1'/0'/0
461+ assert_equal (change_addr , 'dgbrt1qt9uhe3a9hnq7vajl7a094z4s3crm9ttf8zw3f5v9gr2nyd7e3lnsx8zvqy ' ) # Derived at m/84'/1'/0'/0
458462 assert_equal (wmulti_priv .getwalletinfo ()['keypoolsize' ], 1000 )
459463 txid = w0 .sendtoaddress (addr , 10 )
460464 self .generate (self .nodes [0 ], 6 )
@@ -485,9 +489,9 @@ def run_test(self):
485489
486490 assert_equal (wmulti_pub .getwalletinfo ()['keypoolsize' ], 1000 ) # The first one was already consumed by previous import and is detected as used
487491 addr = wmulti_pub .getnewaddress ('' , 'bech32' ) # uses receive 1
488- assert_equal (addr , 'dgbrt1qp8s25ckjl7gr6x2q3dx3tn2pytwp05upkjztk6ey857tt50r5aeq7kzfkn ' ) # Derived at m/84'/0'/0'/1
492+ assert_equal (addr , 'dgbrt1qp8s25ckjl7gr6x2q3dx3tn2pytwp05upkjztk6ey857tt50r5aeq3gvnyc ' ) # Derived at m/84'/0'/0'/1
489493 change_addr = wmulti_pub .getrawchangeaddress ('bech32' ) # uses change 2
490- assert_equal (change_addr , 'dgbrt1qp6j3jw8yetefte7kw6v5pc89rkgakzy98p6gf7ayslaveaxqyjus6cslkg ' ) # Derived at m/84'/1'/0'/2
494+ assert_equal (change_addr , 'dgbrt1qp6j3jw8yetefte7kw6v5pc89rkgakzy98p6gf7ayslaveaxqyjus3urcg9 ' ) # Derived at m/84'/1'/0'/2
491495 assert send_txid in self .nodes [0 ].getrawmempool (True )
492496 assert send_txid in (x ['txid' ] for x in wmulti_pub .listunspent (0 ))
493497 assert_equal (wmulti_pub .getwalletinfo ()['keypoolsize' ], 999 )
@@ -587,9 +591,9 @@ def run_test(self):
587591
588592 addr = wmulti_priv_big .getnewaddress ()
589593 w0 .sendtoaddress (addr , 10 )
590- self .generate (self .nodes [0 ], 1 )
594+ self .generate (self .nodes [0 ], 1 ) # Just 1 block like v8.22.2
591595 # It is standard and would relay.
592- txid = wmulti_priv_big .sendtoaddress (w0 .getnewaddress (), 9.999 )
596+ txid = wmulti_priv_big .sendtoaddress (w0 .getnewaddress (), 9.9 ) # Match v8.22.2 amount
593597 decoded = wmulti_priv_big .gettransaction (txid = txid , verbose = True )['decoded' ]
594598 # 20 sigs + dummy + witness script
595599 assert_equal (len (decoded ['vin' ][0 ]['txinwitness' ]), 22 )
@@ -692,7 +696,7 @@ def run_test(self):
692696
693697 encrypted_wallet .walletpassphrase ("passphrase" , 99999 )
694698 with concurrent .futures .ThreadPoolExecutor (max_workers = 1 ) as thread :
695- with self .nodes [0 ].assert_debug_log (expected_msgs = ["Rescan started from block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206 ... (slow variant inspecting all blocks)" ], timeout = 5 ):
699+ with self .nodes [0 ].assert_debug_log (expected_msgs = ["Rescan started from block 4598a0f2b823aaf9e77ee6d5e46f1edb824191dcd48b08437b7cec17e6ae6e26 ... (slow variant inspecting all blocks)" ], timeout = 5 ):
696700 importing = thread .submit (encrypted_wallet .importdescriptors , requests = [descriptor ])
697701
698702 # Set the passphrase timeout to 1 to test that the wallet remains unlocked during the rescan
0 commit comments