Skip to content

Commit 48618da

Browse files
committed
Add checks for settxfee reasonableness
1 parent b5591ca commit 48618da

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/wallet/rpcwallet.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2982,8 +2982,16 @@ static UniValue settxfee(const JSONRPCRequest& request)
29822982
LOCK2(cs_main, pwallet->cs_wallet);
29832983

29842984
CAmount nAmount = AmountFromValue(request.params[0]);
2985+
CFeeRate tx_fee_rate(nAmount, 1000);
2986+
if (tx_fee_rate == 0) {
2987+
// automatic selection
2988+
} else if (tx_fee_rate < ::minRelayTxFee) {
2989+
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("txfee cannot be less than min relay tx fee (%s)", ::minRelayTxFee.ToString()));
2990+
} else if (tx_fee_rate < pwallet->m_min_fee) {
2991+
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("txfee cannot be less than wallet min fee (%s)", pwallet->m_min_fee.ToString()));
2992+
}
29852993

2986-
pwallet->m_pay_tx_fee = CFeeRate(nAmount, 1000);
2994+
pwallet->m_pay_tx_fee = tx_fee_rate;
29872995
return true;
29882996
}
29892997

0 commit comments

Comments
 (0)