Changeset View
Changeset View
Standalone View
Standalone View
test/functional/wallet_createwallet.py
Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
"test") | "test") | ||||
w6.walletpassphrase('thisisapassphrase', 10) | w6.walletpassphrase('thisisapassphrase', 10) | ||||
w6.signmessage(w6.getnewaddress('', 'legacy'), "test") | w6.signmessage(w6.getnewaddress('', 'legacy'), "test") | ||||
w6.keypoolrefill(1) | w6.keypoolrefill(1) | ||||
# There should only be 1 key | # There should only be 1 key | ||||
walletinfo = w6.getwalletinfo() | walletinfo = w6.getwalletinfo() | ||||
assert_equal(walletinfo['keypoolsize'], 1) | assert_equal(walletinfo['keypoolsize'], 1) | ||||
assert_equal(walletinfo['keypoolsize_hd_internal'], 1) | assert_equal(walletinfo['keypoolsize_hd_internal'], 1) | ||||
# Empty passphrase, error | # Allow empty passphrase, but there should be a warning | ||||
assert_raises_rpc_error(-16, | resp = self.nodes[0].createwallet( | ||||
'Cannot encrypt a wallet with a blank password', | wallet_name='w7', | ||||
self.nodes[0].createwallet, | disable_private_keys=False, | ||||
'w7', | blank=False, | ||||
False, | passphrase='') | ||||
False, | assert_equal( | ||||
'') | resp['warning'], | ||||
'Empty string given as passphrase, wallet will not be encrypted.') | |||||
w7 = node.get_wallet_rpc('w7') | |||||
assert_raises_rpc_error( | |||||
-15, | |||||
'Error: running with an unencrypted wallet, but walletpassphrase was called.', | |||||
w7.walletpassphrase, | |||||
'', | |||||
10) | |||||
self.log.info('Test making a wallet with avoid reuse flag') | |||||
# Use positional arguments to check for bug where avoid_reuse could not | |||||
# be set for wallets without needing them to be encrypted | |||||
self.nodes[0].createwallet('w8', False, False, '', True) | |||||
w8 = node.get_wallet_rpc('w8') | |||||
assert_raises_rpc_error( | |||||
-15, | |||||
'Error: running with an unencrypted wallet, but walletpassphrase was called.', | |||||
w7.walletpassphrase, | |||||
'', | |||||
10) | |||||
assert_equal(w8.getwalletinfo()["avoid_reuse"], True) | |||||
self.log.info( | self.log.info( | ||||
'Using a passphrase with private keys disabled returns error') | 'Using a passphrase with private keys disabled returns error') | ||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-4, | -4, | ||||
'Passphrase provided but private keys are disabled. A passphrase is only used to encrypt private keys, so cannot be used for wallets with private keys disabled.', | 'Passphrase provided but private keys are disabled. A passphrase is only used to encrypt private keys, so cannot be used for wallets with private keys disabled.', | ||||
self.nodes[0].createwallet, | self.nodes[0].createwallet, | ||||
wallet_name='w8', | wallet_name='w9', | ||||
disable_private_keys=True, | disable_private_keys=True, | ||||
passphrase='thisisapassphrase') | passphrase='thisisapassphrase') | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
CreateWalletTest().main() | CreateWalletTest().main() |