| 328 | } |
| 329 | |
| 330 | double CCoinsViewCache::GetPriority(const CTransaction& tx, int nHeight, CAmount &inChainInputValue) const |
| 331 | { |
| 332 | inChainInputValue = 0; |
| 333 | if (tx.IsCoinGenerated()) |
| 334 | return 0.0; |
| 335 | double dResult = 0.0; |
| 336 | for (const CTxIn& txin : tx.vin) { |
| 337 | const CCoins* coins = AccessCoins(txin.prevout.hash); |
| 338 | assert(coins); |
| 339 | if (!coins->IsAvailable(txin.prevout.n)) continue; |
| 340 | if (coins->nHeight < nHeight) { |
| 341 | dResult += coins->vout[txin.prevout.n].nValue * (nHeight - coins->nHeight); |
| 342 | inChainInputValue += coins->vout[txin.prevout.n].nValue; |
| 343 | } |
| 344 | } |
| 345 | return tx.ComputePriority(dResult); |
| 346 | } |
| 347 | |
| 348 | CCoinsModifier::CCoinsModifier(CCoinsViewCache& cache_, CCoinsMap::iterator it_, size_t usage) : cache(cache_), it(it_), cachedCoinUsage(usage) |
| 349 | { |
no test coverage detected