From 38c5a7b2ac0ee5c4ad73a6393f2f662e74f997b4 Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Wed, 16 Nov 2022 15:20:31 +0100 Subject: [PATCH 1/3] Also set `user_channel_id` when its overridden --- lightning/src/ln/channelmanager.rs | 2 +- lightning/src/ln/functional_test_utils.rs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs index 121c1d4c66c..420547fb20e 100644 --- a/lightning/src/ln/channelmanager.rs +++ b/lightning/src/ln/channelmanager.rs @@ -4639,7 +4639,7 @@ impl ChannelManager(node_a: &Node<'a, ' let create_chan_id = node_a.node.create_channel(node_b.node.get_our_node_id(), channel_value, push_msat, 42, None).unwrap(); let open_channel_msg = get_event_msg!(node_a, MessageSendEvent::SendOpenChannel, node_b.node.get_our_node_id()); assert_eq!(open_channel_msg.temporary_channel_id, create_chan_id); + assert_eq!(node_a.node.list_channels().iter().find(|channel| channel.channel_id == create_chan_id).unwrap().user_channel_id, 42); node_b.node.handle_open_channel(&node_a.node.get_our_node_id(), a_flags, &open_channel_msg); let accept_channel_msg = get_event_msg!(node_b, MessageSendEvent::SendAcceptChannel, node_a.node.get_our_node_id()); assert_eq!(accept_channel_msg.temporary_channel_id, create_chan_id); node_a.node.handle_accept_channel(&node_b.node.get_our_node_id(), b_flags, &accept_channel_msg); + assert_ne!(node_b.node.list_channels().iter().find(|channel| channel.channel_id == create_chan_id).unwrap().user_channel_id, 0); sign_funding_transaction(node_a, node_b, channel_value, create_chan_id) } From c72d630ada3cbff74beb52ce6338335a1a479741 Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Wed, 16 Nov 2022 10:54:25 +0100 Subject: [PATCH 2/3] Mention `user_channel_id` rand. version req. As it was previously omitted, we clarify here starting from which version users can expect the `user_channel_id` to be randomized for inbound channels. --- lightning/src/ln/channelmanager.rs | 3 ++- lightning/src/util/events.rs | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs index 420547fb20e..854ceef0a4b 100644 --- a/lightning/src/ln/channelmanager.rs +++ b/lightning/src/ln/channelmanager.rs @@ -1087,7 +1087,8 @@ pub struct ChannelDetails { /// [`outbound_capacity_msat`]: ChannelDetails::outbound_capacity_msat pub unspendable_punishment_reserve: Option, /// The `user_channel_id` passed in to create_channel, or a random value if the channel was - /// inbound. + /// inbound. This may be zero for inbound channels serialized with LDK versions prior to + /// 0.0.113. pub user_channel_id: u128, /// Our total balance. This is the amount we would get if we close the channel. /// This value is not exact. Due to various in-flight changes and feerate changes, exactly this diff --git a/lightning/src/util/events.rs b/lightning/src/util/events.rs index a06c7f1e3c0..3593cbf97e6 100644 --- a/lightning/src/util/events.rs +++ b/lightning/src/util/events.rs @@ -319,7 +319,8 @@ pub enum Event { /// The script which should be used in the transaction output. output_script: Script, /// The `user_channel_id` value passed in to [`ChannelManager::create_channel`], or a - /// random value for an inbound channel. + /// random value for an inbound channel. This may be zero for objects serialized with LDK + /// versions prior to 0.0.113. /// /// [`ChannelManager::create_channel`]: crate::ln::channelmanager::ChannelManager::create_channel user_channel_id: u128, @@ -632,8 +633,9 @@ pub enum Event { /// The `user_channel_id` value passed in to [`ChannelManager::create_channel`] for outbound /// channels, or to [`ChannelManager::accept_inbound_channel`] for inbound channels if /// [`UserConfig::manually_accept_inbound_channels`] config flag is set to true. Otherwise - /// `user_channel_id` will be randomized for an inbound channel. - /// This will always be zero for objects serialized with LDK versions prior to 0.0.102. + /// `user_channel_id` will be randomized for inbound channels. + /// This may be zero for inbound channels serialized prior to 0.0.113 and will always be + /// zero for objects serialized with LDK versions prior to 0.0.102. /// /// [`ChannelManager::create_channel`]: crate::ln::channelmanager::ChannelManager::create_channel /// [`ChannelManager::accept_inbound_channel`]: crate::ln::channelmanager::ChannelManager::accept_inbound_channel From 7f6713c8138c5f108b3ac1147a8e96b157acc294 Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Wed, 16 Nov 2022 16:00:48 +0100 Subject: [PATCH 3/3] Remove unused import --- lightning/src/onion_message/functional_tests.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lightning/src/onion_message/functional_tests.rs b/lightning/src/onion_message/functional_tests.rs index 200570861c4..012e279d2a6 100644 --- a/lightning/src/onion_message/functional_tests.rs +++ b/lightning/src/onion_message/functional_tests.rs @@ -13,8 +13,7 @@ use crate::chain::keysinterface::{KeysInterface, Recipient}; use crate::ln::features::InitFeatures; use crate::ln::msgs::{self, DecodeError, OnionMessageHandler}; use super::{BlindedRoute, CustomOnionMessageContents, CustomOnionMessageHandler, Destination, OnionMessageContents, OnionMessenger, SendError}; -use crate::util::enforcing_trait_impls::EnforcingSigner; -use crate::util::ser::{ Writeable, Writer}; +use crate::util::ser::{Writeable, Writer}; use crate::util::test_utils; use bitcoin::network::constants::Network;