-
Notifications
You must be signed in to change notification settings - Fork 386
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Misc refactors and cleanups in advance of zero-fee commitments #3656
Misc refactors and cleanups in advance of zero-fee commitments #3656
Conversation
We have a handful of methods to clear features from `*Features` objects, but have ended up with two different API semantics for them. In the next commit we'll make them all consistent, opting against the builder pattern as it turns out all of these lines utilizing it are too long for rustfmt to be happy, so best to clean them up now so that rustfmt doesn't make a mockery of our code later.
We've ad-hoc exposed feature-clearing methods for various feature flags over the years, but there's not a lot of reason to not just do it for all the flags, so we go ahead and do that here.
These aren't really used anywhere and were only live very briefly, so there's not really any point in informing our users that we don't support them. If anything, it will lead to confusion as the zero-HTLC-fee channel type is generally referred to simply as "anchor channels".
👋 Thanks for assigning @wpaulino as a reviewer! |
fe0a6c7
to
67c5993
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3656 +/- ##
==========================================
- Coverage 89.24% 89.23% -0.01%
==========================================
Files 155 155
Lines 119280 119281 +1
Branches 119280 119281 +1
==========================================
Hits 106446 106446
- Misses 10240 10241 +1
Partials 2594 2594 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
CI is unhappy:
|
67c5993
to
c15b29d
Compare
Just removed the method on the taproot signer. |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM after fuzz is fixed
👋 The first review has been submitted! Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
c15b29d
to
02ce69e
Compare
Good to squash, CI is still sad |
...as it is ambiguous now that we have multiple types of anchors. Its clearer to check the specific features at the callsites now.
As we move towards zero-fee commitment transactions, we need to differentiate between the now-two-types of "anchor channels". We do so here by renaming a number of methods which refer to anchors as "keyed anchors" as the zero-fee commitment transaction anchors do not have a public key associated with them. We also drop `TaprootChannelSigner::sign_holder_anchor_input` as we are unlikely to support keyed anchors for taproot channels.
Once we support zero-fee commitment transactions, we will no longer have a constant number of maximum HTLCs in-flight per channel but rather it will depend on the channel type. Here we prepare for this by removing the `MAX_HTLCS` constant and replacing it with a function.
02ce69e
to
68b16e2
Compare
Squashed: $ git diff-tree -U1 02ce69e59 68b16e24c
diff --git a/lightning/src/events/bump_transaction.rs b/lightning/src/events/bump_transaction.rs
index 77943845c..a9550a672 100644
--- a/lightning/src/events/bump_transaction.rs
+++ b/lightning/src/events/bump_transaction.rs
@@ -98,3 +98,3 @@ impl AnchorDescriptor {
} else {
- debug_assert!(tx_params.channel_type_features.supports_zero_fee_commitments());
+ debug_assert!(tx_params.channel_type_features.supports_anchor_zero_fee_commitments());
Witness::from_slice(&[&[]]) |
A few renames, some doc cleanups, and the feature bit itself.