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

lightningnetwork / lnd / 13566028875

27 Feb 2025 12:09PM UTC coverage: 49.396% (-9.4%) from 58.748%
13566028875

Pull #9555

github

ellemouton
graph/db: populate the graph cache in Start instead of during construction

In this commit, we move the graph cache population logic out of the
ChannelGraph constructor and into its Start method instead.
Pull Request #9555: graph: extract cache from CRUD [6]

34 of 54 new or added lines in 4 files covered. (62.96%)

27464 existing lines in 436 files now uncovered.

101095 of 204664 relevant lines covered (49.4%)

1.54 hits per line

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

75.68
/lnwallet/chainfee/rates.go
1
package chainfee
2

3
import (
4
        "fmt"
5

6
        "github.com/btcsuite/btcd/blockchain"
7
        "github.com/btcsuite/btcd/btcutil"
8
        "github.com/lightningnetwork/lnd/lntypes"
9
)
10

11
const (
12
        // FeePerKwFloor is the lowest fee rate in sat/kw that we should use for
13
        // estimating transaction fees before signing.
14
        FeePerKwFloor SatPerKWeight = 253
15

16
        // AbsoluteFeePerKwFloor is the lowest fee rate in sat/kw of a
17
        // transaction that we should ever _create_. This is the equivalent
18
        // of 1 sat/byte in sat/kw.
19
        AbsoluteFeePerKwFloor SatPerKWeight = 250
20
)
21

22
// SatPerVByte represents a fee rate in sat/vbyte.
23
type SatPerVByte btcutil.Amount
24

25
// FeePerKWeight converts the current fee rate from sat/vb to sat/kw.
26
func (s SatPerVByte) FeePerKWeight() SatPerKWeight {
3✔
27
        return SatPerKWeight(s * 1000 / blockchain.WitnessScaleFactor)
3✔
28
}
3✔
29

30
// FeePerKVByte converts the current fee rate from sat/vb to sat/kvb.
UNCOV
31
func (s SatPerVByte) FeePerKVByte() SatPerKVByte {
×
UNCOV
32
        return SatPerKVByte(s * 1000)
×
UNCOV
33
}
×
34

35
// String returns a human-readable string of the fee rate.
36
func (s SatPerVByte) String() string {
3✔
37
        return fmt.Sprintf("%v sat/vb", int64(s))
3✔
38
}
3✔
39

40
// SatPerKVByte represents a fee rate in sat/kb.
41
type SatPerKVByte btcutil.Amount
42

43
// FeeForVSize calculates the fee resulting from this fee rate and the given
44
// vsize in vbytes.
UNCOV
45
func (s SatPerKVByte) FeeForVSize(vbytes lntypes.VByte) btcutil.Amount {
×
UNCOV
46
        return btcutil.Amount(s) * btcutil.Amount(vbytes) / 1000
×
UNCOV
47
}
×
48

49
// FeePerKWeight converts the current fee rate from sat/kb to sat/kw.
50
func (s SatPerKVByte) FeePerKWeight() SatPerKWeight {
3✔
51
        return SatPerKWeight(s / blockchain.WitnessScaleFactor)
3✔
52
}
3✔
53

54
// String returns a human-readable string of the fee rate.
55
func (s SatPerKVByte) String() string {
3✔
56
        return fmt.Sprintf("%v sat/kvb", int64(s))
3✔
57
}
3✔
58

59
// SatPerKWeight represents a fee rate in sat/kw.
60
type SatPerKWeight btcutil.Amount
61

62
// NewSatPerKWeight creates a new fee rate in sat/kw.
63
func NewSatPerKWeight(fee btcutil.Amount, wu lntypes.WeightUnit) SatPerKWeight {
3✔
64
        return SatPerKWeight(fee.MulF64(1000 / float64(wu)))
3✔
65
}
3✔
66

67
// FeeForWeight calculates the fee resulting from this fee rate and the given
68
// weight in weight units (wu).
69
func (s SatPerKWeight) FeeForWeight(wu lntypes.WeightUnit) btcutil.Amount {
3✔
70
        // The resulting fee is rounded down, as specified in BOLT#03.
3✔
71
        return btcutil.Amount(s) * btcutil.Amount(wu) / 1000
3✔
72
}
3✔
73

74
// FeeForVByte calculates the fee resulting from this fee rate and the given
75
// size in vbytes (vb).
76
func (s SatPerKWeight) FeeForVByte(vb lntypes.VByte) btcutil.Amount {
×
77
        return s.FeePerKVByte().FeeForVSize(vb)
×
78
}
×
79

80
// FeePerKVByte converts the current fee rate from sat/kw to sat/kb.
81
func (s SatPerKWeight) FeePerKVByte() SatPerKVByte {
3✔
82
        return SatPerKVByte(s * blockchain.WitnessScaleFactor)
3✔
83
}
3✔
84

85
// FeePerVByte converts the current fee rate from sat/kw to sat/vb.
86
func (s SatPerKWeight) FeePerVByte() SatPerVByte {
3✔
87
        return SatPerVByte(s * blockchain.WitnessScaleFactor / 1000)
3✔
88
}
3✔
89

90
// String returns a human-readable string of the fee rate.
91
func (s SatPerKWeight) String() string {
3✔
92
        return fmt.Sprintf("%v sat/kw", int64(s))
3✔
93
}
3✔
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