mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-04 17:52:25 +01:00
wallet: reuse change dest when recreating TX with avoidpartialspends
This commit is contained in:
@@ -448,14 +448,14 @@ class ImportDescriptorsTest(BitcoinTestFramework):
|
||||
wallet=wmulti_priv)
|
||||
|
||||
assert_equal(wmulti_priv.getwalletinfo()['keypoolsize'], 1001) # Range end (1000) is inclusive, so 1001 addresses generated
|
||||
addr = wmulti_priv.getnewaddress('', 'bech32')
|
||||
addr = wmulti_priv.getnewaddress('', 'bech32') # uses receive 0
|
||||
assert_equal(addr, 'bcrt1qdt0qy5p7dzhxzmegnn4ulzhard33s2809arjqgjndx87rv5vd0fq2czhy8') # Derived at m/84'/0'/0'/0
|
||||
change_addr = wmulti_priv.getrawchangeaddress('bech32')
|
||||
assert_equal(change_addr, 'bcrt1qt9uhe3a9hnq7vajl7a094z4s3crm9ttf8zw3f5v9gr2nyd7e3lnsy44n8e')
|
||||
change_addr = wmulti_priv.getrawchangeaddress('bech32') # uses change 0
|
||||
assert_equal(change_addr, 'bcrt1qt9uhe3a9hnq7vajl7a094z4s3crm9ttf8zw3f5v9gr2nyd7e3lnsy44n8e') # Derived at m/84'/1'/0'/0
|
||||
assert_equal(wmulti_priv.getwalletinfo()['keypoolsize'], 1000)
|
||||
txid = w0.sendtoaddress(addr, 10)
|
||||
self.generate(self.nodes[0], 6)
|
||||
send_txid = wmulti_priv.sendtoaddress(w0.getnewaddress(), 8)
|
||||
send_txid = wmulti_priv.sendtoaddress(w0.getnewaddress(), 8) # uses change 1
|
||||
decoded = wmulti_priv.gettransaction(txid=send_txid, verbose=True)['decoded']
|
||||
assert_equal(len(decoded['vin'][0]['txinwitness']), 4)
|
||||
self.sync_all()
|
||||
@@ -481,10 +481,10 @@ class ImportDescriptorsTest(BitcoinTestFramework):
|
||||
wallet=wmulti_pub)
|
||||
|
||||
assert_equal(wmulti_pub.getwalletinfo()['keypoolsize'], 1000) # The first one was already consumed by previous import and is detected as used
|
||||
addr = wmulti_pub.getnewaddress('', 'bech32')
|
||||
addr = wmulti_pub.getnewaddress('', 'bech32') # uses receive 1
|
||||
assert_equal(addr, 'bcrt1qp8s25ckjl7gr6x2q3dx3tn2pytwp05upkjztk6ey857tt50r5aeqn6mvr9') # Derived at m/84'/0'/0'/1
|
||||
change_addr = wmulti_pub.getrawchangeaddress('bech32')
|
||||
assert_equal(change_addr, 'bcrt1qzxl0qz2t88kljdnkzg4n4gapr6kte26390gttrg79x66nt4p04fssj53nl')
|
||||
change_addr = wmulti_pub.getrawchangeaddress('bech32') # uses change 2
|
||||
assert_equal(change_addr, 'bcrt1qp6j3jw8yetefte7kw6v5pc89rkgakzy98p6gf7ayslaveaxqyjusnw580c') # Derived at m/84'/1'/0'/2
|
||||
assert send_txid in self.nodes[0].getrawmempool(True)
|
||||
assert send_txid in (x['txid'] for x in wmulti_pub.listunspent(0))
|
||||
assert_equal(wmulti_pub.getwalletinfo()['keypoolsize'], 999)
|
||||
|
||||
Reference in New Issue
Block a user