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