diff --git a/src/consensus/tx_verify.cpp b/src/consensus/tx_verify.cpp --- a/src/consensus/tx_verify.cpp +++ b/src/consensus/tx_verify.cpp @@ -221,7 +221,7 @@ } } - if (GetSigOpCountWithoutP2SH(tx, SCRIPT_ENABLE_CHECKDATASIG) > + if (GetSigOpCountWithoutP2SH(tx, SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) > MAX_TX_SIGOPS_COUNT) { return state.DoS(100, false, REJECT_INVALID, "bad-txn-sigops"); } diff --git a/src/policy/policy.h b/src/policy/policy.h --- a/src/policy/policy.h +++ b/src/policy/policy.h @@ -86,7 +86,7 @@ SCRIPT_VERIFY_NULLDUMMY | SCRIPT_VERIFY_SIGPUSHONLY | SCRIPT_VERIFY_MINIMALDATA | SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS | SCRIPT_VERIFY_CLEANSTACK | SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY | - SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | SCRIPT_ENABLE_CHECKDATASIG; + SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; /** * For convenience, standard but not mandatory verify flags. diff --git a/src/script/script.cpp b/src/script/script.cpp --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -361,7 +361,7 @@ case OP_CHECKDATASIG: case OP_CHECKDATASIGVERIFY: - if (flags & SCRIPT_ENABLE_CHECKDATASIG) { + if (flags & SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) { n++; } break; diff --git a/src/script/script_flags.h b/src/script/script_flags.h --- a/src/script/script_flags.h +++ b/src/script/script_flags.h @@ -99,7 +99,7 @@ // OP_CHECKDATASIG(VERIFY) as always valid, this flag only affects sigops // counting. // - SCRIPT_ENABLE_CHECKDATASIG = (1U << 18), + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS = (1U << 18), // Are Schnorr signatures enabled for OP_CHECK(DATA)SIG(VERIFY) and // 65-byte signatures banned for OP_CHECKMULTISIG(VERIFY)? diff --git a/src/script/sigcache.cpp b/src/script/sigcache.cpp --- a/src/script/sigcache.cpp +++ b/src/script/sigcache.cpp @@ -29,7 +29,7 @@ SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | SCRIPT_VERIFY_MINIMALIF | SCRIPT_VERIFY_NULLFAIL | SCRIPT_VERIFY_COMPRESSED_PUBKEYTYPE | SCRIPT_ENABLE_SIGHASH_FORKID | SCRIPT_ENABLE_REPLAY_PROTECTION | - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ALLOW_SEGWIT_RECOVERY; + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ALLOW_SEGWIT_RECOVERY; /** * Valid signature cache, to avoid doing expensive ECDSA signature checking diff --git a/src/test/checkdatasig_tests.cpp b/src/test/checkdatasig_tests.cpp --- a/src/test/checkdatasig_tests.cpp +++ b/src/test/checkdatasig_tests.cpp @@ -67,11 +67,11 @@ const stacktype &expected) { for (uint32_t flags : flagset) { // The script executes as expected regardless of whether or not - // SCRIPT_ENABLE_CHECKDATASIG flag is passed. - CheckPass(flags & ~SCRIPT_ENABLE_CHECKDATASIG, original_stack, script, - expected); - CheckPass(flags | SCRIPT_ENABLE_CHECKDATASIG, original_stack, script, - expected); + // SCRIPT_VERIFY_CHECKDATASIG_SIGOPS flag is passed. + CheckPass(flags & ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, original_stack, + script, expected); + CheckPass(flags | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, original_stack, + script, expected); } } @@ -79,11 +79,11 @@ const CScript &script, ScriptError expected) { for (uint32_t flags : flagset) { // The script generates the proper error regardless of whether or not - // SCRIPT_ENABLE_CHECKDATASIG flag is passed. - CheckError(flags & ~SCRIPT_ENABLE_CHECKDATASIG, original_stack, script, - expected); - CheckError(flags | SCRIPT_ENABLE_CHECKDATASIG, original_stack, script, - expected); + // SCRIPT_VERIFY_CHECKDATASIG_SIGOPS flag is passed. + CheckError(flags & ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, original_stack, + script, expected); + CheckError(flags | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, original_stack, + script, expected); } } @@ -150,7 +150,7 @@ MMIXLinearCongruentialGenerator lcg; for (int i = 0; i < 4096; i++) { - uint32_t flags = lcg.next() | SCRIPT_ENABLE_CHECKDATASIG; + uint32_t flags = lcg.next() | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; if (flags & SCRIPT_VERIFY_STRICTENC) { // When strict encoding is enforced, hybrid keys are invalid. @@ -251,8 +251,10 @@ } BOOST_AUTO_TEST_CASE(checkdatasig_inclusion_in_standard_and_mandatory_flags) { - BOOST_CHECK(STANDARD_SCRIPT_VERIFY_FLAGS & SCRIPT_ENABLE_CHECKDATASIG); - BOOST_CHECK(!(MANDATORY_SCRIPT_VERIFY_FLAGS & SCRIPT_ENABLE_CHECKDATASIG)); + BOOST_CHECK(STANDARD_SCRIPT_VERIFY_FLAGS & + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS); + BOOST_CHECK( + !(MANDATORY_SCRIPT_VERIFY_FLAGS & SCRIPT_VERIFY_CHECKDATASIG_SIGOPS)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/schnorr_tests.cpp b/src/test/schnorr_tests.cpp --- a/src/test/schnorr_tests.cpp +++ b/src/test/schnorr_tests.cpp @@ -102,7 +102,7 @@ // The first lcg.next() call is still 0x00000000 though. MMIXLinearCongruentialGenerator lcg(1234); for (int i = 0; i < 4096; i++) { - uint32_t flags = lcg.next() | SCRIPT_ENABLE_CHECKDATASIG; + uint32_t flags = lcg.next() | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; const bool hasForkId = (flags & SCRIPT_ENABLE_SIGHASH_FORKID) != 0; const bool hasSchnorr = (flags & SCRIPT_ENABLE_SCHNORR) != 0; 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 @@ -1171,7 +1171,7 @@ // Test OP_CHECKDATASIG const uint32_t checkdatasigflags = SCRIPT_VERIFY_STRICTENC | SCRIPT_VERIFY_NULLFAIL | - SCRIPT_ENABLE_CHECKDATASIG; + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; tests.push_back( TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKDATASIG, @@ -1239,7 +1239,7 @@ TestBuilder(CScript() << ToByteVector(keys.pubkey0H) << OP_CHECKDATASIG << OP_NOT, "CHECKDATASIG with invalid hybrid pubkey but no STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {}) .DamagePush(10) .Num(0)); @@ -1329,7 +1329,7 @@ CScript() << ToByteVector(keys.pubkey0H) << OP_CHECKDATASIGVERIFY << OP_TRUE, "CHECKDATASIGVERIFY with invalid hybrid pubkey but no STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {}) .DamagePush(10) .Num(0) @@ -1393,7 +1393,7 @@ // Duplicated test OP_CHECKDATASIG with Schnorr flag on const uint32_t checkdatasigschnorrflags = SCRIPT_VERIFY_STRICTENC | SCRIPT_VERIFY_NULLFAIL | - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR; + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR; tests.push_back( TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKDATASIG, @@ -1464,7 +1464,7 @@ TestBuilder(CScript() << ToByteVector(keys.pubkey0H) << OP_CHECKDATASIG << OP_NOT, "CHECKDATASIG with invalid hybrid pubkey but no STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {}) .DamagePush(10) .Num(0)); @@ -1555,7 +1555,7 @@ CScript() << ToByteVector(keys.pubkey0H) << OP_CHECKDATASIGVERIFY << OP_TRUE, "CHECKDATASIGVERIFY with invalid hybrid pubkey but no STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {}) .DamagePush(10) .Num(0) @@ -1681,79 +1681,79 @@ TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr w/ neither STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigSchnorr(keys.key0, {}) .ScriptError(SCRIPT_ERR_EVAL_FALSE)); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG ECDSA w/ neither STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr w/ SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR) .PushDataSigSchnorr(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG ECDSA w/ SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr w/ STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_VERIFY_STRICTENC) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key0, {}) .ScriptError(SCRIPT_ERR_SIG_DER)); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG ECDSA w/ STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_VERIFY_STRICTENC) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_VERIFY_STRICTENC) .PushDataSigECDSA(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr w/ STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG ECDSA w/ STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigECDSA(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr other key", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG << OP_NOT, "CHECKDATASIG Schnorr mismatched key", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {})); tests.push_back(TestBuilder(CScript() << OP_1 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr other message", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {1})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIG << OP_NOT, "CHECKDATASIG Schnorr wrong message", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {1})); @@ -1763,65 +1763,65 @@ TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr w/ neither STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigSchnorr(keys.key0, {}) .ScriptError(SCRIPT_ERR_CHECKDATASIGVERIFY)); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY ECDSA w/ neither STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr w/ SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR) .PushDataSigSchnorr(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY ECDSA w/ SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr w/ STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_VERIFY_STRICTENC) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key0, {}) .ScriptError(SCRIPT_ERR_SIG_DER)); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY ECDSA w/ STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_VERIFY_STRICTENC) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_VERIFY_STRICTENC) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr w/ STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY ECDSA w/ STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigECDSA(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr other key", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr mismatched key", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {}) @@ -1829,14 +1829,14 @@ tests.push_back(TestBuilder(CScript() << OP_1 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr other message", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {1})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr wrong message", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {1}) diff --git a/src/test/scriptflags.cpp b/src/test/scriptflags.cpp --- a/src/test/scriptflags.cpp +++ b/src/test/scriptflags.cpp @@ -31,7 +31,7 @@ {"COMPRESSED_PUBKEYTYPE", SCRIPT_VERIFY_COMPRESSED_PUBKEYTYPE}, {"SIGHASH_FORKID", SCRIPT_ENABLE_SIGHASH_FORKID}, {"REPLAY_PROTECTION", SCRIPT_ENABLE_REPLAY_PROTECTION}, - {"CHECKDATASIG", SCRIPT_ENABLE_CHECKDATASIG}, + {"CHECKDATASIG", SCRIPT_VERIFY_CHECKDATASIG_SIGOPS}, {"SCHNORR", SCRIPT_ENABLE_SCHNORR}, {"ALLOW_SEGWIT_RECOVERY", SCRIPT_ALLOW_SEGWIT_RECOVERY}, }; diff --git a/src/test/sigcache_tests.cpp b/src/test/sigcache_tests.cpp --- a/src/test/sigcache_tests.cpp +++ b/src/test/sigcache_tests.cpp @@ -38,7 +38,7 @@ SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | SCRIPT_VERIFY_MINIMALIF | SCRIPT_VERIFY_NULLFAIL | SCRIPT_VERIFY_COMPRESSED_PUBKEYTYPE | SCRIPT_ENABLE_SIGHASH_FORKID | SCRIPT_ENABLE_REPLAY_PROTECTION | - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ALLOW_SEGWIT_RECOVERY; + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ALLOW_SEGWIT_RECOVERY; /* We will be testing that these flags DO affect the cache entry. The expected * behaviour is that flags which are not explicitly listed as invariant in * script/sigcache.cpp will affect the cache entry. Here we will thus enforce diff --git a/src/test/sigopcount_tests.cpp b/src/test/sigopcount_tests.cpp --- a/src/test/sigopcount_tests.cpp +++ b/src/test/sigopcount_tests.cpp @@ -31,9 +31,9 @@ void CheckScriptSigOps(const CScript &script, uint32_t accurate_sigops, uint32_t inaccurate_sigops, uint32_t datasigops) { const uint32_t nodatasigflags = - STANDARD_SCRIPT_VERIFY_FLAGS & ~SCRIPT_ENABLE_CHECKDATASIG; + STANDARD_SCRIPT_VERIFY_FLAGS & ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; const uint32_t datasigflags = - STANDARD_SCRIPT_VERIFY_FLAGS | SCRIPT_ENABLE_CHECKDATASIG; + STANDARD_SCRIPT_VERIFY_FLAGS | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; BOOST_CHECK_EQUAL(script.GetSigOpCount(nodatasigflags, false), inaccurate_sigops); @@ -94,11 +94,11 @@ scriptSig2 << OP_1 << ToByteVector(dummy) << ToByteVector(dummy) << Serialize(s3); BOOST_CHECK_EQUAL(p2sh.GetSigOpCount((STANDARD_SCRIPT_VERIFY_FLAGS & - ~SCRIPT_ENABLE_CHECKDATASIG), + ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS), scriptSig2), 3U); BOOST_CHECK_EQUAL(p2sh.GetSigOpCount(STANDARD_SCRIPT_VERIFY_FLAGS | - SCRIPT_ENABLE_CHECKDATASIG, + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, scriptSig2), 3U); BOOST_CHECK_EQUAL(p2sh.GetSigOpCount(SCRIPT_VERIFY_NONE, scriptSig2), 0U); diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -715,7 +715,7 @@ } if (IsMagneticAnomalyEnabledForCurrentBlock(config)) { - extraFlags |= SCRIPT_ENABLE_CHECKDATASIG; + extraFlags |= SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; } if (IsGreatWallEnabledForCurrentBlock(config)) { @@ -1615,7 +1615,7 @@ // alternative. We also start enforcing push only signatures and // clean stack. if (IsMagneticAnomalyEnabled(config, pChainTip)) { - flags |= SCRIPT_ENABLE_CHECKDATASIG; + flags |= SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; flags |= SCRIPT_VERIFY_SIGPUSHONLY; flags |= SCRIPT_VERIFY_CLEANSTACK; }