Changeset View
Changeset View
Standalone View
Standalone View
test/functional/keypool-topup.py
Show All 29 Lines | class KeypoolRestoreTest(BitcoinTestFramework): | ||||
def run_test(self): | def run_test(self): | ||||
self.tmpdir = self.options.tmpdir | self.tmpdir = self.options.tmpdir | ||||
self.nodes[0].generate(101) | self.nodes[0].generate(101) | ||||
self.log.info("Make backup of wallet") | self.log.info("Make backup of wallet") | ||||
self.stop_node(1) | self.stop_node(1) | ||||
shutil.copyfile(self.tmpdir + "/node1/regtest/wallet.dat", | shutil.copyfile(self.tmpdir + "/node1/regtest/wallets/wallet.dat", | ||||
self.tmpdir + "/wallet.bak") | self.tmpdir + "/wallet.bak") | ||||
self.start_node(1, self.extra_args[1]) | self.start_node(1, self.extra_args[1]) | ||||
connect_nodes_bi(self.nodes[0], self.nodes[1]) | connect_nodes_bi(self.nodes[0], self.nodes[1]) | ||||
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, 10) | ||||
self.nodes[0].generate(1) | self.nodes[0].generate(1) | ||||
self.nodes[0].sendtoaddress(addr_extpool, 5) | self.nodes[0].sendtoaddress(addr_extpool, 5) | ||||
self.nodes[0].generate(1) | self.nodes[0].generate(1) | ||||
sync_blocks(self.nodes) | sync_blocks(self.nodes) | ||||
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(self.tmpdir + "/wallet.bak", | shutil.copyfile(self.tmpdir + "/wallet.bak", | ||||
self.tmpdir + "/node1/regtest/wallet.dat") | self.tmpdir + "/node1/regtest/wallets/wallet.dat") | ||||
self.log.info("Verify keypool is restored and balance is correct") | self.log.info("Verify keypool is restored and balance is correct") | ||||
self.start_node(1, self.extra_args[1]) | self.start_node(1, self.extra_args[1]) | ||||
connect_nodes_bi(self.nodes[0], self.nodes[1]) | connect_nodes_bi(self.nodes[0], self.nodes[1]) | ||||
self.sync_all() | self.sync_all() | ||||
assert_equal(self.nodes[1].getbalance(), 15) | assert_equal(self.nodes[1].getbalance(), 15) | ||||
Show All 10 Lines |