Skip to content

Commit 847288d

Browse files
committed
test: fee rate values that cannot be represented as sat/vB
1 parent 06a90fa commit 847288d

File tree

5 files changed

+21
-0
lines changed

5 files changed

+21
-0
lines changed

test/functional/rpc_fundrawtransaction.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,10 @@ def test_option_feerate(self):
771771
# Test fee rate values that don't pass fixed-point parsing checks.
772772
for invalid_value in ["", 0.000000001, 1e-09, 1.111111111, 1111111111111111, "31.999999999999999999999"]:
773773
assert_raises_rpc_error(-3, "Invalid amount", node.fundrawtransaction, rawtx, {param: invalid_value, "add_inputs": True})
774+
# Test fee_rate values that cannot be represented in sat/vB.
775+
for invalid_value in [0.0001, 0.00000001, 0.00099999, 31.99999999, "0.0001", "0.00000001", "0.00099999", "31.99999999"]:
776+
assert_raises_rpc_error(-3, "Invalid amount",
777+
node.fundrawtransaction, rawtx, {"fee_rate": invalid_value, "add_inputs": True})
774778

775779
self.log.info("Test min fee rate checks are bypassed with fundrawtxn, e.g. a fee_rate under 1 sat/vB is allowed")
776780
node.fundrawtransaction(rawtx, {"fee_rate": 0.999, "add_inputs": True})

test/functional/rpc_psbt.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,10 @@ def run_test(self):
216216
for invalid_value in ["", 0.000000001, 1e-09, 1.111111111, 1111111111111111, "31.999999999999999999999"]:
217217
assert_raises_rpc_error(-3, "Invalid amount",
218218
self.nodes[1].walletcreatefundedpsbt, inputs, outputs, 0, {param: invalid_value, "add_inputs": True})
219+
# Test fee_rate values that cannot be represented in sat/vB.
220+
for invalid_value in [0.0001, 0.00000001, 0.00099999, 31.99999999, "0.0001", "0.00000001", "0.00099999", "31.99999999"]:
221+
assert_raises_rpc_error(-3, "Invalid amount",
222+
self.nodes[1].walletcreatefundedpsbt, inputs, outputs, 0, {"fee_rate": invalid_value, "add_inputs": True})
219223

220224
self.log.info("- raises RPC error if both feeRate and fee_rate are passed")
221225
assert_raises_rpc_error(-8, "Cannot specify both fee_rate (sat/vB) and feeRate (BTC/kvB)",

test/functional/wallet_basic.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,9 @@ def run_test(self):
276276
# Test fee_rate values that don't pass fixed-point parsing checks.
277277
for invalid_value in ["", 0.000000001, 1e-09, 1.111111111, 1111111111111111, "31.999999999999999999999"]:
278278
assert_raises_rpc_error(-3, msg, self.nodes[2].sendmany, amounts={address: 1.0}, fee_rate=invalid_value)
279+
# Test fee_rate values that cannot be represented in sat/vB.
280+
for invalid_value in [0.0001, 0.00000001, 0.00099999, 31.99999999, "0.0001", "0.00000001", "0.00099999", "31.99999999"]:
281+
assert_raises_rpc_error(-3, msg, self.nodes[2].sendmany, amounts={address: 10}, fee_rate=invalid_value)
279282
# Test fee_rate out of range (negative number).
280283
assert_raises_rpc_error(-3, OUT_OF_RANGE, self.nodes[2].sendmany, amounts={address: 10}, fee_rate=-1)
281284
# Test type error.
@@ -469,6 +472,9 @@ def run_test(self):
469472
# Test fee_rate values that don't pass fixed-point parsing checks.
470473
for invalid_value in ["", 0.000000001, 1e-09, 1.111111111, 1111111111111111, "31.999999999999999999999"]:
471474
assert_raises_rpc_error(-3, msg, self.nodes[2].sendtoaddress, address=address, amount=1.0, fee_rate=invalid_value)
475+
# Test fee_rate values that cannot be represented in sat/vB.
476+
for invalid_value in [0.0001, 0.00000001, 0.00099999, 31.99999999, "0.0001", "0.00000001", "0.00099999", "31.99999999"]:
477+
assert_raises_rpc_error(-3, msg, self.nodes[2].sendtoaddress, address=address, amount=10, fee_rate=invalid_value)
472478
# Test fee_rate out of range (negative number).
473479
assert_raises_rpc_error(-3, OUT_OF_RANGE, self.nodes[2].sendtoaddress, address=address, amount=1.0, fee_rate=-1)
474480
# Test type error.

test/functional/wallet_bumpfee.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ def test_invalid_parameters(self, rbf_node, peer_node, dest_address):
120120
# Test fee_rate values that don't pass fixed-point parsing checks.
121121
for invalid_value in ["", 0.000000001, 1e-09, 1.111111111, 1111111111111111, "31.999999999999999999999"]:
122122
assert_raises_rpc_error(-3, msg, rbf_node.bumpfee, rbfid, {"fee_rate": invalid_value})
123+
# Test fee_rate values that cannot be represented in sat/vB.
124+
for invalid_value in [0.0001, 0.00000001, 0.00099999, 31.99999999, "0.0001", "0.00000001", "0.00099999", "31.99999999"]:
125+
assert_raises_rpc_error(-3, msg, rbf_node.bumpfee, rbfid, {"fee_rate": invalid_value})
123126
# Test fee_rate out of range (negative number).
124127
assert_raises_rpc_error(-3, "Amount out of range", rbf_node.bumpfee, rbfid, {"fee_rate": -1})
125128
# Test type error.

test/functional/wallet_send.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,10 @@ def run_test(self):
365365
for invalid_value in ["", 0.000000001, 1e-09, 1.111111111, 1111111111111111, "31.999999999999999999999"]:
366366
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, fee_rate=invalid_value, expect_error=(-3, msg))
367367
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_fee_rate=invalid_value, expect_error=(-3, msg))
368+
# Test fee_rate values that cannot be represented in sat/vB.
369+
for invalid_value in [0.0001, 0.00000001, 0.00099999, 31.99999999, "0.0001", "0.00000001", "0.00099999", "31.99999999"]:
370+
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, fee_rate=invalid_value, expect_error=(-3, msg))
371+
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_fee_rate=invalid_value, expect_error=(-3, msg))
368372
# Test fee_rate out of range (negative number).
369373
msg = "Amount out of range"
370374
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, fee_rate=-1, expect_error=(-3, msg))

0 commit comments

Comments
 (0)