Skip to content

Commit a5629e5

Browse files
authored
Merge pull request #1479 from ViktorTigerstrom/2022-05-pass-counterparty-id-to-functions
Pass `counterparty_node_id` to `ChannelManager` functions
2 parents 257a6f3 + c179844 commit a5629e5

13 files changed

+150
-122
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
442442
value: *channel_value_satoshis, script_pubkey: output_script.clone(),
443443
}]};
444444
funding_output = OutPoint { txid: tx.txid(), index: 0 };
445-
$source.funding_transaction_generated(&temporary_channel_id, tx.clone()).unwrap();
445+
$source.funding_transaction_generated(&temporary_channel_id, &$dest.get_our_node_id(), tx.clone()).unwrap();
446446
channel_txn.push(tx);
447447
} else { panic!("Wrong event type"); }
448448
}

fuzz/src/full_stack.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
408408
let mut should_forward = false;
409409
let mut payments_received: Vec<PaymentHash> = Vec::new();
410410
let mut payments_sent = 0;
411-
let mut pending_funding_generation: Vec<([u8; 32], u64, Script)> = Vec::new();
411+
let mut pending_funding_generation: Vec<([u8; 32], PublicKey, u64, Script)> = Vec::new();
412412
let mut pending_funding_signatures = HashMap::new();
413413

