Changeset View
Changeset View
Standalone View
Standalone View
src/test/data/script_tests.json
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 3,256 Lines • ▼ Show 20 Lines | [ | ||||
"0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", | "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", | ||||
"SCHNORR,SIGHASH_FORKID,STRICTENC", | "SCHNORR,SIGHASH_FORKID,STRICTENC", | ||||
"EVAL_FALSE", | "EVAL_FALSE", | ||||
"Schnorr P2PK with cheater forkID bit" | "Schnorr P2PK with cheater forkID bit" | ||||
], | ], | ||||
[ | [ | ||||
"0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | "0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | ||||
"HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", | "HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", | ||||
"CLEANSTACK,P2SH", | "CLEANSTACK,DISALLOW_SEGWIT_RECOVERY,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"v0 P2SH-P2WPKH but no SCRIPT_ALLOW_SEGWIT_RECOVERY" | "v0 P2SH-P2WPKH with SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
Mengerian: @deadalnix This tests the "disabled" case.. | |||||
], | ], | ||||
[ | [ | ||||
"0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | "0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | ||||
"HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", | "HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"OK", | "OK", | ||||
"v0 P2SH-P2WPKH with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "v0 P2SH-P2WPKH without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0 0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | "0 0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | ||||
"HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", | "HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"v0 P2SH-P2WPKH with extra stack item and SCRIPT_ALLOW_SEGWIT_RECOVERY" | "v0 P2SH-P2WPKH with extra stack item and without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | "0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | ||||
"HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | "HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | ||||
"CLEANSTACK,P2SH", | "CLEANSTACK,DISALLOW_SEGWIT_RECOVERY,P2SH", | ||||
MengerianAuthorUnsubmitted Done Inline ActionsAnd this also test the disabled case. Mengerian: And this also test the disabled case. | |||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"v0 P2SH-P2WSH but no SCRIPT_ALLOW_SEGWIT_RECOVERY" | "v0 P2SH-P2WSH with SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | "0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | ||||
"HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | "HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"OK", | "OK", | ||||
"v0 P2SH-P2WSH with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "v0 P2SH-P2WSH without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0 0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | "0 0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | ||||
"HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | "HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"v0 P2SH-P2WSH with extra stack item and SCRIPT_ALLOW_SEGWIT_RECOVERY" | "v0 P2SH-P2WSH with extra stack item and without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x03 0x00015a", | "0x03 0x00015a", | ||||
"HASH160 0x14 0x40b6941895022d458de8f4bbfe27f3aaa4fb9a74 EQUAL", | "HASH160 0x14 0x40b6941895022d458de8f4bbfe27f3aaa4fb9a74 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"Invalid witness program (too short) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Invalid witness program (too short) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x04 0x00025a01", | "0x04 0x00025a01", | ||||
"HASH160 0x14 0x86123d8e050333a605e434ecf73128d83815b36f EQUAL", | "HASH160 0x14 0x86123d8e050333a605e434ecf73128d83815b36f EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"OK", | "OK", | ||||
"Valid witness program (min allowed length) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Valid witness program (min allowed length) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x2a 0x00285a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627", | "0x2a 0x00285a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627", | ||||
"HASH160 0x14 0xdf7b93f88e83471b479fb219ae90e5b633d6b750 EQUAL", | "HASH160 0x14 0xdf7b93f88e83471b479fb219ae90e5b633d6b750 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"OK", | "OK", | ||||
"Valid witness program (max allowed length) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Valid witness program (max allowed length) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x2b 0x00295a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728", | "0x2b 0x00295a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728", | ||||
"HASH160 0x14 0x13aa4fcfd630508e0794dca320cac172c5790aea EQUAL", | "HASH160 0x14 0x13aa4fcfd630508e0794dca320cac172c5790aea EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"Invalid witness program (too long) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Invalid witness program (too long) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x22 0x60205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | "0x22 0x60205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | ||||
"HASH160 0x14 0x9b0c7017004d3818b7c833ddb3cb5547a22034d0 EQUAL", | "HASH160 0x14 0x9b0c7017004d3818b7c833ddb3cb5547a22034d0 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"OK", | "OK", | ||||
"Valid witness program (max allowed version) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Valid witness program (max allowed version) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x22 0x4f205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | "0x22 0x4f205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | ||||
"HASH160 0x14 0x97aa1e96e49ca6d744d7344f649dd9f94bcc35eb EQUAL", | "HASH160 0x14 0x97aa1e96e49ca6d744d7344f649dd9f94bcc35eb EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"Invalid witness program (invalid version -1) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Invalid witness program (invalid version -1) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x23 0x0111205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | "0x23 0x0111205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | ||||
"HASH160 0x14 0x4b5321beb1c09f593ff3c02be4af21c7f949e101 EQUAL", | "HASH160 0x14 0x4b5321beb1c09f593ff3c02be4af21c7f949e101 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"Invalid witness program (invalid version 17) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Invalid witness program (invalid version 17) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x23 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f51", | "0x23 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f51", | ||||
"HASH160 0x14 0x8eb812176c9e71732584123dd06d3246e659b199 EQUAL", | "HASH160 0x14 0x8eb812176c9e71732584123dd06d3246e659b199 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"Invalid witness program (more than 2 stack items) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Invalid witness program (more than 2 stack items) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x04 0x00020000", | "0x04 0x00020000", | ||||
"HASH160 0x14 0x0e01bcfe7c6f3fd2fd8f81092299369744684733 EQUAL", | "HASH160 0x14 0x0e01bcfe7c6f3fd2fd8f81092299369744684733 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"OK", | "OK", | ||||
"Valid segwit recovery, in spite of false value being left on stack (0)" | "Valid segwit recovery, in spite of false value being left on stack (0)" | ||||
], | ], | ||||
[ | [ | ||||
"0x04 0x00020080", | "0x04 0x00020080", | ||||
"HASH160 0x14 0x10ddc638cb26615f867dad80efacced9e73766bc EQUAL", | "HASH160 0x14 0x10ddc638cb26615f867dad80efacced9e73766bc EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"OK", | "OK", | ||||
"Valid segwit recovery, in spite of false value being left on stack (minus 0)" | "Valid segwit recovery, in spite of false value being left on stack (minus 0)" | ||||
], | ], | ||||
[ | [ | ||||
"0x22 0x50205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | "0x22 0x50205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | ||||
"HASH160 0x14 0xbe02794ceede051da41b420e88a86fff2802af06 EQUAL", | "HASH160 0x14 0xbe02794ceede051da41b420e88a86fff2802af06 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"BAD_OPCODE", | "BAD_OPCODE", | ||||
"Invalid witness program (OP_RESERVED in version field) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Invalid witness program (OP_RESERVED in version field) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x17 0x01001491b24bf9f5288532960ac687abb035127b1d28a5", | "0x17 0x01001491b24bf9f5288532960ac687abb035127b1d28a5", | ||||
"HASH160 0x14 0x0718743e67c1ef4911e0421f206c5ff81755718e EQUAL", | "HASH160 0x14 0x0718743e67c1ef4911e0421f206c5ff81755718e EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"Invalid witness program (non-minimal push in version field) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Invalid witness program (non-minimal push in version field) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x05 0x004c0245aa", | "0x05 0x004c0245aa", | ||||
"HASH160 0x14 0xd3ec673296c7fd7e1a9e53bfc36f414de303e905 EQUAL", | "HASH160 0x14 0xd3ec673296c7fd7e1a9e53bfc36f414de303e905 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"Invalid witness program (non-minimal push in program field) with SCRIPT_ALLOW_SEGWIT_RECOVERY" | "Invalid witness program (non-minimal push in program field) without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | "0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | ||||
"HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | "HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"EVAL_FALSE", | "EVAL_FALSE", | ||||
"v0 P2SH-P2WPKH whose redeem script hash does not match P2SH output and SCRIPT_ALLOW_SEGWIT_RECOVERY" | "v0 P2SH-P2WPKH whose redeem script hash does not match P2SH output, without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
[ | [ | ||||
"0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | "0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", | ||||
"1", | "1", | ||||
"ALLOW_SEGWIT_RECOVERY,CLEANSTACK,P2SH", | "CLEANSTACK,P2SH", | ||||
"CLEANSTACK", | "CLEANSTACK", | ||||
"v0 P2SH-P2WPKH spending a non-P2SH output and SCRIPT_ALLOW_SEGWIT_RECOVERY" | "v0 P2SH-P2WPKH spending a non-P2SH output, without SCRIPT_DISALLOW_SEGWIT_RECOVERY" | ||||
], | ], | ||||
deadalnixUnsubmitted Not Done Inline ActionsThere should be tests for the disallow case. Because right now, the flag is completely untested. deadalnix: There should be tests for the disallow case. Because right now, the flag is completely untested. | |||||
MengerianAuthorUnsubmitted Done Inline ActionsOK, I can add tests for the disallow case. Mengerian: OK, I can add tests for the disallow case. | |||||
["CHECKSEQUENCEVERIFY tests"], | ["CHECKSEQUENCEVERIFY tests"], | ||||
["", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "INVALID_STACK_OPERATION", "CSV automatically fails on an empty stack"], | ["", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "INVALID_STACK_OPERATION", "CSV automatically fails on an empty stack"], | ||||
["-1", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "NEGATIVE_LOCKTIME", "CSV automatically fails if stack top is negative"], | ["-1", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "NEGATIVE_LOCKTIME", "CSV automatically fails if stack top is negative"], | ||||
["0x0100", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY,MINIMALDATA", "UNKNOWN_ERROR", "CSV fails if stack top is not minimally encoded"], | ["0x0100", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY,MINIMALDATA", "UNKNOWN_ERROR", "CSV fails if stack top is not minimally encoded"], | ||||
["0", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "UNSATISFIED_LOCKTIME", "CSV fails if stack top bit 1 << 31 is set and the tx version < 2"], | ["0", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "UNSATISFIED_LOCKTIME", "CSV fails if stack top bit 1 << 31 is set and the tx version < 2"], | ||||
["4294967296", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "UNSATISFIED_LOCKTIME", | ["4294967296", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "UNSATISFIED_LOCKTIME", | ||||
"CSV fails if stack top bit 1 << 31 is not set, and tx version < 2"], | "CSV fails if stack top bit 1 << 31 is not set, and tx version < 2"], | ||||
▲ Show 20 Lines • Show All 58 Lines • Show Last 20 Lines |
@deadalnix This tests the "disabled" case..