Skip to content

Commit 69f588a

Browse files
committed
wallet: Set upgraded descriptor cache flag for newly created wallets
Although WalletBatch::LoadWallet performs the descriptor cache upgrade, because new wallets do not have the descriptor flag set yet, the upgrade does not run and set the flag. Since new wallets will always being using the upgraded cache, there's no reason to wait to set the flag, so set it when the wallet flags are being initialized for new wallets.
1 parent 2df824f commit 69f588a

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/wallet/wallet.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2904,7 +2904,9 @@ std::shared_ptr<CWallet> CWallet::Create(WalletContext& context, const std::stri
29042904
// ensure this wallet.dat can only be opened by clients supporting HD with chain split and expects no default key
29052905
walletInstance->SetMinVersion(FEATURE_LATEST);
29062906

2907-
walletInstance->InitWalletFlags(wallet_creation_flags);
2907+
// Init with passed flags.
2908+
// Always set the cache upgrade flag as this feature is supported from the beginning.
2909+
walletInstance->InitWalletFlags(wallet_creation_flags | WALLET_FLAG_LAST_HARDENED_XPUB_CACHED);
29082910

29092911
// Only descriptor wallets can be created
29102912
assert(walletInstance->IsWalletFlagSet(WALLET_FLAG_DESCRIPTORS));

0 commit comments

Comments
 (0)