Make non-minimal OP_IF/NOTIF argument non-standard for P2WSH

Github-Pull: #8526
Rebased-From: c72c5b1e3bd42e84465677e94aa83316ff3d9a14
This commit is contained in:
Johnson Lau
2016-09-23 13:06:45 +08:00
committed by Wladimir J. van der Laan
parent 633c4a1f36
commit 0027672c80
8 changed files with 101 additions and 2 deletions

View File

@@ -428,6 +428,12 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, un
if (stack.size() < 1)
return set_error(serror, SCRIPT_ERR_UNBALANCED_CONDITIONAL);
valtype& vch = stacktop(-1);
if (sigversion == SIGVERSION_WITNESS_V0 && (flags & SCRIPT_VERIFY_MINIMALIF)) {
if (vch.size() > 1)
return set_error(serror, SCRIPT_ERR_MINIMALIF);
if (vch.size() == 1 && vch[0] != 1)
return set_error(serror, SCRIPT_ERR_MINIMALIF);
}
fValue = CastToBool(vch);
if (opcode == OP_NOTIF)
fValue = !fValue;