// blocks and we must accept those blocks.
static const unsigned int STRICT_FLAGS = MANDATORY_SCRIPT_VERIFY_FLAGS | STRICT_FORMAT_FLAGS;
-// Soft verifications, no extended signature format checkings
-static const unsigned int SOFT_FLAGS = STRICT_FLAGS & ~STRICT_FORMAT_FLAGS;
-
enum txnouttype
{
TX_NONSTANDARD,
// Immediate operand
if (opcode <= OP_PUSHDATA4)
{
- uint32_t nSize;
+ uint32_t nSize = OP_0;
if (opcode < OP_PUSHDATA1)
{
nSize = opcode;
{
if (end() - pc < 2)
return false;
- nSize = 0;
memcpy(&nSize, &pc[0], 2);
pc += 2;
}
};
bool IsCanonicalPubKey(const std::vector<unsigned char> &vchPubKey, unsigned int flags);
+bool IsDERSignature(const valtype &vchSig, bool fWithHashType=false, bool fCheckLow=false);
bool IsCanonicalSignature(const std::vector<unsigned char> &vchSig, unsigned int flags);
-
bool EvalScript(std::vector<std::vector<unsigned char> >& stack, const CScript& script, const CTransaction& txTo, unsigned int nIn, unsigned int flags, int nHashType);
bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, std::vector<std::vector<unsigned char> >& vSolutionsRet);
int ScriptSigArgsExpected(txnouttype t, const std::vector<std::vector<unsigned char> >& vSolutions);