Bitcoin
|
#include <consensus/tx_verify.h>
#include <consensus/consensus.h>
#include <primitives/transaction.h>
#include <script/interpreter.h>
#include <consensus/validation.h>
#include <chain.h>
#include <coins.h>
#include <util/moneystr.h>
Functions | |
bool | IsFinalTx (const CTransaction &tx, int nBlockHeight, int64_t nBlockTime) |
std::pair< int, int64_t > | CalculateSequenceLocks (const CTransaction &tx, int flags, std::vector< int > *prevHeights, const CBlockIndex &block) |
bool | EvaluateSequenceLocks (const CBlockIndex &block, std::pair< int, int64_t > lockPair) |
bool | SequenceLocks (const CTransaction &tx, int flags, std::vector< int > *prevHeights, const CBlockIndex &block) |
unsigned int | GetLegacySigOpCount (const CTransaction &tx) |
unsigned int | GetP2SHSigOpCount (const CTransaction &tx, const CCoinsViewCache &inputs) |
int64_t | GetTransactionSigOpCost (const CTransaction &tx, const CCoinsViewCache &inputs, int flags) |
std::pair<int, int64_t> CalculateSequenceLocks | ( | const CTransaction & | tx, |
int | flags, | ||
std::vector< int > * | prevHeights, | ||
const CBlockIndex & | block | ||
) |
Calculates the block height and previous block's median time past at which the transaction will be considered final in the context of BIP 68. Also removes from the vector of input heights any entries which did not correspond to sequence locked inputs as they do not affect the calculation.
bool EvaluateSequenceLocks | ( | const CBlockIndex & | block, |
std::pair< int, int64_t > | lockPair | ||
) |
unsigned int GetLegacySigOpCount | ( | const CTransaction & | tx | ) |
Auxiliary functions for transaction validation (ideally should not be exposed) Count ECDSA signature operations the old-fashioned (pre-0.6) way
unsigned int GetP2SHSigOpCount | ( | const CTransaction & | tx, |
const CCoinsViewCache & | mapInputs | ||
) |
Count ECDSA signature operations in pay-to-script-hash inputs.
[in] | mapInputs | Map of previous transactions that have outputs we're spending |
int64_t GetTransactionSigOpCost | ( | const CTransaction & | tx, |
const CCoinsViewCache & | inputs, | ||
int | flags | ||
) |
Compute total signature operation cost of a transaction.
[in] | tx | Transaction for which we are computing the cost |
[in] | inputs | Map of previous transactions that have outputs we're spending |
[out] | flags | Script verification flags |
bool IsFinalTx | ( | const CTransaction & | tx, |
int | nBlockHeight, | ||
int64_t | nBlockTime | ||
) |
Check if transaction is final and can be included in a block with the specified height and time. Consensus critical.
bool SequenceLocks | ( | const CTransaction & | tx, |
int | flags, | ||
std::vector< int > * | prevHeights, | ||
const CBlockIndex & | block | ||
) |
Check if transaction is final per BIP 68 sequence numbers and can be included in a block. Consensus critical. Takes as input a list of heights at which tx's inputs (in order) confirmed.