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

lightningnetwork / lnd / 12115442155

02 Dec 2024 08:28AM UTC coverage: 48.662% (-10.3%) from 58.948%
12115442155

Pull #9175

github

ellemouton
netann: update ChanAnn2 validation to work for P2WSH channels

This commit expands the ChannelAnnouncement2 validation for the case
where it is announcing a P2WSH channel.
Pull Request #9175: lnwire+netann: update structure of g175 messages to be pure TLV

6 of 314 new or added lines in 9 files covered. (1.91%)

27532 existing lines in 434 files now uncovered.

97890 of 201164 relevant lines covered (48.66%)

0.52 hits per line

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

87.5
/graph/db/channel_cache.go
1
package graphdb
2

3
// channelCache is an in-memory cache used to improve the performance of
4
// ChanUpdatesInHorizon. It caches the chan info and edge policies for a
5
// particular channel.
6
type channelCache struct {
7
        n        int
8
        channels map[uint64]ChannelEdge
9
}
10

11
// newChannelCache creates a new channelCache with maximum capacity of n
12
// channels.
13
func newChannelCache(n int) *channelCache {
1✔
14
        return &channelCache{
1✔
15
                n:        n,
1✔
16
                channels: make(map[uint64]ChannelEdge),
1✔
17
        }
1✔
18
}
1✔
19

20
// get returns the channel from the cache, if it exists.
21
func (c *channelCache) get(chanid uint64) (ChannelEdge, bool) {
1✔
22
        channel, ok := c.channels[chanid]
1✔
23
        return channel, ok
1✔
24
}
1✔
25

26
// insert adds the entry to the channel cache. If an entry for chanid already
27
// exists, it will be replaced with the new entry. If the entry doesn't exist,
28
// it will be inserted to the cache, performing a random eviction if the cache
29
// is at capacity.
30
func (c *channelCache) insert(chanid uint64, channel ChannelEdge) {
1✔
31
        // If entry exists, replace it.
1✔
32
        if _, ok := c.channels[chanid]; ok {
2✔
33
                c.channels[chanid] = channel
1✔
34
                return
1✔
35
        }
1✔
36

37
        // Otherwise, evict an entry at random and insert.
38
        if len(c.channels) == c.n {
1✔
UNCOV
39
                for id := range c.channels {
×
UNCOV
40
                        delete(c.channels, id)
×
UNCOV
41
                        break
×
42
                }
43
        }
44
        c.channels[chanid] = channel
1✔
45
}
46

47
// remove deletes an edge for chanid from the cache, if it exists.
48
func (c *channelCache) remove(chanid uint64) {
1✔
49
        delete(c.channels, chanid)
1✔
50
}
1✔
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