mirror of
https://github.com/Qortal/altcoinj.git
synced 2025-01-31 23:32:16 +00:00
Script: fix bug, OP_0/OP_FALSE is not invalid.
This commit is contained in:
parent
172f264ee2
commit
d537c8017a
@ -591,7 +591,10 @@ public class Script {
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch(opcode) {
|
switch(opcode) {
|
||||||
//case OP_0: dont know why this isnt also here in the reference client
|
case OP_0:
|
||||||
|
// This is also OP_FALSE (they are both zero).
|
||||||
|
stack.add(new byte[]{0});
|
||||||
|
break;
|
||||||
case OP_1NEGATE:
|
case OP_1NEGATE:
|
||||||
stack.add(Utils.reverseBytes(Utils.encodeMPI(BigInteger.ONE.negate(), false)));
|
stack.add(Utils.reverseBytes(Utils.encodeMPI(BigInteger.ONE.negate(), false)));
|
||||||
break;
|
break;
|
||||||
@ -1014,7 +1017,7 @@ public class Script {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new ScriptException("Script used a reserved Op Code");
|
throw new ScriptException("Script used a reserved opcode " + opcode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1163,7 +1166,7 @@ public class Script {
|
|||||||
throw new ScriptException("Stack empty at end of script execution.");
|
throw new ScriptException("Stack empty at end of script execution.");
|
||||||
|
|
||||||
if (!castToBool(stack.pollLast()))
|
if (!castToBool(stack.pollLast()))
|
||||||
throw new ScriptException("Script resulted in a non-true stack");
|
throw new ScriptException("Script resulted in a non-true stack: " + stack);
|
||||||
|
|
||||||
// P2SH is pay to script hash. It means that the scriptPubKey has a special form which is a valid
|
// P2SH is pay to script hash. It means that the scriptPubKey has a special form which is a valid
|
||||||
// program but it has "useless" form that if evaluated as a normal program always returns true.
|
// program but it has "useless" form that if evaluated as a normal program always returns true.
|
||||||
|
Loading…
Reference in New Issue
Block a user