PIVX Core  5.6.99
P2P Digital Currency
Public Member Functions | Protected Attributes | List of all members
CCoinsViewDB Class Reference

CCoinsView backed by the LevelDB coin database (chainstate/) More...

#include <txdb.h>

Inheritance diagram for CCoinsViewDB:
[legend]
Collaboration diagram for CCoinsViewDB:
[legend]

Public Member Functions

 CCoinsViewDB (size_t nCacheSize, bool fMemory=false, bool fWipe=false)
 
bool GetCoin (const COutPoint &outpoint, Coin &coin) const override
 Retrieve the Coin (unspent transaction output) for a given outpoint. More...
 
bool HaveCoin (const COutPoint &outpoint) const override
 Just check whether we have data for a given outpoint. 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...
 
CCoinsViewCursorCursor () const override
 Get a cursor to iterate over the whole state. More...
 
bool Upgrade ()
 Attempt to update from an older database format. Returns whether an error occurred. More...
 
size_t EstimateSize () const override
 Estimate database size (0 if not implemented) More...
 
bool BatchWrite (CCoinsMap &mapCoins, const uint256 &hashBlock, const uint256 &hashSaplingAnchor, CAnchorsSaplingMap &mapSaplingAnchors, CNullifiersMap &mapSaplingNullifiers) override
 Do a bulk modification (multiple Coin changes + BestBlock change). More...
 
bool GetSaplingAnchorAt (const uint256 &rt, SaplingMerkleTree &tree) const override
 Retrieve the tree (Sapling) at a particular anchored root in the chain. More...
 
bool GetNullifier (const uint256 &nf) const override
 Determine whether a nullifier is spent or not. More...
 
uint256 GetBestAnchor () const override
 Get the current "tip" or the latest anchored tree root in the chain. More...
 
bool BatchWriteSapling (const uint256 &hashSaplingAnchor, CAnchorsSaplingMap &mapSaplingAnchors, CNullifiersMap &mapSaplingNullifiers, CDBBatch &batch)
 
- Public Member Functions inherited from CCoinsView
virtual ~CCoinsView ()
 As we use CCoinsViews polymorphically, have a virtual destructor. More...
 

Protected Attributes

CDBWrapper db
 

Detailed Description

CCoinsView backed by the LevelDB coin database (chainstate/)

Definition at line 70 of file txdb.h.

Constructor & Destructor Documentation

◆ CCoinsViewDB()

CCoinsViewDB::CCoinsViewDB ( size_t  nCacheSize,
bool  fMemory = false,
bool  fWipe = false 
)
explicit

Definition at line 47 of file txdb.cpp.

Member Function Documentation

◆ BatchWrite()

bool CCoinsViewDB::BatchWrite ( CCoinsMap mapCoins,
const uint256 hashBlock,
const uint256 hashSaplingAnchor,
CAnchorsSaplingMap mapSaplingAnchors,
CNullifiersMap mapSaplingNullifiers 
)
overridevirtual

Do a bulk modification (multiple Coin changes + BestBlock change).

The passed mapCoins can be modified.

Reimplemented from CCoinsView.

Definition at line 77 of file txdb.cpp.

◆ BatchWriteSapling()

bool CCoinsViewDB::BatchWriteSapling ( const uint256 hashSaplingAnchor,
CAnchorsSaplingMap mapSaplingAnchors,
CNullifiersMap mapSaplingNullifiers,
CDBBatch batch 
)

Definition at line 79 of file sapling_txdb.cpp.

◆ Cursor()

CCoinsViewCursor * CCoinsViewDB::Cursor ( ) const
overridevirtual

Get a cursor to iterate over the whole state.

Reimplemented from CCoinsView.

Definition at line 184 of file txdb.cpp.

Here is the call graph for this function:

◆ EstimateSize()

size_t CCoinsViewDB::EstimateSize ( ) const
overridevirtual

Estimate database size (0 if not implemented)

Reimplemented from CCoinsView.

Definition at line 146 of file txdb.cpp.

Here is the call graph for this function:

◆ GetBestAnchor()

uint256 CCoinsViewDB::GetBestAnchor ( ) const
overridevirtual

Get the current "tip" or the latest anchored tree root in the chain.

Reimplemented from CCoinsView.

Definition at line 30 of file sapling_txdb.cpp.

Here is the call graph for this function:

◆ GetBestBlock()

uint256 CCoinsViewDB::GetBestBlock ( ) const
overridevirtual

Retrieve the block hash whose state this CCoinsView currently represents.

Reimplemented from CCoinsView.

Definition at line 61 of file txdb.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCoin()

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

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

Reimplemented from CCoinsView.

Definition at line 51 of file txdb.cpp.

Here is the call graph for this function:

◆ GetHeadBlocks()

std::vector< uint256 > CCoinsViewDB::GetHeadBlocks ( ) const
overridevirtual

Retrieve the range of blocks that may have been only partially written.

If the database is in a consistent state, the result is the empty vector. Otherwise, a two-element vector is returned consisting of the new and the old block hash, in that order.

Reimplemented from CCoinsView.

Definition at line 69 of file txdb.cpp.

Here is the call graph for this function:

◆ GetNullifier()

bool CCoinsViewDB::GetNullifier ( const uint256 nullifier) const
overridevirtual

Determine whether a nullifier is spent or not.

Reimplemented from CCoinsView.

Definition at line 25 of file sapling_txdb.cpp.

Here is the call graph for this function:

◆ GetSaplingAnchorAt()

bool CCoinsViewDB::GetSaplingAnchorAt ( const uint256 rt,
SaplingMerkleTree tree 
) const
overridevirtual

Retrieve the tree (Sapling) at a particular anchored root in the chain.

Reimplemented from CCoinsView.

Definition at line 13 of file sapling_txdb.cpp.

Here is the call graph for this function:

◆ HaveCoin()

bool CCoinsViewDB::HaveCoin ( const COutPoint outpoint) const
overridevirtual

Just check whether we have data for a given outpoint.

This may (but cannot always) return true for spent outputs.

Reimplemented from CCoinsView.

Definition at line 56 of file txdb.cpp.

Here is the call graph for this function:

◆ Upgrade()

bool CCoinsViewDB::Upgrade ( )

Attempt to update from an older database format. Returns whether an error occurred.

Upgrade the database from older formats.

Currently implemented:

  • from the per-tx utxo model (4.2.0) to per-txout (4.2.99)

Definition at line 514 of file txdb.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ db

CDBWrapper CCoinsViewDB::db
protected

Definition at line 73 of file txdb.h.


The documentation for this class was generated from the following files: