1
- use lightning_types:: features:: ChannelTypeFeatures ;
2
1
use crate :: events:: Event ;
3
- use crate :: util:: config:: { ChannelConfigOverrides , UserConfig , ChannelHandshakeConfigUpdate } ;
4
2
use crate :: ln:: functional_test_utils:: * ;
5
- use crate :: ln:: msgs:: { BaseMessageHandler , ChannelMessageHandler , AcceptChannel , ErrorAction , MessageSendEvent } ;
3
+ use crate :: ln:: msgs:: {
4
+ AcceptChannel , BaseMessageHandler , ChannelMessageHandler , ErrorAction , MessageSendEvent ,
5
+ } ;
6
+ use crate :: util:: config:: { ChannelConfigOverrides , ChannelHandshakeConfigUpdate , UserConfig } ;
7
+ use lightning_types:: features:: ChannelTypeFeatures ;
6
8
7
9
#[ test]
8
10
fn test_inbound_anchors_manual_acceptance ( ) {
@@ -28,8 +30,7 @@ fn test_inbound_anchors_manual_acceptance_overridden() {
28
30
let mut anchors_cfg = test_default_channel_config ( ) ;
29
31
anchors_cfg. channel_handshake_config . negotiate_anchors_zero_fee_htlc_tx = true ;
30
32
31
- let accept_message =
32
- do_test_manual_inbound_accept_with_override ( anchors_cfg, Some ( overrides) ) ;
33
+ let accept_message = do_test_manual_inbound_accept_with_override ( anchors_cfg, Some ( overrides) ) ;
33
34
assert_eq ! ( accept_message. common_fields. max_htlc_value_in_flight_msat, 5_000_000 ) ;
34
35
assert_eq ! ( accept_message. common_fields. htlc_minimum_msat, 1_000 ) ;
35
36
assert_eq ! ( accept_message. common_fields. minimum_depth, 2 ) ;
@@ -45,21 +46,30 @@ fn test_inbound_zero_fee_commitments_manual_acceptance() {
45
46
do_test_manual_inbound_accept_with_override ( zero_fee_cfg, None ) ;
46
47
}
47
48
48
- #[ rustfmt:: skip]
49
- fn do_test_manual_inbound_accept_with_override ( start_cfg : UserConfig ,
50
- config_overrides : Option < ChannelConfigOverrides > ) -> AcceptChannel {
51
-
49
+ fn do_test_manual_inbound_accept_with_override (
50
+ start_cfg : UserConfig , config_overrides : Option < ChannelConfigOverrides > ,
51
+ ) -> AcceptChannel {
52
52
let mut mannual_accept_cfg = start_cfg. clone ( ) ;
53
53
mannual_accept_cfg. manually_accept_inbound_channels = true ;
54
54
55
55
let chanmon_cfgs = create_chanmon_cfgs ( 3 ) ;
56
56
let node_cfgs = create_node_cfgs ( 3 , & chanmon_cfgs) ;
57
- let node_chanmgrs = create_node_chanmgrs ( 3 , & node_cfgs,
58
- & [ Some ( start_cfg. clone ( ) ) , Some ( start_cfg. clone ( ) ) , Some ( mannual_accept_cfg. clone ( ) ) ] ) ;
57
+ let node_chanmgrs = create_node_chanmgrs (
58
+ 3 ,
59
+ & node_cfgs,
60
+ & [ Some ( start_cfg. clone ( ) ) , Some ( start_cfg. clone ( ) ) , Some ( mannual_accept_cfg. clone ( ) ) ] ,
61
+ ) ;
59
62
let nodes = create_network ( 3 , & node_cfgs, & node_chanmgrs) ;
60
63
61
- nodes[ 0 ] . node . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 42 , None , None ) . unwrap ( ) ;
62
- let open_channel_msg = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
64
+ nodes[ 0 ]
65
+ . node
66
+ . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 42 , None , None )
67
+ . unwrap ( ) ;
68
+ let open_channel_msg = get_event_msg ! (
69
+ nodes[ 0 ] ,
70
+ MessageSendEvent :: SendOpenChannel ,
71
+ nodes[ 1 ] . node. get_our_node_id( )
72
+ ) ;
63
73
64
74
nodes[ 1 ] . node . handle_open_channel ( nodes[ 0 ] . node . get_our_node_id ( ) , & open_channel_msg) ;
65
75
assert ! ( nodes[ 1 ] . node. get_and_clear_pending_events( ) . is_empty( ) ) ;
@@ -68,19 +78,27 @@ fn do_test_manual_inbound_accept_with_override(start_cfg: UserConfig,
68
78
MessageSendEvent :: HandleError { node_id, action } => {
69
79
assert_eq ! ( * node_id, nodes[ 0 ] . node. get_our_node_id( ) ) ;
70
80
match action {
71
- ErrorAction :: SendErrorMessage { msg } =>
72
- assert_eq ! ( msg. data, "No channels with anchor outputs accepted" . to_owned( ) ) ,
81
+ ErrorAction :: SendErrorMessage { msg } => {
82
+ assert_eq ! ( msg. data, "No channels with anchor outputs accepted" . to_owned( ) )
83
+ } ,
73
84
_ => panic ! ( "Unexpected error action" ) ,
74
85
}
75
- }
86
+ } ,
76
87
_ => panic ! ( "Unexpected event" ) ,
77
88
}
78
89
79
90
nodes[ 2 ] . node . handle_open_channel ( nodes[ 0 ] . node . get_our_node_id ( ) , & open_channel_msg) ;
80
91
let events = nodes[ 2 ] . node . get_and_clear_pending_events ( ) ;
81
92
match events[ 0 ] {
82
- Event :: OpenChannelRequest { temporary_channel_id, .. } =>
83
- nodes[ 2 ] . node . accept_inbound_channel ( & temporary_channel_id, & nodes[ 0 ] . node . get_our_node_id ( ) , 23 , config_overrides) . unwrap ( ) ,
93
+ Event :: OpenChannelRequest { temporary_channel_id, .. } => nodes[ 2 ]
94
+ . node
95
+ . accept_inbound_channel (
96
+ & temporary_channel_id,
97
+ & nodes[ 0 ] . node . get_our_node_id ( ) ,
98
+ 23 ,
99
+ config_overrides,
100
+ )
101
+ . unwrap ( ) ,
84
102
_ => panic ! ( "Unexpected event" ) ,
85
103
}
86
104
get_event_msg ! ( nodes[ 2 ] , MessageSendEvent :: SendAcceptChannel , nodes[ 0 ] . node. get_our_node_id( ) )
@@ -170,33 +188,53 @@ fn test_zero_fee_commitments_downgrade_to_static_remote() {
170
188
do_test_channel_type_downgrade ( initiator_cfg, receiver_cfg, start_type, vec ! [ end_type] ) ;
171
189
}
172
190
173
- #[ rustfmt:: skip]
174
- fn do_test_channel_type_downgrade ( initiator_cfg : UserConfig , acceptor_cfg : UserConfig ,
175
- start_type : ChannelTypeFeatures , downgrade_types : Vec < ChannelTypeFeatures > ) {
191
+ fn do_test_channel_type_downgrade (
192
+ initiator_cfg : UserConfig , acceptor_cfg : UserConfig , start_type : ChannelTypeFeatures ,
193
+ downgrade_types : Vec < ChannelTypeFeatures > ,
194
+ ) {
176
195
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
177
196
let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
178
- let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( initiator_cfg) , Some ( acceptor_cfg) ] ) ;
197
+ let node_chanmgrs =
198
+ create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( initiator_cfg) , Some ( acceptor_cfg) ] ) ;
179
199
let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
180
200
let error_message = "Channel force-closed" ;
181
201
182
- nodes[ 0 ] . node . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 0 , None , None ) . unwrap ( ) ;
183
- let mut open_channel_msg = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
202
+ nodes[ 0 ]
203
+ . node
204
+ . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 0 , None , None )
205
+ . unwrap ( ) ;
206
+ let mut open_channel_msg = get_event_msg ! (
207
+ nodes[ 0 ] ,
208
+ MessageSendEvent :: SendOpenChannel ,
209
+ nodes[ 1 ] . node. get_our_node_id( )
210
+ ) ;
184
211
assert_eq ! ( open_channel_msg. common_fields. channel_type. as_ref( ) . unwrap( ) , & start_type) ;
185
212
186
213
for downgrade_type in downgrade_types {
187
214
nodes[ 1 ] . node . handle_open_channel ( nodes[ 0 ] . node . get_our_node_id ( ) , & open_channel_msg) ;
188
215
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
189
216
match events[ 0 ] {
190
217
Event :: OpenChannelRequest { temporary_channel_id, .. } => {
191
- nodes[ 1 ] . node . force_close_broadcasting_latest_txn ( & temporary_channel_id, & nodes[ 0 ] . node . get_our_node_id ( ) , error_message. to_string ( ) ) . unwrap ( ) ;
192
- }
218
+ nodes[ 1 ]
219
+ . node
220
+ . force_close_broadcasting_latest_txn (
221
+ & temporary_channel_id,
222
+ & nodes[ 0 ] . node . get_our_node_id ( ) ,
223
+ error_message. to_string ( ) ,
224
+ )
225
+ . unwrap ( ) ;
226
+ } ,
193
227
_ => panic ! ( "Unexpected event" ) ,
194
228
}
195
229
196
230
let error_msg = get_err_msg ( & nodes[ 1 ] , & nodes[ 0 ] . node . get_our_node_id ( ) ) ;
197
231
nodes[ 0 ] . node . handle_error ( nodes[ 1 ] . node . get_our_node_id ( ) , & error_msg) ;
198
232
199
- open_channel_msg = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
233
+ open_channel_msg = get_event_msg ! (
234
+ nodes[ 0 ] ,
235
+ MessageSendEvent :: SendOpenChannel ,
236
+ nodes[ 1 ] . node. get_our_node_id( )
237
+ ) ;
200
238
let channel_type = open_channel_msg. common_fields . channel_type . as_ref ( ) . unwrap ( ) ;
201
239
assert_eq ! ( channel_type, & downgrade_type) ;
202
240
@@ -207,7 +245,6 @@ fn do_test_channel_type_downgrade(initiator_cfg: UserConfig, acceptor_cfg: UserC
207
245
}
208
246
209
247
#[ test]
210
- #[ rustfmt:: skip]
211
248
fn test_no_channel_downgrade ( ) {
212
249
// Tests that the local node will not retry when a `option_static_remote` channel is
213
250
// rejected by a peer that advertises support for the feature.
@@ -218,21 +255,36 @@ fn test_no_channel_downgrade() {
218
255
219
256
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
220
257
let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
221
- let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( initiator_cfg) , Some ( receiver_cfg) ] ) ;
258
+ let node_chanmgrs =
259
+ create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( initiator_cfg) , Some ( receiver_cfg) ] ) ;
222
260
let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
223
261
let error_message = "Channel force-closed" ;
224
262
225
- nodes[ 0 ] . node . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 0 , None , None ) . unwrap ( ) ;
226
- let open_channel_msg = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
263
+ nodes[ 0 ]
264
+ . node
265
+ . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 0 , None , None )
266
+ . unwrap ( ) ;
267
+ let open_channel_msg = get_event_msg ! (
268
+ nodes[ 0 ] ,
269
+ MessageSendEvent :: SendOpenChannel ,
270
+ nodes[ 1 ] . node. get_our_node_id( )
271
+ ) ;
227
272
let start_type = ChannelTypeFeatures :: only_static_remote_key ( ) ;
228
273
assert_eq ! ( open_channel_msg. common_fields. channel_type. as_ref( ) . unwrap( ) , & start_type) ;
229
274
230
275
nodes[ 1 ] . node . handle_open_channel ( nodes[ 0 ] . node . get_our_node_id ( ) , & open_channel_msg) ;
231
276
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
232
277
match events[ 0 ] {
233
278
Event :: OpenChannelRequest { temporary_channel_id, .. } => {
234
- nodes[ 1 ] . node . force_close_broadcasting_latest_txn ( & temporary_channel_id, & nodes[ 0 ] . node . get_our_node_id ( ) , error_message. to_string ( ) ) . unwrap ( ) ;
235
- }
279
+ nodes[ 1 ]
280
+ . node
281
+ . force_close_broadcasting_latest_txn (
282
+ & temporary_channel_id,
283
+ & nodes[ 0 ] . node . get_our_node_id ( ) ,
284
+ error_message. to_string ( ) ,
285
+ )
286
+ . unwrap ( ) ;
287
+ } ,
236
288
_ => panic ! ( "Unexpected event" ) ,
237
289
}
238
290
@@ -242,5 +294,8 @@ fn test_no_channel_downgrade() {
242
294
// Since nodes[0] could not retry the channel with a different type, it should close it.
243
295
let chan_closed_events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
244
296
assert_eq ! ( chan_closed_events. len( ) , 1 ) ;
245
- if let Event :: ChannelClosed { .. } = chan_closed_events[ 0 ] { } else { panic ! ( ) ; }
297
+ if let Event :: ChannelClosed { .. } = chan_closed_events[ 0 ] {
298
+ } else {
299
+ panic ! ( ) ;
300
+ }
246
301
}
0 commit comments