diff options
author | Matt Corallo <git@bluematt.me> | 2015-10-22 15:49:53 -0700 |
---|---|---|
committer | Matt Corallo <git@bluematt.me> | 2015-12-01 15:52:09 -0800 |
commit | 97bf377bd1f27ad841e1414e74361923a9f794f5 (patch) | |
tree | 636b92174fbced1d0bcc9238fdbbe00baf2b73c4 | |
parent | 677aa3d88c018a235d5b6d929e82f7b16e4f3e41 (diff) |
Add CCoinsViewCache::HaveCoinsInCache to check if a tx is cached
-rw-r--r-- | src/coins.cpp | 5 | ||||
-rw-r--r-- | src/coins.h | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/coins.cpp b/src/coins.cpp index 060d6b7c5d..122bf4e48d 100644 --- a/src/coins.cpp +++ b/src/coins.cpp @@ -144,6 +144,11 @@ bool CCoinsViewCache::HaveCoins(const uint256 &txid) const { return (it != cacheCoins.end() && !it->second.coins.vout.empty()); } +bool CCoinsViewCache::HaveCoinsInCache(const uint256 &txid) const { + CCoinsMap::const_iterator it = cacheCoins.find(txid); + return it != cacheCoins.end(); +} + uint256 CCoinsViewCache::GetBestBlock() const { if (hashBlock.IsNull()) hashBlock = base->GetBestBlock(); diff --git a/src/coins.h b/src/coins.h index 5beea711b2..60c1ba8a78 100644 --- a/src/coins.h +++ b/src/coins.h @@ -406,6 +406,13 @@ public: bool BatchWrite(CCoinsMap &mapCoins, const uint256 &hashBlock); /** + * Check if we have the given tx already loaded in this cache. + * The semantics are the same as HaveCoins(), but no calls to + * the backing CCoinsView are made. + */ + bool HaveCoinsInCache(const uint256 &txid) const; + + /** * Return a pointer to CCoins in the cache, or NULL if not found. This is * more efficient than GetCoins. Modifications to other cache entries are * allowed while accessing the returned pointer. |