mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
Merge #17480: test: add unit test for non-standard txs with too large scriptSig
5e8a56348b5e1026e9ddcae0b2fa2a68faf4439e test: add unit test for non-standard txs with too large scriptSig (Sebastian Falbesoner)
Pull request description:
Approaches the first missing test of issue #17394: Checks that the function `IsStandardTx()` returns rejection reason `"scriptsig-size"` if any one the inputs' scriptSig is larger than 1650 bytes.
ACKs for top commit:
MarcoFalke:
ACK 5e8a56348b5e1026e9ddcae0b2fa2a68faf4439e
instagibbs:
ACK 5e8a56348b
Tree-SHA512: 79977b12ddea9438a37cefdbb48cc551e4ad02a8ccfaa2d2837ced9f3a185e2e07cc366c243b9e3c7736245e90e315d7b4110efc6b440c63dbef7ee2c9d78a73
This commit is contained in:
parent
f94a833add
commit
ed70a2fe78
@ -451,6 +451,19 @@ 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, "multi-op-return");
|
BOOST_CHECK_EQUAL(reason, "multi-op-return");
|
||||||
|
|
||||||
|
// Check large scriptSig (non-standard if size is >1650 bytes)
|
||||||
|
t.vout.resize(1);
|
||||||
|
t.vout[0].nValue = MAX_MONEY;
|
||||||
|
t.vout[0].scriptPubKey = GetScriptForDestination(key.GetPubKey().GetID());
|
||||||
|
// OP_PUSHDATA2 with len (3 bytes) + data (1647 bytes) = 1650 bytes
|
||||||
|
t.vin[0].scriptSig = CScript() << std::vector<unsigned char>(1647, 0); // 1650
|
||||||
|
BOOST_CHECK(IsStandardTx(CTransaction(t), reason));
|
||||||
|
|
||||||
|
t.vin[0].scriptSig = CScript() << std::vector<unsigned char>(1648, 0); // 1651
|
||||||
|
reason.clear();
|
||||||
|
BOOST_CHECK(!IsStandardTx(CTransaction(t), reason));
|
||||||
|
BOOST_CHECK_EQUAL(reason, "scriptsig-size");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
Loading…
Reference in New Issue
Block a user