@@ -10696,25 +10696,29 @@ where
1069610696 }
1069710697
1069810698 /// Check that post-splicing balance meets reserve requirements, but only if it met it pre-splice as well
10699+ /// Check that post-splicing balance meets reserve requirements, but only if it met it pre-splice as well.
10700+ /// Returns the minimum channel reserve (sats)
1069910701 #[cfg(splicing)]
1070010702 pub fn check_splice_balance_meets_v2_reserve_requirement_noerr(
1070110703 &self, pre_balance: u64, post_balance: u64, pre_channel_value: u64,
1070210704 post_channel_value: u64, dust_limit: u64,
1070310705 ) -> Result<(), u64> {
10704- let post_channel_reserve = get_v2_channel_reserve_satoshis(post_channel_value, dust_limit);
10705- if post_balance >= post_channel_reserve {
10706+ let post_channel_reserve_sats =
10707+ get_v2_channel_reserve_satoshis(post_channel_value, dust_limit);
10708+ if post_balance >= post_channel_reserve_sats * 1000 {
1070610709 return Ok(());
1070710710 }
10708- let pre_channel_reserve = get_v2_channel_reserve_satoshis(pre_channel_value, dust_limit);
10709- if pre_balance >= pre_channel_reserve {
10711+ let pre_channel_reserve_sats =
10712+ get_v2_channel_reserve_satoshis(pre_channel_value, dust_limit);
10713+ if pre_balance >= pre_channel_reserve_sats * 1000 {
1071010714 // We're not allowed to dip below the reserve once we've been above.
10711- return Err(post_channel_reserve );
10715+ return Err(post_channel_reserve_sats );
1071210716 }
1071310717 // Make sure we either remain with the same balance or move towards the reserve.
1071410718 if post_balance >= pre_balance {
1071510719 Ok(())
1071610720 } else {
10717- Err(post_channel_reserve )
10721+ Err(post_channel_reserve_sats )
1071810722 }
1071910723 }
1072010724
@@ -10723,33 +10727,34 @@ where
1072310727 /// to check with new channel value (before being committed to it).
1072410728 #[cfg(splicing)]
1072510729 pub fn check_splice_balances_meet_v2_reserve_requirements(
10726- &self, self_balance_pre: u64, self_balance_post: u64, counterparty_balance_pre: u64,
10727- counterparty_balance_post: u64, channel_value_pre: u64, channel_value_post: u64,
10730+ &self, self_balance_pre_msat: u64, self_balance_post_msat: u64,
10731+ counterparty_balance_pre_msat: u64, counterparty_balance_post_msat: u64,
10732+ channel_value_pre: u64, channel_value_post: u64,
1072810733 ) -> Result<(), ChannelError> {
1072910734 let is_ok_self = self.check_splice_balance_meets_v2_reserve_requirement_noerr(
10730- self_balance_pre ,
10731- self_balance_post ,
10735+ self_balance_pre_msat ,
10736+ self_balance_post_msat ,
1073210737 channel_value_pre,
1073310738 channel_value_post,
1073410739 self.context.holder_dust_limit_satoshis,
1073510740 );
1073610741 if let Err(channel_reserve_self) = is_ok_self {
1073710742 return Err(ChannelError::Warn(format!(
1073810743 "Balance below reserve, mandated by holder, {} vs {}",
10739- self_balance_post , channel_reserve_self,
10744+ self_balance_post_msat , channel_reserve_self,
1074010745 )));
1074110746 }
1074210747 let is_ok_cp = self.check_splice_balance_meets_v2_reserve_requirement_noerr(
10743- counterparty_balance_pre ,
10744- counterparty_balance_post ,
10748+ counterparty_balance_pre_msat ,
10749+ counterparty_balance_post_msat ,
1074510750 channel_value_pre,
1074610751 channel_value_post,
1074710752 self.context.counterparty_dust_limit_satoshis,
1074810753 );
1074910754 if let Err(channel_reserve_cp) = is_ok_cp {
1075010755 return Err(ChannelError::Warn(format!(
1075110756 "Balance below reserve mandated by counterparty, {} vs {}",
10752- counterparty_balance_post , channel_reserve_cp,
10757+ counterparty_balance_post_msat , channel_reserve_cp,
1075310758 )));
1075410759 }
1075510760 Ok(())
0 commit comments