Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

CCoinsViewMemPool Class Reference

CCoinsView that brings transactions from a memorypool into view. More...

#include <txmempool.h>

+ Inheritance diagram for CCoinsViewMemPool:
+ Collaboration diagram for CCoinsViewMemPool:

Public Member Functions

 CCoinsViewMemPool (CCoinsView *baseIn, const CTxMemPool &mempoolIn)
 
bool GetCoin (const COutPoint &outpoint, Coin &coin) const override
 Retrieve the Coin (unspent transaction output) for a given outpoint. More...
 
- Public Member Functions inherited from CCoinsViewBacked
 CCoinsViewBacked (CCoinsView *viewIn)
 
bool HaveCoin (const COutPoint &outpoint) const override
 Just check whether a given outpoint is unspent. More...
 
uint256 GetBestBlock () const override
 Retrieve the block hash whose state this CCoinsView currently represents. More...
 
std::vector< uint256GetHeadBlocks () const override
 Retrieve the range of blocks that may have been only partially written. More...
 
void SetBackend (CCoinsView &viewIn)
 
bool BatchWrite (CCoinsMap &mapCoins, const uint256 &hashBlock) override
 Do a bulk modification (multiple Coin changes + BestBlock change). More...
 
CCoinsViewCursorCursor () const override
 Get a cursor to iterate over the whole state. More...
 
size_t EstimateSize () const override
 Estimate database size (0 if not implemented) More...
 
- Public Member Functions inherited from CCoinsView
virtual ~CCoinsView ()
 As we use CCoinsViews polymorphically, have a virtual destructor. More...
 

Protected Attributes

const CTxMemPoolmempool
 
- Protected Attributes inherited from CCoinsViewBacked
CCoinsViewbase
 

Detailed Description

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.

Definition at line 739 of file txmempool.h.

Constructor & Destructor Documentation

◆ CCoinsViewMemPool()

CCoinsViewMemPool::CCoinsViewMemPool ( CCoinsView baseIn,
const CTxMemPool mempoolIn 
)

Definition at line 1371 of file txmempool.cpp.

Member Function Documentation

◆ GetCoin()

bool CCoinsViewMemPool::GetCoin ( const COutPoint outpoint,
Coin coin 
) const
overridevirtual

Retrieve the Coin (unspent transaction output) for a given outpoint.

Returns true only when an unspent coin was found, which is returned in coin. When false is returned, coin's value is unspecified.

Reimplemented from CCoinsViewBacked.

Definition at line 1373 of file txmempool.cpp.

References CCoinsViewBacked::base, CTxMemPool::get(), CCoinsView::GetCoin(), COutPoint::hash, mempool, MEMPOOL_HEIGHT, and COutPoint::n.

Member Data Documentation

◆ mempool

const CTxMemPool& CCoinsViewMemPool::mempool
protected

Definition at line 742 of file txmempool.h.

Referenced by GetCoin().


The documentation for this class was generated from the following files:
Released under the MIT license