lnd/lnwallet/parameters_test.go

96 lines
2.1 KiB
Go
Raw Normal View History

package lnwallet
import (
"fmt"
"testing"
"github.com/btcsuite/btcd/btcutil"
"github.com/lightningnetwork/lnd/input"
"github.com/lightningnetwork/lnd/lnwire"
"github.com/stretchr/testify/require"
)
// TestDefaultRoutingFeeLimitForAmount tests that we use the correct default
// routing fee depending on the amount.
func TestDefaultRoutingFeeLimitForAmount(t *testing.T) {
t.Parallel()
tests := []struct {
amount lnwire.MilliSatoshi
expectedLimit lnwire.MilliSatoshi
}{
{
amount: 1,
expectedLimit: 1,
},
{
amount: lnwire.NewMSatFromSatoshis(1_000),
expectedLimit: lnwire.NewMSatFromSatoshis(1_000),
},
{
amount: lnwire.NewMSatFromSatoshis(1_001),
expectedLimit: 50_050,
},
{
amount: 5_000_000_000,
expectedLimit: 250_000_000,
},
}
for _, test := range tests {
test := test
t.Run(fmt.Sprintf("%d sats", test.amount), func(t *testing.T) {
feeLimit := DefaultRoutingFeeLimitForAmount(test.amount)
require.Equal(t, int64(test.expectedLimit), int64(feeLimit))
})
}
}
// TestDustLimitForSize tests that we receive the expected dust limits for
// various script types from btcd's GetDustThreshold function.
func TestDustLimitForSize(t *testing.T) {
t.Parallel()
tests := []struct {
name string
size int
expectedLimit btcutil.Amount
}{
{
name: "p2pkh dust limit",
size: input.P2PKHSize,
expectedLimit: btcutil.Amount(546),
},
{
name: "p2sh dust limit",
size: input.P2SHSize,
expectedLimit: btcutil.Amount(540),
},
{
name: "p2wpkh dust limit",
size: input.P2WPKHSize,
expectedLimit: btcutil.Amount(294),
},
{
name: "p2wsh dust limit",
size: input.P2WSHSize,
expectedLimit: btcutil.Amount(330),
},
{
name: "unknown witness limit",
size: input.UnknownWitnessSize,
expectedLimit: btcutil.Amount(354),
},
}
for _, test := range tests {
test := test
t.Run(test.name, func(t *testing.T) {
dustlimit := DustLimitForSize(test.size)
require.Equal(t, test.expectedLimit, dustlimit)
})
}
}