diff options
Diffstat (limited to 'qa/rpc-tests/keypool.py')
-rwxr-xr-x | qa/rpc-tests/keypool.py | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/qa/rpc-tests/keypool.py b/qa/rpc-tests/keypool.py deleted file mode 100755 index cee58563f0..0000000000 --- a/qa/rpc-tests/keypool.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (c) 2014-2016 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. -"""Test the wallet keypool and interaction with wallet encryption/locking.""" - -from test_framework.test_framework import BitcoinTestFramework -from test_framework.util import * - -class KeyPoolTest(BitcoinTestFramework): - - def run_test(self): - nodes = self.nodes - addr_before_encrypting = nodes[0].getnewaddress() - addr_before_encrypting_data = nodes[0].validateaddress(addr_before_encrypting) - wallet_info_old = nodes[0].getwalletinfo() - assert(addr_before_encrypting_data['hdmasterkeyid'] == wallet_info_old['hdmasterkeyid']) - - # Encrypt wallet and wait to terminate - nodes[0].encryptwallet('test') - bitcoind_processes[0].wait() - # Restart node 0 - nodes[0] = start_node(0, self.options.tmpdir) - # Keep creating keys - addr = nodes[0].getnewaddress() - addr_data = nodes[0].validateaddress(addr) - wallet_info = nodes[0].getwalletinfo() - assert(addr_before_encrypting_data['hdmasterkeyid'] != wallet_info['hdmasterkeyid']) - assert(addr_data['hdmasterkeyid'] == wallet_info['hdmasterkeyid']) - - assert_raises_jsonrpc(-12, "Error: Keypool ran out, please call keypoolrefill first", nodes[0].getnewaddress) - - # put three new keys in the keypool - nodes[0].walletpassphrase('test', 12000) - nodes[0].keypoolrefill(3) - nodes[0].walletlock() - - # drain the keys - addr = set() - addr.add(nodes[0].getrawchangeaddress()) - addr.add(nodes[0].getrawchangeaddress()) - addr.add(nodes[0].getrawchangeaddress()) - addr.add(nodes[0].getrawchangeaddress()) - # assert that four unique addresses were returned - assert(len(addr) == 4) - # the next one should fail - assert_raises_jsonrpc(-12, "Keypool ran out", nodes[0].getrawchangeaddress) - - # refill keypool with three new addresses - nodes[0].walletpassphrase('test', 1) - nodes[0].keypoolrefill(3) - # test walletpassphrase timeout - time.sleep(1.1) - assert_equal(nodes[0].getwalletinfo()["unlocked_until"], 0) - - # drain them by mining - nodes[0].generate(1) - nodes[0].generate(1) - nodes[0].generate(1) - nodes[0].generate(1) - assert_raises_jsonrpc(-12, "Keypool ran out", nodes[0].generate, 1) - - def __init__(self): - super().__init__() - self.setup_clean_chain = False - self.num_nodes = 1 - - def setup_network(self): - self.nodes = self.setup_nodes() - -if __name__ == '__main__': - KeyPoolTest().main() |