diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-06-16 14:45:32 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-07-11 15:24:29 +0200 |
commit | 6c37f7fd78832442a26e56bd0787974927df4fb2 (patch) | |
tree | 9c4138c7e53bbd4607a13de9169dd2d0dabee6be /src/wallet.cpp | |
parent | 6ad2c2402e694d0052f8f1688181a80fe3eef2e7 (diff) |
`getrawchangeaddress` should fail when keypool exhausted
An user on IRC reported an issue where `getrawchangeaddress`
keeps returning a single address when the keypool is exhausted.
In my opinion this is strange behaviour.
- Change CReserveKey to fail when running out of keys in the keypool.
- Make `getrawchangeaddress` return RPC_WALLET_KEYPOOL_RAN_OUT when
unable to create an address.
- Add a Python RPC test for checking the keypool behaviour in combination
with encrypted wallets.
Diffstat (limited to 'src/wallet.cpp')
-rw-r--r-- | src/wallet.cpp | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/wallet.cpp b/src/wallet.cpp index a54494f935..8fdc5f4b20 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -2010,11 +2010,7 @@ bool CReserveKey::GetReservedKey(CPubKey& pubkey) if (nIndex != -1) vchPubKey = keypool.vchPubKey; else { - if (pwallet->vchDefaultKey.IsValid()) { - LogPrintf("CReserveKey::GetReservedKey(): Warning: Using default key instead of a new key, top up your keypool!"); - vchPubKey = pwallet->vchDefaultKey; - } else - return false; + return false; } } assert(vchPubKey.IsValid()); |