aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2019-08-01 11:54:06 +0800
committerfanquake <fanquake@gmail.com>2019-08-01 12:13:33 +0800
commitb7fbf74b980ebb122ae34b142f2cc49b44b92de3 (patch)
tree3c47de3c56e88f30f1b7d44ad295ff7ac8559d90 /src
parent25f0edd59fee454495da39c6c63f19b97cd75e96 (diff)
parent0b1f4b3c6685d0a6307926d43d166add538061b7 (diff)
downloadbitcoin-b7fbf74b980ebb122ae34b142f2cc49b44b92de3.tar.xz
Merge #16502: wallet: Drop unused OldKey
0b1f4b3c6685d0a6307926d43d166add538061b7 wallet: Drop unused OldKey (João Barbosa) Pull request description: Replaces #16494, `OldKey` (previously `CWalletKey`) was never serialized in the code history which means that unserialization support is not required, so remove the code entirely. ACKs for top commit: jnewbery: ACK 0b1f4b3c6685d0a6307926d43d166add538061b7 laanwj: ACK 0b1f4b3c6685d0a6307926d43d166add538061b7 fanquake: ACK 0b1f4b3c6685d0a6307926d43d166add538061b7 Tree-SHA512: 92e9b2d6fc41f2765492d5d69d18fc4302c40ab44f28c8c30ca652c72767fbc484848c51a38ecf1f447849767a583c398784408bb5f64f9c86f9a5872b325ffc
Diffstat (limited to 'src')
-rw-r--r--src/wallet/wallet.h22
-rw-r--r--src/wallet/walletdb.cpp18
2 files changed, 7 insertions, 33 deletions
diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h
index 86c2cf851c..8b0ae8bb85 100644
--- a/src/wallet/wallet.h
+++ b/src/wallet/wallet.h
@@ -663,28 +663,6 @@ public:
}
};
-/** Private key that was serialized by an old wallet (only used for deserialization) */
-struct OldKey {
- CPrivKey vchPrivKey;
- ADD_SERIALIZE_METHODS;
-
- template <typename Stream, typename Operation>
- inline void SerializationOp(Stream& s, Operation ser_action) {
- // no longer used by the wallet, thus dropped after deserialization:
- int64_t nTimeCreated;
- int64_t nTimeExpires;
- std::string strComment;
-
- int nVersion = s.GetVersion();
- if (!(s.GetType() & SER_GETHASH))
- READWRITE(nVersion);
- READWRITE(vchPrivKey);
- READWRITE(nTimeCreated);
- READWRITE(nTimeExpires);
- READWRITE(LIMITED_STRING(strComment, 65536));
- }
-};
-
struct CoinSelectionParams
{
bool use_bnb = true;
diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp
index 9f467c0f5a..635997afc9 100644
--- a/src/wallet/walletdb.cpp
+++ b/src/wallet/walletdb.cpp
@@ -115,7 +115,6 @@ bool WalletBatch::WriteCryptedKey(const CPubKey& vchPubKey,
return false;
}
EraseIC(std::make_pair(DBKeys::KEY, vchPubKey));
- EraseIC(std::make_pair(DBKeys::OLD_KEY, vchPubKey));
return true;
}
@@ -256,7 +255,7 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
ssValue >> fYes;
if (fYes == '1')
pwallet->LoadWatchOnly(script);
- } else if (strType == DBKeys::KEY || strType == DBKeys::OLD_KEY) {
+ } else if (strType == DBKeys::KEY) {
CPubKey vchPubKey;
ssKey >> vchPubKey;
if (!vchPubKey.IsValid())
@@ -268,14 +267,8 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
CPrivKey pkey;
uint256 hash;
- if (strType == DBKeys::KEY) {
- wss.nKeys++;
- ssValue >> pkey;
- } else {
- OldKey wkey;
- ssValue >> wkey;
- pkey = wkey.vchPrivKey;
- }
+ wss.nKeys++;
+ ssValue >> pkey;
// Old wallets store keys as DBKeys::KEY [pubkey] => [privkey]
// ... which was slow for wallets with lots of keys, because the public key is re-derived from the private key
@@ -407,6 +400,9 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
strErr = "Error reading wallet database: Unknown non-tolerable wallet flags found";
return false;
}
+ } else if (strType == DBKeys::OLD_KEY) {
+ strErr = "Found unsupported 'wkey' record, try loading with version 0.18";
+ return false;
} else if (strType != DBKeys::BESTBLOCK && strType != DBKeys::BESTBLOCK_NOMERKLE &&
strType != DBKeys::MINVERSION && strType != DBKeys::ACENTRY &&
strType != DBKeys::VERSION && strType != DBKeys::SETTINGS) {
@@ -428,7 +424,7 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
bool WalletBatch::IsKeyType(const std::string& strType)
{
- return (strType == DBKeys::KEY || strType == DBKeys::OLD_KEY ||
+ return (strType == DBKeys::KEY ||
strType == DBKeys::MASTER_KEY || strType == DBKeys::CRYPTED_KEY);
}