@@ -1572,6 +1572,13 @@ pub(super) struct FundingScope {
15721572	pub(super) holder_selected_channel_reserve_satoshis: u64,
15731573	#[cfg(not(test))]
15741574	holder_selected_channel_reserve_satoshis: u64,
1575+ 
1576+ 	#[cfg(debug_assertions)]
1577+ 	/// Max to_local and to_remote outputs in a locally-generated commitment transaction
1578+ 	holder_max_commitment_tx_output: Mutex<(u64, u64)>,
1579+ 	#[cfg(debug_assertions)]
1580+ 	/// Max to_local and to_remote outputs in a remote-generated commitment transaction
1581+ 	counterparty_max_commitment_tx_output: Mutex<(u64, u64)>,
15751582}
15761583
15771584impl FundingScope {
@@ -1719,13 +1726,6 @@ pub(super) struct ChannelContext<SP: Deref> where SP::Target: SignerProvider {
17191726	/// time.
17201727	update_time_counter: u32,
17211728
1722- 	#[cfg(debug_assertions)]
1723- 	/// Max to_local and to_remote outputs in a locally-generated commitment transaction
1724- 	holder_max_commitment_tx_output: Mutex<(u64, u64)>,
1725- 	#[cfg(debug_assertions)]
1726- 	/// Max to_local and to_remote outputs in a remote-generated commitment transaction
1727- 	counterparty_max_commitment_tx_output: Mutex<(u64, u64)>,
1728- 
17291729	// (fee_sats, skip_remote_output, fee_range, holder_sig)
17301730	last_sent_closing_fee: Option<(u64, bool, ClosingSignedFeeRange, Option<Signature>)>,
17311731	last_received_closing_sig: Option<Signature>,
@@ -2465,6 +2465,11 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
24652465			value_to_self_msat,
24662466			counterparty_selected_channel_reserve_satoshis: Some(msg_channel_reserve_satoshis),
24672467			holder_selected_channel_reserve_satoshis,
2468+ 
2469+ 			#[cfg(debug_assertions)]
2470+ 			holder_max_commitment_tx_output: Mutex::new((value_to_self_msat, (channel_value_satoshis * 1000 - msg_push_msat).saturating_sub(value_to_self_msat))),
2471+ 			#[cfg(debug_assertions)]
2472+ 			counterparty_max_commitment_tx_output: Mutex::new((value_to_self_msat, (channel_value_satoshis * 1000 - msg_push_msat).saturating_sub(value_to_self_msat))),
24682473		};
24692474		let channel_context = ChannelContext {
24702475			user_id,
@@ -2521,12 +2526,6 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
25212526			signer_pending_closing: false,
25222527			signer_pending_channel_ready: false,
25232528
2524- 
2525- 			#[cfg(debug_assertions)]
2526- 			holder_max_commitment_tx_output: Mutex::new((value_to_self_msat, (channel_value_satoshis * 1000 - msg_push_msat).saturating_sub(value_to_self_msat))),
2527- 			#[cfg(debug_assertions)]
2528- 			counterparty_max_commitment_tx_output: Mutex::new((value_to_self_msat, (channel_value_satoshis * 1000 - msg_push_msat).saturating_sub(value_to_self_msat))),
2529- 
25302529			last_sent_closing_fee: None,
25312530			last_received_closing_sig: None,
25322531			pending_counterparty_closing_signed: None,
@@ -2699,6 +2698,13 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
26992698			value_to_self_msat,
27002699			counterparty_selected_channel_reserve_satoshis: None, // Filled in in accept_channel
27012700			holder_selected_channel_reserve_satoshis,
2701+ 
2702+ 			// We'll add our counterparty's `funding_satoshis` to these max commitment output assertions
2703+ 			// when we receive `accept_channel2`.
2704+ 			#[cfg(debug_assertions)]
2705+ 			holder_max_commitment_tx_output: Mutex::new((channel_value_satoshis * 1000 - push_msat, push_msat)),
2706+ 			#[cfg(debug_assertions)]
2707+ 			counterparty_max_commitment_tx_output: Mutex::new((channel_value_satoshis * 1000 - push_msat, push_msat)),
27022708		};
27032709		let channel_context = Self {
27042710			user_id,
@@ -2753,13 +2759,6 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
27532759			signer_pending_closing: false,
27542760			signer_pending_channel_ready: false,
27552761
2756- 			// We'll add our counterparty's `funding_satoshis` to these max commitment output assertions
2757- 			// when we receive `accept_channel2`.
2758- 			#[cfg(debug_assertions)]
2759- 			holder_max_commitment_tx_output: Mutex::new((channel_value_satoshis * 1000 - push_msat, push_msat)),
2760- 			#[cfg(debug_assertions)]
2761- 			counterparty_max_commitment_tx_output: Mutex::new((channel_value_satoshis * 1000 - push_msat, push_msat)),
2762- 
27632762			last_sent_closing_fee: None,
27642763			last_received_closing_sig: None,
27652764			pending_counterparty_closing_signed: None,
@@ -3490,9 +3489,9 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
34903489			// Make sure that the to_self/to_remote is always either past the appropriate
34913490			// channel_reserve *or* it is making progress towards it.
34923491			let mut broadcaster_max_commitment_tx_output = if generated_by_local {
3493- 				self .holder_max_commitment_tx_output.lock().unwrap()
3492+ 				funding .holder_max_commitment_tx_output.lock().unwrap()
34943493			} else {
3495- 				self .counterparty_max_commitment_tx_output.lock().unwrap()
3494+ 				funding .counterparty_max_commitment_tx_output.lock().unwrap()
34963495			};
34973496			debug_assert!(broadcaster_max_commitment_tx_output.0 <= value_to_self_msat as u64 || value_to_self_msat / 1000 >= funding.counterparty_selected_channel_reserve_satoshis.unwrap() as i64);
34983497			broadcaster_max_commitment_tx_output.0 = cmp::max(broadcaster_max_commitment_tx_output.0, value_to_self_msat as u64);
@@ -10371,6 +10370,11 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
1037110370				value_to_self_msat,
1037210371				counterparty_selected_channel_reserve_satoshis,
1037310372				holder_selected_channel_reserve_satoshis: holder_selected_channel_reserve_satoshis.unwrap(),
10373+ 
10374+ 				#[cfg(debug_assertions)]
10375+ 				holder_max_commitment_tx_output: Mutex::new((0, 0)),
10376+ 				#[cfg(debug_assertions)]
10377+ 				counterparty_max_commitment_tx_output: Mutex::new((0, 0)),
1037410378			},
1037510379			context: ChannelContext {
1037610380				user_id,
@@ -10426,11 +10430,6 @@ impl<'a, 'b, 'c, ES: Deref, SP: Deref> ReadableArgs<(&'a ES, &'b SP, u32, &'c Ch
1042610430				update_time_counter,
1042710431				feerate_per_kw,
1042810432
10429- 				#[cfg(debug_assertions)]
10430- 				holder_max_commitment_tx_output: Mutex::new((0, 0)),
10431- 				#[cfg(debug_assertions)]
10432- 				counterparty_max_commitment_tx_output: Mutex::new((0, 0)),
10433- 
1043410433				last_sent_closing_fee: None,
1043510434				last_received_closing_sig: None,
1043610435				pending_counterparty_closing_signed: None,
0 commit comments