mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 23:07:59 +01:00
Add variables for repeated scripts
This commit is contained in:
parent
fec8336ad9
commit
7966aa424a
1 changed files with 25 additions and 19 deletions
|
@ -499,13 +499,19 @@ BOOST_AUTO_TEST_CASE(test_witness)
|
|||
BOOST_CHECK(keystore.AddCScript(scriptPubkey1L));
|
||||
BOOST_CHECK(keystore.AddCScript(scriptPubkey2L));
|
||||
BOOST_CHECK(keystore.AddCScript(scriptMulti));
|
||||
BOOST_CHECK(keystore.AddCScript(GetScriptForDestination(WitnessV0KeyHash(pubkey1.GetID()))));
|
||||
BOOST_CHECK(keystore.AddCScript(GetScriptForDestination(WitnessV0KeyHash(pubkey2.GetID()))));
|
||||
BOOST_CHECK(keystore.AddCScript(GetScriptForDestination(WitnessV0KeyHash(pubkey1L.GetID()))));
|
||||
BOOST_CHECK(keystore.AddCScript(GetScriptForDestination(WitnessV0KeyHash(pubkey2L.GetID()))));
|
||||
BOOST_CHECK(keystore.AddCScript(GetScriptForDestination(WitnessV0ScriptHash(scriptMulti))));
|
||||
CScript destination_script_1, destination_script_2, destination_script_1L, destination_script_2L, destination_script_multi;
|
||||
destination_script_1 = GetScriptForDestination(WitnessV0KeyHash(pubkey1));
|
||||
destination_script_2 = GetScriptForDestination(WitnessV0KeyHash(pubkey2));
|
||||
destination_script_1L = GetScriptForDestination(WitnessV0KeyHash(pubkey1L));
|
||||
destination_script_2L = GetScriptForDestination(WitnessV0KeyHash(pubkey2L));
|
||||
destination_script_multi = GetScriptForDestination(WitnessV0ScriptHash(scriptMulti));
|
||||
BOOST_CHECK(keystore.AddCScript(destination_script_1));
|
||||
BOOST_CHECK(keystore.AddCScript(destination_script_2));
|
||||
BOOST_CHECK(keystore.AddCScript(destination_script_1L));
|
||||
BOOST_CHECK(keystore.AddCScript(destination_script_2L));
|
||||
BOOST_CHECK(keystore.AddCScript(destination_script_multi));
|
||||
BOOST_CHECK(keystore2.AddCScript(scriptMulti));
|
||||
BOOST_CHECK(keystore2.AddCScript(GetScriptForDestination(WitnessV0ScriptHash(scriptMulti))));
|
||||
BOOST_CHECK(keystore2.AddCScript(destination_script_multi));
|
||||
BOOST_CHECK(keystore2.AddKeyPubKey(key3, pubkey3));
|
||||
|
||||
CTransactionRef output1, output2;
|
||||
|
@ -537,8 +543,8 @@ BOOST_AUTO_TEST_CASE(test_witness)
|
|||
CheckWithFlag(output1, input2, STANDARD_SCRIPT_VERIFY_FLAGS, false);
|
||||
|
||||
// Witness pay-to-compressed-pubkey (v0).
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(WitnessV0KeyHash(pubkey1.GetID())), output1, input1);
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(WitnessV0KeyHash(pubkey2.GetID())), output2, input2);
|
||||
CreateCreditAndSpend(keystore, destination_script_1, output1, input1);
|
||||
CreateCreditAndSpend(keystore, destination_script_2, output2, input2);
|
||||
CheckWithFlag(output1, input1, 0, true);
|
||||
CheckWithFlag(output1, input1, SCRIPT_VERIFY_P2SH, true);
|
||||
CheckWithFlag(output1, input1, SCRIPT_VERIFY_WITNESS | SCRIPT_VERIFY_P2SH, true);
|
||||
|
@ -549,9 +555,9 @@ BOOST_AUTO_TEST_CASE(test_witness)
|
|||
CheckWithFlag(output1, input2, STANDARD_SCRIPT_VERIFY_FLAGS, false);
|
||||
|
||||
// P2SH witness pay-to-compressed-pubkey (v0).
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(GetScriptForDestination(WitnessV0KeyHash(pubkey1.GetID())))), output1, input1);
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(GetScriptForDestination(WitnessV0KeyHash(pubkey2.GetID())))), output2, input2);
|
||||
ReplaceRedeemScript(input2.vin[0].scriptSig, GetScriptForDestination(WitnessV0KeyHash(pubkey1.GetID())));
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(destination_script_1)), output1, input1);
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(destination_script_2)), output2, input2);
|
||||
ReplaceRedeemScript(input2.vin[0].scriptSig, destination_script_1);
|
||||
CheckWithFlag(output1, input1, 0, true);
|
||||
CheckWithFlag(output1, input1, SCRIPT_VERIFY_P2SH, true);
|
||||
CheckWithFlag(output1, input1, SCRIPT_VERIFY_WITNESS | SCRIPT_VERIFY_P2SH, true);
|
||||
|
@ -587,12 +593,12 @@ BOOST_AUTO_TEST_CASE(test_witness)
|
|||
CheckWithFlag(output1, input2, STANDARD_SCRIPT_VERIFY_FLAGS, false);
|
||||
|
||||
// Signing disabled for witness pay-to-uncompressed-pubkey (v1).
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(WitnessV0KeyHash(pubkey1L.GetID())), output1, input1, false);
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(WitnessV0KeyHash(pubkey2L.GetID())), output2, input2, false);
|
||||
CreateCreditAndSpend(keystore, destination_script_1L, output1, input1, false);
|
||||
CreateCreditAndSpend(keystore, destination_script_2L, output2, input2, false);
|
||||
|
||||
// Signing disabled for P2SH witness pay-to-uncompressed-pubkey (v1).
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(GetScriptForDestination(WitnessV0KeyHash(pubkey1L.GetID())))), output1, input1, false);
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(GetScriptForDestination(WitnessV0KeyHash(pubkey2L.GetID())))), output2, input2, false);
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(destination_script_1L)), output1, input1, false);
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(destination_script_2L)), output2, input2, false);
|
||||
|
||||
// Normal 2-of-2 multisig
|
||||
CreateCreditAndSpend(keystore, scriptMulti, output1, input1, false);
|
||||
|
@ -616,10 +622,10 @@ BOOST_AUTO_TEST_CASE(test_witness)
|
|||
CheckWithFlag(output1, input1, STANDARD_SCRIPT_VERIFY_FLAGS, true);
|
||||
|
||||
// Witness 2-of-2 multisig
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(WitnessV0ScriptHash(scriptMulti)), output1, input1, false);
|
||||
CreateCreditAndSpend(keystore, destination_script_multi, output1, input1, false);
|
||||
CheckWithFlag(output1, input1, 0, true);
|
||||
CheckWithFlag(output1, input1, SCRIPT_VERIFY_P2SH | SCRIPT_VERIFY_WITNESS, false);
|
||||
CreateCreditAndSpend(keystore2, GetScriptForDestination(WitnessV0ScriptHash(scriptMulti)), output2, input2, false);
|
||||
CreateCreditAndSpend(keystore2, destination_script_multi, output2, input2, false);
|
||||
CheckWithFlag(output2, input2, 0, true);
|
||||
CheckWithFlag(output2, input2, SCRIPT_VERIFY_P2SH | SCRIPT_VERIFY_WITNESS, false);
|
||||
BOOST_CHECK(*output1 == *output2);
|
||||
|
@ -628,10 +634,10 @@ BOOST_AUTO_TEST_CASE(test_witness)
|
|||
CheckWithFlag(output1, input1, STANDARD_SCRIPT_VERIFY_FLAGS, true);
|
||||
|
||||
// P2SH witness 2-of-2 multisig
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(GetScriptForDestination(WitnessV0ScriptHash(scriptMulti)))), output1, input1, false);
|
||||
CreateCreditAndSpend(keystore, GetScriptForDestination(ScriptHash(destination_script_multi)), output1, input1, false);
|
||||
CheckWithFlag(output1, input1, SCRIPT_VERIFY_P2SH, true);
|
||||
CheckWithFlag(output1, input1, SCRIPT_VERIFY_P2SH | SCRIPT_VERIFY_WITNESS, false);
|
||||
CreateCreditAndSpend(keystore2, GetScriptForDestination(ScriptHash(GetScriptForDestination(WitnessV0ScriptHash(scriptMulti)))), output2, input2, false);
|
||||
CreateCreditAndSpend(keystore2, GetScriptForDestination(ScriptHash(destination_script_multi)), output2, input2, false);
|
||||
CheckWithFlag(output2, input2, SCRIPT_VERIFY_P2SH, true);
|
||||
CheckWithFlag(output2, input2, SCRIPT_VERIFY_P2SH | SCRIPT_VERIFY_WITNESS, false);
|
||||
BOOST_CHECK(*output1 == *output2);
|
||||
|
|
Loading…
Add table
Reference in a new issue