1 // Copyright (c) 2017-2020 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 struct NodeContext;
11 
12 class WalletInitInterface {
13 public:
14     /** Is the wallet component enabled */
15     virtual bool HasWalletSupport() const = 0;
16     /** Get wallet help string */
17     virtual void AddWalletOptions(ArgsManager& argsman) const = 0;
18     /** Check wallet parameter interaction */
19     virtual bool ParameterInteraction() const = 0;
20     /** Add wallets that should be opened to list of chain clients. */
21     virtual void Construct(NodeContext& node) const = 0;
22 
~WalletInitInterface()23     virtual ~WalletInitInterface() {}
24 };
25 
26 extern const WalletInitInterface& g_wallet_init_interface;
27 
28 #endif // BITCOIN_WALLETINITINTERFACE_H
29