diff options
| author | Pieter Wuille <[email protected]> | 2017-06-28 11:15:45 -0700 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2017-06-28 11:22:00 -0700 |
| commit | 30c21306c17165c3925fea4ac9d1a4763c6d2a99 (patch) | |
| tree | d7c5cbf6a96fb2121c184ec74edaa150c4861988 /src | |
| parent | Merge #10148: Use non-atomic flushing with block replay (diff) | |
| parent | Clarify CCoinsViewMemPool documentation. (diff) | |
| download | discoin-30c21306c17165c3925fea4ac9d1a4763c6d2a99.tar.xz discoin-30c21306c17165c3925fea4ac9d1a4763c6d2a99.zip | |
Merge #10685: Clarify CCoinsViewMemPool documentation.
381b8fc36 Clarify CCoinsViewMemPool documentation. (Matt Corallo)
Tree-SHA512: 0d1520595a03ea4038b4119871d79dfc28a50f42ac7667b30a583805d4fe4b0480a6912b9b4f7660c7223778ef85f2f9d1870551383a35c5e8c88cd2935f59d3
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 be9e83eb4..d272114a7 100644 --- a/src/txmempool.h +++ b/src/txmempool.h @@ -669,6 +669,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 { |