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

lightningnetwork / lnd / 11216766535

07 Oct 2024 01:37PM UTC coverage: 57.817% (-1.0%) from 58.817%
11216766535

Pull #9148

github

ProofOfKeags
lnwire: remove kickoff feerate from propose/commit
Pull Request #9148: DynComms [2/n]: lnwire: add authenticated wire messages for Dyn*

571 of 879 new or added lines in 16 files covered. (64.96%)

23253 existing lines in 251 files now uncovered.

99022 of 171268 relevant lines covered (57.82%)

38420.67 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 {
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.
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 {
8✔
64
        return SatPerKWeight(fee.MulF64(1000 / float64(wu)))
8✔
65
}
8✔
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 {
8,782,671✔
70
        // The resulting fee is rounded down, as specified in BOLT#03.
8,782,671✔
71
        return btcutil.Amount(s) * btcutil.Amount(wu) / 1000
8,782,671✔
72
}
8,782,671✔
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 {
536✔
82
        return SatPerKVByte(s * blockchain.WitnessScaleFactor)
536✔
83
}
536✔
84

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

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