walletinitinterface.h raw
1 // Copyright (c) 2017-present The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5 #ifndef BITCOIN_WALLETINITINTERFACE_H
6 #define BITCOIN_WALLETINITINTERFACE_H
7
8 class ArgsManager;
9
10 namespace node {
11 struct NodeContext;
12 } // namespace node
13
14 class WalletInitInterface {
15 public:
16 /** Is the wallet component enabled */
17 virtual bool HasWalletSupport() const = 0;
18 /** Get wallet help string */
19 virtual void AddWalletOptions(ArgsManager& argsman) const = 0;
20 /** Check wallet parameter interaction */
21 virtual bool ParameterInteraction() const = 0;
22 /** Add wallets that should be opened to list of chain clients. */
23 virtual void Construct(node::NodeContext& node) const = 0;
24
25 virtual ~WalletInitInterface() = default;
26 };
27
28 extern const WalletInitInterface& g_wallet_init_interface;
29
30 #endif // BITCOIN_WALLETINITINTERFACE_H
31