mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 15:04:44 +01:00
test: add unit test for non-standard bare multisig txs
The function IsStandardTx() returns rejection reason "bare-multisig" if the transaction has a bare multisig output and the policy flag fIsBareMultisigStd is false (set by the boolean command-line argument "-permitbaremultisig" -- for the unit test, we simply set the global flag variable directly).
This commit is contained in:
parent
7dbc33f617
commit
1bb5d517aa
1 changed files with 11 additions and 0 deletions
|
@ -797,6 +797,17 @@ BOOST_AUTO_TEST_CASE(test_IsStandard)
|
||||||
reason.clear();
|
reason.clear();
|
||||||
BOOST_CHECK(!IsStandardTx(CTransaction(t), reason));
|
BOOST_CHECK(!IsStandardTx(CTransaction(t), reason));
|
||||||
BOOST_CHECK_EQUAL(reason, "scriptsig-size");
|
BOOST_CHECK_EQUAL(reason, "scriptsig-size");
|
||||||
|
|
||||||
|
// Check bare multisig (standard if policy flag fIsBareMultisigStd is set)
|
||||||
|
fIsBareMultisigStd = true;
|
||||||
|
t.vout[0].scriptPubKey = GetScriptForMultisig(1, {key.GetPubKey()}); // simple 1-of-1
|
||||||
|
t.vin[0].scriptSig = CScript() << std::vector<unsigned char>(65, 0);
|
||||||
|
BOOST_CHECK(IsStandardTx(CTransaction(t), reason));
|
||||||
|
|
||||||
|
fIsBareMultisigStd = false;
|
||||||
|
reason.clear();
|
||||||
|
BOOST_CHECK(!IsStandardTx(CTransaction(t), reason));
|
||||||
|
BOOST_CHECK_EQUAL(reason, "bare-multisig");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
Loading…
Add table
Reference in a new issue