mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-16 13:01:19 +02:00
Merge 471e5f8829 into merged_master (Bitcoin PR #16839)
This commit is contained in:
commit
34af974d28
45 changed files with 336 additions and 211 deletions
|
|
@ -16,6 +16,7 @@
|
|||
#include <net_processing.h>
|
||||
#include <netaddress.h>
|
||||
#include <netbase.h>
|
||||
#include <node/context.h>
|
||||
#include <policy/feerate.h>
|
||||
#include <policy/fees.h>
|
||||
#include <policy/settings.h>
|
||||
|
|
@ -52,7 +53,6 @@ namespace {
|
|||
class NodeImpl : public Node
|
||||
{
|
||||
public:
|
||||
NodeImpl() { m_interfaces.chain = MakeChain(); }
|
||||
void initError(const std::string& message) override { InitError(message); }
|
||||
bool parseParameters(int argc, const char* const argv[], std::string& error) override
|
||||
{
|
||||
|
|
@ -75,11 +75,15 @@ public:
|
|||
return AppInitBasicSetup() && AppInitParameterInteraction() && AppInitSanityChecks() &&
|
||||
AppInitLockDataDirectory();
|
||||
}
|
||||
bool appInitMain() override { return AppInitMain(m_interfaces); }
|
||||
bool appInitMain() override
|
||||
{
|
||||
m_context.chain = MakeChain(m_context);
|
||||
return AppInitMain(m_context);
|
||||
}
|
||||
void appShutdown() override
|
||||
{
|
||||
Interrupt();
|
||||
Shutdown(m_interfaces);
|
||||
Interrupt(m_context);
|
||||
Shutdown(m_context);
|
||||
}
|
||||
void startShutdown() override { StartShutdown(); }
|
||||
bool shutdownRequested() override { return ShutdownRequested(); }
|
||||
|
|
@ -96,15 +100,15 @@ public:
|
|||
bool getProxy(Network net, proxyType& proxy_info) override { return GetProxy(net, proxy_info); }
|
||||
size_t getNodeCount(CConnman::NumConnections flags) override
|
||||
{
|
||||
return g_connman ? g_connman->GetNodeCount(flags) : 0;
|
||||
return m_context.connman ? m_context.connman->GetNodeCount(flags) : 0;
|
||||
}
|
||||
bool getNodesStats(NodesStats& stats) override
|
||||
{
|
||||
stats.clear();
|
||||
|
||||
if (g_connman) {
|
||||
if (m_context.connman) {
|
||||
std::vector<CNodeStats> stats_temp;
|
||||
g_connman->GetNodeStats(stats_temp);
|
||||
m_context.connman->GetNodeStats(stats_temp);
|
||||
|
||||
stats.reserve(stats_temp.size());
|
||||
for (auto& node_stats_temp : stats_temp) {
|
||||
|
|
@ -125,44 +129,44 @@ public:
|
|||
}
|
||||
bool getBanned(banmap_t& banmap) override
|
||||
{
|
||||
if (g_banman) {
|
||||
g_banman->GetBanned(banmap);
|
||||
if (m_context.banman) {
|
||||
m_context.banman->GetBanned(banmap);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool ban(const CNetAddr& net_addr, BanReason reason, int64_t ban_time_offset) override
|
||||
{
|
||||
if (g_banman) {
|
||||
g_banman->Ban(net_addr, reason, ban_time_offset);
|
||||
if (m_context.banman) {
|
||||
m_context.banman->Ban(net_addr, reason, ban_time_offset);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool unban(const CSubNet& ip) override
|
||||
{
|
||||
if (g_banman) {
|
||||
g_banman->Unban(ip);
|
||||
if (m_context.banman) {
|
||||
m_context.banman->Unban(ip);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool disconnect(const CNetAddr& net_addr) override
|
||||
{
|
||||
if (g_connman) {
|
||||
return g_connman->DisconnectNode(net_addr);
|
||||
if (m_context.connman) {
|
||||
return m_context.connman->DisconnectNode(net_addr);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool disconnect(NodeId id) override
|
||||
{
|
||||
if (g_connman) {
|
||||
return g_connman->DisconnectNode(id);
|
||||
if (m_context.connman) {
|
||||
return m_context.connman->DisconnectNode(id);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
int64_t getTotalBytesRecv() override { return g_connman ? g_connman->GetTotalBytesRecv() : 0; }
|
||||
int64_t getTotalBytesSent() override { return g_connman ? g_connman->GetTotalBytesSent() : 0; }
|
||||
int64_t getTotalBytesRecv() override { return m_context.connman ? m_context.connman->GetTotalBytesRecv() : 0; }
|
||||
int64_t getTotalBytesSent() override { return m_context.connman ? m_context.connman->GetTotalBytesSent() : 0; }
|
||||
size_t getMempoolSize() override { return ::mempool.size(); }
|
||||
size_t getMempoolDynamicUsage() override { return ::mempool.DynamicMemoryUsage(); }
|
||||
bool getHeaderTip(int& height, int64_t& block_time) override
|
||||
|
|
@ -202,11 +206,11 @@ public:
|
|||
bool getImporting() override { return ::fImporting; }
|
||||
void setNetworkActive(bool active) override
|
||||
{
|
||||
if (g_connman) {
|
||||
g_connman->SetNetworkActive(active);
|
||||
if (m_context.connman) {
|
||||
m_context.connman->SetNetworkActive(active);
|
||||
}
|
||||
}
|
||||
bool getNetworkActive() override { return g_connman && g_connman->GetNetworkActive(); }
|
||||
bool getNetworkActive() override { return m_context.connman && m_context.connman->GetNetworkActive(); }
|
||||
CFeeRate estimateSmartFee(int num_blocks, bool conservative, int* returned_target = nullptr) override
|
||||
{
|
||||
FeeCalculation fee_calc;
|
||||
|
|
@ -255,12 +259,12 @@ public:
|
|||
}
|
||||
std::unique_ptr<Wallet> loadWallet(const std::string& name, std::string& error, std::vector<std::string>& warnings) override
|
||||
{
|
||||
return MakeWallet(LoadWallet(*m_interfaces.chain, name, error, warnings));
|
||||
return MakeWallet(LoadWallet(*m_context.chain, name, error, warnings));
|
||||
}
|
||||
WalletCreationStatus createWallet(const SecureString& passphrase, uint64_t wallet_creation_flags, const std::string& name, std::string& error, std::vector<std::string>& warnings, std::unique_ptr<Wallet>& result) override
|
||||
{
|
||||
std::shared_ptr<CWallet> wallet;
|
||||
WalletCreationStatus status = CreateWallet(*m_interfaces.chain, passphrase, wallet_creation_flags, name, error, warnings, wallet);
|
||||
WalletCreationStatus status = CreateWallet(*m_context.chain, passphrase, wallet_creation_flags, name, error, warnings, wallet);
|
||||
result = MakeWallet(wallet);
|
||||
return status;
|
||||
}
|
||||
|
|
@ -315,7 +319,8 @@ public:
|
|||
/* verification progress is unused when a header was received */ 0);
|
||||
}));
|
||||
}
|
||||
InitInterfaces m_interfaces;
|
||||
NodeContext* context() override { return &m_context; }
|
||||
NodeContext m_context;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue