diff options
author | Andrew Chow <achow101-github@achow101.com> | 2019-04-22 00:23:33 -0400 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2020-04-13 13:21:41 -0400 |
commit | 1e48796c99b63aa8fa8451ce7b0c20759ea43500 (patch) | |
tree | 97bd301b647fde5e707961f8bc63912a321cc87e /src/wallet | |
parent | c988f27937bc79c90f4eed48552c72f1b66dc044 (diff) |
Make UpgradeWallet a member function of CWallet
Diffstat (limited to 'src/wallet')
-rw-r--r-- | src/wallet/wallet.cpp | 29 | ||||
-rw-r--r-- | src/wallet/wallet.h | 2 |
2 files changed, 15 insertions, 16 deletions
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> 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<CWallet> walletInstance, int version, std::string& error, std::vector<std::string>& warnings) +bool CWallet::UpgradeWallet(int version, std::string& error, std::vector<std::string>& 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; diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index a4787a8b21..a40c7ffe08 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -1176,7 +1176,7 @@ public: }; /** Upgrade the wallet */ - static bool UpgradeWallet(std::shared_ptr<CWallet> wallet, int version, std::string& error, std::vector<std::string>& warnings); + bool UpgradeWallet(int version, std::string& error, std::vector<std::string>& warnings); //! Returns all unique ScriptPubKeyMans in m_internal_spk_managers and m_external_spk_managers std::set<ScriptPubKeyMan*> GetActiveScriptPubKeyMans() const; |