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" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Valid Segwit Recovery with v0 P2SH-P2WPKH" | ||||
], | ], | ||||
[ | [ | ||||
"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 Segwit Recovery with extra stack item" | ||||
], | ], | ||||
[ | [ | ||||
"0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | "0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", | ||||
"HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | "HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", | ||||
"CLEANSTACK,P2SH", | "CLEANSTACK,DISALLOW_SEGWIT_RECOVERY,P2SH", | ||||
"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" | "Valid Segwit Recovery with v0 P2SH-P2WSH" | ||||
], | ], | ||||
[ | [ | ||||
"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 Segwit Recovery with extra stack item" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with invalid witness program (too short)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with valid witness program (min allowed length)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with valid witness program (max allowed length)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with invalid witness program (too long)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with valid witness program (max allowed version)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with invalid witness program (invalid version -1)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with invalid witness program (invalid version 17)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with invalid witness program (more than 2 stack items)" | ||||
], | ], | ||||
[ | [ | ||||
"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)" | ||||
], | ], | ||||
[ | [ | ||||
"0x04 0x00020000", | |||||
"HASH160 0x14 0x0e01bcfe7c6f3fd2fd8f81092299369744684733 EQUAL", | |||||
"CLEANSTACK,DISALLOW_SEGWIT_RECOVERY,P2SH", | |||||
"EVAL_FALSE", | |||||
"Otherwise valid segwit recovery, in spite of false value being left on stack (0), but with SCRIPT_DISALLOW_SEGWIT_RECOVERY" | |||||
], | |||||
[ | |||||
"0x04 0x00020080", | |||||
"HASH160 0x14 0x10ddc638cb26615f867dad80efacced9e73766bc EQUAL", | |||||
"CLEANSTACK,DISALLOW_SEGWIT_RECOVERY,P2SH", | |||||
"EVAL_FALSE", | |||||
"Otherwise valid segwit recovery, in spite of false value being left on stack (minus 0), but with SCRIPT_DISALLOW_SEGWIT_RECOVERY" | |||||
], | |||||
[ | |||||
"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" | "Segwit Recovery with invalid witness program (OP_RESERVED in version field)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with invalid witness program (non-minimal push in version field)" | ||||
], | ], | ||||
[ | [ | ||||
"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" | "Segwit Recovery with invalid witness program (non-minimal push in program field)" | ||||
], | ], | ||||
[ | [ | ||||
"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 Segwit Recovery whose redeem script hash does not match P2SH output" | ||||
], | ], | ||||
[ | [ | ||||
"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 Segwit Recovery spending a non-P2SH output" | ||||
], | ], | ||||
["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", | ||||
▲ Show 20 Lines • Show All 59 Lines • Show Last 20 Lines |