10 #include "validation.h" 15 #include <boost/foreach.hpp> 39 std::vector<std::vector<unsigned char> > vSolutions;
40 if (!
Solver(scriptPubKey, whichType, vSolutions))
45 unsigned char m = vSolutions.front()[0];
46 unsigned char n = vSolutions.back()[0];
76 BOOST_FOREACH(
const CTxIn& txin, tx.
vin)
86 reason =
"scriptsig-size";
90 reason =
"scriptsig-not-pushonly";
95 unsigned int nDataOut = 0;
99 reason =
"scriptpubkey";
106 reason =
"bare-multisig";
116 reason =
"multi-op-return";
128 for (
unsigned int i = 0; i < tx.
vin.size(); i++)
132 std::vector<std::vector<unsigned char> > vSolutions;
136 if (!
Solver(prevScript, whichType, vSolutions))
141 std::vector<std::vector<unsigned char> > stack;
147 CScript subscript(stack.back().begin(), stack.back().end());
static const int32_t CURRENT_VERSION
bool fAcceptDatacarrier
bytes (+1 for OP_RETURN, +2 for the pushdata opcodes)
const CTxOut & GetOutputFor(const CTxIn &input) const
bool AreInputsStandard(const CTransaction &tx, const CCoinsViewCache &mapInputs)
static const unsigned int MAX_P2SH_SIGOPS
bool EvalScript(vector< vector< unsigned char > > &stack, const CScript &script, unsigned int flags, const BaseSignatureChecker &checker, ScriptError *serror)
const std::vector< CTxIn > vin
static const int32_t MAX_STANDARD_VERSION
bool IsDust(const CFeeRate &minRelayTxFee) const
bool IsPushOnly(const_iterator pc) const
const std::vector< CTxOut > vout
bool Solver(const CScript &scriptPubKey, txnouttype &typeRet, vector< vector< unsigned char > > &vSolutionsRet)
bool IsStandardTx(const CTransaction &tx, std::string &reason)
bool IsStandard(const CScript &scriptPubKey, txnouttype &whichType)
unsigned nMaxDatacarrierBytes
static const unsigned int MAX_STANDARD_TX_SIZE