Merge pull request #9451 from Juneezee/minmax

refactor: replace min/max helpers with built-in min/max
This commit is contained in:
Oliver Gugger authored and GitHub committed 2025-02-10 05:57:34 -06:00
commit 6f312d457f
12 files changed
+15 -137

No files matched your search

+1 -3
View File
@@ -85,9 +85,7 @@ func NewSimpleGraph(g ChannelGraph) (*SimpleGraph, error) {
func maxVal(mapping map[int]uint32) uint32 {
maxValue := uint32(0)
for _, value := range mapping {
if maxValue < value {
maxValue = value
}
maxValue = max(maxValue, value)
}
return maxValue
}
+1 -4
View File
@@ -4,7 +4,6 @@ import (
"encoding/binary"
"fmt"
"io"
"math"
"sync"
"github.com/btcsuite/btcd/btcutil"
@@ -391,9 +390,7 @@ func (c *commitSweepResolver) Launch() error {
// expires after.
unlockHeight := confHeight + c.commitResolution.MaturityDelay
if c.hasCLTV() {
unlockHeight = uint32(math.Max(
float64(unlockHeight), float64(c.leaseExpiry),
))
unlockHeight = max(unlockHeight, c.leaseExpiry)
}
// Update report now that we learned the confirmation height.
+1 -5
View File
@@ -1,8 +1,6 @@
package contractcourt
import (
"math"
"github.com/btcsuite/btcd/wire"
"github.com/lightningnetwork/lnd/chainntnfs"
"github.com/lightningnetwork/lnd/channeldb"
@@ -42,9 +40,7 @@ func (h *htlcLeaseResolver) deriveWaitHeight(csvDelay uint32,
waitHeight := uint32(commitSpend.SpendingHeight) + csvDelay - 1
if h.hasCLTV() {
waitHeight = uint32(math.Max(
float64(waitHeight), float64(h.leaseExpiry),
))
waitHeight = max(waitHeight, h.leaseExpiry)
}
return waitHeight
@@ -329,6 +329,9 @@ The underlying functionality between those two options remain the same.
to the sweeper to improve code quality, with a renaming of the internal state
(`Failed` -> `Fatal`) used by the inputs tracked in the sweeper.
* A code refactor that [replaces min/max helpers with built-in min/max
functions](https://github.com/lightningnetwork/lnd/pull/9451).
## Tooling and Documentation
* [Improved `lncli create` command help text](https://github.com/lightningnetwork/lnd/pull/9077)
-26
View File
@@ -1,26 +0,0 @@
package lntypes
import "golang.org/x/exp/constraints"
// Number defines a type constraint for numbers.
type Number interface {
constraints.Integer | constraints.Float
}
// Max returns the greater of the two inputs.
func Max[N Number](op1 N, op2 N) N {
if op1 > op2 {
return op1
}
return op2
}
// Min returns the lesser of the two inputs.
func Min[N Number](op1 N, op2 N) N {
if op1 < op2 {
return op1
}
return op2
}
-25
View File
@@ -1,25 +0,0 @@
package lntypes
import (
"testing"
"github.com/stretchr/testify/require"
)
// TestMin tests getting correct minimal numbers.
func TestMin(t *testing.T) {
t.Parallel()
require.Equal(t, 1, Min(1, 1))
require.Equal(t, 1, Min(1, 2))
require.Equal(t, 1.5, Min(1.5, 2.5))
}
// TestMax tests getting correct maximal numbers.
func TestMax(t *testing.T) {
t.Parallel()
require.Equal(t, 1, Max(1, 1))
require.Equal(t, 2, Max(1, 2))
require.Equal(t, 2.5, Max(1.5, 2.5))
}
+3 -11
View File
@@ -7,7 +7,6 @@ import (
"crypto/sha256"
"errors"
"fmt"
"math"
"slices"
"sync"
@@ -9512,7 +9511,7 @@ func (lc *LightningChannel) MaxFeeRate(
// rather than us decreasing in local balance. The max fee rate is
// always floored by the current fee rate of the channel.
idealMaxFee := float64(baseBalance) * maxAllocation
maxFee := math.Max(float64(currentFee), idealMaxFee)
maxFee := max(float64(currentFee), idealMaxFee)
maxFeeAllocation := maxFee / float64(baseBalance)
maxFeeRate := chainfee.SatPerKWeight(maxFee / (float64(weight) / 1000))
@@ -9538,17 +9537,10 @@ func (lc *LightningChannel) IdealCommitFeeRate(netFeeRate, minRelayFeeRate,
switch lc.channelState.ChanType.HasAnchors() &&
maxFeeRate > maxAnchorCommitFeeRate {
case true:
commitFeeRate = chainfee.SatPerKWeight(
math.Min(
float64(netFeeRate),
float64(maxAnchorCommitFeeRate),
),
)
commitFeeRate = min(netFeeRate, maxAnchorCommitFeeRate)
case false:
commitFeeRate = chainfee.SatPerKWeight(
math.Min(float64(netFeeRate), float64(maxFeeRate)),
)
commitFeeRate = min(netFeeRate, maxFeeRate)
}
if commitFeeRate >= minRelayFeeRate {
+5 -8
View File
@@ -6,7 +6,6 @@ import (
"github.com/btcsuite/btcd/btcutil"
graphdb "github.com/lightningnetwork/lnd/graph/db"
"github.com/lightningnetwork/lnd/graph/db/models"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/lnwire"
"github.com/lightningnetwork/lnd/routing/route"
)
@@ -379,13 +378,11 @@ func (u *edgeUnifier) getEdgeNetwork(netAmtReceived lnwire.MilliSatoshi,
capMsat = edge.policy.MaxHTLC
}
maxCapMsat = lntypes.Max(capMsat, maxCapMsat)
maxCapMsat = max(capMsat, maxCapMsat)
// Track the maximum time lock of all channels that are
// candidate for non-strict forwarding at the routing node.
maxTimelock = lntypes.Max(
maxTimelock, edge.policy.TimeLockDelta,
)
maxTimelock = max(maxTimelock, edge.policy.TimeLockDelta)
outboundFee := int64(edge.policy.ComputeFee(amt))
fee := outboundFee + inboundFee
@@ -440,10 +437,10 @@ func (u *edgeUnifier) getEdgeNetwork(netAmtReceived lnwire.MilliSatoshi,
// minAmt returns the minimum amount that can be forwarded on this connection.
func (u *edgeUnifier) minAmt() lnwire.MilliSatoshi {
min := lnwire.MaxMilliSatoshi
minAmount := lnwire.MaxMilliSatoshi
for _, edge := range u.edges {
min = lntypes.Min(min, edge.policy.MinHTLC)
minAmount = min(minAmount, edge.policy.MinHTLC)
}
return min
return minAmount
}
+1 -1
View File
@@ -183,7 +183,7 @@ func randRetryDelay(initialRetryDelay, maxRetryDelay time.Duration,
// attempt. If we double something n times, that's the same as
// multiplying the value with 2^n. We limit the power to 32 to avoid
// overflows.
factor := time.Duration(math.Pow(2, math.Min(float64(attempt), 32)))
factor := time.Duration(math.Pow(2, min(float64(attempt), 32)))
actualDelay := initialDelay * factor
// Cap the delay at the maximum configured value.
-18
View File
@@ -74,24 +74,6 @@ func (a *RangeIndex) addRange(start, end uint64) error {
"than end height %d", start, end)
}
// min is a helper closure that will return the minimum of two uint64s.
min := func(a, b uint64) uint64 {
if a < b {
return a
}
return b
}
// max is a helper closure that will return the maximum of two uint64s.
max := func(a, b uint64) uint64 {
if a > b {
return a
}
return b
}
// Collect the ranges that fall before and after the new range along
// with the start and end values of the new range.
var before, after []rangeItem
-18
View File
@@ -74,24 +74,6 @@ func (a *RangeIndex) addRange(start, end uint64) error {
"than end height %d", start, end)
}
// min is a helper closure that will return the minimum of two uint64s.
min := func(a, b uint64) uint64 {
if a < b {
return a
}
return b
}
// max is a helper closure that will return the maximum of two uint64s.
max := func(a, b uint64) uint64 {
if a > b {
return a
}
return b
}
// Collect the ranges that fall before and after the new range along
// with the start and end values of the new range.
var before, after []rangeItem
-18
View File
@@ -74,24 +74,6 @@ func (a *RangeIndex) addRange(start, end uint64) error {
"than end height %d", start, end)
}
// min is a helper closure that will return the minimum of two uint64s.
min := func(a, b uint64) uint64 {
if a < b {
return a
}
return b
}
// max is a helper closure that will return the maximum of two uint64s.
max := func(a, b uint64) uint64 {
if a > b {
return a
}
return b
}
// Collect the ranges that fall before and after the new range along
// with the start and end values of the new range.
var before, after []rangeItem