@@ -5119,16 +5119,12 @@ where
51195119 // We will first subtract the fee as if we were above-dust. Then, if the resulting
51205120 // value ends up being below dust, we have this fee available again. In that case,
51215121 // match the value to right-below-dust.
5122- let mut capacity_minus_commitment_fee_msat: i64 = available_capacity_msat as i64 -
5123- max_reserved_commit_tx_fee_msat as i64;
5124- if capacity_minus_commitment_fee_msat < (real_dust_limit_timeout_sat as i64) * 1000 {
5125- let one_htlc_difference_msat = max_reserved_commit_tx_fee_msat - min_reserved_commit_tx_fee_msat;
5126- debug_assert!(one_htlc_difference_msat != 0);
5127- capacity_minus_commitment_fee_msat += one_htlc_difference_msat as i64;
5128- capacity_minus_commitment_fee_msat = cmp::min(real_dust_limit_timeout_sat as i64 * 1000 - 1, capacity_minus_commitment_fee_msat);
5129- available_capacity_msat = cmp::max(0, cmp::min(capacity_minus_commitment_fee_msat, available_capacity_msat as i64)) as u64;
5122+ let capacity_minus_max_commitment_fee_msat = available_capacity_msat.saturating_sub(max_reserved_commit_tx_fee_msat);
5123+ if capacity_minus_max_commitment_fee_msat < real_dust_limit_timeout_sat * 1000 {
5124+ let capacity_minus_min_commitment_fee_msat = available_capacity_msat.saturating_sub(min_reserved_commit_tx_fee_msat);
5125+ available_capacity_msat = cmp::min(real_dust_limit_timeout_sat * 1000 - 1, capacity_minus_min_commitment_fee_msat);
51305126 } else {
5131- available_capacity_msat = capacity_minus_commitment_fee_msat as u64 ;
5127+ available_capacity_msat = capacity_minus_max_commitment_fee_msat ;
51325128 }
51335129 } else {
51345130 // If the channel is inbound (i.e. counterparty pays the fee), we need to make sure
0 commit comments