mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-02-27 17:49:37 +01:00
Replace CScriptID and CKeyID in CTxDestination with dedicated types
This commit is contained in:
@@ -69,14 +69,14 @@ BOOST_AUTO_TEST_CASE(sign)
|
||||
// different keys, straight/P2SH, pubkey/pubkeyhash
|
||||
CScript standardScripts[4];
|
||||
standardScripts[0] << ToByteVector(key[0].GetPubKey()) << OP_CHECKSIG;
|
||||
standardScripts[1] = GetScriptForDestination(key[1].GetPubKey().GetID());
|
||||
standardScripts[1] = GetScriptForDestination(PKHash(key[1].GetPubKey()));
|
||||
standardScripts[2] << ToByteVector(key[1].GetPubKey()) << OP_CHECKSIG;
|
||||
standardScripts[3] = GetScriptForDestination(key[2].GetPubKey().GetID());
|
||||
standardScripts[3] = GetScriptForDestination(PKHash(key[2].GetPubKey()));
|
||||
CScript evalScripts[4];
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
BOOST_CHECK(keystore.AddCScript(standardScripts[i]));
|
||||
evalScripts[i] = GetScriptForDestination(CScriptID(standardScripts[i]));
|
||||
evalScripts[i] = GetScriptForDestination(ScriptHash(standardScripts[i]));
|
||||
}
|
||||
|
||||
CMutableTransaction txFrom; // Funding transaction:
|
||||
@@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(norecurse)
|
||||
CScript invalidAsScript;
|
||||
invalidAsScript << OP_INVALIDOPCODE << OP_INVALIDOPCODE;
|
||||
|
||||
CScript p2sh = GetScriptForDestination(CScriptID(invalidAsScript));
|
||||
CScript p2sh = GetScriptForDestination(ScriptHash(invalidAsScript));
|
||||
|
||||
CScript scriptSig;
|
||||
scriptSig << Serialize(invalidAsScript);
|
||||
@@ -142,7 +142,7 @@ BOOST_AUTO_TEST_CASE(norecurse)
|
||||
|
||||
// Try to recur, and verification should succeed because
|
||||
// the inner HASH160 <> EQUAL should only check the hash:
|
||||
CScript p2sh2 = GetScriptForDestination(CScriptID(p2sh));
|
||||
CScript p2sh2 = GetScriptForDestination(ScriptHash(p2sh));
|
||||
CScript scriptSig2;
|
||||
scriptSig2 << Serialize(invalidAsScript) << Serialize(p2sh);
|
||||
|
||||
@@ -165,7 +165,7 @@ BOOST_AUTO_TEST_CASE(set)
|
||||
}
|
||||
|
||||
CScript inner[4];
|
||||
inner[0] = GetScriptForDestination(key[0].GetPubKey().GetID());
|
||||
inner[0] = GetScriptForDestination(PKHash(key[0].GetPubKey()));
|
||||
inner[1] = GetScriptForMultisig(2, std::vector<CPubKey>(keys.begin(), keys.begin()+2));
|
||||
inner[2] = GetScriptForMultisig(1, std::vector<CPubKey>(keys.begin(), keys.begin()+2));
|
||||
inner[3] = GetScriptForMultisig(2, std::vector<CPubKey>(keys.begin(), keys.begin()+3));
|
||||
@@ -173,7 +173,7 @@ BOOST_AUTO_TEST_CASE(set)
|
||||
CScript outer[4];
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
outer[i] = GetScriptForDestination(CScriptID(inner[i]));
|
||||
outer[i] = GetScriptForDestination(ScriptHash(inner[i]));
|
||||
BOOST_CHECK(keystore.AddCScript(inner[i]));
|
||||
}
|
||||
|
||||
@@ -253,7 +253,7 @@ BOOST_AUTO_TEST_CASE(switchover)
|
||||
CScript scriptSig;
|
||||
scriptSig << Serialize(notValid);
|
||||
|
||||
CScript fund = GetScriptForDestination(CScriptID(notValid));
|
||||
CScript fund = GetScriptForDestination(ScriptHash(notValid));
|
||||
|
||||
|
||||
// Validation should succeed under old rules (hash is correct):
|
||||
@@ -284,11 +284,11 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
txFrom.vout.resize(7);
|
||||
|
||||
// First three are standard:
|
||||
CScript pay1 = GetScriptForDestination(key[0].GetPubKey().GetID());
|
||||
CScript pay1 = GetScriptForDestination(PKHash(key[0].GetPubKey()));
|
||||
BOOST_CHECK(keystore.AddCScript(pay1));
|
||||
CScript pay1of3 = GetScriptForMultisig(1, keys);
|
||||
|
||||
txFrom.vout[0].scriptPubKey = GetScriptForDestination(CScriptID(pay1)); // P2SH (OP_CHECKSIG)
|
||||
txFrom.vout[0].scriptPubKey = GetScriptForDestination(ScriptHash(pay1)); // P2SH (OP_CHECKSIG)
|
||||
txFrom.vout[0].nValue = 1000;
|
||||
txFrom.vout[1].scriptPubKey = pay1; // ordinary OP_CHECKSIG
|
||||
txFrom.vout[1].nValue = 2000;
|
||||
@@ -303,7 +303,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
oneAndTwo << OP_2 << ToByteVector(key[3].GetPubKey()) << ToByteVector(key[4].GetPubKey()) << ToByteVector(key[5].GetPubKey());
|
||||
oneAndTwo << OP_3 << OP_CHECKMULTISIG;
|
||||
BOOST_CHECK(keystore.AddCScript(oneAndTwo));
|
||||
txFrom.vout[3].scriptPubKey = GetScriptForDestination(CScriptID(oneAndTwo));
|
||||
txFrom.vout[3].scriptPubKey = GetScriptForDestination(ScriptHash(oneAndTwo));
|
||||
txFrom.vout[3].nValue = 4000;
|
||||
|
||||
// vout[4] is max sigops:
|
||||
@@ -312,24 +312,24 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
fifteenSigops << ToByteVector(key[i%3].GetPubKey());
|
||||
fifteenSigops << OP_15 << OP_CHECKMULTISIG;
|
||||
BOOST_CHECK(keystore.AddCScript(fifteenSigops));
|
||||
txFrom.vout[4].scriptPubKey = GetScriptForDestination(CScriptID(fifteenSigops));
|
||||
txFrom.vout[4].scriptPubKey = GetScriptForDestination(ScriptHash(fifteenSigops));
|
||||
txFrom.vout[4].nValue = 5000;
|
||||
|
||||
// vout[5/6] are non-standard because they exceed MAX_P2SH_SIGOPS
|
||||
CScript sixteenSigops; sixteenSigops << OP_16 << OP_CHECKMULTISIG;
|
||||
BOOST_CHECK(keystore.AddCScript(sixteenSigops));
|
||||
txFrom.vout[5].scriptPubKey = GetScriptForDestination(CScriptID(sixteenSigops));
|
||||
txFrom.vout[5].scriptPubKey = GetScriptForDestination(ScriptHash(sixteenSigops));
|
||||
txFrom.vout[5].nValue = 5000;
|
||||
CScript twentySigops; twentySigops << OP_CHECKMULTISIG;
|
||||
BOOST_CHECK(keystore.AddCScript(twentySigops));
|
||||
txFrom.vout[6].scriptPubKey = GetScriptForDestination(CScriptID(twentySigops));
|
||||
txFrom.vout[6].scriptPubKey = GetScriptForDestination(ScriptHash(twentySigops));
|
||||
txFrom.vout[6].nValue = 6000;
|
||||
|
||||
AddCoins(coins, CTransaction(txFrom), 0);
|
||||
|
||||
CMutableTransaction txTo;
|
||||
txTo.vout.resize(1);
|
||||
txTo.vout[0].scriptPubKey = GetScriptForDestination(key[1].GetPubKey().GetID());
|
||||
txTo.vout[0].scriptPubKey = GetScriptForDestination(PKHash(key[1].GetPubKey()));
|
||||
|
||||
txTo.vin.resize(5);
|
||||
for (int i = 0; i < 5; i++)
|
||||
@@ -352,7 +352,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
|
||||
CMutableTransaction txToNonStd1;
|
||||
txToNonStd1.vout.resize(1);
|
||||
txToNonStd1.vout[0].scriptPubKey = GetScriptForDestination(key[1].GetPubKey().GetID());
|
||||
txToNonStd1.vout[0].scriptPubKey = GetScriptForDestination(PKHash(key[1].GetPubKey()));
|
||||
txToNonStd1.vout[0].nValue = 1000;
|
||||
txToNonStd1.vin.resize(1);
|
||||
txToNonStd1.vin[0].prevout.n = 5;
|
||||
@@ -364,7 +364,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
|
||||
|
||||
CMutableTransaction txToNonStd2;
|
||||
txToNonStd2.vout.resize(1);
|
||||
txToNonStd2.vout[0].scriptPubKey = GetScriptForDestination(key[1].GetPubKey().GetID());
|
||||
txToNonStd2.vout[0].scriptPubKey = GetScriptForDestination(PKHash(key[1].GetPubKey()));
|
||||
txToNonStd2.vout[0].nValue = 1000;
|
||||
txToNonStd2.vin.resize(1);
|
||||
txToNonStd2.vin[0].prevout.n = 6;
|
||||
|
||||
Reference in New Issue
Block a user