414414
loop {
@@ -516,7 +516,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
516516
let channel_id = get_slice!(1)[0] as usize;
517517
if channel_id >= channels.len() { return; }
518518
channels.sort_by(|a, b| { a.channel_id.cmp(&b.channel_id) });
519-
if channelmanager.close_channel(&channels[channel_id].channel_id).is_err() { return; }
519+
if channelmanager.close_channel(&channels[channel_id].channel_id, &channels[channel_id].counterparty.node_id).is_err() { return; }
520520
},
521521
7 => {
522522
if should_forward {
@@ -556,7 +556,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
556556
10 => {
557557
'outer_loop: for funding_generation in pending_funding_generation.drain(..) {
558558
let mut tx = Transaction { version: 0, lock_time: 0, input: Vec::new(), output: vec![TxOut {
559-
value: funding_generation.1, script_pubkey: funding_generation.2,
559+
value: funding_generation.2, script_pubkey: funding_generation.3,
560560
}] };
561561
let funding_output = 'search_loop: loop {
562562
let funding_txid = tx.txid();
@@ -575,7 +575,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
575575
continue 'outer_loop;
576576
}
577577
};
578-
if let Err(e) = channelmanager.funding_transaction_generated(&funding_generation.0, tx.clone()) {
578+
if let Err(e) = channelmanager.funding_transaction_generated(&funding_generation.0, &funding_generation.1, tx.clone()) {
579579
// It's possible the channel has been closed in the mean time, but any other
580580
// failure may be a bug.
581581
if let APIError::ChannelUnavailable { err } = e {
@@ -624,16 +624,16 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
624624
let channel_id = get_slice!(1)[0] as usize;
625625
if channel_id >= channels.len() { return; }
626626
channels.sort_by(|a, b| { a.channel_id.cmp(&b.channel_id) });
627-
channelmanager.force_close_channel(&channels[channel_id].channel_id).unwrap();
627+
channelmanager.force_close_channel(&channels[channel_id].channel_id, &channels[channel_id].counterparty.node_id).unwrap();
628628
},
629629
// 15 is above
630630
_ => return,
631631
}
632632
loss_detector.handler.process_events();
633633
for event in loss_detector.manager.get_and_clear_pending_events() {
634634
match event {
635-
Event::FundingGenerationReady { temporary_channel_id, channel_value_satoshis, output_script, .. } => {
636-
pending_funding_generation.push((temporary_channel_id, channel_value_satoshis, output_script));
635+
Event::FundingGenerationReady { temporary_channel_id, counterparty_node_id, channel_value_satoshis, output_script, .. } => {
636+
pending_funding_generation.push((temporary_channel_id, counterparty_node_id, channel_value_satoshis, output_script));
637637
},
638638
Event::PaymentReceived { payment_hash, .. } => {
639639
//TODO: enhance by fetching random amounts from fuzz input?

lightning-background-processor/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ mod tests {
540540
macro_rules! handle_funding_generation_ready {
541541
($event: expr, $channel_value: expr) => {{
542542
match $event {
543-
&Event::FundingGenerationReady { temporary_channel_id, channel_value_satoshis, ref output_script, user_channel_id } => {
543+
&Event::FundingGenerationReady { temporary_channel_id, channel_value_satoshis, ref output_script, user_channel_id, .. } => {
544544
assert_eq!(channel_value_satoshis, $channel_value);
545545
assert_eq!(user_channel_id, 42);
546546

@@ -556,7 +556,7 @@ mod tests {
556556

557557
macro_rules! end_open_channel {
558558
($node_a: expr, $node_b: expr, $temporary_channel_id: expr, $tx: expr) => {{
559-
$node_a.node.funding_transaction_generated(&$temporary_channel_id, $tx.clone()).unwrap();
559+
$node_a.node.funding_transaction_generated(&$temporary_channel_id, &$node_b.node.get_our_node_id(), $tx.clone()).unwrap();
560560
$node_b.node.handle_funding_created(&$node_a.node.get_our_node_id(), &get_event_msg!($node_a, MessageSendEvent::SendFundingCreated, $node_b.node.get_our_node_id()));
561561
$node_a.node.handle_funding_signed(&$node_b.node.get_our_node_id(), &get_event_msg!($node_b, MessageSendEvent::SendFundingSigned, $node_a.node.get_our_node_id()));
562562
}}
@@ -637,7 +637,7 @@ mod tests {
637637
}
638638

639639
// Force-close the channel.
640-
nodes[0].node.force_close_channel(&OutPoint { txid: tx.txid(), index: 0 }.to_channel_id()).unwrap();
640+
nodes[0].node.force_close_channel(&OutPoint { txid: tx.txid(), index: 0 }.to_channel_id(), &nodes[1].node.get_our_node_id()).unwrap();
641641

642642
// Check that the force-close updates are persisted.
643643
check_persisted_data!(nodes[0].node, filepath.clone());
@@ -776,7 +776,7 @@ mod tests {
776776
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(nodes[0].scorer.clone()));
777777

778778
// Force close the channel and check that the SpendableOutputs event was handled.
779-
nodes[0].node.force_close_channel(&nodes[0].node.list_channels()[0].channel_id).unwrap();
779+
nodes[0].node.force_close_channel(&nodes[0].node.list_channels()[0].channel_id, &nodes[1].node.get_our_node_id()).unwrap();
780780
let commitment_tx = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().pop().unwrap();
781781
confirm_transaction_depth(&mut nodes[0], &commitment_tx, BREAKDOWN_TIMEOUT as u32);
782782
let event = receiver

lightning-persister/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ mod tests {
213213

214214
// Force close because cooperative close doesn't result in any persisted
215215
// updates.
216-
nodes[0].node.force_close_channel(&nodes[0].node.list_channels()[0].channel_id).unwrap();
216+
nodes[0].node.force_close_channel(&nodes[0].node.list_channels()[0].channel_id, &nodes[1].node.get_our_node_id()).unwrap();
217217
check_closed_event!(nodes[0], 1, ClosureReason::HolderForceClosed);
218218
check_closed_broadcast!(nodes[0], true);
219219
check_added_monitors!(nodes[0], 1);
@@ -247,7 +247,7 @@ mod tests {
247247
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
248248
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
249249
let chan = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
250-
nodes[1].node.force_close_channel(&chan.2).unwrap();
250+
nodes[1].node.force_close_channel(&chan.2, &nodes[0].node.get_our_node_id()).unwrap();
251251
check_closed_event!(nodes[1], 1, ClosureReason::HolderForceClosed);
252252
let mut added_monitors = nodes[1].chain_monitor.added_monitors.lock().unwrap();
253253
let update_map = nodes[1].chain_monitor.latest_monitor_update_id.lock().unwrap();
@@ -286,7 +286,7 @@ mod tests {
286286
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
287287
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
288288
let chan = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
289-
nodes[1].node.force_close_channel(&chan.2).unwrap();
289+
nodes[1].node.force_close_channel(&chan.2, &nodes[0].node.get_our_node_id()).unwrap();
290290
check_closed_event!(nodes[1], 1, ClosureReason::HolderForceClosed);
291291
let mut added_monitors = nodes[1].chain_monitor.added_monitors.lock().unwrap();
292292
let update_map = nodes[1].chain_monitor.latest_monitor_update_id.lock().unwrap();

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
224224
}
225225

226226
// ...and make sure we can force-close a frozen channel
227-
nodes[0].node.force_close_channel(&channel_id).unwrap();
227+
nodes[0].node.force_close_channel(&channel_id, &nodes[1].node.get_our_node_id()).unwrap();
228228
check_added_monitors!(nodes[0], 1);
229229
check_closed_broadcast!(nodes[0], true);
230230

@@ -1809,9 +1809,9 @@ fn do_during_funding_monitor_fail(confirm_a_first: bool, restore_b_before_conf:
18091809
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), InitFeatures::known(), &get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id()));
18101810
nodes[0].node.handle_accept_channel(&nodes[1].node.get_our_node_id(), InitFeatures::known(), &get_event_msg!(nodes[1], MessageSendEvent::SendAcceptChannel, nodes[0].node.get_our_node_id()));
18111811

1812-
let (temporary_channel_id, funding_tx, funding_output) = create_funding_transaction(&nodes[0], 100000, 43);
1812+
let (temporary_channel_id, funding_tx, funding_output) = create_funding_transaction(&nodes[0], &nodes[1].node.get_our_node_id(), 100000, 43);
18131813

1814-
nodes[0].node.funding_transaction_generated(&temporary_channel_id, funding_tx.clone()).unwrap();
1814+
nodes[0].node.funding_transaction_generated(&temporary_channel_id, &nodes[1].node.get_our_node_id(), funding_tx.clone()).unwrap();
18151815
check_added_monitors!(nodes[0], 0);
18161816

18171817
chanmon_cfgs[1].persister.set_update_ret(Err(ChannelMonitorUpdateErr::TemporaryFailure));
@@ -2538,7 +2538,7 @@ fn test_temporary_error_during_shutdown() {
25382538
chanmon_cfgs[0].persister.set_update_ret(Err(ChannelMonitorUpdateErr::TemporaryFailure));
25392539
chanmon_cfgs[1].persister.set_update_ret(Err(ChannelMonitorUpdateErr::TemporaryFailure));
25402540

2541-
nodes[0].node.close_channel(&channel_id).unwrap();
2541+
nodes[0].node.close_channel(&channel_id, &nodes[1].node.get_our_node_id()).unwrap();
25422542
nodes[1].node.handle_shutdown(&nodes[0].node.get_our_node_id(), &InitFeatures::known(), &get_event_msg!(nodes[0], MessageSendEvent::SendShutdown, nodes[1].node.get_our_node_id()));
25432543
check_added_monitors!(nodes[1], 1);
25442544

@@ -2591,7 +2591,7 @@ fn test_permanent_error_during_sending_shutdown() {
25912591
let channel_id = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known()).2;
25922592
chanmon_cfgs[0].persister.set_update_ret(Err(ChannelMonitorUpdateErr::PermanentFailure));
25932593

2594-
assert!(nodes[0].node.close_channel(&channel_id).is_ok());
2594+
assert!(nodes[0].node.close_channel(&channel_id, &nodes[1].node.get_our_node_id()).is_ok());
25952595
check_closed_broadcast!(nodes[0], true);
25962596
check_added_monitors!(nodes[0], 2);
25972597
check_closed_event!(nodes[0], 1, ClosureReason::ProcessingError { err: "ChannelMonitor storage failure".to_string() });
@@ -2612,7 +2612,7 @@ fn test_permanent_error_during_handling_shutdown() {
26122612
let channel_id = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known()).2;
26132613
chanmon_cfgs[1].persister.set_update_ret(Err(ChannelMonitorUpdateErr::PermanentFailure));
26142614

2615-
assert!(nodes[0].node.close_channel(&channel_id).is_ok());
2615+
assert!(nodes[0].node.close_channel(&channel_id, &nodes[1].node.get_our_node_id()).is_ok());
26162616
let shutdown = get_event_msg!(nodes[0], MessageSendEvent::SendShutdown, nodes[1].node.get_our_node_id());
26172617
nodes[1].node.handle_shutdown(&nodes[0].node.get_our_node_id(), &InitFeatures::known(), &shutdown);
26182618
check_closed_broadcast!(nodes[1], true);

0 commit comments

Comments
 (0)