Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
tx_verify.h
Go to the documentation of this file.
1// Copyright (c) 2017-present The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5#ifndef BITCOIN_CONSENSUS_TX_VERIFY_H
6#define BITCOIN_CONSENSUS_TX_VERIFY_H
7
8#include <consensus/amount.h>
10
11#include <cstdint>
12#include <vector>
13
14class CBlockIndex;
15class CCoinsViewCache;
16class CTransaction;
18
20
21namespace Consensus {
28[[nodiscard]] bool CheckTxInputs(const CTransaction& tx, TxValidationState& state, const CCoinsViewCache& inputs, int nSpendHeight, CAmount& txfee);
29} // namespace Consensus
30
32
38unsigned int GetLegacySigOpCount(const CTransaction& tx);
39
47unsigned int GetP2SHSigOpCount(const CTransaction& tx, const CCoinsViewCache& mapInputs);
48
57
62bool IsFinalTx(const CTransaction &tx, int nBlockHeight, int64_t nBlockTime);
63
70std::pair<int, int64_t> CalculateSequenceLocks(const CTransaction &tx, int flags, std::vector<int>& prevHeights, const CBlockIndex& block);
71
72bool EvaluateSequenceLocks(const CBlockIndex& block, std::pair<int, int64_t> lockPair);
77bool SequenceLocks(const CTransaction &tx, int flags, std::vector<int>& prevHeights, const CBlockIndex& block);
78
79#endif // BITCOIN_CONSENSUS_TX_VERIFY_H
int64_t CAmount
Amount in satoshis (Can be negative).
Definition amount.h:12
int flags
The block chain is a tree shaped structure starting with the genesis block at the root,...
Definition chain.h:94
CCoinsView that adds a memory cache for transactions to another CCoinsView.
Definition coins.h:368
The basic transaction that is broadcasted on the network and contained in blocks.
Transaction validation functions.
bool CheckTxInputs(const CTransaction &tx, TxValidationState &state, const CCoinsViewCache &inputs, int nSpendHeight, CAmount &txfee)
Check whether all inputs of this transaction are valid (no double spends and amounts) This does not m...
unsigned int GetP2SHSigOpCount(const CTransaction &tx, const CCoinsViewCache &mapInputs)
Count ECDSA signature operations in pay-to-script-hash inputs.
bool EvaluateSequenceLocks(const CBlockIndex &block, std::pair< int, int64_t > lockPair)
Definition tx_verify.cpp:97
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 co...
Definition tx_verify.cpp:39
int64_t GetTransactionSigOpCost(const CTransaction &tx, const CCoinsViewCache &inputs, script_verify_flags flags)
Compute total signature operation cost of a transaction.
unsigned int GetLegacySigOpCount(const CTransaction &tx)
Auxiliary functions for transaction validation (ideally should not be exposed).
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.
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.
Definition tx_verify.cpp:17