Bitcoin Core  25.99.0
P2P Digital Currency
Public Types | Static Public Member Functions | Public Attributes | Private Member Functions | List of all members
MempoolAcceptResult Struct Reference

Validation result for a single transaction mempool acceptance. More...

#include <validation.h>

Collaboration diagram for MempoolAcceptResult:
[legend]

Public Types

enum class  ResultType { VALID , INVALID , MEMPOOL_ENTRY , DIFFERENT_WITNESS }
 Used to indicate the results of mempool validation. More...
 

Static Public Member Functions

static MempoolAcceptResult Failure (TxValidationState state)
 
static MempoolAcceptResult Success (std::list< CTransactionRef > &&replaced_txns, int64_t vsize, CAmount fees, CFeeRate effective_feerate, const std::vector< uint256 > &wtxids_fee_calculations)
 
static MempoolAcceptResult MempoolTx (int64_t vsize, CAmount fees)
 
static MempoolAcceptResult MempoolTxDifferentWitness (const uint256 &other_wtxid)
 

Public Attributes

const ResultType m_result_type
 Result type. More...
 
const TxValidationState m_state
 Contains information about why the transaction failed. More...
 
const std::optional< std::list< CTransactionRef > > m_replaced_transactions
 Mempool transactions replaced by the tx. More...
 
const std::optional< int64_t > m_vsize
 Virtual size as used by the mempool, calculated using serialized size and sigops. More...
 
const std::optional< CAmountm_base_fees
 Raw base fees in satoshis. More...
 
const std::optional< CFeeRatem_effective_feerate
 The feerate at which this transaction was considered. More...
 
const std::optional< std::vector< uint256 > > m_wtxids_fee_calculations
 Contains the wtxids of the transactions used for fee-related checks. More...
 
const std::optional< uint256m_other_wtxid
 The wtxid of the transaction in the mempool which has the same txid but different witness. More...
 

Private Member Functions

 MempoolAcceptResult (TxValidationState state)
 Constructor for failure case. More...
 
 MempoolAcceptResult (std::list< CTransactionRef > &&replaced_txns, int64_t vsize, CAmount fees, CFeeRate effective_feerate, const std::vector< uint256 > &wtxids_fee_calculations)
 Constructor for success case. More...
 
 MempoolAcceptResult (int64_t vsize, CAmount fees)
 Constructor for already-in-mempool case. More...
 
 MempoolAcceptResult (const uint256 &other_wtxid)
 Constructor for witness-swapped case. More...
 

Detailed Description

Validation result for a single transaction mempool acceptance.

Definition at line 117 of file validation.h.

Member Enumeration Documentation

◆ ResultType

Used to indicate the results of mempool validation.

Enumerator
VALID 
INVALID 

Fully validated, valid.

MEMPOOL_ENTRY 

Invalid.

DIFFERENT_WITNESS 

Valid, transaction was already in the mempool.

Definition at line 119 of file validation.h.

Constructor & Destructor Documentation

◆ MempoolAcceptResult() [1/4]

MempoolAcceptResult::MempoolAcceptResult ( TxValidationState  state)
inlineexplicitprivate

Constructor for failure case.

Definition at line 180 of file validation.h.

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

◆ MempoolAcceptResult() [2/4]

MempoolAcceptResult::MempoolAcceptResult ( std::list< CTransactionRef > &&  replaced_txns,
int64_t  vsize,
CAmount  fees,
CFeeRate  effective_feerate,
const std::vector< uint256 > &  wtxids_fee_calculations 
)
inlineexplicitprivate

Constructor for success case.

Definition at line 186 of file validation.h.

◆ MempoolAcceptResult() [3/4]

MempoolAcceptResult::MempoolAcceptResult ( int64_t  vsize,
CAmount  fees 
)
inlineexplicitprivate

Constructor for already-in-mempool case.

It wouldn't replace any transactions.

Definition at line 199 of file validation.h.

◆ MempoolAcceptResult() [4/4]

MempoolAcceptResult::MempoolAcceptResult ( const uint256 other_wtxid)
inlineexplicitprivate

Constructor for witness-swapped case.

Definition at line 203 of file validation.h.

Member Function Documentation

◆ Failure()

static MempoolAcceptResult MempoolAcceptResult::Failure ( TxValidationState  state)
inlinestatic

Definition at line 156 of file validation.h.

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

◆ MempoolTx()

static MempoolAcceptResult MempoolAcceptResult::MempoolTx ( int64_t  vsize,
CAmount  fees 
)
inlinestatic

Definition at line 169 of file validation.h.

Here is the call graph for this function:

◆ MempoolTxDifferentWitness()

static MempoolAcceptResult MempoolAcceptResult::MempoolTxDifferentWitness ( const uint256 other_wtxid)
inlinestatic

Definition at line 173 of file validation.h.

Here is the call graph for this function:

◆ Success()

static MempoolAcceptResult MempoolAcceptResult::Success ( std::list< CTransactionRef > &&  replaced_txns,
int64_t  vsize,
CAmount  fees,
CFeeRate  effective_feerate,
const std::vector< uint256 > &  wtxids_fee_calculations 
)
inlinestatic

Definition at line 160 of file validation.h.

Here is the call graph for this function:

Member Data Documentation

◆ m_base_fees

const std::optional<CAmount> MempoolAcceptResult::m_base_fees

Raw base fees in satoshis.

Definition at line 137 of file validation.h.

◆ m_effective_feerate

const std::optional<CFeeRate> MempoolAcceptResult::m_effective_feerate

The feerate at which this transaction was considered.

This includes any fee delta added using prioritisetransaction (i.e. modified fees). If this transaction was submitted as a package, this is the package feerate, which may also include its descendants and/or ancestors (see m_wtxids_fee_calculations below). Only present when m_result_type = ResultType::VALID.

Definition at line 144 of file validation.h.

◆ m_other_wtxid

const std::optional<uint256> MempoolAcceptResult::m_other_wtxid

The wtxid of the transaction in the mempool which has the same txid but different witness.

Definition at line 154 of file validation.h.

◆ m_replaced_transactions

const std::optional<std::list<CTransactionRef> > MempoolAcceptResult::m_replaced_transactions

Mempool transactions replaced by the tx.

Definition at line 133 of file validation.h.

◆ m_result_type

const ResultType MempoolAcceptResult::m_result_type

Result type.

Present in all MempoolAcceptResults.

Definition at line 126 of file validation.h.

◆ m_state

const TxValidationState MempoolAcceptResult::m_state

Contains information about why the transaction failed.

Definition at line 129 of file validation.h.

◆ m_vsize

const std::optional<int64_t> MempoolAcceptResult::m_vsize

Virtual size as used by the mempool, calculated using serialized size and sigops.

Definition at line 135 of file validation.h.

◆ m_wtxids_fee_calculations

const std::optional<std::vector<uint256> > MempoolAcceptResult::m_wtxids_fee_calculations

Contains the wtxids of the transactions used for fee-related checks.

Includes this transaction's wtxid and may include others if this transaction was validated as part of a package. This is not necessarily equivalent to the list of transactions passed to ProcessNewPackage(). Only present when m_result_type = ResultType::VALID.

Definition at line 150 of file validation.h.


The documentation for this struct was generated from the following file: