|
|
|
@ -107,7 +107,12 @@ bool CCoinsViewCache::SetCoins(const uint256 &txid, const CCoins &coins) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CCoinsViewCache::HaveCoins(const uint256 &txid) {
|
|
|
|
|
return FetchCoins(txid) != cacheCoins.end();
|
|
|
|
|
CCoinsMap::iterator it = FetchCoins(txid);
|
|
|
|
|
// We're using vtx.empty() instead of IsPruned here for performance reasons,
|
|
|
|
|
// as we only care about the case where an transaction was replaced entirely
|
|
|
|
|
// in a reorganization (which wipes vout entirely, as opposed to spending
|
|
|
|
|
// which just cleans individual outputs).
|
|
|
|
|
return (it != cacheCoins.end() && !it->second.vout.empty());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
uint256 CCoinsViewCache::GetBestBlock() {
|
|
|
|
|