1 // Copyright (c) 2017-2019 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