mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-06-20 13:53:19 +02:00
lnwire: sort scids before encoding
This is for later when the timestamps also need to be sorted according to the SCIDs.
This commit is contained in:
parent
c882223ead
commit
4872010779
@ -280,9 +280,19 @@ func (q *QueryShortChanIDs) Encode(w *bytes.Buffer, pver uint32) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For both of the current encoding types, the channel ID's are to be
|
||||||
|
// sorted in place, so we'll do that now. The sorting is applied unless
|
||||||
|
// we were specifically requested not to for testing purposes.
|
||||||
|
if !q.noSort {
|
||||||
|
sort.Slice(q.ShortChanIDs, func(i, j int) bool {
|
||||||
|
return q.ShortChanIDs[i].ToUint64() <
|
||||||
|
q.ShortChanIDs[j].ToUint64()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// Base on our encoding type, we'll write out the set of short channel
|
// Base on our encoding type, we'll write out the set of short channel
|
||||||
// ID's.
|
// ID's.
|
||||||
err := encodeShortChanIDs(w, q.EncodingType, q.ShortChanIDs, q.noSort)
|
err := encodeShortChanIDs(w, q.EncodingType, q.ShortChanIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -293,17 +303,7 @@ func (q *QueryShortChanIDs) Encode(w *bytes.Buffer, pver uint32) error {
|
|||||||
// encodeShortChanIDs encodes the passed short channel ID's into the passed
|
// encodeShortChanIDs encodes the passed short channel ID's into the passed
|
||||||
// io.Writer, respecting the specified encoding type.
|
// io.Writer, respecting the specified encoding type.
|
||||||
func encodeShortChanIDs(w *bytes.Buffer, encodingType QueryEncoding,
|
func encodeShortChanIDs(w *bytes.Buffer, encodingType QueryEncoding,
|
||||||
shortChanIDs []ShortChannelID, noSort bool) error {
|
shortChanIDs []ShortChannelID) error {
|
||||||
|
|
||||||
// For both of the current encoding types, the channel ID's are to be
|
|
||||||
// sorted in place, so we'll do that now. The sorting is applied unless
|
|
||||||
// we were specifically requested not to for testing purposes.
|
|
||||||
if !noSort {
|
|
||||||
sort.Slice(shortChanIDs, func(i, j int) bool {
|
|
||||||
return shortChanIDs[i].ToUint64() <
|
|
||||||
shortChanIDs[j].ToUint64()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
switch encodingType {
|
switch encodingType {
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"io"
|
"io"
|
||||||
"math"
|
"math"
|
||||||
|
"sort"
|
||||||
|
|
||||||
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
||||||
)
|
)
|
||||||
@ -103,7 +104,17 @@ func (c *ReplyChannelRange) Encode(w *bytes.Buffer, pver uint32) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err := encodeShortChanIDs(w, c.EncodingType, c.ShortChanIDs, c.noSort)
|
// For both of the current encoding types, the channel ID's are to be
|
||||||
|
// sorted in place, so we'll do that now. The sorting is applied unless
|
||||||
|
// we were specifically requested not to for testing purposes.
|
||||||
|
if !c.noSort {
|
||||||
|
sort.Slice(c.ShortChanIDs, func(i, j int) bool {
|
||||||
|
return c.ShortChanIDs[i].ToUint64() <
|
||||||
|
c.ShortChanIDs[j].ToUint64()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
err := encodeShortChanIDs(w, c.EncodingType, c.ShortChanIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user