Skip to content

Commit 098b98e

Browse files
committed
Remove the last raw cast in ChannelContext::build_commitment_stats
1 parent dbd8451 commit 098b98e

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

lightning/src/ln/channel.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4433,7 +4433,8 @@ where
44334433
let mut non_dust_htlc_count = 0;
44344434
let mut remote_htlc_total_msat = 0;
44354435
let mut local_htlc_total_msat = 0;
4436-
let mut value_to_self_msat_offset = 0;
4436+
let mut value_to_self_claimed_msat = 0;
4437+
let mut value_to_remote_claimed_msat = 0;
44374438

44384439
let mut feerate_per_kw = self.feerate_per_kw;
44394440
if let Some((feerate, update_state)) = self.pending_update_fee {
@@ -4456,7 +4457,7 @@ where
44564457
remote_htlc_total_msat += htlc.amount_msat;
44574458
} else {
44584459
if htlc.state.preimage().is_some() {
4459-
value_to_self_msat_offset += htlc.amount_msat as i64;
4460+
value_to_self_claimed_msat += htlc.amount_msat;
44604461
}
44614462
}
44624463
};
@@ -4469,19 +4470,17 @@ where
44694470
local_htlc_total_msat += htlc.amount_msat;
44704471
} else {
44714472
if htlc.state.preimage().is_some() {
4472-
value_to_self_msat_offset -= htlc.amount_msat as i64;
4473+
value_to_remote_claimed_msat += htlc.amount_msat;
44734474
}
44744475
}
44754476
};
44764477

44774478
// # Panics
44784479
//
4479-
// While we expect `value_to_self_msat_offset` to be negative in some cases, the value going
4480-
// to each party MUST be 0 or positive, even if all HTLCs pending in the commitment clear by
4481-
// failure.
4480+
// After all HTLC claims have been accounted for, the local balance MUST remain greater than or equal to 0.
4481+
4482+
let mut value_to_self_msat = (funding.value_to_self_msat + value_to_self_claimed_msat).checked_sub(value_to_remote_claimed_msat).unwrap();
44824483

4483-
// TODO: When MSRV >= 1.66.0, use u64::checked_add_signed
4484-
let mut value_to_self_msat = (funding.value_to_self_msat as i64 + value_to_self_msat_offset).try_into().unwrap();
44854484
let mut value_to_remote_msat = (funding.get_value_satoshis() * 1000).checked_sub(value_to_self_msat).unwrap();
44864485
value_to_self_msat = value_to_self_msat.checked_sub(local_htlc_total_msat).unwrap();
44874486
value_to_remote_msat = value_to_remote_msat.checked_sub(remote_htlc_total_msat).unwrap();

0 commit comments

Comments
 (0)