@@ -6178,12 +6178,14 @@ where
6178
6178
fn internal_open_channel(&self, counterparty_node_id: &PublicKey, msg: &msgs::OpenChannel) -> Result<(), MsgHandleErrInternal> {
6179
6179
// Note that the ChannelManager is NOT re-persisted on disk after this, so any changes are
6180
6180
// likely to be lost on restart!
6181
- if msg.chain_hash != self.chain_hash {
6182
- return Err(MsgHandleErrInternal::send_err_msg_no_close("Unknown genesis block hash".to_owned(), msg.temporary_channel_id.clone()));
6181
+ if msg.common_fields.chain_hash != self.chain_hash {
6182
+ return Err(MsgHandleErrInternal::send_err_msg_no_close("Unknown genesis block hash".to_owned(),
6183
+ msg.common_fields.temporary_channel_id.clone()));
6183
6184
}
6184
6185
6185
6186
if !self.default_configuration.accept_inbound_channels {
6186
- return Err(MsgHandleErrInternal::send_err_msg_no_close("No inbound channels accepted".to_owned(), msg.temporary_channel_id.clone()));
6187
+ return Err(MsgHandleErrInternal::send_err_msg_no_close("No inbound channels accepted".to_owned(),
6188
+ msg.common_fields.temporary_channel_id.clone()));
6187
6189
}
6188
6190
6189
6191
// Get the number of peers with channels, but without funded ones. We don't care too much
@@ -6196,7 +6198,9 @@ where
6196
6198
let peer_state_mutex = per_peer_state.get(counterparty_node_id)
6197
6199
.ok_or_else(|| {
6198
6200
debug_assert!(false);
6199
- MsgHandleErrInternal::send_err_msg_no_close(format!("Can't find a peer matching the passed counterparty node_id {}", counterparty_node_id), msg.temporary_channel_id.clone())
6201
+ MsgHandleErrInternal::send_err_msg_no_close(
6202
+ format!("Can't find a peer matching the passed counterparty node_id {}", counterparty_node_id),
6203
+ msg.common_fields.temporary_channel_id.clone())
6200
6204
})?;
6201
6205
let mut peer_state_lock = peer_state_mutex.lock().unwrap();
6202
6206
let peer_state = &mut *peer_state_lock;
@@ -6210,34 +6214,36 @@ where
6210
6214
{
6211
6215
return Err(MsgHandleErrInternal::send_err_msg_no_close(
6212
6216
"Have too many peers with unfunded channels, not accepting new ones".to_owned(),
6213
- msg.temporary_channel_id.clone()));
6217
+ msg.common_fields. temporary_channel_id.clone()));
6214
6218
}
6215
6219
6216
6220
let best_block_height = self.best_block.read().unwrap().height();
6217
6221
if Self::unfunded_channel_count(peer_state, best_block_height) >= MAX_UNFUNDED_CHANS_PER_PEER {
6218
6222
return Err(MsgHandleErrInternal::send_err_msg_no_close(
6219
6223
format!("Refusing more than {} unfunded channels.", MAX_UNFUNDED_CHANS_PER_PEER),
6220
- msg.temporary_channel_id.clone()));
6224
+ msg.common_fields. temporary_channel_id.clone()));
6221
6225
}
6222
6226
6223
- let channel_id = msg.temporary_channel_id;
6227
+ let channel_id = msg.common_fields. temporary_channel_id;
6224
6228
let channel_exists = peer_state.has_channel(&channel_id);
6225
6229
if channel_exists {
6226
- return Err(MsgHandleErrInternal::send_err_msg_no_close("temporary_channel_id collision for the same peer!".to_owned(), msg.temporary_channel_id.clone()));
6230
+ return Err(MsgHandleErrInternal::send_err_msg_no_close(
6231
+ "temporary_channel_id collision for the same peer!".to_owned(),
6232
+ msg.common_fields.temporary_channel_id.clone()));
6227
6233
}
6228
6234
6229
6235
// If we're doing manual acceptance checks on the channel, then defer creation until we're sure we want to accept.
6230
6236
if self.default_configuration.manually_accept_inbound_channels {
6231
6237
let channel_type = channel::channel_type_from_open_channel(
6232
6238
&msg, &peer_state.latest_features, &self.channel_type_features()
6233
6239
).map_err(|e|
6234
- MsgHandleErrInternal::from_chan_no_close(e, msg.temporary_channel_id)
6240
+ MsgHandleErrInternal::from_chan_no_close(e, msg.common_fields. temporary_channel_id)
6235
6241
)?;
6236
6242
let mut pending_events = self.pending_events.lock().unwrap();
6237
6243
pending_events.push_back((events::Event::OpenChannelRequest {
6238
- temporary_channel_id: msg.temporary_channel_id.clone(),
6244
+ temporary_channel_id: msg.common_fields. temporary_channel_id.clone(),
6239
6245
counterparty_node_id: counterparty_node_id.clone(),
6240
- funding_satoshis: msg.funding_satoshis,
6246
+ funding_satoshis: msg.common_fields. funding_satoshis,
6241
6247
push_msat: msg.push_msat,
6242
6248
channel_type,
6243
6249
}, None));
@@ -6257,17 +6263,21 @@ where
6257
6263
&self.default_configuration, best_block_height, &self.logger, /*is_0conf=*/false)
6258
6264
{
6259
6265
Err(e) => {
6260
- return Err(MsgHandleErrInternal::from_chan_no_close(e, msg.temporary_channel_id));
6266
+ return Err(MsgHandleErrInternal::from_chan_no_close(e, msg.common_fields. temporary_channel_id));
6261
6267
},
6262
6268
Ok(res) => res
6263
6269
};
6264
6270
6265
6271
let channel_type = channel.context.get_channel_type();
6266
6272
if channel_type.requires_zero_conf() {
6267
- return Err(MsgHandleErrInternal::send_err_msg_no_close("No zero confirmation channels accepted".to_owned(), msg.temporary_channel_id.clone()));
6273
+ return Err(MsgHandleErrInternal::send_err_msg_no_close(
6274
+ "No zero confirmation channels accepted".to_owned(),
6275
+ msg.common_fields.temporary_channel_id.clone()));
6268
6276
}
6269
6277
if channel_type.requires_anchors_zero_fee_htlc_tx() {
6270
- return Err(MsgHandleErrInternal::send_err_msg_no_close("No channels with anchor outputs accepted".to_owned(), msg.temporary_channel_id.clone()));
6278
+ return Err(MsgHandleErrInternal::send_err_msg_no_close(
6279
+ "No channels with anchor outputs accepted".to_owned(),
6280
+ msg.common_fields.temporary_channel_id.clone()));
6271
6281
}
6272
6282
6273
6283
let outbound_scid_alias = self.create_and_insert_outbound_scid_alias();
@@ -8699,7 +8709,7 @@ where
8699
8709
fn handle_open_channel_v2(&self, counterparty_node_id: &PublicKey, msg: &msgs::OpenChannelV2) {
8700
8710
let _: Result<(), _> = handle_error!(self, Err(MsgHandleErrInternal::send_err_msg_no_close(
8701
8711
"Dual-funded channels not supported".to_owned(),
8702
- msg.temporary_channel_id.clone())), *counterparty_node_id);
8712
+ msg.common_fields. temporary_channel_id.clone())), *counterparty_node_id);
8703
8713
}
8704
8714
8705
8715
fn handle_accept_channel(&self, counterparty_node_id: &PublicKey, msg: &msgs::AcceptChannel) {
@@ -11993,14 +12003,15 @@ mod tests {
11993
12003
check_added_monitors!(nodes[0], 1);
11994
12004
expect_channel_pending_event(&nodes[0], &nodes[1].node.get_our_node_id());
11995
12005
}
11996
- open_channel_msg.temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
12006
+ open_channel_msg.common_fields. temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
11997
12007
}
11998
12008
11999
12009
// A MAX_UNFUNDED_CHANS_PER_PEER + 1 channel will be summarily rejected
12000
- open_channel_msg.temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
12010
+ open_channel_msg.common_fields.temporary_channel_id = ChannelId::temporary_from_entropy_source(
12011
+ &nodes[0].keys_manager);
12001
12012
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
12002
12013
assert_eq!(get_err_msg(&nodes[1], &nodes[0].node.get_our_node_id()).channel_id,
12003
- open_channel_msg.temporary_channel_id);
12014
+ open_channel_msg.common_fields. temporary_channel_id);
12004
12015
12005
12016
// Further, because all of our channels with nodes[0] are inbound, and none of them funded,
12006
12017
// it doesn't count as a "protected" peer, i.e. it counts towards the MAX_NO_CHANNEL_PEERS
@@ -12048,11 +12059,11 @@ mod tests {
12048
12059
for i in 0..super::MAX_UNFUNDED_CHANNEL_PEERS - 1 {
12049
12060
nodes[1].node.handle_open_channel(&peer_pks[i], &open_channel_msg);
12050
12061
get_event_msg!(nodes[1], MessageSendEvent::SendAcceptChannel, peer_pks[i]);
12051
- open_channel_msg.temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
12062
+ open_channel_msg.common_fields. temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
12052
12063
}
12053
12064
nodes[1].node.handle_open_channel(&last_random_pk, &open_channel_msg);
12054
12065
assert_eq!(get_err_msg(&nodes[1], &last_random_pk).channel_id,
12055
- open_channel_msg.temporary_channel_id);
12066
+ open_channel_msg.common_fields. temporary_channel_id);
12056
12067
12057
12068
// Of course, however, outbound channels are always allowed
12058
12069
nodes[1].node.create_channel(last_random_pk, 100_000, 0, 42, None, None).unwrap();
@@ -12088,14 +12099,14 @@ mod tests {
12088
12099
for _ in 0..super::MAX_UNFUNDED_CHANS_PER_PEER {
12089
12100
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
12090
12101
get_event_msg!(nodes[1], MessageSendEvent::SendAcceptChannel, nodes[0].node.get_our_node_id());
12091
- open_channel_msg.temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
12102
+ open_channel_msg.common_fields. temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
12092
12103
}
12093
12104
12094
12105
// Once we have MAX_UNFUNDED_CHANS_PER_PEER unfunded channels, new inbound channels will be
12095
12106
// rejected.
12096
12107
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
12097
12108
assert_eq!(get_err_msg(&nodes[1], &nodes[0].node.get_our_node_id()).channel_id,
12098
- open_channel_msg.temporary_channel_id);
12109
+ open_channel_msg.common_fields. temporary_channel_id);
12099
12110
12100
12111
// but we can still open an outbound channel.
12101
12112
nodes[1].node.create_channel(nodes[0].node.get_our_node_id(), 100_000, 0, 42, None, None).unwrap();
@@ -12104,7 +12115,7 @@ mod tests {
12104
12115
// but even with such an outbound channel, additional inbound channels will still fail.
12105
12116
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
12106
12117
assert_eq!(get_err_msg(&nodes[1], &nodes[0].node.get_our_node_id()).channel_id,
12107
- open_channel_msg.temporary_channel_id);
12118
+ open_channel_msg.common_fields. temporary_channel_id);
12108
12119
}
12109
12120
12110
12121
#[test]
@@ -12140,7 +12151,7 @@ mod tests {
12140
12151
_ => panic!("Unexpected event"),
12141
12152
}
12142
12153
get_event_msg!(nodes[1], MessageSendEvent::SendAcceptChannel, random_pk);
12143
- open_channel_msg.temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
12154
+ open_channel_msg.common_fields. temporary_channel_id = ChannelId::temporary_from_entropy_source(&nodes[0].keys_manager);
12144
12155
}
12145
12156
12146
12157
// If we try to accept a channel from another peer non-0conf it will fail.
@@ -12162,7 +12173,7 @@ mod tests {
12162
12173
_ => panic!("Unexpected event"),
12163
12174
}
12164
12175
assert_eq!(get_err_msg(&nodes[1], &last_random_pk).channel_id,
12165
- open_channel_msg.temporary_channel_id);
12176
+ open_channel_msg.common_fields. temporary_channel_id);
12166
12177
12167
12178
// ...however if we accept the same channel 0conf it should work just fine.
12168
12179
nodes[1].node.handle_open_channel(&last_random_pk, &open_channel_msg);
@@ -12307,7 +12318,7 @@ mod tests {
12307
12318
12308
12319
nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), 100_000, 0, 0, None, None).unwrap();
12309
12320
let open_channel_msg = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id());
12310
- assert!(open_channel_msg.channel_type.as_ref().unwrap().supports_anchors_zero_fee_htlc_tx());
12321
+ assert!(open_channel_msg.common_fields. channel_type.as_ref().unwrap().supports_anchors_zero_fee_htlc_tx());
12311
12322
12312
12323
nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
12313
12324
let events = nodes[1].node.get_and_clear_pending_events();
@@ -12322,7 +12333,7 @@ mod tests {
12322
12333
nodes[0].node.handle_error(&nodes[1].node.get_our_node_id(), &error_msg);
12323
12334
12324
12335
let open_channel_msg = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id());
12325
- assert!(!open_channel_msg.channel_type.unwrap().supports_anchors_zero_fee_htlc_tx());
12336
+ assert!(!open_channel_msg.common_fields. channel_type.unwrap().supports_anchors_zero_fee_htlc_tx());
12326
12337
12327
12338
// Since nodes[1] should not have accepted the channel, it should
12328
12339
// not have generated any events.
0 commit comments