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

lightningnetwork / lnd / 15736109134

18 Jun 2025 02:46PM UTC coverage: 58.197% (-10.1%) from 68.248%
15736109134

Pull #9752

github

web-flow
Merge d2634a68c into 31c74f20f
Pull Request #9752: routerrpc: reject payment to invoice that don't have payment secret or blinded paths

6 of 13 new or added lines in 2 files covered. (46.15%)

28331 existing lines in 455 files now uncovered.

97860 of 168153 relevant lines covered (58.2%)

1.81 hits per line

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

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

3
import (
4
        "fmt"
5
)
6

7
// ShortChannelID represents the set of data which is needed to retrieve all
8
// necessary data to validate the channel existence.
9
type ShortChannelID struct {
10
        // BlockHeight is the height of the block where funding transaction
11
        // located.
12
        //
13
        // NOTE: This field is limited to 3 bytes.
14
        BlockHeight uint32
15

16
        // TxIndex is a position of funding transaction within a block.
17
        //
18
        // NOTE: This field is limited to 3 bytes.
19
        TxIndex uint32
20

21
        // TxPosition indicating transaction output which pays to the channel.
22
        TxPosition uint16
23
}
24

25
// NewShortChanIDFromInt returns a new ShortChannelID which is the decoded
26
// version of the compact channel ID encoded within the uint64. The format of
27
// the compact channel ID is as follows: 3 bytes for the block height, 3 bytes
28
// for the transaction index, and 2 bytes for the output index.
UNCOV
29
func NewShortChanIDFromInt(chanID uint64) ShortChannelID {
×
UNCOV
30
        return ShortChannelID{
×
UNCOV
31
                BlockHeight: uint32(chanID >> 40),
×
UNCOV
32
                TxIndex:     uint32(chanID>>16) & 0xFFFFFF,
×
UNCOV
33
                TxPosition:  uint16(chanID),
×
UNCOV
34
        }
×
UNCOV
35
}
×
36

37
// ToUint64 converts the ShortChannelID into a compact format encoded within a
38
// uint64 (8 bytes).
UNCOV
39
func (c ShortChannelID) ToUint64() uint64 {
×
UNCOV
40
        // TODO(roasbeef): explicit error on overflow?
×
UNCOV
41
        return ((uint64(c.BlockHeight) << 40) | (uint64(c.TxIndex) << 16) |
×
UNCOV
42
                (uint64(c.TxPosition)))
×
UNCOV
43
}
×
44

45
// String generates a human-readable representation of the channel ID.
46
func (c ShortChannelID) String() string {
×
47
        return fmt.Sprintf("%d:%d:%d", c.BlockHeight, c.TxIndex, c.TxPosition)
×
48
}
×
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