routerrpc: use cltv delta default for buildroute.

This commit uses the default timelock delta (cltv delta) when
no value is provided for the buildroute rpc cmd.
Moreover it enhances the docs.
This commit is contained in:
ziggie 2024-01-16 11:37:16 +01:00
parent 34af399a5b
commit 79fb45074b
No known key found for this signature in database
GPG Key ID: 1AFF9C4DCED6D666
4 changed files with 19 additions and 1 deletions

View File

@ -124,6 +124,10 @@ service Router {
BuildRoute builds a fully specified route based on a list of hop public
keys. It retrieves the relevant channel policies from the graph in order to
calculate the correct fees and time locks.
Note that LND will use its default final_cltv_delta if no value is supplied.
Make sure to add the correct final_cltv_delta depending on the invoice
restriction. Moreover the caller has to make sure to provide the
payment_addr if the route is paying an invoice which signaled it.
*/
rpc BuildRoute (BuildRouteRequest) returns (BuildRouteResponse);

View File

@ -293,7 +293,7 @@
},
"/v2/router/route": {
"post": {
"summary": "lncli: `buildroute`\nBuildRoute builds a fully specified route based on a list of hop public\nkeys. It retrieves the relevant channel policies from the graph in order to\ncalculate the correct fees and time locks.",
"summary": "lncli: `buildroute`\nBuildRoute builds a fully specified route based on a list of hop public\nkeys. It retrieves the relevant channel policies from the graph in order to\ncalculate the correct fees and time locks.\nNote that LND will use its default final_cltv_delta if no value is supplied.\nMake sure to add the correct final_cltv_delta depending on the invoice\nrestriction. Moreover the caller has to make sure to provide the\npayment_addr if the route is paying an invoice which signaled it.",
"operationId": "Router_BuildRoute",
"responses": {
"200": {

View File

@ -81,6 +81,10 @@ type RouterClient interface {
// BuildRoute builds a fully specified route based on a list of hop public
// keys. It retrieves the relevant channel policies from the graph in order to
// calculate the correct fees and time locks.
// Note that LND will use its default final_cltv_delta if no value is supplied.
// Make sure to add the correct final_cltv_delta depending on the invoice
// restriction. Moreover the caller has to make sure to provide the
// payment_addr if the route is paying an invoice which signaled it.
BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error)
// SubscribeHtlcEvents creates a uni-directional stream from the server to
// the client which delivers a stream of htlc events.
@ -510,6 +514,10 @@ type RouterServer interface {
// BuildRoute builds a fully specified route based on a list of hop public
// keys. It retrieves the relevant channel policies from the graph in order to
// calculate the correct fees and time locks.
// Note that LND will use its default final_cltv_delta if no value is supplied.
// Make sure to add the correct final_cltv_delta depending on the invoice
// restriction. Moreover the caller has to make sure to provide the
// payment_addr if the route is paying an invoice which signaled it.
BuildRoute(context.Context, *BuildRouteRequest) (*BuildRouteResponse, error)
// SubscribeHtlcEvents creates a uni-directional stream from the server to
// the client which delivers a stream of htlc events.

View File

@ -999,6 +999,12 @@ func (s *Server) BuildRoute(ctx context.Context,
payAddr = &backingPayAddr
}
if req.FinalCltvDelta == 0 {
req.FinalCltvDelta = int32(
s.cfg.RouterBackend.DefaultFinalCltvDelta,
)
}
// Build the route and return it to the caller.
route, err := s.cfg.Router.BuildRoute(
amt, hops, outgoingChan, req.FinalCltvDelta, payAddr,