Line data Source code
1 : // Copyright (c) 2017-2021 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 2 : virtual ~WalletInitInterface() {} 26 : }; 27 : 28 : extern const WalletInitInterface& g_wallet_init_interface; 29 : 30 : #endif // BITCOIN_WALLETINITINTERFACE_H