Merge branch '0-19-2-branch-rc1-9989' into 0-19-2-branch-rc1

This commit is contained in:
Oliver Gugger
2025-06-25 14:57:30 +02:00
3 changed files with 24 additions and 0 deletions

View File

@@ -36,6 +36,10 @@
## Functional Enhancements
- [Adds](https://github.com/lightningnetwork/lnd/pull/9989) a method
`FeeForWeightRoundUp` to the `chainfee` package which rounds up a calculated
fee value to the nearest satoshi.
## RPC Additions
* When querying
@@ -89,6 +93,7 @@ much more slowly.
* Abdulkbk
* djkazic
* hieblmi
* Olaoluwa Osuntokun
* Yong Yu
* Ziggie

View File

@@ -71,6 +71,14 @@ func (s SatPerKWeight) FeeForWeight(wu lntypes.WeightUnit) btcutil.Amount {
return btcutil.Amount(s) * btcutil.Amount(wu) / 1000
}
// FeeForWeightRoundUp calculates the fee resulting from this fee rate and the
// given weight in weight units (wu), rounding up to the nearest satoshi.
func (s SatPerKWeight) FeeForWeightRoundUp(
wu lntypes.WeightUnit) btcutil.Amount {
return (btcutil.Amount(s)*btcutil.Amount(wu) + 999) / 1000
}
// FeeForVByte calculates the fee resulting from this fee rate and the given
// size in vbytes (vb).
func (s SatPerKWeight) FeeForVByte(vb lntypes.VByte) btcutil.Amount {

View File

@@ -3,6 +3,7 @@ package chainfee
import (
"testing"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/stretchr/testify/require"
)
@@ -20,3 +21,13 @@ func TestSatPerVByteConversion(t *testing.T) {
// 1 sat/vb should be equal to 250 sat/kw.
require.Equal(t, SatPerKWeight(250), rate.FeePerKWeight())
}
// TestFeeForWeightRoundUp checks that the FeeForWeightRoundUp method correctly
// rounds up the fee for a given weight.
func TestFeeForWeightRoundUp(t *testing.T) {
feeRate := SatPerVByte(1).FeePerKWeight()
txWeight := lntypes.WeightUnit(674) // 674 weight units is 168.5 vb.
require.EqualValues(t, 168, feeRate.FeeForWeight(txWeight))
require.EqualValues(t, 169, feeRate.FeeForWeightRoundUp(txWeight))
}