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

lightningnetwork / lnd / 15561477203

10 Jun 2025 01:54PM UTC coverage: 58.351% (-10.1%) from 68.487%
15561477203

Pull #9356

github

web-flow
Merge 6440b25db into c6d6d4c0b
Pull Request #9356: lnrpc: add incoming/outgoing channel ids filter to forwarding history request

33 of 36 new or added lines in 2 files covered. (91.67%)

28366 existing lines in 455 files now uncovered.

97715 of 167461 relevant lines covered (58.35%)

1.81 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