Changeset View
Changeset View
Standalone View
Standalone View
src/test/transaction_tests.cpp
Show First 20 Lines • Show All 657 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(test_IsStandard) { | ||||
BOOST_CHECK(IsStandardTx(CTransaction(t), reason)); | BOOST_CHECK(IsStandardTx(CTransaction(t), reason)); | ||||
dustRelayFee = CFeeRate(DUST_RELAY_TX_FEE); | dustRelayFee = CFeeRate(DUST_RELAY_TX_FEE); | ||||
t.vout[0].scriptPubKey = CScript() << OP_1; | t.vout[0].scriptPubKey = CScript() << OP_1; | ||||
reason.clear(); | reason.clear(); | ||||
BOOST_CHECK(!IsStandardTx(CTransaction(t), reason)); | BOOST_CHECK(!IsStandardTx(CTransaction(t), reason)); | ||||
BOOST_CHECK_EQUAL(reason, "scriptpubkey"); | BOOST_CHECK_EQUAL(reason, "scriptpubkey"); | ||||
// MAX_OP_RETURN_RELAY-byte TX_NULL_DATA (standard) | // MAX_OP_RETURN_RELAY-byte TxoutType::NULL_DATA (standard) | ||||
t.vout[0].scriptPubKey = | t.vout[0].scriptPubKey = | ||||
CScript() << OP_RETURN | CScript() << OP_RETURN | ||||
<< ParseHex("646578784062697477617463682e636f2092c558ed52c56d" | << ParseHex("646578784062697477617463682e636f2092c558ed52c56d" | ||||
"8dd14ca76226bc936a84820d898443873eb03d8854b21fa3" | "8dd14ca76226bc936a84820d898443873eb03d8854b21fa3" | ||||
"952b99a2981873e74509281730d78a21786d34a38bd1ebab" | "952b99a2981873e74509281730d78a21786d34a38bd1ebab" | ||||
"822fad42278f7f4420db6ab1fd2b6826148d4f73bb41ec2d" | "822fad42278f7f4420db6ab1fd2b6826148d4f73bb41ec2d" | ||||
"40a6d5793d66e17074a0c56a8a7df21062308f483dd6e38d" | "40a6d5793d66e17074a0c56a8a7df21062308f483dd6e38d" | ||||
"53609d350038df0a1b2a9ac8332016e0b904f66880dd0108" | "53609d350038df0a1b2a9ac8332016e0b904f66880dd0108" | ||||
"81c4e8074cce8e4ad6c77cb3460e01bf0e7e811b5f945f83" | "81c4e8074cce8e4ad6c77cb3460e01bf0e7e811b5f945f83" | ||||
"732ba6677520a893d75d9a966cb8f85dc301656b1635c631" | "732ba6677520a893d75d9a966cb8f85dc301656b1635c631" | ||||
"f5d00d4adf73f2dd112ca75cf19754651909becfbe65aed1" | "f5d00d4adf73f2dd112ca75cf19754651909becfbe65aed1" | ||||
"3afb2ab8"); | "3afb2ab8"); | ||||
BOOST_CHECK_EQUAL(MAX_OP_RETURN_RELAY, t.vout[0].scriptPubKey.size()); | BOOST_CHECK_EQUAL(MAX_OP_RETURN_RELAY, t.vout[0].scriptPubKey.size()); | ||||
BOOST_CHECK(IsStandardTx(CTransaction(t), reason)); | BOOST_CHECK(IsStandardTx(CTransaction(t), reason)); | ||||
// MAX_OP_RETURN_RELAY+1-byte TX_NULL_DATA (non-standard) | // MAX_OP_RETURN_RELAY+1-byte TxoutType::NULL_DATA (non-standard) | ||||
t.vout[0].scriptPubKey = | t.vout[0].scriptPubKey = | ||||
CScript() << OP_RETURN | CScript() << OP_RETURN | ||||
<< ParseHex("646578784062697477617463682e636f2092c558ed52c56d" | << ParseHex("646578784062697477617463682e636f2092c558ed52c56d" | ||||
"8dd14ca76226bc936a84820d898443873eb03d8854b21fa3" | "8dd14ca76226bc936a84820d898443873eb03d8854b21fa3" | ||||
"952b99a2981873e74509281730d78a21786d34a38bd1ebab" | "952b99a2981873e74509281730d78a21786d34a38bd1ebab" | ||||
"822fad42278f7f4420db6ab1fd2b6826148d4f73bb41ec2d" | "822fad42278f7f4420db6ab1fd2b6826148d4f73bb41ec2d" | ||||
"40a6d5793d66e17074a0c56a8a7df21062308f483dd6e38d" | "40a6d5793d66e17074a0c56a8a7df21062308f483dd6e38d" | ||||
"53609d350038df0a1b2a9ac8332016e0b904f66880dd0108" | "53609d350038df0a1b2a9ac8332016e0b904f66880dd0108" | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(test_IsStandard) { | ||||
BOOST_CHECK(IsStandardTx(CTransaction(t), reason)); | BOOST_CHECK(IsStandardTx(CTransaction(t), reason)); | ||||
// ...so long as it only contains PUSHDATA's | // ...so long as it only contains PUSHDATA's | ||||
t.vout[0].scriptPubKey = CScript() << OP_RETURN << OP_RETURN; | t.vout[0].scriptPubKey = CScript() << OP_RETURN << OP_RETURN; | ||||
reason.clear(); | reason.clear(); | ||||
BOOST_CHECK(!IsStandardTx(CTransaction(t), reason)); | BOOST_CHECK(!IsStandardTx(CTransaction(t), reason)); | ||||
BOOST_CHECK_EQUAL(reason, "scriptpubkey"); | BOOST_CHECK_EQUAL(reason, "scriptpubkey"); | ||||
// TX_NULL_DATA w/o PUSHDATA | // TxoutType::NULL_DATA w/o PUSHDATA | ||||
t.vout.resize(1); | t.vout.resize(1); | ||||
t.vout[0].scriptPubKey = CScript() << OP_RETURN; | t.vout[0].scriptPubKey = CScript() << OP_RETURN; | ||||
BOOST_CHECK(IsStandardTx(CTransaction(t), reason)); | BOOST_CHECK(IsStandardTx(CTransaction(t), reason)); | ||||
// Only one TX_NULL_DATA permitted in all cases | // Only one TxoutType::NULL_DATA permitted in all cases | ||||
t.vout.resize(2); | t.vout.resize(2); | ||||
t.vout[0].scriptPubKey = | t.vout[0].scriptPubKey = | ||||
CScript() << OP_RETURN | CScript() << OP_RETURN | ||||
<< ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909" | << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909" | ||||
"a67962e0ea1f61deb649f6bc3f4cef38"); | "a67962e0ea1f61deb649f6bc3f4cef38"); | ||||
t.vout[1].scriptPubKey = | t.vout[1].scriptPubKey = | ||||
CScript() << OP_RETURN | CScript() << OP_RETURN | ||||
<< ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909" | << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909" | ||||
▲ Show 20 Lines • Show All 121 Lines • Show Last 20 Lines |