Bitcoin Core  25.99.0
P2P Digital Currency
Public Types | Public Member Functions | Public Attributes | Private Attributes | List of all members
CTxMemPoolEntry Class Reference

CTxMemPoolEntry stores data about the corresponding transaction, as well as data about all in-mempool transactions that depend on the transaction ("descendant" transactions). More...

#include <mempool_entry.h>

Collaboration diagram for CTxMemPoolEntry:
[legend]

Public Types

typedef std::reference_wrapper< const CTxMemPoolEntryCTxMemPoolEntryRef
 
typedef std::set< CTxMemPoolEntryRef, CompareIteratorByHashParents
 
typedef std::set< CTxMemPoolEntryRef, CompareIteratorByHashChildren
 

Public Member Functions

 CTxMemPoolEntry (const CTransactionRef &tx, CAmount fee, int64_t time, unsigned int entry_height, bool spends_coinbase, int64_t sigops_cost, LockPoints lp)
 
const CTransactionGetTx () const
 
CTransactionRef GetSharedTx () const
 
const CAmountGetFee () const
 
size_t GetTxSize () const
 
size_t GetTxWeight () const
 
std::chrono::seconds GetTime () const
 
unsigned int GetHeight () const
 
int64_t GetSigOpCost () const
 
CAmount GetModifiedFee () const
 
size_t DynamicMemoryUsage () const
 
const LockPointsGetLockPoints () const
 
void UpdateDescendantState (int64_t modifySize, CAmount modifyFee, int64_t modifyCount)
 
void UpdateAncestorState (int64_t modifySize, CAmount modifyFee, int64_t modifyCount, int64_t modifySigOps)
 
void UpdateModifiedFee (CAmount fee_diff)
 
void UpdateLockPoints (const LockPoints &lp)
 
uint64_t GetCountWithDescendants () const
 
uint64_t GetSizeWithDescendants () const
 
CAmount GetModFeesWithDescendants () const
 
bool GetSpendsCoinbase () const
 
uint64_t GetCountWithAncestors () const
 
uint64_t GetSizeWithAncestors () const
 
CAmount GetModFeesWithAncestors () const
 
int64_t GetSigOpCostWithAncestors () const
 
const ParentsGetMemPoolParentsConst () const
 
const ChildrenGetMemPoolChildrenConst () const
 
ParentsGetMemPoolParents () const
 
ChildrenGetMemPoolChildren () const
 

Public Attributes

size_t vTxHashesIdx
 Index in mempool's vTxHashes. More...
 
Epoch::Marker m_epoch_marker
 epoch when last touched, useful for graph algorithms More...
 

Private Attributes

const CTransactionRef tx
 
Parents m_parents
 
Children m_children
 
const CAmount nFee
 Cached to avoid expensive parent-transaction lookups. More...
 
const size_t nTxWeight
 ... and avoid recomputing tx weight (also used for GetTxSize()) More...
 
const size_t nUsageSize
 ... and total memory usage More...
 
const int64_t nTime
 Local time when entering the mempool. More...
 
const unsigned int entryHeight
 Chain height when entering the mempool. More...
 
const bool spendsCoinbase
 keep track of transactions that spend a coinbase More...
 
const int64_t sigOpCost
 Total sigop cost. More...
 
CAmount m_modified_fee
 Used for determining the priority of the transaction for mining in a block. More...
 
LockPoints lockPoints
 Track the height and time at which tx was final. More...
 
uint64_t nCountWithDescendants {1}
 number of descendant transactions More...
 
uint64_t nSizeWithDescendants
 ... and size More...
 
CAmount nModFeesWithDescendants
 ... and total fees (all including us) More...
 
uint64_t nCountWithAncestors {1}
 
uint64_t nSizeWithAncestors
 
CAmount nModFeesWithAncestors
 
int64_t nSigOpCostWithAncestors
 

Detailed Description

CTxMemPoolEntry stores data about the corresponding transaction, as well as data about all in-mempool transactions that depend on the transaction ("descendant" transactions).

When a new entry is added to the mempool, we update the descendant state (nCountWithDescendants, nSizeWithDescendants, and nModFeesWithDescendants) for all ancestors of the newly added transaction.

Definition at line 65 of file mempool_entry.h.

Member Typedef Documentation

◆ Children

Definition at line 71 of file mempool_entry.h.

◆ CTxMemPoolEntryRef

typedef std::reference_wrapper<const CTxMemPoolEntry> CTxMemPoolEntry::CTxMemPoolEntryRef

Definition at line 68 of file mempool_entry.h.

◆ Parents

Definition at line 70 of file mempool_entry.h.

