@@ -59,7 +59,7 @@ def test_rbf_carveout_disallowed(self):
59
59
mempoolmin_feerate = node .getmempoolinfo ()["mempoolminfee" ]
60
60
tx_A = self .wallet .send_self_transfer (
61
61
from_node = node ,
62
- fee = ( mempoolmin_feerate / 1000 ) * ( A_weight // 4 ) + Decimal ( '0.000001' ) ,
62
+ fee_rate = mempoolmin_feerate ,
63
63
target_weight = A_weight ,
64
64
utxo_to_spend = rbf_utxo ,
65
65
confirmed_only = True
@@ -77,7 +77,7 @@ def test_rbf_carveout_disallowed(self):
77
77
non_cpfp_carveout_weight = 40001 # EXTRA_DESCENDANT_TX_SIZE_LIMIT + 1
78
78
tx_C = self .wallet .create_self_transfer (
79
79
target_weight = non_cpfp_carveout_weight ,
80
- fee = ( mempoolmin_feerate / 1000 ) * ( non_cpfp_carveout_weight // 4 ) + Decimal ( '0.000001' ) ,
80
+ fee_rate = mempoolmin_feerate ,
81
81
utxo_to_spend = tx_B ["new_utxo" ],
82
82
confirmed_only = True
83
83
)
@@ -109,7 +109,7 @@ def test_mid_package_eviction(self):
109
109
# happen in the middle of package evaluation, as it can invalidate the coins cache.
110
110
mempool_evicted_tx = self .wallet .send_self_transfer (
111
111
from_node = node ,
112
- fee = ( mempoolmin_feerate / 1000 ) * ( evicted_weight // 4 ) + Decimal ( '0.000001' ) ,
112
+ fee_rate = mempoolmin_feerate ,
113
113
target_weight = evicted_weight ,
114
114
confirmed_only = True
115
115
)
@@ -135,11 +135,11 @@ def test_mid_package_eviction(self):
135
135
parent_weight = 100000
136
136
num_big_parents = 3
137
137
assert_greater_than (parent_weight * num_big_parents , current_info ["maxmempool" ] - current_info ["bytes" ])
138
- parent_fee = ( 100 * mempoolmin_feerate / 1000 ) * ( parent_weight // 4 )
138
+ parent_feerate = 100 * mempoolmin_feerate
139
139
140
140
big_parent_txids = []
141
141
for i in range (num_big_parents ):
142
- parent = self .wallet .create_self_transfer (fee = parent_fee , target_weight = parent_weight , confirmed_only = True )
142
+ parent = self .wallet .create_self_transfer (fee_rate = parent_feerate , target_weight = parent_weight , confirmed_only = True )
143
143
parent_utxos .append (parent ["new_utxo" ])
144
144
package_hex .append (parent ["hex" ])
145
145
big_parent_txids .append (parent ["txid" ])
@@ -314,18 +314,20 @@ def run_test(self):
314
314
target_weight_each = 200000
315
315
assert_greater_than (target_weight_each * 2 , node .getmempoolinfo ()["maxmempool" ] - node .getmempoolinfo ()["bytes" ])
316
316
# Should be a true CPFP: parent's feerate is just below mempool min feerate
317
- parent_fee = ( mempoolmin_feerate / 1000 ) * ( target_weight_each // 4 ) - Decimal ("0.00001" )
317
+ parent_feerate = mempoolmin_feerate - Decimal ("0.000001" ) # 0.1 sats/vbyte below min feerate
318
318
# Parent + child is above mempool minimum feerate
319
- child_fee = (worst_feerate_btcvb ) * ( target_weight_each // 4 ) - Decimal ("0.00001" )
319
+ child_feerate = (worst_feerate_btcvb * 1000 ) - Decimal ("0.000001" ) # 0.1 sats/vbyte below worst feerate
320
320
# However, when eviction is triggered, these transactions should be at the bottom.
321
321
# This assertion assumes parent and child are the same size.
322
322
miniwallet .rescan_utxos ()
323
- tx_parent_just_below = miniwallet .create_self_transfer (fee = parent_fee , target_weight = target_weight_each )
324
- tx_child_just_above = miniwallet .create_self_transfer (utxo_to_spend = tx_parent_just_below ["new_utxo" ], fee = child_fee , target_weight = target_weight_each )
323
+ tx_parent_just_below = miniwallet .create_self_transfer (fee_rate = parent_feerate , target_weight = target_weight_each )
324
+ tx_child_just_above = miniwallet .create_self_transfer (utxo_to_spend = tx_parent_just_below ["new_utxo" ], fee_rate = child_feerate , target_weight = target_weight_each )
325
325
# This package ranks below the lowest descendant package in the mempool
326
- assert_greater_than (worst_feerate_btcvb , (parent_fee + child_fee ) / (tx_parent_just_below ["tx" ].get_vsize () + tx_child_just_above ["tx" ].get_vsize ()))
327
- assert_greater_than (mempoolmin_feerate , (parent_fee ) / (tx_parent_just_below ["tx" ].get_vsize ()))
328
- assert_greater_than ((parent_fee + child_fee ) / (tx_parent_just_below ["tx" ].get_vsize () + tx_child_just_above ["tx" ].get_vsize ()), mempoolmin_feerate / 1000 )
326
+ package_fee = tx_parent_just_below ["fee" ] + tx_child_just_above ["fee" ]
327
+ package_vsize = tx_parent_just_below ["tx" ].get_vsize () + tx_child_just_above ["tx" ].get_vsize ()
328
+ assert_greater_than (worst_feerate_btcvb , package_fee / package_vsize )
329
+ assert_greater_than (mempoolmin_feerate , tx_parent_just_below ["fee" ] / (tx_parent_just_below ["tx" ].get_vsize ()))
330
+ assert_greater_than (package_fee / package_vsize , mempoolmin_feerate / 1000 )
329
331
res = node .submitpackage ([tx_parent_just_below ["hex" ], tx_child_just_above ["hex" ]])
330
332
for wtxid in [tx_parent_just_below ["wtxid" ], tx_child_just_above ["wtxid" ]]:
331
333
assert_equal (res ["tx-results" ][wtxid ]["error" ], "mempool full" )
0 commit comments