Expose current dust exposure in ChannelDetails#4470
Expose current dust exposure in ChannelDetails#4470Bortlesboat wants to merge 2 commits intolightningdevkit:mainfrom
Conversation
|
👋 I see @tankyleo was un-assigned. |
06585ba to
c571ad4
Compare
c571ad4 to
4f9b1e5
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4470 +/- ##
==========================================
+ Coverage 86.01% 86.19% +0.17%
==========================================
Files 159 160 +1
Lines 105430 107450 +2020
Branches 105430 107450 +2020
==========================================
+ Hits 90690 92619 +1929
+ Misses 12229 12213 -16
- Partials 2511 2618 +107
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
🔔 1st Reminder Hey @tankyleo! This PR has been waiting for your review. |
|
Quick follow-up from my side: I’m treating review-required PRs as top priority this week. If you want any specific changes, rebase, or split, I can turn them around quickly. |
4f9b1e5 to
03c307d
Compare
|
🔔 2nd Reminder Hey @tankyleo! This PR has been waiting for your review. |
Add current_dust_exposure_msat field to ChannelDetails that surfaces the total dust exposure including both dust HTLC values and the commitment transaction fee component. This is the maximum of the holder and counterparty commitment transaction dust exposures. Users can compare this value against max_dust_htlc_exposure in ChannelConfig to understand how close a channel is to its dust exposure limit without needing internal channel access. Fixes lightningdevkit#2264
03c307d to
b856d80
Compare
|
|
|
🔔 3rd Reminder Hey @tankyleo! This PR has been waiting for your review. |
|
Hi @tankyleo — no worries if you're busy! Could another maintainer pick this up? Happy to address any feedback quickly. |
|
🔔 4th Reminder Hey @tankyleo! This PR has been waiting for your review. |
| /// | ||
| /// This is the maximum of the dust exposure on the holder and counterparty commitment | ||
| /// transactions, and includes both the value of all pending HTLCs that are below the dust | ||
| /// threshold as well as any excess commitment transaction fees that contribute to dust |
There was a problem hiding this comment.
Needs a link to the config knobs that limit it.
| outbound_capacity_msat, | ||
| next_outbound_htlc_limit_msat: available_capacity_msat, | ||
| next_outbound_htlc_minimum_msat, | ||
| dust_exposure_msat, |
There was a problem hiding this comment.
@TheBlueMatt it's a current quirk of the tx_buider API we currently report the dust exposure on the commitment that matches the local: bool parameter in NextCommitmentStats. With this PR we'd now also take the max of both the local and the remote commitments here, and report it in AvailableBalances.
Seems ok to me for now.
| /// [`ChannelConfig::max_dust_htlc_exposure`] to determine whether new HTLCs can be | ||
| /// accepted or offered on this channel. | ||
| /// | ||
| /// This field will be `None` for objects serialized with LDK versions prior to 0.2.1. |
There was a problem hiding this comment.
The version here says "prior to 0.2.1" but Cargo.toml has version = "0.3.0+git", so this field will first appear in 0.3.0. The previous field (funding_redeem_script) correctly says "prior to 0.2.0".
| /// This field will be `None` for objects serialized with LDK versions prior to 0.2.1. | |
| /// This field will be `None` for objects serialized with LDK versions prior to 0.3.0. |
Summary
Adds a
current_dust_exposure_msatfield toChannelDetailsthat surfaces the current total dust exposure on a channel.ChannelConfig::max_dust_htlc_exposureto monitor how close a channel is to its dust limitOption<u64>,Nonefor objects serialized prior to 0.2.1Implementation
dust_exposure_msattoAvailableBalances— computed asmax(local_dust_exposure_msat, remote_dust_exposure_msat)inget_available_balances(tx_builder.rs)current_dust_exposure_msat: Option<u64>toChannelDetailsstruct, populated from the balance computation infrom_channelFixes #2264