@@ -10696,25 +10696,29 @@ where
10696
10696
}
10697
10697
10698
10698
/// 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)
10699
10701
#[cfg(splicing)]
10700
10702
pub fn check_splice_balance_meets_v2_reserve_requirement_noerr(
10701
10703
&self, pre_balance: u64, post_balance: u64, pre_channel_value: u64,
10702
10704
post_channel_value: u64, dust_limit: u64,
10703
10705
) -> 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 {
10706
10709
return Ok(());
10707
10710
}
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 {
10710
10714
// 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 );
10712
10716
}
10713
10717
// Make sure we either remain with the same balance or move towards the reserve.
10714
10718
if post_balance >= pre_balance {
10715
10719
Ok(())
10716
10720
} else {
10717
- Err(post_channel_reserve )
10721
+ Err(post_channel_reserve_sats )
10718
10722
}
10719
10723
}
10720
10724
@@ -10723,33 +10727,34 @@ where
10723
10727
/// to check with new channel value (before being committed to it).
10724
10728
#[cfg(splicing)]
10725
10729
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,
10728
10733
) -> Result<(), ChannelError> {
10729
10734
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 ,
10732
10737
channel_value_pre,
10733
10738
channel_value_post,
10734
10739
self.context.holder_dust_limit_satoshis,
10735
10740
);
10736
10741
if let Err(channel_reserve_self) = is_ok_self {
10737
10742
return Err(ChannelError::Warn(format!(
10738
10743
"Balance below reserve, mandated by holder, {} vs {}",
10739
- self_balance_post , channel_reserve_self,
10744
+ self_balance_post_msat , channel_reserve_self,
10740
10745
)));
10741
10746
}
10742
10747
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 ,
10745
10750
channel_value_pre,
10746
10751
channel_value_post,
10747
10752
self.context.counterparty_dust_limit_satoshis,
10748
10753
);
10749
10754
if let Err(channel_reserve_cp) = is_ok_cp {
10750
10755
return Err(ChannelError::Warn(format!(
10751
10756
"Balance below reserve mandated by counterparty, {} vs {}",
10752
- counterparty_balance_post , channel_reserve_cp,
10757
+ counterparty_balance_post_msat , channel_reserve_cp,
10753
10758
)));
10754
10759
}
10755
10760
Ok(())
0 commit comments