lnrpc: sort Invoice.HTLCs based on HtlcIndex

So the returned HTLCs are ordered.
This commit is contained in:
yyforyongyu 2024-12-05 23:39:37 +08:00
parent 366e48bced
commit 7374392abe
No known key found for this signature in database
GPG Key ID: 9BCD95C4FF296868
2 changed files with 11 additions and 0 deletions

View File

@ -90,6 +90,10 @@
* [The `walletrpc.FundPsbt` method now has a new option to specify the maximum
fee to output amounts ratio.](https://github.com/lightningnetwork/lnd/pull/8600)
* When returning the response from list invoices RPC, the `lnrpc.Invoice.Htlcs`
are now [sorted](https://github.com/lightningnetwork/lnd/pull/9337) based on
the `InvoiceHTLC.HtlcIndex`.
## lncli Additions
* [A pre-generated macaroon root key can now be specified in `lncli create` and

View File

@ -1,8 +1,10 @@
package invoicesrpc
import (
"cmp"
"encoding/hex"
"fmt"
"slices"
"github.com/btcsuite/btcd/btcec/v2"
"github.com/btcsuite/btcd/chaincfg"
@ -160,6 +162,11 @@ func CreateRPCInvoice(invoice *invoices.Invoice,
rpcHtlcs = append(rpcHtlcs, &rpcHtlc)
}
// Perform an inplace sort of the HTLCs to ensure they are ordered.
slices.SortFunc(rpcHtlcs, func(i, j *lnrpc.InvoiceHTLC) int {
return cmp.Compare(i.HtlcIndex, j.HtlcIndex)
})
rpcInvoice := &lnrpc.Invoice{
Memo: string(invoice.Memo),
RHash: rHash,