Skip to content

Commit d14ea23

Browse files
committed
Rename CommitmentTransaction.feerate_per_kw()
Use `negotiated_feerate_per_kw()` to underscore that this is the feerate we negotiated with our peer, not the actual feerate of the commitment transaction. The feerate of the actual commitment transaction may be higher.
1 parent ae8cf33 commit d14ea23

File tree

6 files changed

+22
-17
lines changed

6 files changed

+22
-17
lines changed

lightning/src/chain/channelmonitor.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ fn write_legacy_holder_commitment_data<W: Writer>(
367367

368368
let txid = trusted_tx.txid();
369369
let to_self_value_sat = commitment_tx.to_broadcaster_value_sat();
370-
let feerate_per_kw = trusted_tx.feerate_per_kw();
370+
let feerate_per_kw = trusted_tx.negotiated_feerate_per_kw();
371371
let revocation_key = &tx_keys.revocation_key;
372372
let a_htlc_key = &tx_keys.broadcaster_htlc_key;
373373
let b_htlc_key = &tx_keys.countersignatory_htlc_key;
@@ -3461,7 +3461,7 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitorImpl<Signer> {
34613461
if !commitment_tx.trust().channel_type_features().supports_anchor_zero_fee_commitments() {
34623462
// We populate this field for downgrades
34633463
self.initial_counterparty_commitment_info = Some((commitment_tx.per_commitment_point(),
3464-
commitment_tx.feerate_per_kw(), commitment_tx.to_broadcaster_value_sat(), commitment_tx.to_countersignatory_value_sat()));
3464+
commitment_tx.negotiated_feerate_per_kw(), commitment_tx.to_broadcaster_value_sat(), commitment_tx.to_countersignatory_value_sat()));
34653465

34663466
#[cfg(debug_assertions)] {
34673467
let rebuilt_commitment_tx = self.initial_counterparty_commitment_tx().unwrap();
@@ -3668,7 +3668,9 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitorImpl<Signer> {
36683668
{
36693669
return Err("Per-commitment-point mismatch");
36703670
}
3671-
if commitment_tx.feerate_per_kw() != other_commitment_tx.feerate_per_kw() {
3671+
if commitment_tx.negotiated_feerate_per_kw()
3672+
!= other_commitment_tx.negotiated_feerate_per_kw()
3673+
{
36723674
return Err("Commitment fee rate mismatch");
36733675
}
36743676
let nondust_htlcs = commitment_tx.nondust_htlcs();
@@ -4834,7 +4836,7 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitorImpl<Signer> {
48344836
commitment_txid: tx.txid(),
48354837
per_commitment_number: tx.commitment_number(),
48364838
per_commitment_point: tx.per_commitment_point(),
4837-
feerate_per_kw: tx.feerate_per_kw(),
4839+
feerate_per_kw: tx.negotiated_feerate_per_kw(),
48384840
htlc: htlc.clone(),
48394841
preimage,
48404842
counterparty_sig: *counterparty_sig,

lightning/src/chain/onchaintx.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1397,7 +1397,7 @@ mod tests {
13971397
commitment_txid: holder_commit_txid,
13981398
per_commitment_number: holder_commit.commitment_number(),
13991399
per_commitment_point: holder_commit.per_commitment_point(),
1400-
feerate_per_kw: holder_commit.feerate_per_kw(),
1400+
feerate_per_kw: holder_commit.negotiated_feerate_per_kw(),
14011401
htlc: htlc.clone(),
14021402
preimage: None,
14031403
counterparty_sig: *counterparty_sig,

lightning/src/chain/package.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ impl HolderHTLCOutput {
528528
commitment_txid: trusted_tx.txid(),
529529
per_commitment_number: trusted_tx.commitment_number(),
530530
per_commitment_point: trusted_tx.per_commitment_point(),
531-
feerate_per_kw: trusted_tx.feerate_per_kw(),
531+
feerate_per_kw: trusted_tx.negotiated_feerate_per_kw(),
532532
htlc: htlc.clone(),
533533
preimage: self.preimage.clone(),
534534
counterparty_sig: *counterparty_sig,
@@ -1893,7 +1893,7 @@ mod tests {
18931893
commitment_txid: trusted_tx.txid(),
18941894
per_commitment_number: trusted_tx.commitment_number(),
18951895
per_commitment_point: trusted_tx.per_commitment_point(),
1896-
feerate_per_kw: trusted_tx.feerate_per_kw(),
1896+
feerate_per_kw: trusted_tx.negotiated_feerate_per_kw(),
18971897
htlc,
18981898
preimage: Some(preimage),
18991899
counterparty_sig: commitment_tx.counterparty_htlc_sigs[0].clone(),
@@ -1930,7 +1930,7 @@ mod tests {
19301930
commitment_txid: trusted_tx.txid(),
19311931
per_commitment_number: trusted_tx.commitment_number(),
19321932
per_commitment_point: trusted_tx.per_commitment_point(),
1933-
feerate_per_kw: trusted_tx.feerate_per_kw(),
1933+
feerate_per_kw: trusted_tx.negotiated_feerate_per_kw(),
19341934
htlc,
19351935
preimage: None,
19361936
counterparty_sig: commitment_tx.counterparty_htlc_sigs[0].clone(),

lightning/src/ln/chan_utils.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1982,8 +1982,11 @@ impl CommitmentTransaction {
19821982
self.to_countersignatory_value_sat.to_sat()
19831983
}
19841984

1985-
/// The feerate paid per 1000-weight-unit in this commitment transaction.
1986-
pub fn feerate_per_kw(&self) -> u32 {
1985+
/// The feerate paid per 1000-weight-unit we negotiated with our
1986+
/// peer for this commitment transaction. Note that the actual
1987+
/// feerate of the commitment transaction may be higher than the
1988+
/// negotiated feerate.
1989+
pub fn negotiated_feerate_per_kw(&self) -> u32 {
19871990
self.feerate_per_kw
19881991
}
19891992

lightning/src/ln/channel.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4611,7 +4611,7 @@ where
46114611
#[cfg(any(test, fuzzing))]
46124612
{
46134613
let PredictedNextFee { predicted_feerate, predicted_nondust_htlc_count, predicted_fee_sat } = *funding.next_local_fee.lock().unwrap();
4614-
if predicted_feerate == commitment_data.tx.feerate_per_kw() && predicted_nondust_htlc_count == commitment_data.tx.nondust_htlcs().len() {
4614+
if predicted_feerate == commitment_data.tx.negotiated_feerate_per_kw() && predicted_nondust_htlc_count == commitment_data.tx.nondust_htlcs().len() {
46154615
assert_eq!(predicted_fee_sat, commitment_data.stats.commit_tx_fee_sat);
46164616
}
46174617
}
@@ -4623,7 +4623,7 @@ where
46234623
let holder_keys = commitment_data.tx.trust().keys();
46244624
for (htlc, counterparty_sig) in commitment_data.tx.nondust_htlcs().iter().zip(msg.htlc_signatures.iter()) {
46254625
assert!(htlc.transaction_output_index.is_some());
4626-
let htlc_tx = chan_utils::build_htlc_transaction(&commitment_txid, commitment_data.tx.feerate_per_kw(),
4626+
let htlc_tx = chan_utils::build_htlc_transaction(&commitment_txid, commitment_data.tx.negotiated_feerate_per_kw(),
46274627
funding.get_counterparty_selected_contest_delay().unwrap(), &htlc, funding.get_channel_type(),
46284628
&holder_keys.broadcaster_delayed_payment_key, &holder_keys.revocation_key);
46294629

@@ -11877,7 +11877,7 @@ where
1187711877
htlc_outputs,
1187811878
commitment_number: self.context.counterparty_next_commitment_transaction_number,
1187911879
their_per_commitment_point: self.context.counterparty_next_commitment_point.unwrap(),
11880-
feerate_per_kw: Some(counterparty_commitment_tx.feerate_per_kw()),
11880+
feerate_per_kw: Some(counterparty_commitment_tx.negotiated_feerate_per_kw()),
1188111881
to_broadcaster_value_sat: Some(counterparty_commitment_tx.to_broadcaster_value_sat()),
1188211882
to_countersignatory_value_sat: Some(counterparty_commitment_tx.to_countersignatory_value_sat()),
1188311883
}
@@ -11940,7 +11940,7 @@ where
1194011940
#[cfg(any(test, fuzzing))]
1194111941
{
1194211942
let PredictedNextFee { predicted_feerate, predicted_nondust_htlc_count, predicted_fee_sat } = *funding.next_remote_fee.lock().unwrap();
11943-
if predicted_feerate == counterparty_commitment_tx.feerate_per_kw() && predicted_nondust_htlc_count == counterparty_commitment_tx.nondust_htlcs().len() {
11943+
if predicted_feerate == counterparty_commitment_tx.negotiated_feerate_per_kw() && predicted_nondust_htlc_count == counterparty_commitment_tx.nondust_htlcs().len() {
1194411944
assert_eq!(predicted_fee_sat, commitment_data.stats.commit_tx_fee_sat);
1194511945
}
1194611946
}
@@ -12004,7 +12004,7 @@ where
1200412004
debug_assert_eq!(htlc_signatures.len(), trusted_tx.nondust_htlcs().len());
1200512005
for (ref htlc_sig, ref htlc) in htlc_signatures.iter().zip(trusted_tx.nondust_htlcs()) {
1200612006
log_trace!(logger, "Signed remote HTLC tx {} with redeemscript {} with pubkey {} -> {} in channel {}",
12007-
encode::serialize_hex(&chan_utils::build_htlc_transaction(&trusted_tx.txid(), trusted_tx.feerate_per_kw(), funding.get_holder_selected_contest_delay(), htlc, funding.get_channel_type(), &counterparty_keys.broadcaster_delayed_payment_key, &counterparty_keys.revocation_key)),
12007+
encode::serialize_hex(&chan_utils::build_htlc_transaction(&trusted_tx.txid(), trusted_tx.negotiated_feerate_per_kw(), funding.get_holder_selected_contest_delay(), htlc, funding.get_channel_type(), &counterparty_keys.broadcaster_delayed_payment_key, &counterparty_keys.revocation_key)),
1200812008
encode::serialize_hex(&chan_utils::get_htlc_redeemscript(&htlc, funding.get_channel_type(), &counterparty_keys)),
1200912009
log_bytes!(counterparty_keys.broadcaster_htlc_key.to_public_key().serialize()),
1201012010
log_bytes!(htlc_sig.serialize_compact()[..]), &self.context.channel_id());
@@ -15786,7 +15786,7 @@ mod tests {
1578615786
commitment_txid: trusted_tx.txid(),
1578715787
per_commitment_number: trusted_tx.commitment_number(),
1578815788
per_commitment_point: trusted_tx.per_commitment_point(),
15789-
feerate_per_kw: trusted_tx.feerate_per_kw(),
15789+
feerate_per_kw: trusted_tx.negotiated_feerate_per_kw(),
1579015790
htlc: htlc.clone(),
1579115791
preimage: preimage.clone(),
1579215792
counterparty_sig: *htlc_counterparty_sig,

lightning/src/sign/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1464,7 +1464,7 @@ impl EcdsaChannelSigner for InMemorySigner {
14641464
let chan_type = &channel_parameters.channel_type_features;
14651465
let htlc_tx = chan_utils::build_htlc_transaction(
14661466
&commitment_txid,
1467-
commitment_tx.feerate_per_kw(),
1467+
commitment_tx.negotiated_feerate_per_kw(),
14681468
holder_selected_contest_delay,
14691469
htlc,
14701470
chan_type,

0 commit comments

Comments
 (0)