Skip to content

Commit

Permalink
[wallet] Add dummy wallet init class
Browse files Browse the repository at this point in the history
  • Loading branch information
jnewbery committed Mar 27, 2018
1 parent 49baa4a commit c7ec524
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 23 deletions.
4 changes: 3 additions & 1 deletion src/bitcoind.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
#include <utilstrencodings.h>
#if ENABLE_WALLET
#include <wallet/init.h>
#include <walletinitinterface.h>
#endif
#include <walletinitinterface.h>

#include <boost/thread.hpp>

Expand Down Expand Up @@ -65,6 +65,8 @@ bool AppInit(int argc, char* argv[])

#if ENABLE_WALLET
g_wallet_init_interface.reset(new WalletInit);
#else
g_wallet_init_interface.reset(new DummyWalletInit);
#endif

//
Expand Down
30 changes: 9 additions & 21 deletions src/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,7 @@ void Shutdown()
StopREST();
StopRPC();
StopHTTPServer();
if (g_wallet_init_interface) {
g_wallet_init_interface->Flush();
}
g_wallet_init_interface->Flush();
StopMapPort();

// Because these depend on each-other, we make sure that neither can be
Expand Down Expand Up @@ -248,9 +246,7 @@ void Shutdown()
pcoinsdbview.reset();
pblocktree.reset();
}
if (g_wallet_init_interface) {
g_wallet_init_interface->Stop();
}
g_wallet_init_interface->Stop();

#if ENABLE_ZMQ
if (pzmqNotificationInterface) {
Expand All @@ -270,9 +266,7 @@ void Shutdown()
UnregisterAllValidationInterfaces();
GetMainSignals().UnregisterBackgroundSignalScheduler();
GetMainSignals().UnregisterWithMempoolSignals(mempool);
if (g_wallet_init_interface) {
g_wallet_init_interface->Close();
}
g_wallet_init_interface->Close();
g_wallet_init_interface.reset();
globalVerifyHandle.reset();
ECC_Stop();
Expand Down Expand Up @@ -415,9 +409,7 @@ std::string HelpMessage(HelpMessageMode mode)
strUsage += HelpMessageOpt("-whitelist=<IP address or network>", _("Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple times.") +
" " + _("Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway"));

if (g_wallet_init_interface) {
strUsage += g_wallet_init_interface->GetHelpString(showDebug);
}
strUsage += g_wallet_init_interface->GetHelpString(showDebug);

#if ENABLE_ZMQ
strUsage += HelpMessageGroup(_("ZeroMQ notification options:"));
Expand Down Expand Up @@ -1091,7 +1083,7 @@ bool AppInitParameterInteraction()
return InitError(strprintf("acceptnonstdtxn is not currently supported for %s chain", chainparams.NetworkIDString()));
nBytesPerSigOp = gArgs.GetArg("-bytespersigop", nBytesPerSigOp);

if (g_wallet_init_interface && !g_wallet_init_interface->ParameterInteraction()) return false;
if (!g_wallet_init_interface->ParameterInteraction()) return false;

fIsBareMultisigStd = gArgs.GetBoolArg("-permitbaremultisig", DEFAULT_PERMIT_BAREMULTISIG);
fAcceptDatacarrier = gArgs.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER);
Expand Down Expand Up @@ -1254,9 +1246,7 @@ bool AppInitMain()
* available in the GUI RPC console even if external calls are disabled.
*/
RegisterAllCoreRPCCommands(tableRPC);
if (g_wallet_init_interface) {
g_wallet_init_interface->RegisterRPC(tableRPC);
}
g_wallet_init_interface->RegisterRPC(tableRPC);

/* Start the RPC server already. It will be started in "warmup" mode
* and not really process calls already (but it will signify connections
Expand All @@ -1273,7 +1263,7 @@ bool AppInitMain()
int64_t nStart;

// ********************************************************* Step 5: verify wallet database integrity
if (g_wallet_init_interface && !g_wallet_init_interface->Verify()) return false;
if (!g_wallet_init_interface->Verify()) return false;

// ********************************************************* Step 6: network initialization
// Note that we absolutely cannot open any actual connections
Expand Down Expand Up @@ -1592,7 +1582,7 @@ bool AppInitMain()
fFeeEstimatesInitialized = true;

// ********************************************************* Step 8: load wallet
if (g_wallet_init_interface && !g_wallet_init_interface->Open()) return false;
if (!g_wallet_init_interface->Open()) return false;

// ********************************************************* Step 9: data directory maintenance

Expand Down Expand Up @@ -1738,9 +1728,7 @@ bool AppInitMain()
SetRPCWarmupFinished();
uiInterface.InitMessage(_("Done loading"));

if (g_wallet_init_interface) {
g_wallet_init_interface->Start(scheduler);
}
g_wallet_init_interface->Start(scheduler);

return true;
}
4 changes: 3 additions & 1 deletion src/qt/bitcoin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
#ifdef ENABLE_WALLET
#include <wallet/init.h>
#include <wallet/wallet.h>
#include <walletinitinterface.h>
#endif
#include <walletinitinterface.h>

#include <stdint.h>

Expand Down Expand Up @@ -674,6 +674,8 @@ int main(int argc, char *argv[])

// Hook up the wallet init interface
g_wallet_init_interface.reset(new WalletInit);
#else
g_wallet_init_interface.reset(new DummyWalletInit);
#endif

/// 9. Main GUI initialization
Expand Down
14 changes: 14 additions & 0 deletions src/walletinitinterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,18 @@ class 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 {}
};

#endif // WALLETINITINTERFACE_H

0 comments on commit c7ec524

Please sign in to comment.