aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaibato <saibato.naga@pm.me>2021-08-23 12:49:10 -0400
committerfanquake <fanquake@gmail.com>2022-02-15 09:22:05 +0000
commitc671c6f4706d17cccfe5c35950235f8777a7975f (patch)
tree5ef5505ca8e3e18dc2928da6499840aa8d281dd4
parenta5a153882609c8d77118a88a9a440d4966c8d0ef (diff)
downloadbitcoin-c671c6f4706d17cccfe5c35950235f8777a7975f.tar.xz
the result of CWallet::IsHDEnabled() was initialized with true.
But in case of no keys or a blank hd wallet the iterator would be skipped and not set to false but true, since the loop would be not entered. That had resulted in a wrong return and subsequent false HD and watch-only icon display in gui when reloading a wallet after closing. Update src/wallet/wallet.cpp Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Github-Pull: #22781 Rebased-From: 8733a8e84c4b2e484f6ed6159fcf5f29a360d42e
-rw-r--r--src/wallet/wallet.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 9a61ca698d..c139788c78 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -1360,9 +1360,10 @@ CAmount CWallet::GetDebit(const CTransaction& tx, const isminefilter& filter) co
bool CWallet::IsHDEnabled() const
{
// All Active ScriptPubKeyMans must be HD for this to be true
- bool result = true;
+ bool result = false;
for (const auto& spk_man : GetActiveScriptPubKeyMans()) {
- result &= spk_man->IsHDEnabled();
+ if (!spk_man->IsHDEnabled()) return false;
+ result = true;
}
return result;
}