diff --git a/cmd/lncli/cmd_payments.go b/cmd/lncli/cmd_payments.go index 37b681d29..3b0904ee0 100644 --- a/cmd/lncli/cmd_payments.go +++ b/cmd/lncli/cmd_payments.go @@ -169,11 +169,13 @@ func paymentFlags() []cli.Flag { }, cltvLimitFlag, lastHopFlag, - cli.Uint64Flag{ + cli.Int64SliceFlag{ Name: "outgoing_chan_id", Usage: "short channel id of the outgoing channel to " + - "use for the first hop of the payment", - Value: 0, + "use for the first hop of the payment; can " + + "be specified multiple times in the same " + + "command", + Value: &cli.Int64Slice{}, }, cli.BoolFlag{ Name: "force, f", @@ -463,10 +465,14 @@ func sendPaymentRequest(ctx *cli.Context, client := lnrpc.NewLightningClient(conn) routerClient := routerrpc.NewRouterClient(conn) - outChan := ctx.Uint64("outgoing_chan_id") - if outChan != 0 { - req.OutgoingChanIds = []uint64{outChan} + outChan := ctx.Int64Slice("outgoing_chan_id") + if len(outChan) != 0 { + req.OutgoingChanIds = make([]uint64, len(outChan)) + for i, c := range outChan { + req.OutgoingChanIds[i] = uint64(c) + } } + if ctx.IsSet(lastHopFlag.Name) { lastHop, err := route.NewVertexFromStr( ctx.String(lastHopFlag.Name), diff --git a/docs/release-notes/release-notes-0.18.0.md b/docs/release-notes/release-notes-0.18.0.md index 97fc60590..d2dc1c0fe 100644 --- a/docs/release-notes/release-notes-0.18.0.md +++ b/docs/release-notes/release-notes-0.18.0.md @@ -128,6 +128,11 @@ in the rpc definition to ensure that the autogenerated API documentation properly specifies how to use the lncli command. +* [Enable multiple outgoing channel ids for the payment + command](https://github.com/lightningnetwork/lnd/pull/8261). This change adds + the ability to specify multiple outgoing channel ids for the `sendpayment` + command. + ## Code Health * [Remove Litecoin code](https://github.com/lightningnetwork/lnd/pull/7867).