@@ -10063,7 +10063,7 @@ fn test_zero_conf_accept_reject() {
10063
10063
let mut channel_type_features = ChannelTypeFeatures::only_static_remote_key();
10064
10064
channel_type_features.set_zero_conf_required();
10065
10065
10066
- // Check we reject zero conf channels by default
10066
+ // 1. Check we reject zero conf channels by default
10067
10067
let chanmon_cfgs = create_chanmon_cfgs(2);
10068
10068
let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
10069
10069
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
@@ -10076,15 +10076,15 @@ fn test_zero_conf_accept_reject() {
10076
10076
10077
10077
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), InitFeatures::known(), &open_channel_msg);
10078
10078
10079
- let events = nodes[1].node.get_and_clear_pending_msg_events();
10080
- match events [0] {
10079
+ let msg_events = nodes[1].node.get_and_clear_pending_msg_events();
10080
+ match msg_events [0] {
10081
10081
MessageSendEvent::HandleError { action: ErrorAction::SendErrorMessage { ref msg, .. }, .. } => {
10082
10082
assert_eq!(msg.data, "No zero confirmation channels accepted".to_owned());
10083
10083
},
10084
10084
_ => panic!(),
10085
10085
}
10086
10086
10087
- // Check we can manually accept zero conf channels
10087
+ // 2. Check we can manually accept zero conf channels via the right method
10088
10088
let mut manually_accept_conf = UserConfig::default();
10089
10089
manually_accept_conf.manually_accept_inbound_channels = true;
10090
10090
@@ -10094,12 +10094,13 @@ fn test_zero_conf_accept_reject() {
10094
10094
&[None, Some(manually_accept_conf.clone())]);
10095
10095
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
10096
10096
10097
+ // 2.1 First try the non-0conf method to manually accept
10097
10098
nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), 100000, 10001, 42,
10098
10099
Some(manually_accept_conf)).unwrap();
10099
10100
let mut open_channel_msg = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel,
10100
10101
nodes[1].node.get_our_node_id());
10101
10102
10102
- open_channel_msg.channel_type = Some(channel_type_features);
10103
+ open_channel_msg.channel_type = Some(channel_type_features.clone() );
10103
10104
10104
10105
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), InitFeatures::known(),
10105
10106
&open_channel_msg);
@@ -10114,14 +10115,41 @@ fn test_zero_conf_accept_reject() {
10114
10115
// Assert we fail to accept via the non-0conf method
10115
10116
assert!(nodes[1].node.accept_inbound_channel(&temporary_channel_id,
10116
10117
&nodes[0].node.get_our_node_id(), 0).is_err());
10118
+ },
10119
+ _ => panic!(),
10120
+ }
10121
+
10122
+ let msg_events = nodes[1].node.get_and_clear_pending_msg_events();
10123
+ match msg_events[0] {
10124
+ MessageSendEvent::HandleError { action: ErrorAction::SendErrorMessage { ref msg, .. }, .. } => {
10125
+ assert_eq!(msg.data, "No zero confirmation channels accepted".to_owned());
10126
+ },
10127
+ _ => panic!(),
10128
+ }
10129
+
10130
+ // 2.2 Try again with the 0conf method to manually accept
10131
+ nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), 100000, 10001, 42,
10132
+ Some(manually_accept_conf)).unwrap();
10133
+ let mut open_channel_msg = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel,
10134
+ nodes[1].node.get_our_node_id());
10135
+
10136
+ open_channel_msg.channel_type = Some(channel_type_features);
10137
+
10138
+ nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), InitFeatures::known(),
10139
+ &open_channel_msg);
10140
+
10141
+ let events = nodes[1].node.get_and_clear_pending_events();
10142
+
10143
+ match events[0] {
10144
+ Event::OpenChannelRequest { temporary_channel_id, .. } => {
10117
10145
// Assert we can accept via the 0conf method
10118
10146
assert!(nodes[1].node.accept_inbound_channel_from_trusted_peer_0conf(
10119
10147
&temporary_channel_id, &nodes[0].node.get_our_node_id(), 0).is_ok());
10120
10148
},
10121
10149
_ => panic!(),
10122
10150
}
10123
10151
10124
- // Don't handle generated events
10152
+ // Don't handle remaining events
10125
10153
nodes[1].node.get_and_clear_pending_msg_events();
10126
10154
nodes[1].node.get_and_clear_pending_events();
10127
10155
}
0 commit comments