Skip to content

Commit c2e3283

Browse files
committed
Reintroduce cfg(dual_funding) for handling of open_channel2 messages
1 parent 6e85a0d commit c2e3283

File tree

7 files changed

+40
-21
lines changed

7 files changed

+40
-21
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,5 @@ check-cfg = [
6565
"cfg(require_route_graph_test)",
6666
"cfg(splicing)",
6767
"cfg(async_payments)",
68+
"cfg(dual_funding)",
6869
]

lightning-net-tokio/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,7 @@ mod tests {
742742
) {
743743
}
744744
fn handle_channel_update(&self, _their_node_id: PublicKey, _msg: &ChannelUpdate) {}
745+
#[cfg(dual_funding)]
745746
fn handle_open_channel_v2(&self, _their_node_id: PublicKey, _msg: &OpenChannelV2) {}
746747
fn handle_accept_channel_v2(&self, _their_node_id: PublicKey, _msg: &AcceptChannelV2) {}
747748
fn handle_stfu(&self, _their_node_id: PublicKey, _msg: &Stfu) {}

lightning/src/ln/channelmanager.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1376,11 +1376,13 @@ impl <SP: Deref> PeerState<SP> where SP::Target: SignerProvider {
13761376
#[derive(Clone)]
13771377
pub(super) enum OpenChannelMessage {
13781378
V1(msgs::OpenChannel),
1379+
#[cfg(dual_funding)]
13791380
V2(msgs::OpenChannelV2),
13801381
}
13811382

13821383
pub(super) enum OpenChannelMessageRef<'a> {
13831384
V1(&'a msgs::OpenChannel),
1385+
#[cfg(dual_funding)]
13841386
V2(&'a msgs::OpenChannelV2),
13851387
}
13861388

@@ -7728,6 +7730,7 @@ where
77287730
(*temporary_channel_id, ChannelPhase::UnfundedInboundV1(channel), message_send_event)
77297731
})
77307732
},
7733+
#[cfg(dual_funding)]
77317734
OpenChannelMessage::V2(open_channel_msg) => {
77327735
InboundV2Channel::new(&self.fee_estimator, &self.entropy_source, &self.signer_provider,
77337736
self.get_our_node_id(), *counterparty_node_id, &self.channel_type_features(), &peer_state.latest_features,
@@ -7882,6 +7885,7 @@ where
78827885
fn internal_open_channel(&self, counterparty_node_id: &PublicKey, msg: OpenChannelMessageRef<'_>) -> Result<(), MsgHandleErrInternal> {
78837886
let common_fields = match msg {
78847887
OpenChannelMessageRef::V1(msg) => &msg.common_fields,
7888+
#[cfg(dual_funding)]
78857889
OpenChannelMessageRef::V2(msg) => &msg.common_fields,
78867890
};
78877891

@@ -7959,6 +7963,7 @@ where
79597963
funding_satoshis: common_fields.funding_satoshis,
79607964
channel_negotiation_type: match msg {
79617965
OpenChannelMessageRef::V1(msg) => InboundChannelFunds::PushMsat(msg.push_msat),
7966+
#[cfg(dual_funding)]
79627967
OpenChannelMessageRef::V2(_) => InboundChannelFunds::DualFunded,
79637968
},
79647969
channel_type,
@@ -7968,6 +7973,7 @@ where
79687973
peer_state.inbound_channel_request_by_id.insert(channel_id, InboundChannelRequest {
79697974
open_channel_msg: match msg {
79707975
OpenChannelMessageRef::V1(msg) => OpenChannelMessage::V1(msg.clone()),
7976+
#[cfg(dual_funding)]
79717977
OpenChannelMessageRef::V2(msg) => OpenChannelMessage::V2(msg.clone()),
79727978
},
79737979
ticks_remaining: UNACCEPTED_INBOUND_CHANNEL_AGE_LIMIT_TICKS,
@@ -8000,6 +8006,7 @@ where
80008006
};
80018007
(ChannelPhase::UnfundedInboundV1(channel), message_send_event)
80028008
},
8009+
#[cfg(dual_funding)]
80038010
OpenChannelMessageRef::V2(msg) => {
80048011
let channel = InboundV2Channel::new(&self.fee_estimator, &self.entropy_source,
80058012
&self.signer_provider, self.get_our_node_id(), *counterparty_node_id,
@@ -11269,6 +11276,7 @@ where
1126911276
});
1127011277
}
1127111278

11279+
#[cfg(dual_funding)]
1127211280
fn handle_open_channel_v2(&self, counterparty_node_id: PublicKey, msg: &msgs::OpenChannelV2) {
1127311281
// Note that we never need to persist the updated ChannelManager for an inbound
1127411282
// open_channel message - pre-funded channels are never written so there should be no

lightning/src/ln/dual_funding_tests.rs

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,36 @@
99

1010
//! Tests that test the creation of dual-funded channels in ChannelManager.
1111
12-
use bitcoin::Weight;
13-
14-
use crate::chain::chaininterface::{ConfirmationTarget, FeeEstimator, LowerBoundedFeeEstimator};
15-
use crate::events::{Event, MessageSendEvent, MessageSendEventsProvider};
16-
use crate::ln::chan_utils::{
17-
make_funding_redeemscript, ChannelPublicKeys, ChannelTransactionParameters,
18-
CounterpartyChannelTransactionParameters,
19-
};
20-
use crate::ln::channel::{
21-
calculate_our_funding_satoshis, OutboundV2Channel, MIN_CHAN_DUST_LIMIT_SATOSHIS,
12+
#[cfg(dual_funding)]
13+
use {
14+
crate::chain::chaininterface::{ConfirmationTarget, FeeEstimator, LowerBoundedFeeEstimator},
15+
crate::events::{Event, MessageSendEvent, MessageSendEventsProvider},
16+
crate::ln::chan_utils::{
17+
make_funding_redeemscript, ChannelPublicKeys, ChannelTransactionParameters,
18+
CounterpartyChannelTransactionParameters,
19+
},
20+
crate::ln::channel::{
21+
calculate_our_funding_satoshis, OutboundV2Channel, MIN_CHAN_DUST_LIMIT_SATOSHIS,
22+
},
23+
crate::ln::channel_keys::{DelayedPaymentBasepoint, HtlcBasepoint, RevocationBasepoint},
24+
crate::ln::functional_test_utils::*,
25+
crate::ln::msgs::ChannelMessageHandler,
26+
crate::ln::msgs::{CommitmentSigned, TxAddInput, TxAddOutput, TxComplete},
27+
crate::ln::types::ChannelId,
28+
crate::prelude::*,
29+
crate::sign::{ChannelSigner as _, P2WPKH_WITNESS_WEIGHT},
30+
crate::util::ser::TransactionU16LenLimited,
31+
crate::util::test_utils,
32+
bitcoin::Weight,
2233
};
23-
use crate::ln::channel_keys::{DelayedPaymentBasepoint, HtlcBasepoint, RevocationBasepoint};
24-
use crate::ln::functional_test_utils::*;
25-
use crate::ln::msgs::ChannelMessageHandler;
26-
use crate::ln::msgs::{CommitmentSigned, TxAddInput, TxAddOutput, TxComplete};
27-
use crate::ln::types::ChannelId;
28-
use crate::prelude::*;
29-
use crate::sign::{ChannelSigner as _, P2WPKH_WITNESS_WEIGHT};
30-
use crate::util::ser::TransactionU16LenLimited;
31-
use crate::util::test_utils;
3234

35+
#[cfg(dual_funding)]
3336
// Dual-funding: V2 Channel Establishment Tests
3437
struct V2ChannelEstablishmentTestSession {
3538
initiator_input_value_satoshis: u64,
3639
}
3740

41+
#[cfg(dual_funding)]
3842
// TODO(dual_funding): Use real node and API for creating V2 channels as initiator when available,
3943
// instead of manually constructing messages.
4044
fn do_test_v2_channel_establishment(
@@ -252,6 +256,7 @@ fn do_test_v2_channel_establishment(
252256
}
253257

254258
#[test]
259+
#[cfg(dual_funding)]
255260
fn test_v2_channel_establishment() {
256261
// Only initiator contributes, no persist pending
257262
do_test_v2_channel_establishment(

lightning/src/ln/msgs.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1494,6 +1494,7 @@ pub trait ChannelMessageHandler : MessageSendEventsProvider {
14941494
/// Handle an incoming `open_channel` message from the given peer.
14951495
fn handle_open_channel(&self, their_node_id: PublicKey, msg: &OpenChannel);
14961496
/// Handle an incoming `open_channel2` message from the given peer.
1497+
#[cfg(dual_funding)]
14971498
fn handle_open_channel_v2(&self, their_node_id: PublicKey, msg: &OpenChannelV2);
14981499
/// Handle an incoming `accept_channel` message from the given peer.
14991500
fn handle_accept_channel(&self, their_node_id: PublicKey, msg: &AcceptChannel);

lightning/src/ln/peer_handler.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,7 @@ impl ChannelMessageHandler for ErroringMessageHandler {
355355
None
356356
}
357357

358+
#[cfg(dual_funding)]
358359
fn handle_open_channel_v2(&self, their_node_id: PublicKey, msg: &msgs::OpenChannelV2) {
359360
ErroringMessageHandler::push_error(self, their_node_id, msg.common_fields.temporary_channel_id);
360361
}
@@ -1820,8 +1821,9 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
18201821
wire::Message::OpenChannel(msg) => {
18211822
self.message_handler.chan_handler.handle_open_channel(their_node_id, &msg);
18221823
},
1823-
wire::Message::OpenChannelV2(msg) => {
1824-
self.message_handler.chan_handler.handle_open_channel_v2(their_node_id, &msg);
1824+
wire::Message::OpenChannelV2(_msg) => {
1825+
#[cfg(dual_funding)]
1826+
self.message_handler.chan_handler.handle_open_channel_v2(their_node_id, &_msg);
18251827
},
18261828
wire::Message::AcceptChannel(msg) => {
18271829
self.message_handler.chan_handler.handle_accept_channel(their_node_id, &msg);

lightning/src/util/test_utils.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,7 @@ impl msgs::ChannelMessageHandler for TestChannelMessageHandler {
872872
Some(vec![self.chain_hash])
873873
}
874874

875+
#[cfg(dual_funding)]
875876
fn handle_open_channel_v2(&self, _their_node_id: PublicKey, msg: &msgs::OpenChannelV2) {
876877
self.received_msg(wire::Message::OpenChannelV2(msg.clone()));
877878
}

0 commit comments

Comments
 (0)