dummywallet.cpp raw

   1  // Copyright (c) 2018-2021 The Limenka 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 <logging.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 {LogPrintf("No wallet support compiled in!\n");}
  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          "-paytxfee=<amt>",
  42          "-signer=<cmd>",
  43          "-spendzeroconfchange",
  44          "-txconfirmtarget=<n>",
  45          "-wallet=<path>",
  46          "-walletbroadcast",
  47          "-walletdir=<dir>",
  48          "-walletimplicitsegwit",
  49          "-walletnotify=<cmd>",
  50          "-walletrbf",
  51          "-dblogsize=<n>",
  52          "-flushwallet",
  53          "-privdb",
  54          "-walletrejectlongchains",
  55          "-walletcrosschain",
  56          "-unsafesqlitesync",
  57          "-swapbdbendian",
  58      });
  59  }
  60  
  61  const WalletInitInterface& g_wallet_init_interface = DummyWalletInit();
  62  
  63  namespace interfaces {
  64  
  65  std::unique_ptr<WalletLoader> MakeWalletLoader(Chain& chain, ArgsManager& args)
  66  {
  67      throw std::logic_error("Wallet function called in non-wallet build.");
  68  }
  69  
  70  } // namespace interfaces
  71