|
|
|
@ -818,11 +818,16 @@ void CTxMemPool::check(const CCoinsViewCache *pcoins) const
|
|
|
|
|
|
|
|
|
|
bool CTxMemPool::CompareDepthAndScore(const uint256& hasha, const uint256& hashb, bool wtxid)
|
|
|
|
|
{
|
|
|
|
|
/* Return `true` if hasha should be considered sooner than hashb. Namely when:
|
|
|
|
|
* a is not in the mempool, but b is
|
|
|
|
|
* both are in the mempool and a has fewer ancestors than b
|
|
|
|
|
* both are in the mempool and a has a higher score than b
|
|
|
|
|
*/
|
|
|
|
|
LOCK(cs);
|
|
|
|
|
indexed_transaction_set::const_iterator i = wtxid ? get_iter_from_wtxid(hasha) : mapTx.find(hasha);
|
|
|
|
|
if (i == mapTx.end()) return false;
|
|
|
|
|
indexed_transaction_set::const_iterator j = wtxid ? get_iter_from_wtxid(hashb) : mapTx.find(hashb);
|
|
|
|
|
if (j == mapTx.end()) return true;
|
|
|
|
|
if (j == mapTx.end()) return false;
|
|
|
|
|
indexed_transaction_set::const_iterator i = wtxid ? get_iter_from_wtxid(hasha) : mapTx.find(hasha);
|
|
|
|
|
if (i == mapTx.end()) return true;
|
|
|
|
|
uint64_t counta = i->GetCountWithAncestors();
|
|
|
|
|
uint64_t countb = j->GetCountWithAncestors();
|
|
|
|
|
if (counta == countb) {
|
|
|
|
|