@@ -6178,12 +6178,14 @@ where
61786178 fn internal_open_channel(&self, counterparty_node_id: &PublicKey, msg: &msgs::OpenChannel) -> Result<(), MsgHandleErrInternal> {
61796179 // Note that the ChannelManager is NOT re-persisted on disk after this, so any changes are
61806180 // 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()));
61836184 }
61846185
61856186 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()));
61876189 }
61886190
61896191 // Get the number of peers with channels, but without funded ones. We don't care too much
@@ -6196,7 +6198,9 @@ where
61966198 let peer_state_mutex = per_peer_state.get(counterparty_node_id)
61976199 .ok_or_else(|| {
61986200 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())
62006204 })?;
62016205 let mut peer_state_lock = peer_state_mutex.lock().unwrap();
62026206 let peer_state = &mut *peer_state_lock;
@@ -6210,34 +6214,36 @@ where
62106214 {
62116215 return Err(MsgHandleErrInternal::send_err_msg_no_close(
62126216 "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()));
62146218 }
62156219
62166220 let best_block_height = self.best_block.read().unwrap().height();
62176221 if Self::unfunded_channel_count(peer_state, best_block_height) >= MAX_UNFUNDED_CHANS_PER_PEER {
62186222 return Err(MsgHandleErrInternal::send_err_msg_no_close(
62196223 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()));
62216225 }
62226226
6223- let channel_id = msg.temporary_channel_id;
6227+ let channel_id = msg.common_fields. temporary_channel_id;
62246228 let channel_exists = peer_state.has_channel(&channel_id);
62256229 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()));
62276233 }
62286234
62296235 // If we're doing manual acceptance checks on the channel, then defer creation until we're sure we want to accept.
62306236 if self.default_configuration.manually_accept_inbound_channels {
62316237 let channel_type = channel::channel_type_from_open_channel(
62326238 &msg, &peer_state.latest_features, &self.channel_type_features()
62336239 ).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)
62356241 )?;
62366242 let mut pending_events = self.pending_events.lock().unwrap();
62376243 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(),
62396245 counterparty_node_id: counterparty_node_id.clone(),
6240- funding_satoshis: msg.funding_satoshis,
6246+ funding_satoshis: msg.common_fields. funding_satoshis,
62416247 push_msat: msg.push_msat,
62426248 channel_type,
62436249 }, None));
@@ -6257,17 +6263,21 @@ where
62576263 &self.default_configuration, best_block_height, &self.logger, /*is_0conf=*/false)
62586264 {
62596265 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));
62616267 },
62626268 Ok(res) => res
62636269 };
62646270
62656271 let channel_type = channel.context.get_channel_type();
62666272 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()));
62686276 }
62696277 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()));
62716281 }
62726282
62736283 let outbound_scid_alias = self.create_and_insert_outbound_scid_alias();
@@ -8699,7 +8709,7 @@ where
86998709 fn handle_open_channel_v2(&self, counterparty_node_id: &PublicKey, msg: &msgs::OpenChannelV2) {
87008710 let _: Result<(), _> = handle_error!(self, Err(MsgHandleErrInternal::send_err_msg_no_close(
87018711 "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);
87038713 }
87048714
87058715 fn handle_accept_channel(&self, counterparty_node_id: &PublicKey, msg: &msgs::AcceptChannel) {
@@ -11993,14 +12003,15 @@ mod tests {
1199312003 check_added_monitors!(nodes[0], 1);
1199412004 expect_channel_pending_event(&nodes[0], &nodes[1].node.get_our_node_id());
1199512005 }
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);
1199712007 }
1199812008
1199912009 // 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);
1200112012 nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
1200212013 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);
1200412015
1200512016 // Further, because all of our channels with nodes[0] are inbound, and none of them funded,
1200612017 // it doesn't count as a "protected" peer, i.e. it counts towards the MAX_NO_CHANNEL_PEERS
@@ -12048,11 +12059,11 @@ mod tests {
1204812059 for i in 0..super::MAX_UNFUNDED_CHANNEL_PEERS - 1 {
1204912060 nodes[1].node.handle_open_channel(&peer_pks[i], &open_channel_msg);
1205012061 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);
1205212063 }
1205312064 nodes[1].node.handle_open_channel(&last_random_pk, &open_channel_msg);
1205412065 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);
1205612067
1205712068 // Of course, however, outbound channels are always allowed
1205812069 nodes[1].node.create_channel(last_random_pk, 100_000, 0, 42, None, None).unwrap();
@@ -12088,14 +12099,14 @@ mod tests {
1208812099 for _ in 0..super::MAX_UNFUNDED_CHANS_PER_PEER {
1208912100 nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
1209012101 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);
1209212103 }
1209312104
1209412105 // Once we have MAX_UNFUNDED_CHANS_PER_PEER unfunded channels, new inbound channels will be
1209512106 // rejected.
1209612107 nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
1209712108 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);
1209912110
1210012111 // but we can still open an outbound channel.
1210112112 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 {
1210412115 // but even with such an outbound channel, additional inbound channels will still fail.
1210512116 nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
1210612117 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);
1210812119 }
1210912120
1211012121 #[test]
@@ -12140,7 +12151,7 @@ mod tests {
1214012151 _ => panic!("Unexpected event"),
1214112152 }
1214212153 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);
1214412155 }
1214512156
1214612157 // If we try to accept a channel from another peer non-0conf it will fail.
@@ -12162,7 +12173,7 @@ mod tests {
1216212173 _ => panic!("Unexpected event"),
1216312174 }
1216412175 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);
1216612177
1216712178 // ...however if we accept the same channel 0conf it should work just fine.
1216812179 nodes[1].node.handle_open_channel(&last_random_pk, &open_channel_msg);
@@ -12307,7 +12318,7 @@ mod tests {
1230712318
1230812319 nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), 100_000, 0, 0, None, None).unwrap();
1230912320 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());
1231112322
1231212323 nodes[1].node.handle_open_channel(&nodes[0].node.get_our_node_id(), &open_channel_msg);
1231312324 let events = nodes[1].node.get_and_clear_pending_events();
@@ -12322,7 +12333,7 @@ mod tests {
1232212333 nodes[0].node.handle_error(&nodes[1].node.get_our_node_id(), &error_msg);
1232312334
1232412335 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());
1232612337
1232712338 // Since nodes[1] should not have accepted the channel, it should
1232812339 // not have generated any events.
0 commit comments