diff --git a/txscript/data/script_tests.json b/txscript/data/script_tests.json index 97ef353d..b18c71d9 100644 --- a/txscript/data/script_tests.json +++ b/txscript/data/script_tests.json @@ -2999,5 +2999,32 @@ ["1 1","IF 0xfe ELSE ENDIF", "NONE", "ERR_RESERVED_OPCODE", "Opcode 0xfe is reserved in executed branch"], ["1 1","IF 0xff ELSE ENDIF", "NONE", "ERR_RESERVED_OPCODE", "Opcode 0xff is reserved in executed branch"], +["0", "IF 0x50{255} ENDIF 1", "NONE", "OK", ">255 opcodes, but RESERVED (0x50) doesn't count towards opcode limit"], + +["0 0x01 0x50", "HASH160 0x14 0x77c33ee1f1892b124f2c9aaed62114c23cffe2da EQUAL", "NONE", "ERR_RESERVED_OPCODE", "OP_RESERVED in P2SH should fail"], +["0 0x01 VER", "HASH160 0x14 0xe682277f7669fe986d315d52b56df3d244da11a0 EQUAL", "NONE", "ERR_RESERVED_OPCODE", "OP_VER in P2SH should fail"], + +["STAKE opcodes tests"], + +["SSTX related tests"], +["1 1 ADD", "SSTX 2 OP_EQUAL", "NONE", "OK", "SSTX is a NOP"], +["DATA_5 DATA_4 0x7a{4}", "SSTX HASH160 DATA_20 0x246bda0f2b9aba6dc78c6259970e45e6af960d46 EQUAL", "NONE", "ERR_EVAL_FALSE", "SSTX almost P2SH"], +["1 3 DATA_2 ADD SSTX", "HASH160 DATA_20 0xdcbd287f8a23bf97cea3c77392854976a6feff8f EQUAL", "NONE", "ERR_P2SH_STAKE_OPCODES", "SSTX invalid in a P2SH"], + +["SSGEN related tests"], +["1 1 ADD", "SSGEN 2 OP_EQUAL", "NONE", "OK", "SSGEN is a NOP"], +["DATA_5 DATA_4 0x7a{4}", "SSGEN HASH160 DATA_20 0x246bda0f2b9aba6dc78c6259970e45e6af960d46 EQUAL", "NONE", "ERR_EVAL_FALSE", "SSGEN almost P2SH"], +["1 3 DATA_2 ADD SSGEN", "HASH160 DATA_20 0xdb831e9b4c3e3a3f383bbf397aee000a27ba275e EQUAL", "NONE", "ERR_P2SH_STAKE_OPCODES", "SSGEN invalid in a P2SH"], + +["SSRTX related tests"], +["1 1 ADD", "SSRTX 2 OP_EQUAL", "NONE", "OK", "SSRTX is a NOP"], +["DATA_5 DATA_4 0x7a{4}", "SSRTX HASH160 DATA_20 0x246bda0f2b9aba6dc78c6259970e45e6af960d46 EQUAL", "NONE", "ERR_EVAL_FALSE", "SSRTX almost P2SH"], +["1 3 DATA_2 ADD SSRTX", "HASH160 DATA_20 0xe24f7b2b9b8fae339d3a66ac5ab661c7da97038a EQUAL", "NONE", "ERR_P2SH_STAKE_OPCODES", "SSRTX invalid in a P2SH"], + +["SSTXCHANGE related tests"], +["1 1 ADD", "SSTXCHANGE 2 OP_EQUAL", "NONE", "OK", "SSTXCHANGE is a NOP"], +["DATA_5 DATA_4 0x7a{4}", "SSTXCHANGE HASH160 DATA_20 0x246bda0f2b9aba6dc78c6259970e45e6af960d46 EQUAL", "NONE", "ERR_EVAL_FALSE", "SSTXCHANGE almost P2SH"], +["1 3 DATA_2 ADD SSTXCHANGE", "HASH160 DATA_20 0x346bae114bc3467f3c337f620a3272f4dd417daa EQUAL", "NONE", "ERR_P2SH_STAKE_OPCODES", "SSTXCHANGE invalid in a P2SH"], + ["The End"] ] diff --git a/txscript/reference_test.go b/txscript/reference_test.go index 3b1a6205..d4321724 100644 --- a/txscript/reference_test.go +++ b/txscript/reference_test.go @@ -283,6 +283,8 @@ func parseExpectedResult(expected string) ([]ErrorCode, error) { return []ErrorCode{ErrDisabledOpcode}, nil case "ERR_RESERVED_OPCODE": return []ErrorCode{ErrReservedOpcode}, nil + case "ERR_P2SH_STAKE_OPCODES": + return []ErrorCode{ErrP2SHStakeOpCodes}, nil case "ERR_MALFORMED_PUSH": return []ErrorCode{ErrMalformedPush}, nil case "ERR_INVALID_STACK_OPERATION", "ERR_INVALID_ALTSTACK_OPERATION":