diff options
| author | Matt Corallo <[email protected]> | 2017-06-27 14:46:19 -0400 |
|---|---|---|
| committer | Matt Corallo <[email protected]> | 2017-06-27 14:47:07 -0400 |
| commit | 381b8fc36537f9fa42f4487bcf55920b2ae0bda9 (patch) | |
| tree | 95c6c018bdeee5027e5676afb1766bbc319c93dd /src | |
| parent | Merge #10659: [qa] blockchain: Pass on closed connection during generate call (diff) | |
| download | discoin-381b8fc36537f9fa42f4487bcf55920b2ae0bda9.tar.xz discoin-381b8fc36537f9fa42f4487bcf55920b2ae0bda9.zip | |
Clarify CCoinsViewMemPool documentation.
Thanks to @sdaftuar for correcting my misunderstanding.
Diffstat (limited to 'src')
| -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 8f7f76841..c17ca2fa3 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 78ac3c209..70d7429f2 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 { |