Skip to content

Commit 052427e

Browse files
committed
wallet, bugfix: fix bumpfee with explicit fee rate modes
1 parent 80c8a02 commit 052427e

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/wallet/rpcwallet.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3461,7 +3461,6 @@ static RPCHelpMan bumpfee_helper(std::string method_name)
34613461
if (options.exists("fee_rate")) {
34623462
throw JSONRPCError(RPC_INVALID_PARAMETER, "conf_target can't be set with fee_rate. Please provide either a confirmation target in blocks for automatic fee estimation, or an explicit fee rate.");
34633463
}
3464-
coin_control.m_confirm_target = ParseConfirmTarget(conf_target, pwallet->chain().estimateMaxBlocks());
34653464
} else if (options.exists("fee_rate")) {
34663465
CFeeRate fee_rate(AmountFromValue(options["fee_rate"]));
34673466
if (fee_rate <= CFeeRate(0)) {

test/functional/wallet_bumpfee.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import io
1818

1919
from test_framework.blocktools import add_witness_commitment, create_block, create_coinbase, send_to_witness
20-
from test_framework.messages import BIP125_SEQUENCE_NUMBER, CTransaction
20+
from test_framework.messages import BIP125_SEQUENCE_NUMBER, COIN, CTransaction
2121
from test_framework.test_framework import BitcoinTestFramework
2222
from test_framework.util import (
2323
assert_equal,
@@ -36,6 +36,8 @@
3636
HIGH = 0.00500000
3737
TOO_HIGH = 1.00000000
3838

39+
BTC_MODE = "BTC/kB"
40+
SAT_MODE = "sat/B"
3941

4042
class BumpFeeTest(BitcoinTestFramework):
4143
def set_test_params(self):
@@ -77,8 +79,8 @@ def run_test(self):
7779
self.log.info("Running tests")
7880
dest_address = peer_node.getnewaddress()
7981
self.test_invalid_parameters(rbf_node, dest_address)
80-
test_simple_bumpfee_succeeds(self, "default", rbf_node, peer_node, dest_address)
81-
test_simple_bumpfee_succeeds(self, "fee_rate", rbf_node, peer_node, dest_address)
82+
for mode in ["default", "fee_rate", BTC_MODE, SAT_MODE]:
83+
test_simple_bumpfee_succeeds(self, mode, rbf_node, peer_node, dest_address)
8284
test_feerate_args(self, rbf_node, peer_node, dest_address)
8385
test_segwit_bumpfee_succeeds(self, rbf_node, dest_address)
8486
test_nonrbf_bumpfee_fails(self, peer_node, dest_address)
@@ -132,6 +134,13 @@ def test_simple_bumpfee_succeeds(self, mode, rbf_node, peer_node, dest_address):
132134
if mode == "fee_rate":
133135
bumped_psbt = rbf_node.psbtbumpfee(rbfid, {"fee_rate": NORMAL})
134136
bumped_tx = rbf_node.bumpfee(rbfid, {"fee_rate": NORMAL})
137+
elif mode == BTC_MODE:
138+
bumped_psbt = rbf_node.psbtbumpfee(rbfid, {"conf_target": NORMAL, "estimate_mode": BTC_MODE})
139+
bumped_tx = rbf_node.bumpfee(rbfid, {"conf_target": NORMAL, "estimate_mode": BTC_MODE})
140+
elif mode == SAT_MODE:
141+
sat_fee = NORMAL * COIN / 1000 # convert NORMAL from BTC/kB to sat/B
142+
bumped_psbt = rbf_node.psbtbumpfee(rbfid, {"conf_target": sat_fee, "estimate_mode": SAT_MODE})
143+
bumped_tx = rbf_node.bumpfee(rbfid, {"conf_target": sat_fee, "estimate_mode": SAT_MODE})
135144
else:
136145
bumped_psbt = rbf_node.psbtbumpfee(rbfid)
137146
bumped_tx = rbf_node.bumpfee(rbfid)

0 commit comments

Comments
 (0)