Changeset View
Changeset View
Standalone View
Standalone View
test/functional/wallet_keypool_topup.py
Show First 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
self.log.info("Generate keys for wallet") | self.log.info("Generate keys for wallet") | ||||
for _ in range(90): | for _ in range(90): | ||||
addr_oldpool = self.nodes[1].getnewaddress() | addr_oldpool = self.nodes[1].getnewaddress() | ||||
for _ in range(20): | for _ in range(20): | ||||
addr_extpool = self.nodes[1].getnewaddress() | addr_extpool = self.nodes[1].getnewaddress() | ||||
self.log.info("Send funds to wallet") | self.log.info("Send funds to wallet") | ||||
self.nodes[0].sendtoaddress(addr_oldpool, 10) | self.nodes[0].sendtoaddress(addr_oldpool, 10000000) | ||||
self.nodes[0].generate(1) | self.nodes[0].generate(1) | ||||
self.nodes[0].sendtoaddress(addr_extpool, 5) | self.nodes[0].sendtoaddress(addr_extpool, 5000000) | ||||
self.nodes[0].generate(1) | self.nodes[0].generate(1) | ||||
self.sync_blocks() | self.sync_blocks() | ||||
self.log.info("Restart node with wallet backup") | self.log.info("Restart node with wallet backup") | ||||
self.stop_node(1) | self.stop_node(1) | ||||
shutil.copyfile(wallet_backup_path, wallet_path) | shutil.copyfile(wallet_backup_path, wallet_path) | ||||
self.start_node(1, self.extra_args[1]) | self.start_node(1, self.extra_args[1]) | ||||
connect_nodes(self.nodes[0], self.nodes[1]) | connect_nodes(self.nodes[0], self.nodes[1]) | ||||
self.sync_all() | self.sync_all() | ||||
self.log.info("Verify keypool is restored and balance is correct") | self.log.info("Verify keypool is restored and balance is correct") | ||||
assert_equal(self.nodes[1].getbalance(), 15) | assert_equal(self.nodes[1].getbalance(), 15000000) | ||||
assert_equal(self.nodes[1].listtransactions() | assert_equal(self.nodes[1].listtransactions() | ||||
[0]['category'], "receive") | [0]['category'], "receive") | ||||
# Check that we have marked all keys up to the used keypool key as used | # Check that we have marked all keys up to the used keypool key as used | ||||
assert_equal(self.nodes[1].getaddressinfo( | assert_equal(self.nodes[1].getaddressinfo( | ||||
self.nodes[1].getnewaddress())['hdkeypath'], "m/0'/0'/110'") | self.nodes[1].getnewaddress())['hdkeypath'], "m/0'/0'/110'") | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
KeypoolRestoreTest().main() | KeypoolRestoreTest().main() |