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