Changeset View
Changeset View
Standalone View
Standalone View
src/wallet/init.cpp
Show All 30 Lines | public: | ||||
//! Register wallet RPCs. | //! Register wallet RPCs. | ||||
void RegisterRPC(CRPCTable &tableRPC) const override; | void RegisterRPC(CRPCTable &tableRPC) const override; | ||||
//! Responsible for reading and validating the -wallet arguments and | //! Responsible for reading and validating the -wallet arguments and | ||||
//! verifying the wallet database. | //! verifying the wallet database. | ||||
// This function will perform salvage on the wallet if requested, as long | // This function will perform salvage on the wallet if requested, as long | ||||
// as only one wallet is being loaded (WalletParameterInteraction forbids | // as only one wallet is being loaded (WalletParameterInteraction forbids | ||||
// -salvagewallet, -zapwallettxes or -upgradewallet with multiwallet). | // -salvagewallet, -zapwallettxes or -upgradewallet with multiwallet). | ||||
bool Verify(const CChainParams &chainParams) const override; | bool Verify(const CChainParams &chainParams, | ||||
interfaces::Chain &chain) const override; | |||||
//! Load wallet databases. | //! Load wallet databases. | ||||
bool Open(const CChainParams &chainParams) const override; | bool Open(const CChainParams &chainParams, | ||||
interfaces::Chain &chain) const override; | |||||
//! Complete startup of wallets. | //! Complete startup of wallets. | ||||
void Start(CScheduler &scheduler) const override; | void Start(CScheduler &scheduler) const override; | ||||
//! Flush all wallets in preparation for shutdown. | //! Flush all wallets in preparation for shutdown. | ||||
void Flush() const override; | void Flush() const override; | ||||
//! Stop all wallets. Wallets will be flushed first. | //! Stop all wallets. Wallets will be flushed first. | ||||
▲ Show 20 Lines • Show All 223 Lines • ▼ Show 20 Lines | void WalletInit::RegisterRPC(CRPCTable &t) const { | ||||
if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { | if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { | ||||
return; | return; | ||||
} | } | ||||
RegisterWalletRPCCommands(t); | RegisterWalletRPCCommands(t); | ||||
RegisterDumpRPCCommands(t); | RegisterDumpRPCCommands(t); | ||||
} | } | ||||
bool WalletInit::Verify(const CChainParams &chainParams) const { | bool WalletInit::Verify(const CChainParams &chainParams, | ||||
interfaces::Chain &chain) const { | |||||
if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { | if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { | ||||
return true; | return true; | ||||
} | } | ||||
if (gArgs.IsArgSet("-walletdir")) { | if (gArgs.IsArgSet("-walletdir")) { | ||||
fs::path wallet_dir = gArgs.GetArg("-walletdir", ""); | fs::path wallet_dir = gArgs.GetArg("-walletdir", ""); | ||||
boost::system::error_code error; | boost::system::error_code error; | ||||
// The canonical path cleans the path, preventing >1 Berkeley | // The canonical path cleans the path, preventing >1 Berkeley | ||||
Show All 39 Lines | for (const auto &wallet_file : wallet_files) { | ||||
return InitError(strprintf(_("Error loading wallet %s. Duplicate " | return InitError(strprintf(_("Error loading wallet %s. Duplicate " | ||||
"-wallet filename specified."), | "-wallet filename specified."), | ||||
wallet_file)); | wallet_file)); | ||||
} | } | ||||
std::string error_string; | std::string error_string; | ||||
std::string warning_string; | std::string warning_string; | ||||
bool verify_success = | bool verify_success = | ||||
CWallet::Verify(chainParams, location, salvage_wallet, error_string, | CWallet::Verify(chainParams, chain, location, salvage_wallet, | ||||
warning_string); | error_string, warning_string); | ||||
if (!error_string.empty()) { | if (!error_string.empty()) { | ||||
InitError(error_string); | InitError(error_string); | ||||
} | } | ||||
if (!warning_string.empty()) { | if (!warning_string.empty()) { | ||||
InitWarning(warning_string); | InitWarning(warning_string); | ||||
} | } | ||||
if (!verify_success) { | if (!verify_success) { | ||||
return false; | return false; | ||||
} | } | ||||
} | } | ||||
return true; | return true; | ||||
} | } | ||||
bool WalletInit::Open(const CChainParams &chainParams) const { | bool WalletInit::Open(const CChainParams &chainParams, | ||||
interfaces::Chain &chain) const { | |||||
if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { | if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { | ||||
LogPrintf("Wallet disabled!\n"); | LogPrintf("Wallet disabled!\n"); | ||||
return true; | return true; | ||||
} | } | ||||
for (const std::string &walletFile : gArgs.GetArgs("-wallet")) { | for (const std::string &walletFile : gArgs.GetArgs("-wallet")) { | ||||
std::shared_ptr<CWallet> pwallet = CWallet::CreateWalletFromFile( | std::shared_ptr<CWallet> pwallet = CWallet::CreateWalletFromFile( | ||||
chainParams, WalletLocation(walletFile)); | chainParams, chain, WalletLocation(walletFile)); | ||||
if (!pwallet) { | if (!pwallet) { | ||||
return false; | return false; | ||||
} | } | ||||
AddWallet(pwallet); | AddWallet(pwallet); | ||||
} | } | ||||
return true; | return true; | ||||
} | } | ||||
Show All 32 Lines |