v30.3-roots.1 · Commit 6: [PATCH 06/68] test(policy): preserve native dust and Roots penalty coverage
test/functional/mempool_dust.py
Before: test/functional/mempool_dust.py · After: test/functional/mempool_dust.py
File metadata
index 937e77fbd41ba47416b991c57de1056f5f0b61f0..342850eabba10736b6afb52ee45395e666a3bf57 100755
Download original patch · Release notes
Diff rows 1–46 of 46. Line numbers refer to the original before/after files.
+ Added− RemovedUnmarked lines are context.
Scroll the code area horizontally to read long lines. Before is on the left; after is on the right. Unified view fits narrow screens more easily.
test/functional/mempool_dust.py
CHANGED
|
@@ -35,12 +35,13 @@ from test_framework.wallet_util import generate_keypair
|
|
| 35 |
|
| 36 |
|
| 37 |
DUST_RELAY_TX_FEE = 3000 # default setting [sat/kvB]
|
|
|
|
| 38 |
|
| 39 |
|
| 40 |
class DustRelayFeeTest(BitcoinTestFramework):
|
| 41 |
def set_test_params(self):
|
| 42 |
self.num_nodes = 1
|
| 43 |
-
self.extra_args = [['-permitbaremultisig']]
|
| 44 |
|
| 45 |
def test_dust_output(self, node: TestNode, dust_relay_fee: Decimal,
|
| 46 |
output_script: CScript, type_desc: str) -> None:
|
|
@@ -66,7 +67,7 @@ class DustRelayFeeTest(BitcoinTestFramework):
|
|
| 66 |
tx.vout[1].nValue -= 1
|
| 67 |
res = node.testmempoolaccept([tx.serialize().hex()])[0]
|
| 68 |
assert_equal(res['allowed'], False)
|
| 69 |
-
assert_equal(res['reject-reason'], 'dust')
|
| 70 |
|
| 71 |
# finally send the transaction to avoid running out of MiniWallet UTXOs
|
| 72 |
self.wallet.sendrawtransaction(from_node=node, tx_hex=tx_good_hex)
|
|
@@ -74,7 +75,7 @@ class DustRelayFeeTest(BitcoinTestFramework):
|
|
| 74 |
def test_dustrelay(self):
|
| 75 |
self.log.info("Test that small outputs are acceptable when dust relay rate is set to 0 that would otherwise trigger ephemeral dust rules")
|
| 76 |
|
| 77 |
-
self.restart_node(0, extra_args=["-dustrelayfee=0"])
|
| 78 |
|
| 79 |
assert_equal(self.nodes[0].getrawmempool(), [])
|
| 80 |
|
|
@@ -95,7 +96,7 @@ class DustRelayFeeTest(BitcoinTestFramework):
|
|
| 95 |
assert_equal(len(mempool_entries), 2)
|
| 96 |
|
| 97 |
# Wipe extra arg to reset dust relay
|
| 98 |
-
self.restart_node(0, extra_args=[])
|
| 99 |
|
| 100 |
assert_equal(self.nodes[0].getrawmempool(), [])
|
| 101 |
|
|
@@ -132,7 +133,7 @@ class DustRelayFeeTest(BitcoinTestFramework):
|
|
| 132 |
else:
|
| 133 |
dust_parameter = f"-dustrelayfee={dustfee_btc_kvb:.8f}"
|
| 134 |
self.log.info(f"Test dust limit setting {dust_parameter} ({dustfee_sat_kvb} sat/kvB)...")
|
| 135 |
-
self.restart_node(0, extra_args=[dust_parameter, "-permitbaremultisig"])
|
| 136 |
|
| 137 |
for output_script, description in output_scripts:
|
| 138 |
self.test_dust_output(self.nodes[0], dustfee_btc_kvb, output_script, description)
|
|
|
|
| 35 |
|
| 36 |
|
| 37 |
DUST_RELAY_TX_FEE = 3000 # default setting [sat/kvB]
|
| 38 |
+
DUST_POLICY_ARGS = ["-permitbaremultisig=1", "-permitbarepubkey=1"]
|
| 39 |
|
| 40 |
|
| 41 |
class DustRelayFeeTest(BitcoinTestFramework):
|
| 42 |
def set_test_params(self):
|
| 43 |
self.num_nodes = 1
|
| 44 |
+
self.extra_args = [DUST_POLICY_ARGS]
|
| 45 |
|
| 46 |
def test_dust_output(self, node: TestNode, dust_relay_fee: Decimal,
|
| 47 |
output_script: CScript, type_desc: str) -> None:
|
|
|
|
| 67 |
tx.vout[1].nValue -= 1
|
| 68 |
res = node.testmempoolaccept([tx.serialize().hex()])[0]
|
| 69 |
assert_equal(res['allowed'], False)
|
| 70 |
+
assert_equal(res['reject-reason'], 'dust-nonanchor')
|
| 71 |
|
| 72 |
# finally send the transaction to avoid running out of MiniWallet UTXOs
|
| 73 |
self.wallet.sendrawtransaction(from_node=node, tx_hex=tx_good_hex)
|
|
|
|
| 75 |
def test_dustrelay(self):
|
| 76 |
self.log.info("Test that small outputs are acceptable when dust relay rate is set to 0 that would otherwise trigger ephemeral dust rules")
|
| 77 |
|
| 78 |
+
self.restart_node(0, extra_args=[*DUST_POLICY_ARGS, "-dustrelayfee=0"])
|
| 79 |
|
| 80 |
assert_equal(self.nodes[0].getrawmempool(), [])
|
| 81 |
|
|
|
|
| 96 |
assert_equal(len(mempool_entries), 2)
|
| 97 |
|
| 98 |
# Wipe extra arg to reset dust relay
|
| 99 |
+
self.restart_node(0, extra_args=DUST_POLICY_ARGS)
|
| 100 |
|
| 101 |
assert_equal(self.nodes[0].getrawmempool(), [])
|
| 102 |
|
|
|
|
| 133 |
else:
|
| 134 |
dust_parameter = f"-dustrelayfee={dustfee_btc_kvb:.8f}"
|
| 135 |
self.log.info(f"Test dust limit setting {dust_parameter} ({dustfee_sat_kvb} sat/kvB)...")
|
| 136 |
+
self.restart_node(0, extra_args=[*DUST_POLICY_ARGS, dust_parameter])
|
| 137 |
|
| 138 |
for output_script, description in output_scripts:
|
| 139 |
self.test_dust_output(self.nodes[0], dustfee_btc_kvb, output_script, description)
|