diff --git a/txscript/internal_test.go b/txscript/internal_test.go index c40e269f5..af1757567 100644 --- a/txscript/internal_test.go +++ b/txscript/internal_test.go @@ -378,33 +378,17 @@ func (vm *Engine) TstSetPC(script, off int) { // Internal tests for opcodde parsing with bad data templates. func TestParseOpcode(t *testing.T) { - fakemap := make(map[byte]*opcode) - // deep copy - for k, v := range opcodemap { - fakemap[k] = v - } + // Deep copy the array. + fakeArray := opcodeArray // wrong length -8. - fakemap[OP_PUSHDATA4] = &opcode{value: OP_PUSHDATA4, + fakeArray[OP_PUSHDATA4] = opcode{value: OP_PUSHDATA4, name: "OP_PUSHDATA4", length: -8, opfunc: opcodePushData} // this script would be fine if -8 was a valid length. _, err := parseScriptTemplate([]byte{OP_PUSHDATA4, 0x1, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00}, fakemap) + 0x00, 0x00, 0x00, 0x00, 0x00}, &fakeArray) if err == nil { - t.Errorf("no error with dodgy opcode map!") - } - - // Missing entry. - fakemap = make(map[byte]*opcode) - for k, v := range opcodemap { - fakemap[k] = v - } - delete(fakemap, OP_PUSHDATA4) - // this script would be fine if -8 was a valid length. - _, err = parseScriptTemplate([]byte{OP_PUSHDATA4, 0x1, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00}, fakemap) - if err == nil { - t.Errorf("no error with dodgy opcode map (missing entry)!") + t.Errorf("no error with dodgy opcode array!") } } @@ -418,7 +402,7 @@ var popTests = []popTest{ { name: "OP_FALSE", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_FALSE], + opcode: &opcodeArray[OP_FALSE], data: nil, }, expectedErr: nil, @@ -426,7 +410,7 @@ var popTests = []popTest{ { name: "OP_FALSE long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_FALSE], + opcode: &opcodeArray[OP_FALSE], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -434,7 +418,7 @@ var popTests = []popTest{ { name: "OP_DATA_1 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_1], + opcode: &opcodeArray[OP_DATA_1], data: nil, }, expectedErr: ErrStackInvalidOpcode, @@ -442,7 +426,7 @@ var popTests = []popTest{ { name: "OP_DATA_1", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_1], + opcode: &opcodeArray[OP_DATA_1], data: make([]byte, 1), }, expectedErr: nil, @@ -450,7 +434,7 @@ var popTests = []popTest{ { name: "OP_DATA_1 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_1], + opcode: &opcodeArray[OP_DATA_1], data: make([]byte, 2), }, expectedErr: ErrStackInvalidOpcode, @@ -458,7 +442,7 @@ var popTests = []popTest{ { name: "OP_DATA_2 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_2], + opcode: &opcodeArray[OP_DATA_2], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -466,7 +450,7 @@ var popTests = []popTest{ { name: "OP_DATA_2", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_2], + opcode: &opcodeArray[OP_DATA_2], data: make([]byte, 2), }, expectedErr: nil, @@ -474,7 +458,7 @@ var popTests = []popTest{ { name: "OP_DATA_2 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_2], + opcode: &opcodeArray[OP_DATA_2], data: make([]byte, 3), }, expectedErr: ErrStackInvalidOpcode, @@ -482,7 +466,7 @@ var popTests = []popTest{ { name: "OP_DATA_3 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_3], + opcode: &opcodeArray[OP_DATA_3], data: make([]byte, 2), }, expectedErr: ErrStackInvalidOpcode, @@ -490,7 +474,7 @@ var popTests = []popTest{ { name: "OP_DATA_3", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_3], + opcode: &opcodeArray[OP_DATA_3], data: make([]byte, 3), }, expectedErr: nil, @@ -498,7 +482,7 @@ var popTests = []popTest{ { name: "OP_DATA_3 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_3], + opcode: &opcodeArray[OP_DATA_3], data: make([]byte, 4), }, expectedErr: ErrStackInvalidOpcode, @@ -506,7 +490,7 @@ var popTests = []popTest{ { name: "OP_DATA_4 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_4], + opcode: &opcodeArray[OP_DATA_4], data: make([]byte, 3), }, expectedErr: ErrStackInvalidOpcode, @@ -514,7 +498,7 @@ var popTests = []popTest{ { name: "OP_DATA_4", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_4], + opcode: &opcodeArray[OP_DATA_4], data: make([]byte, 4), }, expectedErr: nil, @@ -522,7 +506,7 @@ var popTests = []popTest{ { name: "OP_DATA_4 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_4], + opcode: &opcodeArray[OP_DATA_4], data: make([]byte, 5), }, expectedErr: ErrStackInvalidOpcode, @@ -530,7 +514,7 @@ var popTests = []popTest{ { name: "OP_DATA_5 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_5], + opcode: &opcodeArray[OP_DATA_5], data: make([]byte, 4), }, expectedErr: ErrStackInvalidOpcode, @@ -538,7 +522,7 @@ var popTests = []popTest{ { name: "OP_DATA_5", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_5], + opcode: &opcodeArray[OP_DATA_5], data: make([]byte, 5), }, expectedErr: nil, @@ -546,7 +530,7 @@ var popTests = []popTest{ { name: "OP_DATA_5 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_5], + opcode: &opcodeArray[OP_DATA_5], data: make([]byte, 6), }, expectedErr: ErrStackInvalidOpcode, @@ -554,7 +538,7 @@ var popTests = []popTest{ { name: "OP_DATA_6 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_6], + opcode: &opcodeArray[OP_DATA_6], data: make([]byte, 5), }, expectedErr: ErrStackInvalidOpcode, @@ -562,7 +546,7 @@ var popTests = []popTest{ { name: "OP_DATA_6", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_6], + opcode: &opcodeArray[OP_DATA_6], data: make([]byte, 6), }, expectedErr: nil, @@ -570,7 +554,7 @@ var popTests = []popTest{ { name: "OP_DATA_6 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_6], + opcode: &opcodeArray[OP_DATA_6], data: make([]byte, 7), }, expectedErr: ErrStackInvalidOpcode, @@ -578,7 +562,7 @@ var popTests = []popTest{ { name: "OP_DATA_7 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_7], + opcode: &opcodeArray[OP_DATA_7], data: make([]byte, 6), }, expectedErr: ErrStackInvalidOpcode, @@ -586,7 +570,7 @@ var popTests = []popTest{ { name: "OP_DATA_7", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_7], + opcode: &opcodeArray[OP_DATA_7], data: make([]byte, 7), }, expectedErr: nil, @@ -594,7 +578,7 @@ var popTests = []popTest{ { name: "OP_DATA_7 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_7], + opcode: &opcodeArray[OP_DATA_7], data: make([]byte, 8), }, expectedErr: ErrStackInvalidOpcode, @@ -602,7 +586,7 @@ var popTests = []popTest{ { name: "OP_DATA_8 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_8], + opcode: &opcodeArray[OP_DATA_8], data: make([]byte, 7), }, expectedErr: ErrStackInvalidOpcode, @@ -610,7 +594,7 @@ var popTests = []popTest{ { name: "OP_DATA_8", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_8], + opcode: &opcodeArray[OP_DATA_8], data: make([]byte, 8), }, expectedErr: nil, @@ -618,7 +602,7 @@ var popTests = []popTest{ { name: "OP_DATA_8 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_8], + opcode: &opcodeArray[OP_DATA_8], data: make([]byte, 9), }, expectedErr: ErrStackInvalidOpcode, @@ -626,7 +610,7 @@ var popTests = []popTest{ { name: "OP_DATA_9 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_9], + opcode: &opcodeArray[OP_DATA_9], data: make([]byte, 8), }, expectedErr: ErrStackInvalidOpcode, @@ -634,7 +618,7 @@ var popTests = []popTest{ { name: "OP_DATA_9", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_9], + opcode: &opcodeArray[OP_DATA_9], data: make([]byte, 9), }, expectedErr: nil, @@ -642,7 +626,7 @@ var popTests = []popTest{ { name: "OP_DATA_9 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_9], + opcode: &opcodeArray[OP_DATA_9], data: make([]byte, 10), }, expectedErr: ErrStackInvalidOpcode, @@ -650,7 +634,7 @@ var popTests = []popTest{ { name: "OP_DATA_10 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_10], + opcode: &opcodeArray[OP_DATA_10], data: make([]byte, 9), }, expectedErr: ErrStackInvalidOpcode, @@ -658,7 +642,7 @@ var popTests = []popTest{ { name: "OP_DATA_10", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_10], + opcode: &opcodeArray[OP_DATA_10], data: make([]byte, 10), }, expectedErr: nil, @@ -666,7 +650,7 @@ var popTests = []popTest{ { name: "OP_DATA_10 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_10], + opcode: &opcodeArray[OP_DATA_10], data: make([]byte, 11), }, expectedErr: ErrStackInvalidOpcode, @@ -674,7 +658,7 @@ var popTests = []popTest{ { name: "OP_DATA_11 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_11], + opcode: &opcodeArray[OP_DATA_11], data: make([]byte, 10), }, expectedErr: ErrStackInvalidOpcode, @@ -682,7 +666,7 @@ var popTests = []popTest{ { name: "OP_DATA_11", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_11], + opcode: &opcodeArray[OP_DATA_11], data: make([]byte, 11), }, expectedErr: nil, @@ -690,7 +674,7 @@ var popTests = []popTest{ { name: "OP_DATA_11 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_11], + opcode: &opcodeArray[OP_DATA_11], data: make([]byte, 12), }, expectedErr: ErrStackInvalidOpcode, @@ -698,7 +682,7 @@ var popTests = []popTest{ { name: "OP_DATA_12 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_12], + opcode: &opcodeArray[OP_DATA_12], data: make([]byte, 11), }, expectedErr: ErrStackInvalidOpcode, @@ -706,7 +690,7 @@ var popTests = []popTest{ { name: "OP_DATA_12", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_12], + opcode: &opcodeArray[OP_DATA_12], data: make([]byte, 12), }, expectedErr: nil, @@ -714,7 +698,7 @@ var popTests = []popTest{ { name: "OP_DATA_12 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_12], + opcode: &opcodeArray[OP_DATA_12], data: make([]byte, 13), }, expectedErr: ErrStackInvalidOpcode, @@ -722,7 +706,7 @@ var popTests = []popTest{ { name: "OP_DATA_13 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_13], + opcode: &opcodeArray[OP_DATA_13], data: make([]byte, 12), }, expectedErr: ErrStackInvalidOpcode, @@ -730,7 +714,7 @@ var popTests = []popTest{ { name: "OP_DATA_13", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_13], + opcode: &opcodeArray[OP_DATA_13], data: make([]byte, 13), }, expectedErr: nil, @@ -738,7 +722,7 @@ var popTests = []popTest{ { name: "OP_DATA_13 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_13], + opcode: &opcodeArray[OP_DATA_13], data: make([]byte, 14), }, expectedErr: ErrStackInvalidOpcode, @@ -746,7 +730,7 @@ var popTests = []popTest{ { name: "OP_DATA_14 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_14], + opcode: &opcodeArray[OP_DATA_14], data: make([]byte, 13), }, expectedErr: ErrStackInvalidOpcode, @@ -754,7 +738,7 @@ var popTests = []popTest{ { name: "OP_DATA_14", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_14], + opcode: &opcodeArray[OP_DATA_14], data: make([]byte, 14), }, expectedErr: nil, @@ -762,7 +746,7 @@ var popTests = []popTest{ { name: "OP_DATA_14 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_14], + opcode: &opcodeArray[OP_DATA_14], data: make([]byte, 15), }, expectedErr: ErrStackInvalidOpcode, @@ -770,7 +754,7 @@ var popTests = []popTest{ { name: "OP_DATA_15 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_15], + opcode: &opcodeArray[OP_DATA_15], data: make([]byte, 14), }, expectedErr: ErrStackInvalidOpcode, @@ -778,7 +762,7 @@ var popTests = []popTest{ { name: "OP_DATA_15", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_15], + opcode: &opcodeArray[OP_DATA_15], data: make([]byte, 15), }, expectedErr: nil, @@ -786,7 +770,7 @@ var popTests = []popTest{ { name: "OP_DATA_15 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_15], + opcode: &opcodeArray[OP_DATA_15], data: make([]byte, 16), }, expectedErr: ErrStackInvalidOpcode, @@ -794,7 +778,7 @@ var popTests = []popTest{ { name: "OP_DATA_16 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_16], + opcode: &opcodeArray[OP_DATA_16], data: make([]byte, 15), }, expectedErr: ErrStackInvalidOpcode, @@ -802,7 +786,7 @@ var popTests = []popTest{ { name: "OP_DATA_16", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_16], + opcode: &opcodeArray[OP_DATA_16], data: make([]byte, 16), }, expectedErr: nil, @@ -810,7 +794,7 @@ var popTests = []popTest{ { name: "OP_DATA_16 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_16], + opcode: &opcodeArray[OP_DATA_16], data: make([]byte, 17), }, expectedErr: ErrStackInvalidOpcode, @@ -818,7 +802,7 @@ var popTests = []popTest{ { name: "OP_DATA_17 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_17], + opcode: &opcodeArray[OP_DATA_17], data: make([]byte, 16), }, expectedErr: ErrStackInvalidOpcode, @@ -826,7 +810,7 @@ var popTests = []popTest{ { name: "OP_DATA_17", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_17], + opcode: &opcodeArray[OP_DATA_17], data: make([]byte, 17), }, expectedErr: nil, @@ -834,7 +818,7 @@ var popTests = []popTest{ { name: "OP_DATA_17 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_17], + opcode: &opcodeArray[OP_DATA_17], data: make([]byte, 18), }, expectedErr: ErrStackInvalidOpcode, @@ -842,7 +826,7 @@ var popTests = []popTest{ { name: "OP_DATA_18 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_18], + opcode: &opcodeArray[OP_DATA_18], data: make([]byte, 17), }, expectedErr: ErrStackInvalidOpcode, @@ -850,7 +834,7 @@ var popTests = []popTest{ { name: "OP_DATA_18", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_18], + opcode: &opcodeArray[OP_DATA_18], data: make([]byte, 18), }, expectedErr: nil, @@ -858,7 +842,7 @@ var popTests = []popTest{ { name: "OP_DATA_18 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_18], + opcode: &opcodeArray[OP_DATA_18], data: make([]byte, 19), }, expectedErr: ErrStackInvalidOpcode, @@ -866,7 +850,7 @@ var popTests = []popTest{ { name: "OP_DATA_19 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_19], + opcode: &opcodeArray[OP_DATA_19], data: make([]byte, 18), }, expectedErr: ErrStackInvalidOpcode, @@ -874,7 +858,7 @@ var popTests = []popTest{ { name: "OP_DATA_19", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_19], + opcode: &opcodeArray[OP_DATA_19], data: make([]byte, 19), }, expectedErr: nil, @@ -882,7 +866,7 @@ var popTests = []popTest{ { name: "OP_DATA_19 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_19], + opcode: &opcodeArray[OP_DATA_19], data: make([]byte, 20), }, expectedErr: ErrStackInvalidOpcode, @@ -890,7 +874,7 @@ var popTests = []popTest{ { name: "OP_DATA_20 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_20], + opcode: &opcodeArray[OP_DATA_20], data: make([]byte, 19), }, expectedErr: ErrStackInvalidOpcode, @@ -898,7 +882,7 @@ var popTests = []popTest{ { name: "OP_DATA_20", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_20], + opcode: &opcodeArray[OP_DATA_20], data: make([]byte, 20), }, expectedErr: nil, @@ -906,7 +890,7 @@ var popTests = []popTest{ { name: "OP_DATA_20 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_20], + opcode: &opcodeArray[OP_DATA_20], data: make([]byte, 21), }, expectedErr: ErrStackInvalidOpcode, @@ -914,7 +898,7 @@ var popTests = []popTest{ { name: "OP_DATA_21 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_21], + opcode: &opcodeArray[OP_DATA_21], data: make([]byte, 20), }, expectedErr: ErrStackInvalidOpcode, @@ -922,7 +906,7 @@ var popTests = []popTest{ { name: "OP_DATA_21", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_21], + opcode: &opcodeArray[OP_DATA_21], data: make([]byte, 21), }, expectedErr: nil, @@ -930,7 +914,7 @@ var popTests = []popTest{ { name: "OP_DATA_21 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_21], + opcode: &opcodeArray[OP_DATA_21], data: make([]byte, 22), }, expectedErr: ErrStackInvalidOpcode, @@ -938,7 +922,7 @@ var popTests = []popTest{ { name: "OP_DATA_22 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_22], + opcode: &opcodeArray[OP_DATA_22], data: make([]byte, 21), }, expectedErr: ErrStackInvalidOpcode, @@ -946,7 +930,7 @@ var popTests = []popTest{ { name: "OP_DATA_22", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_22], + opcode: &opcodeArray[OP_DATA_22], data: make([]byte, 22), }, expectedErr: nil, @@ -954,7 +938,7 @@ var popTests = []popTest{ { name: "OP_DATA_22 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_22], + opcode: &opcodeArray[OP_DATA_22], data: make([]byte, 23), }, expectedErr: ErrStackInvalidOpcode, @@ -962,7 +946,7 @@ var popTests = []popTest{ { name: "OP_DATA_23 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_23], + opcode: &opcodeArray[OP_DATA_23], data: make([]byte, 22), }, expectedErr: ErrStackInvalidOpcode, @@ -970,7 +954,7 @@ var popTests = []popTest{ { name: "OP_DATA_23", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_23], + opcode: &opcodeArray[OP_DATA_23], data: make([]byte, 23), }, expectedErr: nil, @@ -978,7 +962,7 @@ var popTests = []popTest{ { name: "OP_DATA_23 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_23], + opcode: &opcodeArray[OP_DATA_23], data: make([]byte, 24), }, expectedErr: ErrStackInvalidOpcode, @@ -986,7 +970,7 @@ var popTests = []popTest{ { name: "OP_DATA_24 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_24], + opcode: &opcodeArray[OP_DATA_24], data: make([]byte, 23), }, expectedErr: ErrStackInvalidOpcode, @@ -994,7 +978,7 @@ var popTests = []popTest{ { name: "OP_DATA_24", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_24], + opcode: &opcodeArray[OP_DATA_24], data: make([]byte, 24), }, expectedErr: nil, @@ -1002,7 +986,7 @@ var popTests = []popTest{ { name: "OP_DATA_24 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_24], + opcode: &opcodeArray[OP_DATA_24], data: make([]byte, 25), }, expectedErr: ErrStackInvalidOpcode, @@ -1010,7 +994,7 @@ var popTests = []popTest{ { name: "OP_DATA_25 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_25], + opcode: &opcodeArray[OP_DATA_25], data: make([]byte, 24), }, expectedErr: ErrStackInvalidOpcode, @@ -1018,7 +1002,7 @@ var popTests = []popTest{ { name: "OP_DATA_25", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_25], + opcode: &opcodeArray[OP_DATA_25], data: make([]byte, 25), }, expectedErr: nil, @@ -1026,7 +1010,7 @@ var popTests = []popTest{ { name: "OP_DATA_25 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_25], + opcode: &opcodeArray[OP_DATA_25], data: make([]byte, 26), }, expectedErr: ErrStackInvalidOpcode, @@ -1034,7 +1018,7 @@ var popTests = []popTest{ { name: "OP_DATA_26 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_26], + opcode: &opcodeArray[OP_DATA_26], data: make([]byte, 25), }, expectedErr: ErrStackInvalidOpcode, @@ -1042,7 +1026,7 @@ var popTests = []popTest{ { name: "OP_DATA_26", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_26], + opcode: &opcodeArray[OP_DATA_26], data: make([]byte, 26), }, expectedErr: nil, @@ -1050,7 +1034,7 @@ var popTests = []popTest{ { name: "OP_DATA_26 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_26], + opcode: &opcodeArray[OP_DATA_26], data: make([]byte, 27), }, expectedErr: ErrStackInvalidOpcode, @@ -1058,7 +1042,7 @@ var popTests = []popTest{ { name: "OP_DATA_27 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_27], + opcode: &opcodeArray[OP_DATA_27], data: make([]byte, 26), }, expectedErr: ErrStackInvalidOpcode, @@ -1066,7 +1050,7 @@ var popTests = []popTest{ { name: "OP_DATA_27", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_27], + opcode: &opcodeArray[OP_DATA_27], data: make([]byte, 27), }, expectedErr: nil, @@ -1074,7 +1058,7 @@ var popTests = []popTest{ { name: "OP_DATA_27 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_27], + opcode: &opcodeArray[OP_DATA_27], data: make([]byte, 28), }, expectedErr: ErrStackInvalidOpcode, @@ -1082,7 +1066,7 @@ var popTests = []popTest{ { name: "OP_DATA_28 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_28], + opcode: &opcodeArray[OP_DATA_28], data: make([]byte, 27), }, expectedErr: ErrStackInvalidOpcode, @@ -1090,7 +1074,7 @@ var popTests = []popTest{ { name: "OP_DATA_28", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_28], + opcode: &opcodeArray[OP_DATA_28], data: make([]byte, 28), }, expectedErr: nil, @@ -1098,7 +1082,7 @@ var popTests = []popTest{ { name: "OP_DATA_28 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_28], + opcode: &opcodeArray[OP_DATA_28], data: make([]byte, 29), }, expectedErr: ErrStackInvalidOpcode, @@ -1106,7 +1090,7 @@ var popTests = []popTest{ { name: "OP_DATA_29 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_29], + opcode: &opcodeArray[OP_DATA_29], data: make([]byte, 28), }, expectedErr: ErrStackInvalidOpcode, @@ -1114,7 +1098,7 @@ var popTests = []popTest{ { name: "OP_DATA_29", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_29], + opcode: &opcodeArray[OP_DATA_29], data: make([]byte, 29), }, expectedErr: nil, @@ -1122,7 +1106,7 @@ var popTests = []popTest{ { name: "OP_DATA_29 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_29], + opcode: &opcodeArray[OP_DATA_29], data: make([]byte, 30), }, expectedErr: ErrStackInvalidOpcode, @@ -1130,7 +1114,7 @@ var popTests = []popTest{ { name: "OP_DATA_30 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_30], + opcode: &opcodeArray[OP_DATA_30], data: make([]byte, 29), }, expectedErr: ErrStackInvalidOpcode, @@ -1138,7 +1122,7 @@ var popTests = []popTest{ { name: "OP_DATA_30", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_30], + opcode: &opcodeArray[OP_DATA_30], data: make([]byte, 30), }, expectedErr: nil, @@ -1146,7 +1130,7 @@ var popTests = []popTest{ { name: "OP_DATA_30 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_30], + opcode: &opcodeArray[OP_DATA_30], data: make([]byte, 31), }, expectedErr: ErrStackInvalidOpcode, @@ -1154,7 +1138,7 @@ var popTests = []popTest{ { name: "OP_DATA_31 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_31], + opcode: &opcodeArray[OP_DATA_31], data: make([]byte, 30), }, expectedErr: ErrStackInvalidOpcode, @@ -1162,7 +1146,7 @@ var popTests = []popTest{ { name: "OP_DATA_31", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_31], + opcode: &opcodeArray[OP_DATA_31], data: make([]byte, 31), }, expectedErr: nil, @@ -1170,7 +1154,7 @@ var popTests = []popTest{ { name: "OP_DATA_31 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_31], + opcode: &opcodeArray[OP_DATA_31], data: make([]byte, 32), }, expectedErr: ErrStackInvalidOpcode, @@ -1178,7 +1162,7 @@ var popTests = []popTest{ { name: "OP_DATA_32 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_32], + opcode: &opcodeArray[OP_DATA_32], data: make([]byte, 31), }, expectedErr: ErrStackInvalidOpcode, @@ -1186,7 +1170,7 @@ var popTests = []popTest{ { name: "OP_DATA_32", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_32], + opcode: &opcodeArray[OP_DATA_32], data: make([]byte, 32), }, expectedErr: nil, @@ -1194,7 +1178,7 @@ var popTests = []popTest{ { name: "OP_DATA_32 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_32], + opcode: &opcodeArray[OP_DATA_32], data: make([]byte, 33), }, expectedErr: ErrStackInvalidOpcode, @@ -1202,7 +1186,7 @@ var popTests = []popTest{ { name: "OP_DATA_33 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_33], + opcode: &opcodeArray[OP_DATA_33], data: make([]byte, 32), }, expectedErr: ErrStackInvalidOpcode, @@ -1210,7 +1194,7 @@ var popTests = []popTest{ { name: "OP_DATA_33", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_33], + opcode: &opcodeArray[OP_DATA_33], data: make([]byte, 33), }, expectedErr: nil, @@ -1218,7 +1202,7 @@ var popTests = []popTest{ { name: "OP_DATA_33 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_33], + opcode: &opcodeArray[OP_DATA_33], data: make([]byte, 34), }, expectedErr: ErrStackInvalidOpcode, @@ -1226,7 +1210,7 @@ var popTests = []popTest{ { name: "OP_DATA_34 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_34], + opcode: &opcodeArray[OP_DATA_34], data: make([]byte, 33), }, expectedErr: ErrStackInvalidOpcode, @@ -1234,7 +1218,7 @@ var popTests = []popTest{ { name: "OP_DATA_34", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_34], + opcode: &opcodeArray[OP_DATA_34], data: make([]byte, 34), }, expectedErr: nil, @@ -1242,7 +1226,7 @@ var popTests = []popTest{ { name: "OP_DATA_34 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_34], + opcode: &opcodeArray[OP_DATA_34], data: make([]byte, 35), }, expectedErr: ErrStackInvalidOpcode, @@ -1250,7 +1234,7 @@ var popTests = []popTest{ { name: "OP_DATA_35 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_35], + opcode: &opcodeArray[OP_DATA_35], data: make([]byte, 34), }, expectedErr: ErrStackInvalidOpcode, @@ -1258,7 +1242,7 @@ var popTests = []popTest{ { name: "OP_DATA_35", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_35], + opcode: &opcodeArray[OP_DATA_35], data: make([]byte, 35), }, expectedErr: nil, @@ -1266,7 +1250,7 @@ var popTests = []popTest{ { name: "OP_DATA_35 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_35], + opcode: &opcodeArray[OP_DATA_35], data: make([]byte, 36), }, expectedErr: ErrStackInvalidOpcode, @@ -1274,7 +1258,7 @@ var popTests = []popTest{ { name: "OP_DATA_36 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_36], + opcode: &opcodeArray[OP_DATA_36], data: make([]byte, 35), }, expectedErr: ErrStackInvalidOpcode, @@ -1282,7 +1266,7 @@ var popTests = []popTest{ { name: "OP_DATA_36", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_36], + opcode: &opcodeArray[OP_DATA_36], data: make([]byte, 36), }, expectedErr: nil, @@ -1290,7 +1274,7 @@ var popTests = []popTest{ { name: "OP_DATA_36 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_36], + opcode: &opcodeArray[OP_DATA_36], data: make([]byte, 37), }, expectedErr: ErrStackInvalidOpcode, @@ -1298,7 +1282,7 @@ var popTests = []popTest{ { name: "OP_DATA_37 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_37], + opcode: &opcodeArray[OP_DATA_37], data: make([]byte, 36), }, expectedErr: ErrStackInvalidOpcode, @@ -1306,7 +1290,7 @@ var popTests = []popTest{ { name: "OP_DATA_37", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_37], + opcode: &opcodeArray[OP_DATA_37], data: make([]byte, 37), }, expectedErr: nil, @@ -1314,7 +1298,7 @@ var popTests = []popTest{ { name: "OP_DATA_37 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_37], + opcode: &opcodeArray[OP_DATA_37], data: make([]byte, 38), }, expectedErr: ErrStackInvalidOpcode, @@ -1322,7 +1306,7 @@ var popTests = []popTest{ { name: "OP_DATA_38 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_38], + opcode: &opcodeArray[OP_DATA_38], data: make([]byte, 37), }, expectedErr: ErrStackInvalidOpcode, @@ -1330,7 +1314,7 @@ var popTests = []popTest{ { name: "OP_DATA_38", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_38], + opcode: &opcodeArray[OP_DATA_38], data: make([]byte, 38), }, expectedErr: nil, @@ -1338,7 +1322,7 @@ var popTests = []popTest{ { name: "OP_DATA_38 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_38], + opcode: &opcodeArray[OP_DATA_38], data: make([]byte, 39), }, expectedErr: ErrStackInvalidOpcode, @@ -1346,7 +1330,7 @@ var popTests = []popTest{ { name: "OP_DATA_39 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_39], + opcode: &opcodeArray[OP_DATA_39], data: make([]byte, 38), }, expectedErr: ErrStackInvalidOpcode, @@ -1354,7 +1338,7 @@ var popTests = []popTest{ { name: "OP_DATA_39", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_39], + opcode: &opcodeArray[OP_DATA_39], data: make([]byte, 39), }, expectedErr: nil, @@ -1362,7 +1346,7 @@ var popTests = []popTest{ { name: "OP_DATA_39 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_39], + opcode: &opcodeArray[OP_DATA_39], data: make([]byte, 40), }, expectedErr: ErrStackInvalidOpcode, @@ -1370,7 +1354,7 @@ var popTests = []popTest{ { name: "OP_DATA_40 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_40], + opcode: &opcodeArray[OP_DATA_40], data: make([]byte, 39), }, expectedErr: ErrStackInvalidOpcode, @@ -1378,7 +1362,7 @@ var popTests = []popTest{ { name: "OP_DATA_40", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_40], + opcode: &opcodeArray[OP_DATA_40], data: make([]byte, 40), }, expectedErr: nil, @@ -1386,7 +1370,7 @@ var popTests = []popTest{ { name: "OP_DATA_40 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_40], + opcode: &opcodeArray[OP_DATA_40], data: make([]byte, 41), }, expectedErr: ErrStackInvalidOpcode, @@ -1394,7 +1378,7 @@ var popTests = []popTest{ { name: "OP_DATA_41 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_41], + opcode: &opcodeArray[OP_DATA_41], data: make([]byte, 40), }, expectedErr: ErrStackInvalidOpcode, @@ -1402,7 +1386,7 @@ var popTests = []popTest{ { name: "OP_DATA_41", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_41], + opcode: &opcodeArray[OP_DATA_41], data: make([]byte, 41), }, expectedErr: nil, @@ -1410,7 +1394,7 @@ var popTests = []popTest{ { name: "OP_DATA_41 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_41], + opcode: &opcodeArray[OP_DATA_41], data: make([]byte, 42), }, expectedErr: ErrStackInvalidOpcode, @@ -1418,7 +1402,7 @@ var popTests = []popTest{ { name: "OP_DATA_42 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_42], + opcode: &opcodeArray[OP_DATA_42], data: make([]byte, 41), }, expectedErr: ErrStackInvalidOpcode, @@ -1426,7 +1410,7 @@ var popTests = []popTest{ { name: "OP_DATA_42", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_42], + opcode: &opcodeArray[OP_DATA_42], data: make([]byte, 42), }, expectedErr: nil, @@ -1434,7 +1418,7 @@ var popTests = []popTest{ { name: "OP_DATA_42 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_42], + opcode: &opcodeArray[OP_DATA_42], data: make([]byte, 43), }, expectedErr: ErrStackInvalidOpcode, @@ -1442,7 +1426,7 @@ var popTests = []popTest{ { name: "OP_DATA_43 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_43], + opcode: &opcodeArray[OP_DATA_43], data: make([]byte, 42), }, expectedErr: ErrStackInvalidOpcode, @@ -1450,7 +1434,7 @@ var popTests = []popTest{ { name: "OP_DATA_43", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_43], + opcode: &opcodeArray[OP_DATA_43], data: make([]byte, 43), }, expectedErr: nil, @@ -1458,7 +1442,7 @@ var popTests = []popTest{ { name: "OP_DATA_43 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_43], + opcode: &opcodeArray[OP_DATA_43], data: make([]byte, 44), }, expectedErr: ErrStackInvalidOpcode, @@ -1466,7 +1450,7 @@ var popTests = []popTest{ { name: "OP_DATA_44 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_44], + opcode: &opcodeArray[OP_DATA_44], data: make([]byte, 43), }, expectedErr: ErrStackInvalidOpcode, @@ -1474,7 +1458,7 @@ var popTests = []popTest{ { name: "OP_DATA_44", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_44], + opcode: &opcodeArray[OP_DATA_44], data: make([]byte, 44), }, expectedErr: nil, @@ -1482,7 +1466,7 @@ var popTests = []popTest{ { name: "OP_DATA_44 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_44], + opcode: &opcodeArray[OP_DATA_44], data: make([]byte, 45), }, expectedErr: ErrStackInvalidOpcode, @@ -1490,7 +1474,7 @@ var popTests = []popTest{ { name: "OP_DATA_45 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_45], + opcode: &opcodeArray[OP_DATA_45], data: make([]byte, 44), }, expectedErr: ErrStackInvalidOpcode, @@ -1498,7 +1482,7 @@ var popTests = []popTest{ { name: "OP_DATA_45", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_45], + opcode: &opcodeArray[OP_DATA_45], data: make([]byte, 45), }, expectedErr: nil, @@ -1506,7 +1490,7 @@ var popTests = []popTest{ { name: "OP_DATA_45 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_45], + opcode: &opcodeArray[OP_DATA_45], data: make([]byte, 46), }, expectedErr: ErrStackInvalidOpcode, @@ -1514,7 +1498,7 @@ var popTests = []popTest{ { name: "OP_DATA_46 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_46], + opcode: &opcodeArray[OP_DATA_46], data: make([]byte, 45), }, expectedErr: ErrStackInvalidOpcode, @@ -1522,7 +1506,7 @@ var popTests = []popTest{ { name: "OP_DATA_46", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_46], + opcode: &opcodeArray[OP_DATA_46], data: make([]byte, 46), }, expectedErr: nil, @@ -1530,7 +1514,7 @@ var popTests = []popTest{ { name: "OP_DATA_46 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_46], + opcode: &opcodeArray[OP_DATA_46], data: make([]byte, 47), }, expectedErr: ErrStackInvalidOpcode, @@ -1538,7 +1522,7 @@ var popTests = []popTest{ { name: "OP_DATA_47 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_47], + opcode: &opcodeArray[OP_DATA_47], data: make([]byte, 46), }, expectedErr: ErrStackInvalidOpcode, @@ -1546,7 +1530,7 @@ var popTests = []popTest{ { name: "OP_DATA_47", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_47], + opcode: &opcodeArray[OP_DATA_47], data: make([]byte, 47), }, expectedErr: nil, @@ -1554,7 +1538,7 @@ var popTests = []popTest{ { name: "OP_DATA_47 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_47], + opcode: &opcodeArray[OP_DATA_47], data: make([]byte, 48), }, expectedErr: ErrStackInvalidOpcode, @@ -1562,7 +1546,7 @@ var popTests = []popTest{ { name: "OP_DATA_48 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_48], + opcode: &opcodeArray[OP_DATA_48], data: make([]byte, 47), }, expectedErr: ErrStackInvalidOpcode, @@ -1570,7 +1554,7 @@ var popTests = []popTest{ { name: "OP_DATA_48", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_48], + opcode: &opcodeArray[OP_DATA_48], data: make([]byte, 48), }, expectedErr: nil, @@ -1578,7 +1562,7 @@ var popTests = []popTest{ { name: "OP_DATA_48 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_48], + opcode: &opcodeArray[OP_DATA_48], data: make([]byte, 49), }, expectedErr: ErrStackInvalidOpcode, @@ -1586,7 +1570,7 @@ var popTests = []popTest{ { name: "OP_DATA_49 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_49], + opcode: &opcodeArray[OP_DATA_49], data: make([]byte, 48), }, expectedErr: ErrStackInvalidOpcode, @@ -1594,7 +1578,7 @@ var popTests = []popTest{ { name: "OP_DATA_49", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_49], + opcode: &opcodeArray[OP_DATA_49], data: make([]byte, 49), }, expectedErr: nil, @@ -1602,7 +1586,7 @@ var popTests = []popTest{ { name: "OP_DATA_49 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_49], + opcode: &opcodeArray[OP_DATA_49], data: make([]byte, 50), }, expectedErr: ErrStackInvalidOpcode, @@ -1610,7 +1594,7 @@ var popTests = []popTest{ { name: "OP_DATA_50 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_50], + opcode: &opcodeArray[OP_DATA_50], data: make([]byte, 49), }, expectedErr: ErrStackInvalidOpcode, @@ -1618,7 +1602,7 @@ var popTests = []popTest{ { name: "OP_DATA_50", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_50], + opcode: &opcodeArray[OP_DATA_50], data: make([]byte, 50), }, expectedErr: nil, @@ -1626,7 +1610,7 @@ var popTests = []popTest{ { name: "OP_DATA_50 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_50], + opcode: &opcodeArray[OP_DATA_50], data: make([]byte, 51), }, expectedErr: ErrStackInvalidOpcode, @@ -1634,7 +1618,7 @@ var popTests = []popTest{ { name: "OP_DATA_51 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_51], + opcode: &opcodeArray[OP_DATA_51], data: make([]byte, 50), }, expectedErr: ErrStackInvalidOpcode, @@ -1642,7 +1626,7 @@ var popTests = []popTest{ { name: "OP_DATA_51", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_51], + opcode: &opcodeArray[OP_DATA_51], data: make([]byte, 51), }, expectedErr: nil, @@ -1650,7 +1634,7 @@ var popTests = []popTest{ { name: "OP_DATA_51 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_51], + opcode: &opcodeArray[OP_DATA_51], data: make([]byte, 52), }, expectedErr: ErrStackInvalidOpcode, @@ -1658,7 +1642,7 @@ var popTests = []popTest{ { name: "OP_DATA_52 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_52], + opcode: &opcodeArray[OP_DATA_52], data: make([]byte, 51), }, expectedErr: ErrStackInvalidOpcode, @@ -1666,7 +1650,7 @@ var popTests = []popTest{ { name: "OP_DATA_52", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_52], + opcode: &opcodeArray[OP_DATA_52], data: make([]byte, 52), }, expectedErr: nil, @@ -1674,7 +1658,7 @@ var popTests = []popTest{ { name: "OP_DATA_52 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_52], + opcode: &opcodeArray[OP_DATA_52], data: make([]byte, 53), }, expectedErr: ErrStackInvalidOpcode, @@ -1682,7 +1666,7 @@ var popTests = []popTest{ { name: "OP_DATA_53 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_53], + opcode: &opcodeArray[OP_DATA_53], data: make([]byte, 52), }, expectedErr: ErrStackInvalidOpcode, @@ -1690,7 +1674,7 @@ var popTests = []popTest{ { name: "OP_DATA_53", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_53], + opcode: &opcodeArray[OP_DATA_53], data: make([]byte, 53), }, expectedErr: nil, @@ -1698,7 +1682,7 @@ var popTests = []popTest{ { name: "OP_DATA_53 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_53], + opcode: &opcodeArray[OP_DATA_53], data: make([]byte, 54), }, expectedErr: ErrStackInvalidOpcode, @@ -1706,7 +1690,7 @@ var popTests = []popTest{ { name: "OP_DATA_54 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_54], + opcode: &opcodeArray[OP_DATA_54], data: make([]byte, 53), }, expectedErr: ErrStackInvalidOpcode, @@ -1714,7 +1698,7 @@ var popTests = []popTest{ { name: "OP_DATA_54", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_54], + opcode: &opcodeArray[OP_DATA_54], data: make([]byte, 54), }, expectedErr: nil, @@ -1722,7 +1706,7 @@ var popTests = []popTest{ { name: "OP_DATA_54 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_54], + opcode: &opcodeArray[OP_DATA_54], data: make([]byte, 55), }, expectedErr: ErrStackInvalidOpcode, @@ -1730,7 +1714,7 @@ var popTests = []popTest{ { name: "OP_DATA_55 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_55], + opcode: &opcodeArray[OP_DATA_55], data: make([]byte, 54), }, expectedErr: ErrStackInvalidOpcode, @@ -1738,7 +1722,7 @@ var popTests = []popTest{ { name: "OP_DATA_55", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_55], + opcode: &opcodeArray[OP_DATA_55], data: make([]byte, 55), }, expectedErr: nil, @@ -1746,7 +1730,7 @@ var popTests = []popTest{ { name: "OP_DATA_55 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_55], + opcode: &opcodeArray[OP_DATA_55], data: make([]byte, 56), }, expectedErr: ErrStackInvalidOpcode, @@ -1754,7 +1738,7 @@ var popTests = []popTest{ { name: "OP_DATA_56 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_56], + opcode: &opcodeArray[OP_DATA_56], data: make([]byte, 55), }, expectedErr: ErrStackInvalidOpcode, @@ -1762,7 +1746,7 @@ var popTests = []popTest{ { name: "OP_DATA_56", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_56], + opcode: &opcodeArray[OP_DATA_56], data: make([]byte, 56), }, expectedErr: nil, @@ -1770,7 +1754,7 @@ var popTests = []popTest{ { name: "OP_DATA_56 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_56], + opcode: &opcodeArray[OP_DATA_56], data: make([]byte, 57), }, expectedErr: ErrStackInvalidOpcode, @@ -1778,7 +1762,7 @@ var popTests = []popTest{ { name: "OP_DATA_57 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_57], + opcode: &opcodeArray[OP_DATA_57], data: make([]byte, 56), }, expectedErr: ErrStackInvalidOpcode, @@ -1786,7 +1770,7 @@ var popTests = []popTest{ { name: "OP_DATA_57", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_57], + opcode: &opcodeArray[OP_DATA_57], data: make([]byte, 57), }, expectedErr: nil, @@ -1794,7 +1778,7 @@ var popTests = []popTest{ { name: "OP_DATA_57 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_57], + opcode: &opcodeArray[OP_DATA_57], data: make([]byte, 58), }, expectedErr: ErrStackInvalidOpcode, @@ -1802,7 +1786,7 @@ var popTests = []popTest{ { name: "OP_DATA_58 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_58], + opcode: &opcodeArray[OP_DATA_58], data: make([]byte, 57), }, expectedErr: ErrStackInvalidOpcode, @@ -1810,7 +1794,7 @@ var popTests = []popTest{ { name: "OP_DATA_58", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_58], + opcode: &opcodeArray[OP_DATA_58], data: make([]byte, 58), }, expectedErr: nil, @@ -1818,7 +1802,7 @@ var popTests = []popTest{ { name: "OP_DATA_58 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_58], + opcode: &opcodeArray[OP_DATA_58], data: make([]byte, 59), }, expectedErr: ErrStackInvalidOpcode, @@ -1826,7 +1810,7 @@ var popTests = []popTest{ { name: "OP_DATA_59 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_59], + opcode: &opcodeArray[OP_DATA_59], data: make([]byte, 58), }, expectedErr: ErrStackInvalidOpcode, @@ -1834,7 +1818,7 @@ var popTests = []popTest{ { name: "OP_DATA_59", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_59], + opcode: &opcodeArray[OP_DATA_59], data: make([]byte, 59), }, expectedErr: nil, @@ -1842,7 +1826,7 @@ var popTests = []popTest{ { name: "OP_DATA_59 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_59], + opcode: &opcodeArray[OP_DATA_59], data: make([]byte, 60), }, expectedErr: ErrStackInvalidOpcode, @@ -1850,7 +1834,7 @@ var popTests = []popTest{ { name: "OP_DATA_60 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_60], + opcode: &opcodeArray[OP_DATA_60], data: make([]byte, 59), }, expectedErr: ErrStackInvalidOpcode, @@ -1858,7 +1842,7 @@ var popTests = []popTest{ { name: "OP_DATA_60", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_60], + opcode: &opcodeArray[OP_DATA_60], data: make([]byte, 60), }, expectedErr: nil, @@ -1866,7 +1850,7 @@ var popTests = []popTest{ { name: "OP_DATA_60 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_60], + opcode: &opcodeArray[OP_DATA_60], data: make([]byte, 61), }, expectedErr: ErrStackInvalidOpcode, @@ -1874,7 +1858,7 @@ var popTests = []popTest{ { name: "OP_DATA_61 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_61], + opcode: &opcodeArray[OP_DATA_61], data: make([]byte, 60), }, expectedErr: ErrStackInvalidOpcode, @@ -1882,7 +1866,7 @@ var popTests = []popTest{ { name: "OP_DATA_61", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_61], + opcode: &opcodeArray[OP_DATA_61], data: make([]byte, 61), }, expectedErr: nil, @@ -1890,7 +1874,7 @@ var popTests = []popTest{ { name: "OP_DATA_61 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_61], + opcode: &opcodeArray[OP_DATA_61], data: make([]byte, 62), }, expectedErr: ErrStackInvalidOpcode, @@ -1898,7 +1882,7 @@ var popTests = []popTest{ { name: "OP_DATA_62 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_62], + opcode: &opcodeArray[OP_DATA_62], data: make([]byte, 61), }, expectedErr: ErrStackInvalidOpcode, @@ -1906,7 +1890,7 @@ var popTests = []popTest{ { name: "OP_DATA_62", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_62], + opcode: &opcodeArray[OP_DATA_62], data: make([]byte, 62), }, expectedErr: nil, @@ -1914,7 +1898,7 @@ var popTests = []popTest{ { name: "OP_DATA_62 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_62], + opcode: &opcodeArray[OP_DATA_62], data: make([]byte, 63), }, expectedErr: ErrStackInvalidOpcode, @@ -1922,7 +1906,7 @@ var popTests = []popTest{ { name: "OP_DATA_63 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_63], + opcode: &opcodeArray[OP_DATA_63], data: make([]byte, 62), }, expectedErr: ErrStackInvalidOpcode, @@ -1930,7 +1914,7 @@ var popTests = []popTest{ { name: "OP_DATA_63", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_63], + opcode: &opcodeArray[OP_DATA_63], data: make([]byte, 63), }, expectedErr: nil, @@ -1938,7 +1922,7 @@ var popTests = []popTest{ { name: "OP_DATA_63 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_63], + opcode: &opcodeArray[OP_DATA_63], data: make([]byte, 64), }, expectedErr: ErrStackInvalidOpcode, @@ -1946,7 +1930,7 @@ var popTests = []popTest{ { name: "OP_DATA_64 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_64], + opcode: &opcodeArray[OP_DATA_64], data: make([]byte, 63), }, expectedErr: ErrStackInvalidOpcode, @@ -1954,7 +1938,7 @@ var popTests = []popTest{ { name: "OP_DATA_64", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_64], + opcode: &opcodeArray[OP_DATA_64], data: make([]byte, 64), }, expectedErr: nil, @@ -1962,7 +1946,7 @@ var popTests = []popTest{ { name: "OP_DATA_64 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_64], + opcode: &opcodeArray[OP_DATA_64], data: make([]byte, 65), }, expectedErr: ErrStackInvalidOpcode, @@ -1970,7 +1954,7 @@ var popTests = []popTest{ { name: "OP_DATA_65 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_65], + opcode: &opcodeArray[OP_DATA_65], data: make([]byte, 64), }, expectedErr: ErrStackInvalidOpcode, @@ -1978,7 +1962,7 @@ var popTests = []popTest{ { name: "OP_DATA_65", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_65], + opcode: &opcodeArray[OP_DATA_65], data: make([]byte, 65), }, expectedErr: nil, @@ -1986,7 +1970,7 @@ var popTests = []popTest{ { name: "OP_DATA_65 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_65], + opcode: &opcodeArray[OP_DATA_65], data: make([]byte, 66), }, expectedErr: ErrStackInvalidOpcode, @@ -1994,7 +1978,7 @@ var popTests = []popTest{ { name: "OP_DATA_66 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_66], + opcode: &opcodeArray[OP_DATA_66], data: make([]byte, 65), }, expectedErr: ErrStackInvalidOpcode, @@ -2002,7 +1986,7 @@ var popTests = []popTest{ { name: "OP_DATA_66", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_66], + opcode: &opcodeArray[OP_DATA_66], data: make([]byte, 66), }, expectedErr: nil, @@ -2010,7 +1994,7 @@ var popTests = []popTest{ { name: "OP_DATA_66 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_66], + opcode: &opcodeArray[OP_DATA_66], data: make([]byte, 67), }, expectedErr: ErrStackInvalidOpcode, @@ -2018,7 +2002,7 @@ var popTests = []popTest{ { name: "OP_DATA_67 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_67], + opcode: &opcodeArray[OP_DATA_67], data: make([]byte, 66), }, expectedErr: ErrStackInvalidOpcode, @@ -2026,7 +2010,7 @@ var popTests = []popTest{ { name: "OP_DATA_67", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_67], + opcode: &opcodeArray[OP_DATA_67], data: make([]byte, 67), }, expectedErr: nil, @@ -2034,7 +2018,7 @@ var popTests = []popTest{ { name: "OP_DATA_67 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_67], + opcode: &opcodeArray[OP_DATA_67], data: make([]byte, 68), }, expectedErr: ErrStackInvalidOpcode, @@ -2042,7 +2026,7 @@ var popTests = []popTest{ { name: "OP_DATA_68 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_68], + opcode: &opcodeArray[OP_DATA_68], data: make([]byte, 67), }, expectedErr: ErrStackInvalidOpcode, @@ -2050,7 +2034,7 @@ var popTests = []popTest{ { name: "OP_DATA_68", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_68], + opcode: &opcodeArray[OP_DATA_68], data: make([]byte, 68), }, expectedErr: nil, @@ -2058,7 +2042,7 @@ var popTests = []popTest{ { name: "OP_DATA_68 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_68], + opcode: &opcodeArray[OP_DATA_68], data: make([]byte, 69), }, expectedErr: ErrStackInvalidOpcode, @@ -2066,7 +2050,7 @@ var popTests = []popTest{ { name: "OP_DATA_69 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_69], + opcode: &opcodeArray[OP_DATA_69], data: make([]byte, 68), }, expectedErr: ErrStackInvalidOpcode, @@ -2074,7 +2058,7 @@ var popTests = []popTest{ { name: "OP_DATA_69", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_69], + opcode: &opcodeArray[OP_DATA_69], data: make([]byte, 69), }, expectedErr: nil, @@ -2082,7 +2066,7 @@ var popTests = []popTest{ { name: "OP_DATA_69 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_69], + opcode: &opcodeArray[OP_DATA_69], data: make([]byte, 70), }, expectedErr: ErrStackInvalidOpcode, @@ -2090,7 +2074,7 @@ var popTests = []popTest{ { name: "OP_DATA_70 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_70], + opcode: &opcodeArray[OP_DATA_70], data: make([]byte, 69), }, expectedErr: ErrStackInvalidOpcode, @@ -2098,7 +2082,7 @@ var popTests = []popTest{ { name: "OP_DATA_70", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_70], + opcode: &opcodeArray[OP_DATA_70], data: make([]byte, 70), }, expectedErr: nil, @@ -2106,7 +2090,7 @@ var popTests = []popTest{ { name: "OP_DATA_70 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_70], + opcode: &opcodeArray[OP_DATA_70], data: make([]byte, 71), }, expectedErr: ErrStackInvalidOpcode, @@ -2114,7 +2098,7 @@ var popTests = []popTest{ { name: "OP_DATA_71 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_71], + opcode: &opcodeArray[OP_DATA_71], data: make([]byte, 70), }, expectedErr: ErrStackInvalidOpcode, @@ -2122,7 +2106,7 @@ var popTests = []popTest{ { name: "OP_DATA_71", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_71], + opcode: &opcodeArray[OP_DATA_71], data: make([]byte, 71), }, expectedErr: nil, @@ -2130,7 +2114,7 @@ var popTests = []popTest{ { name: "OP_DATA_71 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_71], + opcode: &opcodeArray[OP_DATA_71], data: make([]byte, 72), }, expectedErr: ErrStackInvalidOpcode, @@ -2138,7 +2122,7 @@ var popTests = []popTest{ { name: "OP_DATA_72 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_72], + opcode: &opcodeArray[OP_DATA_72], data: make([]byte, 71), }, expectedErr: ErrStackInvalidOpcode, @@ -2146,7 +2130,7 @@ var popTests = []popTest{ { name: "OP_DATA_72", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_72], + opcode: &opcodeArray[OP_DATA_72], data: make([]byte, 72), }, expectedErr: nil, @@ -2154,7 +2138,7 @@ var popTests = []popTest{ { name: "OP_DATA_72 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_72], + opcode: &opcodeArray[OP_DATA_72], data: make([]byte, 73), }, expectedErr: ErrStackInvalidOpcode, @@ -2162,7 +2146,7 @@ var popTests = []popTest{ { name: "OP_DATA_73 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_73], + opcode: &opcodeArray[OP_DATA_73], data: make([]byte, 72), }, expectedErr: ErrStackInvalidOpcode, @@ -2170,7 +2154,7 @@ var popTests = []popTest{ { name: "OP_DATA_73", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_73], + opcode: &opcodeArray[OP_DATA_73], data: make([]byte, 73), }, expectedErr: nil, @@ -2178,7 +2162,7 @@ var popTests = []popTest{ { name: "OP_DATA_73 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_73], + opcode: &opcodeArray[OP_DATA_73], data: make([]byte, 74), }, expectedErr: ErrStackInvalidOpcode, @@ -2186,7 +2170,7 @@ var popTests = []popTest{ { name: "OP_DATA_74 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_74], + opcode: &opcodeArray[OP_DATA_74], data: make([]byte, 73), }, expectedErr: ErrStackInvalidOpcode, @@ -2194,7 +2178,7 @@ var popTests = []popTest{ { name: "OP_DATA_74", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_74], + opcode: &opcodeArray[OP_DATA_74], data: make([]byte, 74), }, expectedErr: nil, @@ -2202,7 +2186,7 @@ var popTests = []popTest{ { name: "OP_DATA_74 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_74], + opcode: &opcodeArray[OP_DATA_74], data: make([]byte, 75), }, expectedErr: ErrStackInvalidOpcode, @@ -2210,7 +2194,7 @@ var popTests = []popTest{ { name: "OP_DATA_75 short", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_75], + opcode: &opcodeArray[OP_DATA_75], data: make([]byte, 74), }, expectedErr: ErrStackInvalidOpcode, @@ -2218,7 +2202,7 @@ var popTests = []popTest{ { name: "OP_DATA_75", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_75], + opcode: &opcodeArray[OP_DATA_75], data: make([]byte, 75), }, expectedErr: nil, @@ -2226,7 +2210,7 @@ var popTests = []popTest{ { name: "OP_DATA_75 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DATA_75], + opcode: &opcodeArray[OP_DATA_75], data: make([]byte, 76), }, expectedErr: ErrStackInvalidOpcode, @@ -2234,7 +2218,7 @@ var popTests = []popTest{ { name: "OP_PUSHDATA1", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PUSHDATA1], + opcode: &opcodeArray[OP_PUSHDATA1], data: []byte{0, 1, 2, 3, 4}, }, expectedErr: nil, @@ -2242,7 +2226,7 @@ var popTests = []popTest{ { name: "OP_PUSHDATA2", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PUSHDATA2], + opcode: &opcodeArray[OP_PUSHDATA2], data: []byte{0, 1, 2, 3, 4}, }, expectedErr: nil, @@ -2250,7 +2234,7 @@ var popTests = []popTest{ { name: "OP_PUSHDATA4", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PUSHDATA1], + opcode: &opcodeArray[OP_PUSHDATA1], data: []byte{0, 1, 2, 3, 4}, }, expectedErr: nil, @@ -2258,7 +2242,7 @@ var popTests = []popTest{ { name: "OP_1NEGATE", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_1NEGATE], + opcode: &opcodeArray[OP_1NEGATE], data: nil, }, expectedErr: nil, @@ -2266,7 +2250,7 @@ var popTests = []popTest{ { name: "OP_1NEGATE long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_1NEGATE], + opcode: &opcodeArray[OP_1NEGATE], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2274,7 +2258,7 @@ var popTests = []popTest{ { name: "OP_RESERVED", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RESERVED], + opcode: &opcodeArray[OP_RESERVED], data: nil, }, expectedErr: nil, @@ -2282,7 +2266,7 @@ var popTests = []popTest{ { name: "OP_RESERVED long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RESERVED], + opcode: &opcodeArray[OP_RESERVED], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2290,7 +2274,7 @@ var popTests = []popTest{ { name: "OP_TRUE", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_TRUE], + opcode: &opcodeArray[OP_TRUE], data: nil, }, expectedErr: nil, @@ -2298,7 +2282,7 @@ var popTests = []popTest{ { name: "OP_TRUE long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_TRUE], + opcode: &opcodeArray[OP_TRUE], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2306,7 +2290,7 @@ var popTests = []popTest{ { name: "OP_2", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2], + opcode: &opcodeArray[OP_2], data: nil, }, expectedErr: nil, @@ -2314,7 +2298,7 @@ var popTests = []popTest{ { name: "OP_2 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2], + opcode: &opcodeArray[OP_2], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2322,7 +2306,7 @@ var popTests = []popTest{ { name: "OP_2", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2], + opcode: &opcodeArray[OP_2], data: nil, }, expectedErr: nil, @@ -2330,7 +2314,7 @@ var popTests = []popTest{ { name: "OP_2 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2], + opcode: &opcodeArray[OP_2], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2338,7 +2322,7 @@ var popTests = []popTest{ { name: "OP_3", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_3], + opcode: &opcodeArray[OP_3], data: nil, }, expectedErr: nil, @@ -2346,7 +2330,7 @@ var popTests = []popTest{ { name: "OP_3 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_3], + opcode: &opcodeArray[OP_3], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2354,7 +2338,7 @@ var popTests = []popTest{ { name: "OP_4", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_4], + opcode: &opcodeArray[OP_4], data: nil, }, expectedErr: nil, @@ -2362,7 +2346,7 @@ var popTests = []popTest{ { name: "OP_4 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_4], + opcode: &opcodeArray[OP_4], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2370,7 +2354,7 @@ var popTests = []popTest{ { name: "OP_5", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_5], + opcode: &opcodeArray[OP_5], data: nil, }, expectedErr: nil, @@ -2378,7 +2362,7 @@ var popTests = []popTest{ { name: "OP_5 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_5], + opcode: &opcodeArray[OP_5], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2386,7 +2370,7 @@ var popTests = []popTest{ { name: "OP_6", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_6], + opcode: &opcodeArray[OP_6], data: nil, }, expectedErr: nil, @@ -2394,7 +2378,7 @@ var popTests = []popTest{ { name: "OP_6 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_6], + opcode: &opcodeArray[OP_6], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2402,7 +2386,7 @@ var popTests = []popTest{ { name: "OP_7", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_7], + opcode: &opcodeArray[OP_7], data: nil, }, expectedErr: nil, @@ -2410,7 +2394,7 @@ var popTests = []popTest{ { name: "OP_7 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_7], + opcode: &opcodeArray[OP_7], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2418,7 +2402,7 @@ var popTests = []popTest{ { name: "OP_8", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_8], + opcode: &opcodeArray[OP_8], data: nil, }, expectedErr: nil, @@ -2426,7 +2410,7 @@ var popTests = []popTest{ { name: "OP_8 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_8], + opcode: &opcodeArray[OP_8], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2434,7 +2418,7 @@ var popTests = []popTest{ { name: "OP_9", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_9], + opcode: &opcodeArray[OP_9], data: nil, }, expectedErr: nil, @@ -2442,7 +2426,7 @@ var popTests = []popTest{ { name: "OP_9 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_9], + opcode: &opcodeArray[OP_9], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2450,7 +2434,7 @@ var popTests = []popTest{ { name: "OP_10", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_10], + opcode: &opcodeArray[OP_10], data: nil, }, expectedErr: nil, @@ -2458,7 +2442,7 @@ var popTests = []popTest{ { name: "OP_10 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_10], + opcode: &opcodeArray[OP_10], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2466,7 +2450,7 @@ var popTests = []popTest{ { name: "OP_11", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_11], + opcode: &opcodeArray[OP_11], data: nil, }, expectedErr: nil, @@ -2474,7 +2458,7 @@ var popTests = []popTest{ { name: "OP_11 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_11], + opcode: &opcodeArray[OP_11], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2482,7 +2466,7 @@ var popTests = []popTest{ { name: "OP_12", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_12], + opcode: &opcodeArray[OP_12], data: nil, }, expectedErr: nil, @@ -2490,7 +2474,7 @@ var popTests = []popTest{ { name: "OP_12 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_12], + opcode: &opcodeArray[OP_12], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2498,7 +2482,7 @@ var popTests = []popTest{ { name: "OP_13", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_13], + opcode: &opcodeArray[OP_13], data: nil, }, expectedErr: nil, @@ -2506,7 +2490,7 @@ var popTests = []popTest{ { name: "OP_13 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_13], + opcode: &opcodeArray[OP_13], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2514,7 +2498,7 @@ var popTests = []popTest{ { name: "OP_14", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_14], + opcode: &opcodeArray[OP_14], data: nil, }, expectedErr: nil, @@ -2522,7 +2506,7 @@ var popTests = []popTest{ { name: "OP_14 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_14], + opcode: &opcodeArray[OP_14], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2530,7 +2514,7 @@ var popTests = []popTest{ { name: "OP_15", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_15], + opcode: &opcodeArray[OP_15], data: nil, }, expectedErr: nil, @@ -2538,7 +2522,7 @@ var popTests = []popTest{ { name: "OP_15 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_15], + opcode: &opcodeArray[OP_15], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2546,7 +2530,7 @@ var popTests = []popTest{ { name: "OP_16", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_16], + opcode: &opcodeArray[OP_16], data: nil, }, expectedErr: nil, @@ -2554,7 +2538,7 @@ var popTests = []popTest{ { name: "OP_16 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_16], + opcode: &opcodeArray[OP_16], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2562,7 +2546,7 @@ var popTests = []popTest{ { name: "OP_NOP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP], + opcode: &opcodeArray[OP_NOP], data: nil, }, expectedErr: nil, @@ -2570,7 +2554,7 @@ var popTests = []popTest{ { name: "OP_NOP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP], + opcode: &opcodeArray[OP_NOP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2578,7 +2562,7 @@ var popTests = []popTest{ { name: "OP_VER", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_VER], + opcode: &opcodeArray[OP_VER], data: nil, }, expectedErr: nil, @@ -2586,7 +2570,7 @@ var popTests = []popTest{ { name: "OP_VER long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_VER], + opcode: &opcodeArray[OP_VER], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2594,7 +2578,7 @@ var popTests = []popTest{ { name: "OP_IF", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_IF], + opcode: &opcodeArray[OP_IF], data: nil, }, expectedErr: nil, @@ -2602,7 +2586,7 @@ var popTests = []popTest{ { name: "OP_IF long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_IF], + opcode: &opcodeArray[OP_IF], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2610,7 +2594,7 @@ var popTests = []popTest{ { name: "OP_NOTIF", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOTIF], + opcode: &opcodeArray[OP_NOTIF], data: nil, }, expectedErr: nil, @@ -2618,7 +2602,7 @@ var popTests = []popTest{ { name: "OP_NOTIF long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOTIF], + opcode: &opcodeArray[OP_NOTIF], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2626,7 +2610,7 @@ var popTests = []popTest{ { name: "OP_VERIF", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_VERIF], + opcode: &opcodeArray[OP_VERIF], data: nil, }, expectedErr: nil, @@ -2634,7 +2618,7 @@ var popTests = []popTest{ { name: "OP_VERIF long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_VERIF], + opcode: &opcodeArray[OP_VERIF], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2642,7 +2626,7 @@ var popTests = []popTest{ { name: "OP_VERNOTIF", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_VERNOTIF], + opcode: &opcodeArray[OP_VERNOTIF], data: nil, }, expectedErr: nil, @@ -2650,7 +2634,7 @@ var popTests = []popTest{ { name: "OP_VERNOTIF long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_VERNOTIF], + opcode: &opcodeArray[OP_VERNOTIF], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2658,7 +2642,7 @@ var popTests = []popTest{ { name: "OP_ELSE", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ELSE], + opcode: &opcodeArray[OP_ELSE], data: nil, }, expectedErr: nil, @@ -2666,7 +2650,7 @@ var popTests = []popTest{ { name: "OP_ELSE long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ELSE], + opcode: &opcodeArray[OP_ELSE], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2674,7 +2658,7 @@ var popTests = []popTest{ { name: "OP_ENDIF", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ENDIF], + opcode: &opcodeArray[OP_ENDIF], data: nil, }, expectedErr: nil, @@ -2682,7 +2666,7 @@ var popTests = []popTest{ { name: "OP_ENDIF long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ENDIF], + opcode: &opcodeArray[OP_ENDIF], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2690,7 +2674,7 @@ var popTests = []popTest{ { name: "OP_VERIFY", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_VERIFY], + opcode: &opcodeArray[OP_VERIFY], data: nil, }, expectedErr: nil, @@ -2698,7 +2682,7 @@ var popTests = []popTest{ { name: "OP_VERIFY long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_VERIFY], + opcode: &opcodeArray[OP_VERIFY], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2706,7 +2690,7 @@ var popTests = []popTest{ { name: "OP_RETURN", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RETURN], + opcode: &opcodeArray[OP_RETURN], data: nil, }, expectedErr: nil, @@ -2714,7 +2698,7 @@ var popTests = []popTest{ { name: "OP_RETURN long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RETURN], + opcode: &opcodeArray[OP_RETURN], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2722,7 +2706,7 @@ var popTests = []popTest{ { name: "OP_TOALTSTACK", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_TOALTSTACK], + opcode: &opcodeArray[OP_TOALTSTACK], data: nil, }, expectedErr: nil, @@ -2730,7 +2714,7 @@ var popTests = []popTest{ { name: "OP_TOALTSTACK long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_TOALTSTACK], + opcode: &opcodeArray[OP_TOALTSTACK], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2738,7 +2722,7 @@ var popTests = []popTest{ { name: "OP_FROMALTSTACK", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_FROMALTSTACK], + opcode: &opcodeArray[OP_FROMALTSTACK], data: nil, }, expectedErr: nil, @@ -2746,7 +2730,7 @@ var popTests = []popTest{ { name: "OP_FROMALTSTACK long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_FROMALTSTACK], + opcode: &opcodeArray[OP_FROMALTSTACK], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2754,7 +2738,7 @@ var popTests = []popTest{ { name: "OP_2DROP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2DROP], + opcode: &opcodeArray[OP_2DROP], data: nil, }, expectedErr: nil, @@ -2762,7 +2746,7 @@ var popTests = []popTest{ { name: "OP_2DROP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2DROP], + opcode: &opcodeArray[OP_2DROP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2770,7 +2754,7 @@ var popTests = []popTest{ { name: "OP_2DUP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2DUP], + opcode: &opcodeArray[OP_2DUP], data: nil, }, expectedErr: nil, @@ -2778,7 +2762,7 @@ var popTests = []popTest{ { name: "OP_2DUP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2DUP], + opcode: &opcodeArray[OP_2DUP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2786,7 +2770,7 @@ var popTests = []popTest{ { name: "OP_3DUP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_3DUP], + opcode: &opcodeArray[OP_3DUP], data: nil, }, expectedErr: nil, @@ -2794,7 +2778,7 @@ var popTests = []popTest{ { name: "OP_3DUP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_3DUP], + opcode: &opcodeArray[OP_3DUP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2802,7 +2786,7 @@ var popTests = []popTest{ { name: "OP_2OVER", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2OVER], + opcode: &opcodeArray[OP_2OVER], data: nil, }, expectedErr: nil, @@ -2810,7 +2794,7 @@ var popTests = []popTest{ { name: "OP_2OVER long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2OVER], + opcode: &opcodeArray[OP_2OVER], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2818,7 +2802,7 @@ var popTests = []popTest{ { name: "OP_2ROT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2ROT], + opcode: &opcodeArray[OP_2ROT], data: nil, }, expectedErr: nil, @@ -2826,7 +2810,7 @@ var popTests = []popTest{ { name: "OP_2ROT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2ROT], + opcode: &opcodeArray[OP_2ROT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2834,7 +2818,7 @@ var popTests = []popTest{ { name: "OP_2SWAP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2SWAP], + opcode: &opcodeArray[OP_2SWAP], data: nil, }, expectedErr: nil, @@ -2842,7 +2826,7 @@ var popTests = []popTest{ { name: "OP_2SWAP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2SWAP], + opcode: &opcodeArray[OP_2SWAP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2850,7 +2834,7 @@ var popTests = []popTest{ { name: "OP_IFDUP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_IFDUP], + opcode: &opcodeArray[OP_IFDUP], data: nil, }, expectedErr: nil, @@ -2858,7 +2842,7 @@ var popTests = []popTest{ { name: "OP_IFDUP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_IFDUP], + opcode: &opcodeArray[OP_IFDUP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2866,7 +2850,7 @@ var popTests = []popTest{ { name: "OP_DEPTH", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DEPTH], + opcode: &opcodeArray[OP_DEPTH], data: nil, }, expectedErr: nil, @@ -2874,7 +2858,7 @@ var popTests = []popTest{ { name: "OP_DEPTH long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DEPTH], + opcode: &opcodeArray[OP_DEPTH], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2882,7 +2866,7 @@ var popTests = []popTest{ { name: "OP_DROP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DROP], + opcode: &opcodeArray[OP_DROP], data: nil, }, expectedErr: nil, @@ -2890,7 +2874,7 @@ var popTests = []popTest{ { name: "OP_DROP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DROP], + opcode: &opcodeArray[OP_DROP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2898,7 +2882,7 @@ var popTests = []popTest{ { name: "OP_DUP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DUP], + opcode: &opcodeArray[OP_DUP], data: nil, }, expectedErr: nil, @@ -2906,7 +2890,7 @@ var popTests = []popTest{ { name: "OP_DUP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DUP], + opcode: &opcodeArray[OP_DUP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2914,7 +2898,7 @@ var popTests = []popTest{ { name: "OP_NIP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NIP], + opcode: &opcodeArray[OP_NIP], data: nil, }, expectedErr: nil, @@ -2922,7 +2906,7 @@ var popTests = []popTest{ { name: "OP_NIP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NIP], + opcode: &opcodeArray[OP_NIP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2930,7 +2914,7 @@ var popTests = []popTest{ { name: "OP_OVER", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_OVER], + opcode: &opcodeArray[OP_OVER], data: nil, }, expectedErr: nil, @@ -2938,7 +2922,7 @@ var popTests = []popTest{ { name: "OP_OVER long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_OVER], + opcode: &opcodeArray[OP_OVER], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2946,7 +2930,7 @@ var popTests = []popTest{ { name: "OP_PICK", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PICK], + opcode: &opcodeArray[OP_PICK], data: nil, }, expectedErr: nil, @@ -2954,7 +2938,7 @@ var popTests = []popTest{ { name: "OP_PICK long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PICK], + opcode: &opcodeArray[OP_PICK], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2962,7 +2946,7 @@ var popTests = []popTest{ { name: "OP_ROLL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ROLL], + opcode: &opcodeArray[OP_ROLL], data: nil, }, expectedErr: nil, @@ -2970,7 +2954,7 @@ var popTests = []popTest{ { name: "OP_ROLL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ROLL], + opcode: &opcodeArray[OP_ROLL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2978,7 +2962,7 @@ var popTests = []popTest{ { name: "OP_ROT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ROT], + opcode: &opcodeArray[OP_ROT], data: nil, }, expectedErr: nil, @@ -2986,7 +2970,7 @@ var popTests = []popTest{ { name: "OP_ROT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ROT], + opcode: &opcodeArray[OP_ROT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -2994,7 +2978,7 @@ var popTests = []popTest{ { name: "OP_SWAP", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SWAP], + opcode: &opcodeArray[OP_SWAP], data: nil, }, expectedErr: nil, @@ -3002,7 +2986,7 @@ var popTests = []popTest{ { name: "OP_SWAP long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SWAP], + opcode: &opcodeArray[OP_SWAP], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3010,7 +2994,7 @@ var popTests = []popTest{ { name: "OP_TUCK", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_TUCK], + opcode: &opcodeArray[OP_TUCK], data: nil, }, expectedErr: nil, @@ -3018,7 +3002,7 @@ var popTests = []popTest{ { name: "OP_TUCK long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_TUCK], + opcode: &opcodeArray[OP_TUCK], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3026,7 +3010,7 @@ var popTests = []popTest{ { name: "OP_CAT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CAT], + opcode: &opcodeArray[OP_CAT], data: nil, }, expectedErr: nil, @@ -3034,7 +3018,7 @@ var popTests = []popTest{ { name: "OP_CAT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CAT], + opcode: &opcodeArray[OP_CAT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3042,7 +3026,7 @@ var popTests = []popTest{ { name: "OP_SUBSTR", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SUBSTR], + opcode: &opcodeArray[OP_SUBSTR], data: nil, }, expectedErr: nil, @@ -3050,7 +3034,7 @@ var popTests = []popTest{ { name: "OP_SUBSTR long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SUBSTR], + opcode: &opcodeArray[OP_SUBSTR], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3058,7 +3042,7 @@ var popTests = []popTest{ { name: "OP_LEFT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LEFT], + opcode: &opcodeArray[OP_LEFT], data: nil, }, expectedErr: nil, @@ -3066,7 +3050,7 @@ var popTests = []popTest{ { name: "OP_LEFT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LEFT], + opcode: &opcodeArray[OP_LEFT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3074,7 +3058,7 @@ var popTests = []popTest{ { name: "OP_LEFT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LEFT], + opcode: &opcodeArray[OP_LEFT], data: nil, }, expectedErr: nil, @@ -3082,7 +3066,7 @@ var popTests = []popTest{ { name: "OP_LEFT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LEFT], + opcode: &opcodeArray[OP_LEFT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3090,7 +3074,7 @@ var popTests = []popTest{ { name: "OP_RIGHT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RIGHT], + opcode: &opcodeArray[OP_RIGHT], data: nil, }, expectedErr: nil, @@ -3098,7 +3082,7 @@ var popTests = []popTest{ { name: "OP_RIGHT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RIGHT], + opcode: &opcodeArray[OP_RIGHT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3106,7 +3090,7 @@ var popTests = []popTest{ { name: "OP_SIZE", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SIZE], + opcode: &opcodeArray[OP_SIZE], data: nil, }, expectedErr: nil, @@ -3114,7 +3098,7 @@ var popTests = []popTest{ { name: "OP_SIZE long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SIZE], + opcode: &opcodeArray[OP_SIZE], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3122,7 +3106,7 @@ var popTests = []popTest{ { name: "OP_INVERT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_INVERT], + opcode: &opcodeArray[OP_INVERT], data: nil, }, expectedErr: nil, @@ -3130,7 +3114,7 @@ var popTests = []popTest{ { name: "OP_INVERT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_INVERT], + opcode: &opcodeArray[OP_INVERT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3138,7 +3122,7 @@ var popTests = []popTest{ { name: "OP_AND", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_AND], + opcode: &opcodeArray[OP_AND], data: nil, }, expectedErr: nil, @@ -3146,7 +3130,7 @@ var popTests = []popTest{ { name: "OP_AND long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_AND], + opcode: &opcodeArray[OP_AND], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3154,7 +3138,7 @@ var popTests = []popTest{ { name: "OP_OR", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_OR], + opcode: &opcodeArray[OP_OR], data: nil, }, expectedErr: nil, @@ -3162,7 +3146,7 @@ var popTests = []popTest{ { name: "OP_OR long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_OR], + opcode: &opcodeArray[OP_OR], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3170,7 +3154,7 @@ var popTests = []popTest{ { name: "OP_XOR", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_XOR], + opcode: &opcodeArray[OP_XOR], data: nil, }, expectedErr: nil, @@ -3178,7 +3162,7 @@ var popTests = []popTest{ { name: "OP_XOR long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_XOR], + opcode: &opcodeArray[OP_XOR], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3186,7 +3170,7 @@ var popTests = []popTest{ { name: "OP_EQUAL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_EQUAL], + opcode: &opcodeArray[OP_EQUAL], data: nil, }, expectedErr: nil, @@ -3194,7 +3178,7 @@ var popTests = []popTest{ { name: "OP_EQUAL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_EQUAL], + opcode: &opcodeArray[OP_EQUAL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3202,7 +3186,7 @@ var popTests = []popTest{ { name: "OP_EQUALVERIFY", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_EQUALVERIFY], + opcode: &opcodeArray[OP_EQUALVERIFY], data: nil, }, expectedErr: nil, @@ -3210,7 +3194,7 @@ var popTests = []popTest{ { name: "OP_EQUALVERIFY long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_EQUALVERIFY], + opcode: &opcodeArray[OP_EQUALVERIFY], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3218,7 +3202,7 @@ var popTests = []popTest{ { name: "OP_RESERVED1", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RESERVED1], + opcode: &opcodeArray[OP_RESERVED1], data: nil, }, expectedErr: nil, @@ -3226,7 +3210,7 @@ var popTests = []popTest{ { name: "OP_RESERVED1 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RESERVED1], + opcode: &opcodeArray[OP_RESERVED1], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3234,7 +3218,7 @@ var popTests = []popTest{ { name: "OP_RESERVED2", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RESERVED2], + opcode: &opcodeArray[OP_RESERVED2], data: nil, }, expectedErr: nil, @@ -3242,7 +3226,7 @@ var popTests = []popTest{ { name: "OP_RESERVED2 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RESERVED2], + opcode: &opcodeArray[OP_RESERVED2], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3250,7 +3234,7 @@ var popTests = []popTest{ { name: "OP_1ADD", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_1ADD], + opcode: &opcodeArray[OP_1ADD], data: nil, }, expectedErr: nil, @@ -3258,7 +3242,7 @@ var popTests = []popTest{ { name: "OP_1ADD long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_1ADD], + opcode: &opcodeArray[OP_1ADD], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3266,7 +3250,7 @@ var popTests = []popTest{ { name: "OP_1SUB", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_1SUB], + opcode: &opcodeArray[OP_1SUB], data: nil, }, expectedErr: nil, @@ -3274,7 +3258,7 @@ var popTests = []popTest{ { name: "OP_1SUB long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_1SUB], + opcode: &opcodeArray[OP_1SUB], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3282,7 +3266,7 @@ var popTests = []popTest{ { name: "OP_2MUL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2MUL], + opcode: &opcodeArray[OP_2MUL], data: nil, }, expectedErr: nil, @@ -3290,7 +3274,7 @@ var popTests = []popTest{ { name: "OP_2MUL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2MUL], + opcode: &opcodeArray[OP_2MUL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3298,7 +3282,7 @@ var popTests = []popTest{ { name: "OP_2DIV", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2DIV], + opcode: &opcodeArray[OP_2DIV], data: nil, }, expectedErr: nil, @@ -3306,7 +3290,7 @@ var popTests = []popTest{ { name: "OP_2DIV long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_2DIV], + opcode: &opcodeArray[OP_2DIV], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3314,7 +3298,7 @@ var popTests = []popTest{ { name: "OP_NEGATE", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NEGATE], + opcode: &opcodeArray[OP_NEGATE], data: nil, }, expectedErr: nil, @@ -3322,7 +3306,7 @@ var popTests = []popTest{ { name: "OP_NEGATE long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NEGATE], + opcode: &opcodeArray[OP_NEGATE], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3330,7 +3314,7 @@ var popTests = []popTest{ { name: "OP_ABS", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ABS], + opcode: &opcodeArray[OP_ABS], data: nil, }, expectedErr: nil, @@ -3338,7 +3322,7 @@ var popTests = []popTest{ { name: "OP_ABS long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ABS], + opcode: &opcodeArray[OP_ABS], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3346,7 +3330,7 @@ var popTests = []popTest{ { name: "OP_NOT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOT], + opcode: &opcodeArray[OP_NOT], data: nil, }, expectedErr: nil, @@ -3354,7 +3338,7 @@ var popTests = []popTest{ { name: "OP_NOT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOT], + opcode: &opcodeArray[OP_NOT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3362,7 +3346,7 @@ var popTests = []popTest{ { name: "OP_0NOTEQUAL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_0NOTEQUAL], + opcode: &opcodeArray[OP_0NOTEQUAL], data: nil, }, expectedErr: nil, @@ -3370,7 +3354,7 @@ var popTests = []popTest{ { name: "OP_0NOTEQUAL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_0NOTEQUAL], + opcode: &opcodeArray[OP_0NOTEQUAL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3378,7 +3362,7 @@ var popTests = []popTest{ { name: "OP_ADD", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ADD], + opcode: &opcodeArray[OP_ADD], data: nil, }, expectedErr: nil, @@ -3386,7 +3370,7 @@ var popTests = []popTest{ { name: "OP_ADD long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_ADD], + opcode: &opcodeArray[OP_ADD], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3394,7 +3378,7 @@ var popTests = []popTest{ { name: "OP_SUB", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SUB], + opcode: &opcodeArray[OP_SUB], data: nil, }, expectedErr: nil, @@ -3402,7 +3386,7 @@ var popTests = []popTest{ { name: "OP_SUB long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SUB], + opcode: &opcodeArray[OP_SUB], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3410,7 +3394,7 @@ var popTests = []popTest{ { name: "OP_MUL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_MUL], + opcode: &opcodeArray[OP_MUL], data: nil, }, expectedErr: nil, @@ -3418,7 +3402,7 @@ var popTests = []popTest{ { name: "OP_MUL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_MUL], + opcode: &opcodeArray[OP_MUL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3426,7 +3410,7 @@ var popTests = []popTest{ { name: "OP_DIV", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DIV], + opcode: &opcodeArray[OP_DIV], data: nil, }, expectedErr: nil, @@ -3434,7 +3418,7 @@ var popTests = []popTest{ { name: "OP_DIV long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_DIV], + opcode: &opcodeArray[OP_DIV], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3442,7 +3426,7 @@ var popTests = []popTest{ { name: "OP_MOD", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_MOD], + opcode: &opcodeArray[OP_MOD], data: nil, }, expectedErr: nil, @@ -3450,7 +3434,7 @@ var popTests = []popTest{ { name: "OP_MOD long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_MOD], + opcode: &opcodeArray[OP_MOD], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3458,7 +3442,7 @@ var popTests = []popTest{ { name: "OP_LSHIFT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LSHIFT], + opcode: &opcodeArray[OP_LSHIFT], data: nil, }, expectedErr: nil, @@ -3466,7 +3450,7 @@ var popTests = []popTest{ { name: "OP_LSHIFT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LSHIFT], + opcode: &opcodeArray[OP_LSHIFT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3474,7 +3458,7 @@ var popTests = []popTest{ { name: "OP_RSHIFT", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RSHIFT], + opcode: &opcodeArray[OP_RSHIFT], data: nil, }, expectedErr: nil, @@ -3482,7 +3466,7 @@ var popTests = []popTest{ { name: "OP_RSHIFT long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RSHIFT], + opcode: &opcodeArray[OP_RSHIFT], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3490,7 +3474,7 @@ var popTests = []popTest{ { name: "OP_BOOLAND", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_BOOLAND], + opcode: &opcodeArray[OP_BOOLAND], data: nil, }, expectedErr: nil, @@ -3498,7 +3482,7 @@ var popTests = []popTest{ { name: "OP_BOOLAND long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_BOOLAND], + opcode: &opcodeArray[OP_BOOLAND], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3506,7 +3490,7 @@ var popTests = []popTest{ { name: "OP_BOOLOR", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_BOOLOR], + opcode: &opcodeArray[OP_BOOLOR], data: nil, }, expectedErr: nil, @@ -3514,7 +3498,7 @@ var popTests = []popTest{ { name: "OP_BOOLOR long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_BOOLOR], + opcode: &opcodeArray[OP_BOOLOR], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3522,7 +3506,7 @@ var popTests = []popTest{ { name: "OP_NUMEQUAL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NUMEQUAL], + opcode: &opcodeArray[OP_NUMEQUAL], data: nil, }, expectedErr: nil, @@ -3530,7 +3514,7 @@ var popTests = []popTest{ { name: "OP_NUMEQUAL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NUMEQUAL], + opcode: &opcodeArray[OP_NUMEQUAL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3538,7 +3522,7 @@ var popTests = []popTest{ { name: "OP_NUMEQUALVERIFY", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NUMEQUALVERIFY], + opcode: &opcodeArray[OP_NUMEQUALVERIFY], data: nil, }, expectedErr: nil, @@ -3546,7 +3530,7 @@ var popTests = []popTest{ { name: "OP_NUMEQUALVERIFY long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NUMEQUALVERIFY], + opcode: &opcodeArray[OP_NUMEQUALVERIFY], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3554,7 +3538,7 @@ var popTests = []popTest{ { name: "OP_NUMNOTEQUAL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NUMNOTEQUAL], + opcode: &opcodeArray[OP_NUMNOTEQUAL], data: nil, }, expectedErr: nil, @@ -3562,7 +3546,7 @@ var popTests = []popTest{ { name: "OP_NUMNOTEQUAL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NUMNOTEQUAL], + opcode: &opcodeArray[OP_NUMNOTEQUAL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3570,7 +3554,7 @@ var popTests = []popTest{ { name: "OP_LESSTHAN", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LESSTHAN], + opcode: &opcodeArray[OP_LESSTHAN], data: nil, }, expectedErr: nil, @@ -3578,7 +3562,7 @@ var popTests = []popTest{ { name: "OP_LESSTHAN long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LESSTHAN], + opcode: &opcodeArray[OP_LESSTHAN], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3586,7 +3570,7 @@ var popTests = []popTest{ { name: "OP_GREATERTHAN", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_GREATERTHAN], + opcode: &opcodeArray[OP_GREATERTHAN], data: nil, }, expectedErr: nil, @@ -3594,7 +3578,7 @@ var popTests = []popTest{ { name: "OP_GREATERTHAN long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_GREATERTHAN], + opcode: &opcodeArray[OP_GREATERTHAN], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3602,7 +3586,7 @@ var popTests = []popTest{ { name: "OP_LESSTHANOREQUAL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LESSTHANOREQUAL], + opcode: &opcodeArray[OP_LESSTHANOREQUAL], data: nil, }, expectedErr: nil, @@ -3610,7 +3594,7 @@ var popTests = []popTest{ { name: "OP_LESSTHANOREQUAL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_LESSTHANOREQUAL], + opcode: &opcodeArray[OP_LESSTHANOREQUAL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3618,7 +3602,7 @@ var popTests = []popTest{ { name: "OP_GREATERTHANOREQUAL", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_GREATERTHANOREQUAL], + opcode: &opcodeArray[OP_GREATERTHANOREQUAL], data: nil, }, expectedErr: nil, @@ -3626,7 +3610,7 @@ var popTests = []popTest{ { name: "OP_GREATERTHANOREQUAL long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_GREATERTHANOREQUAL], + opcode: &opcodeArray[OP_GREATERTHANOREQUAL], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3634,7 +3618,7 @@ var popTests = []popTest{ { name: "OP_MIN", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_MIN], + opcode: &opcodeArray[OP_MIN], data: nil, }, expectedErr: nil, @@ -3642,7 +3626,7 @@ var popTests = []popTest{ { name: "OP_MIN long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_MIN], + opcode: &opcodeArray[OP_MIN], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3650,7 +3634,7 @@ var popTests = []popTest{ { name: "OP_MAX", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_MAX], + opcode: &opcodeArray[OP_MAX], data: nil, }, expectedErr: nil, @@ -3658,7 +3642,7 @@ var popTests = []popTest{ { name: "OP_MAX long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_MAX], + opcode: &opcodeArray[OP_MAX], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3666,7 +3650,7 @@ var popTests = []popTest{ { name: "OP_WITHIN", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_WITHIN], + opcode: &opcodeArray[OP_WITHIN], data: nil, }, expectedErr: nil, @@ -3674,7 +3658,7 @@ var popTests = []popTest{ { name: "OP_WITHIN long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_WITHIN], + opcode: &opcodeArray[OP_WITHIN], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3682,7 +3666,7 @@ var popTests = []popTest{ { name: "OP_RIPEMD160", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RIPEMD160], + opcode: &opcodeArray[OP_RIPEMD160], data: nil, }, expectedErr: nil, @@ -3690,7 +3674,7 @@ var popTests = []popTest{ { name: "OP_RIPEMD160 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_RIPEMD160], + opcode: &opcodeArray[OP_RIPEMD160], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3698,7 +3682,7 @@ var popTests = []popTest{ { name: "OP_SHA1", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SHA1], + opcode: &opcodeArray[OP_SHA1], data: nil, }, expectedErr: nil, @@ -3706,7 +3690,7 @@ var popTests = []popTest{ { name: "OP_SHA1 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SHA1], + opcode: &opcodeArray[OP_SHA1], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3714,7 +3698,7 @@ var popTests = []popTest{ { name: "OP_SHA256", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SHA256], + opcode: &opcodeArray[OP_SHA256], data: nil, }, expectedErr: nil, @@ -3722,7 +3706,7 @@ var popTests = []popTest{ { name: "OP_SHA256 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_SHA256], + opcode: &opcodeArray[OP_SHA256], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3730,7 +3714,7 @@ var popTests = []popTest{ { name: "OP_HASH160", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_HASH160], + opcode: &opcodeArray[OP_HASH160], data: nil, }, expectedErr: nil, @@ -3738,7 +3722,7 @@ var popTests = []popTest{ { name: "OP_HASH160 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_HASH160], + opcode: &opcodeArray[OP_HASH160], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3746,7 +3730,7 @@ var popTests = []popTest{ { name: "OP_HASH256", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_HASH256], + opcode: &opcodeArray[OP_HASH256], data: nil, }, expectedErr: nil, @@ -3754,7 +3738,7 @@ var popTests = []popTest{ { name: "OP_HASH256 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_HASH256], + opcode: &opcodeArray[OP_HASH256], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3762,7 +3746,7 @@ var popTests = []popTest{ { name: "OP_CODESAPERATOR", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CODESEPARATOR], + opcode: &opcodeArray[OP_CODESEPARATOR], data: nil, }, expectedErr: nil, @@ -3770,7 +3754,7 @@ var popTests = []popTest{ { name: "OP_CODESEPARATOR long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CODESEPARATOR], + opcode: &opcodeArray[OP_CODESEPARATOR], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3778,7 +3762,7 @@ var popTests = []popTest{ { name: "OP_CHECKSIG", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CHECKSIG], + opcode: &opcodeArray[OP_CHECKSIG], data: nil, }, expectedErr: nil, @@ -3786,7 +3770,7 @@ var popTests = []popTest{ { name: "OP_CHECKSIG long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CHECKSIG], + opcode: &opcodeArray[OP_CHECKSIG], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3794,7 +3778,7 @@ var popTests = []popTest{ { name: "OP_CHECKSIGVERIFY", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CHECKSIGVERIFY], + opcode: &opcodeArray[OP_CHECKSIGVERIFY], data: nil, }, expectedErr: nil, @@ -3802,7 +3786,7 @@ var popTests = []popTest{ { name: "OP_CHECKSIGVERIFY long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CHECKSIGVERIFY], + opcode: &opcodeArray[OP_CHECKSIGVERIFY], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3810,7 +3794,7 @@ var popTests = []popTest{ { name: "OP_CHECKMULTISIG", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CHECKMULTISIG], + opcode: &opcodeArray[OP_CHECKMULTISIG], data: nil, }, expectedErr: nil, @@ -3818,7 +3802,7 @@ var popTests = []popTest{ { name: "OP_CHECKMULTISIG long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CHECKMULTISIG], + opcode: &opcodeArray[OP_CHECKMULTISIG], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3826,7 +3810,7 @@ var popTests = []popTest{ { name: "OP_CHECKMULTISIGVERIFY", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CHECKMULTISIGVERIFY], + opcode: &opcodeArray[OP_CHECKMULTISIGVERIFY], data: nil, }, expectedErr: nil, @@ -3834,7 +3818,7 @@ var popTests = []popTest{ { name: "OP_CHECKMULTISIGVERIFY long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_CHECKMULTISIGVERIFY], + opcode: &opcodeArray[OP_CHECKMULTISIGVERIFY], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3842,7 +3826,7 @@ var popTests = []popTest{ { name: "OP_NOP1", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP1], + opcode: &opcodeArray[OP_NOP1], data: nil, }, expectedErr: nil, @@ -3850,7 +3834,7 @@ var popTests = []popTest{ { name: "OP_NOP1 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP1], + opcode: &opcodeArray[OP_NOP1], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3858,7 +3842,7 @@ var popTests = []popTest{ { name: "OP_NOP2", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP2], + opcode: &opcodeArray[OP_NOP2], data: nil, }, expectedErr: nil, @@ -3866,7 +3850,7 @@ var popTests = []popTest{ { name: "OP_NOP2 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP2], + opcode: &opcodeArray[OP_NOP2], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3874,7 +3858,7 @@ var popTests = []popTest{ { name: "OP_NOP3", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP3], + opcode: &opcodeArray[OP_NOP3], data: nil, }, expectedErr: nil, @@ -3882,7 +3866,7 @@ var popTests = []popTest{ { name: "OP_NOP3 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP3], + opcode: &opcodeArray[OP_NOP3], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3890,7 +3874,7 @@ var popTests = []popTest{ { name: "OP_NOP4", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP4], + opcode: &opcodeArray[OP_NOP4], data: nil, }, expectedErr: nil, @@ -3898,7 +3882,7 @@ var popTests = []popTest{ { name: "OP_NOP4 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP4], + opcode: &opcodeArray[OP_NOP4], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3906,7 +3890,7 @@ var popTests = []popTest{ { name: "OP_NOP5", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP5], + opcode: &opcodeArray[OP_NOP5], data: nil, }, expectedErr: nil, @@ -3914,7 +3898,7 @@ var popTests = []popTest{ { name: "OP_NOP5 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP5], + opcode: &opcodeArray[OP_NOP5], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3922,7 +3906,7 @@ var popTests = []popTest{ { name: "OP_NOP6", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP6], + opcode: &opcodeArray[OP_NOP6], data: nil, }, expectedErr: nil, @@ -3930,7 +3914,7 @@ var popTests = []popTest{ { name: "OP_NOP6 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP6], + opcode: &opcodeArray[OP_NOP6], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3938,7 +3922,7 @@ var popTests = []popTest{ { name: "OP_NOP7", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP7], + opcode: &opcodeArray[OP_NOP7], data: nil, }, expectedErr: nil, @@ -3946,7 +3930,7 @@ var popTests = []popTest{ { name: "OP_NOP7 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP7], + opcode: &opcodeArray[OP_NOP7], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3954,7 +3938,7 @@ var popTests = []popTest{ { name: "OP_NOP8", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP8], + opcode: &opcodeArray[OP_NOP8], data: nil, }, expectedErr: nil, @@ -3962,7 +3946,7 @@ var popTests = []popTest{ { name: "OP_NOP8 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP8], + opcode: &opcodeArray[OP_NOP8], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3970,7 +3954,7 @@ var popTests = []popTest{ { name: "OP_NOP9", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP9], + opcode: &opcodeArray[OP_NOP9], data: nil, }, expectedErr: nil, @@ -3978,7 +3962,7 @@ var popTests = []popTest{ { name: "OP_NOP9 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP9], + opcode: &opcodeArray[OP_NOP9], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -3986,7 +3970,7 @@ var popTests = []popTest{ { name: "OP_NOP10", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP10], + opcode: &opcodeArray[OP_NOP10], data: nil, }, expectedErr: nil, @@ -3994,7 +3978,7 @@ var popTests = []popTest{ { name: "OP_NOP10 long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_NOP10], + opcode: &opcodeArray[OP_NOP10], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -4002,7 +3986,7 @@ var popTests = []popTest{ { name: "OP_PUBKEYHASH", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PUBKEYHASH], + opcode: &opcodeArray[OP_PUBKEYHASH], data: nil, }, expectedErr: nil, @@ -4010,7 +3994,7 @@ var popTests = []popTest{ { name: "OP_PUBKEYHASH long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PUBKEYHASH], + opcode: &opcodeArray[OP_PUBKEYHASH], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -4018,7 +4002,7 @@ var popTests = []popTest{ { name: "OP_PUBKEY", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PUBKEY], + opcode: &opcodeArray[OP_PUBKEY], data: nil, }, expectedErr: nil, @@ -4026,7 +4010,7 @@ var popTests = []popTest{ { name: "OP_PUBKEY long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_PUBKEY], + opcode: &opcodeArray[OP_PUBKEY], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, @@ -4034,7 +4018,7 @@ var popTests = []popTest{ { name: "OP_INVALIDOPCODE", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_INVALIDOPCODE], + opcode: &opcodeArray[OP_INVALIDOPCODE], data: nil, }, expectedErr: nil, @@ -4042,7 +4026,7 @@ var popTests = []popTest{ { name: "OP_INVALIDOPCODE long", pop: &parsedOpcode{ - opcode: opcodemapPreinit[OP_INVALIDOPCODE], + opcode: &opcodeArray[OP_INVALIDOPCODE], data: make([]byte, 1), }, expectedErr: ErrStackInvalidOpcode, diff --git a/txscript/opcode.go b/txscript/opcode.go index bfc040ca7..8ad42ae03 100644 --- a/txscript/opcode.go +++ b/txscript/opcode.go @@ -24,11 +24,10 @@ import ( // the script. The current script is passed in as a slice with the firs // member being the opcode itself. type opcode struct { - value byte - name string - length int - opfunc func(*parsedOpcode, *Engine) error - parsefunc func(*opcode, *Engine, []byte) error + value byte + name string + length int + opfunc func(*parsedOpcode, *Engine) error } // These constants are the values of the official opcodes used on the btc wiki, @@ -302,533 +301,286 @@ const ( OpCondSkip = 2 ) -// Some of the functions in opcodemap call things that themselves then will -// reference the opcodemap to make decisions (things like op_checksig which -// needs to parse scripts to remove opcodes, for example). -// The go compiler is very conservative in this matter and will think there -// is an initialisation loop. In order to work around this we have the fake -// ``prevariable'' opcodemapPreinit and then set the real variable to the -// preinit in init() -var opcodemap map[byte]*opcode +// opcodeArray holds details about all possible opcodes such as how many bytes +// the opcode and any associated data should take, its human-readable name, and +// the handler function. +var opcodeArray = [256]opcode{ + // Data push opcodes. + OP_FALSE: {OP_FALSE, "OP_0", 1, opcodeFalse}, + OP_DATA_1: {OP_DATA_1, "OP_DATA_1", 2, opcodePushData}, + OP_DATA_2: {OP_DATA_2, "OP_DATA_2", 3, opcodePushData}, + OP_DATA_3: {OP_DATA_3, "OP_DATA_3", 4, opcodePushData}, + OP_DATA_4: {OP_DATA_4, "OP_DATA_4", 5, opcodePushData}, + OP_DATA_5: {OP_DATA_5, "OP_DATA_5", 6, opcodePushData}, + OP_DATA_6: {OP_DATA_6, "OP_DATA_6", 7, opcodePushData}, + OP_DATA_7: {OP_DATA_7, "OP_DATA_7", 8, opcodePushData}, + OP_DATA_8: {OP_DATA_8, "OP_DATA_8", 9, opcodePushData}, + OP_DATA_9: {OP_DATA_9, "OP_DATA_9", 10, opcodePushData}, + OP_DATA_10: {OP_DATA_10, "OP_DATA_10", 11, opcodePushData}, + OP_DATA_11: {OP_DATA_11, "OP_DATA_11", 12, opcodePushData}, + OP_DATA_12: {OP_DATA_12, "OP_DATA_12", 13, opcodePushData}, + OP_DATA_13: {OP_DATA_13, "OP_DATA_13", 14, opcodePushData}, + OP_DATA_14: {OP_DATA_14, "OP_DATA_14", 15, opcodePushData}, + OP_DATA_15: {OP_DATA_15, "OP_DATA_15", 16, opcodePushData}, + OP_DATA_16: {OP_DATA_16, "OP_DATA_16", 17, opcodePushData}, + OP_DATA_17: {OP_DATA_17, "OP_DATA_17", 18, opcodePushData}, + OP_DATA_18: {OP_DATA_18, "OP_DATA_18", 19, opcodePushData}, + OP_DATA_19: {OP_DATA_19, "OP_DATA_19", 20, opcodePushData}, + OP_DATA_20: {OP_DATA_20, "OP_DATA_20", 21, opcodePushData}, + OP_DATA_21: {OP_DATA_21, "OP_DATA_21", 22, opcodePushData}, + OP_DATA_22: {OP_DATA_22, "OP_DATA_22", 23, opcodePushData}, + OP_DATA_23: {OP_DATA_23, "OP_DATA_23", 24, opcodePushData}, + OP_DATA_24: {OP_DATA_24, "OP_DATA_24", 25, opcodePushData}, + OP_DATA_25: {OP_DATA_25, "OP_DATA_25", 26, opcodePushData}, + OP_DATA_26: {OP_DATA_26, "OP_DATA_26", 27, opcodePushData}, + OP_DATA_27: {OP_DATA_27, "OP_DATA_27", 28, opcodePushData}, + OP_DATA_28: {OP_DATA_28, "OP_DATA_28", 29, opcodePushData}, + OP_DATA_29: {OP_DATA_29, "OP_DATA_29", 30, opcodePushData}, + OP_DATA_30: {OP_DATA_30, "OP_DATA_30", 31, opcodePushData}, + OP_DATA_31: {OP_DATA_31, "OP_DATA_31", 32, opcodePushData}, + OP_DATA_32: {OP_DATA_32, "OP_DATA_32", 33, opcodePushData}, + OP_DATA_33: {OP_DATA_33, "OP_DATA_33", 34, opcodePushData}, + OP_DATA_34: {OP_DATA_34, "OP_DATA_34", 35, opcodePushData}, + OP_DATA_35: {OP_DATA_35, "OP_DATA_35", 36, opcodePushData}, + OP_DATA_36: {OP_DATA_36, "OP_DATA_36", 37, opcodePushData}, + OP_DATA_37: {OP_DATA_37, "OP_DATA_37", 38, opcodePushData}, + OP_DATA_38: {OP_DATA_38, "OP_DATA_38", 39, opcodePushData}, + OP_DATA_39: {OP_DATA_39, "OP_DATA_39", 40, opcodePushData}, + OP_DATA_40: {OP_DATA_40, "OP_DATA_40", 41, opcodePushData}, + OP_DATA_41: {OP_DATA_41, "OP_DATA_41", 42, opcodePushData}, + OP_DATA_42: {OP_DATA_42, "OP_DATA_42", 43, opcodePushData}, + OP_DATA_43: {OP_DATA_43, "OP_DATA_43", 44, opcodePushData}, + OP_DATA_44: {OP_DATA_44, "OP_DATA_44", 45, opcodePushData}, + OP_DATA_45: {OP_DATA_45, "OP_DATA_45", 46, opcodePushData}, + OP_DATA_46: {OP_DATA_46, "OP_DATA_46", 47, opcodePushData}, + OP_DATA_47: {OP_DATA_47, "OP_DATA_47", 48, opcodePushData}, + OP_DATA_48: {OP_DATA_48, "OP_DATA_48", 49, opcodePushData}, + OP_DATA_49: {OP_DATA_49, "OP_DATA_49", 50, opcodePushData}, + OP_DATA_50: {OP_DATA_50, "OP_DATA_50", 51, opcodePushData}, + OP_DATA_51: {OP_DATA_51, "OP_DATA_51", 52, opcodePushData}, + OP_DATA_52: {OP_DATA_52, "OP_DATA_52", 53, opcodePushData}, + OP_DATA_53: {OP_DATA_53, "OP_DATA_53", 54, opcodePushData}, + OP_DATA_54: {OP_DATA_54, "OP_DATA_54", 55, opcodePushData}, + OP_DATA_55: {OP_DATA_55, "OP_DATA_55", 56, opcodePushData}, + OP_DATA_56: {OP_DATA_56, "OP_DATA_56", 57, opcodePushData}, + OP_DATA_57: {OP_DATA_57, "OP_DATA_57", 58, opcodePushData}, + OP_DATA_58: {OP_DATA_58, "OP_DATA_58", 59, opcodePushData}, + OP_DATA_59: {OP_DATA_59, "OP_DATA_59", 60, opcodePushData}, + OP_DATA_60: {OP_DATA_60, "OP_DATA_60", 61, opcodePushData}, + OP_DATA_61: {OP_DATA_61, "OP_DATA_61", 62, opcodePushData}, + OP_DATA_62: {OP_DATA_62, "OP_DATA_62", 63, opcodePushData}, + OP_DATA_63: {OP_DATA_63, "OP_DATA_63", 64, opcodePushData}, + OP_DATA_64: {OP_DATA_64, "OP_DATA_64", 65, opcodePushData}, + OP_DATA_65: {OP_DATA_65, "OP_DATA_65", 66, opcodePushData}, + OP_DATA_66: {OP_DATA_66, "OP_DATA_66", 67, opcodePushData}, + OP_DATA_67: {OP_DATA_67, "OP_DATA_67", 68, opcodePushData}, + OP_DATA_68: {OP_DATA_68, "OP_DATA_68", 69, opcodePushData}, + OP_DATA_69: {OP_DATA_69, "OP_DATA_69", 70, opcodePushData}, + OP_DATA_70: {OP_DATA_70, "OP_DATA_70", 71, opcodePushData}, + OP_DATA_71: {OP_DATA_71, "OP_DATA_71", 72, opcodePushData}, + OP_DATA_72: {OP_DATA_72, "OP_DATA_72", 73, opcodePushData}, + OP_DATA_73: {OP_DATA_73, "OP_DATA_73", 74, opcodePushData}, + OP_DATA_74: {OP_DATA_74, "OP_DATA_74", 75, opcodePushData}, + OP_DATA_75: {OP_DATA_75, "OP_DATA_75", 76, opcodePushData}, + OP_PUSHDATA1: {OP_PUSHDATA1, "OP_PUSHDATA1", -1, opcodePushData}, + OP_PUSHDATA2: {OP_PUSHDATA2, "OP_PUSHDATA2", -2, opcodePushData}, + OP_PUSHDATA4: {OP_PUSHDATA4, "OP_PUSHDATA4", -4, opcodePushData}, + OP_1NEGATE: {OP_1NEGATE, "OP_1NEGATE", 1, opcode1Negate}, + OP_RESERVED: {OP_RESERVED, "OP_RESERVED", 1, opcodeReserved}, + OP_TRUE: {OP_TRUE, "OP_1", 1, opcodeN}, + OP_2: {OP_2, "OP_2", 1, opcodeN}, + OP_3: {OP_3, "OP_3", 1, opcodeN}, + OP_4: {OP_4, "OP_4", 1, opcodeN}, + OP_5: {OP_5, "OP_5", 1, opcodeN}, + OP_6: {OP_6, "OP_6", 1, opcodeN}, + OP_7: {OP_7, "OP_7", 1, opcodeN}, + OP_8: {OP_8, "OP_8", 1, opcodeN}, + OP_9: {OP_9, "OP_9", 1, opcodeN}, + OP_10: {OP_10, "OP_10", 1, opcodeN}, + OP_11: {OP_11, "OP_11", 1, opcodeN}, + OP_12: {OP_12, "OP_12", 1, opcodeN}, + OP_13: {OP_13, "OP_13", 1, opcodeN}, + OP_14: {OP_14, "OP_14", 1, opcodeN}, + OP_15: {OP_15, "OP_15", 1, opcodeN}, + OP_16: {OP_16, "OP_16", 1, opcodeN}, -func init() { - opcodemap = opcodemapPreinit -} + // Control opcodes. + OP_NOP: {OP_NOP, "OP_NOP", 1, opcodeNop}, + OP_VER: {OP_VER, "OP_VER", 1, opcodeReserved}, + OP_IF: {OP_IF, "OP_IF", 1, opcodeIf}, + OP_NOTIF: {OP_NOTIF, "OP_NOTIF", 1, opcodeNotIf}, + OP_VERIF: {OP_VERIF, "OP_VERIF", 1, opcodeReserved}, + OP_VERNOTIF: {OP_VERNOTIF, "OP_VERNOTIF", 1, opcodeReserved}, + OP_ELSE: {OP_ELSE, "OP_ELSE", 1, opcodeElse}, + OP_ENDIF: {OP_ENDIF, "OP_ENDIF", 1, opcodeEndif}, + OP_VERIFY: {OP_VERIFY, "OP_VERIFY", 1, opcodeVerify}, + OP_RETURN: {OP_RETURN, "OP_RETURN", 1, opcodeReturn}, -var opcodemapPreinit = map[byte]*opcode{ - OP_FALSE: {value: OP_FALSE, name: "OP_0", length: 1, - opfunc: opcodeFalse}, - OP_DATA_1: {value: OP_DATA_1, name: "OP_DATA_1", length: 2, - opfunc: opcodePushData}, - OP_DATA_2: {value: OP_DATA_2, name: "OP_DATA_2", length: 3, - opfunc: opcodePushData}, - OP_DATA_3: {value: OP_DATA_3, name: "OP_DATA_3", length: 4, - opfunc: opcodePushData}, - OP_DATA_4: {value: OP_DATA_4, name: "OP_DATA_4", length: 5, - opfunc: opcodePushData}, - OP_DATA_5: {value: OP_DATA_5, name: "OP_DATA_5", length: 6, - opfunc: opcodePushData}, - OP_DATA_6: {value: OP_DATA_6, name: "OP_DATA_6", length: 7, - opfunc: opcodePushData}, - OP_DATA_7: {value: OP_DATA_7, name: "OP_DATA_7", length: 8, - opfunc: opcodePushData}, - OP_DATA_8: {value: OP_DATA_8, name: "OP_DATA_8", length: 9, - opfunc: opcodePushData}, - OP_DATA_9: {value: OP_DATA_9, name: "OP_DATA_9", length: 10, - opfunc: opcodePushData}, - OP_DATA_10: {value: OP_DATA_10, name: "OP_DATA_10", length: 11, - opfunc: opcodePushData}, - OP_DATA_11: {value: OP_DATA_11, name: "OP_DATA_11", length: 12, - opfunc: opcodePushData}, - OP_DATA_12: {value: OP_DATA_12, name: "OP_DATA_12", length: 13, - opfunc: opcodePushData}, - OP_DATA_13: {value: OP_DATA_13, name: "OP_DATA_13", length: 14, - opfunc: opcodePushData}, - OP_DATA_14: {value: OP_DATA_14, name: "OP_DATA_14", length: 15, - opfunc: opcodePushData}, - OP_DATA_15: {value: OP_DATA_15, name: "OP_DATA_15", length: 16, - opfunc: opcodePushData}, - OP_DATA_16: {value: OP_DATA_16, name: "OP_DATA_16", length: 17, - opfunc: opcodePushData}, - OP_DATA_17: {value: OP_DATA_17, name: "OP_DATA_17", length: 18, - opfunc: opcodePushData}, - OP_DATA_18: {value: OP_DATA_18, name: "OP_DATA_18", length: 19, - opfunc: opcodePushData}, - OP_DATA_19: {value: OP_DATA_19, name: "OP_DATA_19", length: 20, - opfunc: opcodePushData}, - OP_DATA_20: {value: OP_DATA_20, name: "OP_DATA_20", length: 21, - opfunc: opcodePushData}, - OP_DATA_21: {value: OP_DATA_21, name: "OP_DATA_21", length: 22, - opfunc: opcodePushData}, - OP_DATA_22: {value: OP_DATA_22, name: "OP_DATA_22", length: 23, - opfunc: opcodePushData}, - OP_DATA_23: {value: OP_DATA_23, name: "OP_DATA_23", length: 24, - opfunc: opcodePushData}, - OP_DATA_24: {value: OP_DATA_24, name: "OP_DATA_24", length: 25, - opfunc: opcodePushData}, - OP_DATA_25: {value: OP_DATA_25, name: "OP_DATA_25", length: 26, - opfunc: opcodePushData}, - OP_DATA_26: {value: OP_DATA_26, name: "OP_DATA_26", length: 27, - opfunc: opcodePushData}, - OP_DATA_27: {value: OP_DATA_27, name: "OP_DATA_27", length: 28, - opfunc: opcodePushData}, - OP_DATA_28: {value: OP_DATA_28, name: "OP_DATA_28", length: 29, - opfunc: opcodePushData}, - OP_DATA_29: {value: OP_DATA_29, name: "OP_DATA_29", length: 30, - opfunc: opcodePushData}, - OP_DATA_30: {value: OP_DATA_30, name: "OP_DATA_30", length: 31, - opfunc: opcodePushData}, - OP_DATA_31: {value: OP_DATA_31, name: "OP_DATA_31", length: 32, - opfunc: opcodePushData}, - OP_DATA_32: {value: OP_DATA_32, name: "OP_DATA_32", length: 33, - opfunc: opcodePushData}, - OP_DATA_33: {value: OP_DATA_33, name: "OP_DATA_33", length: 34, - opfunc: opcodePushData}, - OP_DATA_34: {value: OP_DATA_34, name: "OP_DATA_34", length: 35, - opfunc: opcodePushData}, - OP_DATA_35: {value: OP_DATA_35, name: "OP_DATA_35", length: 36, - opfunc: opcodePushData}, - OP_DATA_36: {value: OP_DATA_36, name: "OP_DATA_36", length: 37, - opfunc: opcodePushData}, - OP_DATA_37: {value: OP_DATA_37, name: "OP_DATA_37", length: 38, - opfunc: opcodePushData}, - OP_DATA_38: {value: OP_DATA_38, name: "OP_DATA_38", length: 39, - opfunc: opcodePushData}, - OP_DATA_39: {value: OP_DATA_39, name: "OP_DATA_39", length: 40, - opfunc: opcodePushData}, - OP_DATA_40: {value: OP_DATA_40, name: "OP_DATA_40", length: 41, - opfunc: opcodePushData}, - OP_DATA_41: {value: OP_DATA_41, name: "OP_DATA_41", length: 42, - opfunc: opcodePushData}, - OP_DATA_42: {value: OP_DATA_42, name: "OP_DATA_42", length: 43, - opfunc: opcodePushData}, - OP_DATA_43: {value: OP_DATA_43, name: "OP_DATA_43", length: 44, - opfunc: opcodePushData}, - OP_DATA_44: {value: OP_DATA_44, name: "OP_DATA_44", length: 45, - opfunc: opcodePushData}, - OP_DATA_45: {value: OP_DATA_45, name: "OP_DATA_45", length: 46, - opfunc: opcodePushData}, - OP_DATA_46: {value: OP_DATA_46, name: "OP_DATA_46", length: 47, - opfunc: opcodePushData}, - OP_DATA_47: {value: OP_DATA_47, name: "OP_DATA_47", length: 48, - opfunc: opcodePushData}, - OP_DATA_48: {value: OP_DATA_48, name: "OP_DATA_48", length: 49, - opfunc: opcodePushData}, - OP_DATA_49: {value: OP_DATA_49, name: "OP_DATA_49", length: 50, - opfunc: opcodePushData}, - OP_DATA_50: {value: OP_DATA_50, name: "OP_DATA_50", length: 51, - opfunc: opcodePushData}, - OP_DATA_51: {value: OP_DATA_51, name: "OP_DATA_51", length: 52, - opfunc: opcodePushData}, - OP_DATA_52: {value: OP_DATA_52, name: "OP_DATA_52", length: 53, - opfunc: opcodePushData}, - OP_DATA_53: {value: OP_DATA_53, name: "OP_DATA_53", length: 54, - opfunc: opcodePushData}, - OP_DATA_54: {value: OP_DATA_54, name: "OP_DATA_54", length: 55, - opfunc: opcodePushData}, - OP_DATA_55: {value: OP_DATA_55, name: "OP_DATA_55", length: 56, - opfunc: opcodePushData}, - OP_DATA_56: {value: OP_DATA_56, name: "OP_DATA_56", length: 57, - opfunc: opcodePushData}, - OP_DATA_57: {value: OP_DATA_57, name: "OP_DATA_57", length: 58, - opfunc: opcodePushData}, - OP_DATA_58: {value: OP_DATA_58, name: "OP_DATA_58", length: 59, - opfunc: opcodePushData}, - OP_DATA_59: {value: OP_DATA_59, name: "OP_DATA_59", length: 60, - opfunc: opcodePushData}, - OP_DATA_60: {value: OP_DATA_60, name: "OP_DATA_60", length: 61, - opfunc: opcodePushData}, - OP_DATA_61: {value: OP_DATA_61, name: "OP_DATA_61", length: 62, - opfunc: opcodePushData}, - OP_DATA_62: {value: OP_DATA_62, name: "OP_DATA_62", length: 63, - opfunc: opcodePushData}, - OP_DATA_63: {value: OP_DATA_63, name: "OP_DATA_63", length: 64, - opfunc: opcodePushData}, - OP_DATA_64: {value: OP_DATA_64, name: "OP_DATA_64", length: 65, - opfunc: opcodePushData}, - OP_DATA_65: {value: OP_DATA_65, name: "OP_DATA_65", length: 66, - opfunc: opcodePushData}, - OP_DATA_66: {value: OP_DATA_66, name: "OP_DATA_66", length: 67, - opfunc: opcodePushData}, - OP_DATA_67: {value: OP_DATA_67, name: "OP_DATA_67", length: 68, - opfunc: opcodePushData}, - OP_DATA_68: {value: OP_DATA_68, name: "OP_DATA_68", length: 69, - opfunc: opcodePushData}, - OP_DATA_69: {value: OP_DATA_69, name: "OP_DATA_69", length: 70, - opfunc: opcodePushData}, - OP_DATA_70: {value: OP_DATA_70, name: "OP_DATA_70", length: 71, - opfunc: opcodePushData}, - OP_DATA_71: {value: OP_DATA_71, name: "OP_DATA_71", length: 72, - opfunc: opcodePushData}, - OP_DATA_72: {value: OP_DATA_72, name: "OP_DATA_72", length: 73, - opfunc: opcodePushData}, - OP_DATA_73: {value: OP_DATA_73, name: "OP_DATA_73", length: 74, - opfunc: opcodePushData}, - OP_DATA_74: {value: OP_DATA_74, name: "OP_DATA_74", length: 75, - opfunc: opcodePushData}, - OP_DATA_75: {value: OP_DATA_75, name: "OP_DATA_75", length: 76, - opfunc: opcodePushData}, - OP_PUSHDATA1: {value: OP_PUSHDATA1, name: "OP_PUSHDATA1", length: -1, - opfunc: opcodePushData}, - OP_PUSHDATA2: {value: OP_PUSHDATA2, name: "OP_PUSHDATA2", length: -2, - opfunc: opcodePushData}, - OP_PUSHDATA4: {value: OP_PUSHDATA4, name: "OP_PUSHDATA4", length: -4, - opfunc: opcodePushData}, - OP_1NEGATE: {value: OP_1NEGATE, name: "OP_1NEGATE", length: 1, - opfunc: opcode1Negate}, - OP_RESERVED: {value: OP_RESERVED, name: "OP_RESERVED", length: 1, - opfunc: opcodeReserved}, - OP_TRUE: {value: OP_TRUE, name: "OP_1", length: 1, - opfunc: opcodeN}, - OP_2: {value: OP_2, name: "OP_2", length: 1, - opfunc: opcodeN}, - OP_3: {value: OP_3, name: "OP_3", length: 1, - opfunc: opcodeN}, - OP_4: {value: OP_4, name: "OP_4", length: 1, - opfunc: opcodeN}, - OP_5: {value: OP_5, name: "OP_5", length: 1, - opfunc: opcodeN}, - OP_6: {value: OP_6, name: "OP_6", length: 1, - opfunc: opcodeN}, - OP_7: {value: OP_7, name: "OP_7", length: 1, - opfunc: opcodeN}, - OP_8: {value: OP_8, name: "OP_8", length: 1, - opfunc: opcodeN}, - OP_9: {value: OP_9, name: "OP_9", length: 1, - opfunc: opcodeN}, - OP_10: {value: OP_10, name: "OP_10", length: 1, - opfunc: opcodeN}, - OP_11: {value: OP_11, name: "OP_11", length: 1, - opfunc: opcodeN}, - OP_12: {value: OP_12, name: "OP_12", length: 1, - opfunc: opcodeN}, - OP_13: {value: OP_13, name: "OP_13", length: 1, - opfunc: opcodeN}, - OP_14: {value: OP_14, name: "OP_14", length: 1, - opfunc: opcodeN}, - OP_15: {value: OP_15, name: "OP_15", length: 1, - opfunc: opcodeN}, - OP_16: {value: OP_16, name: "OP_16", length: 1, - opfunc: opcodeN}, - OP_NOP: {value: OP_NOP, name: "OP_NOP", length: 1, - opfunc: opcodeNop}, - OP_VER: {value: OP_VER, name: "OP_VER", length: 1, - opfunc: opcodeReserved}, - OP_IF: {value: OP_IF, name: "OP_IF", length: 1, - opfunc: opcodeIf}, - OP_NOTIF: {value: OP_NOTIF, name: "OP_NOTIF", length: 1, - opfunc: opcodeNotIf}, - OP_VERIF: {value: OP_VERIF, name: "OP_VERIF", length: 1, - opfunc: opcodeReserved}, - OP_VERNOTIF: {value: OP_VERNOTIF, name: "OP_VERNOTIF", length: 1, - opfunc: opcodeReserved}, - OP_ELSE: {value: OP_ELSE, name: "OP_ELSE", length: 1, - opfunc: opcodeElse}, - OP_ENDIF: {value: OP_ENDIF, name: "OP_ENDIF", length: 1, - opfunc: opcodeEndif}, - OP_VERIFY: {value: OP_VERIFY, name: "OP_VERIFY", length: 1, - opfunc: opcodeVerify}, - OP_RETURN: {value: OP_RETURN, name: "OP_RETURN", length: 1, - opfunc: opcodeReturn}, - OP_TOALTSTACK: {value: OP_TOALTSTACK, name: "OP_TOALTSTACK", length: 1, - opfunc: opcodeToAltStack}, - OP_FROMALTSTACK: {value: OP_FROMALTSTACK, name: "OP_FROMALTSTACK", length: 1, - opfunc: opcodeFromAltStack}, - OP_2DROP: {value: OP_2DROP, name: "OP_2DROP", length: 1, - opfunc: opcode2Drop}, - OP_2DUP: {value: OP_2DUP, name: "OP_2DUP", length: 1, - opfunc: opcode2Dup}, - OP_3DUP: {value: OP_3DUP, name: "OP_3DUP", length: 1, - opfunc: opcode3Dup}, - OP_2OVER: {value: OP_2OVER, name: "OP_2OVER", length: 1, - opfunc: opcode2Over}, - OP_2ROT: {value: OP_2ROT, name: "OP_2ROT", length: 1, - opfunc: opcode2Rot}, - OP_2SWAP: {value: OP_2SWAP, name: "OP_2SWAP", length: 1, - opfunc: opcode2Swap}, - OP_IFDUP: {value: OP_IFDUP, name: "OP_IFDUP", length: 1, - opfunc: opcodeIfDup}, - OP_DEPTH: {value: OP_DEPTH, name: "OP_DEPTH", length: 1, - opfunc: opcodeDepth}, - OP_DROP: {value: OP_DROP, name: "OP_DROP", length: 1, - opfunc: opcodeDrop}, - OP_DUP: {value: OP_DUP, name: "OP_DUP", length: 1, - opfunc: opcodeDup}, - OP_NIP: {value: OP_NIP, name: "OP_NIP", length: 1, - opfunc: opcodeNip}, - OP_OVER: {value: OP_OVER, name: "OP_OVER", length: 1, - opfunc: opcodeOver}, - OP_PICK: {value: OP_PICK, name: "OP_PICK", length: 1, - opfunc: opcodePick}, - OP_ROLL: {value: OP_ROLL, name: "OP_ROLL", length: 1, - opfunc: opcodeRoll}, - OP_ROT: {value: OP_ROT, name: "OP_ROT", length: 1, - opfunc: opcodeRot}, - OP_SWAP: {value: OP_SWAP, name: "OP_SWAP", length: 1, - opfunc: opcodeSwap}, - OP_TUCK: {value: OP_TUCK, name: "OP_TUCK", length: 1, - opfunc: opcodeTuck}, - OP_CAT: {value: OP_CAT, name: "OP_CAT", length: 1, - opfunc: opcodeDisabled}, - OP_SUBSTR: {value: OP_SUBSTR, name: "OP_SUBSTR", length: 1, - opfunc: opcodeDisabled}, - OP_LEFT: {value: OP_LEFT, name: "OP_LEFT", length: 1, - opfunc: opcodeDisabled}, - OP_RIGHT: {value: OP_RIGHT, name: "OP_RIGHT", length: 1, - opfunc: opcodeDisabled}, - OP_SIZE: {value: OP_SIZE, name: "OP_SIZE", length: 1, - opfunc: opcodeSize}, - OP_INVERT: {value: OP_INVERT, name: "OP_INVERT", length: 1, - opfunc: opcodeDisabled}, - OP_AND: {value: OP_AND, name: "OP_AND", length: 1, - opfunc: opcodeDisabled}, - OP_OR: {value: OP_OR, name: "OP_OR", length: 1, - opfunc: opcodeDisabled}, - OP_XOR: {value: OP_XOR, name: "OP_XOR", length: 1, - opfunc: opcodeDisabled}, - OP_EQUAL: {value: OP_EQUAL, name: "OP_EQUAL", length: 1, - opfunc: opcodeEqual}, - OP_EQUALVERIFY: {value: OP_EQUALVERIFY, name: "OP_EQUALVERIFY", length: 1, - opfunc: opcodeEqualVerify}, - OP_RESERVED1: {value: OP_RESERVED1, name: "OP_RESERVED1", length: 1, - opfunc: opcodeReserved}, - OP_RESERVED2: {value: OP_RESERVED2, name: "OP_RESERVED2", length: 1, - opfunc: opcodeReserved}, - OP_1ADD: {value: OP_1ADD, name: "OP_1ADD", length: 1, - opfunc: opcode1Add}, - OP_1SUB: {value: OP_1SUB, name: "OP_1SUB", length: 1, - opfunc: opcode1Sub}, - OP_2MUL: {value: OP_2MUL, name: "OP_2MUL", length: 1, - opfunc: opcodeDisabled}, - OP_2DIV: {value: OP_2DIV, name: "OP_2DIV", length: 1, - opfunc: opcodeDisabled}, - OP_NEGATE: {value: OP_NEGATE, name: "OP_NEGATE", length: 1, - opfunc: opcodeNegate}, - OP_ABS: {value: OP_ABS, name: "OP_ABS", length: 1, - opfunc: opcodeAbs}, - OP_NOT: {value: OP_NOT, name: "OP_NOT", length: 1, - opfunc: opcodeNot}, - OP_0NOTEQUAL: {value: OP_0NOTEQUAL, name: "OP_0NOTEQUAL", length: 1, - opfunc: opcode0NotEqual}, - OP_ADD: {value: OP_ADD, name: "OP_ADD", length: 1, - opfunc: opcodeAdd}, - OP_SUB: {value: OP_SUB, name: "OP_SUB", length: 1, - opfunc: opcodeSub}, - OP_MUL: {value: OP_MUL, name: "OP_MUL", length: 1, - opfunc: opcodeDisabled}, - OP_DIV: {value: OP_DIV, name: "OP_DIV", length: 1, - opfunc: opcodeDisabled}, - OP_MOD: {value: OP_MOD, name: "OP_MOD", length: 1, - opfunc: opcodeDisabled}, - OP_LSHIFT: {value: OP_LSHIFT, name: "OP_LSHIFT", length: 1, - opfunc: opcodeDisabled}, - OP_RSHIFT: {value: OP_RSHIFT, name: "OP_RSHIFT", length: 1, - opfunc: opcodeDisabled}, - OP_BOOLAND: {value: OP_BOOLAND, name: "OP_BOOLAND", length: 1, - opfunc: opcodeBoolAnd}, - OP_BOOLOR: {value: OP_BOOLOR, name: "OP_BOOLOR", length: 1, - opfunc: opcodeBoolOr}, - OP_NUMEQUAL: {value: OP_NUMEQUAL, name: "OP_NUMEQUAL", length: 1, - opfunc: opcodeNumEqual}, - OP_NUMEQUALVERIFY: {value: OP_NUMEQUALVERIFY, name: "OP_NUMEQUALVERIFY", length: 1, - opfunc: opcodeNumEqualVerify}, - OP_NUMNOTEQUAL: {value: OP_NUMNOTEQUAL, name: "OP_NUMNOTEQUAL", length: 1, - opfunc: opcodeNumNotEqual}, - OP_LESSTHAN: {value: OP_LESSTHAN, name: "OP_LESSTHAN", length: 1, - opfunc: opcodeLessThan}, - OP_GREATERTHAN: {value: OP_GREATERTHAN, name: "OP_GREATERTHAN", length: 1, - opfunc: opcodeGreaterThan}, - OP_LESSTHANOREQUAL: {value: OP_LESSTHANOREQUAL, name: "OP_LESSTHANOREQUAL", length: 1, - opfunc: opcodeLessThanOrEqual}, - OP_GREATERTHANOREQUAL: {value: OP_GREATERTHANOREQUAL, name: "OP_GREATERTHANOREQUAL", length: 1, - opfunc: opcodeGreaterThanOrEqual}, - OP_MIN: {value: OP_MIN, name: "OP_MIN", length: 1, - opfunc: opcodeMin}, - OP_MAX: {value: OP_MAX, name: "OP_MAX", length: 1, - opfunc: opcodeMax}, - OP_WITHIN: {value: OP_WITHIN, name: "OP_WITHIN", length: 1, - opfunc: opcodeWithin}, - OP_RIPEMD160: {value: OP_RIPEMD160, name: "OP_RIPEMD160", length: 1, - opfunc: opcodeRipemd160}, - OP_SHA1: {value: OP_SHA1, name: "OP_SHA1", length: 1, - opfunc: opcodeSha1}, - OP_SHA256: {value: OP_SHA256, name: "OP_SHA256", length: 1, - opfunc: opcodeSha256}, - OP_HASH160: {value: OP_HASH160, name: "OP_HASH160", length: 1, - opfunc: opcodeHash160}, - OP_HASH256: {value: OP_HASH256, name: "OP_HASH256", length: 1, - opfunc: opcodeHash256}, - OP_CODESEPARATOR: {value: OP_CODESEPARATOR, name: "OP_CODESEPARATOR", length: 1, - opfunc: opcodeCodeSeparator}, - OP_CHECKSIG: {value: OP_CHECKSIG, name: "OP_CHECKSIG", length: 1, - opfunc: opcodeCheckSig}, - OP_CHECKSIGVERIFY: {value: OP_CHECKSIGVERIFY, name: "OP_CHECKSIGVERIFY", length: 1, - opfunc: opcodeCheckSigVerify}, - OP_CHECKMULTISIG: {value: OP_CHECKMULTISIG, name: "OP_CHECKMULTISIG", length: 1, - opfunc: opcodeCheckMultiSig}, - OP_CHECKMULTISIGVERIFY: {value: OP_CHECKMULTISIGVERIFY, name: "OP_CHECKMULTISIGVERIFY", length: 1, + // Stack opcodes. + OP_TOALTSTACK: {OP_TOALTSTACK, "OP_TOALTSTACK", 1, opcodeToAltStack}, + OP_FROMALTSTACK: {OP_FROMALTSTACK, "OP_FROMALTSTACK", 1, opcodeFromAltStack}, + OP_2DROP: {OP_2DROP, "OP_2DROP", 1, opcode2Drop}, + OP_2DUP: {OP_2DUP, "OP_2DUP", 1, opcode2Dup}, + OP_3DUP: {OP_3DUP, "OP_3DUP", 1, opcode3Dup}, + OP_2OVER: {OP_2OVER, "OP_2OVER", 1, opcode2Over}, + OP_2ROT: {OP_2ROT, "OP_2ROT", 1, opcode2Rot}, + OP_2SWAP: {OP_2SWAP, "OP_2SWAP", 1, opcode2Swap}, + OP_IFDUP: {OP_IFDUP, "OP_IFDUP", 1, opcodeIfDup}, + OP_DEPTH: {OP_DEPTH, "OP_DEPTH", 1, opcodeDepth}, + OP_DROP: {OP_DROP, "OP_DROP", 1, opcodeDrop}, + OP_DUP: {OP_DUP, "OP_DUP", 1, opcodeDup}, + OP_NIP: {OP_NIP, "OP_NIP", 1, opcodeNip}, + OP_OVER: {OP_OVER, "OP_OVER", 1, opcodeOver}, + OP_PICK: {OP_PICK, "OP_PICK", 1, opcodePick}, + OP_ROLL: {OP_ROLL, "OP_ROLL", 1, opcodeRoll}, + OP_ROT: {OP_ROT, "OP_ROT", 1, opcodeRot}, + OP_SWAP: {OP_SWAP, "OP_SWAP", 1, opcodeSwap}, + OP_TUCK: {OP_TUCK, "OP_TUCK", 1, opcodeTuck}, - opfunc: opcodeCheckMultiSigVerify}, - OP_NOP1: {value: OP_NOP1, name: "OP_NOP1", length: 1, - opfunc: opcodeNop}, - OP_NOP2: {value: OP_NOP2, name: "OP_NOP2", length: 1, - opfunc: opcodeNop}, - OP_NOP3: {value: OP_NOP3, name: "OP_NOP3", length: 1, - opfunc: opcodeNop}, - OP_NOP4: {value: OP_NOP4, name: "OP_NOP4", length: 1, - opfunc: opcodeNop}, - OP_NOP5: {value: OP_NOP5, name: "OP_NOP5", length: 1, - opfunc: opcodeNop}, - OP_NOP6: {value: OP_NOP6, name: "OP_NOP6", length: 1, - opfunc: opcodeNop}, - OP_NOP7: {value: OP_NOP7, name: "OP_NOP7", length: 1, - opfunc: opcodeNop}, - OP_NOP8: {value: OP_NOP8, name: "OP_NOP8", length: 1, - opfunc: opcodeNop}, - OP_NOP9: {value: OP_NOP9, name: "OP_NOP9", length: 1, - opfunc: opcodeNop}, - OP_NOP10: {value: OP_NOP10, name: "OP_NOP10", length: 1, - opfunc: opcodeNop}, - OP_UNKNOWN186: {value: OP_UNKNOWN186, name: "OP_UNKNOWN186", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN187: {value: OP_UNKNOWN187, name: "OP_UNKNOWN187", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN188: {value: OP_UNKNOWN188, name: "OP_UNKNOWN188", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN189: {value: OP_UNKNOWN189, name: "OP_UNKNOWN189", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN190: {value: OP_UNKNOWN190, name: "OP_UNKNOWN190", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN191: {value: OP_UNKNOWN191, name: "OP_UNKNOWN191", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN192: {value: OP_UNKNOWN192, name: "OP_UNKNOWN192", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN193: {value: OP_UNKNOWN193, name: "OP_UNKNOWN193", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN194: {value: OP_UNKNOWN194, name: "OP_UNKNOWN194", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN195: {value: OP_UNKNOWN195, name: "OP_UNKNOWN195", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN196: {value: OP_UNKNOWN196, name: "OP_UNKNOWN196", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN197: {value: OP_UNKNOWN197, name: "OP_UNKNOWN197", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN198: {value: OP_UNKNOWN198, name: "OP_UNKNOWN198", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN199: {value: OP_UNKNOWN199, name: "OP_UNKNOWN199", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN200: {value: OP_UNKNOWN200, name: "OP_UNKNOWN200", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN201: {value: OP_UNKNOWN201, name: "OP_UNKNOWN201", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN202: {value: OP_UNKNOWN202, name: "OP_UNKNOWN202", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN203: {value: OP_UNKNOWN203, name: "OP_UNKNOWN203", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN204: {value: OP_UNKNOWN204, name: "OP_UNKNOWN204", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN205: {value: OP_UNKNOWN205, name: "OP_UNKNOWN205", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN206: {value: OP_UNKNOWN206, name: "OP_UNKNOWN206", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN207: {value: OP_UNKNOWN207, name: "OP_UNKNOWN207", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN208: {value: OP_UNKNOWN208, name: "OP_UNKNOWN208", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN209: {value: OP_UNKNOWN209, name: "OP_UNKNOWN209", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN210: {value: OP_UNKNOWN210, name: "OP_UNKNOWN210", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN211: {value: OP_UNKNOWN211, name: "OP_UNKNOWN211", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN212: {value: OP_UNKNOWN212, name: "OP_UNKNOWN212", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN213: {value: OP_UNKNOWN213, name: "OP_UNKNOWN213", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN214: {value: OP_UNKNOWN214, name: "OP_UNKNOWN214", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN215: {value: OP_UNKNOWN215, name: "OP_UNKNOWN215", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN216: {value: OP_UNKNOWN216, name: "OP_UNKNOWN216", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN217: {value: OP_UNKNOWN217, name: "OP_UNKNOWN217", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN218: {value: OP_UNKNOWN218, name: "OP_UNKNOWN218", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN219: {value: OP_UNKNOWN219, name: "OP_UNKNOWN219", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN220: {value: OP_UNKNOWN220, name: "OP_UNKNOWN220", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN221: {value: OP_UNKNOWN221, name: "OP_UNKNOWN221", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN222: {value: OP_UNKNOWN222, name: "OP_UNKNOWN222", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN223: {value: OP_UNKNOWN223, name: "OP_UNKNOWN223", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN224: {value: OP_UNKNOWN224, name: "OP_UNKNOWN224", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN225: {value: OP_UNKNOWN225, name: "OP_UNKNOWN225", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN226: {value: OP_UNKNOWN226, name: "OP_UNKNOWN226", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN227: {value: OP_UNKNOWN227, name: "OP_UNKNOWN227", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN228: {value: OP_UNKNOWN228, name: "OP_UNKNOWN228", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN229: {value: OP_UNKNOWN229, name: "OP_UNKNOWN229", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN230: {value: OP_UNKNOWN230, name: "OP_UNKNOWN230", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN231: {value: OP_UNKNOWN231, name: "OP_UNKNOWN231", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN232: {value: OP_UNKNOWN232, name: "OP_UNKNOWN232", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN233: {value: OP_UNKNOWN233, name: "OP_UNKNOWN233", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN234: {value: OP_UNKNOWN234, name: "OP_UNKNOWN234", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN235: {value: OP_UNKNOWN235, name: "OP_UNKNOWN235", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN236: {value: OP_UNKNOWN236, name: "OP_UNKNOWN236", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN237: {value: OP_UNKNOWN237, name: "OP_UNKNOWN237", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN238: {value: OP_UNKNOWN238, name: "OP_UNKNOWN238", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN239: {value: OP_UNKNOWN239, name: "OP_UNKNOWN239", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN240: {value: OP_UNKNOWN240, name: "OP_UNKNOWN240", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN241: {value: OP_UNKNOWN241, name: "OP_UNKNOWN241", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN242: {value: OP_UNKNOWN242, name: "OP_UNKNOWN242", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN243: {value: OP_UNKNOWN243, name: "OP_UNKNOWN243", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN244: {value: OP_UNKNOWN244, name: "OP_UNKNOWN244", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN245: {value: OP_UNKNOWN245, name: "OP_UNKNOWN245", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN246: {value: OP_UNKNOWN246, name: "OP_UNKNOWN246", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN247: {value: OP_UNKNOWN247, name: "OP_UNKNOWN247", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN248: {value: OP_UNKNOWN248, name: "OP_UNKNOWN248", length: 1, - opfunc: opcodeInvalid}, - OP_SMALLDATA: {value: OP_SMALLDATA, name: "OP_SMALLDATA", length: 1, - opfunc: opcodeInvalid}, - OP_SMALLINTEGER: {value: OP_SMALLINTEGER, name: "OP_SMALLINTEGER", - length: 1, opfunc: opcodeInvalid}, - OP_PUBKEYS: {value: OP_PUBKEYS, name: "OP_PUBKEYS", length: 1, - opfunc: opcodeInvalid}, - OP_UNKNOWN252: {value: OP_UNKNOWN252, name: "OP_UNKNOWN252", length: 1, - opfunc: opcodeInvalid}, - OP_PUBKEYHASH: {value: OP_PUBKEYHASH, name: "OP_PUBKEYHASH", length: 1, - opfunc: opcodeInvalid}, - OP_PUBKEY: {value: OP_PUBKEY, name: "OP_PUBKEY", length: 1, - opfunc: opcodeInvalid}, - OP_INVALIDOPCODE: {value: OP_INVALIDOPCODE, name: "OP_INVALIDOPCODE", - length: 1, opfunc: opcodeInvalid}, + // Splice opcodes. + OP_CAT: {OP_CAT, "OP_CAT", 1, opcodeDisabled}, + OP_SUBSTR: {OP_SUBSTR, "OP_SUBSTR", 1, opcodeDisabled}, + OP_LEFT: {OP_LEFT, "OP_LEFT", 1, opcodeDisabled}, + OP_RIGHT: {OP_RIGHT, "OP_RIGHT", 1, opcodeDisabled}, + OP_SIZE: {OP_SIZE, "OP_SIZE", 1, opcodeSize}, + + // Bitwise logic opcodes. + OP_INVERT: {OP_INVERT, "OP_INVERT", 1, opcodeDisabled}, + OP_AND: {OP_AND, "OP_AND", 1, opcodeDisabled}, + OP_OR: {OP_OR, "OP_OR", 1, opcodeDisabled}, + OP_XOR: {OP_XOR, "OP_XOR", 1, opcodeDisabled}, + OP_EQUAL: {OP_EQUAL, "OP_EQUAL", 1, opcodeEqual}, + OP_EQUALVERIFY: {OP_EQUALVERIFY, "OP_EQUALVERIFY", 1, opcodeEqualVerify}, + OP_RESERVED1: {OP_RESERVED1, "OP_RESERVED1", 1, opcodeReserved}, + OP_RESERVED2: {OP_RESERVED2, "OP_RESERVED2", 1, opcodeReserved}, + + // Numeric related opcodes. + OP_1ADD: {OP_1ADD, "OP_1ADD", 1, opcode1Add}, + OP_1SUB: {OP_1SUB, "OP_1SUB", 1, opcode1Sub}, + OP_2MUL: {OP_2MUL, "OP_2MUL", 1, opcodeDisabled}, + OP_2DIV: {OP_2DIV, "OP_2DIV", 1, opcodeDisabled}, + OP_NEGATE: {OP_NEGATE, "OP_NEGATE", 1, opcodeNegate}, + OP_ABS: {OP_ABS, "OP_ABS", 1, opcodeAbs}, + OP_NOT: {OP_NOT, "OP_NOT", 1, opcodeNot}, + OP_0NOTEQUAL: {OP_0NOTEQUAL, "OP_0NOTEQUAL", 1, opcode0NotEqual}, + OP_ADD: {OP_ADD, "OP_ADD", 1, opcodeAdd}, + OP_SUB: {OP_SUB, "OP_SUB", 1, opcodeSub}, + OP_MUL: {OP_MUL, "OP_MUL", 1, opcodeDisabled}, + OP_DIV: {OP_DIV, "OP_DIV", 1, opcodeDisabled}, + OP_MOD: {OP_MOD, "OP_MOD", 1, opcodeDisabled}, + OP_LSHIFT: {OP_LSHIFT, "OP_LSHIFT", 1, opcodeDisabled}, + OP_RSHIFT: {OP_RSHIFT, "OP_RSHIFT", 1, opcodeDisabled}, + OP_BOOLAND: {OP_BOOLAND, "OP_BOOLAND", 1, opcodeBoolAnd}, + OP_BOOLOR: {OP_BOOLOR, "OP_BOOLOR", 1, opcodeBoolOr}, + OP_NUMEQUAL: {OP_NUMEQUAL, "OP_NUMEQUAL", 1, opcodeNumEqual}, + OP_NUMEQUALVERIFY: {OP_NUMEQUALVERIFY, "OP_NUMEQUALVERIFY", 1, opcodeNumEqualVerify}, + OP_NUMNOTEQUAL: {OP_NUMNOTEQUAL, "OP_NUMNOTEQUAL", 1, opcodeNumNotEqual}, + OP_LESSTHAN: {OP_LESSTHAN, "OP_LESSTHAN", 1, opcodeLessThan}, + OP_GREATERTHAN: {OP_GREATERTHAN, "OP_GREATERTHAN", 1, opcodeGreaterThan}, + OP_LESSTHANOREQUAL: {OP_LESSTHANOREQUAL, "OP_LESSTHANOREQUAL", 1, opcodeLessThanOrEqual}, + OP_GREATERTHANOREQUAL: {OP_GREATERTHANOREQUAL, "OP_GREATERTHANOREQUAL", 1, opcodeGreaterThanOrEqual}, + OP_MIN: {OP_MIN, "OP_MIN", 1, opcodeMin}, + OP_MAX: {OP_MAX, "OP_MAX", 1, opcodeMax}, + OP_WITHIN: {OP_WITHIN, "OP_WITHIN", 1, opcodeWithin}, + + // Crypto opcodes. + OP_RIPEMD160: {OP_RIPEMD160, "OP_RIPEMD160", 1, opcodeRipemd160}, + OP_SHA1: {OP_SHA1, "OP_SHA1", 1, opcodeSha1}, + OP_SHA256: {OP_SHA256, "OP_SHA256", 1, opcodeSha256}, + OP_HASH160: {OP_HASH160, "OP_HASH160", 1, opcodeHash160}, + OP_HASH256: {OP_HASH256, "OP_HASH256", 1, opcodeHash256}, + OP_CODESEPARATOR: {OP_CODESEPARATOR, "OP_CODESEPARATOR", 1, opcodeCodeSeparator}, + OP_CHECKSIG: {OP_CHECKSIG, "OP_CHECKSIG", 1, opcodeCheckSig}, + OP_CHECKSIGVERIFY: {OP_CHECKSIGVERIFY, "OP_CHECKSIGVERIFY", 1, opcodeCheckSigVerify}, + OP_CHECKMULTISIG: {OP_CHECKMULTISIG, "OP_CHECKMULTISIG", 1, opcodeCheckMultiSig}, + OP_CHECKMULTISIGVERIFY: {OP_CHECKMULTISIGVERIFY, "OP_CHECKMULTISIGVERIFY", 1, opcodeCheckMultiSigVerify}, + + // Reserved opcodes. + OP_NOP1: {OP_NOP1, "OP_NOP1", 1, opcodeNop}, + OP_NOP2: {OP_NOP2, "OP_NOP2", 1, opcodeNop}, + OP_NOP3: {OP_NOP3, "OP_NOP3", 1, opcodeNop}, + OP_NOP4: {OP_NOP4, "OP_NOP4", 1, opcodeNop}, + OP_NOP5: {OP_NOP5, "OP_NOP5", 1, opcodeNop}, + OP_NOP6: {OP_NOP6, "OP_NOP6", 1, opcodeNop}, + OP_NOP7: {OP_NOP7, "OP_NOP7", 1, opcodeNop}, + OP_NOP8: {OP_NOP8, "OP_NOP8", 1, opcodeNop}, + OP_NOP9: {OP_NOP9, "OP_NOP9", 1, opcodeNop}, + OP_NOP10: {OP_NOP10, "OP_NOP10", 1, opcodeNop}, + + // Undefined opcodes. + OP_UNKNOWN186: {OP_UNKNOWN186, "OP_UNKNOWN186", 1, opcodeInvalid}, + OP_UNKNOWN187: {OP_UNKNOWN187, "OP_UNKNOWN187", 1, opcodeInvalid}, + OP_UNKNOWN188: {OP_UNKNOWN188, "OP_UNKNOWN188", 1, opcodeInvalid}, + OP_UNKNOWN189: {OP_UNKNOWN189, "OP_UNKNOWN189", 1, opcodeInvalid}, + OP_UNKNOWN190: {OP_UNKNOWN190, "OP_UNKNOWN190", 1, opcodeInvalid}, + OP_UNKNOWN191: {OP_UNKNOWN191, "OP_UNKNOWN191", 1, opcodeInvalid}, + OP_UNKNOWN192: {OP_UNKNOWN192, "OP_UNKNOWN192", 1, opcodeInvalid}, + OP_UNKNOWN193: {OP_UNKNOWN193, "OP_UNKNOWN193", 1, opcodeInvalid}, + OP_UNKNOWN194: {OP_UNKNOWN194, "OP_UNKNOWN194", 1, opcodeInvalid}, + OP_UNKNOWN195: {OP_UNKNOWN195, "OP_UNKNOWN195", 1, opcodeInvalid}, + OP_UNKNOWN196: {OP_UNKNOWN196, "OP_UNKNOWN196", 1, opcodeInvalid}, + OP_UNKNOWN197: {OP_UNKNOWN197, "OP_UNKNOWN197", 1, opcodeInvalid}, + OP_UNKNOWN198: {OP_UNKNOWN198, "OP_UNKNOWN198", 1, opcodeInvalid}, + OP_UNKNOWN199: {OP_UNKNOWN199, "OP_UNKNOWN199", 1, opcodeInvalid}, + OP_UNKNOWN200: {OP_UNKNOWN200, "OP_UNKNOWN200", 1, opcodeInvalid}, + OP_UNKNOWN201: {OP_UNKNOWN201, "OP_UNKNOWN201", 1, opcodeInvalid}, + OP_UNKNOWN202: {OP_UNKNOWN202, "OP_UNKNOWN202", 1, opcodeInvalid}, + OP_UNKNOWN203: {OP_UNKNOWN203, "OP_UNKNOWN203", 1, opcodeInvalid}, + OP_UNKNOWN204: {OP_UNKNOWN204, "OP_UNKNOWN204", 1, opcodeInvalid}, + OP_UNKNOWN205: {OP_UNKNOWN205, "OP_UNKNOWN205", 1, opcodeInvalid}, + OP_UNKNOWN206: {OP_UNKNOWN206, "OP_UNKNOWN206", 1, opcodeInvalid}, + OP_UNKNOWN207: {OP_UNKNOWN207, "OP_UNKNOWN207", 1, opcodeInvalid}, + OP_UNKNOWN208: {OP_UNKNOWN208, "OP_UNKNOWN208", 1, opcodeInvalid}, + OP_UNKNOWN209: {OP_UNKNOWN209, "OP_UNKNOWN209", 1, opcodeInvalid}, + OP_UNKNOWN210: {OP_UNKNOWN210, "OP_UNKNOWN210", 1, opcodeInvalid}, + OP_UNKNOWN211: {OP_UNKNOWN211, "OP_UNKNOWN211", 1, opcodeInvalid}, + OP_UNKNOWN212: {OP_UNKNOWN212, "OP_UNKNOWN212", 1, opcodeInvalid}, + OP_UNKNOWN213: {OP_UNKNOWN213, "OP_UNKNOWN213", 1, opcodeInvalid}, + OP_UNKNOWN214: {OP_UNKNOWN214, "OP_UNKNOWN214", 1, opcodeInvalid}, + OP_UNKNOWN215: {OP_UNKNOWN215, "OP_UNKNOWN215", 1, opcodeInvalid}, + OP_UNKNOWN216: {OP_UNKNOWN216, "OP_UNKNOWN216", 1, opcodeInvalid}, + OP_UNKNOWN217: {OP_UNKNOWN217, "OP_UNKNOWN217", 1, opcodeInvalid}, + OP_UNKNOWN218: {OP_UNKNOWN218, "OP_UNKNOWN218", 1, opcodeInvalid}, + OP_UNKNOWN219: {OP_UNKNOWN219, "OP_UNKNOWN219", 1, opcodeInvalid}, + OP_UNKNOWN220: {OP_UNKNOWN220, "OP_UNKNOWN220", 1, opcodeInvalid}, + OP_UNKNOWN221: {OP_UNKNOWN221, "OP_UNKNOWN221", 1, opcodeInvalid}, + OP_UNKNOWN222: {OP_UNKNOWN222, "OP_UNKNOWN222", 1, opcodeInvalid}, + OP_UNKNOWN223: {OP_UNKNOWN223, "OP_UNKNOWN223", 1, opcodeInvalid}, + OP_UNKNOWN224: {OP_UNKNOWN224, "OP_UNKNOWN224", 1, opcodeInvalid}, + OP_UNKNOWN225: {OP_UNKNOWN225, "OP_UNKNOWN225", 1, opcodeInvalid}, + OP_UNKNOWN226: {OP_UNKNOWN226, "OP_UNKNOWN226", 1, opcodeInvalid}, + OP_UNKNOWN227: {OP_UNKNOWN227, "OP_UNKNOWN227", 1, opcodeInvalid}, + OP_UNKNOWN228: {OP_UNKNOWN228, "OP_UNKNOWN228", 1, opcodeInvalid}, + OP_UNKNOWN229: {OP_UNKNOWN229, "OP_UNKNOWN229", 1, opcodeInvalid}, + OP_UNKNOWN230: {OP_UNKNOWN230, "OP_UNKNOWN230", 1, opcodeInvalid}, + OP_UNKNOWN231: {OP_UNKNOWN231, "OP_UNKNOWN231", 1, opcodeInvalid}, + OP_UNKNOWN232: {OP_UNKNOWN232, "OP_UNKNOWN232", 1, opcodeInvalid}, + OP_UNKNOWN233: {OP_UNKNOWN233, "OP_UNKNOWN233", 1, opcodeInvalid}, + OP_UNKNOWN234: {OP_UNKNOWN234, "OP_UNKNOWN234", 1, opcodeInvalid}, + OP_UNKNOWN235: {OP_UNKNOWN235, "OP_UNKNOWN235", 1, opcodeInvalid}, + OP_UNKNOWN236: {OP_UNKNOWN236, "OP_UNKNOWN236", 1, opcodeInvalid}, + OP_UNKNOWN237: {OP_UNKNOWN237, "OP_UNKNOWN237", 1, opcodeInvalid}, + OP_UNKNOWN238: {OP_UNKNOWN238, "OP_UNKNOWN238", 1, opcodeInvalid}, + OP_UNKNOWN239: {OP_UNKNOWN239, "OP_UNKNOWN239", 1, opcodeInvalid}, + OP_UNKNOWN240: {OP_UNKNOWN240, "OP_UNKNOWN240", 1, opcodeInvalid}, + OP_UNKNOWN241: {OP_UNKNOWN241, "OP_UNKNOWN241", 1, opcodeInvalid}, + OP_UNKNOWN242: {OP_UNKNOWN242, "OP_UNKNOWN242", 1, opcodeInvalid}, + OP_UNKNOWN243: {OP_UNKNOWN243, "OP_UNKNOWN243", 1, opcodeInvalid}, + OP_UNKNOWN244: {OP_UNKNOWN244, "OP_UNKNOWN244", 1, opcodeInvalid}, + OP_UNKNOWN245: {OP_UNKNOWN245, "OP_UNKNOWN245", 1, opcodeInvalid}, + OP_UNKNOWN246: {OP_UNKNOWN246, "OP_UNKNOWN246", 1, opcodeInvalid}, + OP_UNKNOWN247: {OP_UNKNOWN247, "OP_UNKNOWN247", 1, opcodeInvalid}, + OP_UNKNOWN248: {OP_UNKNOWN248, "OP_UNKNOWN248", 1, opcodeInvalid}, + + // Bitcoin Core internal use opcode. Defined here for completeness. + OP_SMALLDATA: {OP_SMALLDATA, "OP_SMALLDATA", 1, opcodeInvalid}, + OP_SMALLINTEGER: {OP_SMALLINTEGER, "OP_SMALLINTEGER", 1, opcodeInvalid}, + OP_PUBKEYS: {OP_PUBKEYS, "OP_PUBKEYS", 1, opcodeInvalid}, + OP_UNKNOWN252: {OP_UNKNOWN252, "OP_UNKNOWN252", 1, opcodeInvalid}, + OP_PUBKEYHASH: {OP_PUBKEYHASH, "OP_PUBKEYHASH", 1, opcodeInvalid}, + OP_PUBKEY: {OP_PUBKEY, "OP_PUBKEY", 1, opcodeInvalid}, + + OP_INVALIDOPCODE: {OP_INVALIDOPCODE, "OP_INVALIDOPCODE", 1, opcodeInvalid}, } // opcodeOnelineRepls defines opcode names which are replaced when doing a @@ -1132,8 +884,8 @@ func opcodeNop(op *parsedOpcode, vm *Engine) error { case OP_NOP1, OP_NOP2, OP_NOP3, OP_NOP4, OP_NOP5, OP_NOP6, OP_NOP7, OP_NOP8, OP_NOP9, OP_NOP10: if vm.hasFlag(ScriptDiscourageUpgradableNops) { - return fmt.Errorf("%s reserved for soft-fork upgrades", - opcodemap[op.opcode.value].name) + return fmt.Errorf("OP_NOP%d reserved for soft-fork "+ + "upgrades", op.opcode.value-OP_NOP1+1) } } return nil diff --git a/txscript/reference_test.go b/txscript/reference_test.go index e158406c3..65704af2f 100644 --- a/txscript/reference_test.go +++ b/txscript/reference_test.go @@ -56,7 +56,8 @@ func parseShortForm(script string) ([]byte, error) { // 0x14 is OP_DATA_20) // - single quoted strings are pushed as data. // - anything else is an error. - for _, op := range opcodemap { + for i := range opcodeArray { + op := &opcodeArray[i] if op.value < OP_NOP && op.value != OP_RESERVED { continue } diff --git a/txscript/script.go b/txscript/script.go index b6302d90a..27ec93001 100644 --- a/txscript/script.go +++ b/txscript/script.go @@ -264,21 +264,18 @@ func typeOfScript(pops []parsedOpcode) ScriptClass { // parseScript preparses the script in bytes into a list of parsedOpcodes while // applying a number of sanity checks. func parseScript(script []byte) ([]parsedOpcode, error) { - return parseScriptTemplate(script, opcodemap) + return parseScriptTemplate(script, &opcodeArray) } // parseScriptTemplate is the same as parseScript but allows the passing of the // template list for testing purposes. On error we return the list of parsed // opcodes so far. -func parseScriptTemplate(script []byte, opcodemap map[byte]*opcode) ([]parsedOpcode, error) { +func parseScriptTemplate(script []byte, opcodes *[256]opcode) ([]parsedOpcode, error) { retScript := make([]parsedOpcode, 0, len(script)) for i := 0; i < len(script); { instr := script[i] - op, ok := opcodemap[instr] - if !ok { - return retScript, ErrStackInvalidOpcode - } - pop := parsedOpcode{opcode: op} + op := opcodes[instr] + pop := parsedOpcode{opcode: &op} // parse data out of instruction. switch { case op.length == 1: