mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-12-08 11:53:16 +01:00
rpc: sort closed channels in order of ascending height
This commit is contained in:
19
rpcserver.go
19
rpcserver.go
@@ -9,6 +9,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"math"
|
"math"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -1137,8 +1138,9 @@ func (r *rpcServer) CloseChannel(in *lnrpc.CloseChannelRequest,
|
|||||||
// the htlc switch which will handle the negotiation and
|
// the htlc switch which will handle the negotiation and
|
||||||
// broadcast details.
|
// broadcast details.
|
||||||
feePerKw := feeRate.FeePerKWeight()
|
feePerKw := feeRate.FeePerKWeight()
|
||||||
updateChan, errChan = r.server.htlcSwitch.CloseLink(chanPoint,
|
updateChan, errChan = r.server.htlcSwitch.CloseLink(
|
||||||
htlcswitch.CloseRegular, feePerKw)
|
chanPoint, htlcswitch.CloseRegular, feePerKw,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
for {
|
for {
|
||||||
@@ -1583,14 +1585,14 @@ func (r *rpcServer) PendingChannels(ctx context.Context,
|
|||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClosedChannels returns a list of all the channels have been closed.
|
// ClosedChannels returns a list of all the channels have been closed.
|
||||||
// This does not include channels that are still in the process of closing.
|
// This does not include channels that are still in the process of closing.
|
||||||
func (r *rpcServer) ClosedChannels(ctx context.Context,
|
func (r *rpcServer) ClosedChannels(ctx context.Context,
|
||||||
in *lnrpc.ClosedChannelsRequest) (*lnrpc.ClosedChannelsResponse,
|
in *lnrpc.ClosedChannelsRequest) (*lnrpc.ClosedChannelsResponse,
|
||||||
error) {
|
error) {
|
||||||
|
|
||||||
// Show all channels when no filter flags are set.
|
// Show all channels when no filter flags are set.
|
||||||
filterResults := in.Cooperative || in.LocalForce ||
|
filterResults := in.Cooperative || in.LocalForce ||
|
||||||
in.RemoteForce || in.Breach || in.FundingCanceled
|
in.RemoteForce || in.Breach || in.FundingCanceled
|
||||||
|
|
||||||
resp := &lnrpc.ClosedChannelsResponse{}
|
resp := &lnrpc.ClosedChannelsResponse{}
|
||||||
@@ -1600,6 +1602,13 @@ func (r *rpcServer) ClosedChannels(ctx context.Context,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// In order to make the response easier to parse for clients, we'll
|
||||||
|
// sort the set of closed channels by their closing height before
|
||||||
|
// serializing the proto response.
|
||||||
|
sort.Slice(dbChannels, func(i, j int) bool {
|
||||||
|
return dbChannels[i].CloseHeight < dbChannels[j].CloseHeight
|
||||||
|
})
|
||||||
|
|
||||||
for _, dbChannel := range dbChannels {
|
for _, dbChannel := range dbChannels {
|
||||||
if dbChannel.IsPending {
|
if dbChannel.IsPending {
|
||||||
continue
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user