Add GetTransactionAncestry to CTxMemPool for general purpose chain limit checking

This commit is contained in:
Karl-Johan Alm
2018-03-08 12:15:42 -05:00
parent 46847d69d2
commit 475a385a80
2 changed files with 16 additions and 0 deletions
+10
View File
@@ -1066,6 +1066,16 @@ uint64_t CTxMemPool::CalculateDescendantMaximum(txiter entry) const {
return top->GetCountWithDescendants();
}
void CTxMemPool::GetTransactionAncestry(const uint256& txid, size_t& ancestors, size_t& descendants) const {
LOCK(cs);
auto it = mapTx.find(txid);
ancestors = descendants = 0;
if (it != mapTx.end()) {
ancestors = it->GetCountWithAncestors();
descendants = CalculateDescendantMaximum(it);
}
}
bool CTxMemPool::TransactionWithinChainLimit(const uint256& txid, size_t ancestor_limit, size_t descendant_limit) const {
LOCK(cs);
auto it = mapTx.find(txid);