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