mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-19 06:43:45 +01:00
Merge #18612: script: Remove undocumented and unused operator+
ccccd51908script: Remove undocumented and unused operator+ (MarcoFalke) Pull request description: This operator has no documented use case and is also unused outside of test code. The test code and all other (imaginary) code that might use this operator is written more clear and concise by the existing CScript push operators for opcodes and data. Removing the operator is also going to protect against accidentally reintroducing bugs like this6ff5f718b6 (diff-8458adcedc17d046942185cb709ff5c3L1135)(last time it was used). ACKs for top commit: laanwj: ACKccccd51908Tree-SHA512: 43898ac77e4d9643d9f8ac6f8f65497a4f0bbb1fb5dcaecc839c3719aa36181ba77befb213e59a9f33a20a29e0173a0e9c4763b1930940b32c3d1598b3e39af9
This commit is contained in:
@@ -217,7 +217,6 @@ struct KeyData
|
||||
|
||||
KeyData()
|
||||
{
|
||||
|
||||
key0.Set(vchKey0, vchKey0 + 32, false);
|
||||
key0C.Set(vchKey0, vchKey0 + 32, true);
|
||||
pubkey0 = key0.GetPubKey();
|
||||
@@ -272,9 +271,9 @@ private:
|
||||
|
||||
void DoPush(const std::vector<unsigned char>& data)
|
||||
{
|
||||
DoPush();
|
||||
push = data;
|
||||
havePush = true;
|
||||
DoPush();
|
||||
push = data;
|
||||
havePush = true;
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -306,10 +305,10 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
TestBuilder& Add(const CScript& _script)
|
||||
TestBuilder& Opcode(const opcodetype& _op)
|
||||
{
|
||||
DoPush();
|
||||
spendTx.vin[0].scriptSig += _script;
|
||||
spendTx.vin[0].scriptSig << _op;
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -326,8 +325,9 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
TestBuilder& Push(const CScript& _script) {
|
||||
DoPush(std::vector<unsigned char>(_script.begin(), _script.end()));
|
||||
TestBuilder& Push(const CScript& _script)
|
||||
{
|
||||
DoPush(std::vector<unsigned char>(_script.begin(), _script.end()));
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -681,22 +681,22 @@ BOOST_AUTO_TEST_CASE(script_build)
|
||||
|
||||
tests.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey1C) << OP_2 << OP_CHECKMULTISIG,
|
||||
"2-of-2 with two identical keys and sigs pushed using OP_DUP but no SIGPUSHONLY", 0
|
||||
).Num(0).PushSig(keys.key1).Add(CScript() << OP_DUP));
|
||||
).Num(0).PushSig(keys.key1).Opcode(OP_DUP));
|
||||
tests.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey1C) << OP_2 << OP_CHECKMULTISIG,
|
||||
"2-of-2 with two identical keys and sigs pushed using OP_DUP", SCRIPT_VERIFY_SIGPUSHONLY
|
||||
).Num(0).PushSig(keys.key1).Add(CScript() << OP_DUP).ScriptError(SCRIPT_ERR_SIG_PUSHONLY));
|
||||
).Num(0).PushSig(keys.key1).Opcode(OP_DUP).ScriptError(SCRIPT_ERR_SIG_PUSHONLY));
|
||||
tests.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey2C) << OP_CHECKSIG,
|
||||
"P2SH(P2PK) with non-push scriptSig but no P2SH or SIGPUSHONLY", 0, true
|
||||
).PushSig(keys.key2).Add(CScript() << OP_NOP8).PushRedeem());
|
||||
).PushSig(keys.key2).Opcode(OP_NOP8).PushRedeem());
|
||||
tests.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey2C) << OP_CHECKSIG,
|
||||
"P2PK with non-push scriptSig but with P2SH validation", 0
|
||||
).PushSig(keys.key2).Add(CScript() << OP_NOP8));
|
||||
).PushSig(keys.key2).Opcode(OP_NOP8));
|
||||
tests.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey2C) << OP_CHECKSIG,
|
||||
"P2SH(P2PK) with non-push scriptSig but no SIGPUSHONLY", SCRIPT_VERIFY_P2SH, true
|
||||
).PushSig(keys.key2).Add(CScript() << OP_NOP8).PushRedeem().ScriptError(SCRIPT_ERR_SIG_PUSHONLY));
|
||||
).PushSig(keys.key2).Opcode(OP_NOP8).PushRedeem().ScriptError(SCRIPT_ERR_SIG_PUSHONLY));
|
||||
tests.push_back(TestBuilder(CScript() << ToByteVector(keys.pubkey2C) << OP_CHECKSIG,
|
||||
"P2SH(P2PK) with non-push scriptSig but not P2SH", SCRIPT_VERIFY_SIGPUSHONLY, true
|
||||
).PushSig(keys.key2).Add(CScript() << OP_NOP8).PushRedeem().ScriptError(SCRIPT_ERR_SIG_PUSHONLY));
|
||||
).PushSig(keys.key2).Opcode(OP_NOP8).PushRedeem().ScriptError(SCRIPT_ERR_SIG_PUSHONLY));
|
||||
tests.push_back(TestBuilder(CScript() << OP_2 << ToByteVector(keys.pubkey1C) << ToByteVector(keys.pubkey1C) << OP_2 << OP_CHECKMULTISIG,
|
||||
"2-of-2 with two identical keys and sigs pushed", SCRIPT_VERIFY_SIGPUSHONLY
|
||||
).Num(0).PushSig(keys.key1).PushSig(keys.key1));
|
||||
@@ -1470,24 +1470,6 @@ BOOST_AUTO_TEST_CASE(script_HasValidOps)
|
||||
BOOST_CHECK(!script.HasValidOps());
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(script_can_append_self)
|
||||
{
|
||||
CScript s, d;
|
||||
|
||||
s = ScriptFromHex("00");
|
||||
s += s;
|
||||
d = ScriptFromHex("0000");
|
||||
BOOST_CHECK(s == d);
|
||||
|
||||
// check doubling a script that's large enough to require reallocation
|
||||
static const char hex[] = "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f";
|
||||
s = CScript() << ParseHex(hex) << OP_CHECKSIG;
|
||||
d = CScript() << ParseHex(hex) << OP_CHECKSIG << ParseHex(hex) << OP_CHECKSIG;
|
||||
s += s;
|
||||
BOOST_CHECK(s == d);
|
||||
}
|
||||
|
||||
|
||||
#if defined(HAVE_CONSENSUS_LIB)
|
||||
|
||||
/* Test simple (successful) usage of bitcoinconsensus_verify_script */
|
||||
|
||||
Reference in New Issue
Block a user