Bitcoin ABC 0.30.3
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 } |
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< TxId > &txids_fee_calculations) |
static MempoolAcceptResult | Success (int64_t vsize, Amount fees, CFeeRate effective_feerate, const std::vector< TxId > &txids_fee_calculations) |
Constructor for success case. More... | |
static MempoolAcceptResult | MempoolTx (int64_t vsize, Amount fees) |
Constructor for already-in-mempool case. More... | |
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< int64_t > | m_vsize |
Virtual size as used by the mempool, calculated using serialized size and sigchecks. More... | |
const std::optional< Amount > | 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< TxId > > | m_txids_fee_calculations |
Contains the txids of the transactions used for fee-related checks. More... | |
Private Member Functions | |
MempoolAcceptResult (TxValidationState state) | |
Constructor for failure case. More... | |
MempoolAcceptResult (ResultType result_type, int64_t vsize, Amount fees, CFeeRate effective_feerate, const std::vector< TxId > &txids_fee_calculations) | |
Generic constructor for success cases. More... | |
MempoolAcceptResult (TxValidationState state, CFeeRate effective_feerate, const std::vector< TxId > &txids_fee_calculations) | |
Constructor for fee-related failure case. More... | |
MempoolAcceptResult (int64_t vsize, Amount fees) | |
Constructor for already-in-mempool 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 | | | |----------------------------------------—| | | | | TX_PACKAGE_RECONSIDERABLE | Other | | +-----------------------—+--------—+------------------------—+------------—+------------—+ | txid in mempool? | yes | no | no* | yes | | m_state | IsValid() | IsInvalid() | IsInvalid() | IsValid() | | m_replaced_transactions | yes | no | no | no | | m_vsize | yes | no | no | yes | | m_base_fees | yes | no | no | yes | | m_effective_feerate | yes | yes | no | no | | m_txids_fee_calculations | yes | yes | no | no | +-----------------------—+--------—+------------------------—+------------—+------------—+ (*) Individual transaction acceptance doesn't return MEMPOOL_ENTRY. It returns INVALID, with the error txn-already-in-mempool. In this case, the txid may be in the mempool for a tx conflict (TX_AVALANCHE_RECONSIDERABLE).
Definition at line 206 of file validation.h.
|
strong |
Used to indicate the results of mempool validation.
Enumerator | |
---|---|
VALID | Fully validated, valid. |
INVALID | Invalid. |
MEMPOOL_ENTRY | Valid, transaction was already in the mempool. |
Definition at line 208 of file validation.h.
|
inlineexplicitprivate |
Constructor for failure case.
Definition at line 276 of file validation.h.
|
inlineexplicitprivate |
Generic constructor for success cases.
Definition at line 284 of file validation.h.
|
inlineexplicitprivate |
Constructor for fee-related failure case.
Definition at line 293 of file validation.h.
|
inlineexplicitprivate |
Constructor for already-in-mempool case.
Definition at line 301 of file validation.h.
|
inlinestatic |
Definition at line 245 of file validation.h.
|
inlinestatic |
|
inlinestatic |
Constructor for already-in-mempool case.
It wouldn't replace any transactions.
Definition at line 268 of file validation.h.
|
inlinestatic |
Constructor for success case.
Definition at line 258 of file validation.h.
const std::optional<Amount> MempoolAcceptResult::m_base_fees |
Raw base fees in satoshis.
Definition at line 228 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_txids_fee_calculations below).
Definition at line 236 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 220 of file validation.h.
const std::optional<std::vector<TxId> > MempoolAcceptResult::m_txids_fee_calculations |
Contains the txids of the transactions used for fee-related checks.
Includes this transaction's txid 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().
Definition at line 243 of file validation.h.
const std::optional<int64_t> MempoolAcceptResult::m_vsize |
Virtual size as used by the mempool, calculated using serialized size and sigchecks.
Definition at line 226 of file validation.h.