mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 06:58:57 +01:00
Merge #11854: Split up key and script metadata for better type safety
9c8eca7 Split up key and script metadata for better type safety (Russell Yanofsky)
Pull request description:
Suggested by @TheBlueMatt
https://github.com/bitcoin/bitcoin/pull/11403#discussion_r155599383
Combining the maps was probably never a good arrangement but is more
problematic now in presence of WitnessV0ScriptHash and WitnessV0KeyHash types.
Tree-SHA512: 9263e9c01090fb49221e91d88a88241a9691dda3e92d86041c8e284306a64d3af5e2438249f9dcc3e6e4a5c11c1a89f975a86d55690adf95bf2636f15f99f92a
This commit is contained in:
@@ -282,7 +282,7 @@ bool CWallet::AddCryptedKey(const CPubKey &vchPubKey,
|
||||
}
|
||||
}
|
||||
|
||||
bool CWallet::LoadKeyMetadata(const CTxDestination& keyID, const CKeyMetadata &meta)
|
||||
bool CWallet::LoadKeyMetadata(const CKeyID& keyID, const CKeyMetadata &meta)
|
||||
{
|
||||
AssertLockHeld(cs_wallet); // mapKeyMetadata
|
||||
UpdateTimeFirstKey(meta.nCreateTime);
|
||||
@@ -290,6 +290,14 @@ bool CWallet::LoadKeyMetadata(const CTxDestination& keyID, const CKeyMetadata &m
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CWallet::LoadScriptMetadata(const CScriptID& script_id, const CKeyMetadata &meta)
|
||||
{
|
||||
AssertLockHeld(cs_wallet); // m_script_metadata
|
||||
UpdateTimeFirstKey(meta.nCreateTime);
|
||||
m_script_metadata[script_id] = meta;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CWallet::LoadCryptedKey(const CPubKey &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret)
|
||||
{
|
||||
return CCryptoKeyStore::AddCryptedKey(vchPubKey, vchCryptedSecret);
|
||||
@@ -338,7 +346,7 @@ bool CWallet::AddWatchOnly(const CScript& dest)
|
||||
{
|
||||
if (!CCryptoKeyStore::AddWatchOnly(dest))
|
||||
return false;
|
||||
const CKeyMetadata& meta = mapKeyMetadata[CScriptID(dest)];
|
||||
const CKeyMetadata& meta = m_script_metadata[CScriptID(dest)];
|
||||
UpdateTimeFirstKey(meta.nCreateTime);
|
||||
NotifyWatchonlyChanged(true);
|
||||
return CWalletDB(*dbw).WriteWatchOnly(dest, meta);
|
||||
@@ -346,7 +354,7 @@ bool CWallet::AddWatchOnly(const CScript& dest)
|
||||
|
||||
bool CWallet::AddWatchOnly(const CScript& dest, int64_t nCreateTime)
|
||||
{
|
||||
mapKeyMetadata[CScriptID(dest)].nCreateTime = nCreateTime;
|
||||
m_script_metadata[CScriptID(dest)].nCreateTime = nCreateTime;
|
||||
return AddWatchOnly(dest);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user