@@ -12,7 +12,6 @@ use bitcoin::secp256k1::{PublicKey, SecretKey};
12
12
use lightning_types:: features:: ChannelTypeFeatures ;
13
13
14
14
#[ test]
15
- #[ rustfmt:: skip]
16
15
fn test_outbound_chans_unlimited ( ) {
17
16
// Test that we never refuse an outbound channel even if a peer is unfuned-channel-limited
18
17
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
@@ -29,27 +28,31 @@ fn test_outbound_chans_unlimited() {
29
28
for _ in 0 ..MAX_UNFUNDED_CHANS_PER_PEER {
30
29
nodes[ 1 ] . node . handle_open_channel ( node_a, & open_channel_msg) ;
31
30
get_event_msg ! ( nodes[ 1 ] , MessageSendEvent :: SendAcceptChannel , node_a) ;
32
- open_channel_msg. common_fields . temporary_channel_id = ChannelId :: temporary_from_entropy_source ( & nodes[ 0 ] . keys_manager ) ;
31
+ open_channel_msg. common_fields . temporary_channel_id =
32
+ ChannelId :: temporary_from_entropy_source ( & nodes[ 0 ] . keys_manager ) ;
33
33
}
34
34
35
35
// Once we have MAX_UNFUNDED_CHANS_PER_PEER unfunded channels, new inbound channels will be
36
36
// rejected.
37
37
nodes[ 1 ] . node . handle_open_channel ( node_a, & open_channel_msg) ;
38
- assert_eq ! ( get_err_msg( & nodes[ 1 ] , & node_a) . channel_id,
39
- open_channel_msg. common_fields. temporary_channel_id) ;
38
+ assert_eq ! (
39
+ get_err_msg( & nodes[ 1 ] , & node_a) . channel_id,
40
+ open_channel_msg. common_fields. temporary_channel_id
41
+ ) ;
40
42
41
43
// but we can still open an outbound channel.
42
44
nodes[ 1 ] . node . create_channel ( node_a, 100_000 , 0 , 42 , None , None ) . unwrap ( ) ;
43
45
get_event_msg ! ( nodes[ 1 ] , MessageSendEvent :: SendOpenChannel , node_a) ;
44
46
45
47
// but even with such an outbound channel, additional inbound channels will still fail.
46
48
nodes[ 1 ] . node . handle_open_channel ( node_a, & open_channel_msg) ;
47
- assert_eq ! ( get_err_msg( & nodes[ 1 ] , & node_a) . channel_id,
48
- open_channel_msg. common_fields. temporary_channel_id) ;
49
+ assert_eq ! (
50
+ get_err_msg( & nodes[ 1 ] , & node_a) . channel_id,
51
+ open_channel_msg. common_fields. temporary_channel_id
52
+ ) ;
49
53
}
50
54
51
55
#[ test]
52
- #[ rustfmt:: skip]
53
56
fn test_0conf_limiting ( ) {
54
57
// Tests that we properly limit inbound channels when we have the manual-channel-acceptance
55
58
// flag set and (sometimes) accept channels as 0conf.
@@ -65,53 +68,80 @@ fn test_0conf_limiting() {
65
68
nodes[ 0 ] . node . create_channel ( node_b, 100_000 , 0 , 42 , None , None ) . unwrap ( ) ;
66
69
let mut open_channel_msg = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , node_b) ;
67
70
let init_msg = & msgs:: Init {
68
- features : nodes[ 0 ] . node . init_features ( ) , networks : None , remote_network_address : None
71
+ features : nodes[ 0 ] . node . init_features ( ) ,
72
+ networks : None ,
73
+ remote_network_address : None ,
69
74
} ;
70
75
71
76
// First, get us up to MAX_UNFUNDED_CHANNEL_PEERS so we can test at the edge
72
77
for _ in 0 ..MAX_UNFUNDED_CHANNEL_PEERS - 1 {
73
- let random_pk = PublicKey :: from_secret_key ( & nodes[ 0 ] . node . secp_ctx ,
74
- & SecretKey :: from_slice ( & nodes[ 1 ] . keys_manager . get_secure_random_bytes ( ) ) . unwrap ( ) ) ;
78
+ let random_pk = PublicKey :: from_secret_key (
79
+ & nodes[ 0 ] . node . secp_ctx ,
80
+ & SecretKey :: from_slice ( & nodes[ 1 ] . keys_manager . get_secure_random_bytes ( ) ) . unwrap ( ) ,
81
+ ) ;
75
82
nodes[ 1 ] . node . peer_connected ( random_pk, init_msg, true ) . unwrap ( ) ;
76
83
77
84
nodes[ 1 ] . node . handle_open_channel ( random_pk, & open_channel_msg) ;
78
85
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
79
86
match events[ 0 ] {
80
87
Event :: OpenChannelRequest { temporary_channel_id, .. } => {
81
- nodes[ 1 ] . node . accept_inbound_channel ( & temporary_channel_id, & random_pk, 23 , None ) . unwrap ( ) ;
82
- }
88
+ nodes[ 1 ]
89
+ . node
90
+ . accept_inbound_channel ( & temporary_channel_id, & random_pk, 23 , None )
91
+ . unwrap ( ) ;
92
+ } ,
83
93
_ => panic ! ( "Unexpected event" ) ,
84
94
}
85
95
get_event_msg ! ( nodes[ 1 ] , MessageSendEvent :: SendAcceptChannel , random_pk) ;
86
- open_channel_msg. common_fields . temporary_channel_id = ChannelId :: temporary_from_entropy_source ( & nodes[ 0 ] . keys_manager ) ;
96
+ open_channel_msg. common_fields . temporary_channel_id =
97
+ ChannelId :: temporary_from_entropy_source ( & nodes[ 0 ] . keys_manager ) ;
87
98
}
88
99
89
100
// If we try to accept a channel from another peer non-0conf it will fail.
90
- let last_random_pk = PublicKey :: from_secret_key ( & nodes[ 0 ] . node . secp_ctx ,
91
- & SecretKey :: from_slice ( & nodes[ 1 ] . keys_manager . get_secure_random_bytes ( ) ) . unwrap ( ) ) ;
101
+ let last_random_pk = PublicKey :: from_secret_key (
102
+ & nodes[ 0 ] . node . secp_ctx ,
103
+ & SecretKey :: from_slice ( & nodes[ 1 ] . keys_manager . get_secure_random_bytes ( ) ) . unwrap ( ) ,
104
+ ) ;
92
105
nodes[ 1 ] . node . peer_connected ( last_random_pk, init_msg, true ) . unwrap ( ) ;
93
106
nodes[ 1 ] . node . handle_open_channel ( last_random_pk, & open_channel_msg) ;
94
107
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
95
108
match events[ 0 ] {
96
109
Event :: OpenChannelRequest { temporary_channel_id, .. } => {
97
- match nodes[ 1 ] . node . accept_inbound_channel ( & temporary_channel_id, & last_random_pk, 23 , None ) {
98
- Err ( APIError :: APIMisuseError { err } ) =>
99
- assert_eq ! ( err, "Too many peers with unfunded channels, refusing to accept new ones" ) ,
110
+ match nodes[ 1 ] . node . accept_inbound_channel (
111
+ & temporary_channel_id,
112
+ & last_random_pk,
113
+ 23 ,
114
+ None ,
115
+ ) {
116
+ Err ( APIError :: APIMisuseError { err } ) => assert_eq ! (
117
+ err,
118
+ "Too many peers with unfunded channels, refusing to accept new ones"
119
+ ) ,
100
120
_ => panic ! ( ) ,
101
121
}
102
- }
122
+ } ,
103
123
_ => panic ! ( "Unexpected event" ) ,
104
124
}
105
- assert_eq ! ( get_err_msg( & nodes[ 1 ] , & last_random_pk) . channel_id,
106
- open_channel_msg. common_fields. temporary_channel_id) ;
125
+ assert_eq ! (
126
+ get_err_msg( & nodes[ 1 ] , & last_random_pk) . channel_id,
127
+ open_channel_msg. common_fields. temporary_channel_id
128
+ ) ;
107
129
108
130
// ...however if we accept the same channel 0conf it should work just fine.
109
131
nodes[ 1 ] . node . handle_open_channel ( last_random_pk, & open_channel_msg) ;
110
132
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
111
133
match events[ 0 ] {
112
134
Event :: OpenChannelRequest { temporary_channel_id, .. } => {
113
- nodes[ 1 ] . node . accept_inbound_channel_from_trusted_peer_0conf ( & temporary_channel_id, & last_random_pk, 23 , None ) . unwrap ( ) ;
114
- }
135
+ nodes[ 1 ]
136
+ . node
137
+ . accept_inbound_channel_from_trusted_peer_0conf (
138
+ & temporary_channel_id,
139
+ & last_random_pk,
140
+ 23 ,
141
+ None ,
142
+ )
143
+ . unwrap ( ) ;
144
+ } ,
115
145
_ => panic ! ( "Unexpected event" ) ,
116
146
}
117
147
get_event_msg ! ( nodes[ 1 ] , MessageSendEvent :: SendAcceptChannel , last_random_pk) ;
@@ -157,17 +187,19 @@ fn test_inbound_zero_fee_commitments_manual_acceptance() {
157
187
do_test_manual_inbound_accept_with_override ( zero_fee_cfg, None ) ;
158
188
}
159
189
160
- #[ rustfmt:: skip]
161
- fn do_test_manual_inbound_accept_with_override ( start_cfg : UserConfig ,
162
- config_overrides : Option < ChannelConfigOverrides > ) -> AcceptChannel {
163
-
190
+ fn do_test_manual_inbound_accept_with_override (
191
+ start_cfg : UserConfig , config_overrides : Option < ChannelConfigOverrides > ,
192
+ ) -> AcceptChannel {
164
193
let mut mannual_accept_cfg = start_cfg. clone ( ) ;
165
194
mannual_accept_cfg. manually_accept_inbound_channels = true ;
166
195
167
196
let chanmon_cfgs = create_chanmon_cfgs ( 3 ) ;
168
197
let node_cfgs = create_node_cfgs ( 3 , & chanmon_cfgs) ;
169
- let node_chanmgrs = create_node_chanmgrs ( 3 , & node_cfgs,
170
- & [ Some ( start_cfg. clone ( ) ) , Some ( start_cfg. clone ( ) ) , Some ( mannual_accept_cfg. clone ( ) ) ] ) ;
198
+ let node_chanmgrs = create_node_chanmgrs (
199
+ 3 ,
200
+ & node_cfgs,
201
+ & [ Some ( start_cfg. clone ( ) ) , Some ( start_cfg. clone ( ) ) , Some ( mannual_accept_cfg. clone ( ) ) ] ,
202
+ ) ;
171
203
let nodes = create_network ( 3 , & node_cfgs, & node_chanmgrs) ;
172
204
173
205
let node_a = nodes[ 0 ] . node . get_our_node_id ( ) ;
@@ -182,19 +214,22 @@ fn do_test_manual_inbound_accept_with_override(start_cfg: UserConfig,
182
214
MessageSendEvent :: HandleError { node_id, action } => {
183
215
assert_eq ! ( * node_id, node_a) ;
184
216
match action {
185
- ErrorAction :: SendErrorMessage { msg } =>
186
- assert_eq ! ( msg. data, "No channels with anchor outputs accepted" . to_owned( ) ) ,
217
+ ErrorAction :: SendErrorMessage { msg } => {
218
+ assert_eq ! ( msg. data, "No channels with anchor outputs accepted" . to_owned( ) )
219
+ } ,
187
220
_ => panic ! ( "Unexpected error action" ) ,
188
221
}
189
- }
222
+ } ,
190
223
_ => panic ! ( "Unexpected event" ) ,
191
224
}
192
225
193
226
nodes[ 2 ] . node . handle_open_channel ( node_a, & open_channel_msg) ;
194
227
let events = nodes[ 2 ] . node . get_and_clear_pending_events ( ) ;
195
228
match events[ 0 ] {
196
- Event :: OpenChannelRequest { temporary_channel_id, .. } =>
197
- nodes[ 2 ] . node . accept_inbound_channel ( & temporary_channel_id, & node_a, 23 , config_overrides) . unwrap ( ) ,
229
+ Event :: OpenChannelRequest { temporary_channel_id, .. } => nodes[ 2 ]
230
+ . node
231
+ . accept_inbound_channel ( & temporary_channel_id, & node_a, 23 , config_overrides)
232
+ . unwrap ( ) ,
198
233
_ => panic ! ( "Unexpected event" ) ,
199
234
}
200
235
get_event_msg ! ( nodes[ 2 ] , MessageSendEvent :: SendAcceptChannel , node_a)
@@ -284,12 +319,14 @@ fn test_zero_fee_commitments_downgrade_to_static_remote() {
284
319
do_test_channel_type_downgrade ( initiator_cfg, receiver_cfg, start_type, vec ! [ end_type] ) ;
285
320
}
286
321
287
- #[ rustfmt:: skip]
288
- fn do_test_channel_type_downgrade ( initiator_cfg : UserConfig , acceptor_cfg : UserConfig ,
289
- start_type : ChannelTypeFeatures , downgrade_types : Vec < ChannelTypeFeatures > ) {
322
+ fn do_test_channel_type_downgrade (
323
+ initiator_cfg : UserConfig , acceptor_cfg : UserConfig , start_type : ChannelTypeFeatures ,
324
+ downgrade_types : Vec < ChannelTypeFeatures > ,
325
+ ) {
290
326
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
291
327
let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
292
- let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( initiator_cfg) , Some ( acceptor_cfg) ] ) ;
328
+ let node_chanmgrs =
329
+ create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( initiator_cfg) , Some ( acceptor_cfg) ] ) ;
293
330
let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
294
331
let error_message = "Channel force-closed" ;
295
332
@@ -304,8 +341,15 @@ fn do_test_channel_type_downgrade(initiator_cfg: UserConfig, acceptor_cfg: UserC
304
341
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
305
342
match events[ 0 ] {
306
343
Event :: OpenChannelRequest { temporary_channel_id, .. } => {
307
- nodes[ 1 ] . node . force_close_broadcasting_latest_txn ( & temporary_channel_id, & node_a, error_message. to_string ( ) ) . unwrap ( ) ;
308
- }
344
+ nodes[ 1 ]
345
+ . node
346
+ . force_close_broadcasting_latest_txn (
347
+ & temporary_channel_id,
348
+ & node_a,
349
+ error_message. to_string ( ) ,
350
+ )
351
+ . unwrap ( ) ;
352
+ } ,
309
353
_ => panic ! ( "Unexpected event" ) ,
310
354
}
311
355
@@ -323,7 +367,6 @@ fn do_test_channel_type_downgrade(initiator_cfg: UserConfig, acceptor_cfg: UserC
323
367
}
324
368
325
369
#[ test]
326
- #[ rustfmt:: skip]
327
370
fn test_no_channel_downgrade ( ) {
328
371
// Tests that the local node will not retry when a `option_static_remote` channel is
329
372
// rejected by a peer that advertises support for the feature.
@@ -334,7 +377,8 @@ fn test_no_channel_downgrade() {
334
377
335
378
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
336
379
let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
337
- let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( initiator_cfg) , Some ( receiver_cfg) ] ) ;
380
+ let node_chanmgrs =
381
+ create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( initiator_cfg) , Some ( receiver_cfg) ] ) ;
338
382
let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
339
383
let error_message = "Channel force-closed" ;
340
384
@@ -350,8 +394,15 @@ fn test_no_channel_downgrade() {
350
394
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
351
395
match events[ 0 ] {
352
396
Event :: OpenChannelRequest { temporary_channel_id, .. } => {
353
- nodes[ 1 ] . node . force_close_broadcasting_latest_txn ( & temporary_channel_id, & node_a, error_message. to_string ( ) ) . unwrap ( ) ;
354
- }
397
+ nodes[ 1 ]
398
+ . node
399
+ . force_close_broadcasting_latest_txn (
400
+ & temporary_channel_id,
401
+ & node_a,
402
+ error_message. to_string ( ) ,
403
+ )
404
+ . unwrap ( ) ;
405
+ } ,
355
406
_ => panic ! ( "Unexpected event" ) ,
356
407
}
357
408
@@ -361,5 +412,8 @@ fn test_no_channel_downgrade() {
361
412
// Since nodes[0] could not retry the channel with a different type, it should close it.
362
413
let chan_closed_events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
363
414
assert_eq ! ( chan_closed_events. len( ) , 1 ) ;
364
- if let Event :: ChannelClosed { .. } = chan_closed_events[ 0 ] { } else { panic ! ( ) ; }
415
+ if let Event :: ChannelClosed { .. } = chan_closed_events[ 0 ] {
416
+ } else {
417
+ panic ! ( ) ;
418
+ }
365
419
}
0 commit comments