@@ -1976,14 +1976,9 @@ pub(super) struct FundingScope {
1976
1976
/// Max to_local and to_remote outputs in a remote-generated commitment transaction
1977
1977
counterparty_max_commitment_tx_output: Mutex<(u64, u64)>,
1978
1978
1979
- // We save these values so we can make sure `next_local_commit_tx_fee_msat` and
1980
- // `next_remote_commit_tx_fee_msat` properly predict what the next commitment transaction fee will
1981
- // be, by comparing the cached values to the fee of the transaction generated by
1982
- // `build_commitment_transaction`.
1983
- #[cfg(any(test, fuzzing))]
1984
- next_local_commitment_tx_fee_info_cached: Mutex<Option<CommitmentTxInfoCached>>,
1985
- #[cfg(any(test, fuzzing))]
1986
- next_remote_commitment_tx_fee_info_cached: Mutex<Option<CommitmentTxInfoCached>>,
1979
+ // We save these values so we can make sure validation of channel updates properly predicts
1980
+ // what the next commitment transaction fee will be, by comparing the cached values to the
1981
+ // fee of the transaction generated by `build_commitment_transaction`.
1987
1982
#[cfg(any(test, fuzzing))]
1988
1983
next_local_fee: Mutex<PredictedNextFee>,
1989
1984
#[cfg(any(test, fuzzing))]
@@ -2061,10 +2056,6 @@ impl Readable for FundingScope {
2061
2056
short_channel_id,
2062
2057
minimum_depth_override,
2063
2058
#[cfg(any(test, fuzzing))]
2064
- next_local_commitment_tx_fee_info_cached: Mutex::new(None),
2065
- #[cfg(any(test, fuzzing))]
2066
- next_remote_commitment_tx_fee_info_cached: Mutex::new(None),
2067
- #[cfg(any(test, fuzzing))]
2068
2059
next_local_fee: Mutex::new(PredictedNextFee::default()),
2069
2060
#[cfg(any(test, fuzzing))]
2070
2061
next_remote_fee: Mutex::new(PredictedNextFee::default()),
@@ -3210,10 +3201,6 @@ where
3210
3201
#[cfg(debug_assertions)]
3211
3202
counterparty_max_commitment_tx_output: Mutex::new((value_to_self_msat, (channel_value_satoshis * 1000 - msg_push_msat).saturating_sub(value_to_self_msat))),
3212
3203
3213
- #[cfg(any(test, fuzzing))]
3214
- next_local_commitment_tx_fee_info_cached: Mutex::new(None),
3215
- #[cfg(any(test, fuzzing))]
3216
- next_remote_commitment_tx_fee_info_cached: Mutex::new(None),
3217
3204
#[cfg(any(test, fuzzing))]
3218
3205
next_local_fee: Mutex::new(PredictedNextFee::default()),
3219
3206
#[cfg(any(test, fuzzing))]
@@ -3457,10 +3444,6 @@ where
3457
3444
#[cfg(debug_assertions)]
3458
3445
counterparty_max_commitment_tx_output: Mutex::new((channel_value_satoshis * 1000 - push_msat, push_msat)),
3459
3446
3460
- #[cfg(any(test, fuzzing))]
3461
- next_local_commitment_tx_fee_info_cached: Mutex::new(None),
3462
- #[cfg(any(test, fuzzing))]
3463
- next_remote_commitment_tx_fee_info_cached: Mutex::new(None),
3464
3447
#[cfg(any(test, fuzzing))]
3465
3448
next_local_fee: Mutex::new(PredictedNextFee::default()),
3466
3449
#[cfg(any(test, fuzzing))]
@@ -4479,20 +4462,6 @@ where
4479
4462
}
4480
4463
#[cfg(any(test, fuzzing))]
4481
4464
{
4482
- if funding.is_outbound() {
4483
- let projected_commit_tx_info = funding.next_local_commitment_tx_fee_info_cached.lock().unwrap().take();
4484
- *funding.next_remote_commitment_tx_fee_info_cached.lock().unwrap() = None;
4485
- if let Some(info) = projected_commit_tx_info {
4486
- let total_pending_htlcs = self.pending_inbound_htlcs.len() + self.pending_outbound_htlcs.len()
4487
- + self.holding_cell_htlc_updates.len();
4488
- if info.total_pending_htlcs == total_pending_htlcs
4489
- && info.next_holder_htlc_id == self.next_holder_htlc_id
4490
- && info.next_counterparty_htlc_id == self.next_counterparty_htlc_id
4491
- && info.feerate == self.feerate_per_kw {
4492
- assert_eq!(commitment_data.stats.commit_tx_fee_sat, info.fee / 1000);
4493
- }
4494
- }
4495
- }
4496
4465
let PredictedNextFee { predicted_feerate, predicted_nondust_htlc_count, predicted_fee_sat } = *funding.next_local_fee.lock().unwrap();
4497
4466
if predicted_feerate == commitment_data.tx.feerate_per_kw() && predicted_nondust_htlc_count == commitment_data.tx.nondust_htlcs().len() {
4498
4467
assert_eq!(predicted_fee_sat, commitment_data.stats.commit_tx_fee_sat);
@@ -5322,31 +5291,7 @@ where
5322
5291
}
5323
5292
5324
5293
let num_htlcs = included_htlcs + addl_htlcs;
5325
- let commit_tx_fee_msat = SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs, funding.get_channel_type()) * 1000;
5326
- #[cfg(any(test, fuzzing))]
5327
- {
5328
- let mut fee = commit_tx_fee_msat;
5329
- if fee_spike_buffer_htlc.is_some() {
5330
- fee = SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs - 1, funding.get_channel_type()) * 1000;
5331
- }
5332
- let total_pending_htlcs = context.pending_inbound_htlcs.len() + context.pending_outbound_htlcs.len()
5333
- + context.holding_cell_htlc_updates.len();
5334
- let commitment_tx_info = CommitmentTxInfoCached {
5335
- fee,
5336
- total_pending_htlcs,
5337
- next_holder_htlc_id: match htlc.origin {
5338
- HTLCInitiator::LocalOffered => context.next_holder_htlc_id + 1,
5339
- HTLCInitiator::RemoteOffered => context.next_holder_htlc_id,
5340
- },
5341
- next_counterparty_htlc_id: match htlc.origin {
5342
- HTLCInitiator::LocalOffered => context.next_counterparty_htlc_id,
5343
- HTLCInitiator::RemoteOffered => context.next_counterparty_htlc_id + 1,
5344
- },
5345
- feerate: context.feerate_per_kw,
5346
- };
5347
- *funding.next_local_commitment_tx_fee_info_cached.lock().unwrap() = Some(commitment_tx_info);
5348
- }
5349
- commit_tx_fee_msat
5294
+ SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs, funding.get_channel_type()) * 1000
5350
5295
}
5351
5296
5352
5297
/// Get the commitment tx fee for the remote's next commitment transaction based on the number of
@@ -5423,30 +5368,7 @@ where
5423
5368
}
5424
5369
5425
5370
let num_htlcs = included_htlcs + addl_htlcs;
5426
- let commit_tx_fee_msat = SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs, funding.get_channel_type()) * 1000;
5427
- #[cfg(any(test, fuzzing))]
5428
- if let Some(htlc) = &htlc {
5429
- let mut fee = commit_tx_fee_msat;
5430
- if fee_spike_buffer_htlc.is_some() {
5431
- fee = SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs - 1, funding.get_channel_type()) * 1000;
5432
- }
5433
- let total_pending_htlcs = context.pending_inbound_htlcs.len() + context.pending_outbound_htlcs.len();
5434
- let commitment_tx_info = CommitmentTxInfoCached {
5435
- fee,
5436
- total_pending_htlcs,
5437
- next_holder_htlc_id: match htlc.origin {
5438
- HTLCInitiator::LocalOffered => context.next_holder_htlc_id + 1,
5439
- HTLCInitiator::RemoteOffered => context.next_holder_htlc_id,
5440
- },
5441
- next_counterparty_htlc_id: match htlc.origin {
5442
- HTLCInitiator::LocalOffered => context.next_counterparty_htlc_id,
5443
- HTLCInitiator::RemoteOffered => context.next_counterparty_htlc_id + 1,
5444
- },
5445
- feerate: context.feerate_per_kw,
5446
- };
5447
- *funding.next_remote_commitment_tx_fee_info_cached.lock().unwrap() = Some(commitment_tx_info);
5448
- }
5449
- commit_tx_fee_msat
5371
+ SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs, funding.get_channel_type()) * 1000
5450
5372
}
5451
5373
5452
5374
#[rustfmt::skip]
@@ -6101,15 +6023,6 @@ macro_rules! promote_splice_funding {
6101
6023
};
6102
6024
}
6103
6025
6104
- #[cfg(any(test, fuzzing))]
6105
- struct CommitmentTxInfoCached {
6106
- fee: u64,
6107
- total_pending_htlcs: usize,
6108
- next_holder_htlc_id: u64,
6109
- next_counterparty_htlc_id: u64,
6110
- feerate: u32,
6111
- }
6112
-
6113
6026
#[cfg(any(test, fuzzing))]
6114
6027
#[derive(Clone, Copy, Default)]
6115
6028
struct PredictedNextFee {
@@ -7618,16 +7531,6 @@ where
7618
7531
return Err(ChannelError::close("Received an unexpected revoke_and_ack".to_owned()));
7619
7532
}
7620
7533
7621
- #[cfg(any(test, fuzzing))]
7622
- {
7623
- for funding in
7624
- core::iter::once(&mut self.funding).chain(self.pending_funding.iter_mut())
7625
- {
7626
- *funding.next_local_commitment_tx_fee_info_cached.lock().unwrap() = None;
7627
- *funding.next_remote_commitment_tx_fee_info_cached.lock().unwrap() = None;
7628
- }
7629
- }
7630
-
7631
7534
match &self.context.holder_signer {
7632
7535
ChannelSignerType::Ecdsa(ecdsa) => {
7633
7536
ecdsa
@@ -11069,19 +10972,6 @@ where
11069
10972
11070
10973
#[cfg(any(test, fuzzing))]
11071
10974
{
11072
- if !funding.is_outbound() {
11073
- let projected_commit_tx_info = funding.next_remote_commitment_tx_fee_info_cached.lock().unwrap().take();
11074
- *funding.next_local_commitment_tx_fee_info_cached.lock().unwrap() = None;
11075
- if let Some(info) = projected_commit_tx_info {
11076
- let total_pending_htlcs = self.context.pending_inbound_htlcs.len() + self.context.pending_outbound_htlcs.len();
11077
- if info.total_pending_htlcs == total_pending_htlcs
11078
- && info.next_holder_htlc_id == self.context.next_holder_htlc_id
11079
- && info.next_counterparty_htlc_id == self.context.next_counterparty_htlc_id
11080
- && info.feerate == self.context.feerate_per_kw {
11081
- assert_eq!(commitment_data.stats.commit_tx_fee_sat, info.fee);
11082
- }
11083
- }
11084
- }
11085
10975
let PredictedNextFee { predicted_feerate, predicted_nondust_htlc_count, predicted_fee_sat } = *funding.next_remote_fee.lock().unwrap();
11086
10976
if predicted_feerate == counterparty_commitment_tx.feerate_per_kw() && predicted_nondust_htlc_count == counterparty_commitment_tx.nondust_htlcs().len() {
11087
10977
assert_eq!(predicted_fee_sat, commitment_data.stats.commit_tx_fee_sat);
@@ -13707,10 +13597,6 @@ where
13707
13597
#[cfg(debug_assertions)]
13708
13598
counterparty_max_commitment_tx_output: Mutex::new((0, 0)),
13709
13599
13710
- #[cfg(any(test, fuzzing))]
13711
- next_local_commitment_tx_fee_info_cached: Mutex::new(None),
13712
- #[cfg(any(test, fuzzing))]
13713
- next_remote_commitment_tx_fee_info_cached: Mutex::new(None),
13714
13600
#[cfg(any(test, fuzzing))]
13715
13601
next_local_fee: Mutex::new(PredictedNextFee::default()),
13716
13602
#[cfg(any(test, fuzzing))]
0 commit comments