MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / LoadWalletInternal

Function LoadWalletInternal

src/wallet/wallet.cpp:284–314  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

282
283namespace {
284std::shared_ptr<CWallet> LoadWalletInternal(WalletContext& context, const std::string& name, std::optional<bool> load_on_start, const DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error, std::vector<bilingual_str>& warnings)
285{
286 try {
287 std::unique_ptr<WalletDatabase> database = MakeWalletDatabase(name, options, status, error);
288 if (!database) {
289 error = Untranslated("Wallet file verification failed.") + Untranslated(" ") + error;
290 return nullptr;
291 }
292
293 context.chain->initMessage(_("Loading wallet…"));
294 std::shared_ptr<CWallet> wallet = CWallet::LoadExisting(context, name, std::move(database), error, warnings);
295 if (!wallet) {
296 error = Untranslated("Wallet loading failed.") + Untranslated(" ") + error;
297 status = DatabaseStatus::FAILED_LOAD;
298 return nullptr;
299 }
300
301 NotifyWalletLoaded(context, wallet);
302 AddWallet(context, wallet);
303 wallet->postInitProcess();
304
305 // Write the wallet setting
306 UpdateWalletSetting(*context.chain, name, load_on_start, warnings);
307
308 return wallet;
309 } catch (const std::runtime_error& e) {
310 error = Untranslated(e.what());
311 status = DatabaseStatus::FAILED_LOAD;
312 return nullptr;
313 }
314}
315
316class FastWalletRescanFilter
317{

Callers 1

LoadWalletFunction · 0.85

Calls 9

MakeWalletDatabaseFunction · 0.85
UntranslatedFunction · 0.85
_Function · 0.85
NotifyWalletLoadedFunction · 0.85
AddWalletFunction · 0.85
UpdateWalletSettingFunction · 0.85
initMessageMethod · 0.80
postInitProcessMethod · 0.80
whatMethod · 0.45

Tested by

no test coverage detected