Skip to content

Commit ece4db6

Browse files
Struct-ify reconnect_nodes test util args
Makes it easier to add new arguments without a ton of resulting test changes. Useful for route blinding testing because we need to check for malformed HTLCs, which is not currently supported by reconnect_nodes. It also makes it easier to tell what is being checked in relevant tests.
1 parent 5cddf5e commit ece4db6

6 files changed

+112
-38
lines changed

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,9 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
178178
if disconnect {
179179
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
180180
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
181-
reconnect_nodes(&nodes[0], &nodes[1], (true, true), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
181+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
182+
reconnect_args.send_channel_ready = (true, true);
183+
reconnect_nodes(reconnect_args);
182184
}
183185

184186
chanmon_cfgs[0].persister.set_update_ret(ChannelMonitorUpdateStatus::Completed);
@@ -233,7 +235,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
233235
if disconnect {
234236
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
235237
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
236-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
238+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
237239
}
238240

239241
// ...and make sure we can force-close a frozen channel
@@ -1925,7 +1927,9 @@ fn do_during_funding_monitor_fail(confirm_a_first: bool, restore_b_before_conf:
19251927
// Make sure nodes[1] isn't stupid enough to re-send the ChannelReady on reconnect
19261928
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
19271929
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
1928-
reconnect_nodes(&nodes[0], &nodes[1], (false, confirm_a_first), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
1930+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
1931+
reconnect_args.send_channel_ready.1 = confirm_a_first;
1932+
reconnect_nodes(reconnect_args);
19291933

19301934
// But we want to re-emit ChannelPending
19311935
expect_channel_pending_event(&nodes[1], &nodes[0].node.get_our_node_id());
@@ -2575,10 +2579,14 @@ fn do_test_reconnect_dup_htlc_claims(htlc_status: HTLCStatusAtDupClaim, second_f
25752579
nodes[2].node.peer_disconnected(&nodes[1].node.get_our_node_id());
25762580

25772581
if second_fails {
2578-
reconnect_nodes(&nodes[1], &nodes[2], (false, false), (0, 0), (0, 0), (1, 0), (0, 0), (0, 0), (false, false));
2582+
let mut reconnect_args = ReconnectArgs::new(&nodes[1], &nodes[2]);
2583+
reconnect_args.pending_htlc_fails.0 = 1;
2584+
reconnect_nodes(reconnect_args);
25792585
expect_pending_htlcs_forwardable_and_htlc_handling_failed!(nodes[1], vec![HTLCDestination::NextHopChannel { node_id: Some(nodes[2].node.get_our_node_id()), channel_id: chan_id_2 }]);
25802586
} else {
2581-
reconnect_nodes(&nodes[1], &nodes[2], (false, false), (0, 0), (1, 0), (0, 0), (0, 0), (0, 0), (false, false));
2587+
let mut reconnect_args = ReconnectArgs::new(&nodes[1], &nodes[2]);
2588+
reconnect_args.pending_htlc_claims.0 = 1;
2589+
reconnect_nodes(reconnect_args);
25822590
}
25832591

25842592
if htlc_status == HTLCStatusAtDupClaim::HoldingCell {

lightning/src/ln/functional_test_utils.rs

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2945,9 +2945,41 @@ macro_rules! handle_chan_reestablish_msgs {
29452945
}
29462946
}
29472947

2948+
pub struct ReconnectArgs<'a, 'b, 'c, 'd> {
2949+
pub node_a: &'a Node<'b, 'c, 'd>,
2950+
pub node_b: &'a Node<'b, 'c, 'd>,
2951+
pub send_channel_ready: (bool, bool),
2952+
pub pending_htlc_adds: (i64, i64),
2953+
pub pending_htlc_claims: (usize, usize),
2954+
pub pending_htlc_fails: (usize, usize),
2955+
pub pending_cell_htlc_claims: (usize, usize),
2956+
pub pending_cell_htlc_fails: (usize, usize),
2957+
pub pending_raa: (bool, bool),
2958+
}
2959+
2960+
impl<'a, 'b, 'c, 'd> ReconnectArgs<'a, 'b, 'c, 'd> {
2961+
pub fn new(node_a: &'a Node<'b, 'c, 'd>, node_b: &'a Node<'b, 'c, 'd>) -> Self {
2962+
Self {
2963+
node_a,
2964+
node_b,
2965+
send_channel_ready: (false, false),
2966+
pending_htlc_adds: (0, 0),
2967+
pending_htlc_claims: (0, 0),
2968+
pending_htlc_fails: (0, 0),
2969+
pending_cell_htlc_claims: (0, 0),
2970+
pending_cell_htlc_fails: (0, 0),
2971+
pending_raa: (false, false),
2972+
}
2973+
}
2974+
}
2975+
29482976
/// pending_htlc_adds includes both the holding cell and in-flight update_add_htlcs, whereas
29492977
/// for claims/fails they are separated out.
2950-
pub fn reconnect_nodes<'a, 'b, 'c>(node_a: &Node<'a, 'b, 'c>, node_b: &Node<'a, 'b, 'c>, send_channel_ready: (bool, bool), pending_htlc_adds: (i64, i64), pending_htlc_claims: (usize, usize), pending_htlc_fails: (usize, usize), pending_cell_htlc_claims: (usize, usize), pending_cell_htlc_fails: (usize, usize), pending_raa: (bool, bool)) {
2978+
pub fn reconnect_nodes<'a, 'b, 'c, 'd>(args: ReconnectArgs<'a, 'b, 'c, 'd>) {
2979+
let ReconnectArgs {
2980+
node_a, node_b, send_channel_ready, pending_htlc_adds, pending_htlc_claims, pending_htlc_fails,
2981+
pending_cell_htlc_claims, pending_cell_htlc_fails, pending_raa
2982+
} = args;
29512983
node_a.node.peer_connected(&node_b.node.get_our_node_id(), &msgs::Init {
29522984
features: node_b.node.init_features(), networks: None, remote_network_address: None
29532985
}, true).unwrap();

lightning/src/ln/functional_tests.rs

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3585,7 +3585,9 @@ fn test_dup_events_on_peer_disconnect() {
35853585
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
35863586
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
35873587

3588-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (1, 0), (0, 0), (0, 0), (0, 0), (false, false));
3588+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3589+
reconnect_args.pending_htlc_claims.0 = 1;
3590+
reconnect_nodes(reconnect_args);
35893591
expect_payment_path_successful!(nodes[0]);
35903592
}
35913593

@@ -3642,7 +3644,9 @@ fn test_simple_peer_disconnect() {
36423644

36433645
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
36443646
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
3645-
reconnect_nodes(&nodes[0], &nodes[1], (true, true), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3647+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3648+
reconnect_args.send_channel_ready = (true, true);
3649+
reconnect_nodes(reconnect_args);
36463650

36473651
let payment_preimage_1 = route_payment(&nodes[0], &vec!(&nodes[1], &nodes[2])[..], 1000000).0;
36483652
let payment_hash_2 = route_payment(&nodes[0], &vec!(&nodes[1], &nodes[2])[..], 1000000).1;
@@ -3651,7 +3655,7 @@ fn test_simple_peer_disconnect() {
36513655

36523656
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
36533657
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
3654-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3658+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
36553659

36563660
let (payment_preimage_3, payment_hash_3, _) = route_payment(&nodes[0], &vec!(&nodes[1], &nodes[2])[..], 1000000);
36573661
let payment_preimage_4 = route_payment(&nodes[0], &vec!(&nodes[1], &nodes[2])[..], 1000000).0;
@@ -3664,7 +3668,10 @@ fn test_simple_peer_disconnect() {
36643668
claim_payment_along_route(&nodes[0], &[&[&nodes[1], &nodes[2]]], true, payment_preimage_3);
36653669
fail_payment_along_route(&nodes[0], &[&[&nodes[1], &nodes[2]]], true, payment_hash_5);
36663670

3667-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (1, 0), (1, 0), (false, false));
3671+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3672+
reconnect_args.pending_cell_htlc_fails.0 = 1;
3673+
reconnect_args.pending_cell_htlc_claims.0 = 1;
3674+
reconnect_nodes(reconnect_args);
36683675
{
36693676
let events = nodes[0].node.get_and_clear_pending_events();
36703677
assert_eq!(events.len(), 4);
@@ -3776,19 +3783,29 @@ fn do_test_drop_messages_peer_disconnect(messages_delivered: u8, simulate_broken
37763783
}
37773784
// Even if the channel_ready messages get exchanged, as long as nothing further was
37783785
// received on either side, both sides will need to resend them.
3779-
reconnect_nodes(&nodes[0], &nodes[1], (true, true), (0, 1), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3786+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3787+
reconnect_args.send_channel_ready = (true, true);
3788+
reconnect_args.pending_htlc_adds.1 = 1;
3789+
reconnect_nodes(reconnect_args);
37803790
} else if messages_delivered == 3 {
37813791
// nodes[0] still wants its RAA + commitment_signed
3782-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (-1, 0), (0, 0), (0, 0), (0, 0), (0, 0), (true, false));
3792+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3793+
reconnect_args.pending_htlc_adds.0 = -1;
3794+
reconnect_args.pending_raa.0 = true;
3795+
reconnect_nodes(reconnect_args);
37833796
} else if messages_delivered == 4 {
37843797
// nodes[0] still wants its commitment_signed
3785-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (-1, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3798+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3799+
reconnect_args.pending_htlc_adds.0 = -1;
3800+
reconnect_nodes(reconnect_args);
37863801
} else if messages_delivered == 5 {
37873802
// nodes[1] still wants its final RAA
3788-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, true));
3803+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3804+
reconnect_args.pending_raa.1 = true;
3805+
reconnect_nodes(reconnect_args);
37893806
} else if messages_delivered == 6 {
37903807
// Everything was delivered...
3791-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3808+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
37923809
}
37933810

37943811
let events_1 = nodes[1].node.get_and_clear_pending_events();
@@ -3812,7 +3829,7 @@ fn do_test_drop_messages_peer_disconnect(messages_delivered: u8, simulate_broken
38123829

38133830
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
38143831
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
3815-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3832+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
38163833

38173834
nodes[1].node.process_pending_htlc_forwards();
38183835

@@ -3896,24 +3913,33 @@ fn do_test_drop_messages_peer_disconnect(messages_delivered: u8, simulate_broken
38963913
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
38973914
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
38983915
if messages_delivered < 2 {
3899-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (1, 0), (0, 0), (0, 0), (0, 0), (false, false));
3916+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3917+
reconnect_args.pending_htlc_claims.0 = 1;
3918+
reconnect_nodes(reconnect_args);
39003919
if messages_delivered < 1 {
39013920
expect_payment_sent!(nodes[0], payment_preimage_1);
39023921
} else {
39033922
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
39043923
}
39053924
} else if messages_delivered == 2 {
39063925
// nodes[0] still wants its RAA + commitment_signed
3907-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, -1), (0, 0), (0, 0), (0, 0), (0, 0), (false, true));
3926+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3927+
reconnect_args.pending_htlc_adds.1 = -1;
3928+
reconnect_args.pending_raa.1 = true;
3929+
reconnect_nodes(reconnect_args);
39083930
} else if messages_delivered == 3 {
39093931
// nodes[0] still wants its commitment_signed
3910-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, -1), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3932+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3933+
reconnect_args.pending_htlc_adds.1 = -1;
3934+
reconnect_nodes(reconnect_args);
39113935
} else if messages_delivered == 4 {
39123936
// nodes[1] still wants its final RAA
3913-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (true, false));
3937+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
3938+
reconnect_args.pending_raa.0 = true;
3939+
reconnect_nodes(reconnect_args);
39143940
} else if messages_delivered == 5 {
39153941
// Everything was delivered...
3916-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3942+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
39173943
}
39183944

39193945
if messages_delivered == 1 || messages_delivered == 2 {
@@ -3923,7 +3949,7 @@ fn do_test_drop_messages_peer_disconnect(messages_delivered: u8, simulate_broken
39233949
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
39243950
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
39253951
}
3926-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3952+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
39273953

39283954
if messages_delivered > 2 {
39293955
expect_payment_path_successful!(nodes[0]);

lightning/src/ln/onion_route_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ fn test_onion_failure() {
597597
nodes[1].node.get_and_clear_pending_msg_events();
598598
nodes[2].node.get_and_clear_pending_msg_events();
599599
}, true, Some(UPDATE|20), Some(NetworkUpdate::ChannelUpdateMessage{msg: ChannelUpdate::dummy(short_channel_id)}), Some(short_channel_id));
600-
reconnect_nodes(&nodes[1], &nodes[2], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
600+
reconnect_nodes(ReconnectArgs::new(&nodes[1], &nodes[2]));
601601

602602
run_onion_failure_test("expiry_too_far", 0, &nodes, &route, &payment_hash, &payment_secret, |msg| {
603603
let session_priv = SecretKey::from_slice(&[3; 32]).unwrap();

lightning/src/ln/payment_tests.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ fn do_retry_with_no_persist(confirm_before_reload: bool) {
490490
// nodes[1] now immediately fails the HTLC as the next-hop channel is disconnected
491491
let _ = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
492492

493-
reconnect_nodes(&nodes[1], &nodes[2], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
493+
reconnect_nodes(ReconnectArgs::new(&nodes[1], &nodes[2]));
494494

495495
let as_commitment_tx = get_local_commitment_txn!(nodes[0], chan_id)[0].clone();
496496
if confirm_before_reload {
@@ -789,7 +789,9 @@ fn do_test_completed_payment_not_retryable_on_reload(use_dust: bool) {
789789
nodes[0].node.test_process_background_events();
790790
check_added_monitors(&nodes[0], 1);
791791

792-
reconnect_nodes(&nodes[0], &nodes[1], (true, true), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
792+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
793+
reconnect_args.send_channel_ready = (true, true);
794+
reconnect_nodes(reconnect_args);
793795

794796
// Now resend the payment, delivering the HTLC and actually claiming it this time. This ensures
795797
// the payment is not (spuriously) listed as still pending.
@@ -817,7 +819,7 @@ fn do_test_completed_payment_not_retryable_on_reload(use_dust: bool) {
817819
nodes[0].node.test_process_background_events();
818820
check_added_monitors(&nodes[0], 1);
819821

820-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
822+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
821823

822824
match nodes[0].node.send_payment_with_route(&new_route, payment_hash, RecipientOnionFields::secret_only(payment_secret), payment_id) {
823825
Err(PaymentSendFailure::DuplicatePayment) => {},
@@ -1011,7 +1013,7 @@ fn test_fulfill_restart_failure() {
10111013
reload_node!(nodes[1], &chan_manager_serialized, &[&chan_0_monitor_serialized], persister, new_chain_monitor, nodes_1_deserialized);
10121014

10131015
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
1014-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
1016+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
10151017

10161018
nodes[1].node.fail_htlc_backwards(&payment_hash);
10171019
expect_pending_htlcs_forwardable_and_htlc_handling_failed!(nodes[1], vec![HTLCDestination::FailedPayment { payment_hash }]);
@@ -3422,9 +3424,11 @@ fn do_test_payment_metadata_consistency(do_reload: bool, do_modify: bool) {
34223424
reload_node!(nodes[3], config, &nodes[3].node.encode(), &[&mon_bd, &mon_cd],
34233425
persister, new_chain_monitor, nodes_0_deserialized);
34243426
nodes[1].node.peer_disconnected(&nodes[3].node.get_our_node_id());
3425-
reconnect_nodes(&nodes[1], &nodes[3], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3427+
reconnect_nodes(ReconnectArgs::new(&nodes[1], &nodes[3]));
34263428
}
3427-
reconnect_nodes(&nodes[2], &nodes[3], (true, true), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
3429+
let mut reconnect_args = ReconnectArgs::new(&nodes[2], &nodes[3]);
3430+
reconnect_args.send_channel_ready = (true, true);
3431+
reconnect_nodes(reconnect_args);
34283432

34293433
// Create a new channel between C and D as A will refuse to retry on the existing one because
34303434
// it just failed.

lightning/src/ln/reload_tests.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ fn test_funding_peer_disconnect() {
5252
let events_1 = nodes[0].node.get_and_clear_pending_msg_events();
5353
assert!(events_1.is_empty());
5454

55-
reconnect_nodes(&nodes[0], &nodes[1], (false, true), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
55+
let mut reconnect_args = ReconnectArgs::new(&nodes[0], &nodes[1]);
56+
reconnect_args.send_channel_ready.1 = true;
57+
reconnect_nodes(reconnect_args);
5658

5759
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
5860
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id());
@@ -180,7 +182,7 @@ fn test_funding_peer_disconnect() {
180182

181183
reload_node!(nodes[0], &nodes[0].node.encode(), &[&chan_0_monitor_serialized], persister, new_chain_monitor, nodes_0_deserialized);
182184

183-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
185+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
184186
}
185187

186188
#[test]
@@ -334,7 +336,7 @@ fn test_simple_manager_serialize_deserialize() {
334336
let chan_0_monitor_serialized = get_monitor!(nodes[0], chan_id).encode();
335337
reload_node!(nodes[0], nodes[0].node.encode(), &[&chan_0_monitor_serialized], persister, new_chain_monitor, nodes_0_deserialized);
336338

337-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
339+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
338340

339341
fail_payment(&nodes[0], &[&nodes[1]], our_payment_hash);
340342
claim_payment(&nodes[0], &[&nodes[1]], our_payment_preimage);
@@ -456,8 +458,8 @@ fn test_manager_serialize_deserialize_inconsistent_monitor() {
456458
check_added_monitors!(nodes[0], 1);
457459

458460
// nodes[1] and nodes[2] have no lost state with nodes[0]...
459-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
460-
reconnect_nodes(&nodes[0], &nodes[2], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
461+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
462+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[2]));
461463
//... and we can even still claim the payment!
462464
claim_payment(&nodes[2], &[&nodes[0], &nodes[1]], our_payment_preimage);
463465

@@ -666,10 +668,12 @@ fn test_forwardable_regen() {
666668
let chan_1_monitor_serialized = get_monitor!(nodes[1], chan_id_2).encode();
667669
reload_node!(nodes[1], nodes[1].node.encode(), &[&chan_0_monitor_serialized, &chan_1_monitor_serialized], persister, new_chain_monitor, nodes_1_deserialized);
668670

669-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
671+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
670672
// Note that nodes[1] and nodes[2] resend their channel_ready here since they haven't updated
671673
// the commitment state.
672-
reconnect_nodes(&nodes[1], &nodes[2], (true, true), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
674+
let mut reconnect_args = ReconnectArgs::new(&nodes[1], &nodes[2]);
675+
reconnect_args.send_channel_ready = (true, true);
676+
reconnect_nodes(reconnect_args);
673677

674678
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
675679

@@ -967,7 +971,7 @@ fn do_forwarded_payment_no_manager_persistence(use_cs_commitment: bool, claim_ht
967971
check_added_monitors!(nodes[1], 1);
968972

969973
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
970-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
974+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
971975

972976
if use_cs_commitment {
973977
// If we confirm a commitment transaction that has the HTLC on-chain, nodes[1] should wait
@@ -1085,7 +1089,7 @@ fn removed_payment_no_manager_persistence() {
10851089
// now forgotten everywhere. The ChannelManager should have, as a side-effect of reload,
10861090
// learned that the HTLC is gone from the ChannelMonitor and added it to the to-fail-back set.
10871091
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id());
1088-
reconnect_nodes(&nodes[0], &nodes[1], (false, false), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (false, false));
1092+
reconnect_nodes(ReconnectArgs::new(&nodes[0], &nodes[1]));
10891093

10901094
expect_pending_htlcs_forwardable_and_htlc_handling_failed!(nodes[1], [HTLCDestination::NextHopChannel { node_id: Some(nodes[2].node.get_our_node_id()), channel_id: chan_id_2 }]);
10911095
check_added_monitors!(nodes[1], 1);

0 commit comments

Comments
 (0)