@@ -123,36 +123,36 @@ def test_invalid_parameters(self, rbf_node, peer_node, dest_address):
123
123
assert_raises_rpc_error (- 3 , "Unexpected key {}" .format (key ), rbf_node .bumpfee , rbfid , {key : NORMAL })
124
124
125
125
# Bumping to just above minrelay should fail to increase the total fee enough.
126
- assert_raises_rpc_error (- 8 , "Insufficient total fee 0.00000141" , rbf_node .bumpfee , rbfid , { " fee_rate" : INSUFFICIENT } )
126
+ assert_raises_rpc_error (- 8 , "Insufficient total fee 0.00000141" , rbf_node .bumpfee , rbfid , fee_rate = INSUFFICIENT )
127
127
128
128
self .log .info ("Test invalid fee rate settings" )
129
129
assert_raises_rpc_error (- 4 , "Specified or calculated fee 0.141 is too high (cannot be higher than -maxtxfee 0.10" ,
130
- rbf_node .bumpfee , rbfid , { " fee_rate" : TOO_HIGH } )
130
+ rbf_node .bumpfee , rbfid , fee_rate = TOO_HIGH )
131
131
# Test fee_rate with zero values.
132
132
msg = "Insufficient total fee 0.00"
133
133
for zero_value in [0 , 0.000 , 0.00000000 , "0" , "0.000" , "0.00000000" ]:
134
- assert_raises_rpc_error (- 8 , msg , rbf_node .bumpfee , rbfid , { " fee_rate" : zero_value } )
134
+ assert_raises_rpc_error (- 8 , msg , rbf_node .bumpfee , rbfid , fee_rate = zero_value )
135
135
msg = "Invalid amount"
136
136
# Test fee_rate values that don't pass fixed-point parsing checks.
137
137
for invalid_value in ["" , 0.000000001 , 1e-09 , 1.111111111 , 1111111111111111 , "31.999999999999999999999" ]:
138
- assert_raises_rpc_error (- 3 , msg , rbf_node .bumpfee , rbfid , { " fee_rate" : invalid_value } )
138
+ assert_raises_rpc_error (- 3 , msg , rbf_node .bumpfee , rbfid , fee_rate = invalid_value )
139
139
# Test fee_rate values that cannot be represented in sat/vB.
140
140
for invalid_value in [0.0001 , 0.00000001 , 0.00099999 , 31.99999999 , "0.0001" , "0.00000001" , "0.00099999" , "31.99999999" ]:
141
- assert_raises_rpc_error (- 3 , msg , rbf_node .bumpfee , rbfid , { " fee_rate" : invalid_value } )
141
+ assert_raises_rpc_error (- 3 , msg , rbf_node .bumpfee , rbfid , fee_rate = invalid_value )
142
142
# Test fee_rate out of range (negative number).
143
- assert_raises_rpc_error (- 3 , "Amount out of range" , rbf_node .bumpfee , rbfid , { " fee_rate" : - 1 } )
143
+ assert_raises_rpc_error (- 3 , "Amount out of range" , rbf_node .bumpfee , rbfid , fee_rate = - 1 )
144
144
# Test type error.
145
145
for value in [{"foo" : "bar" }, True ]:
146
- assert_raises_rpc_error (- 3 , "Amount is not a number or string" , rbf_node .bumpfee , rbfid , { " fee_rate" : value } )
146
+ assert_raises_rpc_error (- 3 , "Amount is not a number or string" , rbf_node .bumpfee , rbfid , fee_rate = value )
147
147
148
148
self .log .info ("Test explicit fee rate raises RPC error if both fee_rate and conf_target are passed" )
149
149
assert_raises_rpc_error (- 8 , "Cannot specify both conf_target and fee_rate. Please provide either a confirmation "
150
150
"target in blocks for automatic fee estimation, or an explicit fee rate." ,
151
- rbf_node .bumpfee , rbfid , { " conf_target" : NORMAL , " fee_rate" : NORMAL } )
151
+ rbf_node .bumpfee , rbfid , conf_target = NORMAL , fee_rate = NORMAL )
152
152
153
153
self .log .info ("Test explicit fee rate raises RPC error if both fee_rate and estimate_mode are passed" )
154
154
assert_raises_rpc_error (- 8 , "Cannot specify both estimate_mode and fee_rate" ,
155
- rbf_node .bumpfee , rbfid , { " estimate_mode" : " economical" , " fee_rate" : NORMAL } )
155
+ rbf_node .bumpfee , rbfid , estimate_mode = " economical" , fee_rate = NORMAL )
156
156
157
157
self .log .info ("Test invalid conf_target settings" )
158
158
assert_raises_rpc_error (- 8 , "confTarget and conf_target options should not both be set" ,
@@ -161,10 +161,10 @@ def test_invalid_parameters(self, rbf_node, peer_node, dest_address):
161
161
self .log .info ("Test invalid estimate_mode settings" )
162
162
for k , v in {"number" : 42 , "object" : {"foo" : "bar" }}.items ():
163
163
assert_raises_rpc_error (- 3 , f"JSON value of type { k } for field estimate_mode is not of expected type string" ,
164
- rbf_node .bumpfee , rbfid , { " estimate_mode" : v } )
164
+ rbf_node .bumpfee , rbfid , estimate_mode = v )
165
165
for mode in ["foo" , Decimal ("3.1415" ), "sat/B" , "BTC/kB" ]:
166
166
assert_raises_rpc_error (- 8 , 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"' ,
167
- rbf_node .bumpfee , rbfid , { " estimate_mode" : mode } )
167
+ rbf_node .bumpfee , rbfid , estimate_mode = mode )
168
168
169
169
self .log .info ("Test invalid outputs values" )
170
170
assert_raises_rpc_error (- 8 , "Invalid parameter, output argument cannot be an empty array" ,
@@ -232,12 +232,12 @@ def test_simple_bumpfee_succeeds(self, mode, rbf_node, peer_node, dest_address):
232
232
self .sync_mempools ((rbf_node , peer_node ))
233
233
assert rbfid in rbf_node .getrawmempool () and rbfid in peer_node .getrawmempool ()
234
234
if mode == "fee_rate" :
235
- bumped_psbt = rbf_node .psbtbumpfee (rbfid , { " fee_rate" : str (NORMAL )} )
236
- bumped_tx = rbf_node .bumpfee (rbfid , { " fee_rate" : NORMAL } )
235
+ bumped_psbt = rbf_node .psbtbumpfee (rbfid , fee_rate = str (NORMAL ))
236
+ bumped_tx = rbf_node .bumpfee (rbfid , fee_rate = NORMAL )
237
237
elif mode == "new_outputs" :
238
238
new_address = peer_node .getnewaddress ()
239
- bumped_psbt = rbf_node .psbtbumpfee (rbfid , { " outputs" : {new_address : 0.0003 } })
240
- bumped_tx = rbf_node .bumpfee (rbfid , { " outputs" : {new_address : 0.0003 } })
239
+ bumped_psbt = rbf_node .psbtbumpfee (rbfid , outputs = {new_address : 0.0003 })
240
+ bumped_tx = rbf_node .bumpfee (rbfid , outputs = {new_address : 0.0003 })
241
241
else :
242
242
bumped_psbt = rbf_node .psbtbumpfee (rbfid )
243
243
bumped_tx = rbf_node .bumpfee (rbfid )
@@ -305,7 +305,7 @@ def test_notmine_bumpfee(self, rbf_node, peer_node, dest_address):
305
305
# Note that this test depends upon the RPC code checking input ownership prior to change outputs
306
306
# (since it can't use fundrawtransaction, it lacks a proper change output)
307
307
fee = Decimal ("0.001" )
308
- utxos = [node .listunspent (query_options = { ' minimumAmount' : fee } )[- 1 ] for node in (rbf_node , peer_node )]
308
+ utxos = [node .listunspent (minimumAmount = fee )[- 1 ] for node in (rbf_node , peer_node )]
309
309
inputs = [{
310
310
"txid" : utxo ["txid" ],
311
311
"vout" : utxo ["vout" ],
@@ -335,7 +335,7 @@ def finish_psbtbumpfee(psbt):
335
335
psbt = rbf_node .psbtbumpfee (txid = rbfid )
336
336
finish_psbtbumpfee (psbt ["psbt" ])
337
337
338
- psbt = rbf_node .psbtbumpfee (txid = rbfid , options = { " fee_rate" : old_feerate + 10 } )
338
+ psbt = rbf_node .psbtbumpfee (txid = rbfid , fee_rate = old_feerate + 10 )
339
339
finish_psbtbumpfee (psbt ["psbt" ])
340
340
341
341
self .clear_mempool ()
@@ -445,7 +445,7 @@ def test_dust_to_fee(self, rbf_node, dest_address):
445
445
# Expected fee is 141 vbytes * fee_rate 0.00350250 BTC / 1000 vbytes = 0.00049385 BTC.
446
446
# or occasionally 140 vbytes * fee_rate 0.00350250 BTC / 1000 vbytes = 0.00049035 BTC.
447
447
# Dust should be dropped to the fee, so actual bump fee is 0.00050000 BTC.
448
- bumped_tx = rbf_node .bumpfee (rbfid , { " fee_rate" : 350.25 } )
448
+ bumped_tx = rbf_node .bumpfee (rbfid , fee_rate = 350.25 )
449
449
full_bumped_tx = rbf_node .getrawtransaction (bumped_tx ["txid" ], 1 )
450
450
assert_equal (bumped_tx ["fee" ], Decimal ("0.00050000" ))
451
451
assert_equal (len (fulltx ["vout" ]), 2 )
@@ -569,7 +569,7 @@ def test_watchonly_psbt(self, peer_node, rbf_node, dest_address):
569
569
assert_raises_rpc_error (- 4 , "bumpfee is not available with wallets that have private keys disabled. Use psbtbumpfee instead." , watcher .bumpfee , original_txid )
570
570
571
571
# Bump fee, obnoxiously high to add additional watchonly input
572
- bumped_psbt = watcher .psbtbumpfee (original_txid , { " fee_rate" : HIGH } )
572
+ bumped_psbt = watcher .psbtbumpfee (original_txid , fee_rate = HIGH )
573
573
assert_greater_than (len (watcher .decodepsbt (bumped_psbt ['psbt' ])["tx" ]["vin" ]), 1 )
574
574
assert "txid" not in bumped_psbt
575
575
assert_equal (bumped_psbt ["origfee" ], - watcher .gettransaction (original_txid )["fee" ])
@@ -593,17 +593,17 @@ def test_watchonly_psbt(self, peer_node, rbf_node, dest_address):
593
593
def test_rebumping (self , rbf_node , dest_address ):
594
594
self .log .info ('Test that re-bumping the original tx fails, but bumping successor works' )
595
595
rbfid = spend_one_input (rbf_node , dest_address )
596
- bumped = rbf_node .bumpfee (rbfid , { " fee_rate" : ECONOMICAL } )
596
+ bumped = rbf_node .bumpfee (rbfid , fee_rate = ECONOMICAL )
597
597
assert_raises_rpc_error (- 4 , f"Cannot bump transaction { rbfid } which was already bumped by transaction { bumped ['txid' ]} " ,
598
- rbf_node .bumpfee , rbfid , { " fee_rate" : NORMAL } )
599
- rbf_node .bumpfee (bumped ["txid" ], { " fee_rate" : NORMAL } )
598
+ rbf_node .bumpfee , rbfid , fee_rate = NORMAL )
599
+ rbf_node .bumpfee (bumped ["txid" ], fee_rate = NORMAL )
600
600
self .clear_mempool ()
601
601
602
602
603
603
def test_rebumping_not_replaceable (self , rbf_node , dest_address ):
604
604
self .log .info ('Test that re-bumping non-replaceable fails' )
605
605
rbfid = spend_one_input (rbf_node , dest_address )
606
- bumped = rbf_node .bumpfee (rbfid , { " fee_rate" : ECONOMICAL , " replaceable" : False } )
606
+ bumped = rbf_node .bumpfee (rbfid , fee_rate = ECONOMICAL , replaceable = False )
607
607
assert_raises_rpc_error (- 4 , "Transaction is not BIP 125 replaceable" , rbf_node .bumpfee , bumped ["txid" ],
608
608
{"fee_rate" : NORMAL })
609
609
self .clear_mempool ()
@@ -615,7 +615,7 @@ def test_bumpfee_already_spent(self, rbf_node, dest_address):
615
615
self .generate (rbf_node , 1 ) # spend coin simply by mining block with tx
616
616
spent_input = rbf_node .gettransaction (txid = txid , verbose = True )['decoded' ]['vin' ][0 ]
617
617
assert_raises_rpc_error (- 1 , f"{ spent_input ['txid' ]} :{ spent_input ['vout' ]} is already spent" ,
618
- rbf_node .bumpfee , txid , { " fee_rate" : NORMAL } )
618
+ rbf_node .bumpfee , txid , fee_rate = NORMAL )
619
619
620
620
621
621
def test_unconfirmed_not_spendable (self , rbf_node , rbf_node_address ):
@@ -694,7 +694,7 @@ def test_change_script_match(self, rbf_node, dest_address):
694
694
assert_equal (len (change_addresses ), 1 )
695
695
696
696
# Now find that address in each subsequent tx, and no other change
697
- bumped_total_tx = rbf_node .bumpfee (rbfid , { " fee_rate" : ECONOMICAL } )
697
+ bumped_total_tx = rbf_node .bumpfee (rbfid , fee_rate = ECONOMICAL )
698
698
assert_equal (change_addresses , get_change_address (bumped_total_tx ['txid' ], rbf_node ))
699
699
bumped_rate_tx = rbf_node .bumpfee (bumped_total_tx ["txid" ])
700
700
assert_equal (change_addresses , get_change_address (bumped_rate_tx ['txid' ], rbf_node ))
0 commit comments