Skip to content

Commit

Permalink
Move MessageSendEvent to ln::msgs from events
Browse files Browse the repository at this point in the history
`MessageSendEvent` got placed in the `events` module next to
`Event` but it really doesn't make a whole lot of sense to be
there (despite the superficially similar name). `MessageSendEvent`s
aren't really "events" so much as simply queued messages, handled
by the `PeerManager` rather than the user.

Further, they're used entirely by structs implementing the traits
in `ln::msgs` and basically define an enum over `ln::msgs` structs.
Thus, it only really makes sense to have them in `ln::msgs`, which
we do here.
  • Loading branch information
TheBlueMatt committed Feb 10, 2025
1 parent ba1017c commit 6562669
Show file tree
Hide file tree
Showing 27 changed files with 474 additions and 477 deletions.
66 changes: 32 additions & 34 deletions fuzz/src/chanmon_consistency.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ use lightning::ln::functional_test_utils::*;
use lightning::ln::inbound_payment::ExpandedKey;
use lightning::ln::msgs::{
self, BaseMessageHandler, ChannelMessageHandler, CommitmentUpdate, DecodeError, Init,
UpdateAddHTLC,
MessageSendEvent, UpdateAddHTLC,
};
use lightning::ln::script::ShutdownScript;
use lightning::ln::types::ChannelId;
Expand Down Expand Up @@ -782,7 +782,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
let open_channel = {
let events = $source.get_and_clear_pending_msg_events();
assert_eq!(events.len(), 1);
if let events::MessageSendEvent::SendOpenChannel { ref msg, .. } = events[0] {
if let MessageSendEvent::SendOpenChannel { ref msg, .. } = events[0] {
msg.clone()
} else {
panic!("Wrong event type");
Expand Down Expand Up @@ -817,7 +817,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
}
let events = $dest.get_and_clear_pending_msg_events();
assert_eq!(events.len(), 1);
if let events::MessageSendEvent::SendAcceptChannel { ref msg, .. } = events[0] {
if let MessageSendEvent::SendAcceptChannel { ref msg, .. } = events[0] {
msg.clone()
} else {
panic!("Wrong event type");
Expand Down Expand Up @@ -860,7 +860,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
let funding_created = {
let events = $source.get_and_clear_pending_msg_events();
assert_eq!(events.len(), 1);
if let events::MessageSendEvent::SendFundingCreated { ref msg, .. } = events[0] {
if let MessageSendEvent::SendFundingCreated { ref msg, .. } = events[0] {
msg.clone()
} else {
panic!("Wrong event type");
Expand All @@ -871,7 +871,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
let funding_signed = {
let events = $dest.get_and_clear_pending_msg_events();
assert_eq!(events.len(), 1);
if let events::MessageSendEvent::SendFundingSigned { ref msg, .. } = events[0] {
if let MessageSendEvent::SendFundingSigned { ref msg, .. } = events[0] {
msg.clone()
} else {
panic!("Wrong event type");
Expand Down Expand Up @@ -926,9 +926,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
}
for (idx, node_event) in node_events.iter().enumerate() {
for event in node_event {
if let events::MessageSendEvent::SendChannelReady { ref node_id, ref msg } =
event
{
if let MessageSendEvent::SendChannelReady { ref node_id, ref msg } = event {
for node in $nodes.iter() {
if node.get_our_node_id() == *node_id {
node.handle_channel_ready($nodes[idx].get_our_node_id(), msg);
Expand All @@ -943,7 +941,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
for node in $nodes.iter() {
let events = node.get_and_clear_pending_msg_events();
for event in events {
if let events::MessageSendEvent::SendAnnouncementSignatures { .. } = event {
if let MessageSendEvent::SendAnnouncementSignatures { .. } = event {
} else {
panic!("Wrong event type");
}
Expand Down Expand Up @@ -1026,21 +1024,21 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
let expect_drop_id = if let Some(id) = expect_drop_node { Some(nodes[id].get_our_node_id()) } else { None };
for event in $excess_events {
let push_a = match event {
events::MessageSendEvent::UpdateHTLCs { ref node_id, .. } => {
MessageSendEvent::UpdateHTLCs { ref node_id, .. } => {
if Some(*node_id) == expect_drop_id { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
*node_id == a_id
},
events::MessageSendEvent::SendRevokeAndACK { ref node_id, .. } => {
MessageSendEvent::SendRevokeAndACK { ref node_id, .. } => {
if Some(*node_id) == expect_drop_id { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
*node_id == a_id
},
events::MessageSendEvent::SendChannelReestablish { ref node_id, .. } => {
MessageSendEvent::SendChannelReestablish { ref node_id, .. } => {
if Some(*node_id) == expect_drop_id { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
*node_id == a_id
},
events::MessageSendEvent::SendChannelReady { .. } => continue,
events::MessageSendEvent::SendAnnouncementSignatures { .. } => continue,
events::MessageSendEvent::SendChannelUpdate { ref node_id, ref msg } => {
MessageSendEvent::SendChannelReady { .. } => continue,
MessageSendEvent::SendAnnouncementSignatures { .. } => continue,
MessageSendEvent::SendChannelUpdate { ref node_id, ref msg } => {
assert_eq!(msg.contents.channel_flags & 2, 0); // The disable bit must never be set!
if Some(*node_id) == expect_drop_id { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
*node_id == a_id
Expand Down Expand Up @@ -1096,7 +1094,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
for event in &mut events_iter {
had_events = true;
match event {
events::MessageSendEvent::UpdateHTLCs { node_id, updates: CommitmentUpdate { update_add_htlcs, update_fail_htlcs, update_fulfill_htlcs, update_fail_malformed_htlcs, update_fee, commitment_signed } } => {
MessageSendEvent::UpdateHTLCs { node_id, updates: CommitmentUpdate { update_add_htlcs, update_fail_htlcs, update_fulfill_htlcs, update_fail_malformed_htlcs, update_fee, commitment_signed } } => {
for (idx, dest) in nodes.iter().enumerate() {
if dest.get_our_node_id() == node_id {
for update_add in update_add_htlcs.iter() {
Expand Down Expand Up @@ -1134,7 +1132,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
!update_fail_htlcs.is_empty() || !update_fail_malformed_htlcs.is_empty();
if $limit_events != ProcessMessages::AllMessages && processed_change {
// If we only want to process some messages, don't deliver the CS until later.
extra_ev = Some(events::MessageSendEvent::UpdateHTLCs { node_id, updates: CommitmentUpdate {
extra_ev = Some(MessageSendEvent::UpdateHTLCs { node_id, updates: CommitmentUpdate {
update_add_htlcs: Vec::new(),
update_fail_htlcs: Vec::new(),
update_fulfill_htlcs: Vec::new(),
Expand All @@ -1150,29 +1148,29 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
}
}
},
events::MessageSendEvent::SendRevokeAndACK { ref node_id, ref msg } => {
MessageSendEvent::SendRevokeAndACK { ref node_id, ref msg } => {
for (idx, dest) in nodes.iter().enumerate() {
if dest.get_our_node_id() == *node_id {
out.locked_write(format!("Delivering revoke_and_ack to node {}.\n", idx).as_bytes());
dest.handle_revoke_and_ack(nodes[$node].get_our_node_id(), msg);
}
}
},
events::MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } => {
MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } => {
for (idx, dest) in nodes.iter().enumerate() {
if dest.get_our_node_id() == *node_id {
out.locked_write(format!("Delivering channel_reestablish to node {}.\n", idx).as_bytes());
dest.handle_channel_reestablish(nodes[$node].get_our_node_id(), msg);
}
}
},
events::MessageSendEvent::SendChannelReady { .. } => {
MessageSendEvent::SendChannelReady { .. } => {
// Can be generated as a reestablish response
},
events::MessageSendEvent::SendAnnouncementSignatures { .. } => {
MessageSendEvent::SendAnnouncementSignatures { .. } => {
// Can be generated as a reestablish response
},
events::MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
// When we reconnect we will resend a channel_update to make sure our
// counterparty has the latest parameters for receiving payments
// through us. We do, however, check that the message does not include
Expand Down Expand Up @@ -1215,12 +1213,12 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
if $counterparty_id == 0 {
for event in nodes[0].get_and_clear_pending_msg_events() {
match event {
events::MessageSendEvent::UpdateHTLCs { .. } => {},
events::MessageSendEvent::SendRevokeAndACK { .. } => {},
events::MessageSendEvent::SendChannelReestablish { .. } => {},
events::MessageSendEvent::SendChannelReady { .. } => {},
events::MessageSendEvent::SendAnnouncementSignatures { .. } => {},
events::MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
MessageSendEvent::UpdateHTLCs { .. } => {},
MessageSendEvent::SendRevokeAndACK { .. } => {},
MessageSendEvent::SendChannelReestablish { .. } => {},
MessageSendEvent::SendChannelReady { .. } => {},
MessageSendEvent::SendAnnouncementSignatures { .. } => {},
MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
assert_eq!(msg.contents.channel_flags & 2, 0); // The disable bit must never be set!
},
_ => {
Expand All @@ -1241,12 +1239,12 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
} else {
for event in nodes[2].get_and_clear_pending_msg_events() {
match event {
events::MessageSendEvent::UpdateHTLCs { .. } => {},
events::MessageSendEvent::SendRevokeAndACK { .. } => {},
events::MessageSendEvent::SendChannelReestablish { .. } => {},
events::MessageSendEvent::SendChannelReady { .. } => {},
events::MessageSendEvent::SendAnnouncementSignatures { .. } => {},
events::MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
MessageSendEvent::UpdateHTLCs { .. } => {},
MessageSendEvent::SendRevokeAndACK { .. } => {},
MessageSendEvent::SendChannelReestablish { .. } => {},
MessageSendEvent::SendChannelReady { .. } => {},
MessageSendEvent::SendAnnouncementSignatures { .. } => {},
MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
assert_eq!(msg.contents.channel_flags & 2, 0); // The disable bit must never be set!
},
_ => {
Expand Down
4 changes: 2 additions & 2 deletions lightning-background-processor/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1070,13 +1070,13 @@ mod tests {
use lightning::chain::channelmonitor::ANTI_REORG_DELAY;
use lightning::chain::transaction::OutPoint;
use lightning::chain::{chainmonitor, BestBlock, Confirm, Filter};
use lightning::events::{Event, MessageSendEvent, PathFailure, ReplayEvent};
use lightning::events::{Event, PathFailure, ReplayEvent};
use lightning::ln::channelmanager;
use lightning::ln::channelmanager::{
ChainParameters, PaymentId, BREAKDOWN_TIMEOUT, MIN_CLTV_EXPIRY_DELTA,
};
use lightning::ln::functional_test_utils::*;
use lightning::ln::msgs::{BaseMessageHandler, ChannelMessageHandler, Init};
use lightning::ln::msgs::{BaseMessageHandler, ChannelMessageHandler, Init, MessageSendEvent};
use lightning::ln::peer_handler::{
IgnoringMessageHandler, MessageHandler, PeerManager, SocketDescriptor,
};
Expand Down
1 change: 0 additions & 1 deletion lightning-net-tokio/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,6 @@ mod tests {
use bitcoin::constants::ChainHash;
use bitcoin::secp256k1::{PublicKey, Secp256k1, SecretKey};
use bitcoin::Network;
use lightning::events::*;
use lightning::ln::msgs::*;
use lightning::ln::peer_handler::{IgnoringMessageHandler, MessageHandler, PeerManager};
use lightning::routing::gossip::NodeId;
Expand Down
4 changes: 2 additions & 2 deletions lightning/src/chain/chainmonitor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -928,9 +928,9 @@ mod tests {
use crate::{get_htlc_update_msgs, get_revoke_commit_msgs};
use crate::chain::{ChannelMonitorUpdateStatus, Watch};
use crate::chain::channelmonitor::ANTI_REORG_DELAY;
use crate::events::{ClosureReason, Event, MessageSendEvent};
use crate::events::{ClosureReason, Event};
use crate::ln::functional_test_utils::*;
use crate::ln::msgs::{BaseMessageHandler, ChannelMessageHandler};
use crate::ln::msgs::{BaseMessageHandler, ChannelMessageHandler, MessageSendEvent};

const CHAINSYNC_MONITOR_PARTITION_FACTOR: u32 = 5;

Expand Down
Loading

0 comments on commit 6562669

Please sign in to comment.