aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Corallo <git@bluematt.me>2017-06-27 14:46:19 -0400
committerMatt Corallo <git@bluematt.me>2017-06-27 14:47:07 -0400
commit381b8fc36537f9fa42f4487bcf55920b2ae0bda9 (patch)
tree95c6c018bdeee5027e5676afb1766bbc319c93dd
parentacb11535cb8499fd47fdde7f52457f8945b58856 (diff)
Clarify CCoinsViewMemPool documentation.
Thanks to @sdaftuar for correcting my misunderstanding.
-rw-r--r--src/rpc/blockchain.cpp2
-rw-r--r--src/txmempool.h7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp
index 8f7f76841d..c17ca2fa3a 100644
--- a/src/rpc/blockchain.cpp
+++ b/src/rpc/blockchain.cpp
@@ -991,7 +991,7 @@ UniValue gettxout(const JSONRPCRequest& request)
if (fMempool) {
LOCK(mempool.cs);
CCoinsViewMemPool view(pcoinsTip, mempool);
- if (!view.GetCoin(out, coin) || mempool.isSpent(out)) { // TODO: filtering spent coins should be done by the CCoinsViewMemPool
+ if (!view.GetCoin(out, coin) || mempool.isSpent(out)) {
return NullUniValue;
}
} else {
diff --git a/src/txmempool.h b/src/txmempool.h
index 78ac3c209b..70d7429f22 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -676,6 +676,13 @@ private:
/**
* CCoinsView that brings transactions from a memorypool into view.
* It does not check for spendings by memory pool transactions.
+ * Instead, it provides access to all Coins which are either unspent in the
+ * base CCoinsView, or are outputs from any mempool transaction!
+ * This allows transaction replacement to work as expected, as you want to
+ * have all inputs "available" to check signatures, and any cycles in the
+ * dependency graph are checked directly in AcceptToMemoryPool.
+ * It also allows you to sign a double-spend directly in signrawtransaction,
+ * as long as the conflicting transaction is not yet confirmed.
*/
class CCoinsViewMemPool : public CCoinsViewBacked
{