aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Chow <[email protected]>2019-10-07 14:11:34 -0400
committerAndrew Chow <[email protected]>2019-11-22 22:41:27 -0500
commit596f6460f9fd8273665c8754ccd673d93a4f25f0 (patch)
treee61c4da9158cff7385ee7c46d79df719658de673 /src
parentMerge #17447: wallet: Make -walletdir network only (diff)
downloaddiscoin-596f6460f9fd8273665c8754ccd673d93a4f25f0.tar.xz
discoin-596f6460f9fd8273665c8754ccd673d93a4f25f0.zip
Key pool: Move CanGetAddresses call
Call LegacyScriptPubKeyMan::CanGetAddresses directly instead of calling CWallet::CanGetAddresses to only query the relevant key manager This is a minor change in behavior: call now only happens if a new key needs to be reserved, since if a key is already reserved it might fail unnecessarily. This change also serves as a sanity check https://github.com/bitcoin/bitcoin/pull/16341#discussion_r331238394
Diffstat (limited to 'src')
-rw-r--r--src/wallet/scriptpubkeyman.cpp4
-rw-r--r--src/wallet/wallet.cpp3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/wallet/scriptpubkeyman.cpp b/src/wallet/scriptpubkeyman.cpp
index 3eaaf3786..9c5f2b509 100644
--- a/src/wallet/scriptpubkeyman.cpp
+++ b/src/wallet/scriptpubkeyman.cpp
@@ -264,6 +264,10 @@ bool LegacyScriptPubKeyMan::EncryptKeys(CKeyingMaterial& vMasterKeyIn)
bool LegacyScriptPubKeyMan::GetReservedDestination(const OutputType type, bool internal, int64_t& index, CKeyPool& keypool)
{
+ if (!CanGetAddresses(internal)) {
+ return false;
+ }
+
if (!ReserveKeyFromKeyPool(index, keypool, internal)) {
return false;
}
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index b1e1385ca..89309a01d 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -3298,9 +3298,6 @@ bool ReserveDestination::GetReservedDestination(CTxDestination& dest, bool inter
return false;
}
- if (!pwallet->CanGetAddresses(internal)) {
- return false;
- }
if (nIndex == -1)
{