diff options
author | Russell Yanofsky <russ@yanofsky.org> | 2020-05-28 09:48:30 -0400 |
---|---|---|
committer | Russell Yanofsky <russ@yanofsky.org> | 2020-08-27 14:33:00 -0400 |
commit | e4f435047121886edb6e6a6c4e4998e44ed2e36a (patch) | |
tree | f61715cecd2998ef2f841946b3637645813d606d /src/node/context.h | |
parent | b266b3e0bf29d0f3d5deaeec62d57c5025b35525 (diff) |
refactor: Move wallet methods out of chain.h and node.h
Add WalletClient interface so node interface is cleaner and don't need
wallet-specific methods.
The new NodeContext::wallet_client pointer will also be needed to eliminate
global wallet variables like ::vpwallets, because createWallet(), loadWallet(),
getWallets(), etc methods called by the GUI need a way to get a reference to
the list of open wallets if it is no longer a global variable.
Also tweaks splash screen registration for load wallet events to be delayed
until after wallet client is created.
Diffstat (limited to 'src/node/context.h')
-rw-r--r-- | src/node/context.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/node/context.h b/src/node/context.h index be568cba36..793c9dfc34 100644 --- a/src/node/context.h +++ b/src/node/context.h @@ -20,6 +20,7 @@ class PeerLogicValidation; namespace interfaces { class Chain; class ChainClient; +class WalletClient; } // namespace interfaces //! NodeContext struct containing references to chain state and connection @@ -40,7 +41,11 @@ struct NodeContext { std::unique_ptr<BanMan> banman; ArgsManager* args{nullptr}; // Currently a raw pointer because the memory is not managed by this struct std::unique_ptr<interfaces::Chain> chain; + //! List of all chain clients (wallet processes or other client) connected to node. std::vector<std::unique_ptr<interfaces::ChainClient>> chain_clients; + //! Reference to chain client that should used to load or create wallets + //! opened by the gui. + interfaces::WalletClient* wallet_client{nullptr}; std::unique_ptr<CScheduler> scheduler; std::function<void()> rpc_interruption_point = [] {}; |