/ src / dummywallet.cpp
dummywallet.cpp
 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 <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 { 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