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

lightningnetwork / lnd / 11216766535

07 Oct 2024 01:37PM UTC coverage: 57.817% (-1.0%) from 58.817%
11216766535

Pull #9148

github

ProofOfKeags
lnwire: remove kickoff feerate from propose/commit
Pull Request #9148: DynComms [2/n]: lnwire: add authenticated wire messages for Dyn*

571 of 879 new or added lines in 16 files covered. (64.96%)

23253 existing lines in 251 files now uncovered.

99022 of 171268 relevant lines covered (57.82%)

38420.67 hits per line

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

63.33
/lnwire/update_fail_malformed_htlc.go
1
package lnwire
2

3
import (
4
        "bytes"
5
        "crypto/sha256"
6
        "io"
7
)
8

9
// UpdateFailMalformedHTLC is sent by either the payment forwarder or by
10
// payment receiver to the payment sender in order to notify it that the onion
11
// blob can't be parsed. For that reason we send this message instead of
12
// obfuscate the onion failure.
13
type UpdateFailMalformedHTLC struct {
14
        // ChanID is the particular active channel that this
15
        // UpdateFailMalformedHTLC is bound to.
16
        ChanID ChannelID
17

18
        // ID references which HTLC on the remote node's commitment transaction
19
        // has timed out.
20
        ID uint64
21

22
        // ShaOnionBlob hash of the onion blob on which can't be parsed by the
23
        // node in the payment path.
24
        ShaOnionBlob [sha256.Size]byte
25

26
        // FailureCode the exact reason why onion blob haven't been parsed.
27
        FailureCode FailCode
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 UpdateFailMalformedHTLC implements the
36
// lnwire.Message interface.
37
var _ Message = (*UpdateFailMalformedHTLC)(nil)
38

39
// Decode deserializes a serialized UpdateFailMalformedHTLC message stored in the passed
40
// io.Reader observing the specified protocol version.
41
//
42
// This is part of the lnwire.Message interface.
43
func (c *UpdateFailMalformedHTLC) Decode(r io.Reader, pver uint32) error {
135✔
44
        return ReadElements(r,
135✔
45
                &c.ChanID,
135✔
46
                &c.ID,
135✔
47
                c.ShaOnionBlob[:],
135✔
48
                &c.FailureCode,
135✔
49
                &c.ExtraData,
135✔
50
        )
135✔
51
}
135✔
52

53
// Encode serializes the target UpdateFailMalformedHTLC into the passed
54
// io.Writer observing the protocol version specified.
55
//
56
// This is part of the lnwire.Message interface.
57
func (c *UpdateFailMalformedHTLC) Encode(w *bytes.Buffer,
58
        pver uint32) error {
118✔
59

118✔
60
        if err := WriteChannelID(w, c.ChanID); err != nil {
118✔
61
                return err
×
62
        }
×
63

64
        if err := WriteUint64(w, c.ID); err != nil {
118✔
65
                return err
×
66
        }
×
67

68
        if err := WriteBytes(w, c.ShaOnionBlob[:]); err != nil {
118✔
69
                return err
×
70
        }
×
71

72
        if err := WriteFailCode(w, c.FailureCode); err != nil {
118✔
73
                return err
×
74
        }
×
75

76
        return WriteBytes(w, c.ExtraData)
118✔
77
}
78

79
// MsgType returns the integer uniquely identifying this message type on the
80
// wire.
81
//
82
// This is part of the lnwire.Message interface.
83
func (c *UpdateFailMalformedHTLC) MsgType() MessageType {
121✔
84
        return MsgUpdateFailMalformedHTLC
121✔
85
}
121✔
86

87
// TargetChanID returns the channel id of the link for which this message is
88
// intended.
89
//
90
// NOTE: Part of peer.LinkUpdater interface.
UNCOV
91
func (c *UpdateFailMalformedHTLC) TargetChanID() ChannelID {
×
UNCOV
92
        return c.ChanID
×
UNCOV
93
}
×
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