• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lightningnetwork / lnd / 13566028875

27 Feb 2025 12:09PM UTC coverage: 49.396% (-9.4%) from 58.748%
13566028875

Pull #9555

github

ellemouton
graph/db: populate the graph cache in Start instead of during construction

In this commit, we move the graph cache population logic out of the
ChannelGraph constructor and into its Start method instead.
Pull Request #9555: graph: extract cache from CRUD [6]

34 of 54 new or added lines in 4 files covered. (62.96%)

27464 existing lines in 436 files now uncovered.

101095 of 204664 relevant lines covered (49.4%)

1.54 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

70.0
/lnwire/funding_signed.go
1
package lnwire
2

3
import (
4
        "bytes"
5
        "io"
6

7
        "github.com/lightningnetwork/lnd/tlv"
8
)
9

10
// FundingSigned is sent from Bob (the responder) to Alice (the initiator)
11
// after receiving the funding outpoint and her signature for Bob's version of
12
// the commitment transaction.
13
type FundingSigned struct {
14
        // ChannelPoint is the particular active channel that this
15
        // FundingSigned is bound to.
16
        ChanID ChannelID
17

18
        // CommitSig is Bob's signature for Alice's version of the commitment
19
        // transaction.
20
        CommitSig Sig
21

22
        // PartialSig is used to transmit a musig2 extended partial signature
23
        // that also carries along the public nonce of the signer.
24
        //
25
        // NOTE: This field is only populated if a musig2 taproot channel is
26
        // being signed for. In this case, the above Sig type MUST be blank.
27
        PartialSig OptPartialSigWithNonceTLV
28

29
        // ExtraData is the set of data that was appended to this message to
30
        // fill out the full maximum transport message size. These fields can
31
        // be used to specify optional data such as custom TLV fields.
32
        ExtraData ExtraOpaqueData
33
}
34

35
// A compile time check to ensure FundingSigned implements the lnwire.Message
36
// interface.
37
var _ Message = (*FundingSigned)(nil)
38

39
// Encode serializes the target FundingSigned into the passed io.Writer
40
// implementation. Serialization will observe the rules defined by the passed
41
// protocol version.
42
//
43
// This is part of the lnwire.Message interface.
44
func (f *FundingSigned) Encode(w *bytes.Buffer, pver uint32) error {
3✔
45
        recordProducers := make([]tlv.RecordProducer, 0, 1)
3✔
46
        f.PartialSig.WhenSome(func(sig PartialSigWithNonceTLV) {
6✔
47
                recordProducers = append(recordProducers, &sig)
3✔
48
        })
3✔
49
        err := EncodeMessageExtraData(&f.ExtraData, recordProducers...)
3✔
50
        if err != nil {
3✔
51
                return err
×
52
        }
×
53

54
        if err := WriteChannelID(w, f.ChanID); err != nil {
3✔
55
                return err
×
56
        }
×
57

58
        if err := WriteSig(w, f.CommitSig); err != nil {
3✔
59
                return err
×
60
        }
×
61

62
        return WriteBytes(w, f.ExtraData)
3✔
63
}
64

65
// Decode deserializes the serialized FundingSigned stored in the passed
66
// io.Reader into the target FundingSigned using the deserialization rules
67
// defined by the passed protocol version.
68
//
69
// This is part of the lnwire.Message interface.
70
func (f *FundingSigned) Decode(r io.Reader, pver uint32) error {
3✔
71
        err := ReadElements(r, &f.ChanID, &f.CommitSig)
3✔
72
        if err != nil {
3✔
UNCOV
73
                return err
×
UNCOV
74
        }
×
75

76
        var tlvRecords ExtraOpaqueData
3✔
77
        if err := ReadElements(r, &tlvRecords); err != nil {
3✔
78
                return err
×
79
        }
×
80

81
        partialSig := f.PartialSig.Zero()
3✔
82
        typeMap, err := tlvRecords.ExtractRecords(&partialSig)
3✔
83
        if err != nil {
3✔
UNCOV
84
                return err
×
UNCOV
85
        }
×
86

87
        // Set the corresponding TLV types if they were included in the stream.
88
        if val, ok := typeMap[f.PartialSig.TlvType()]; ok && val == nil {
6✔
89
                f.PartialSig = tlv.SomeRecordT(partialSig)
3✔
90
        }
3✔
91

92
        if len(tlvRecords) != 0 {
6✔
93
                f.ExtraData = tlvRecords
3✔
94
        }
3✔
95

96
        return nil
3✔
97
}
98

99
// MsgType returns the uint32 code which uniquely identifies this message as a
100
// FundingSigned on the wire.
101
//
102
// This is part of the lnwire.Message interface.
103
func (f *FundingSigned) MsgType() MessageType {
3✔
104
        return MsgFundingSigned
3✔
105
}
3✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc