diff options
author | Matt Corallo <git@bluematt.me> | 2017-06-27 14:46:19 -0400 |
---|---|---|
committer | Matt Corallo <git@bluematt.me> | 2017-06-27 14:47:07 -0400 |
commit | 381b8fc36537f9fa42f4487bcf55920b2ae0bda9 (patch) | |
tree | 95c6c018bdeee5027e5676afb1766bbc319c93dd | |
parent | acb11535cb8499fd47fdde7f52457f8945b58856 (diff) |
Clarify CCoinsViewMemPool documentation.
Thanks to @sdaftuar for correcting my misunderstanding.
-rw-r--r-- | src/rpc/blockchain.cpp | 2 | ||||
-rw-r--r-- | src/txmempool.h | 7 |
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 { |