Skip to content

Commit bc4a5ea

Browse files
authored
Merge pull request #2971 from jbesraa/review-club/2815
Fix comparison in `get_dust_buffer_feerate`
2 parents 1d2a27d + c01745e commit bc4a5ea

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

lightning/src/ln/channel.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2730,7 +2730,7 @@ impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
27302730
feerate_per_kw = cmp::max(feerate_per_kw, feerate);
27312731
}
27322732
let feerate_plus_quarter = feerate_per_kw.checked_mul(1250).map(|v| v / 1000);
2733-
cmp::max(2530, feerate_plus_quarter.unwrap_or(u32::max_value()))
2733+
cmp::max(feerate_per_kw + 2530, feerate_plus_quarter.unwrap_or(u32::max_value()))
27342734
}
27352735

27362736
/// Get forwarding information for the counterparty.

lightning/src/ln/functional_tests.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -9950,7 +9950,10 @@ fn do_test_max_dust_htlc_exposure(dust_outbound_balance: bool, exposure_breach_e
99509950
let dust_outbound_htlc_on_holder_tx_msat: u64 = (dust_buffer_feerate * htlc_timeout_tx_weight(&channel_type_features) / 1000 + open_channel.common_fields.dust_limit_satoshis - 1) * 1000;
99519951
let dust_outbound_htlc_on_holder_tx: u64 = max_dust_htlc_exposure_msat / dust_outbound_htlc_on_holder_tx_msat;
99529952

9953-
let dust_inbound_htlc_on_holder_tx_msat: u64 = (dust_buffer_feerate * htlc_success_tx_weight(&channel_type_features) / 1000 + open_channel.common_fields.dust_limit_satoshis - 1) * 1000;
9953+
// Substract 3 sats for multiplier and 2 sats for fixed limit to make sure we are 50% below the dust limit.
9954+
// This is to make sure we fully use the dust limit. If we don't, we could end up with `dust_ibd_htlc_on_holder_tx` being 1
9955+
// while `max_dust_htlc_exposure_msat` is not equal to `dust_outbound_htlc_on_holder_tx_msat`.
9956+
let dust_inbound_htlc_on_holder_tx_msat: u64 = (dust_buffer_feerate * htlc_success_tx_weight(&channel_type_features) / 1000 + open_channel.common_fields.dust_limit_satoshis - if multiplier_dust_limit { 3 } else { 2 }) * 1000;
99549957
let dust_inbound_htlc_on_holder_tx: u64 = max_dust_htlc_exposure_msat / dust_inbound_htlc_on_holder_tx_msat;
99559958

99569959
let dust_htlc_on_counterparty_tx: u64 = 4;

0 commit comments

Comments
 (0)