mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-06-12 09:52:14 +02:00
lnwallet: increase legacy fee limit threshold to 1k sats
In this commit, we increase the legacy fee limit threshold (the amount below which we'll allow 100% of funds to go to fees for the non-v2 RPC calls) from 50 sats to 1k sats.
This commit is contained in:
parent
04bbbea9a7
commit
80e304573c
@ -22,13 +22,14 @@ connection from the watch-only node.
|
|||||||
* A bug that allowed fees to be up to 100% of the payment amount was fixed by
|
* A bug that allowed fees to be up to 100% of the payment amount was fixed by
|
||||||
[introducing a more sane default
|
[introducing a more sane default
|
||||||
value](https://github.com/lightningnetwork/lnd/pull/6226) of 5% routing fees
|
value](https://github.com/lightningnetwork/lnd/pull/6226) of 5% routing fees
|
||||||
(except for small amounts <= 50 satoshis where the 100% routing fees are kept
|
(except for small amounts <= [1k
|
||||||
to accommodate for the base fee in channels). To avoid falling back to a
|
satoshis](https://github.com/lightningnetwork/lnd/pull/6234) where the 100%
|
||||||
default value, users should always set their own fee limits by using the
|
routing fees are kept to accommodate for the base fee in channels). To avoid
|
||||||
`--fee_limit` or `--fee_limit_percent` flags on the `lncli payinvoice`,
|
falling back to a default value, users should always set their own fee limits
|
||||||
`lncli sendpayment` and `lncli queryroutes` commands. Users of the gRPC or
|
by using the `--fee_limit` or `--fee_limit_percent` flags on the `lncli
|
||||||
REST API should set the `fee_limit` field on the corresponding calls
|
payinvoice`, `lncli sendpayment` and `lncli queryroutes` commands. Users of
|
||||||
(`SendPayment`, `SendPaymentSync`, `QueryRoutes`).
|
the gRPC or REST API should set the `fee_limit` field on the corresponding
|
||||||
|
calls (`SendPayment`, `SendPaymentSync`, `QueryRoutes`).
|
||||||
|
|
||||||
## Database
|
## Database
|
||||||
|
|
||||||
|
@ -1939,7 +1939,7 @@ type SendRequest struct {
|
|||||||
//This value can be represented either as a percentage of the amount being
|
//This value can be represented either as a percentage of the amount being
|
||||||
//sent, or as a fixed amount of the maximum fee the user is willing the pay to
|
//sent, or as a fixed amount of the maximum fee the user is willing the pay to
|
||||||
//send the payment. If not specified, lnd will use a default value of 100%
|
//send the payment. If not specified, lnd will use a default value of 100%
|
||||||
//fees for small amounts (<=50 sat) or 5% fees for larger amounts.
|
//fees for small amounts (<=1k sat) or 5% fees for larger amounts.
|
||||||
FeeLimit *FeeLimit `protobuf:"bytes,8,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"`
|
FeeLimit *FeeLimit `protobuf:"bytes,8,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"`
|
||||||
//
|
//
|
||||||
//The channel id of the channel that must be taken to the first hop. If zero,
|
//The channel id of the channel that must be taken to the first hop. If zero,
|
||||||
@ -8519,7 +8519,7 @@ type QueryRoutesRequest struct {
|
|||||||
//This value can be represented either as a percentage of the amount being
|
//This value can be represented either as a percentage of the amount being
|
||||||
//sent, or as a fixed amount of the maximum fee the user is willing the pay to
|
//sent, or as a fixed amount of the maximum fee the user is willing the pay to
|
||||||
//send the payment. If not specified, lnd will use a default value of 100%
|
//send the payment. If not specified, lnd will use a default value of 100%
|
||||||
//fees for small amounts (<=50 sat) or 5% fees for larger amounts.
|
//fees for small amounts (<=1k sat) or 5% fees for larger amounts.
|
||||||
FeeLimit *FeeLimit `protobuf:"bytes,5,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"`
|
FeeLimit *FeeLimit `protobuf:"bytes,5,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"`
|
||||||
//
|
//
|
||||||
//A list of nodes to ignore during path finding. When using REST, these fields
|
//A list of nodes to ignore during path finding. When using REST, these fields
|
||||||
|
@ -754,7 +754,7 @@ message SendRequest {
|
|||||||
This value can be represented either as a percentage of the amount being
|
This value can be represented either as a percentage of the amount being
|
||||||
sent, or as a fixed amount of the maximum fee the user is willing the pay to
|
sent, or as a fixed amount of the maximum fee the user is willing the pay to
|
||||||
send the payment. If not specified, lnd will use a default value of 100%
|
send the payment. If not specified, lnd will use a default value of 100%
|
||||||
fees for small amounts (<=50 sat) or 5% fees for larger amounts.
|
fees for small amounts (<=1k sat) or 5% fees for larger amounts.
|
||||||
*/
|
*/
|
||||||
FeeLimit fee_limit = 8;
|
FeeLimit fee_limit = 8;
|
||||||
|
|
||||||
@ -2576,7 +2576,7 @@ message QueryRoutesRequest {
|
|||||||
This value can be represented either as a percentage of the amount being
|
This value can be represented either as a percentage of the amount being
|
||||||
sent, or as a fixed amount of the maximum fee the user is willing the pay to
|
sent, or as a fixed amount of the maximum fee the user is willing the pay to
|
||||||
send the payment. If not specified, lnd will use a default value of 100%
|
send the payment. If not specified, lnd will use a default value of 100%
|
||||||
fees for small amounts (<=50 sat) or 5% fees for larger amounts.
|
fees for small amounts (<=1k sat) or 5% fees for larger amounts.
|
||||||
*/
|
*/
|
||||||
FeeLimit fee_limit = 5;
|
FeeLimit fee_limit = 5;
|
||||||
|
|
||||||
|
@ -6238,7 +6238,7 @@
|
|||||||
},
|
},
|
||||||
"fee_limit": {
|
"fee_limit": {
|
||||||
"$ref": "#/definitions/lnrpcFeeLimit",
|
"$ref": "#/definitions/lnrpcFeeLimit",
|
||||||
"description": "The maximum number of satoshis that will be paid as a fee of the payment.\nThis value can be represented either as a percentage of the amount being\nsent, or as a fixed amount of the maximum fee the user is willing the pay to\nsend the payment. If not specified, lnd will use a default value of 100%\nfees for small amounts (\u003c=50 sat) or 5% fees for larger amounts."
|
"description": "The maximum number of satoshis that will be paid as a fee of the payment.\nThis value can be represented either as a percentage of the amount being\nsent, or as a fixed amount of the maximum fee the user is willing the pay to\nsend the payment. If not specified, lnd will use a default value of 100%\nfees for small amounts (\u003c=1k sat) or 5% fees for larger amounts."
|
||||||
},
|
},
|
||||||
"outgoing_chan_id": {
|
"outgoing_chan_id": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
|
@ -8,10 +8,13 @@ import (
|
|||||||
"github.com/lightningnetwork/lnd/lnwire"
|
"github.com/lightningnetwork/lnd/lnwire"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
var (
|
||||||
// RoutingFee100PercentUpTo is the cut-off amount we allow 100% fees to
|
// RoutingFee100PercentUpTo is the cut-off amount we allow 100% fees to
|
||||||
// be charged up to.
|
// be charged up to.
|
||||||
RoutingFee100PercentUpTo lnwire.MilliSatoshi = 50_000
|
RoutingFee100PercentUpTo = lnwire.NewMSatFromSatoshis(1_000)
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
|
||||||
// DefaultRoutingFeePercentage is the default off-chain routing fee we
|
// DefaultRoutingFeePercentage is the default off-chain routing fee we
|
||||||
// allow to be charged for a payment over the RoutingFee100PercentUpTo
|
// allow to be charged for a payment over the RoutingFee100PercentUpTo
|
||||||
|
@ -24,12 +24,12 @@ func TestDefaultRoutingFeeLimitForAmount(t *testing.T) {
|
|||||||
expectedLimit: 1,
|
expectedLimit: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
amount: 50_000,
|
amount: lnwire.NewMSatFromSatoshis(1_000),
|
||||||
expectedLimit: 50_000,
|
expectedLimit: lnwire.NewMSatFromSatoshis(1_000),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
amount: 50_001,
|
amount: lnwire.NewMSatFromSatoshis(1_001),
|
||||||
expectedLimit: 2_500,
|
expectedLimit: 50_050,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
amount: 5_000_000_000,
|
amount: 5_000_000_000,
|
||||||
@ -42,7 +42,7 @@ func TestDefaultRoutingFeeLimitForAmount(t *testing.T) {
|
|||||||
|
|
||||||
t.Run(fmt.Sprintf("%d sats", test.amount), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%d sats", test.amount), func(t *testing.T) {
|
||||||
feeLimit := DefaultRoutingFeeLimitForAmount(test.amount)
|
feeLimit := DefaultRoutingFeeLimitForAmount(test.amount)
|
||||||
require.Equal(t, test.expectedLimit, feeLimit)
|
require.Equal(t, int64(test.expectedLimit), int64(feeLimit))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user