Skip to content

Commit 8396856

Browse files
committed
Send channel_{announcement,update} msgs on connection, not timer
When we connect to a new peer, immediately send them any channel_announcement and channel_update messages for any public channels we have with other peers. This allows us to stop sending those messages on a timer when they have not changed and ensures we are sending messages when we have peers connected, rather than broadcasting at startup when we have no peers connected.
1 parent 8c6cb99 commit 8396856

9 files changed

+84
-89
lines changed

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,8 +1126,8 @@ fn test_monitor_update_fail_reestablish() {
11261126
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
11271127
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
11281128

1129-
let as_reestablish = get_event_msg!(nodes[0], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id());
1130-
let bs_reestablish = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
1129+
let as_reestablish = get_chan_reestablish_msgs!(nodes[0], nodes[1]).pop().unwrap();
1130+
let bs_reestablish = get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap();
11311131

11321132
nodes[0].node.handle_channel_reestablish(&nodes[1].node.get_our_node_id(), &bs_reestablish);
11331133

@@ -1145,8 +1145,8 @@ fn test_monitor_update_fail_reestablish() {
11451145
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
11461146
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
11471147

1148-
assert!(as_reestablish == get_event_msg!(nodes[0], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id()));
1149-
assert!(bs_reestablish == get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id()));
1148+
assert_eq!(get_chan_reestablish_msgs!(nodes[0], nodes[1]).pop().unwrap(), as_reestablish);
1149+
assert_eq!(get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap(), bs_reestablish);
11501150

11511151
nodes[0].node.handle_channel_reestablish(&nodes[1].node.get_our_node_id(), &bs_reestablish);
11521152
assert_eq!(
@@ -1319,8 +1319,8 @@ fn claim_while_disconnected_monitor_update_fail() {
13191319
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
13201320
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
13211321

1322-
let as_reconnect = get_event_msg!(nodes[0], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id());
1323-
let bs_reconnect = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
1322+
let as_reconnect = get_chan_reestablish_msgs!(nodes[0], nodes[1]).pop().unwrap();
1323+
let bs_reconnect = get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap();
13241324

13251325
nodes[0].node.handle_channel_reestablish(&nodes[1].node.get_our_node_id(), &bs_reconnect);
13261326
let _as_channel_update = get_event_msg!(nodes[0], MessageSendEvent::SendChannelUpdate, nodes[1].node.get_our_node_id());
@@ -1451,8 +1451,8 @@ fn monitor_failed_no_reestablish_response() {
14511451
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
14521452
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
14531453

1454-
let as_reconnect = get_event_msg!(nodes[0], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id());
1455-
let bs_reconnect = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
1454+
let as_reconnect = get_chan_reestablish_msgs!(nodes[0], nodes[1]).pop().unwrap();
1455+
let bs_reconnect = get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap();
14561456

14571457
nodes[1].node.handle_channel_reestablish(&nodes[0].node.get_our_node_id(), &as_reconnect);
14581458
let _bs_channel_update = get_event_msg!(nodes[1], MessageSendEvent::SendChannelUpdate, nodes[0].node.get_our_node_id());
@@ -2032,9 +2032,9 @@ fn test_pending_update_fee_ack_on_reconnect() {
20322032
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id(), false);
20332033

20342034
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::known(), remote_network_address: None });
2035-
let as_connect_msg = get_event_msg!(nodes[0], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id());
2035+
let as_connect_msg = get_chan_reestablish_msgs!(nodes[0], nodes[1]).pop().unwrap();
20362036
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::known(), remote_network_address: None });
2037-
let bs_connect_msg = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
2037+
let bs_connect_msg = get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap();
20382038

20392039
nodes[1].node.handle_channel_reestablish(&nodes[0].node.get_our_node_id(), &as_connect_msg);
20402040
let bs_resend_msgs = nodes[1].node.get_and_clear_pending_msg_events();
@@ -2160,9 +2160,9 @@ fn do_update_fee_resend_test(deliver_update: bool, parallel_updates: bool) {
21602160
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id(), false);
21612161

