@@ -18,12 +18,23 @@ fn test_inbound_anchors_manual_acceptance() {
18
18
19
19
let chanmon_cfgs = create_chanmon_cfgs ( 3 ) ;
20
20
let node_cfgs = create_node_cfgs ( 3 , & chanmon_cfgs) ;
21
- let node_chanmgrs = create_node_chanmgrs ( 3 , & node_cfgs,
22
- & [ Some ( anchors_cfg. clone ( ) ) , Some ( anchors_cfg. clone ( ) ) , Some ( anchors_manual_accept_cfg. clone ( ) ) ] ) ;
21
+ let user_cfgs = [
22
+ Some ( anchors_cfg. clone ( ) ) ,
23
+ Some ( anchors_cfg. clone ( ) ) ,
24
+ Some ( anchors_manual_accept_cfg. clone ( ) ) ,
25
+ ] ;
26
+ let node_chanmgrs = create_node_chanmgrs ( 3 , & node_cfgs, & user_cfgs) ;
23
27
let nodes = create_network ( 3 , & node_cfgs, & node_chanmgrs) ;
24
28
25
- nodes[ 0 ] . node . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 42 , None , None ) . unwrap ( ) ;
26
- let open_channel_msg = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
29
+ nodes[ 0 ]
30
+ . node
31
+ . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 42 , None , None )
32
+ . unwrap ( ) ;
33
+ let open_channel_msg = get_event_msg ! (
34
+ nodes[ 0 ] ,
35
+ MessageSendEvent :: SendOpenChannel ,
36
+ nodes[ 1 ] . node. get_our_node_id( )
37
+ ) ;
27
38
28
39
nodes[ 1 ] . node . handle_open_channel ( & nodes[ 0 ] . node . get_our_node_id ( ) , & open_channel_msg) ;
29
40
assert ! ( nodes[ 1 ] . node. get_and_clear_pending_events( ) . is_empty( ) ) ;
@@ -32,19 +43,22 @@ fn test_inbound_anchors_manual_acceptance() {
32
43
MessageSendEvent :: HandleError { node_id, action } => {
33
44
assert_eq ! ( * node_id, nodes[ 0 ] . node. get_our_node_id( ) ) ;
34
45
match action {
35
- ErrorAction :: SendErrorMessage { msg } =>
36
- assert_eq ! ( msg. data, "No channels with anchor outputs accepted" . to_owned( ) ) ,
46
+ ErrorAction :: SendErrorMessage { msg } => {
47
+ assert_eq ! ( msg. data, "No channels with anchor outputs accepted" . to_owned( ) )
48
+ } ,
37
49
_ => panic ! ( "Unexpected error action" ) ,
38
50
}
39
- }
51
+ } ,
40
52
_ => panic ! ( "Unexpected event" ) ,
41
53
}
42
54
43
55
nodes[ 2 ] . node . handle_open_channel ( & nodes[ 0 ] . node . get_our_node_id ( ) , & open_channel_msg) ;
44
56
let events = nodes[ 2 ] . node . get_and_clear_pending_events ( ) ;
45
57
match events[ 0 ] {
46
- Event :: OpenChannelRequest { temporary_channel_id, .. } =>
47
- nodes[ 2 ] . node . accept_inbound_channel ( & temporary_channel_id, & nodes[ 0 ] . node . get_our_node_id ( ) , 23 ) . unwrap ( ) ,
58
+ Event :: OpenChannelRequest { temporary_channel_id, .. } => nodes[ 2 ]
59
+ . node
60
+ . accept_inbound_channel ( & temporary_channel_id, & nodes[ 0 ] . node . get_our_node_id ( ) , 23 )
61
+ . unwrap ( ) ,
48
62
_ => panic ! ( "Unexpected event" ) ,
49
63
}
50
64
get_event_msg ! ( nodes[ 2 ] , MessageSendEvent :: SendAcceptChannel , nodes[ 0 ] . node. get_our_node_id( ) ) ;
@@ -60,27 +74,54 @@ fn test_anchors_zero_fee_htlc_tx_fallback() {
60
74
let mut anchors_config = test_default_channel_config ( ) ;
61
75
anchors_config. channel_handshake_config . negotiate_anchors_zero_fee_htlc_tx = true ;
62
76
anchors_config. manually_accept_inbound_channels = true ;
63
- let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ Some ( anchors_config. clone ( ) ) , Some ( anchors_config. clone ( ) ) ] ) ;
77
+ let user_cfgs = [ Some ( anchors_config. clone ( ) ) , Some ( anchors_config. clone ( ) ) ] ;
78
+ let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & user_cfgs) ;
64
79
let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
65
80
66
- nodes[ 0 ] . node . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 0 , None , None ) . unwrap ( ) ;
67
- let open_channel_msg = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
68
- assert ! ( open_channel_msg. common_fields. channel_type. as_ref( ) . unwrap( ) . supports_anchors_zero_fee_htlc_tx( ) ) ;
81
+ nodes[ 0 ]
82
+ . node
83
+ . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 100_000 , 0 , 0 , None , None )
84
+ . unwrap ( ) ;
85
+ let open_channel_msg = get_event_msg ! (
86
+ nodes[ 0 ] ,
87
+ MessageSendEvent :: SendOpenChannel ,
88
+ nodes[ 1 ] . node. get_our_node_id( )
89
+ ) ;
90
+ assert ! ( open_channel_msg
91
+ . common_fields
92
+ . channel_type
93
+ . as_ref( )
94
+ . unwrap( )
95
+ . supports_anchors_zero_fee_htlc_tx( ) ) ;
69
96
70
97
nodes[ 1 ] . node . handle_open_channel ( & nodes[ 0 ] . node . get_our_node_id ( ) , & open_channel_msg) ;
71
98
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
72
99
match events[ 0 ] {
73
100
Event :: OpenChannelRequest { temporary_channel_id, .. } => {
74
- nodes[ 1 ] . node . force_close_broadcasting_latest_txn ( & temporary_channel_id, & nodes[ 0 ] . node . get_our_node_id ( ) ) . unwrap ( ) ;
75
- }
101
+ nodes[ 1 ]
102
+ . node
103
+ . force_close_broadcasting_latest_txn (
104
+ & temporary_channel_id,
105
+ & nodes[ 0 ] . node . get_our_node_id ( ) ,
106
+ )
107
+ . unwrap ( ) ;
108
+ } ,
76
109
_ => panic ! ( "Unexpected event" ) ,
77
110
}
78
111
79
112
let error_msg = get_err_msg ( & nodes[ 1 ] , & nodes[ 0 ] . node . get_our_node_id ( ) ) ;
80
113
nodes[ 0 ] . node . handle_error ( & nodes[ 1 ] . node . get_our_node_id ( ) , & error_msg) ;
81
114
82
- let open_channel_msg = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
83
- assert ! ( !open_channel_msg. common_fields. channel_type. unwrap( ) . supports_anchors_zero_fee_htlc_tx( ) ) ;
115
+ let open_channel_msg = get_event_msg ! (
116
+ nodes[ 0 ] ,
117
+ MessageSendEvent :: SendOpenChannel ,
118
+ nodes[ 1 ] . node. get_our_node_id( )
119
+ ) ;
120
+ assert ! ( !open_channel_msg
121
+ . common_fields
122
+ . channel_type
123
+ . unwrap( )
124
+ . supports_anchors_zero_fee_htlc_tx( ) ) ;
84
125
85
126
// Since nodes[1] should not have accepted the channel, it should
86
127
// not have generated any events.
@@ -97,30 +138,64 @@ fn test_update_channel_config() {
97
138
let _ = create_announced_chan_between_nodes ( & nodes, 0 , 1 ) ;
98
139
let channel = & nodes[ 0 ] . node . list_channels ( ) [ 0 ] ;
99
140
100
- nodes[ 0 ] . node . update_channel_config ( & channel. counterparty . node_id , & [ channel. channel_id ] , & user_config. channel_config ) . unwrap ( ) ;
141
+ nodes[ 0 ]
142
+ . node
143
+ . update_channel_config (
144
+ & channel. counterparty . node_id ,
145
+ & [ channel. channel_id ] ,
146
+ & user_config. channel_config ,
147
+ )
148
+ . unwrap ( ) ;
101
149
let events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
102
150
assert_eq ! ( events. len( ) , 0 ) ;
103
151
104
152
user_config. channel_config . forwarding_fee_base_msat += 10 ;
105
- nodes[ 0 ] . node . update_channel_config ( & channel. counterparty . node_id , & [ channel. channel_id ] , & user_config. channel_config ) . unwrap ( ) ;
106
- assert_eq ! ( nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . forwarding_fee_base_msat, user_config. channel_config. forwarding_fee_base_msat) ;
153
+ nodes[ 0 ]
154
+ . node
155
+ . update_channel_config (
156
+ & channel. counterparty . node_id ,
157
+ & [ channel. channel_id ] ,
158
+ & user_config. channel_config ,
159
+ )
160
+ . unwrap ( ) ;
161
+ assert_eq ! (
162
+ nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . forwarding_fee_base_msat,
163
+ user_config. channel_config. forwarding_fee_base_msat
164
+ ) ;
107
165
let events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
108
166
assert_eq ! ( events. len( ) , 1 ) ;
109
167
match & events[ 0 ] {
110
168
MessageSendEvent :: BroadcastChannelUpdate { .. } => { } ,
111
169
_ => panic ! ( "expected BroadcastChannelUpdate event" ) ,
112
170
}
113
171
114
- nodes[ 0 ] . node . update_partial_channel_config ( & channel. counterparty . node_id , & [ channel. channel_id ] , & ChannelConfigUpdate :: default ( ) ) . unwrap ( ) ;
172
+ nodes[ 0 ]
173
+ . node
174
+ . update_partial_channel_config (
175
+ & channel. counterparty . node_id ,
176
+ & [ channel. channel_id ] ,
177
+ & ChannelConfigUpdate :: default ( ) ,
178
+ )
179
+ . unwrap ( ) ;
115
180
let events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
116
181
assert_eq ! ( events. len( ) , 0 ) ;
117
182
118
183
let new_cltv_expiry_delta = user_config. channel_config . cltv_expiry_delta + 6 ;
119
- nodes[ 0 ] . node . update_partial_channel_config ( & channel. counterparty . node_id , & [ channel. channel_id ] , & ChannelConfigUpdate {
120
- cltv_expiry_delta : Some ( new_cltv_expiry_delta) ,
121
- ..Default :: default ( )
122
- } ) . unwrap ( ) ;
123
- assert_eq ! ( nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . cltv_expiry_delta, new_cltv_expiry_delta) ;
184
+ nodes[ 0 ]
185
+ . node
186
+ . update_partial_channel_config (
187
+ & channel. counterparty . node_id ,
188
+ & [ channel. channel_id ] ,
189
+ & ChannelConfigUpdate {
190
+ cltv_expiry_delta : Some ( new_cltv_expiry_delta) ,
191
+ ..Default :: default ( )
192
+ } ,
193
+ )
194
+ . unwrap ( ) ;
195
+ assert_eq ! (
196
+ nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . cltv_expiry_delta,
197
+ new_cltv_expiry_delta
198
+ ) ;
124
199
let events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
125
200
assert_eq ! ( events. len( ) , 1 ) ;
126
201
match & events[ 0 ] {
@@ -129,12 +204,25 @@ fn test_update_channel_config() {
129
204
}
130
205
131
206
let new_fee = user_config. channel_config . forwarding_fee_proportional_millionths + 100 ;
132
- nodes[ 0 ] . node . update_partial_channel_config ( & channel. counterparty . node_id , & [ channel. channel_id ] , & ChannelConfigUpdate {
133
- forwarding_fee_proportional_millionths : Some ( new_fee) ,
134
- ..Default :: default ( )
135
- } ) . unwrap ( ) ;
136
- assert_eq ! ( nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . cltv_expiry_delta, new_cltv_expiry_delta) ;
137
- assert_eq ! ( nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . forwarding_fee_proportional_millionths, new_fee) ;
207
+ nodes[ 0 ]
208
+ . node
209
+ . update_partial_channel_config (
210
+ & channel. counterparty . node_id ,
211
+ & [ channel. channel_id ] ,
212
+ & ChannelConfigUpdate {
213
+ forwarding_fee_proportional_millionths : Some ( new_fee) ,
214
+ ..Default :: default ( )
215
+ } ,
216
+ )
217
+ . unwrap ( ) ;
218
+ assert_eq ! (
219
+ nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . cltv_expiry_delta,
220
+ new_cltv_expiry_delta
221
+ ) ;
222
+ assert_eq ! (
223
+ nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . forwarding_fee_proportional_millionths,
224
+ new_fee
225
+ ) ;
138
226
let events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
139
227
assert_eq ! ( events. len( ) , 1 ) ;
140
228
match & events[ 0 ] {
@@ -145,19 +233,25 @@ fn test_update_channel_config() {
145
233
// If we provide a channel_id not associated with the peer, we should get an error and no updates
146
234
// should be applied to ensure update atomicity as specified in the API docs.
147
235
let bad_channel_id = ChannelId :: v1_from_funding_txid ( & [ 10 ; 32 ] , 10 ) ;
148
- let current_fee = nodes[ 0 ] . node . list_channels ( ) [ 0 ] . config . unwrap ( ) . forwarding_fee_proportional_millionths ;
236
+ let current_fee =
237
+ nodes[ 0 ] . node . list_channels ( ) [ 0 ] . config . unwrap ( ) . forwarding_fee_proportional_millionths ;
149
238
let new_fee = current_fee + 100 ;
150
- assert ! (
151
- matches!(
152
- nodes[ 0 ] . node. update_partial_channel_config( & channel. counterparty. node_id, & [ channel. channel_id, bad_channel_id] , & ChannelConfigUpdate {
239
+ assert ! ( matches!(
240
+ nodes[ 0 ] . node. update_partial_channel_config(
241
+ & channel. counterparty. node_id,
242
+ & [ channel. channel_id, bad_channel_id] ,
243
+ & ChannelConfigUpdate {
153
244
forwarding_fee_proportional_millionths: Some ( new_fee) ,
154
245
..Default :: default ( )
155
- } ) ,
156
- Err ( APIError :: ChannelUnavailable { err : _ } ) ,
157
- )
158
- ) ;
246
+ }
247
+ ) ,
248
+ Err ( APIError :: ChannelUnavailable { err : _ } ) ,
249
+ ) ) ;
159
250
// Check that the fee hasn't changed for the channel that exists.
160
- assert_eq ! ( nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . forwarding_fee_proportional_millionths, current_fee) ;
251
+ assert_eq ! (
252
+ nodes[ 0 ] . node. list_channels( ) [ 0 ] . config. unwrap( ) . forwarding_fee_proportional_millionths,
253
+ current_fee
254
+ ) ;
161
255
let events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
162
256
assert_eq ! ( events. len( ) , 0 ) ;
163
257
}
0 commit comments