diff --git a/cmd/lncli/commands.go b/cmd/lncli/commands.go index 1fd7a1bf4..4df70117e 100644 --- a/cmd/lncli/commands.go +++ b/cmd/lncli/commands.go @@ -2671,7 +2671,7 @@ var queryRoutesCommand = cli.Command{ }, cli.Int64Flag{ Name: "num_max_routes", - Usage: "the max number of routes to be returned (default: 10)", + Usage: "the max number of routes to be returned", Value: 10, }, cli.Int64Flag{ diff --git a/rpcserver.go b/rpcserver.go index 5659036ba..d2f615928 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -3443,6 +3443,12 @@ func (r *rpcServer) QueryRoutes(ctx context.Context, feeLimit := calculateFeeLimit(in.FeeLimit, amtMSat) + // numRoutes will default to 10 if not specified explicitly. + numRoutesIn := uint32(in.NumRoutes) + if numRoutesIn == 0 { + numRoutesIn = 10 + } + // Query the channel router for a possible path to the destination that // can carry `in.Amt` satoshis _including_ the total fee required on // the route. @@ -3452,11 +3458,11 @@ func (r *rpcServer) QueryRoutes(ctx context.Context, ) if in.FinalCltvDelta == 0 { routes, findErr = r.server.chanRouter.FindRoutes( - pubKey, amtMSat, feeLimit, uint32(in.NumRoutes), + pubKey, amtMSat, feeLimit, numRoutesIn, ) } else { routes, findErr = r.server.chanRouter.FindRoutes( - pubKey, amtMSat, feeLimit, uint32(in.NumRoutes), + pubKey, amtMSat, feeLimit, numRoutesIn, uint16(in.FinalCltvDelta), ) } @@ -3467,9 +3473,9 @@ func (r *rpcServer) QueryRoutes(ctx context.Context, // As the number of returned routes can be less than the number of // requested routes, we'll clamp down the length of the response to the // minimum of the two. - numRoutes := int32(len(routes)) - if in.NumRoutes < numRoutes { - numRoutes = in.NumRoutes + numRoutes := uint32(len(routes)) + if numRoutesIn < numRoutes { + numRoutes = numRoutesIn } // For each valid route, we'll convert the result into the format @@ -3477,7 +3483,7 @@ func (r *rpcServer) QueryRoutes(ctx context.Context, routeResp := &lnrpc.QueryRoutesResponse{ Routes: make([]*lnrpc.Route, 0, in.NumRoutes), } - for i := int32(0); i < numRoutes; i++ { + for i := uint32(0); i < numRoutes; i++ { routeResp.Routes = append( routeResp.Routes, r.marshallRoute(routes[i]), )