@@ -10536,25 +10536,29 @@ where
1053610536 }
1053710537
1053810538 /// Check that post-splicing balance meets reserve requirements, but only if it met it pre-splice as well
10539+ /// Check that post-splicing balance meets reserve requirements, but only if it met it pre-splice as well.
10540+ /// Returns the minimum channel reserve (sats)
1053910541 #[cfg(splicing)]
1054010542 pub fn check_splice_balance_meets_v2_reserve_requirement_noerr(
1054110543 &self, pre_balance: u64, post_balance: u64, pre_channel_value: u64,
1054210544 post_channel_value: u64, dust_limit: u64,
1054310545 ) -> Result<(), u64> {
10544- let post_channel_reserve = get_v2_channel_reserve_satoshis(post_channel_value, dust_limit);
10545- if post_balance >= post_channel_reserve {
10546+ let post_channel_reserve_sats =
10547+ get_v2_channel_reserve_satoshis(post_channel_value, dust_limit);
10548+ if post_balance >= post_channel_reserve_sats * 1000 {
1054610549 return Ok(());
1054710550 }
10548- let pre_channel_reserve = get_v2_channel_reserve_satoshis(pre_channel_value, dust_limit);
10549- if pre_balance >= pre_channel_reserve {
10551+ let pre_channel_reserve_sats =
10552+ get_v2_channel_reserve_satoshis(pre_channel_value, dust_limit);
10553+ if pre_balance >= pre_channel_reserve_sats * 1000 {
1055010554 // We're not allowed to dip below the reserve once we've been above.
10551- return Err(post_channel_reserve );
10555+ return Err(post_channel_reserve_sats );
1055210556 }
1055310557 // Make sure we either remain with the same balance or move towards the reserve.
1055410558 if post_balance >= pre_balance {
1055510559 Ok(())
1055610560 } else {
10557- Err(post_channel_reserve )
10561+ Err(post_channel_reserve_sats )
1055810562 }
1055910563 }
1056010564
@@ -10563,33 +10567,34 @@ where
1056310567 /// to check with new channel value (before being committed to it).
1056410568 #[cfg(splicing)]
1056510569 pub fn check_splice_balances_meet_v2_reserve_requirements(
10566- &self, self_balance_pre: u64, self_balance_post: u64, counterparty_balance_pre: u64,
10567- counterparty_balance_post: u64, channel_value_pre: u64, channel_value_post: u64,
10570+ &self, self_balance_pre_msat: u64, self_balance_post_msat: u64,
10571+ counterparty_balance_pre_msat: u64, counterparty_balance_post_msat: u64,
10572+ channel_value_pre: u64, channel_value_post: u64,
1056810573 ) -> Result<(), ChannelError> {
1056910574 let is_ok_self = self.check_splice_balance_meets_v2_reserve_requirement_noerr(
10570- self_balance_pre ,
10571- self_balance_post ,
10575+ self_balance_pre_msat ,
10576+ self_balance_post_msat ,
1057210577 channel_value_pre,
1057310578 channel_value_post,
1057410579 self.context.holder_dust_limit_satoshis,
1057510580 );
1057610581 if let Err(channel_reserve_self) = is_ok_self {
1057710582 return Err(ChannelError::Warn(format!(
1057810583 "Balance below reserve, mandated by holder, {} vs {}",
10579- self_balance_post , channel_reserve_self,
10584+ self_balance_post_msat , channel_reserve_self,
1058010585 )));
1058110586 }
1058210587 let is_ok_cp = self.check_splice_balance_meets_v2_reserve_requirement_noerr(
10583- counterparty_balance_pre ,
10584- counterparty_balance_post ,
10588+ counterparty_balance_pre_msat ,
10589+ counterparty_balance_post_msat ,
1058510590 channel_value_pre,
1058610591 channel_value_post,
1058710592 self.context.counterparty_dust_limit_satoshis,
1058810593 );
1058910594 if let Err(channel_reserve_cp) = is_ok_cp {
1059010595 return Err(ChannelError::Warn(format!(
1059110596 "Balance below reserve mandated by counterparty, {} vs {}",
10592- counterparty_balance_post , channel_reserve_cp,
10597+ counterparty_balance_post_msat , channel_reserve_cp,
1059310598 )));
1059410599 }
1059510600 Ok(())
0 commit comments