Skip to content

Commit d70285a

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 dba4cc1 commit d70285a

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
@@ -2909,7 +2909,9 @@ std::shared_ptr<CWallet> CWallet::Create(WalletContext& context, const std::stri
29092909
// ensure this wallet.dat can only be opened by clients supporting HD with chain split and expects no default key
29102910
walletInstance->SetMinVersion(FEATURE_LATEST);
29112911

2912-
walletInstance->InitWalletFlags(wallet_creation_flags);
2912+
// Init with passed flags.
2913+
// Always set the cache upgrade flag as this feature is supported from the beginning.
2914+
walletInstance->InitWalletFlags(wallet_creation_flags | WALLET_FLAG_LAST_HARDENED_XPUB_CACHED);
29132915

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

0 commit comments

Comments
 (0)