Skip to content

Commit 6fa72ce

Browse files
committed
test: add coverage for passing fee rate as a string
1 parent ce207d6 commit 6fa72ce

File tree

4 files changed

+32
-7
lines changed

4 files changed

+32
-7
lines changed

test/functional/rpc_fundrawtransaction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -717,10 +717,10 @@ def test_option_feerate(self):
717717

718718
result = node.fundrawtransaction(rawtx) # uses self.min_relay_tx_fee (set by settxfee)
719719
btc_kvb_to_sat_vb = 100000 # (1e5)
720-
result1 = node.fundrawtransaction(rawtx, {"fee_rate": 2 * btc_kvb_to_sat_vb * self.min_relay_tx_fee})
720+
result1 = node.fundrawtransaction(rawtx, {"fee_rate": str(2 * btc_kvb_to_sat_vb * self.min_relay_tx_fee)})
721721
result2 = node.fundrawtransaction(rawtx, {"feeRate": 2 * self.min_relay_tx_fee})
722722
result3 = node.fundrawtransaction(rawtx, {"fee_rate": 10 * btc_kvb_to_sat_vb * self.min_relay_tx_fee})
723-
result4 = node.fundrawtransaction(rawtx, {"feeRate": 10 * self.min_relay_tx_fee})
723+
result4 = node.fundrawtransaction(rawtx, {"feeRate": str(10 * self.min_relay_tx_fee)})
724724
# Test that funding non-standard "zero-fee" transactions is valid.
725725
result5 = self.nodes[3].fundrawtransaction(rawtx, {"fee_rate": 0})
726726
result6 = self.nodes[3].fundrawtransaction(rawtx, {"feeRate": 0})

test/functional/rpc_psbt.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,11 @@ def run_test(self):
190190
self.log.info("Test walletcreatefundedpsbt fee rate of 10000 sat/vB and 0.1 BTC/kvB produces a total fee at or slightly below -maxtxfee (~0.05290000)")
191191
res1 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"fee_rate": 10000, "add_inputs": True})
192192
assert_approx(res1["fee"], 0.055, 0.005)
193-
res2 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"feeRate": 0.1, "add_inputs": True})
193+
res2 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"feeRate": "0.1", "add_inputs": True})
194194
assert_approx(res2["fee"], 0.055, 0.005)
195195

196196
self.log.info("Test min fee rate checks with walletcreatefundedpsbt are bypassed, e.g. a fee_rate under 1 sat/vB is allowed")
197-
res3 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"fee_rate": 0.99999999, "add_inputs": True})
197+
res3 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"fee_rate": "0.99999999", "add_inputs": True})
198198
assert_approx(res3["fee"], 0.00000381, 0.0000001)
199199
res4 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"feeRate": 0.00000999, "add_inputs": True})
200200
assert_approx(res4["fee"], 0.00000381, 0.0000001)

test/functional/wallet_basic.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,8 @@ def run_test(self):
235235
fee_rate_btc_kvb = fee_rate_sat_vb * 1e3 / 1e8
236236
explicit_fee_rate_btc_kvb = Decimal(fee_rate_btc_kvb) / 1000
237237

238-
txid = self.nodes[2].sendmany(amounts={address: 10}, fee_rate=fee_rate_sat_vb)
238+
# Test passing fee_rate as a string
239+
txid = self.nodes[2].sendmany(amounts={address: 10}, fee_rate=str(fee_rate_sat_vb))
239240
self.nodes[2].generate(1)
240241
self.sync_all(self.nodes[0:3])
241242
balance = self.nodes[2].getbalance()
@@ -244,6 +245,17 @@ def run_test(self):
244245
node_0_bal += Decimal('10')
245246
assert_equal(self.nodes[0].getbalance(), node_0_bal)
246247

248+
# Test passing fee_rate as an integer
249+
amount = Decimal("0.0001")
250+
txid = self.nodes[2].sendmany(amounts={address: amount}, fee_rate=fee_rate_sat_vb)
251+
self.nodes[2].generate(1)
252+
self.sync_all(self.nodes[0:3])
253+
balance = self.nodes[2].getbalance()
254+
node_2_bal = self.check_fee_amount(balance, node_2_bal - amount, explicit_fee_rate_btc_kvb, self.get_vsize(self.nodes[2].gettransaction(txid)['hex']))
255+
assert_equal(balance, node_2_bal)
256+
node_0_bal += amount
257+
assert_equal(self.nodes[0].getbalance(), node_0_bal)
258+
247259
for key in ["totalFee", "feeRate"]:
248260
assert_raises_rpc_error(-8, "Unknown named parameter key", self.nodes[2].sendtoaddress, address=address, amount=1, fee_rate=1, key=1)
249261

@@ -405,7 +417,7 @@ def run_test(self):
405417
amount = 3
406418
fee_rate_sat_vb = 2
407419
fee_rate_btc_kvb = fee_rate_sat_vb * 1e3 / 1e8
408-
420+
# Test passing fee_rate as an integer
409421
txid = self.nodes[2].sendtoaddress(address=address, amount=amount, fee_rate=fee_rate_sat_vb)
410422
tx_size = self.get_vsize(self.nodes[2].gettransaction(txid)['hex'])
411423
self.nodes[0].generate(1)
@@ -414,6 +426,19 @@ def run_test(self):
414426
fee = prebalance - postbalance - Decimal(amount)
415427
assert_fee_amount(fee, tx_size, Decimal(fee_rate_btc_kvb))
416428

429+
prebalance = self.nodes[2].getbalance()
430+
amount = Decimal("0.001")
431+
fee_rate_sat_vb = 1.23
432+
fee_rate_btc_kvb = fee_rate_sat_vb * 1e3 / 1e8
433+
# Test passing fee_rate as a string
434+
txid = self.nodes[2].sendtoaddress(address=address, amount=amount, fee_rate=str(fee_rate_sat_vb))
435+
tx_size = self.get_vsize(self.nodes[2].gettransaction(txid)['hex'])
436+
self.nodes[0].generate(1)
437+
self.sync_all(self.nodes[0:3])
438+
postbalance = self.nodes[2].getbalance()
439+
fee = prebalance - postbalance - amount
440+
assert_fee_amount(fee, tx_size, Decimal(fee_rate_btc_kvb))
441+
417442
for key in ["totalFee", "feeRate"]:
418443
assert_raises_rpc_error(-8, "Unknown named parameter key", self.nodes[2].sendtoaddress, address=address, amount=1, fee_rate=1, key=1)
419444

test/functional/wallet_bumpfee.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def test_simple_bumpfee_succeeds(self, mode, rbf_node, peer_node, dest_address):
149149
self.sync_mempools((rbf_node, peer_node))
150150
assert rbfid in rbf_node.getrawmempool() and rbfid in peer_node.getrawmempool()
151151
if mode == "fee_rate":
152-
bumped_psbt = rbf_node.psbtbumpfee(rbfid, {"fee_rate": NORMAL})
152+
bumped_psbt = rbf_node.psbtbumpfee(rbfid, {"fee_rate": str(NORMAL)})
153153
bumped_tx = rbf_node.bumpfee(rbfid, {"fee_rate": NORMAL})
154154
else:
155155
bumped_psbt = rbf_node.psbtbumpfee(rbfid)

0 commit comments

Comments
 (0)