routing: move default cltv assignment out of router
This commit lifts default setting up to the rpc server level, in line with other payment defaults.
This commit is contained in:
parent
afd86763ac
commit
19d5f8f82c
@ -222,7 +222,7 @@ func (s *Server) SendPayment(ctx context.Context,
|
||||
Amount: *payReq.MilliSat,
|
||||
FeeLimit: lnwire.MilliSatoshi(req.FeeLimitSat),
|
||||
PaymentHash: *payReq.PaymentHash,
|
||||
FinalCLTVDelta: &finalDelta,
|
||||
FinalCLTVDelta: finalDelta,
|
||||
PayAttemptTimeout: time.Second * time.Duration(req.TimeoutSeconds),
|
||||
RouteHints: payReq.RouteHints,
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ func TestRequestRoute(t *testing.T) {
|
||||
|
||||
payment := &LightningPayment{
|
||||
CltvLimit: &cltvLimit,
|
||||
FinalCLTVDelta: &finalCltvDelta,
|
||||
FinalCLTVDelta: finalCltvDelta,
|
||||
}
|
||||
|
||||
route, err := session.RequestRoute(payment, height, finalCltvDelta)
|
||||
|
@ -1565,10 +1565,8 @@ type LightningPayment struct {
|
||||
|
||||
// FinalCLTVDelta is the CTLV expiry delta to use for the _final_ hop
|
||||
// in the route. This means that the final hop will have a CLTV delta
|
||||
// of at least: currentHeight + FinalCLTVDelta. If this value is
|
||||
// unspecified, then a default value of DefaultFinalCLTVDelta will be
|
||||
// used.
|
||||
FinalCLTVDelta *uint16
|
||||
// of at least: currentHeight + FinalCLTVDelta.
|
||||
FinalCLTVDelta uint16
|
||||
|
||||
// PayAttemptTimeout is a timeout value that we'll use to determine
|
||||
// when we should should abandon the payment attempt after consecutive
|
||||
@ -1732,13 +1730,6 @@ func (r *ChannelRouter) sendPayment(
|
||||
return [32]byte{}, nil, err
|
||||
}
|
||||
|
||||
var finalCLTVDelta uint16
|
||||
if payment.FinalCLTVDelta == nil {
|
||||
finalCLTVDelta = zpay32.DefaultFinalCLTVDelta
|
||||
} else {
|
||||
finalCLTVDelta = *payment.FinalCLTVDelta
|
||||
}
|
||||
|
||||
var payAttemptTimeout time.Duration
|
||||
if payment.PayAttemptTimeout == time.Duration(0) {
|
||||
payAttemptTimeout = defaultPayAttemptTimeout
|
||||
@ -1756,7 +1747,7 @@ func (r *ChannelRouter) sendPayment(
|
||||
paySession: paySession,
|
||||
timeoutChan: timeoutChan,
|
||||
currentHeight: currentHeight,
|
||||
finalCLTVDelta: finalCLTVDelta,
|
||||
finalCLTVDelta: uint16(payment.FinalCLTVDelta),
|
||||
attempt: existingAttempt,
|
||||
circuit: nil,
|
||||
lastError: nil,
|
||||
|
13
rpcserver.go
13
rpcserver.go
@ -2998,7 +2998,11 @@ func extractPaymentIntent(rpcPayReq *rpcPaymentRequest) (rpcPaymentIntent, error
|
||||
rpcPayReq.FeeLimit, payIntent.msat,
|
||||
)
|
||||
|
||||
payIntent.cltvDelta = uint16(rpcPayReq.FinalCltvDelta)
|
||||
if rpcPayReq.FinalCltvDelta != 0 {
|
||||
payIntent.cltvDelta = uint16(rpcPayReq.FinalCltvDelta)
|
||||
} else {
|
||||
payIntent.cltvDelta = zpay32.DefaultFinalCLTVDelta
|
||||
}
|
||||
|
||||
// If the user is manually specifying payment details, then the payment
|
||||
// hash may be encoded as a string.
|
||||
@ -3069,6 +3073,7 @@ func (r *rpcServer) dispatchPaymentIntent(
|
||||
payment := &routing.LightningPayment{
|
||||
Target: payIntent.dest,
|
||||
Amount: payIntent.msat,
|
||||
FinalCLTVDelta: payIntent.cltvDelta,
|
||||
FeeLimit: payIntent.feeLimit,
|
||||
CltvLimit: payIntent.cltvLimit,
|
||||
PaymentHash: payIntent.rHash,
|
||||
@ -3077,12 +3082,6 @@ func (r *rpcServer) dispatchPaymentIntent(
|
||||
PaymentRequest: payIntent.payReq,
|
||||
}
|
||||
|
||||
// If the final CLTV value was specified, then we'll use that
|
||||
// rather than the default.
|
||||
if payIntent.cltvDelta != 0 {
|
||||
payment.FinalCLTVDelta = &payIntent.cltvDelta
|
||||
}
|
||||
|
||||
preImage, route, routerErr = r.server.chanRouter.SendPayment(
|
||||
payment,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user