elements/src/wallet
Wladimir J. van der Laan 262167393d
Merge #10952: [wallet] Remove vchDefaultKey and have better first run detection
e53615b Remove vchDefaultKey and have better first run detection (Andrew Chow)

Pull request description:

  Removes vchDefaultKey which was only used for first run detection. Improves wallet first run detection by checking to see if any keys were read from the database.

  This also fixes a (rather contrived) case where an encrypted non-HD wallet has corruption such that the default key is no longer valid and is loaded into a Core version that supports HD wallets. This causes a runtime exception since a new hd master key is generated as the software believes the wallet file is newly created but cannot add the generated key to the wallet since it is encrypted. I was only able to replicate this error by creating a non-hd wallet, encrypting it, then editing the wallet using `db_dump` and `db_load` before loading the wallet with hd enabled. This problem has been reported by [two](https://bitcointalk.org/index.php?topic=1993244.0) [users](https://bitcointalk.org/index.php?topic=1746976.msg17511261#msg17511261) so it is something that can happen, although that raises the question of "what corrupted the default key".

  ~P.S. I don't know what's up with the whitespace changes. I think my text editor is doing something stupid but I don't think those are important enough to attempt undoing them.~ Undid those

Tree-SHA512: 63b485f356566e8ffa033ad9b7101f7f6b56372b29ec2a43b947b0eeb1ada4c2cfe24740515d013aedd5f51aa1890dfbe499d2c5c062fc1b5d272324728a7d55
2017-08-18 18:56:49 +02:00
..
test Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
coincontrol.h Make QT fee displays use GetMinimumFee instead of estimateSmartFee 2017-07-14 23:41:37 -04:00
crypter.cpp Merge #10193: scripted-diff: Remove #include <boost/foreach.hpp> 2017-07-04 18:05:18 +02:00
crypter.h Remove vchDefaultKey and have better first run detection 2017-08-15 15:05:53 -07:00
db.cpp Merge #11017: [wallet] Close DB on error. 2017-08-15 21:24:21 +02:00
db.h Merge #9964: Add const to methods that do not modify the object for which it is called 2017-08-16 02:09:49 +02:00
feebumper.cpp Merge #11039: Avoid second mapWallet lookup 2017-08-18 16:25:59 +02:00
feebumper.h Refactor to use CoinControl in GetMinimumFee and FeeBumper 2017-07-14 23:10:58 -04:00
rpcdump.cpp [wallet] Cache keyid -> keypool id mappings 2017-08-04 11:08:39 -04:00
rpcwallet.cpp Merge #11039: Avoid second mapWallet lookup 2017-08-18 16:25:59 +02:00
rpcwallet.h scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
wallet.cpp Merge #10952: [wallet] Remove vchDefaultKey and have better first run detection 2017-08-18 18:56:49 +02:00
wallet.h Merge #10952: [wallet] Remove vchDefaultKey and have better first run detection 2017-08-18 18:56:49 +02:00
walletdb.cpp Merge #10952: [wallet] Remove vchDefaultKey and have better first run detection 2017-08-18 18:56:49 +02:00
walletdb.h Merge #10952: [wallet] Remove vchDefaultKey and have better first run detection 2017-08-18 18:56:49 +02:00