• 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/migration29/migration.go
1
package migration29
2

3
import (
4
        "bytes"
5

6
        "github.com/btcsuite/btcd/wire"
7
        "github.com/lightningnetwork/lnd/kvdb"
8
)
9

10
var (
11
        // outpointBucket is the bucket that stores the set of outpoints we
12
        // know about.
13
        outpointBucket = []byte("outpoint-bucket")
14

15
        // chanIDBucket is the bucket that stores the set of ChannelID's we
16
        // know about.
17
        chanIDBucket = []byte("chan-id-bucket")
18
)
19

20
// MigrateChanID populates the ChannelID index by using the set of outpoints
21
// retrieved from the outpoint bucket.
UNCOV
22
func MigrateChanID(tx kvdb.RwTx) error {
×
UNCOV
23
        log.Info("Populating ChannelID index")
×
UNCOV
24

×
UNCOV
25
        // First we'll retrieve the set of outpoints we know about.
×
UNCOV
26
        ops, err := fetchOutPoints(tx)
×
UNCOV
27
        if err != nil {
×
28
                return err
×
29
        }
×
30

UNCOV
31
        return populateChanIDIndex(tx, ops)
×
32
}
33

34
// fetchOutPoints loops through the outpointBucket and returns each stored
35
// outpoint.
UNCOV
36
func fetchOutPoints(tx kvdb.RwTx) ([]*wire.OutPoint, error) {
×
UNCOV
37
        var ops []*wire.OutPoint
×
UNCOV
38

×
UNCOV
39
        bucket := tx.ReadBucket(outpointBucket)
×
UNCOV
40

×
UNCOV
41
        err := bucket.ForEach(func(k, _ []byte) error {
×
UNCOV
42
                var op wire.OutPoint
×
UNCOV
43
                r := bytes.NewReader(k)
×
UNCOV
44
                if err := readOutpoint(r, &op); err != nil {
×
45
                        return err
×
46
                }
×
47

UNCOV
48
                ops = append(ops, &op)
×
UNCOV
49
                return nil
×
50
        })
UNCOV
51
        if err != nil {
×
52
                return nil, err
×
53
        }
×
54

UNCOV
55
        return ops, nil
×
56
}
57

58
// populateChanIDIndex uses the set of retrieved outpoints and populates the
59
// ChannelID index.
UNCOV
60
func populateChanIDIndex(tx kvdb.RwTx, ops []*wire.OutPoint) error {
×
UNCOV
61
        bucket := tx.ReadWriteBucket(chanIDBucket)
×
UNCOV
62

×
UNCOV
63
        for _, op := range ops {
×
UNCOV
64
                chanID := NewChanIDFromOutPoint(op)
×
UNCOV
65

×
UNCOV
66
                if err := bucket.Put(chanID[:], []byte{}); err != nil {
×
67
                        return err
×
68
                }
×
69
        }
70

UNCOV
71
        return nil
×
72
}
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