Skip to content

Commit 14a0652

Browse files
committed
tests: add test for 'getaddressinfo' RPC result 'ischange' field
1 parent 93d1aa9 commit 14a0652

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

test/functional/wallet_basic.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,14 +479,30 @@ def run_test(self):
479479
# Verify nothing new in wallet
480480
assert_equal(total_txs, len(self.nodes[0].listtransactions("*", 99999)))
481481

482-
# Test getaddressinfo. Note that these addresses are taken from disablewallet.py
482+
# Test getaddressinfo on external address. Note that these addresses are taken from disablewallet.py
483483
assert_raises_rpc_error(-5, "Invalid address", self.nodes[0].getaddressinfo, "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy")
484484
address_info = self.nodes[0].getaddressinfo("mneYUmWYsuk7kySiURxCi3AGxrAqZxLgPZ")
485485
assert_equal(address_info['address'], "mneYUmWYsuk7kySiURxCi3AGxrAqZxLgPZ")
486486
assert_equal(address_info["scriptPubKey"], "76a9144e3854046c7bd1594ac904e4793b6a45b36dea0988ac")
487487
assert not address_info["ismine"]
488488
assert not address_info["iswatchonly"]
489489
assert not address_info["isscript"]
490+
assert not address_info["ischange"]
491+
492+
# Test getaddressinfo 'ischange' field on change address.
493+
self.nodes[0].generate(1)
494+
destination = self.nodes[1].getnewaddress()
495+
txid = self.nodes[0].sendtoaddress(destination, 0.123)
496+
tx = self.nodes[0].decoderawtransaction(self.nodes[0].getrawtransaction(txid))
497+
output_addresses = [vout['scriptPubKey']['addresses'][0] for vout in tx["vout"]]
498+
assert len(output_addresses) > 1
499+
for address in output_addresses:
500+
ischange = self.nodes[0].getaddressinfo(address)['ischange']
501+
assert_equal(ischange, address != destination)
502+
if ischange:
503+
change = address
504+
self.nodes[0].setlabel(change, 'foobar')
505+
assert_equal(self.nodes[0].getaddressinfo(change)['ischange'], False)
490506

491507
if __name__ == '__main__':
492508
WalletTest().main()

0 commit comments

Comments
 (0)