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

lightningnetwork / lnd / 13707895824

06 Mar 2025 08:49PM UTC coverage: 56.554% (-1.7%) from 58.205%
13707895824

Pull #9458

github

web-flow
Merge d69f7f75d into 7d7e1872c
Pull Request #9458: multi+server.go: add initial permissions for some peers

276 of 549 new or added lines in 10 files covered. (50.27%)

22271 existing lines in 266 files now uncovered.

104853 of 185404 relevant lines covered (56.55%)

24158.62 hits per line

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

83.78
/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 {
17✔
27
        return SatPerKWeight(s * 1000 / blockchain.WitnessScaleFactor)
17✔
28
}
17✔
29

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

35
// String returns a human-readable string of the fee rate.
36
func (s SatPerVByte) String() string {
1✔
37
        return fmt.Sprintf("%v sat/vb", int64(s))
1✔
38
}
1✔
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.
45
func (s SatPerKVByte) FeeForVSize(vbytes lntypes.VByte) btcutil.Amount {
234✔
46
        return btcutil.Amount(s) * btcutil.Amount(vbytes) / 1000
234✔
47
}
234✔
48

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

54
// String returns a human-readable string of the fee rate.
UNCOV
55
func (s SatPerKVByte) String() string {
×
UNCOV
56
        return fmt.Sprintf("%v sat/kvb", int64(s))
×
UNCOV
57
}
×
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 {
11✔
64
        return SatPerKWeight(fee.MulF64(1000 / float64(wu)))
11✔
65
}
11✔
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 {
233,408✔
70
        // The resulting fee is rounded down, as specified in BOLT#03.
233,408✔
71
        return btcutil.Amount(s) * btcutil.Amount(wu) / 1000
233,408✔
72
}
233,408✔
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 {
532✔
82
        return SatPerKVByte(s * blockchain.WitnessScaleFactor)
532✔
83
}
532✔
84

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

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