• 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
/macaroons/bake.go
1
package macaroons
2

3
import (
4
        "bytes"
5
        "fmt"
6

7
        "golang.org/x/net/context"
8
        "gopkg.in/macaroon-bakery.v2/bakery"
9
        "gopkg.in/macaroon.v2"
10
)
11

12
// inMemoryRootKeyStore is a simple implementation of bakery.RootKeyStore that
13
// stores a single root key in memory.
14
type inMemoryRootKeyStore struct {
15
        rootKey []byte
16
}
17

18
// A compile-time check to ensure that inMemoryRootKeyStore implements
19
// bakery.RootKeyStore.
20
var _ bakery.RootKeyStore = (*inMemoryRootKeyStore)(nil)
21

22
// Get returns the root key for the given id. If the item is not there, it
23
// returns ErrNotFound.
24
func (s *inMemoryRootKeyStore) Get(_ context.Context, id []byte) ([]byte,
25
        error) {
×
26

×
27
        if !bytes.Equal(id, DefaultRootKeyID) {
×
28
                return nil, bakery.ErrNotFound
×
29
        }
×
30

31
        return s.rootKey, nil
×
32
}
33

34
// RootKey returns the root key to be used for making a new macaroon, and an id
35
// that can be used to look it up later with the Get method.
36
func (s *inMemoryRootKeyStore) RootKey(context.Context) ([]byte, []byte,
UNCOV
37
        error) {
×
UNCOV
38

×
UNCOV
39
        return s.rootKey, DefaultRootKeyID, nil
×
UNCOV
40
}
×
41

42
// BakeFromRootKey creates a new macaroon that is derived from the given root
43
// key and permissions.
44
func BakeFromRootKey(rootKey []byte,
UNCOV
45
        permissions []bakery.Op) (*macaroon.Macaroon, error) {
×
UNCOV
46

×
UNCOV
47
        if len(rootKey) != RootKeyLen {
×
48
                return nil, fmt.Errorf("root key must be %d bytes, is %d",
×
49
                        RootKeyLen, len(rootKey))
×
50
        }
×
51

UNCOV
52
        rootKeyStore := &inMemoryRootKeyStore{
×
UNCOV
53
                rootKey: rootKey,
×
UNCOV
54
        }
×
UNCOV
55

×
UNCOV
56
        service, err := NewService(rootKeyStore, "lnd", false)
×
UNCOV
57
        if err != nil {
×
58
                return nil, fmt.Errorf("unable to create service: %w", err)
×
59
        }
×
60

UNCOV
61
        ctx := context.Background()
×
UNCOV
62
        mac, err := service.NewMacaroon(ctx, DefaultRootKeyID, permissions...)
×
UNCOV
63
        if err != nil {
×
64
                return nil, fmt.Errorf("unable to create macaroon: %w", err)
×
65
        }
×
66

UNCOV
67
        return mac.M(), nil
×
68
}
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