Skip to content

Commit 3d07bce

Browse files
committed
Test Fixed Properly
1 parent b0522e0 commit 3d07bce

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

test/functional/wallet_importdescriptors.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)