Changeset View
Changeset View
Standalone View
Standalone View
test/functional/wallet_keypool.py
Show All 13 Lines | def set_test_params(self): | ||||
self.num_nodes = 1 | self.num_nodes = 1 | ||||
def run_test(self): | def run_test(self): | ||||
nodes = self.nodes | nodes = self.nodes | ||||
addr_before_encrypting = nodes[0].getnewaddress() | addr_before_encrypting = nodes[0].getnewaddress() | ||||
addr_before_encrypting_data = nodes[ | addr_before_encrypting_data = nodes[ | ||||
0].getaddressinfo(addr_before_encrypting) | 0].getaddressinfo(addr_before_encrypting) | ||||
wallet_info_old = nodes[0].getwalletinfo() | wallet_info_old = nodes[0].getwalletinfo() | ||||
assert(addr_before_encrypting_data[ | assert(addr_before_encrypting_data['hdseedid'] == | ||||
'hdmasterkeyid'] == wallet_info_old['hdmasterkeyid']) | wallet_info_old['hdseedid']) | ||||
# Encrypt wallet and wait to terminate | # Encrypt wallet and wait to terminate | ||||
nodes[0].node_encrypt_wallet('test') | nodes[0].node_encrypt_wallet('test') | ||||
# Restart node 0 | # Restart node 0 | ||||
self.start_node(0) | self.start_node(0) | ||||
# Keep creating keys | # Keep creating keys | ||||
addr = nodes[0].getnewaddress() | addr = nodes[0].getnewaddress() | ||||
addr_data = nodes[0].getaddressinfo(addr) | addr_data = nodes[0].getaddressinfo(addr) | ||||
wallet_info = nodes[0].getwalletinfo() | wallet_info = nodes[0].getwalletinfo() | ||||
assert(addr_before_encrypting_data[ | assert( | ||||
'hdmasterkeyid'] != wallet_info['hdmasterkeyid']) | addr_before_encrypting_data['hdseedid'] != wallet_info['hdseedid']) | ||||
assert(addr_data['hdmasterkeyid'] == wallet_info['hdmasterkeyid']) | assert(addr_data['hdseedid'] == wallet_info['hdseedid']) | ||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-12, "Error: Keypool ran out, please call keypoolrefill first", nodes[0].getnewaddress) | -12, "Error: Keypool ran out, please call keypoolrefill first", nodes[0].getnewaddress) | ||||
# put six (plus 2) new keys in the keypool (100% external-, +100% internal-keys, 1 in min) | # put six (plus 2) new keys in the keypool (100% external-, +100% internal-keys, 1 in min) | ||||
nodes[0].walletpassphrase('test', 12000) | nodes[0].walletpassphrase('test', 12000) | ||||
nodes[0].keypoolrefill(6) | nodes[0].keypoolrefill(6) | ||||
nodes[0].walletlock() | nodes[0].walletlock() | ||||
wi = nodes[0].getwalletinfo() | wi = nodes[0].getwalletinfo() | ||||
▲ Show 20 Lines • Show All 50 Lines • Show Last 20 Lines |