From fceb59bfedfcf7e0ce893a47b270510f9875b13e Mon Sep 17 00:00:00 2001 From: saubyk <39208279+saubyk@users.noreply.github.com> Date: Tue, 5 May 2026 17:48:59 -0700 Subject: [PATCH] Remove deprecated outgoing_chan_id from QueryRoutes The singular outgoing_chan_id query parameter on LND's QueryRoutes is deprecated as of lnd 0.20.0 in favor of the plural outgoing_chan_ids. The code path was unreachable in RTL anyway: no caller of the GetQueryRoutes action ever populated outgoingChanId, so the query parameter was never sent. Drop the unused field, the effect's conditional URL builder, and the server-side passthrough. --- backend/controllers/lnd/graph.js | 3 --- release-notes/Release-notes-0.15.9.md | 9 +++++++++ server/controllers/lnd/graph.ts | 3 --- src/app/lnd/store/lnd.effects.ts | 5 +---- src/app/shared/models/lndModels.ts | 1 - 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/backend/controllers/lnd/graph.js b/backend/controllers/lnd/graph.js index f74d19a1..353cb1ae 100644 --- a/backend/controllers/lnd/graph.js +++ b/backend/controllers/lnd/graph.js @@ -79,9 +79,6 @@ export const getQueryRoutes = (req, res, next) => { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } options.url = req.session.selectedNode.settings.lnServerUrl + '/v1/graph/routes/' + req.params.destPubkey + '/' + req.params.amount; - if (req.query.outgoing_chan_id) { - options.url = options.url + '?outgoing_chan_id=' + req.query.outgoing_chan_id; - } logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes URL', data: options.url }); request(options).then((body) => { logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes Received', data: body }); diff --git a/release-notes/Release-notes-0.15.9.md b/release-notes/Release-notes-0.15.9.md index 8fdc4726..19aca06e 100644 --- a/release-notes/Release-notes-0.15.9.md +++ b/release-notes/Release-notes-0.15.9.md @@ -120,6 +120,15 @@ this release should add its entry under the appropriate section below. ## Code Health +- **LND: remove the deprecated `outgoing_chan_id` from QueryRoutes** + ([#1591](https://github.com/Ride-The-Lightning/RTL/pull/1591)). + LND deprecated the singular `outgoing_chan_id` query parameter on `QueryRoutes` as of + v0.20.0 in favor of the plural `outgoing_chan_ids`. The code path was already unreachable + in RTL — no caller of the `GetQueryRoutes` action ever populated `outgoingChanId`, so the + parameter was never sent — so this drops the unused model field, the effect's conditional + URL builder, and the server-side passthrough. The plural `outgoing_chan_ids` used by the + send-payment and rebalance flows is unaffected. + - **LND: migrate `sat_per_byte` to `sat_per_vbyte` in node requests** ([#1592](https://github.com/Ride-The-Lightning/RTL/pull/1592)). LND's v0.21.0 release notes deprecate the `sat_per_byte` field, with removal planned in diff --git a/server/controllers/lnd/graph.ts b/server/controllers/lnd/graph.ts index bfd29fa5..438c2a18 100644 --- a/server/controllers/lnd/graph.ts +++ b/server/controllers/lnd/graph.ts @@ -76,9 +76,6 @@ export const getQueryRoutes = (req, res, next) => { options = common.getOptions(req); if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } options.url = req.session.selectedNode.settings.lnServerUrl + '/v1/graph/routes/' + req.params.destPubkey + '/' + req.params.amount; - if (req.query.outgoing_chan_id) { - options.url = options.url + '?outgoing_chan_id=' + req.query.outgoing_chan_id; - } logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes URL', data: options.url }); request(options).then((body) => { logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes Received', data: body }); diff --git a/src/app/lnd/store/lnd.effects.ts b/src/app/lnd/store/lnd.effects.ts index 5ce32b9e..af9d99bb 100644 --- a/src/app/lnd/store/lnd.effects.ts +++ b/src/app/lnd/store/lnd.effects.ts @@ -874,10 +874,7 @@ export class LNDEffects implements OnDestroy { queryRoutesFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.GET_QUERY_ROUTES_LND), mergeMap((action: { type: string, payload: GetQueryRoutes }) => { - let url = this.CHILD_API_URL + API_END_POINTS.NETWORK_API + '/routes/' + action.payload.destPubkey + '/' + action.payload.amount; - if (action.payload.outgoingChanId) { - url = url + '?outgoing_chan_id=' + action.payload.outgoingChanId; - } + const url = this.CHILD_API_URL + API_END_POINTS.NETWORK_API + '/routes/' + action.payload.destPubkey + '/' + action.payload.amount; return this.httpClient.get(url).pipe( map((qrRes: any) => { this.logger.info(qrRes); diff --git a/src/app/shared/models/lndModels.ts b/src/app/shared/models/lndModels.ts index a654bb05..62c2786e 100644 --- a/src/app/shared/models/lndModels.ts +++ b/src/app/shared/models/lndModels.ts @@ -571,7 +571,6 @@ export interface GetNewAddress { export interface GetQueryRoutes { destPubkey: string; amount: number; - outgoingChanId?: string; } export interface InitWallet {