@@ -11087,25 +11087,29 @@ where
11087
11087
}
11088
11088
11089
11089
/// Check that post-splicing balance meets reserve requirements, but only if it met it pre-splice as well
11090
+ /// Check that post-splicing balance meets reserve requirements, but only if it met it pre-splice as well.
11091
+ /// Returns the minimum channel reserve (sats)
11090
11092
#[cfg(splicing)]
11091
11093
pub fn check_splice_balance_meets_v2_reserve_requirement_noerr(
11092
11094
&self, pre_balance: u64, post_balance: u64, pre_channel_value: u64,
11093
11095
post_channel_value: u64, dust_limit: u64,
11094
11096
) -> Result<(), u64> {
11095
- let post_channel_reserve = get_v2_channel_reserve_satoshis(post_channel_value, dust_limit);
11096
- if post_balance >= post_channel_reserve {
11097
+ let post_channel_reserve_sats =
11098
+ get_v2_channel_reserve_satoshis(post_channel_value, dust_limit);
11099
+ if post_balance >= post_channel_reserve_sats * 1000 {
11097
11100
return Ok(());
11098
11101
}
11099
- let pre_channel_reserve = get_v2_channel_reserve_satoshis(pre_channel_value, dust_limit);
11100
- if pre_balance >= pre_channel_reserve {
11102
+ let pre_channel_reserve_sats =
11103
+ get_v2_channel_reserve_satoshis(pre_channel_value, dust_limit);
11104
+ if pre_balance >= pre_channel_reserve_sats * 1000 {
11101
11105
// We're not allowed to dip below the reserve once we've been above.
11102
- return Err(post_channel_reserve );
11106
+ return Err(post_channel_reserve_sats );
11103
11107
}
11104
11108
// Make sure we either remain with the same balance or move towards the reserve.
11105
11109
if post_balance >= pre_balance {
11106
11110
Ok(())
11107
11111
} else {
11108
- Err(post_channel_reserve )
11112
+ Err(post_channel_reserve_sats )
11109
11113
}
11110
11114
}
11111
11115
@@ -11114,33 +11118,34 @@ where
11114
11118
/// to check with new channel value (before being committed to it).
11115
11119
#[cfg(splicing)]
11116
11120
pub fn check_splice_balances_meet_v2_reserve_requirements(
11117
- &self, self_balance_pre: u64, self_balance_post: u64, counterparty_balance_pre: u64,
11118
- counterparty_balance_post: u64, channel_value_pre: u64, channel_value_post: u64,
11121
+ &self, self_balance_pre_msat: u64, self_balance_post_msat: u64,
11122
+ counterparty_balance_pre_msat: u64, counterparty_balance_post_msat: u64,
11123
+ channel_value_pre: u64, channel_value_post: u64,
11119
11124
) -> Result<(), ChannelError> {
11120
11125
let is_ok_self = self.check_splice_balance_meets_v2_reserve_requirement_noerr(
11121
- self_balance_pre ,
11122
- self_balance_post ,
11126
+ self_balance_pre_msat ,
11127
+ self_balance_post_msat ,
11123
11128
channel_value_pre,
11124
11129
channel_value_post,
11125
11130
self.context.holder_dust_limit_satoshis,
11126
11131
);
11127
11132
if let Err(channel_reserve_self) = is_ok_self {
11128
11133
return Err(ChannelError::Warn(format!(
11129
11134
"Balance below reserve, mandated by holder, {} vs {}",
11130
- self_balance_post , channel_reserve_self,
11135
+ self_balance_post_msat , channel_reserve_self,
11131
11136
)));
11132
11137
}
11133
11138
let is_ok_cp = self.check_splice_balance_meets_v2_reserve_requirement_noerr(
11134
- counterparty_balance_pre ,
11135
- counterparty_balance_post ,
11139
+ counterparty_balance_pre_msat ,
11140
+ counterparty_balance_post_msat ,
11136
11141
channel_value_pre,
11137
11142
channel_value_post,
11138
11143
self.context.counterparty_dust_limit_satoshis,
11139
11144
);
11140
11145
if let Err(channel_reserve_cp) = is_ok_cp {
11141
11146
return Err(ChannelError::Warn(format!(
11142
11147
"Balance below reserve mandated by counterparty, {} vs {}",
11143
- counterparty_balance_post , channel_reserve_cp,
11148
+ counterparty_balance_post_msat , channel_reserve_cp,
11144
11149
)));
11145
11150
}
11146
11151
Ok(())
0 commit comments