Bitcoin Core 28.99.0
P2P Digital Currency
|
Validation result for a transaction evaluated by MemPoolAccept (single or package). More...
#include <validation.h>
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 | FeeFailure (TxValidationState state, CFeeRate effective_feerate, const std::vector< Wtxid > &wtxids_fee_calculations) |
static MempoolAcceptResult | Success (std::list< CTransactionRef > &&replaced_txns, int64_t vsize, CAmount fees, CFeeRate effective_feerate, const std::vector< Wtxid > &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::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< CAmount > | m_base_fees |
Raw base fees in satoshis. More... | |
const std::optional< CFeeRate > | m_effective_feerate |
The feerate at which this transaction was considered. More... | |
const std::optional< std::vector< Wtxid > > | m_wtxids_fee_calculations |
Contains the wtxids of the transactions used for fee-related checks. More... | |
const std::optional< uint256 > | m_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< Wtxid > &wtxids_fee_calculations) | |
Constructor for success case. More... | |
MempoolAcceptResult (TxValidationState state, CFeeRate effective_feerate, const std::vector< Wtxid > &wtxids_fee_calculations) | |
Constructor for fee-related failure 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... | |
Validation result for a transaction evaluated by MemPoolAccept (single or package).
Here are the expected fields and properties of a result depending on its ResultType, applicable to results returned from package evaluation: +------------------------—+-------------—+----------------—+---------------—+-------------—+----------------—+ | Field or property | VALID | INVALID | MEMPOOL_ENTRY | DIFFERENT_WITNESS | | | |-----------------------------------—| | | | | | TX_RECONSIDERABLE | Other | | | +------------------------—+-------------—+----------------—+---------------—+-------------—+----------------—+ | txid in mempool? | yes | no | no* | yes | yes | | wtxid in mempool? | yes | no | no* | yes | no | | m_state | yes, IsValid() | yes, IsInvalid() | yes, IsInvalid() | yes, IsValid() | yes, IsValid() | | m_vsize | yes | no | no | yes | no | | m_base_fees | yes | no | no | yes | no | | m_effective_feerate | yes | yes | no | no | no | | m_wtxids_fee_calculations | yes | yes | no | no | no | | m_other_wtxid | no | no | no | no | yes | +------------------------—+-------------—+----------------—+---------------—+-------------—+----------------—+ (*) Individual transaction acceptance doesn't return MEMPOOL_ENTRY and DIFFERENT_WITNESS. It returns INVALID, with the errors txn-already-in-mempool and txn-same-nonwitness-data-in-mempool respectively. In those cases, the txid or wtxid may be in the mempool for a TX_CONFLICT.
Definition at line 123 of file validation.h.
|
strong |
Used to indicate the results of mempool validation.
Enumerator | |
---|---|
VALID | |
INVALID |
|
MEMPOOL_ENTRY |
|
DIFFERENT_WITNESS |
|
Definition at line 125 of file validation.h.
|
inlineexplicitprivate |
Constructor for failure case.
Definition at line 189 of file validation.h.
|
inlineexplicitprivate |
Constructor for success case.
Definition at line 195 of file validation.h.
|
inlineexplicitprivate |
Constructor for fee-related failure case.
Definition at line 208 of file validation.h.
|
inlineexplicitprivate |
Constructor for already-in-mempool case.
It wouldn't replace any transactions.
Definition at line 217 of file validation.h.
|
inlineexplicitprivate |
Constructor for witness-swapped case.
Definition at line 221 of file validation.h.
|
inlinestatic |
Definition at line 159 of file validation.h.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
const std::optional<CAmount> MempoolAcceptResult::m_base_fees |
Raw base fees in satoshis.
Definition at line 142 of file validation.h.
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).
Definition at line 148 of file validation.h.
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 157 of file validation.h.
const std::list<CTransactionRef> MempoolAcceptResult::m_replaced_transactions |
Mempool transactions replaced by the tx.
Definition at line 138 of file validation.h.
const ResultType MempoolAcceptResult::m_result_type |
const TxValidationState MempoolAcceptResult::m_state |
Contains information about why the transaction failed.
Definition at line 135 of file validation.h.
const std::optional<int64_t> MempoolAcceptResult::m_vsize |
Virtual size as used by the mempool, calculated using serialized size and sigops.
Definition at line 140 of file validation.h.
const std::optional<std::vector<Wtxid> > 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 154 of file validation.h.