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

lightningnetwork / lnd / 14358372723

09 Apr 2025 01:26PM UTC coverage: 56.696% (-12.3%) from 69.037%
14358372723

Pull #9696

github

web-flow
Merge e2837e400 into 867d27d68
Pull Request #9696: Add `development_guidelines.md` for both human and machine

107055 of 188823 relevant lines covered (56.7%)

22721.56 hits per line

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

57.58
/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
// A compile time check to ensure UpdateFailMalformedHTLC implements the
40
// lnwire.SizeableMessage interface.
41
var _ SizeableMessage = (*UpdateFailMalformedHTLC)(nil)
42

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

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

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

68
        if err := WriteUint64(w, c.ID); err != nil {
118✔
69
                return err
×
70
        }
×
71

72
        if err := WriteBytes(w, c.ShaOnionBlob[:]); err != nil {
118✔
73
                return err
×
74
        }
×
75

76
        if err := WriteFailCode(w, c.FailureCode); err != nil {
118✔
77
                return err
×
78
        }
×
79

80
        return WriteBytes(w, c.ExtraData)
118✔
81
}
82

83
// MsgType returns the integer uniquely identifying this message type on the
84
// wire.
85
//
86
// This is part of the lnwire.Message interface.
87
func (c *UpdateFailMalformedHTLC) MsgType() MessageType {
127✔
88
        return MsgUpdateFailMalformedHTLC
127✔
89
}
127✔
90

91
// SerializedSize returns the serialized size of the message in bytes.
92
//
93
// This is part of the lnwire.SizeableMessage interface.
94
func (c *UpdateFailMalformedHTLC) SerializedSize() (uint32, error) {
×
95
        return MessageSerializedSize(c)
×
96
}
×
97

98
// TargetChanID returns the channel id of the link for which this message is
99
// intended.
100
//
101
// NOTE: Part of peer.LinkUpdater interface.
102
func (c *UpdateFailMalformedHTLC) TargetChanID() ChannelID {
×
103
        return c.ChanID
×
104
}
×
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