Changeset View
Changeset View
Standalone View
Standalone View
test/functional/wallet_basic.py
Show First 20 Lines • Show All 509 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
# our wallet. | # our wallet. | ||||
assert_raises_rpc_error(-4, "Transaction has too long of a mempool chain", | assert_raises_rpc_error(-4, "Transaction has too long of a mempool chain", | ||||
self.nodes[0].sendtoaddress, sending_addr, node0_balance - Decimal('0.01')) | self.nodes[0].sendtoaddress, sending_addr, node0_balance - Decimal('0.01')) | ||||
# Verify nothing new in wallet | # Verify nothing new in wallet | ||||
assert_equal(total_txs, len( | assert_equal(total_txs, len( | ||||
self.nodes[0].listtransactions("*", 99999))) | self.nodes[0].listtransactions("*", 99999))) | ||||
# Test getaddressinfo. Note that these addresses are taken from | # Test getaddressinfo on external address. Note that these addresses | ||||
# disablewallet.py | # are taken from disablewallet.py | ||||
assert_raises_rpc_error(-5, "Invalid address", | assert_raises_rpc_error(-5, "Invalid address", | ||||
self.nodes[0].getaddressinfo, "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy") | self.nodes[0].getaddressinfo, "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy") | ||||
address_info = self.nodes[0].getaddressinfo( | address_info = self.nodes[0].getaddressinfo( | ||||
"mneYUmWYsuk7kySiURxCi3AGxrAqZxLgPZ") | "mneYUmWYsuk7kySiURxCi3AGxrAqZxLgPZ") | ||||
assert_equal(address_info['address'], | assert_equal(address_info['address'], | ||||
"bchreg:qp8rs4qyd3aazk22eyzwg7fmdfzmxm02pywavdajx4") | "bchreg:qp8rs4qyd3aazk22eyzwg7fmdfzmxm02pywavdajx4") | ||||
assert_equal(address_info["scriptPubKey"], | assert_equal(address_info["scriptPubKey"], | ||||
"76a9144e3854046c7bd1594ac904e4793b6a45b36dea0988ac") | "76a9144e3854046c7bd1594ac904e4793b6a45b36dea0988ac") | ||||
assert not address_info["ismine"] | assert not address_info["ismine"] | ||||
assert not address_info["iswatchonly"] | assert not address_info["iswatchonly"] | ||||
assert not address_info["isscript"] | assert not address_info["isscript"] | ||||
assert not address_info["ischange"] | |||||
# Test getaddressinfo 'ischange' field on change address. | |||||
self.nodes[0].generate(1) | |||||
destination = self.nodes[1].getnewaddress() | |||||
txid = self.nodes[0].sendtoaddress(destination, 0.123) | |||||
tx = self.nodes[0].decoderawtransaction( | |||||
self.nodes[0].getrawtransaction(txid)) | |||||
output_addresses = [vout['scriptPubKey']['addresses'][0] | |||||
for vout in tx["vout"]] | |||||
assert len(output_addresses) > 1 | |||||
for address in output_addresses: | |||||
ischange = self.nodes[0].getaddressinfo(address)['ischange'] | |||||
assert_equal(ischange, address != destination) | |||||
if ischange: | |||||
change = address | |||||
self.nodes[0].setlabel(change, 'foobar') | |||||
assert_equal(self.nodes[0].getaddressinfo(change)['ischange'], False) | |||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
WalletTest().main() | WalletTest().main() |