Changeset View
Changeset View
Standalone View
Standalone View
src/wallet/load.cpp
Show All 39 Lines | if (gArgs.IsArgSet("-walletdir")) { | ||||
} | } | ||||
gArgs.ForceSetArg("-walletdir", canonical_wallet_dir.string()); | gArgs.ForceSetArg("-walletdir", canonical_wallet_dir.string()); | ||||
} | } | ||||
LogPrintf("Using wallet directory %s\n", GetWalletDir().string()); | LogPrintf("Using wallet directory %s\n", GetWalletDir().string()); | ||||
chain.initMessage(_("Verifying wallet(s)...").translated); | chain.initMessage(_("Verifying wallet(s)...").translated); | ||||
// Parameter interaction code should have thrown an error if -salvagewallet | |||||
// was enabled with more than wallet file, so the wallet_files size check | |||||
// here should have no effect. | |||||
bool salvage_wallet = | |||||
gArgs.GetBoolArg("-salvagewallet", false) && wallet_files.size() <= 1; | |||||
// Keep track of each wallet absolute path to detect duplicates. | // Keep track of each wallet absolute path to detect duplicates. | ||||
std::set<fs::path> wallet_paths; | std::set<fs::path> wallet_paths; | ||||
for (const auto &wallet_file : wallet_files) { | for (const auto &wallet_file : wallet_files) { | ||||
WalletLocation location(wallet_file); | WalletLocation location(wallet_file); | ||||
if (!wallet_paths.insert(location.GetPath()).second) { | if (!wallet_paths.insert(location.GetPath()).second) { | ||||
chain.initError(strprintf(_("Error loading wallet %s. Duplicate " | chain.initError(strprintf(_("Error loading wallet %s. Duplicate " | ||||
"-wallet filename specified."), | "-wallet filename specified."), | ||||
wallet_file)); | wallet_file)); | ||||
return false; | return false; | ||||
} | } | ||||
bilingual_str error_string; | bilingual_str error_string; | ||||
std::vector<bilingual_str> warnings; | std::vector<bilingual_str> warnings; | ||||
bool verify_success = | bool verify_success = CWallet::Verify(chainParams, chain, location, | ||||
CWallet::Verify(chainParams, chain, location, salvage_wallet, | |||||
error_string, warnings); | error_string, warnings); | ||||
if (!warnings.empty()) { | if (!warnings.empty()) { | ||||
chain.initWarning(Join(warnings, "\n", OpTranslated)); | chain.initWarning(Join(warnings, "\n", OpTranslated)); | ||||
} | } | ||||
if (!verify_success) { | if (!verify_success) { | ||||
chain.initError(error_string); | chain.initError(error_string); | ||||
return false; | return false; | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 65 Lines • Show Last 20 Lines |