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:
Joost Jager 2019-04-18 09:45:21 +02:00
parent afd86763ac
commit 19d5f8f82c
No known key found for this signature in database
GPG Key ID: A61B9D4C393C59C7
4 changed files with 11 additions and 21 deletions

View File

@ -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,
}

View File

@ -45,7 +45,7 @@ func TestRequestRoute(t *testing.T) {
payment := &LightningPayment{
CltvLimit: &cltvLimit,
FinalCLTVDelta: &finalCltvDelta,
FinalCLTVDelta: finalCltvDelta,
}
route, err := session.RequestRoute(payment, height, finalCltvDelta)

View File

@ -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,

View File

@ -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,
)