aboutsummaryrefslogtreecommitdiff
path: root/src/consensus
diff options
context:
space:
mode:
authorSuhas Daftuar <sdaftuar@gmail.com>2019-02-21 13:46:25 -0500
committerSuhas Daftuar <sdaftuar@gmail.com>2019-05-02 15:29:09 -0400
commit54470e767bab37f9b7089782b1be73d5883bb244 (patch)
tree93593dd9585f122caa07da630ace4931e1ef5d33 /src/consensus
parent2120c31521aa51aa1984ee33250b8320506d3a0f (diff)
downloadbitcoin-54470e767bab37f9b7089782b1be73d5883bb244.tar.xz
Assert validation reasons are contextually correct
Diffstat (limited to 'src/consensus')
-rw-r--r--src/consensus/validation.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/consensus/validation.h b/src/consensus/validation.h
index ed1b047614..3079f3b08c 100644
--- a/src/consensus/validation.h
+++ b/src/consensus/validation.h
@@ -66,6 +66,32 @@ enum class ValidationInvalidReason {
TX_MEMPOOL_POLICY, //!< violated mempool's fee/size/descendant/RBF/etc limits
};
+inline bool IsTransactionReason(ValidationInvalidReason r)
+{
+ return r == ValidationInvalidReason::NONE ||
+ r == ValidationInvalidReason::CONSENSUS ||
+ r == ValidationInvalidReason::RECENT_CONSENSUS_CHANGE ||
+ r == ValidationInvalidReason::TX_NOT_STANDARD ||
+ r == ValidationInvalidReason::TX_MISSING_INPUTS ||
+ r == ValidationInvalidReason::TX_WITNESS_MUTATED ||
+ r == ValidationInvalidReason::TX_CONFLICT ||
+ r == ValidationInvalidReason::TX_MEMPOOL_POLICY;
+}
+
+inline bool IsBlockReason(ValidationInvalidReason r)
+{
+ return r == ValidationInvalidReason::NONE ||
+ r == ValidationInvalidReason::CONSENSUS ||
+ r == ValidationInvalidReason::RECENT_CONSENSUS_CHANGE ||
+ r == ValidationInvalidReason::CACHED_INVALID ||
+ r == ValidationInvalidReason::BLOCK_INVALID_HEADER ||
+ r == ValidationInvalidReason::BLOCK_MUTATED ||
+ r == ValidationInvalidReason::BLOCK_MISSING_PREV ||
+ r == ValidationInvalidReason::BLOCK_INVALID_PREV ||
+ r == ValidationInvalidReason::BLOCK_TIME_FUTURE ||
+ r == ValidationInvalidReason::BLOCK_CHECKPOINT;
+}
+
/** Capture information about block/transaction validation */
class CValidationState {
private: