diff --git a/src/init.cpp b/src/init.cpp --- a/src/init.cpp +++ b/src/init.cpp @@ -76,15 +76,20 @@ #if !(ENABLE_WALLET) class DummyWalletInit : public WalletInitInterface { public: - std::string GetHelpString(bool showDebug) override { return std::string{}; } - bool ParameterInteraction() override { return true; } - void RegisterRPC(CRPCTable &) override {} - bool Verify(const CChainParams &chainParams) override { return true; } - bool Open(const CChainParams &chainParams) override { return true; } - void Start(CScheduler &scheduler) override {} - void Flush() override {} - void Stop() override {} - void Close() override {} + std::string GetHelpString(bool showDebug) const override { + return std::string{}; + } + bool ParameterInteraction() const override { return true; } + void RegisterRPC(CRPCTable &) const override {} + bool Verify(const CChainParams &chainParams) const override { return true; } + bool Open(const CChainParams &chainParams) const override { + LogPrintf("No wallet support compiled in!\n"); + return true; + } + void Start(CScheduler &scheduler) const override {} + void Flush() const override {} + void Stop() const override {} + void Close() const override {} }; static DummyWalletInit g_dummy_wallet_init; diff --git a/src/wallet/init.cpp b/src/wallet/init.cpp --- a/src/wallet/init.cpp +++ b/src/wallet/init.cpp @@ -18,41 +18,41 @@ class WalletInit : public WalletInitInterface { public: //! Return the wallets help message. - std::string GetHelpString(bool showDebug) override; + std::string GetHelpString(bool showDebug) const override; //! Wallets parameter interaction - bool ParameterInteraction() override; + bool ParameterInteraction() const override; //! Register wallet RPCs. - void RegisterRPC(CRPCTable &tableRPC) override; + void RegisterRPC(CRPCTable &tableRPC) const override; //! Responsible for reading and validating the -wallet arguments and //! verifying the wallet database. // This function will perform salvage on the wallet if requested, as long // as only one wallet is being loaded (WalletParameterInteraction forbids // -salvagewallet, -zapwallettxes or -upgradewallet with multiwallet). - bool Verify(const CChainParams &chainParams) override; + bool Verify(const CChainParams &chainParams) const override; //! Load wallet databases. - bool Open(const CChainParams &chainParams) override; + bool Open(const CChainParams &chainParams) const override; //! Complete startup of wallets. - void Start(CScheduler &scheduler) override; + void Start(CScheduler &scheduler) const override; //! Flush all wallets in preparation for shutdown. - void Flush() override; + void Flush() const override; //! Stop all wallets. Wallets will be flushed first. - void Stop() override; + void Stop() const override; //! Close all wallets. - void Close() override; + void Close() const override; }; static WalletInit g_wallet_init; WalletInitInterface *const g_wallet_init_interface = &g_wallet_init; -std::string WalletInit::GetHelpString(bool showDebug) { +std::string WalletInit::GetHelpString(bool showDebug) const { std::string strUsage = HelpMessageGroup(_("Wallet options:")); strUsage += HelpMessageOpt( "-disablewallet", @@ -138,7 +138,7 @@ return strUsage; } -bool WalletInit::ParameterInteraction() { +bool WalletInit::ParameterInteraction() const { CFeeRate minRelayTxFee = GetConfig().GetMinFeePerKB(); gArgs.SoftSetArg("-wallet", DEFAULT_WALLET_DAT); @@ -285,15 +285,15 @@ return true; } -void WalletInit::RegisterRPC(CRPCTable &t) { - if (gArgs.GetBoolArg("-disablewallet", false)) { +void WalletInit::RegisterRPC(CRPCTable &t) const { + if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { return; } RegisterWalletRPCCommands(t); } -bool WalletInit::Verify(const CChainParams &chainParams) { +bool WalletInit::Verify(const CChainParams &chainParams) const { if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { return true; } @@ -383,7 +383,7 @@ return true; } -bool WalletInit::Open(const CChainParams &chainParams) { +bool WalletInit::Open(const CChainParams &chainParams) const { if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) { LogPrintf("Wallet disabled!\n"); return true; @@ -401,25 +401,25 @@ return true; } -void WalletInit::Start(CScheduler &scheduler) { +void WalletInit::Start(CScheduler &scheduler) const { for (CWalletRef pwallet : vpwallets) { pwallet->postInitProcess(scheduler); } } -void WalletInit::Flush() { +void WalletInit::Flush() const { for (CWalletRef pwallet : vpwallets) { pwallet->Flush(false); } } -void WalletInit::Stop() { +void WalletInit::Stop() const { for (CWalletRef pwallet : vpwallets) { pwallet->Flush(true); } } -void WalletInit::Close() { +void WalletInit::Close() const { for (CWalletRef pwallet : vpwallets) { delete pwallet; } diff --git a/src/walletinitinterface.h b/src/walletinitinterface.h --- a/src/walletinitinterface.h +++ b/src/walletinitinterface.h @@ -15,23 +15,23 @@ class WalletInitInterface { public: /** Get wallet help string */ - virtual std::string GetHelpString(bool showDebug) = 0; + virtual std::string GetHelpString(bool showDebug) const = 0; /** Check wallet parameter interaction */ - virtual bool ParameterInteraction() = 0; + virtual bool ParameterInteraction() const = 0; /** Register wallet RPC*/ - virtual void RegisterRPC(CRPCTable &) = 0; + virtual void RegisterRPC(CRPCTable &) const = 0; /** Verify wallets */ - virtual bool Verify(const CChainParams &chainParams) = 0; + virtual bool Verify(const CChainParams &chainParams) const = 0; /** Open wallets*/ - virtual bool Open(const CChainParams &chainParams) = 0; + virtual bool Open(const CChainParams &chainParams) const = 0; /** Start wallets*/ - virtual void Start(CScheduler &scheduler) = 0; + virtual void Start(CScheduler &scheduler) const = 0; /** Flush Wallets*/ - virtual void Flush() = 0; + virtual void Flush() const = 0; /** Stop Wallets*/ - virtual void Stop() = 0; + virtual void Stop() const = 0; /** Close wallets */ - virtual void Close() = 0; + virtual void Close() const = 0; virtual ~WalletInitInterface() {} };