Skip to content

Commit 3ba91ce

Browse files
authored
Merge pull request #1743 from tnull/2022-09-channel-events
Add `ChannelReady` event
2 parents f0775f8 + 49dfcb6 commit 3ba91ce

File tree

12 files changed

+241
-48
lines changed

12 files changed

+241
-48
lines changed

fuzz/src/chanmon_consistency.rs

+1
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
872872
// looking like probes.
873873
},
874874
events::Event::PaymentForwarded { .. } if $node == 1 => {},
875+
events::Event::ChannelReady { .. } => {},
875876
events::Event::PendingHTLCsForwardable { .. } => {
876877
nodes[$node].process_pending_htlc_forwards();
877878
},

lightning-background-processor/src/lib.rs

+13-5
Original file line numberDiff line numberDiff line change
@@ -988,9 +988,12 @@ mod tests {
988988

989989
// Set up a background event handler for FundingGenerationReady events.
990990
let (sender, receiver) = std::sync::mpsc::sync_channel(1);
991-
let event_handler = move |event: &Event| {
992-
sender.send(handle_funding_generation_ready!(event, channel_value)).unwrap();
991+
let event_handler = move |event: &Event| match event {
992+
Event::FundingGenerationReady { .. } => sender.send(handle_funding_generation_ready!(event, channel_value)).unwrap(),
993+
Event::ChannelReady { .. } => {},
994+
_ => panic!("Unexpected event: {:?}", event),
993995
};
996+
994997
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].no_gossip_sync(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(nodes[0].scorer.clone()));
995998

996999
// Open a channel and check that the FundingGenerationReady event was handled.
@@ -1014,20 +1017,25 @@ mod tests {
10141017

10151018
// Set up a background event handler for SpendableOutputs events.
10161019
let (sender, receiver) = std::sync::mpsc::sync_channel(1);
1017-
let event_handler = move |event: &Event| sender.send(event.clone()).unwrap();
1020+
let event_handler = move |event: &Event| match event {
1021+
Event::SpendableOutputs { .. } => sender.send(event.clone()).unwrap(),
1022+
Event::ChannelReady { .. } => {},
1023+
Event::ChannelClosed { .. } => {},
1024+
_ => panic!("Unexpected event: {:?}", event),
1025+
};
10181026
let persister = Arc::new(Persister::new(data_dir));
10191027
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].no_gossip_sync(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(nodes[0].scorer.clone()));
10201028

10211029
// Force close the channel and check that the SpendableOutputs event was handled.
10221030
nodes[0].node.force_close_broadcasting_latest_txn(&nodes[0].node.list_channels()[0].channel_id, &nodes[1].node.get_our_node_id()).unwrap();
10231031
let commitment_tx = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().pop().unwrap();
10241032
confirm_transaction_depth(&mut nodes[0], &commitment_tx, BREAKDOWN_TIMEOUT as u32);
1033+
10251034
let event = receiver
10261035
.recv_timeout(Duration::from_secs(EVENT_DEADLINE))
1027-
.expect("SpendableOutputs not handled within deadline");
1036+
.expect("Events not handled within deadline");
10281037
match event {
10291038
Event::SpendableOutputs { .. } => {},
1030-
Event::ChannelClosed { .. } => {},
10311039
_ => panic!("Unexpected event: {:?}", event),
10321040
}
10331041

lightning-invoice/src/utils.rs

+4
Original file line numberDiff line numberDiff line change
@@ -869,6 +869,8 @@ mod test {
869869
get_event_msg!(nodes[2], MessageSendEvent::SendChannelUpdate, nodes[0].node.get_our_node_id());
870870
nodes[0].node.handle_channel_ready(&nodes[2].node.get_our_node_id(), &as_channel_ready);
871871
get_event_msg!(nodes[0], MessageSendEvent::SendChannelUpdate, nodes[2].node.get_our_node_id());
872+
expect_channel_ready_event(&nodes[0], &nodes[2].node.get_our_node_id());
873+
expect_channel_ready_event(&nodes[2], &nodes[0].node.get_our_node_id());
872874

873875
// As `msgs::ChannelUpdate` was never handled for the participating node(s) of the second
874876
// channel, the channel will never be assigned any `counterparty.forwarding_info`.
@@ -1257,6 +1259,8 @@ mod test {
12571259
get_event_msg!(nodes[1], MessageSendEvent::SendChannelUpdate, nodes[3].node.get_our_node_id());
12581260
nodes[3].node.handle_channel_ready(&nodes[1].node.get_our_node_id(), &as_channel_ready);
12591261
get_event_msg!(nodes[3], MessageSendEvent::SendChannelUpdate, nodes[1].node.get_our_node_id());
1262+
expect_channel_ready_event(&nodes[1], &nodes[3].node.get_our_node_id());
1263+
expect_channel_ready_event(&nodes[3], &nodes[1].node.get_our_node_id());
12601264

12611265
// As `msgs::ChannelUpdate` was never handled for the participating node(s) of the third
12621266
// channel, the channel will never be assigned any `counterparty.forwarding_info`.

lightning/src/ln/chanmon_update_fail_tests.rs

+7
Original file line numberDiff line numberDiff line change
@@ -1916,6 +1916,13 @@ fn do_during_funding_monitor_fail(confirm_a_first: bool, restore_b_before_conf:
19161916
node.gossip_sync.handle_channel_update(&bs_update).unwrap();
19171917
}
19181918

1919+
if !restore_b_before_lock {
1920+
expect_channel_ready_event(&nodes[1], &nodes[0].node.get_our_node_id());
1921+
} else {
1922+
expect_channel_ready_event(&nodes[0], &nodes[1].node.get_our_node_id());
1923+
}
1924+
1925+
19191926
send_payment(&nodes[0], &[&nodes[1]], 8000000);
19201927
close_channel(&nodes[0], &nodes[1], &channel_id, funding_tx, true);
19211928
check_closed_event!(nodes[0], 1, ClosureReason::CooperativeClosure);

0 commit comments

Comments
 (0)