mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 23:18:14 +01:00
transaction_tests: Be more strict checking dust
* Don't allow off-by-one or more * Make clear dust is coupled with minRelayTxFee * Check rounding for odd values
This commit is contained in:
@@ -342,12 +342,27 @@ BOOST_AUTO_TEST_CASE(test_IsStandard)
|
||||
string reason;
|
||||
BOOST_CHECK(IsStandardTx(t, reason));
|
||||
|
||||
t.vout[0].nValue = 501; // dust
|
||||
// Check dust with default relay fee:
|
||||
CAmount nDustThreshold = 182 * minRelayTxFee.GetFeePerK()/1000 * 3;
|
||||
BOOST_CHECK_EQUAL(nDustThreshold, 546);
|
||||
// dust:
|
||||
t.vout[0].nValue = nDustThreshold - 1;
|
||||
BOOST_CHECK(!IsStandardTx(t, reason));
|
||||
|
||||
t.vout[0].nValue = 2730; // not dust
|
||||
// not dust:
|
||||
t.vout[0].nValue = nDustThreshold;
|
||||
BOOST_CHECK(IsStandardTx(t, reason));
|
||||
|
||||
// Check dust with odd relay fee to verify rounding:
|
||||
// nDustThreshold = 182 * 1234 / 1000 * 3
|
||||
minRelayTxFee = CFeeRate(1234);
|
||||
// dust:
|
||||
t.vout[0].nValue = 672 - 1;
|
||||
BOOST_CHECK(!IsStandardTx(t, reason));
|
||||
// not dust:
|
||||
t.vout[0].nValue = 672;
|
||||
BOOST_CHECK(IsStandardTx(t, reason));
|
||||
minRelayTxFee = CFeeRate(1000);
|
||||
|
||||
t.vout[0].scriptPubKey = CScript() << OP_1;
|
||||
BOOST_CHECK(!IsStandardTx(t, reason));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user