|
|
|
@ -282,7 +282,7 @@ bool BlockAssembler::SkipMapTxEntry(CTxMemPool::txiter it, indexed_modified_tran
|
|
|
|
|
return mapModifiedTx.count(it) || inBlock.count(it) || failedTx.count(it);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void BlockAssembler::SortForBlock(const CTxMemPool::setEntries& package, CTxMemPool::txiter entry, std::vector<CTxMemPool::txiter>& sortedEntries)
|
|
|
|
|
void BlockAssembler::SortForBlock(const CTxMemPool::setEntries& package, std::vector<CTxMemPool::txiter>& sortedEntries)
|
|
|
|
|
{
|
|
|
|
|
// Sort package by ancestor count
|
|
|
|
|
// If a transaction A depends on transaction B, then A's ancestor count
|
|
|
|
@ -418,7 +418,7 @@ void BlockAssembler::addPackageTxs(int &nPackagesSelected, int &nDescendantsUpda
|
|
|
|
|
|
|
|
|
|
// Package can be added. Sort the entries in a valid order.
|
|
|
|
|
std::vector<CTxMemPool::txiter> sortedEntries;
|
|
|
|
|
SortForBlock(ancestors, iter, sortedEntries);
|
|
|
|
|
SortForBlock(ancestors, sortedEntries);
|
|
|
|
|
|
|
|
|
|
for (size_t i=0; i<sortedEntries.size(); ++i) {
|
|
|
|
|
AddToBlock(sortedEntries[i]);
|
|
|
|
|