dummywallet.cpp raw

   1  // Copyright (c) 2018-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  #include <common/args.h>
   6  #include <util/log.h>
   7  #include <walletinitinterface.h>
   8  
   9  class ArgsManager;
  10  
  11  namespace interfaces {
  12  class Chain;
  13  class Handler;
  14  class Wallet;
  15  class WalletLoader;
  16  }
  17  
  18  class DummyWalletInit : public WalletInitInterface {
  19  public:
  20  
  21      bool HasWalletSupport() const override {return false;}
  22      void AddWalletOptions(ArgsManager& argsman) const override;
  23      bool ParameterInteraction() const override {return true;}
  24      void Construct(node::NodeContext& node) const override { LogInfo("No wallet support compiled in!"); }
  25  };
  26  
  27  void DummyWalletInit::AddWalletOptions(ArgsManager& argsman) const
  28  {
  29      argsman.AddHiddenArgs({
  30          "-addresstype",
  31          "-avoidpartialspends",
  32          "-changetype",
  33          "-consolidatefeerate=<amt>",
  34          "-disablewallet",
  35          "-discardfee=<amt>",
  36          "-fallbackfee=<amt>",
  37          "-keypool=<n>",
  38          "-maxapsfee=<n>",
  39          "-maxtxfee=<amt>",
  40          "-mintxfee=<amt>",
  41          "-signer=<cmd>",
  42          "-spendzeroconfchange",
  43          "-txconfirmtarget=<n>",
  44          "-wallet=<path>",
  45          "-walletbroadcast",
  46          "-walletdir=<dir>",
  47          "-walletnotify=<cmd>",
  48          "-walletrbf",
  49          "-walletrejectlongchains",
  50          "-walletcrosschain",
  51          "-unsafesqlitesync",
  52      });
  53  }
  54  
  55  const WalletInitInterface& g_wallet_init_interface = DummyWalletInit();
  56  
  57  namespace interfaces {
  58  
  59  std::unique_ptr<WalletLoader> MakeWalletLoader(Chain& chain, ArgsManager& args)
  60  {
  61      throw std::logic_error("Wallet function called in non-wallet build.");
  62  }
  63  
  64  } // namespace interfaces
  65