From 90888948ed6b554e9afe5819f928d5c1ec2d386f Mon Sep 17 00:00:00 2001 From: Duncan Dean Date: Wed, 13 Sep 2023 23:42:05 +0200 Subject: [PATCH] Add `option_dual_fund` feature --- lightning/src/ln/channelmanager.rs | 2 ++ lightning/src/ln/features.rs | 10 ++++++++-- lightning/src/ln/peer_handler.rs | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs index 017ec99d5b3..68f1daf608e 100644 --- a/lightning/src/ln/channelmanager.rs +++ b/lightning/src/ln/channelmanager.rs @@ -11354,6 +11354,8 @@ pub fn provided_init_features(config: &UserConfig) -> InitFeatures { if config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx { features.set_anchors_zero_fee_htlc_tx_optional(); } + #[cfg(any(dual_funding, splicing))] + features.set_dual_fund_optional(); features } diff --git a/lightning/src/ln/features.rs b/lightning/src/ln/features.rs index 51c608c1a6b..59b4e186521 100644 --- a/lightning/src/ln/features.rs +++ b/lightning/src/ln/features.rs @@ -49,6 +49,9 @@ //! (see [BOLT-4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md#route-blinding) for more information). //! - `ShutdownAnySegwit` - requires/supports that future segwit versions are allowed in `shutdown` //! (see [BOLT-2](https://github.com/lightning/bolts/blob/master/02-peer-protocol.md) for more information). +//! - `DualFund` - requires/supports V2 channel establishment +//! (see [BOLT-2](https://github.com/lightning/bolts/pull/851/files) for more information). +// TODO: update link //! - `OnionMessages` - requires/supports forwarding onion messages //! (see [BOLT-7](https://github.com/lightning/bolts/pull/759/files) for more information). // TODO: update link @@ -149,7 +152,7 @@ mod sealed { // Byte 2 BasicMPP | Wumbo | AnchorsNonzeroFeeHtlcTx | AnchorsZeroFeeHtlcTx, // Byte 3 - RouteBlinding | ShutdownAnySegwit | Taproot, + RouteBlinding | ShutdownAnySegwit | DualFund | Taproot, // Byte 4 OnionMessages, // Byte 5 @@ -167,7 +170,7 @@ mod sealed { // Byte 2 BasicMPP | Wumbo | AnchorsNonzeroFeeHtlcTx | AnchorsZeroFeeHtlcTx, // Byte 3 - RouteBlinding | ShutdownAnySegwit | Taproot, + RouteBlinding | ShutdownAnySegwit | DualFund | Taproot, // Byte 4 OnionMessages, // Byte 5 @@ -409,6 +412,9 @@ mod sealed { define_feature!(27, ShutdownAnySegwit, [InitContext, NodeContext], "Feature flags for `opt_shutdown_anysegwit`.", set_shutdown_any_segwit_optional, set_shutdown_any_segwit_required, supports_shutdown_anysegwit, requires_shutdown_anysegwit); + define_feature!(29, DualFund, [InitContext, NodeContext], + "Feature flags for `option_dual_fund`.", set_dual_fund_optional, set_dual_fund_required, + supports_dual_fund, requires_dual_fund); define_feature!(31, Taproot, [InitContext, NodeContext, ChannelTypeContext], "Feature flags for `option_taproot`.", set_taproot_optional, set_taproot_required, supports_taproot, requires_taproot); diff --git a/lightning/src/ln/peer_handler.rs b/lightning/src/ln/peer_handler.rs index 448dd213dad..fc14a68d6c2 100644 --- a/lightning/src/ln/peer_handler.rs +++ b/lightning/src/ln/peer_handler.rs @@ -322,6 +322,7 @@ impl ChannelMessageHandler for ErroringMessageHandler { features.set_basic_mpp_optional(); features.set_wumbo_optional(); features.set_shutdown_any_segwit_optional(); + features.set_dual_fund_optional(); features.set_channel_type_optional(); features.set_scid_privacy_optional(); features.set_zero_conf_optional();