mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-19 14:53:43 +01:00
Use mempool/txgraph to determine if a tx has descendants
Remove a reference to GetCountWithDescendants() in preparation for removing this function and the associated cached state from the mempool.
This commit is contained in:
@@ -665,10 +665,7 @@ public:
|
||||
bool hasDescendantsInMempool(const Txid& txid) override
|
||||
{
|
||||
if (!m_node.mempool) return false;
|
||||
LOCK(m_node.mempool->cs);
|
||||
const auto entry{m_node.mempool->GetEntry(txid)};
|
||||
if (entry == nullptr) return false;
|
||||
return entry->GetCountWithDescendants() > 1;
|
||||
return m_node.mempool->HasDescendants(txid);
|
||||
}
|
||||
bool broadcastTransaction(const CTransactionRef& tx,
|
||||
const CAmount& max_tx_fee,
|
||||
|
||||
@@ -229,6 +229,14 @@ util::Result<void> CTxMemPool::CheckPackageLimits(const Package& package,
|
||||
return {};
|
||||
}
|
||||
|
||||
bool CTxMemPool::HasDescendants(const Txid& txid) const
|
||||
{
|
||||
LOCK(cs);
|
||||
auto entry = GetEntry(txid);
|
||||
if (!entry) return false;
|
||||
return m_txgraph->GetDescendants(*entry, TxGraph::Level::MAIN).size() > 1;
|
||||
}
|
||||
|
||||
util::Result<CTxMemPool::setEntries> CTxMemPool::CalculateMemPoolAncestors(
|
||||
const CTxMemPoolEntry &entry,
|
||||
const Limits& limits,
|
||||
|
||||
@@ -467,6 +467,8 @@ public:
|
||||
const Limits& limits,
|
||||
bool fSearchForParents = true) const EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
|
||||
bool HasDescendants(const Txid& txid) const;
|
||||
|
||||
/** Collect the entire cluster of connected transactions for each transaction in txids.
|
||||
* All txids must correspond to transaction entries in the mempool, otherwise this returns an
|
||||
* empty vector. This call will also exit early and return an empty vector if it collects 500 or
|
||||
|
||||
Reference in New Issue
Block a user