21622162
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::known(), remote_network_address: None });
2163-
let as_connect_msg = get_event_msg!(nodes[0], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id());
2163+
let as_connect_msg = get_chan_reestablish_msgs!(nodes[0], nodes[1]).pop().unwrap();
21642164
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::known(), remote_network_address: None });
2165-
let bs_connect_msg = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
2165+
let bs_connect_msg = get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap();
21662166

21672167
nodes[1].node.handle_channel_reestablish(&nodes[0].node.get_our_node_id(), &as_connect_msg);
21682168
get_event_msg!(nodes[1], MessageSendEvent::SendChannelUpdate, nodes[0].node.get_our_node_id());

lightning/src/ln/channelmanager.rs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2985,19 +2985,10 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
29852985

29862986
let mut announced_chans = false;
29872987
for (_, chan) in channel_state.by_id.iter() {
2988-
if let Some(msg) = chan.get_signed_channel_announcement(self.get_our_node_id(), self.genesis_hash.clone(), self.best_block.read().unwrap().height()) {
2989-
channel_state.pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
2990-
msg,
2991-
update_msg: match self.get_channel_update_for_broadcast(chan) {
2992-
Ok(msg) => msg,
2993-
Err(_) => continue,
2994-
},
2995-
});
2988+
if chan.get_signed_channel_announcement(self.get_our_node_id(), self.genesis_hash.clone(), self.best_block.read().unwrap().height()).is_some()
2989+
&& self.get_channel_update_for_broadcast(chan).is_ok()
2990+
{
29962991
announced_chans = true;
2997-
} else {
2998-
// If the channel is not public or has not yet reached channel_ready, check the
2999-
// next channel. If we don't yet have any public channels, we'll skip the broadcast
3000-
// below as peers may not accept it without channels on chain first.
30012992
}
30022993
}
30032994

@@ -6143,6 +6134,7 @@ impl<Signer: Sign, M: Deref , T: Deref , K: Deref , F: Deref , L: Deref >
61436134
&events::MessageSendEvent::SendClosingSigned { ref node_id, .. } => node_id != counterparty_node_id,
61446135
&events::MessageSendEvent::SendShutdown { ref node_id, .. } => node_id != counterparty_node_id,
61456136
&events::MessageSendEvent::SendChannelReestablish { ref node_id, .. } => node_id != counterparty_node_id,
6137+
&events::MessageSendEvent::SendChannelAnnouncement { ref node_id, .. } => node_id != counterparty_node_id,
61466138
&events::MessageSendEvent::BroadcastChannelAnnouncement { .. } => true,
61476139
&events::MessageSendEvent::BroadcastNodeAnnouncement { .. } => true,
61486140
&events::MessageSendEvent::BroadcastChannelUpdate { .. } => true,
@@ -6187,7 +6179,7 @@ impl<Signer: Sign, M: Deref , T: Deref , K: Deref , F: Deref , L: Deref >
61876179
let channel_state = &mut *channel_state_lock;
61886180
let pending_msg_events = &mut channel_state.pending_msg_events;
61896181
channel_state.by_id.retain(|_, chan| {
6190-
if chan.get_counterparty_node_id() == *counterparty_node_id {
6182+
let retain = if chan.get_counterparty_node_id() == *counterparty_node_id {
61916183
if !chan.have_received_message() {
61926184
// If we created this (outbound) channel while we were disconnected from the
61936185
// peer we probably failed to send the open_channel message, which is now
@@ -6201,7 +6193,18 @@ impl<Signer: Sign, M: Deref , T: Deref , K: Deref , F: Deref , L: Deref >
62016193
});
62026194
true
62036195
}
6204-
} else { true }
6196+
} else { true };
6197+
if retain && chan.get_counterparty_node_id() != *counterparty_node_id {
6198+
if let Some(msg) = chan.get_signed_channel_announcement(self.get_our_node_id(), self.genesis_hash.clone(), self.best_block.read().unwrap().height()) {
6199+
if let Ok(update_msg) = self.get_channel_update_for_broadcast(chan) {
6200+
pending_msg_events.push(events::MessageSendEvent::SendChannelAnnouncement {
6201+
node_id: *counterparty_node_id,
6202+
msg, update_msg,
6203+
});
6204+
}
6205+
}
6206+
}
6207+
retain
62056208
});
62066209
//TODO: Also re-broadcast announcement_signatures
62076210
}

