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

lightningnetwork / lnd / 13586005509

28 Feb 2025 10:14AM UTC coverage: 68.629% (+9.9%) from 58.77%
13586005509

Pull #9521

github

web-flow
Merge 37d3a70a5 into 8532955b3
Pull Request #9521: unit: remove GOACC, use Go 1.20 native coverage functionality

129950 of 189351 relevant lines covered (68.63%)

23726.46 hits per line

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

80.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.
29
func NewShortChanIDFromInt(chanID uint64) ShortChannelID {
2,245✔
30
        return ShortChannelID{
2,245✔
31
                BlockHeight: uint32(chanID >> 40),
2,245✔
32
                TxIndex:     uint32(chanID>>16) & 0xFFFFFF,
2,245✔
33
                TxPosition:  uint16(chanID),
2,245✔
34
        }
2,245✔
35
}
2,245✔
36

37
// ToUint64 converts the ShortChannelID into a compact format encoded within a
38
// uint64 (8 bytes).
39
func (c ShortChannelID) ToUint64() uint64 {
3,320✔
40
        // TODO(roasbeef): explicit error on overflow?
3,320✔
41
        return ((uint64(c.BlockHeight) << 40) | (uint64(c.TxIndex) << 16) |
3,320✔
42
                (uint64(c.TxPosition)))
3,320✔
43
}
3,320✔
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