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

lightningnetwork / lnd / 15951470896

29 Jun 2025 04:23AM UTC coverage: 67.594% (-0.01%) from 67.606%
15951470896

Pull #9751

github

web-flow
Merge 599d9b051 into 6290edf14
Pull Request #9751: multi: update Go to 1.23.10 and update some packages

135088 of 199851 relevant lines covered (67.59%)

21909.44 hits per line

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

56.67
/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,
37
        error) {
1✔
38

1✔
39
        return s.rootKey, DefaultRootKeyID, nil
1✔
40
}
1✔
41

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

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

52
        rootKeyStore := &inMemoryRootKeyStore{
1✔
53
                rootKey: rootKey,
1✔
54
        }
1✔
55

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

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

67
        return mac.M(), nil
1✔
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