Merge pull request #4937
ccca27a [Wallet] Watch-only fixes (Cozz Lovan)
This commit is contained in:
@@ -89,6 +89,13 @@ bool CWallet::AddKeyPubKey(const CKey& secret, const CPubKey &pubkey)
|
||||
AssertLockHeld(cs_wallet); // mapKeyMetadata
|
||||
if (!CCryptoKeyStore::AddKeyPubKey(secret, pubkey))
|
||||
return false;
|
||||
|
||||
// check if we need to remove from watch-only
|
||||
CScript script;
|
||||
script = GetScriptForDestination(pubkey.GetID());
|
||||
if (HaveWatchOnly(script))
|
||||
RemoveWatchOnly(script);
|
||||
|
||||
if (!fFileBacked)
|
||||
return true;
|
||||
if (!IsCrypted()) {
|
||||
@@ -171,6 +178,20 @@ bool CWallet::AddWatchOnly(const CScript &dest)
|
||||
return CWalletDB(strWalletFile).WriteWatchOnly(dest);
|
||||
}
|
||||
|
||||
bool CWallet::RemoveWatchOnly(const CScript &dest)
|
||||
{
|
||||
AssertLockHeld(cs_wallet);
|
||||
if (!CCryptoKeyStore::RemoveWatchOnly(dest))
|
||||
return false;
|
||||
if (!HaveWatchOnly())
|
||||
NotifyWatchonlyChanged(false);
|
||||
if (fFileBacked)
|
||||
if (!CWalletDB(strWalletFile).EraseWatchOnly(dest))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CWallet::LoadWatchOnly(const CScript &dest)
|
||||
{
|
||||
return CCryptoKeyStore::AddWatchOnly(dest);
|
||||
|
||||
Reference in New Issue
Block a user