@@ -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))]
@@ -4451,20 +4434,6 @@ where
4451
4434
}
4452
4435
#[cfg(any(test, fuzzing))]
4453
4436
{
4454
- if funding.is_outbound() {
4455
- let projected_commit_tx_info = funding.next_local_commitment_tx_fee_info_cached.lock().unwrap().take();
4456
- *funding.next_remote_commitment_tx_fee_info_cached.lock().unwrap() = None;
4457
- if let Some(info) = projected_commit_tx_info {
4458
- let total_pending_htlcs = self.pending_inbound_htlcs.len() + self.pending_outbound_htlcs.len()
4459
- + self.holding_cell_htlc_updates.len();
4460
- if info.total_pending_htlcs == total_pending_htlcs
4461
- && info.next_holder_htlc_id == self.next_holder_htlc_id
4462
- && info.next_counterparty_htlc_id == self.next_counterparty_htlc_id
4463
- && info.feerate == self.feerate_per_kw {
4464
- assert_eq!(commitment_data.stats.commit_tx_fee_sat, info.fee / 1000);
4465
- }
4466
- }
4467
- }
4468
4437
let PredictedNextFee { predicted_feerate, predicted_htlcs, predicted_fee_sat } = funding.next_local_fee.lock().unwrap().clone();
4469
4438
let mut actual_nondust_htlcs: Vec<_> = commitment_data.tx.nondust_htlcs().iter().map(|&HTLCOutputInCommitment { offered, amount_msat, .. } | HTLCAmountDirection { outbound: offered, amount_msat }).collect();
4470
4439
actual_nondust_htlcs.sort_unstable();
@@ -5339,31 +5308,7 @@ where
5339
5308
}
5340
5309
5341
5310
let num_htlcs = included_htlcs + addl_htlcs;
5342
- let commit_tx_fee_msat = SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs, funding.get_channel_type()) * 1000;
5343
- #[cfg(any(test, fuzzing))]
5344
- {
5345
- let mut fee = commit_tx_fee_msat;
5346
- if fee_spike_buffer_htlc.is_some() {
5347
- fee = SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs - 1, funding.get_channel_type()) * 1000;
5348
- }
5349
- let total_pending_htlcs = context.pending_inbound_htlcs.len() + context.pending_outbound_htlcs.len()
5350
- + context.holding_cell_htlc_updates.len();
5351
- let commitment_tx_info = CommitmentTxInfoCached {
5352
- fee,
5353
- total_pending_htlcs,
5354
- next_holder_htlc_id: match htlc.origin {
5355
- HTLCInitiator::LocalOffered => context.next_holder_htlc_id + 1,
5356
- HTLCInitiator::RemoteOffered => context.next_holder_htlc_id,
5357
- },
5358
- next_counterparty_htlc_id: match htlc.origin {
5359
- HTLCInitiator::LocalOffered => context.next_counterparty_htlc_id,
5360
- HTLCInitiator::RemoteOffered => context.next_counterparty_htlc_id + 1,
5361
- },
5362
- feerate: context.feerate_per_kw,
5363
- };
5364
- *funding.next_local_commitment_tx_fee_info_cached.lock().unwrap() = Some(commitment_tx_info);
5365
- }
5366
- commit_tx_fee_msat
5311
+ SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs, funding.get_channel_type()) * 1000
5367
5312
}
5368
5313
5369
5314
/// Get the commitment tx fee for the remote's next commitment transaction based on the number of
@@ -5440,30 +5385,7 @@ where
5440
5385
}
5441
5386
5442
5387
let num_htlcs = included_htlcs + addl_htlcs;
5443
- let commit_tx_fee_msat = SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs, funding.get_channel_type()) * 1000;
5444
- #[cfg(any(test, fuzzing))]
5445
- if let Some(htlc) = &htlc {
5446
- let mut fee = commit_tx_fee_msat;
5447
- if fee_spike_buffer_htlc.is_some() {
5448
- fee = SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs - 1, funding.get_channel_type()) * 1000;
5449
- }
5450
- let total_pending_htlcs = context.pending_inbound_htlcs.len() + context.pending_outbound_htlcs.len();
5451
- let commitment_tx_info = CommitmentTxInfoCached {
5452
- fee,
5453
- total_pending_htlcs,
5454
- next_holder_htlc_id: match htlc.origin {
5455
- HTLCInitiator::LocalOffered => context.next_holder_htlc_id + 1,
5456
- HTLCInitiator::RemoteOffered => context.next_holder_htlc_id,
5457
- },
5458
- next_counterparty_htlc_id: match htlc.origin {
5459
- HTLCInitiator::LocalOffered => context.next_counterparty_htlc_id,
5460
- HTLCInitiator::RemoteOffered => context.next_counterparty_htlc_id + 1,
5461
- },
5462
- feerate: context.feerate_per_kw,
5463
- };
5464
- *funding.next_remote_commitment_tx_fee_info_cached.lock().unwrap() = Some(commitment_tx_info);
5465
- }
5466
- commit_tx_fee_msat
5388
+ SpecTxBuilder {}.commit_tx_fee_sat(context.feerate_per_kw, num_htlcs, funding.get_channel_type()) * 1000
5467
5389
}
5468
5390
5469
5391
#[rustfmt::skip]
@@ -6118,15 +6040,6 @@ macro_rules! promote_splice_funding {
6118
6040
};
6119
6041
}
6120
6042
6121
- #[cfg(any(test, fuzzing))]
6122
- struct CommitmentTxInfoCached {
6123
- fee: u64,
6124
- total_pending_htlcs: usize,
6125
- next_holder_htlc_id: u64,
6126
- next_counterparty_htlc_id: u64,
6127
- feerate: u32,
6128
- }
6129
-
6130
6043
#[cfg(any(test, fuzzing))]
6131
6044
#[derive(Clone, Default)]
6132
6045
struct PredictedNextFee {
@@ -7635,16 +7548,6 @@ where
7635
7548
return Err(ChannelError::close("Received an unexpected revoke_and_ack".to_owned()));
7636
7549
}
7637
7550
7638
- #[cfg(any(test, fuzzing))]
7639
- {
7640
- for funding in
7641
- core::iter::once(&mut self.funding).chain(self.pending_funding.iter_mut())
7642
- {
7643
- *funding.next_local_commitment_tx_fee_info_cached.lock().unwrap() = None;
7644
- *funding.next_remote_commitment_tx_fee_info_cached.lock().unwrap() = None;
7645
- }
7646
- }
7647
-
7648
7551
match &self.context.holder_signer {
7649
7552
ChannelSignerType::Ecdsa(ecdsa) => {
7650
7553
ecdsa
@@ -11086,19 +10989,6 @@ where
11086
10989
11087
10990
#[cfg(any(test, fuzzing))]
11088
10991
{
11089
- if !funding.is_outbound() {
11090
- let projected_commit_tx_info = funding.next_remote_commitment_tx_fee_info_cached.lock().unwrap().take();
11091
- *funding.next_local_commitment_tx_fee_info_cached.lock().unwrap() = None;
11092
- if let Some(info) = projected_commit_tx_info {
11093
- let total_pending_htlcs = self.context.pending_inbound_htlcs.len() + self.context.pending_outbound_htlcs.len();
11094
- if info.total_pending_htlcs == total_pending_htlcs
11095
- && info.next_holder_htlc_id == self.context.next_holder_htlc_id
11096
- && info.next_counterparty_htlc_id == self.context.next_counterparty_htlc_id
11097
- && info.feerate == self.context.feerate_per_kw {
11098
- assert_eq!(commitment_data.stats.commit_tx_fee_sat, info.fee);
11099
- }
11100
- }
11101
- }
11102
10992
let PredictedNextFee { predicted_feerate, predicted_htlcs, predicted_fee_sat } = funding.next_remote_fee.lock().unwrap().clone();
11103
10993
let mut actual_nondust_htlcs: Vec<_> = counterparty_commitment_tx.nondust_htlcs().iter().map(|&HTLCOutputInCommitment { offered, amount_msat, .. }| HTLCAmountDirection { outbound: !offered, amount_msat }).collect();
11104
10994
actual_nondust_htlcs.sort_unstable();
@@ -13726,10 +13616,6 @@ where
13726
13616
#[cfg(debug_assertions)]
13727
13617
counterparty_max_commitment_tx_output: Mutex::new((0, 0)),
13728
13618
13729
- #[cfg(any(test, fuzzing))]
13730
- next_local_commitment_tx_fee_info_cached: Mutex::new(None),
13731
- #[cfg(any(test, fuzzing))]
13732
- next_remote_commitment_tx_fee_info_cached: Mutex::new(None),
13733
13619
#[cfg(any(test, fuzzing))]
13734
13620
next_local_fee: Mutex::new(PredictedNextFee::default()),
13735
13621
#[cfg(any(test, fuzzing))]
0 commit comments