// 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