[build] remove #ifdef ENABLE_WALLET from interfaces/node
Removes the final #ifdef ENABLE_WALLET from libbitcoin_server by calling g_wallet_init_interface.HasWalletSupport(), and redifining GetWallets() and MakeWallet() in dummywallet.cpp.
This commit is contained in:
parent
8f464549c4
commit
e4ef4b4595
3 changed files with 27 additions and 15 deletions
|
@ -6,6 +6,8 @@
|
||||||
#include <util.h>
|
#include <util.h>
|
||||||
#include <walletinitinterface.h>
|
#include <walletinitinterface.h>
|
||||||
|
|
||||||
|
class CWallet;
|
||||||
|
|
||||||
class DummyWalletInit : public WalletInitInterface {
|
class DummyWalletInit : public WalletInitInterface {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -31,3 +33,19 @@ void DummyWalletInit::AddWalletOptions() const
|
||||||
}
|
}
|
||||||
|
|
||||||
const WalletInitInterface& g_wallet_init_interface = DummyWalletInit();
|
const WalletInitInterface& g_wallet_init_interface = DummyWalletInit();
|
||||||
|
|
||||||
|
std::vector<std::shared_ptr<CWallet>> GetWallets()
|
||||||
|
{
|
||||||
|
throw std::logic_error("Wallet function called in non-wallet build.");
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace interfaces {
|
||||||
|
|
||||||
|
class Wallet;
|
||||||
|
|
||||||
|
std::unique_ptr<Wallet> MakeWallet(const std::shared_ptr<CWallet>& wallet)
|
||||||
|
{
|
||||||
|
throw std::logic_error("Wallet function called in non-wallet build.");
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace interfaces
|
||||||
|
|
|
@ -32,19 +32,18 @@
|
||||||
#if defined(HAVE_CONFIG_H)
|
#if defined(HAVE_CONFIG_H)
|
||||||
#include <config/bitcoin-config.h>
|
#include <config/bitcoin-config.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef ENABLE_WALLET
|
|
||||||
#include <wallet/fees.h>
|
|
||||||
#include <wallet/wallet.h>
|
|
||||||
#define CHECK_WALLET(x) x
|
|
||||||
#else
|
|
||||||
#define CHECK_WALLET(x) throw std::logic_error("Wallet function called in non-wallet build.")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <boost/thread/thread.hpp>
|
#include <boost/thread/thread.hpp>
|
||||||
#include <univalue.h>
|
#include <univalue.h>
|
||||||
|
|
||||||
|
class CWallet;
|
||||||
|
std::vector<std::shared_ptr<CWallet>> GetWallets();
|
||||||
|
|
||||||
namespace interfaces {
|
namespace interfaces {
|
||||||
|
|
||||||
|
class Wallet;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class NodeImpl : public Node
|
class NodeImpl : public Node
|
||||||
|
@ -221,15 +220,11 @@ class NodeImpl : public Node
|
||||||
}
|
}
|
||||||
std::vector<std::unique_ptr<Wallet>> getWallets() override
|
std::vector<std::unique_ptr<Wallet>> getWallets() override
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_WALLET
|
|
||||||
std::vector<std::unique_ptr<Wallet>> wallets;
|
std::vector<std::unique_ptr<Wallet>> wallets;
|
||||||
for (const std::shared_ptr<CWallet>& wallet : GetWallets()) {
|
for (const std::shared_ptr<CWallet>& wallet : GetWallets()) {
|
||||||
wallets.emplace_back(MakeWallet(wallet));
|
wallets.emplace_back(MakeWallet(wallet));
|
||||||
}
|
}
|
||||||
return wallets;
|
return wallets;
|
||||||
#else
|
|
||||||
throw std::logic_error("Node::getWallets() called in non-wallet build.");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) override
|
std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) override
|
||||||
{
|
{
|
||||||
|
@ -249,8 +244,7 @@ class NodeImpl : public Node
|
||||||
}
|
}
|
||||||
std::unique_ptr<Handler> handleLoadWallet(LoadWalletFn fn) override
|
std::unique_ptr<Handler> handleLoadWallet(LoadWalletFn fn) override
|
||||||
{
|
{
|
||||||
CHECK_WALLET(
|
return MakeHandler(::uiInterface.LoadWallet_connect([fn](std::shared_ptr<CWallet> wallet) { fn(MakeWallet(wallet)); }));
|
||||||
return MakeHandler(::uiInterface.LoadWallet_connect([fn](std::shared_ptr<CWallet> wallet) { fn(MakeWallet(wallet)); })));
|
|
||||||
}
|
}
|
||||||
std::unique_ptr<Handler> handleNotifyNumConnectionsChanged(NotifyNumConnectionsChangedFn fn) override
|
std::unique_ptr<Handler> handleNotifyNumConnectionsChanged(NotifyNumConnectionsChangedFn fn) override
|
||||||
{
|
{
|
||||||
|
|
|
@ -366,8 +366,8 @@ struct WalletTxOut
|
||||||
bool is_spent = false;
|
bool is_spent = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Return implementation of Wallet interface. This function will be undefined
|
//! Return implementation of Wallet interface. This function is defined in
|
||||||
//! in builds where ENABLE_WALLET is false.
|
//! dummywallet.cpp and throws if the wallet component is not compiled.
|
||||||
std::unique_ptr<Wallet> MakeWallet(const std::shared_ptr<CWallet>& wallet);
|
std::unique_ptr<Wallet> MakeWallet(const std::shared_ptr<CWallet>& wallet);
|
||||||
|
|
||||||
} // namespace interfaces
|
} // namespace interfaces
|
||||||
|
|
Loading…
Reference in a new issue