diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 62f0f53b01..f41f07635a 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -245,6 +245,11 @@ std::shared_ptr LoadWalletInternal(WalletContext& context, const std::s return nullptr; } + // Legacy wallets are being deprecated, warn if the loaded wallet is legacy + if (!wallet->IsWalletFlagSet(WALLET_FLAG_DESCRIPTORS)) { + warnings.push_back(_("Wallet loaded successfully. The legacy wallet type is being deprecated and support for creating and opening legacy wallets will be removed in the future. Legacy wallets can be migrated to a descriptor wallet with migratewallet.")); + } + NotifyWalletLoaded(context, wallet); AddWallet(context, wallet); wallet->postInitProcess(); diff --git a/test/functional/wallet_backwards_compatibility.py b/test/functional/wallet_backwards_compatibility.py index 5088e11eda..cc76d2f136 100755 --- a/test/functional/wallet_backwards_compatibility.py +++ b/test/functional/wallet_backwards_compatibility.py @@ -264,10 +264,11 @@ class BackwardsCompatibilityTest(BitcoinTestFramework): os.path.join(node_master_wallets_dir, "u1_v16") ) load_res = node_master.loadwallet("u1_v16") - # Make sure this wallet opens without warnings. See https://github.com/bitcoin/bitcoin/pull/19054 + # Make sure this wallet opens with only the migration warning. See https://github.com/bitcoin/bitcoin/pull/19054 if int(node_master.getnetworkinfo()["version"]) >= 249900: # loadwallet#warnings (added in v25) -- only present if there is a warning - assert "warnings" not in load_res + # Legacy wallets will have only a deprecation warning + assert_equal(load_res["warnings"], ["Wallet loaded successfully. The legacy wallet type is being deprecated and support for creating and opening legacy wallets will be removed in the future. Legacy wallets can be migrated to a descriptor wallet with migratewallet."]) else: # loadwallet#warning (deprecated in v25) -- always present, but empty string if no warning assert_equal(load_res["warning"], '')