// Copyright (c) 2018 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include #include #include #include class CWallet; enum class WalletCreationStatus; namespace interfaces { class Chain; class Handler; class Wallet; } class DummyWalletInit : public WalletInitInterface { public: bool HasWalletSupport() const override {return false;} void AddWalletOptions() const override; bool ParameterInteraction() const override {return true;} void Construct(InitInterfaces& interfaces) const override {LogPrintf("No wallet support compiled in!\n");} }; void DummyWalletInit::AddWalletOptions() const { gArgs.AddHiddenArgs({ "-addresstype", "-avoidpartialspends", "-changetype", "-disablewallet", "-discardfee=", "-fallbackfee=", "-keypool=", "-maxtxfee=", "-mintxfee=", "-paytxfee=", "-rescan", "-salvagewallet", "-spendzeroconfchange", "-txconfirmtarget=", "-upgradewallet", "-wallet=", "-walletbroadcast", "-walletdir=", "-walletnotify=", "-walletrbf", "-zapwallettxes=", "-dblogsize=", "-flushwallet", "-privdb", "-walletrejectlongchains", }); } const WalletInitInterface& g_wallet_init_interface = DummyWalletInit(); fs::path GetWalletDir() { throw std::logic_error("Wallet function called in non-wallet build."); } std::vector ListWalletDir() { throw std::logic_error("Wallet function called in non-wallet build."); } std::vector> GetWallets() { throw std::logic_error("Wallet function called in non-wallet build."); } std::shared_ptr LoadWallet(interfaces::Chain& chain, const std::string& name, std::string& error, std::string& warning) { throw std::logic_error("Wallet function called in non-wallet build."); } WalletCreationStatus CreateWallet(interfaces::Chain& chain, const SecureString& passphrase, uint64_t wallet_creation_flags, const std::string& name, std::string& error, std::string& warning, std::shared_ptr& result) { throw std::logic_error("Wallet function called in non-wallet build."); } using LoadWalletFn = std::function wallet)>; std::unique_ptr HandleLoadWallet(LoadWalletFn load_wallet) { throw std::logic_error("Wallet function called in non-wallet build."); } namespace interfaces { std::unique_ptr MakeWallet(const std::shared_ptr& wallet) { throw std::logic_error("Wallet function called in non-wallet build."); } } // namespace interfaces