Remove direct node->wallet calls in init.cpp

Route calls during node initialization and shutdown that would happen between a
node process and wallet processes through the serializable `Chain::Client`
interface, rather than `WalletInitInterface` which is now simpler and only
deals with early initialization and parameter interaction.

This commit mostly does not change behavior. The only change is that the
"Wallet disabled!" and "No wallet support compiled in!" messages are now logged
earlier during startup.
This commit is contained in:
Russell Yanofsky
2017-09-28 14:13:29 -04:00
parent 8db11dd0b1
commit ea961c3d72
11 changed files with 114 additions and 85 deletions

View File

@@ -9,10 +9,7 @@
class CScheduler;
class CRPCTable;
namespace interfaces {
class Chain;
} // namespace interfaces
struct InitInterfaces;
class WalletInitInterface {
public:
@@ -22,20 +19,8 @@ public:
virtual void AddWalletOptions() const = 0;
/** Check wallet parameter interaction */
virtual bool ParameterInteraction() const = 0;
/** Register wallet RPC*/
virtual void RegisterRPC(CRPCTable &) const = 0;
/** Verify wallets */
virtual bool Verify(interfaces::Chain& chain) const = 0;
/** Open wallets*/
virtual bool Open(interfaces::Chain& chain) const = 0;
/** Start wallets*/
virtual void Start(CScheduler& scheduler) const = 0;
/** Flush Wallets*/
virtual void Flush() const = 0;
/** Stop Wallets*/
virtual void Stop() const = 0;
/** Close wallets */
virtual void Close() const = 0;
/** Add wallets that should be opened to list of init interfaces. */
virtual void Construct(InitInterfaces& interfaces) const = 0;
virtual ~WalletInitInterface() {}
};