@@ -5723,16 +5723,12 @@ where
57235723 // We will first subtract the fee as if we were above-dust. Then, if the resulting
57245724 // value ends up being below dust, we have this fee available again. In that case,
57255725 // match the value to right-below-dust.
5726- let mut capacity_minus_commitment_fee_msat: i64 = available_capacity_msat as i64 -
5727- max_reserved_commit_tx_fee_msat as i64;
5728- if capacity_minus_commitment_fee_msat < (real_dust_limit_timeout_sat as i64) * 1000 {
5729- let one_htlc_difference_msat = max_reserved_commit_tx_fee_msat - min_reserved_commit_tx_fee_msat;
5730- debug_assert!(one_htlc_difference_msat != 0);
5731- capacity_minus_commitment_fee_msat += one_htlc_difference_msat as i64;
5732- capacity_minus_commitment_fee_msat = cmp::min(real_dust_limit_timeout_sat as i64 * 1000 - 1, capacity_minus_commitment_fee_msat);
5733- available_capacity_msat = cmp::max(0, cmp::min(capacity_minus_commitment_fee_msat, available_capacity_msat as i64)) as u64;
5726+ let capacity_minus_max_commitment_fee_msat = available_capacity_msat.saturating_sub(max_reserved_commit_tx_fee_msat);
5727+ if capacity_minus_max_commitment_fee_msat < real_dust_limit_timeout_sat * 1000 {
5728+ let capacity_minus_min_commitment_fee_msat = available_capacity_msat.saturating_sub(min_reserved_commit_tx_fee_msat);
5729+ available_capacity_msat = cmp::min(real_dust_limit_timeout_sat * 1000 - 1, capacity_minus_min_commitment_fee_msat);
57345730 } else {
5735- available_capacity_msat = capacity_minus_commitment_fee_msat as u64 ;
5731+ available_capacity_msat = capacity_minus_max_commitment_fee_msat ;
57365732 }
57375733 } else {
57385734 // If the channel is inbound (i.e. counterparty pays the fee), we need to make sure
0 commit comments