Skip to content

Commit

Permalink
lnwallet: sort sig jobs before submission
Browse files Browse the repository at this point in the history
  • Loading branch information
jharveyb committed Sep 11, 2024
1 parent 157b103 commit def4704
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions lnwallet/channel.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"errors"
"fmt"
"math"
"sort"
"slices"
"sync"

"github.com/btcsuite/btcd/blockchain"
Expand Down Expand Up @@ -4622,6 +4622,17 @@ func (lc *LightningChannel) SignNextCommitment() (*NewCommitState, error) {
if err != nil {
return nil, err
}

// We'll need to send over the signatures to the remote party in the
// order as they appear on the commitment transaction after BIP 69
// sorting.
slices.SortFunc(sigBatch, func(i, j SignJob) int {
return int(i.OutputIndex - j.OutputIndex)
})
slices.SortFunc(auxSigBatch, func(i, j AuxSigJob) int {
return int(i.OutputIndex - j.OutputIndex)
})

lc.sigPool.SubmitSignBatch(sigBatch)

err = fn.MapOptionZ(lc.auxSigner, func(a AuxSigner) error {
Expand Down Expand Up @@ -4686,18 +4697,8 @@ func (lc *LightningChannel) SignNextCommitment() (*NewCommitState, error) {
}
}

// We'll need to send over the signatures to the remote party in the
// order as they appear on the commitment transaction after BIP 69
// sorting.
sort.Slice(sigBatch, func(i, j int) bool {
return sigBatch[i].OutputIndex < sigBatch[j].OutputIndex
})
sort.Slice(auxSigBatch, func(i, j int) bool {
return auxSigBatch[i].OutputIndex < auxSigBatch[j].OutputIndex
})

// With the jobs sorted, we'll now iterate through all the responses to
// gather each of the signatures in order.
// Iterate through all the responses to gather each of the signatures
// in the order they were submitted.
htlcSigs = make([]lnwire.Sig, 0, len(sigBatch))
auxSigs := make([]fn.Option[tlv.Blob], 0, len(auxSigBatch))
for i := range sigBatch {
Expand Down

0 comments on commit def4704

Please sign in to comment.