Constructor & Destructor Documentation

◆ CTxMemPoolEntry()

CTxMemPoolEntry::CTxMemPoolEntry ( const CTransactionRef tx,
CAmount  fee,
int64_t  time,
unsigned int  entry_height,
bool  spends_coinbase,
int64_t  sigops_cost,
LockPoints  lp 
)
inline

Definition at line 101 of file mempool_entry.h.

Member Function Documentation

◆ DynamicMemoryUsage()

size_t CTxMemPoolEntry::DynamicMemoryUsage ( ) const
inline

Definition at line 133 of file mempool_entry.h.

◆ GetCountWithAncestors()

uint64_t CTxMemPoolEntry::GetCountWithAncestors ( ) const
inline

Definition at line 160 of file mempool_entry.h.

◆ GetCountWithDescendants()

uint64_t CTxMemPoolEntry::GetCountWithDescendants ( ) const
inline

Definition at line 154 of file mempool_entry.h.

◆ GetFee()

const CAmount& CTxMemPoolEntry::GetFee ( ) const
inline

Definition at line 123 of file mempool_entry.h.

Here is the caller graph for this function:

◆ GetHeight()

unsigned int CTxMemPoolEntry::GetHeight ( ) const
inline

Definition at line 130 of file mempool_entry.h.

Here is the caller graph for this function:

◆ GetLockPoints()

const LockPoints& CTxMemPoolEntry::GetLockPoints ( ) const
inline

Definition at line 134 of file mempool_entry.h.

◆ GetMemPoolChildren()

Children& CTxMemPoolEntry::GetMemPoolChildren ( ) const
inline

Definition at line 168 of file mempool_entry.h.

◆ GetMemPoolChildrenConst()

const Children& CTxMemPoolEntry::GetMemPoolChildrenConst ( ) const
inline

Definition at line 166 of file mempool_entry.h.

Here is the caller graph for this function:

◆ GetMemPoolParents()

Parents& CTxMemPoolEntry::GetMemPoolParents ( ) const
inline

Definition at line 167 of file mempool_entry.h.

◆ GetMemPoolParentsConst()

const Parents& CTxMemPoolEntry::GetMemPoolParentsConst ( ) const
inline

Definition at line 165 of file mempool_entry.h.

◆ GetModFeesWithAncestors()

CAmount CTxMemPoolEntry::GetModFeesWithAncestors ( ) const
inline

Definition at line 162 of file mempool_entry.h.

◆ GetModFeesWithDescendants()

CAmount CTxMemPoolEntry::GetModFeesWithDescendants ( ) const
inline

Definition at line 156 of file mempool_entry.h.

Here is the caller graph for this function:

◆ GetModifiedFee()

CAmount CTxMemPoolEntry::GetModifiedFee ( ) const
inline

Definition at line 132 of file mempool_entry.h.

Here is the caller graph for this function:

◆ GetSharedTx()

CTransactionRef CTxMemPoolEntry::GetSharedTx ( ) const
inline

Definition at line 122 of file mempool_entry.h.

◆ GetSigOpCost()

int64_t CTxMemPoolEntry::GetSigOpCost ( ) const
inline

Definition at line 131 of file mempool_entry.h.

◆ GetSigOpCostWithAncestors()

int64_t CTxMemPoolEntry::GetSigOpCostWithAncestors ( ) const
inline

Definition at line 163 of file mempool_entry.h.

◆ GetSizeWithAncestors()

uint64_t CTxMemPoolEntry::GetSizeWithAncestors ( ) const
inline

Definition at line 161 of file mempool_entry.h.

◆ GetSizeWithDescendants()

uint64_t CTxMemPoolEntry::GetSizeWithDescendants ( ) const
inline

Definition at line 155 of file mempool_entry.h.

Here is the caller graph for this function:

◆ GetSpendsCoinbase()

bool CTxMemPoolEntry::GetSpendsCoinbase ( ) const
inline

Definition at line 158 of file mempool_entry.h.

◆ GetTime()

std::chrono::seconds CTxMemPoolEntry::GetTime ( ) const
inline

Definition at line 129 of file mempool_entry.h.

Here is the caller graph for this function:

◆ GetTx()

const CTransaction& CTxMemPoolEntry::GetTx ( ) const
inline

Definition at line 121 of file mempool_entry.h.

Here is the caller graph for this function:

◆ GetTxSize()

size_t CTxMemPoolEntry::GetTxSize ( ) const
inline

Definition at line 124 of file mempool_entry.h.

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

◆ GetTxWeight()

size_t CTxMemPoolEntry::GetTxWeight ( ) const
inline

