diff --git a/src/test/data/script_tests.json b/src/test/data/script_tests.json --- a/src/test/data/script_tests.json +++ b/src/test/data/script_tests.json @@ -3218,6 +3218,20 @@ "BITFIELD_SIZE", "CHECKMULTISIG 2-of-8 Schnorr, wrong way to represent 0b10000001" ], +[ + "0x01 0x20 0x41 0xa07b665bb4c5385afb0b0369ee675c5e890c9b9b63962aea5d9fcaeb0fc427e1c13b76baff5bedcf90f61070b3c62b976ffeaf4c6701ee37ae764a1e171b8afc01", + "1 -1 -1 -1 -1 -1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 -1 7 CHECKMULTISIG", + "MINIMALDATA,NULLFAIL,SCHNORR_MULTISIG,STRICTENC", + "OK", + "CHECKMULTISIG 1-of-7 Schnorr, second-to-last key" +], +[ + "0x02 0x0004 0x41 0x9d831f1ffb45eb4578098e9df80374e4c9172aa99fe3d7bb226feafa5ba280ed2e02834aeef31ee91d12e84afb2701ae6f88821be008741b2c689a779ff3276101", + "1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 -1 -1 13 CHECKMULTISIG", + "MINIMALDATA,NULLFAIL,SCHNORR_MULTISIG,STRICTENC", + "OK", + "CHECKMULTISIG 1-of-13 Schnorr, third-to-last key" +], [ "0x03 0xffff0f 0x41 0x5f4f7ffff1fa44347dbc148d51fe661b60fbc44b5abe22a04d97ecfb891bdb2568eb91aa38a426dfd7b82e0b45b57af6f3e56143fabc850ebfdfcf6a0d03c4b001 0x41 0x28add881f6fa489a9016f066022ed80acecbafc351a6d17025cf87bf2b0d9b09f6d001f5df2b1be0d1909a8fe9280b59b5a8cb6d1e37425e733ff3267ce1e1b401 0x41 0x9f66f20bca4a64fc3cc170c3e1ef2bcb62f86b719b2f8e7154407e9210fde99164d754f787bf65020dc7db3838c8aae3591eaf465f45433fcb3d0a94bea4090401", "OVER DUP DUP 2DUP 3DUP 3DUP 3DUP 3DUP 0x01 0x14 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 OVER DUP DUP 2DUP 3DUP 3DUP 3DUP 3DUP 0x01 0x14 CHECKMULTISIG", diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -36,7 +36,7 @@ #include // Uncomment if you want to output updated JSON tests. -#define UPDATE_JSON_TESTS +// #define UPDATE_JSON_TESTS static const uint32_t gFlags = SCRIPT_VERIFY_P2SH | SCRIPT_VERIFY_STRICTENC; @@ -2042,6 +2042,22 @@ .PushSigSchnorr(keys.key0) .PushSigSchnorr(keys.key2) .SetScriptError(ScriptError::INVALID_BITFIELD_SIZE)); + tests.push_back( + TestBuilder(CScript() << OP_1 << -1 << -1 << -1 << -1 << -1 + << ToByteVector(keys.pubkey0C) << -1 << 7 + << OP_CHECKMULTISIG, + "CHECKMULTISIG 1-of-7 Schnorr, second-to-last key", + newmultisigflags) + .Push("20") + .PushSigSchnorr(keys.key0)); + tests.push_back( + TestBuilder(CScript() << OP_1 << -1 << -1 << -1 << -1 << -1 << -1 << -1 + << -1 << -1 << -1 << ToByteVector(keys.pubkey0C) + << -1 << -1 << 13 << OP_CHECKMULTISIG, + "CHECKMULTISIG 1-of-13 Schnorr, third-to-last key", + newmultisigflags) + .Push("0004") + .PushSigSchnorr(keys.key0)); tests.push_back( TestBuilder(CScript() << OP_OVER << OP_DUP << OP_DUP << OP_2DUP << OP_3DUP