Skip to content

Commit e75b405

Browse files
format channelmanager tests
1 parent 8eda436 commit e75b405

File tree

3 files changed

+1127
-331
lines changed

3 files changed

+1127
-331
lines changed

lightning/src/ln/anchor_channel_configuration_tests.rs

Lines changed: 135 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,23 @@ fn test_inbound_anchors_manual_acceptance() {
1818

1919
let chanmon_cfgs = create_chanmon_cfgs(3);
2020
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);
2327
let nodes = create_network(3, &node_cfgs, &node_chanmgrs);
2428

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+
);
2738

2839
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
2940
assert!(nodes[1].node.get_and_clear_pending_events().is_empty());
@@ -32,19 +43,22 @@ fn test_inbound_anchors_manual_acceptance() {
3243
MessageSendEvent::HandleError { node_id, action } => {
3344
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
3445
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+
},
3749
_ => panic!("Unexpected error action"),
3850
}
39-
}
51+
},
4052
_ => panic!("Unexpected event"),
4153
}
4254

4355
nodes[2].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
4456
let events = nodes[2].node.get_and_clear_pending_events();
4557
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(),
4862
_ => panic!("Unexpected event"),
4963
}
5064
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() {
6074
let mut anchors_config = test_default_channel_config();
6175
anchors_config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = true;
6276
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);
6479
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
6580

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());
6996

7097
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
7198
let events = nodes[1].node.get_and_clear_pending_events();
7299
match events[0] {
73100
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+
},
76109
_ => panic!("Unexpected event"),
77110
}
78111

79112
let error_msg = get_err_msg(&nodes[1], &nodes[0].node.get_our_node_id());
80113
nodes[0].node.handle_error(&nodes[1].node.get_our_node_id(), &error_msg);
81114

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());
84125

85126
// Since nodes[1] should not have accepted the channel, it should
86127
// not have generated any events.
@@ -97,30 +138,64 @@ fn test_update_channel_config() {
97138
let _ = create_announced_chan_between_nodes(&nodes, 0, 1);
98139
let channel = &nodes[0].node.list_channels()[0];
99140

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();
101149
let events = nodes[0].node.get_and_clear_pending_msg_events();
102150
assert_eq!(events.len(), 0);
103151

104152
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+
);
107165
let events = nodes[0].node.get_and_clear_pending_msg_events();
108166
assert_eq!(events.len(), 1);
109167
match &events[0] {
110168
MessageSendEvent::BroadcastChannelUpdate { .. } => {},
111169
_ => panic!("expected BroadcastChannelUpdate event"),
112170
}
113171

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();
115180
let events = nodes[0].node.get_and_clear_pending_msg_events();
116181
assert_eq!(events.len(), 0);
117182

118183
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+
);
124199
let events = nodes[0].node.get_and_clear_pending_msg_events();
125200
assert_eq!(events.len(), 1);
126201
match &events[0] {
@@ -129,12 +204,25 @@ fn test_update_channel_config() {
129204
}
130205

131206
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+
);
138226
let events = nodes[0].node.get_and_clear_pending_msg_events();
139227
assert_eq!(events.len(), 1);
140228
match &events[0] {
@@ -145,19 +233,25 @@ fn test_update_channel_config() {
145233
// If we provide a channel_id not associated with the peer, we should get an error and no updates
146234
// should be applied to ensure update atomicity as specified in the API docs.
147235
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;
149238
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 {
153244
forwarding_fee_proportional_millionths: Some(new_fee),
154245
..Default::default()
155-
}),
156-
Err(APIError::ChannelUnavailable { err: _ }),
157-
)
158-
);
246+
}
247+
),
248+
Err(APIError::ChannelUnavailable { err: _ }),
249+
));
159250
// 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+
);
161255
let events = nodes[0].node.get_and_clear_pending_msg_events();
162256
assert_eq!(events.len(), 0);
163257
}

0 commit comments

Comments
 (0)