Definition at line 128 of file mempool_entry.h.

◆ UpdateAncestorState()

void CTxMemPoolEntry::UpdateAncestorState ( int64_t  modifySize,
CAmount  modifyFee,
int64_t  modifyCount,
int64_t  modifySigOps 
)

Definition at line 377 of file txmempool.cpp.

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

◆ UpdateDescendantState()

void CTxMemPoolEntry::UpdateDescendantState ( int64_t  modifySize,
CAmount  modifyFee,
int64_t  modifyCount 
)

Definition at line 368 of file txmempool.cpp.

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

◆ UpdateLockPoints()

void CTxMemPoolEntry::UpdateLockPoints ( const LockPoints lp)
inline

Definition at line 149 of file mempool_entry.h.

Here is the caller graph for this function:

◆ UpdateModifiedFee()

void CTxMemPoolEntry::UpdateModifiedFee ( CAmount  fee_diff)
inline

Definition at line 141 of file mempool_entry.h.

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

Member Data Documentation

◆ entryHeight

const unsigned int CTxMemPoolEntry::entryHeight
private

Chain height when entering the mempool.

Definition at line 81 of file mempool_entry.h.

◆ lockPoints

LockPoints CTxMemPoolEntry::lockPoints
private

Track the height and time at which tx was final.

Definition at line 85 of file mempool_entry.h.

◆ m_children

Children CTxMemPoolEntry::m_children
mutableprivate

Definition at line 76 of file mempool_entry.h.

◆ m_epoch_marker

Epoch::Marker CTxMemPoolEntry::m_epoch_marker
mutable

epoch when last touched, useful for graph algorithms

Definition at line 171 of file mempool_entry.h.

◆ m_modified_fee

CAmount CTxMemPoolEntry::m_modified_fee
private

Used for determining the priority of the transaction for mining in a block.

Definition at line 84 of file mempool_entry.h.

◆ m_parents

Parents CTxMemPoolEntry::m_parents
mutableprivate

Definition at line 75 of file mempool_entry.h.

◆ nCountWithAncestors

uint64_t CTxMemPoolEntry::nCountWithAncestors {1}
private

Definition at line 95 of file mempool_entry.h.

◆ nCountWithDescendants

uint64_t CTxMemPoolEntry::nCountWithDescendants {1}
private

number of descendant transactions

Definition at line 90 of file mempool_entry.h.

◆ nFee

const CAmount CTxMemPoolEntry::nFee
private

Cached to avoid expensive parent-transaction lookups.

Definition at line 77 of file mempool_entry.h.

◆ nModFeesWithAncestors

CAmount CTxMemPoolEntry::nModFeesWithAncestors
private

Definition at line 97 of file mempool_entry.h.

◆ nModFeesWithDescendants

CAmount CTxMemPoolEntry::nModFeesWithDescendants
private

... and total fees (all including us)

Definition at line 92 of file mempool_entry.h.

◆ nSigOpCostWithAncestors

int64_t CTxMemPoolEntry::nSigOpCostWithAncestors
private

Definition at line 98 of file mempool_entry.h.

◆ nSizeWithAncestors

uint64_t CTxMemPoolEntry::nSizeWithAncestors
private

Definition at line 96 of file mempool_entry.h.

◆ nSizeWithDescendants

uint64_t CTxMemPoolEntry::nSizeWithDescendants
private

... and size

Definition at line 91 of file mempool_entry.h.

◆ nTime

const int64_t CTxMemPoolEntry::nTime
private

Local time when entering the mempool.

Definition at line 80 of file mempool_entry.h.

◆ nTxWeight

const size_t CTxMemPoolEntry::nTxWeight
private

... and avoid recomputing tx weight (also used for GetTxSize())

Definition at line 78 of file mempool_entry.h.

◆ nUsageSize

const size_t CTxMemPoolEntry::nUsageSize
private

... and total memory usage

Definition at line 79 of file mempool_entry.h.

◆ sigOpCost

const int64_t CTxMemPoolEntry::sigOpCost
private

Total sigop cost.

Definition at line 83 of file mempool_entry.h.

◆ spendsCoinbase

const bool CTxMemPoolEntry::spendsCoinbase
private

keep track of transactions that spend a coinbase

Definition at line 82 of file mempool_entry.h.

◆ tx

const CTransactionRef CTxMemPoolEntry::tx
private

Definition at line 74 of file mempool_entry.h.

◆ vTxHashesIdx

size_t CTxMemPoolEntry::vTxHashesIdx
mutable

Index in mempool's vTxHashes.

Definition at line 170 of file mempool_entry.h.


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