From 1e48796c99b63aa8fa8451ce7b0c20759ea43500 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Mon, 22 Apr 2019 00:23:33 -0400 Subject: Make UpgradeWallet a member function of CWallet --- src/wallet/wallet.cpp | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'src/wallet/wallet.cpp') diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index a6cd543205..c16fb80b9e 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -3831,7 +3831,7 @@ std::shared_ptr CWallet::CreateWalletFromFile(interfaces::Chain& chain, } if (gArgs.GetBoolArg("-upgradewallet", false)) { - if (!UpgradeWallet(walletInstance, gArgs.GetBoolArg("-upgradewallet", 0), error, warnings)) { + if (!UpgradeWallet(gArgs.GetBoolArg("-upgradewallet", 0), error, warnings)) { return nullptr; } } @@ -4097,38 +4097,37 @@ const CAddressBookData* CWallet::FindAddressBookEntry(const CTxDestination& dest return &address_book_it->second; } -bool CWallet::UpgradeWallet(std::shared_ptr walletInstance, int version, std::string& error, std::vector& warnings) +bool CWallet::UpgradeWallet(int version, std::string& error, std::vector& warnings) { - int prev_version = walletInstance->GetVersion(); + int prev_version = GetVersion(); int nMaxVersion = version; if (nMaxVersion == 0) // the -upgradewallet without argument case { - walletInstance->WalletLogPrintf("Performing wallet upgrade to %i\n", FEATURE_LATEST); + WalletLogPrintf("Performing wallet upgrade to %i\n", FEATURE_LATEST); nMaxVersion = FEATURE_LATEST; - walletInstance->SetMinVersion(FEATURE_LATEST); // permanently upgrade the wallet immediately + SetMinVersion(FEATURE_LATEST); // permanently upgrade the wallet immediately } else - walletInstance->WalletLogPrintf("Allowing wallet upgrade up to %i\n", nMaxVersion); - if (nMaxVersion < walletInstance->GetVersion()) + WalletLogPrintf("Allowing wallet upgrade up to %i\n", nMaxVersion); + if (nMaxVersion < GetVersion()) { error = _("Cannot downgrade wallet").translated; return false; } - walletInstance->SetMaxVersion(nMaxVersion); + SetMaxVersion(nMaxVersion); - LOCK(walletInstance->cs_wallet); + LOCK(cs_wallet); // Do not upgrade versions to any version between HD_SPLIT and FEATURE_PRE_SPLIT_KEYPOOL unless already supporting HD_SPLIT - int max_version = walletInstance->GetVersion(); - if (!walletInstance->CanSupportFeature(FEATURE_HD_SPLIT) && max_version >= FEATURE_HD_SPLIT && max_version < FEATURE_PRE_SPLIT_KEYPOOL) { + int max_version = GetVersion(); + if (!CanSupportFeature(FEATURE_HD_SPLIT) && max_version >= FEATURE_HD_SPLIT && max_version < FEATURE_PRE_SPLIT_KEYPOOL) { error = _("Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.").translated; return false; } - for (auto spk_man : walletInstance->GetActiveScriptPubKeyMans()) { - if (!spk_man->Upgrade(prev_version, error)) { - return false; - } + for (auto spk_man : GetActiveScriptPubKeyMans()) { + if (!spk_man->Upgrade(prev_version, error)) { + return false; } } return true; -- cgit v1.2.3