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

lightningnetwork / lnd / 13035292482

29 Jan 2025 03:59PM UTC coverage: 49.3% (-9.5%) from 58.777%
13035292482

Pull #9456

github

mohamedawnallah
docs: update release-notes-0.19.0.md

In this commit, we warn users about the removal
of RPCs `SendToRoute`, `SendToRouteSync`, `SendPayment`,
and `SendPaymentSync` in the next release 0.20.
Pull Request #9456: lnrpc+docs: deprecate warning `SendToRoute`, `SendToRouteSync`, `SendPayment`, and `SendPaymentSync` in Release 0.19

100634 of 204126 relevant lines covered (49.3%)

1.54 hits per line

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

0.0
/channeldb/migration/lnwire21/update_add_htlc.go
1
package lnwire
2

3
import (
4
        "io"
5
)
6

7
// OnionPacketSize is the size of the serialized Sphinx onion packet included
8
// in each UpdateAddHTLC message. The breakdown of the onion packet is as
9
// follows: 1-byte version, 33-byte ephemeral public key (for ECDH), 1300-bytes
10
// of per-hop data, and a 32-byte HMAC over the entire packet.
11
const OnionPacketSize = 1366
12

13
// UpdateAddHTLC is the message sent by Alice to Bob when she wishes to add an
14
// HTLC to his remote commitment transaction. In addition to information
15
// detailing the value, the ID, expiry, and the onion blob is also included
16
// which allows Bob to derive the next hop in the route. The HTLC added by this
17
// message is to be added to the remote node's "pending" HTLC's.  A subsequent
18
// CommitSig message will move the pending HTLC to the newly created commitment
19
// transaction, marking them as "staged".
20
type UpdateAddHTLC struct {
21
        // ChanID is the particular active channel that this UpdateAddHTLC is
22
        // bound to.
23
        ChanID ChannelID
24

25
        // ID is the identification server for this HTLC. This value is
26
        // explicitly included as it allows nodes to survive single-sided
27
        // restarts. The ID value for this sides starts at zero, and increases
28
        // with each offered HTLC.
29
        ID uint64
30

31
        // Amount is the amount of millisatoshis this HTLC is worth.
32
        Amount MilliSatoshi
33

34
        // PaymentHash is the payment hash to be included in the HTLC this
35
        // request creates. The pre-image to this HTLC must be revealed by the
36
        // upstream peer in order to fully settle the HTLC.
37
        PaymentHash [32]byte
38

39
        // Expiry is the number of blocks after which this HTLC should expire.
40
        // It is the receiver's duty to ensure that the outgoing HTLC has a
41
        // sufficient expiry value to allow her to redeem the incoming HTLC.
42
        Expiry uint32
43

44
        // OnionBlob is the raw serialized mix header used to route an HTLC in
45
        // a privacy-preserving manner. The mix header is defined currently to
46
        // be parsed as a 4-tuple: (groupElement, routingInfo, headerMAC,
47
        // body).  First the receiving node should use the groupElement, and
48
        // its current onion key to derive a shared secret with the source.
49
        // Once the shared secret has been derived, the headerMAC should be
50
        // checked FIRST. Note that the MAC only covers the routingInfo field.
51
        // If the MAC matches, and the shared secret is fresh, then the node
52
        // should strip off a layer of encryption, exposing the next hop to be
53
        // used in the subsequent UpdateAddHTLC message.
54
        OnionBlob [OnionPacketSize]byte
55
}
56

57
// NewUpdateAddHTLC returns a new empty UpdateAddHTLC message.
58
func NewUpdateAddHTLC() *UpdateAddHTLC {
×
59
        return &UpdateAddHTLC{}
×
60
}
×
61

62
// A compile time check to ensure UpdateAddHTLC implements the lnwire.Message
63
// interface.
64
var _ Message = (*UpdateAddHTLC)(nil)
65

66
// Decode deserializes a serialized UpdateAddHTLC message stored in the passed
67
// io.Reader observing the specified protocol version.
68
//
69
// This is part of the lnwire.Message interface.
70
func (c *UpdateAddHTLC) Decode(r io.Reader, pver uint32) error {
×
71
        return ReadElements(r,
×
72
                &c.ChanID,
×
73
                &c.ID,
×
74
                &c.Amount,
×
75
                c.PaymentHash[:],
×
76
                &c.Expiry,
×
77
                c.OnionBlob[:],
×
78
        )
×
79
}
×
80

81
// Encode serializes the target UpdateAddHTLC into the passed io.Writer observing
82
// the protocol version specified.
83
//
84
// This is part of the lnwire.Message interface.
85
func (c *UpdateAddHTLC) Encode(w io.Writer, pver uint32) error {
×
86
        return WriteElements(w,
×
87
                c.ChanID,
×
88
                c.ID,
×
89
                c.Amount,
×
90
                c.PaymentHash[:],
×
91
                c.Expiry,
×
92
                c.OnionBlob[:],
×
93
        )
×
94
}
×
95

96
// MsgType returns the integer uniquely identifying this message type on the
97
// wire.
98
//
99
// This is part of the lnwire.Message interface.
100
func (c *UpdateAddHTLC) MsgType() MessageType {
×
101
        return MsgUpdateAddHTLC
×
102
}
×
103

104
// MaxPayloadLength returns the maximum allowed payload size for an UpdateAddHTLC
105
// complete message observing the specified protocol version.
106
//
107
// This is part of the lnwire.Message interface.
108
func (c *UpdateAddHTLC) MaxPayloadLength(uint32) uint32 {
×
109
        // 1450
×
110
        return 32 + 8 + 4 + 8 + 32 + 1366
×
111
}
×
112

113
// TargetChanID returns the channel id of the link for which this message is
114
// intended.
115
//
116
// NOTE: Part of peer.LinkUpdater interface.
117
func (c *UpdateAddHTLC) TargetChanID() ChannelID {
×
118
        return c.ChanID
×
119
}
×
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