Branch data 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