message: Remove mempool global from interfaces
diff: @@ -274,8 +274,9 @@ public:
  }
  bool hasDescendantsInMempool(const uint256& txid) override
  {
  - LOCK(::mempool.cs);
  - auto it = ::mempool.GetIter(txid);
  + if (!m_node.mempool) return false;
  + LOCK(m_node.mempool->cs);
  + auto it = m_node.mempool->GetIter(txid);
  return it && (*it)->GetCountWithDescendants() > 1;
  }
  bool broadcastTransaction(const CTransactionRef& tx,
  @@ -290,7 +291,9 @@ public:
  }
  void getTransactionAncestry(const uint256& txid, size_t& ancestors, size_t& descendants) override
  {
  - ::mempool.GetTransactionAncestry(txid, ancestors, descendants);
  + ancestors = descendants = 0;
  + if (!m_node.mempool) return;
  + m_node.mempool->GetTransactionAncestry(txid, ancestors, descendants);
  }
  void getPackageLimits(unsigned int& limit_ancestor_count, unsigned int& limit_descendant_count) override
  {
  @@ -299,6 +302,7 @@ public:
  }
  bool checkChainLimits(const CTransactionRef& tx) override
  {
  + if (!m_node.mempool) return true;
  LockPoints lp;
  CTxMemPoolEntry entry(tx, 0, 0, 0, false, 0, lp);
  CTxMemPool::setEntries ancestors;
  @@ -307,8 +311,9 @@ public:
  auto limit_descendant_count = gArgs.GetArg("-limitdescendantcount", DEFAULT_DESCENDANT_LIMIT);
  auto limit_descendant_size = gArgs.GetArg("-limitdescendantsize", DEFAULT_DESCENDANT_SIZE_LIMIT) * 1000;
  std::string unused_error_string;
  - LOCK(::mempool.cs);
  - return ::mempool.CalculateMemPoolAncestors(entry, ancestors, limit_ancestor_count, limit_ancestor_size,
  + LOCK(m_node.mempool->cs);
  + return m_node.mempool->CalculateMemPoolAncestors(
  + entry, ancestors, limit_ancestor_count, limit_ancestor_size,
  limit_descendant_count, limit_descendant_size, unused_error_string);
  }
  bool isReadyToBroadcast() override { return !::fImporting && !::fReindex && !isInitialBlockDownload(); }
  @@ -367,8 +372,9 @@ public:
  }
  void requestMempoolTransactions(Notifications& notifications) override
  {
  - LOCK2(::cs_main, ::mempool.cs);
  - for (const CTxMemPoolEntry& entry : ::mempool.mapTx) {
  + if (!m_node.mempool) return;
  + LOCK2(::cs_main, m_node.mempool->cs);
  + for (const CTxMemPoolEntry& entry : m_node.mempool->mapTx) {
  notifications.transactionAddedToMempool(entry.GetSharedTx());
  }
  }
  