mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 12:32:48 +01:00
d894894
wallet: Refactor to WalletInitInterface* const g_wallet_init_interface (João Barbosa)39bc2fa
wallet: Make WalletInitInterface and DummyWalletInit private (João Barbosa) Pull request description: Implementations of `WalletInitInterface` don't have to be public, so make them private. This makes the interface instantiation static. Also reduces `ENABLE_WALLET` usage and removes the unnecessary `src/wallet/init.h` header. Tree-SHA512: 203c49d8c85252d1bd0ff1d7ed8bcdc842d12d2d396e965cc70be5c8159a62e98ec23d32d2f3dc48a53e575844130d0a7dedac3cc2fe4621d31319b7a1c9ba89 Signed-off-by: pasta <pasta@dashboost.org> # Conflicts: # src/qt/dash.cpp # src/wallet/init.cpp # src/wallet/init.h # src/walletinitinterface.h Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
This commit is contained in:
parent
8fcda67a54
commit
0662f170f0
@ -255,7 +255,6 @@ BITCOIN_CORE_H = \
|
|||||||
wallet/crypter.h \
|
wallet/crypter.h \
|
||||||
wallet/db.h \
|
wallet/db.h \
|
||||||
wallet/fees.h \
|
wallet/fees.h \
|
||||||
wallet/init.h \
|
|
||||||
wallet/rpcwallet.h \
|
wallet/rpcwallet.h \
|
||||||
wallet/wallet.h \
|
wallet/wallet.h \
|
||||||
wallet/walletdb.h \
|
wallet/walletdb.h \
|
||||||
|
@ -19,9 +19,6 @@
|
|||||||
#include <httpserver.h>
|
#include <httpserver.h>
|
||||||
#include <httprpc.h>
|
#include <httprpc.h>
|
||||||
#include <utilstrencodings.h>
|
#include <utilstrencodings.h>
|
||||||
#if ENABLE_WALLET
|
|
||||||
#include <wallet/init.h>
|
|
||||||
#endif
|
|
||||||
#include <walletinitinterface.h>
|
#include <walletinitinterface.h>
|
||||||
#include <stacktraces.h>
|
#include <stacktraces.h>
|
||||||
|
|
||||||
@ -62,12 +59,6 @@ bool AppInit(int argc, char* argv[])
|
|||||||
{
|
{
|
||||||
bool fRet = false;
|
bool fRet = false;
|
||||||
|
|
||||||
#if ENABLE_WALLET
|
|
||||||
g_wallet_init_interface.reset(new WalletInit);
|
|
||||||
#else
|
|
||||||
g_wallet_init_interface.reset(new DummyWalletInit);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Parameters
|
// Parameters
|
||||||
//
|
//
|
||||||
|
27
src/init.cpp
27
src/init.cpp
@ -96,7 +96,31 @@ static const bool DEFAULT_STOPAFTERBLOCKIMPORT = false;
|
|||||||
|
|
||||||
std::unique_ptr<CConnman> g_connman;
|
std::unique_ptr<CConnman> g_connman;
|
||||||
std::unique_ptr<PeerLogicValidation> peerLogic;
|
std::unique_ptr<PeerLogicValidation> peerLogic;
|
||||||
std::unique_ptr<WalletInitInterface> g_wallet_init_interface;
|
|
||||||
|
#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() override {return true;}
|
||||||
|
bool Open() override {return true;}
|
||||||
|
void Start(CScheduler& scheduler) override {}
|
||||||
|
void Flush() override {}
|
||||||
|
void Stop() override {}
|
||||||
|
void Close() override {}
|
||||||
|
|
||||||
|
// Dash Specific WalletInitInterface InitPrivateSendSettings
|
||||||
|
void AutoLockMasternodeCollaterals() override {}
|
||||||
|
void InitPrivateSendSettings() override {}
|
||||||
|
void InitKeePass() override {}
|
||||||
|
bool InitAutoBackup() override {return true;}
|
||||||
|
};
|
||||||
|
|
||||||
|
static DummyWalletInit g_dummy_wallet_init;
|
||||||
|
WalletInitInterface* const g_wallet_init_interface = &g_dummy_wallet_init;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLE_ZMQ
|
#if ENABLE_ZMQ
|
||||||
static CZMQNotificationInterface* pzmqNotificationInterface = nullptr;
|
static CZMQNotificationInterface* pzmqNotificationInterface = nullptr;
|
||||||
@ -355,7 +379,6 @@ void Shutdown()
|
|||||||
// Shutdown part 2: Stop TOR thread and delete wallet instance
|
// Shutdown part 2: Stop TOR thread and delete wallet instance
|
||||||
StopTorControl();
|
StopTorControl();
|
||||||
g_wallet_init_interface->Close();
|
g_wallet_init_interface->Close();
|
||||||
g_wallet_init_interface.reset();
|
|
||||||
globalVerifyHandle.reset();
|
globalVerifyHandle.reset();
|
||||||
ECC_Stop();
|
ECC_Stop();
|
||||||
LogPrintf("%s: done\n", __func__);
|
LogPrintf("%s: done\n", __func__);
|
||||||
|
@ -13,7 +13,7 @@ class CScheduler;
|
|||||||
class CWallet;
|
class CWallet;
|
||||||
|
|
||||||
class WalletInitInterface;
|
class WalletInitInterface;
|
||||||
extern std::unique_ptr<WalletInitInterface> g_wallet_init_interface;
|
extern WalletInitInterface* const g_wallet_init_interface;
|
||||||
|
|
||||||
namespace boost
|
namespace boost
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,6 @@
|
|||||||
#include <warnings.h>
|
#include <warnings.h>
|
||||||
|
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
#include <wallet/init.h>
|
|
||||||
#include <wallet/wallet.h>
|
#include <wallet/wallet.h>
|
||||||
#endif
|
#endif
|
||||||
#include <walletinitinterface.h>
|
#include <walletinitinterface.h>
|
||||||
@ -708,11 +707,6 @@ int main(int argc, char *argv[])
|
|||||||
// Start up the payment server early, too, so impatient users that click on
|
// Start up the payment server early, too, so impatient users that click on
|
||||||
// dash: links repeatedly have their payment requests routed to this process:
|
// dash: links repeatedly have their payment requests routed to this process:
|
||||||
app.createPaymentServer();
|
app.createPaymentServer();
|
||||||
|
|
||||||
// Hook up the wallet init interface
|
|
||||||
g_wallet_init_interface.reset(new WalletInit);
|
|
||||||
#else
|
|
||||||
g_wallet_init_interface.reset(new DummyWalletInit);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// 9. Main GUI initialization
|
/// 9. Main GUI initialization
|
||||||
|
@ -3,14 +3,14 @@
|
|||||||
// Distributed under the MIT software license, see the accompanying
|
// Distributed under the MIT software license, see the accompanying
|
||||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
#include <wallet/init.h>
|
#include <init.h>
|
||||||
|
|
||||||
#include <keepass.h>
|
#include <keepass.h>
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
#include <scheduler.h>
|
#include <scheduler.h>
|
||||||
#include <util.h>
|
#include <util.h>
|
||||||
#include <utilmoneystr.h>
|
#include <utilmoneystr.h>
|
||||||
#include <validation.h>
|
#include <validation.h>
|
||||||
|
#include <walletinitinterface.h>
|
||||||
#include <wallet/rpcwallet.h>
|
#include <wallet/rpcwallet.h>
|
||||||
#include <wallet/wallet.h>
|
#include <wallet/wallet.h>
|
||||||
#include <wallet/walletutil.h>
|
#include <wallet/walletutil.h>
|
||||||
@ -19,6 +19,48 @@
|
|||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
|
class WalletInit : public WalletInitInterface {
|
||||||
|
public:
|
||||||
|
|
||||||
|
//! Return the wallets help message.
|
||||||
|
std::string GetHelpString(bool showDebug) override;
|
||||||
|
|
||||||
|
//! Wallets parameter interaction
|
||||||
|
bool ParameterInteraction() override;
|
||||||
|
|
||||||
|
//! Register wallet RPCs.
|
||||||
|
void RegisterRPC(CRPCTable &tableRPC) 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() override;
|
||||||
|
|
||||||
|
//! Load wallet databases.
|
||||||
|
bool Open() override;
|
||||||
|
|
||||||
|
//! Complete startup of wallets.
|
||||||
|
void Start(CScheduler& scheduler) override;
|
||||||
|
|
||||||
|
//! Flush all wallets in preparation for shutdown.
|
||||||
|
void Flush() override;
|
||||||
|
|
||||||
|
//! Stop all wallets. Wallets will be flushed first.
|
||||||
|
void Stop() override;
|
||||||
|
|
||||||
|
//! Close all wallets.
|
||||||
|
void Close() override;
|
||||||
|
|
||||||
|
// Dash Specific Wallet Init
|
||||||
|
void AutoLockMasternodeCollaterals() override;
|
||||||
|
void InitPrivateSendSettings() override;
|
||||||
|
void InitKeePass() override;
|
||||||
|
bool InitAutoBackup() 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)
|
||||||
{
|
{
|
||||||
std::string strUsage = HelpMessageGroup(_("Wallet options:"));
|
std::string strUsage = HelpMessageGroup(_("Wallet options:"));
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
|
||||||
// Copyright (c) 2009-2017 The Bitcoin Core developers
|
|
||||||
// Distributed under the MIT software license, see the accompanying
|
|
||||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
||||||
|
|
||||||
#ifndef BITCOIN_WALLET_INIT_H
|
|
||||||
#define BITCOIN_WALLET_INIT_H
|
|
||||||
|
|
||||||
#include <walletinitinterface.h>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
class CRPCTable;
|
|
||||||
class CScheduler;
|
|
||||||
|
|
||||||
class WalletInit : public WalletInitInterface {
|
|
||||||
public:
|
|
||||||
|
|
||||||
//! Return the wallets help message.
|
|
||||||
std::string GetHelpString(bool showDebug) override;
|
|
||||||
|
|
||||||
//! Wallets parameter interaction
|
|
||||||
bool ParameterInteraction() override;
|
|
||||||
|
|
||||||
//! Register wallet RPCs.
|
|
||||||
void RegisterRPC(CRPCTable &tableRPC) 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() override;
|
|
||||||
|
|
||||||
//! Load wallet databases.
|
|
||||||
bool Open() override;
|
|
||||||
|
|
||||||
//! Complete startup of wallets.
|
|
||||||
void Start(CScheduler& scheduler) override;
|
|
||||||
|
|
||||||
//! Flush all wallets in preparation for shutdown.
|
|
||||||
void Flush() override;
|
|
||||||
|
|
||||||
//! Stop all wallets. Wallets will be flushed first.
|
|
||||||
void Stop() override;
|
|
||||||
|
|
||||||
//! Close all wallets.
|
|
||||||
void Close() override;
|
|
||||||
|
|
||||||
// Dash Specific Wallet Init
|
|
||||||
void AutoLockMasternodeCollaterals() override;
|
|
||||||
void InitPrivateSendSettings() override;
|
|
||||||
void InitKeePass() override;
|
|
||||||
bool InitAutoBackup() override;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // BITCOIN_WALLET_INIT_H
|
|
@ -7,7 +7,6 @@
|
|||||||
#include <chain.h>
|
#include <chain.h>
|
||||||
#include <rpc/safemode.h>
|
#include <rpc/safemode.h>
|
||||||
#include <rpc/server.h>
|
#include <rpc/server.h>
|
||||||
#include <wallet/init.h>
|
|
||||||
#include <validation.h>
|
#include <validation.h>
|
||||||
#include <script/script.h>
|
#include <script/script.h>
|
||||||
#include <script/standard.h>
|
#include <script/standard.h>
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
#include <consensus/consensus.h>
|
#include <consensus/consensus.h>
|
||||||
#include <consensus/validation.h>
|
#include <consensus/validation.h>
|
||||||
#include <fs.h>
|
#include <fs.h>
|
||||||
#include <wallet/init.h>
|
|
||||||
#include <key.h>
|
#include <key.h>
|
||||||
#include <keystore.h>
|
#include <keystore.h>
|
||||||
#include <validation.h>
|
#include <validation.h>
|
||||||
|
@ -40,25 +40,4 @@ public:
|
|||||||
virtual ~WalletInitInterface() {}
|
virtual ~WalletInitInterface() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
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() override {return true;}
|
|
||||||
bool Open() override {return true;}
|
|
||||||
void Start(CScheduler& scheduler) override {}
|
|
||||||
void Flush() override {}
|
|
||||||
void Stop() override {}
|
|
||||||
void Close() override {}
|
|
||||||
|
|
||||||
// Dash Specific WalletInitInterface InitPrivateSendSettings
|
|
||||||
void AutoLockMasternodeCollaterals() override {}
|
|
||||||
void InitPrivateSendSettings() override {}
|
|
||||||
void InitKeePass() override {}
|
|
||||||
bool InitAutoBackup() override {return true;}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // WALLETINITINTERFACE_H
|
#endif // WALLETINITINTERFACE_H
|
||||||
|
Loading…
Reference in New Issue
Block a user