|
18 | 18 | #include <boost/test/unit_test.hpp>
|
19 | 19 |
|
20 | 20 | // Helpers:
|
| 21 | +static bool IsStandardTx(const CTransaction& tx, bool permit_bare_multisig, std::string& reason) |
| 22 | +{ |
| 23 | + return IsStandardTx(tx, std::nullopt, permit_bare_multisig, CFeeRate{DUST_RELAY_TX_FEE}, reason); |
| 24 | +} |
| 25 | + |
21 | 26 | static bool IsStandardTx(const CTransaction& tx, std::string& reason)
|
22 | 27 | {
|
23 |
| - return IsStandardTx(tx, std::nullopt, DEFAULT_PERMIT_BAREMULTISIG, CFeeRate{DUST_RELAY_TX_FEE}, reason); |
| 28 | + return IsStandardTx(tx, std::nullopt, /*permit_bare_multisig=*/true, CFeeRate{DUST_RELAY_TX_FEE}, reason) && |
| 29 | + IsStandardTx(tx, std::nullopt, /*permit_bare_multisig=*/false, CFeeRate{DUST_RELAY_TX_FEE}, reason); |
24 | 30 | }
|
25 | 31 |
|
26 | 32 | static std::vector<unsigned char> Serialize(const CScript& s)
|
@@ -201,7 +207,9 @@ BOOST_AUTO_TEST_CASE(set)
|
201 | 207 | {
|
202 | 208 | SignatureData empty;
|
203 | 209 | BOOST_CHECK_MESSAGE(SignSignature(keystore, CTransaction(txFrom), txTo[i], 0, SIGHASH_ALL, empty), strprintf("SignSignature %d", i));
|
204 |
| - BOOST_CHECK_MESSAGE(IsStandardTx(CTransaction(txTo[i]), reason), strprintf("txTo[%d].IsStandard", i)); |
| 210 | + BOOST_CHECK_MESSAGE(IsStandardTx(CTransaction(txTo[i]), /*permit_bare_multisig=*/true, reason), strprintf("txTo[%d].IsStandard", i)); |
| 211 | + bool no_pbms_is_std = IsStandardTx(CTransaction(txTo[i]), /*permit_bare_multisig=*/false, reason); |
| 212 | + BOOST_CHECK_MESSAGE((i == 0 ? no_pbms_is_std : !no_pbms_is_std), strprintf("txTo[%d].IsStandard(permbaremulti=false)", i)); |
205 | 213 | }
|
206 | 214 | }
|
207 | 215 |
|
|
0 commit comments