![]() |
Bitcoin Core 29.99.0
P2P Digital Currency
|
#include <policy/policy.h>
#include <coins.h>
#include <consensus/amount.h>
#include <consensus/consensus.h>
#include <consensus/validation.h>
#include <policy/feerate.h>
#include <primitives/transaction.h>
#include <script/interpreter.h>
#include <script/script.h>
#include <script/solver.h>
#include <serialize.h>
#include <span.h>
#include <algorithm>
#include <cstddef>
#include <vector>
Go to the source code of this file.
Functions | |
CAmount | GetDustThreshold (const CTxOut &txout, const CFeeRate &dustRelayFeeIn) |
bool | IsDust (const CTxOut &txout, const CFeeRate &dustRelayFeeIn) |
std::vector< uint32_t > | GetDust (const CTransaction &tx, CFeeRate dust_relay_rate) |
Get the vout index numbers of all dust outputs. More... | |
bool | IsStandard (const CScript &scriptPubKey, TxoutType &whichType) |
bool | IsStandardTx (const CTransaction &tx, const std::optional< unsigned > &max_datacarrier_bytes, bool permit_bare_multisig, const CFeeRate &dust_relay_fee, std::string &reason) |
Check for standard transaction types. More... | |
bool | AreInputsStandard (const CTransaction &tx, const CCoinsViewCache &mapInputs) |
Check transaction inputs. More... | |
bool | IsWitnessStandard (const CTransaction &tx, const CCoinsViewCache &mapInputs) |
Check if the transaction is over standard P2WSH resources limit: 3600bytes witnessScript size, 80bytes per witness stack element, 100 witness stack elements These limits are adequate for multisignatures up to n-of-100 using OP_CHECKSIG, OP_ADD, and OP_EQUAL. More... | |
int64_t | GetVirtualTransactionSize (int64_t nWeight, int64_t nSigOpCost, unsigned int bytes_per_sigop) |
Compute the virtual transaction size (weight reinterpreted as bytes). More... | |
int64_t | GetVirtualTransactionSize (const CTransaction &tx, int64_t nSigOpCost, unsigned int bytes_per_sigop) |
int64_t | GetVirtualTransactionInputSize (const CTxIn &txin, int64_t nSigOpCost, unsigned int bytes_per_sigop) |
bool AreInputsStandard | ( | const CTransaction & | tx, |
const CCoinsViewCache & | mapInputs | ||
) |
Check transaction inputs.
Check for standard transaction types.
This does three things:
Note that only the non-witness portion of the transaction is checked here.
Definition at line 182 of file policy.cpp.
std::vector< uint32_t > GetDust | ( | const CTransaction & | tx, |
CFeeRate | dust_relay_rate | ||
) |
Get the vout index numbers of all dust outputs.
Definition at line 70 of file policy.cpp.
Definition at line 26 of file policy.cpp.
int64_t GetVirtualTransactionInputSize | ( | const CTxIn & | txin, |
int64_t | nSigOpCost, | ||
unsigned int | bytes_per_sigop | ||
) |
Definition at line 315 of file policy.cpp.
int64_t GetVirtualTransactionSize | ( | const CTransaction & | tx, |
int64_t | nSigOpCost, | ||
unsigned int | bytes_per_sigop | ||
) |
int64_t GetVirtualTransactionSize | ( | int64_t | nWeight, |
int64_t | nSigOpCost, | ||
unsigned int | bytes_per_sigop | ||
) |
Compute the virtual transaction size (weight reinterpreted as bytes).
Definition at line 305 of file policy.cpp.
Definition at line 65 of file policy.cpp.
Definition at line 79 of file policy.cpp.
bool IsStandardTx | ( | const CTransaction & | tx, |
const std::optional< unsigned > & | max_datacarrier_bytes, | ||
bool | permit_bare_multisig, | ||
const CFeeRate & | dust_relay_fee, | ||
std::string & | reason | ||
) |
Check for standard transaction types.
Definition at line 99 of file policy.cpp.
bool IsWitnessStandard | ( | const CTransaction & | tx, |
const CCoinsViewCache & | mapInputs | ||
) |
Check if the transaction is over standard P2WSH resources limit: 3600bytes witnessScript size, 80bytes per witness stack element, 100 witness stack elements These limits are adequate for multisignatures up to n-of-100 using OP_CHECKSIG, OP_ADD, and OP_EQUAL.
Also enforce a maximum stack item size limit and no annexes for tapscript spends.
Definition at line 216 of file policy.cpp.