lightning/src/ln/functional_test_utils.rs

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -828,20 +828,7 @@ pub fn create_unannounced_chan_between_nodes_with_value<'a, 'b, 'c, 'd>(nodes: &
828828
pub fn update_nodes_with_chan_announce<'a, 'b, 'c, 'd>(nodes: &'a Vec<Node<'b, 'c, 'd>>, a: usize, b: usize, ann: &msgs::ChannelAnnouncement, upd_1: &msgs::ChannelUpdate, upd_2: &msgs::ChannelUpdate) {
829829
nodes[a].node.broadcast_node_announcement([0, 0, 0], [0; 32], Vec::new());
830830
let a_events = nodes[a].node.get_and_clear_pending_msg_events();
831-
assert!(a_events.len() >= 2);
832-
833-
// ann should be re-generated by broadcast_node_announcement - check that we have it.
834-
let mut found_ann_1 = false;
835-
for event in a_events.iter() {
836-
match event {
837-
MessageSendEvent::BroadcastChannelAnnouncement { ref msg, .. } => {
838-
if msg == ann { found_ann_1 = true; }
839-
},
840-
MessageSendEvent::BroadcastNodeAnnouncement { .. } => {},
841-
_ => panic!("Unexpected event {:?}", event),
842-
}
843-
}
844-
assert!(found_ann_1);
831+
assert_eq!(a_events.len(), 1);
845832

846833
let a_node_announcement = match a_events.last().unwrap() {
847834
MessageSendEvent::BroadcastNodeAnnouncement { ref msg } => {
@@ -852,20 +839,7 @@ pub fn update_nodes_with_chan_announce<'a, 'b, 'c, 'd>(nodes: &'a Vec<Node<'b, '
852839

853840
nodes[b].node.broadcast_node_announcement([1, 1, 1], [1; 32], Vec::new());
854841
let b_events = nodes[b].node.get_and_clear_pending_msg_events();
855-
assert!(b_events.len() >= 2);
856-
857-
// ann should be re-generated by broadcast_node_announcement - check that we have it.
858-
let mut found_ann_2 = false;
859-
for event in b_events.iter() {
860-
match event {
861-
MessageSendEvent::BroadcastChannelAnnouncement { ref msg, .. } => {
862-
if msg == ann { found_ann_2 = true; }
863-
},
864-
MessageSendEvent::BroadcastNodeAnnouncement { .. } => {},
865-
_ => panic!("Unexpected event"),
866-
}
867-
}
868-
assert!(found_ann_2);
842+
assert_eq!(b_events.len(), 1);
869843

870844
let b_node_announcement = match b_events.last().unwrap() {
871845
MessageSendEvent::BroadcastNodeAnnouncement { ref msg } => {
@@ -2258,15 +2232,27 @@ macro_rules! get_channel_value_stat {
22582232
macro_rules! get_chan_reestablish_msgs {
22592233
($src_node: expr, $dst_node: expr) => {
22602234
{
2235+
let mut announcements = std::collections::HashSet::new();
22612236
let mut res = Vec::with_capacity(1);
22622237
for msg in $src_node.node.get_and_clear_pending_msg_events() {
22632238
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
22642239
assert_eq!(*node_id, $dst_node.node.get_our_node_id());
22652240
res.push(msg.clone());
2241+
} else if let MessageSendEvent::SendChannelAnnouncement { ref node_id, ref msg, .. } = msg {
2242+
assert_eq!(*node_id, $dst_node.node.get_our_node_id());
2243+
announcements.insert(msg.contents.short_channel_id);
22662244
} else {
22672245
panic!("Unexpected event")
22682246
}
22692247
}
2248+
for chan in $src_node.node.list_channels() {
2249+
if chan.is_public && chan.counterparty.node_id != $dst_node.node.get_our_node_id() {
2250+
if let Some(scid) = chan.short_channel_id {
2251+
assert!(announcements.remove(&scid));
2252+
}
2253+
}
2254+
}
2255+
assert!(announcements.is_empty());
22702256
res
22712257
}
22722258
}

lightning/src/ln/functional_tests.rs

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3895,9 +3895,9 @@ fn test_funding_peer_disconnect() {
38953895
assert!(events_2.is_empty());
38963896

38973897
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
3898-
let as_reestablish = get_event_msg!(nodes[0], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id());
3898+
let as_reestablish = get_chan_reestablish_msgs!(nodes[0], nodes[1]).pop().unwrap();
38993899
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
3900-
let bs_reestablish = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
3900+
let bs_reestablish = get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap();
39013901

39023902
// nodes[0] hasn't yet received a channel_ready, so it only sends that on reconnect.
39033903
nodes[0].node.handle_channel_reestablish(&nodes[1].node.get_our_node_id(), &bs_reestablish);
@@ -4038,21 +4038,6 @@ fn test_funding_peer_disconnect() {
40384038
check_added_monitors!(nodes[0], 1);
40394039

40404040
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
4041-
4042-
// The channel announcement should be re-generated exactly by broadcast_node_announcement.
4043-
nodes[0].node.broadcast_node_announcement([0, 0, 0], [0; 32], Vec::new());
4044-
let msgs = nodes[0].node.get_and_clear_pending_msg_events();
4045-
let mut found_announcement = false;
4046-
for event in msgs.iter() {
4047-
match event {
4048-
MessageSendEvent::BroadcastChannelAnnouncement { ref msg, .. } => {
4049-
if *msg == chan_announcement { found_announcement = true; }
4050-
},
4051-
MessageSendEvent::BroadcastNodeAnnouncement { .. } => {},
4052-
_ => panic!("Unexpected event"),
4053-
}
4054-
}
4055-
assert!(found_announcement);
40564041
}
40574042

40584043
#[test]
@@ -4737,19 +4722,23 @@ fn test_manager_serialize_deserialize_inconsistent_monitor() {
47374722
claim_payment(&nodes[2], &[&nodes[0], &nodes[1]], our_payment_preimage);
47384723

47394724
nodes[3].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
4740-
let reestablish = get_event_msg!(nodes[3], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
4725+
let reestablish = get_chan_reestablish_msgs!(nodes[3], nodes[0]).pop().unwrap();
47414726
nodes[0].node.peer_connected(&nodes[3].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
47424727
nodes[0].node.handle_channel_reestablish(&nodes[3].node.get_our_node_id(), &reestablish);
4743-
let msg_events = nodes[0].node.get_and_clear_pending_msg_events();
4744-
assert_eq!(msg_events.len(), 1);
4745-
if let MessageSendEvent::HandleError { ref action, .. } = msg_events[0] {
4746-
match action {
4747-
&ErrorAction::SendErrorMessage { ref msg } => {
4748-
assert_eq!(msg.channel_id, channel_id);
4749-
},
4750-
_ => panic!("Unexpected event!"),
4728+
let mut found_err = false;
4729+
for msg_event in nodes[0].node.get_and_clear_pending_msg_events() {
4730+
if let MessageSendEvent::HandleError { ref action, .. } = msg_event {
4731+
match action {
4732+
&ErrorAction::SendErrorMessage { ref msg } => {
4733+
assert_eq!(msg.channel_id, channel_id);
4734+
assert!(!found_err);
4735+
found_err = true;
4736+
},
4737+
_ => panic!("Unexpected event!"),
4738+
}
47514739
}
47524740
}
4741+
assert!(found_err);
47534742
}
47544743

47554744
macro_rules! check_spendable_outputs {

lightning/src/ln/payment_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ fn do_retry_with_no_persist(confirm_before_reload: bool) {
457457
// Now nodes[1] should send a channel reestablish, which nodes[0] will respond to with an
458458
// error, as the channel has hit the chain.
459459
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::known(), remote_network_address: None });
460-
let bs_reestablish = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
460+
let bs_reestablish = get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap();
461461
nodes[0].node.handle_channel_reestablish(&nodes[1].node.get_our_node_id(), &bs_reestablish);
462462
let as_err = nodes[0].node.get_and_clear_pending_msg_events();
463463
assert_eq!(as_err.len(), 1);

lightning/src/ln/peer_handler.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1613,6 +1613,13 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
16131613
log_bytes!(msg.channel_id));
16141614
self.enqueue_message(&mut *get_peer_for_forwarding!(node_id), msg);
16151615
},
1616+
MessageSendEvent::SendChannelAnnouncement { ref node_id, ref msg, ref update_msg } => {
1617+
log_debug!(self.logger, "Handling SendChannelAnnouncement event in peer_handler for node {} for short channel id {}",
1618+
log_pubkey!(node_id),
1619+
msg.contents.short_channel_id);
1620+
self.enqueue_message(&mut *get_peer_for_forwarding!(node_id), msg);
1621+
self.enqueue_message(&mut *get_peer_for_forwarding!(node_id), update_msg);
1622+
},
16161623
MessageSendEvent::BroadcastChannelAnnouncement { msg, update_msg } => {
16171624
log_debug!(self.logger, "Handling BroadcastChannelAnnouncement event in peer_handler for short channel id {}", msg.contents.short_channel_id);
16181625
match self.message_handler.route_handler.handle_channel_announcement(&msg) {

lightning/src/ln/priv_short_conf_tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,17 +144,17 @@ fn test_priv_forwarding_rejection() {
144144

145145
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::known(), remote_network_address: None });
146146
nodes[1].node.peer_connected(&nodes[0].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
147-
let as_reestablish = get_event_msg!(nodes[0], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id());
148-
let bs_reestablish = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
147+
let as_reestablish = get_chan_reestablish_msgs!(nodes[0], nodes[1]).pop().unwrap();
148+
let bs_reestablish = get_chan_reestablish_msgs!(nodes[1], nodes[0]).pop().unwrap();
149149
nodes[1].node.handle_channel_reestablish(&nodes[0].node.get_our_node_id(), &as_reestablish);
150150
nodes[0].node.handle_channel_reestablish(&nodes[1].node.get_our_node_id(), &bs_reestablish);
151151
get_event_msg!(nodes[0], MessageSendEvent::SendChannelUpdate, nodes[1].node.get_our_node_id());
152152
get_event_msg!(nodes[1], MessageSendEvent::SendChannelUpdate, nodes[0].node.get_our_node_id());
153153

154154
nodes[1].node.peer_connected(&nodes[2].node.get_our_node_id(), &msgs::Init { features: InitFeatures::known(), remote_network_address: None });
155155
nodes[2].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init { features: InitFeatures::empty(), remote_network_address: None });
156-
let bs_reestablish = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[2].node.get_our_node_id());
157-
let cs_reestablish = get_event_msg!(nodes[2], MessageSendEvent::SendChannelReestablish, nodes[1].node.get_our_node_id());
156+
let bs_reestablish = get_chan_reestablish_msgs!(nodes[1], nodes[2]).pop().unwrap();
157+
let cs_reestablish = get_chan_reestablish_msgs!(nodes[2], nodes[1]).pop().unwrap();
158158
nodes[2].node.handle_channel_reestablish(&nodes[1].node.get_our_node_id(), &bs_reestablish);
159159
nodes[1].node.handle_channel_reestablish(&nodes[2].node.get_our_node_id(), &cs_reestablish);
160160
get_event_msg!(nodes[1], MessageSendEvent::SendChannelUpdate, nodes[2].node.get_our_node_id());

0 commit comments

Comments
 (0)