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 {
|
func maxVal(mapping map[int]uint32) uint32 {
|
||||||
maxValue := uint32(0)
|
maxValue := uint32(0)
|
||||||
for _, value := range mapping {
|
for _, value := range mapping {
|
||||||
if maxValue < value {
|
maxValue = max(maxValue, value)
|
||||||
maxValue = value
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return maxValue
|
return maxValue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"math"
|
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/btcsuite/btcd/btcutil"
|
"github.com/btcsuite/btcd/btcutil"
|
||||||
@@ -391,9 +390,7 @@ func (c *commitSweepResolver) Launch() error {
|
|||||||
// expires after.
|
// expires after.
|
||||||
unlockHeight := confHeight + c.commitResolution.MaturityDelay
|
unlockHeight := confHeight + c.commitResolution.MaturityDelay
|
||||||
if c.hasCLTV() {
|
if c.hasCLTV() {
|
||||||
unlockHeight = uint32(math.Max(
|
unlockHeight = max(unlockHeight, c.leaseExpiry)
|
||||||
float64(unlockHeight), float64(c.leaseExpiry),
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update report now that we learned the confirmation height.
|
// Update report now that we learned the confirmation height.
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package contractcourt
|
package contractcourt
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"math"
|
|
||||||
|
|
||||||
"github.com/btcsuite/btcd/wire"
|
"github.com/btcsuite/btcd/wire"
|
||||||
"github.com/lightningnetwork/lnd/chainntnfs"
|
"github.com/lightningnetwork/lnd/chainntnfs"
|
||||||
"github.com/lightningnetwork/lnd/channeldb"
|
"github.com/lightningnetwork/lnd/channeldb"
|
||||||
@@ -42,9 +40,7 @@ func (h *htlcLeaseResolver) deriveWaitHeight(csvDelay uint32,
|
|||||||
|
|
||||||
waitHeight := uint32(commitSpend.SpendingHeight) + csvDelay - 1
|
waitHeight := uint32(commitSpend.SpendingHeight) + csvDelay - 1
|
||||||
if h.hasCLTV() {
|
if h.hasCLTV() {
|
||||||
waitHeight = uint32(math.Max(
|
waitHeight = max(waitHeight, h.leaseExpiry)
|
||||||
float64(waitHeight), float64(h.leaseExpiry),
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return waitHeight
|
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
|
to the sweeper to improve code quality, with a renaming of the internal state
|
||||||
(`Failed` -> `Fatal`) used by the inputs tracked in the sweeper.
|
(`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
|
## Tooling and Documentation
|
||||||
|
|
||||||
* [Improved `lncli create` command help text](https://github.com/lightningnetwork/lnd/pull/9077)
|
* [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"
|
"crypto/sha256"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
|
||||||
"slices"
|
"slices"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
@@ -9512,7 +9511,7 @@ func (lc *LightningChannel) MaxFeeRate(
|
|||||||
// rather than us decreasing in local balance. The max fee rate is
|
// rather than us decreasing in local balance. The max fee rate is
|
||||||
// always floored by the current fee rate of the channel.
|
// always floored by the current fee rate of the channel.
|
||||||
idealMaxFee := float64(baseBalance) * maxAllocation
|
idealMaxFee := float64(baseBalance) * maxAllocation
|
||||||
maxFee := math.Max(float64(currentFee), idealMaxFee)
|
maxFee := max(float64(currentFee), idealMaxFee)
|
||||||
maxFeeAllocation := maxFee / float64(baseBalance)
|
maxFeeAllocation := maxFee / float64(baseBalance)
|
||||||
maxFeeRate := chainfee.SatPerKWeight(maxFee / (float64(weight) / 1000))
|
maxFeeRate := chainfee.SatPerKWeight(maxFee / (float64(weight) / 1000))
|
||||||
|
|
||||||
@@ -9538,17 +9537,10 @@ func (lc *LightningChannel) IdealCommitFeeRate(netFeeRate, minRelayFeeRate,
|
|||||||
switch lc.channelState.ChanType.HasAnchors() &&
|
switch lc.channelState.ChanType.HasAnchors() &&
|
||||||
maxFeeRate > maxAnchorCommitFeeRate {
|
maxFeeRate > maxAnchorCommitFeeRate {
|
||||||
case true:
|
case true:
|
||||||
commitFeeRate = chainfee.SatPerKWeight(
|
commitFeeRate = min(netFeeRate, maxAnchorCommitFeeRate)
|
||||||
math.Min(
|
|
||||||
float64(netFeeRate),
|
|
||||||
float64(maxAnchorCommitFeeRate),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
case false:
|
case false:
|
||||||
commitFeeRate = chainfee.SatPerKWeight(
|
commitFeeRate = min(netFeeRate, maxFeeRate)
|
||||||
math.Min(float64(netFeeRate), float64(maxFeeRate)),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if commitFeeRate >= minRelayFeeRate {
|
if commitFeeRate >= minRelayFeeRate {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import (
|
|||||||
"github.com/btcsuite/btcd/btcutil"
|
"github.com/btcsuite/btcd/btcutil"
|
||||||
graphdb "github.com/lightningnetwork/lnd/graph/db"
|
graphdb "github.com/lightningnetwork/lnd/graph/db"
|
||||||
"github.com/lightningnetwork/lnd/graph/db/models"
|
"github.com/lightningnetwork/lnd/graph/db/models"
|
||||||
"github.com/lightningnetwork/lnd/lntypes"
|
|
||||||
"github.com/lightningnetwork/lnd/lnwire"
|
"github.com/lightningnetwork/lnd/lnwire"
|
||||||
"github.com/lightningnetwork/lnd/routing/route"
|
"github.com/lightningnetwork/lnd/routing/route"
|
||||||
)
|
)
|
||||||
@@ -379,13 +378,11 @@ func (u *edgeUnifier) getEdgeNetwork(netAmtReceived lnwire.MilliSatoshi,
|
|||||||
|
|
||||||
capMsat = edge.policy.MaxHTLC
|
capMsat = edge.policy.MaxHTLC
|
||||||
}
|
}
|
||||||
maxCapMsat = lntypes.Max(capMsat, maxCapMsat)
|
maxCapMsat = max(capMsat, maxCapMsat)
|
||||||
|
|
||||||
// Track the maximum time lock of all channels that are
|
// Track the maximum time lock of all channels that are
|
||||||
// candidate for non-strict forwarding at the routing node.
|
// candidate for non-strict forwarding at the routing node.
|
||||||
maxTimelock = lntypes.Max(
|
maxTimelock = max(maxTimelock, edge.policy.TimeLockDelta)
|
||||||
maxTimelock, edge.policy.TimeLockDelta,
|
|
||||||
)
|
|
||||||
|
|
||||||
outboundFee := int64(edge.policy.ComputeFee(amt))
|
outboundFee := int64(edge.policy.ComputeFee(amt))
|
||||||
fee := outboundFee + inboundFee
|
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.
|
// minAmt returns the minimum amount that can be forwarded on this connection.
|
||||||
func (u *edgeUnifier) minAmt() lnwire.MilliSatoshi {
|
func (u *edgeUnifier) minAmt() lnwire.MilliSatoshi {
|
||||||
min := lnwire.MaxMilliSatoshi
|
minAmount := lnwire.MaxMilliSatoshi
|
||||||
for _, edge := range u.edges {
|
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
|
// 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
|
// multiplying the value with 2^n. We limit the power to 32 to avoid
|
||||||
// overflows.
|
// 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
|
actualDelay := initialDelay * factor
|
||||||
|
|
||||||
// Cap the delay at the maximum configured value.
|
// 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)
|
"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
|
// Collect the ranges that fall before and after the new range along
|
||||||
// with the start and end values of the new range.
|
// with the start and end values of the new range.
|
||||||
var before, after []rangeItem
|
var before, after []rangeItem
|
||||||
|
|||||||
@@ -74,24 +74,6 @@ func (a *RangeIndex) addRange(start, end uint64) error {
|
|||||||
"than end height %d", start, end)
|
"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
|
// Collect the ranges that fall before and after the new range along
|
||||||
// with the start and end values of the new range.
|
// with the start and end values of the new range.
|
||||||
var before, after []rangeItem
|
var before, after []rangeItem
|
||||||
|
|||||||
@@ -74,24 +74,6 @@ func (a *RangeIndex) addRange(start, end uint64) error {
|
|||||||
"than end height %d", start, end)
|
"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
|
// Collect the ranges that fall before and after the new range along
|
||||||
// with the start and end values of the new range.
|
// with the start and end values of the new range.
|
||||||
var before, after []rangeItem
|
var before, after []rangeItem
|
||||||
|
|||||||
Reference in new issue
Block a user