6 #ifndef PIVX_EVO_SPECIALTX_VALIDATION_H
7 #define PIVX_EVO_SPECIALTX_VALIDATION_H
10 #include "validation.h"
21 static const unsigned int MAX_SPECIALTX_EXTRAPAYLOAD = 10000;
The block chain is a tree shaped structure starting with the genesis block at the root,...
CCoinsView that adds a memory cache for transactions to another CCoinsView.
The basic transaction that is broadcasted on the network and contained in blocks.
Capture information about block/transaction validation.
#define T(expected, seed, data)
RecursiveMutex cs_main
Global state.
bool UndoSpecialTxsInBlock(const CBlock &block, const CBlockIndex *pindex)
bool CheckSpecialTx(const CTransaction &tx, const CBlockIndex *pindexPrev, const CCoinsViewCache *view, CValidationState &state) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Payload validity checks (including duplicate unique properties against list at pindexPrev)
bool ProcessSpecialTxsInBlock(const CBlock &block, const CBlockIndex *pindex, const CCoinsViewCache *view, CValidationState &state, bool fJustCheck) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
uint256 CalcTxInputsHash(const CTransaction &tx)
bool GetValidatedTxPayload(const CTransaction &tx, T &obj, CValidationState &state)
bool VerifyLLMQCommitment(const llmq::CFinalCommitment &qfc, const CBlockIndex *pindexPrev, CValidationState &state) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
bool CheckSpecialTxNoContext(const CTransaction &tx, CValidationState &state) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
#define EXCLUSIVE_LOCKS_REQUIRED(...)