Skip to content

Commit

Permalink
Expose channel_type in Event::ChannelPending
Browse files Browse the repository at this point in the history
It is useful to immediately know what kind of channel is being opened,
and not having to wait until `ChannelReady`.
  • Loading branch information
tnull committed Feb 5, 2024
1 parent 7c94636 commit 2e61d92
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
15 changes: 13 additions & 2 deletions lightning/src/events/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -845,6 +845,10 @@ pub enum Event {
counterparty_node_id: PublicKey,
/// The outpoint of the channel's funding transaction.
funding_txo: OutPoint,
/// The features that this channel will operate with.
///
/// Will be `None` for channels created prior to LDK version 0.0.122.
channel_type: Option<ChannelTypeFeatures>,
},
/// Used to indicate that a channel with the given `channel_id` is ready to
/// be used. This event is emitted either when the funding transaction has been confirmed
Expand Down Expand Up @@ -1214,10 +1218,14 @@ impl Writeable for Event {
(6, channel_type, required),
});
},
&Event::ChannelPending { ref channel_id, ref user_channel_id, ref former_temporary_channel_id, ref counterparty_node_id, ref funding_txo } => {
&Event::ChannelPending { ref channel_id, ref user_channel_id,
ref former_temporary_channel_id, ref counterparty_node_id, ref funding_txo,
ref channel_type
} => {
31u8.write(writer)?;
write_tlv_fields!(writer, {
(0, channel_id, required),
(1, channel_type, option),
(2, user_channel_id, required),
(4, former_temporary_channel_id, required),
(6, counterparty_node_id, required),
Expand Down Expand Up @@ -1606,8 +1614,10 @@ impl MaybeReadable for Event {
let mut former_temporary_channel_id = None;
let mut counterparty_node_id = RequiredWrapper(None);
let mut funding_txo = RequiredWrapper(None);
let mut channel_type = None;
read_tlv_fields!(reader, {
(0, channel_id, required),
(1, channel_type, option),
(2, user_channel_id, required),
(4, former_temporary_channel_id, required),
(6, counterparty_node_id, required),
Expand All @@ -1619,7 +1629,8 @@ impl MaybeReadable for Event {
user_channel_id,
former_temporary_channel_id,
counterparty_node_id: counterparty_node_id.0.unwrap(),
funding_txo: funding_txo.0.unwrap()
funding_txo: funding_txo.0.unwrap(),
channel_type,
}))
};
f()
Expand Down
1 change: 1 addition & 0 deletions lightning/src/ln/channelmanager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2152,6 +2152,7 @@ macro_rules! emit_channel_pending_event {
counterparty_node_id: $channel.context.get_counterparty_node_id(),
user_channel_id: $channel.context.get_user_id(),
funding_txo: $channel.context.get_funding_txo().unwrap().into_bitcoin_outpoint(),
channel_type: Some($channel.context.get_channel_type().clone()),
}, None));
$channel.context.set_channel_pending_event_emitted();
}
Expand Down

0 comments on commit 2e61d92

Please sign in to comment.