Skip to content

Commit 9ed998c

Browse files
committed
lnwire: add missing record LocalNonce
This record was never added to the `DynCommit`, but it's inherited from the embedding msg `DynAck`.
1 parent d5cc079 commit 9ed998c

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

lnwire/dyn_commit.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,14 @@ func (dc *DynCommit) Encode(w *bytes.Buffer, _ uint32) error {
4545
if err := WriteSig(w, dc.Sig); err != nil {
4646
return err
4747
}
48+
producers := dynProposeRecords(&dc.DynPropose)
49+
dc.LocalNonce.WhenSome(
50+
func(rec tlv.RecordT[tlv.TlvType14, Musig2Nonce]) {
51+
producers = append(producers, &rec)
52+
})
4853

4954
var extra ExtraOpaqueData
50-
err := extra.PackRecords(dynProposeRecords(&dc.DynPropose)...)
55+
err := extra.PackRecords(producers...)
5156
if err != nil {
5257
return err
5358
}
@@ -82,10 +87,11 @@ func (dc *DynCommit) Decode(r io.Reader, _ uint32) error {
8287
csvDelay := dc.CsvDelay.Zero()
8388
maxHtlcs := dc.MaxAcceptedHTLCs.Zero()
8489
chanType := dc.ChannelType.Zero()
90+
nonce := dc.LocalNonce.Zero()
8591

8692
typeMap, err := tlvRecords.ExtractRecords(
8793
&dustLimit, &maxValue, &htlcMin, &reserve, &csvDelay, &maxHtlcs,
88-
&chanType,
94+
&chanType, &nonce,
8995
)
9096
if err != nil {
9197
return err
@@ -122,6 +128,9 @@ func (dc *DynCommit) Decode(r io.Reader, _ uint32) error {
122128
if val, ok := typeMap[dc.ChannelType.TlvType()]; ok && val == nil {
123129
dc.ChannelType = tlv.SomeRecordT(chanType)
124130
}
131+
if val, ok := typeMap[dc.LocalNonce.TlvType()]; ok && val == nil {
132+
dc.LocalNonce = tlv.SomeRecordT(nonce)
133+
}
125134

126135
if len(tlvRecords) != 0 {
127136
dc.ExtraData = tlvRecords

lnwire/test_message.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -996,10 +996,17 @@ func (dc *DynCommit) RandTestMessage(t *rapid.T) Message {
996996
dp.ChannelType = tlv.SomeRecordT(chanType)
997997
}
998998

999+
includeLocalNonce := rapid.Bool().Draw(t, "includeLocalNonce")
1000+
if includeLocalNonce {
1001+
nonce := RandMusig2Nonce(t)
1002+
rec := tlv.NewRecordT[tlv.TlvType14](nonce)
1003+
da.LocalNonce = tlv.SomeRecordT(rec)
1004+
}
1005+
9991006
// Create a tlv type lists to hold all known records which will be
10001007
// ignored when creating ExtraData records.
10011008
ignoreRecords := fn.NewSet[uint64]()
1002-
for i := range uint64(13) {
1009+
for i := range uint64(15) {
10031010
ignoreRecords.Add(i)
10041011
}
10051012
msg := &DynCommit{

0 commit comments

Comments
 (0)