rpcserver: enforce fee floor for fee rates input by the user

In a previous commit, we modified our fee rates to be sat/kw internally
as it was possible that the estimated fee rate was not enough to
properly broadcast the transaction. To remedy this, we decided to add a
fee floor, but this would only be enforced when querying the fee
estimator. In this commit, we attempt to do the same thing, but for fee
rates input manually by the user.
This commit is contained in:
Wilmer Paulino 2018-08-13 12:57:06 -07:00
parent 72aa79692c
commit 29efb02968
No known key found for this signature in database
GPG Key ID: 6DF57B9F9514972F

@ -434,8 +434,14 @@ func determineFeePerKw(feeEstimator lnwallet.FeeEstimator, targetConf int32,
// If a manual sat/byte fee rate is set, then we'll use that directly. // If a manual sat/byte fee rate is set, then we'll use that directly.
// We'll need to convert it to sat/kw as this is what we use internally. // We'll need to convert it to sat/kw as this is what we use internally.
case feePerByte != 0: case feePerByte != 0:
feePerKB := lnwallet.SatPerKVByte(feePerByte * 1000) feePerKW := lnwallet.SatPerKVByte(feePerByte * 1000).FeePerKWeight()
return feePerKB.FeePerKWeight(), nil if feePerKW < lnwallet.FeePerKwFloor {
rpcsLog.Infof("Manual fee rate input of %d sat/kw is "+
"too low, using %d sat/kw instead", feePerKW,
lnwallet.FeePerKwFloor)
feePerKW = lnwallet.FeePerKwFloor
}
return feePerKW, nil
// Otherwise, we'll attempt a relaxed confirmation target for the // Otherwise, we'll attempt a relaxed confirmation target for the
// transaction // transaction