Merge pull request #9451 from Juneezee/minmax
refactor: replace min/max helpers with built-in min/max
This commit is contained in:
12 files changed
+15
-137
No files matched your search
@@ -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
|
||||
}
|
||||
|
||||
@@ -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,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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
@@ -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 {
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user