1919
2020use bitcoin::blockdata::block::BlockHeader;
2121use bitcoin::blockdata::transaction::Transaction;
22- use bitcoin::blockdata::constants::{genesis_block,  ChainHash} ;
22+ use bitcoin::blockdata::constants::ChainHash;
2323use bitcoin::network::constants::Network;
2424
2525use bitcoin::hashes::Hash;
@@ -1018,7 +1018,7 @@ where
10181018	L::Target: Logger,
10191019{
10201020	default_configuration: UserConfig,
1021- 	genesis_hash: BlockHash ,
1021+ 	chain_hash: ChainHash ,
10221022	fee_estimator: LowerBoundedFeeEstimator<F>,
10231023	chain_monitor: M,
10241024	tx_broadcaster: T,
@@ -2012,7 +2012,7 @@ macro_rules! emit_channel_ready_event {
20122012macro_rules! handle_monitor_update_completion {
20132013	($self: ident, $peer_state_lock: expr, $peer_state: expr, $per_peer_state_lock: expr, $chan: expr) => { {
20142014		let mut updates = $chan.monitor_updating_restored(&$self.logger,
2015- 			&$self.node_signer, $self.genesis_hash , &$self.default_configuration,
2015+ 			&$self.node_signer, $self.chain_hash , &$self.default_configuration,
20162016			$self.best_block.read().unwrap().height());
20172017		let counterparty_node_id = $chan.context.get_counterparty_node_id();
20182018		let channel_update = if updates.channel_ready.is_some() && $chan.context.is_usable() {
@@ -2258,7 +2258,7 @@ where
22582258		let expanded_inbound_key = inbound_payment::ExpandedKey::new(&inbound_pmt_key_material);
22592259		ChannelManager {
22602260			default_configuration: config.clone(),
2261- 			genesis_hash: genesis_block (params.network).header.block_hash( ),
2261+ 			chain_hash: ChainHash::using_genesis_block (params.network),
22622262			fee_estimator: LowerBoundedFeeEstimator::new(fee_est),
22632263			chain_monitor,
22642264			tx_broadcaster,
@@ -2317,7 +2317,7 @@ where
23172317			if cfg!(fuzzing) { // fuzzing chacha20 doesn't use the key at all so we always get the same alias
23182318				outbound_scid_alias += 1;
23192319			} else {
2320- 				outbound_scid_alias = fake_scid::Namespace::OutboundAlias.get_fake_scid(height, &self.genesis_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
2320+ 				outbound_scid_alias = fake_scid::Namespace::OutboundAlias.get_fake_scid(height, &self.chain_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
23212321			}
23222322			if outbound_scid_alias != 0 && self.outbound_scid_aliases.lock().unwrap().insert(outbound_scid_alias) {
23232323				break;
@@ -2387,7 +2387,7 @@ where
23872387				},
23882388			}
23892389		};
2390- 		let res = channel.get_open_channel(self.genesis_hash.clone() );
2390+ 		let res = channel.get_open_channel(self.chain_hash );
23912391
23922392		let temporary_channel_id = channel.context.channel_id();
23932393		match peer_state.channel_by_id.entry(temporary_channel_id) {
@@ -3101,8 +3101,8 @@ where
31013101					// Note that this is likely a timing oracle for detecting whether an scid is a
31023102					// phantom or an intercept.
31033103					if (self.default_configuration.accept_intercept_htlcs &&
3104- 						fake_scid::is_valid_intercept(&self.fake_scid_rand_bytes, outgoing_scid, &self.genesis_hash )) ||
3105- 						fake_scid::is_valid_phantom(&self.fake_scid_rand_bytes, outgoing_scid, &self.genesis_hash )
3104+ 						fake_scid::is_valid_intercept(&self.fake_scid_rand_bytes, outgoing_scid, &self.chain_hash )) ||
3105+ 						fake_scid::is_valid_phantom(&self.fake_scid_rand_bytes, outgoing_scid, &self.chain_hash )
31063106					{
31073107						None
31083108					} else {
@@ -3330,7 +3330,7 @@ where
33303330		};
33313331
33323332		let unsigned = msgs::UnsignedChannelUpdate {
3333- 			chain_hash: self.genesis_hash ,
3333+ 			chain_hash: self.chain_hash ,
33343334			short_channel_id,
33353335			timestamp: chan.context.get_update_time_counter(),
33363336			flags: (!were_node_one) as u8 | ((!enabled as u8) << 1),
@@ -4248,7 +4248,7 @@ where
42484248										}
42494249										if let PendingHTLCRouting::Forward { onion_packet, .. } = routing {
42504250											let phantom_pubkey_res = self.node_signer.get_node_id(Recipient::PhantomNode);
4251- 											if phantom_pubkey_res.is_ok() && fake_scid::is_valid_phantom(&self.fake_scid_rand_bytes, short_chan_id, &self.genesis_hash ) {
4251+ 											if phantom_pubkey_res.is_ok() && fake_scid::is_valid_phantom(&self.fake_scid_rand_bytes, short_chan_id, &self.chain_hash ) {
42524252												let phantom_shared_secret = self.node_signer.ecdh(Recipient::PhantomNode, &onion_packet.public_key.unwrap(), None).unwrap().secret_bytes();
42534253												let next_hop = match onion_utils::decode_next_payment_hop(
42544254													phantom_shared_secret, &onion_packet.hop_data, onion_packet.hmac,
@@ -5872,7 +5872,7 @@ where
58725872	fn internal_open_channel(&self, counterparty_node_id: &PublicKey, msg: &msgs::OpenChannel) -> Result<(), MsgHandleErrInternal> {
58735873		// Note that the ChannelManager is NOT re-persisted on disk after this, so any changes are
58745874		// likely to be lost on restart!
5875- 		if msg.chain_hash != self.genesis_hash  {
5875+ 		if msg.chain_hash != self.chain_hash  {
58765876			return Err(MsgHandleErrInternal::send_err_msg_no_close("Unknown genesis block hash".to_owned(), msg.temporary_channel_id.clone()));
58775877		}
58785878
@@ -6137,7 +6137,7 @@ where
61376137			hash_map::Entry::Occupied(mut chan_phase_entry) => {
61386138				if let ChannelPhase::Funded(chan) = chan_phase_entry.get_mut() {
61396139					let announcement_sigs_opt = try_chan_phase_entry!(self, chan.channel_ready(&msg, &self.node_signer,
6140- 						self.genesis_hash.clone() , &self.default_configuration, &self.best_block.read().unwrap(), &self.logger), chan_phase_entry);
6140+ 						self.chain_hash , &self.default_configuration, &self.best_block.read().unwrap(), &self.logger), chan_phase_entry);
61416141					if let Some(announcement_sigs) = announcement_sigs_opt {
61426142						log_trace!(self.logger, "Sending announcement_signatures for channel {}", chan.context.channel_id());
61436143						peer_state.pending_msg_events.push(events::MessageSendEvent::SendAnnouncementSignatures {
@@ -6514,7 +6514,7 @@ where
65146514						},
65156515						hash_map::Entry::Vacant(entry) => {
65166516							if !is_our_scid && forward_info.incoming_amt_msat.is_some() &&
6517- 							   fake_scid::is_valid_intercept(&self.fake_scid_rand_bytes, scid, &self.genesis_hash )
6517+ 							   fake_scid::is_valid_intercept(&self.fake_scid_rand_bytes, scid, &self.chain_hash )
65186518							{
65196519								let intercept_id = InterceptId(Sha256::hash(&forward_info.incoming_shared_secret).into_inner());
65206520								let mut pending_intercepts = self.pending_intercepted_htlcs.lock().unwrap();
@@ -6707,7 +6707,7 @@ where
67076707
67086708					peer_state.pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
67096709						msg: try_chan_phase_entry!(self, chan.announcement_signatures(
6710- 							&self.node_signer, self.genesis_hash.clone() , self.best_block.read().unwrap().height(),
6710+ 							&self.node_signer, self.chain_hash , self.best_block.read().unwrap().height(),
67116711							msg, &self.default_configuration
67126712						), chan_phase_entry),
67136713						// Note that announcement_signatures fails if the channel cannot be announced,
@@ -6795,7 +6795,7 @@ where
67956795						// freed HTLCs to fail backwards. If in the future we no longer drop pending
67966796						// add-HTLCs on disconnect, we may be handed HTLCs to fail backwards here.
67976797						let responses = try_chan_phase_entry!(self, chan.channel_reestablish(
6798- 							msg, &self.logger, &self.node_signer, self.genesis_hash ,
6798+ 							msg, &self.logger, &self.node_signer, self.chain_hash ,
67996799							&self.default_configuration, &*self.best_block.read().unwrap()), chan_phase_entry);
68006800						let mut channel_update = None;
68016801						if let Some(msg) = responses.shutdown_msg {
@@ -7175,7 +7175,7 @@ where
71757175		let best_block_height = self.best_block.read().unwrap().height();
71767176		let short_to_chan_info = self.short_to_chan_info.read().unwrap();
71777177		loop {
7178- 			let scid_candidate = fake_scid::Namespace::Phantom.get_fake_scid(best_block_height, &self.genesis_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
7178+ 			let scid_candidate = fake_scid::Namespace::Phantom.get_fake_scid(best_block_height, &self.chain_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
71797179			// Ensure the generated scid doesn't conflict with a real channel.
71807180			match short_to_chan_info.get(&scid_candidate) {
71817181				Some(_) => continue,
@@ -7205,7 +7205,7 @@ where
72057205		let best_block_height = self.best_block.read().unwrap().height();
72067206		let short_to_chan_info = self.short_to_chan_info.read().unwrap();
72077207		loop {
7208- 			let scid_candidate = fake_scid::Namespace::Intercept.get_fake_scid(best_block_height, &self.genesis_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
7208+ 			let scid_candidate = fake_scid::Namespace::Intercept.get_fake_scid(best_block_height, &self.chain_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
72097209			// Ensure the generated scid doesn't conflict with a real channel.
72107210			if short_to_chan_info.contains_key(&scid_candidate) { continue }
72117211			return scid_candidate
@@ -7468,7 +7468,7 @@ where
74687468			*best_block = BestBlock::new(header.prev_blockhash, new_height)
74697469		}
74707470
7471- 		self.do_chain_event(Some(new_height), |channel| channel.best_block_updated(new_height, header.time, self.genesis_hash.clone() , &self.node_signer, &self.default_configuration, &self.logger));
7471+ 		self.do_chain_event(Some(new_height), |channel| channel.best_block_updated(new_height, header.time, self.chain_hash , &self.node_signer, &self.default_configuration, &self.logger));
74727472	}
74737473}
74747474
@@ -7494,13 +7494,13 @@ where
74947494		let _persistence_guard =
74957495			PersistenceNotifierGuard::optionally_notify_skipping_background_events(
74967496				self, || -> NotifyOption { NotifyOption::DoPersist });
7497- 		self.do_chain_event(Some(height), |channel| channel.transactions_confirmed(&block_hash, height, txdata, self.genesis_hash.clone() , &self.node_signer, &self.default_configuration, &self.logger)
7497+ 		self.do_chain_event(Some(height), |channel| channel.transactions_confirmed(&block_hash, height, txdata, self.chain_hash , &self.node_signer, &self.default_configuration, &self.logger)
74987498			.map(|(a, b)| (a, Vec::new(), b)));
74997499
75007500		let last_best_block_height = self.best_block.read().unwrap().height();
75017501		if height < last_best_block_height {
75027502			let timestamp = self.highest_seen_timestamp.load(Ordering::Acquire);
7503- 			self.do_chain_event(Some(last_best_block_height), |channel| channel.best_block_updated(last_best_block_height, timestamp as u32, self.genesis_hash.clone() , &self.node_signer, &self.default_configuration, &self.logger));
7503+ 			self.do_chain_event(Some(last_best_block_height), |channel| channel.best_block_updated(last_best_block_height, timestamp as u32, self.chain_hash , &self.node_signer, &self.default_configuration, &self.logger));
75047504		}
75057505	}
75067506
@@ -7517,7 +7517,7 @@ where
75177517				self, || -> NotifyOption { NotifyOption::DoPersist });
75187518		*self.best_block.write().unwrap() = BestBlock::new(block_hash, height);
75197519
7520- 		self.do_chain_event(Some(height), |channel| channel.best_block_updated(height, header.time, self.genesis_hash.clone() , &self.node_signer, &self.default_configuration, &self.logger));
7520+ 		self.do_chain_event(Some(height), |channel| channel.best_block_updated(height, header.time, self.chain_hash , &self.node_signer, &self.default_configuration, &self.logger));
75217521
75227522		macro_rules! max_time {
75237523			($timestamp: expr) => {
@@ -7637,7 +7637,7 @@ where
76377637										msg: announcement_sigs,
76387638									});
76397639									if let Some(height) = height_opt {
7640- 										if let Some(announcement) = channel.get_signed_channel_announcement(&self.node_signer, self.genesis_hash , height, &self.default_configuration) {
7640+ 										if let Some(announcement) = channel.get_signed_channel_announcement(&self.node_signer, self.chain_hash , height, &self.default_configuration) {
76417641											pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
76427642												msg: announcement,
76437643												// Note that announcement_signatures fails if the channel cannot be announced,
@@ -8247,7 +8247,7 @@ where
82478247				let mut peer_state_lock = peer_state_mutex_opt.unwrap().lock().unwrap();
82488248				let peer_state = &mut *peer_state_lock;
82498249				if let Some(ChannelPhase::UnfundedOutboundV1(chan)) = peer_state.channel_by_id.get_mut(&msg.channel_id) {
8250- 					if let Ok(msg) = chan.maybe_handle_error_without_close(self.genesis_hash , &self.fee_estimator) {
8250+ 					if let Ok(msg) = chan.maybe_handle_error_without_close(self.chain_hash , &self.fee_estimator) {
82518251						peer_state.pending_msg_events.push(events::MessageSendEvent::SendOpenChannel {
82528252							node_id: *counterparty_node_id,
82538253							msg,
@@ -8270,8 +8270,8 @@ where
82708270		provided_init_features(&self.default_configuration)
82718271	}
82728272
8273- 	fn get_genesis_hashes (&self) -> Option<Vec<ChainHash>> {
8274- 		Some(vec![ChainHash::from(& self.genesis_hash[..]) ])
8273+ 	fn get_chain_hashes (&self) -> Option<Vec<ChainHash>> {
8274+ 		Some(vec![self.chain_hash ])
82758275	}
82768276
82778277	fn handle_tx_add_input(&self, counterparty_node_id: &PublicKey, msg: &msgs::TxAddInput) {
@@ -8816,7 +8816,7 @@ where
88168816
88178817		write_ver_prefix!(writer, SERIALIZATION_VERSION, MIN_SERIALIZATION_VERSION);
88188818
8819- 		self.genesis_hash .write(writer)?;
8819+ 		self.chain_hash .write(writer)?;
88208820		{
88218821			let best_block = self.best_block.read().unwrap();
88228822			best_block.height().write(writer)?;
@@ -9227,7 +9227,7 @@ where
92279227	fn read<Reader: io::Read>(reader: &mut Reader, mut args: ChannelManagerReadArgs<'a, M, T, ES, NS, SP, F, R, L>) -> Result<Self, DecodeError> {
92289228		let _ver = read_ver_prefix!(reader, SERIALIZATION_VERSION);
92299229
9230- 		let genesis_hash: BlockHash  = Readable::read(reader)?;
9230+ 		let chain_hash: ChainHash  = Readable::read(reader)?;
92319231		let best_block_height: u32 = Readable::read(reader)?;
92329232		let best_block_hash: BlockHash = Readable::read(reader)?;
92339233
@@ -9875,7 +9875,7 @@ where
98759875						let mut outbound_scid_alias;
98769876						loop {
98779877							outbound_scid_alias = fake_scid::Namespace::OutboundAlias
9878- 								.get_fake_scid(best_block_height, &genesis_hash , fake_scid_rand_bytes.as_ref().unwrap(), &args.entropy_source);
9878+ 								.get_fake_scid(best_block_height, &chain_hash , fake_scid_rand_bytes.as_ref().unwrap(), &args.entropy_source);
98799879							if outbound_scid_aliases.insert(outbound_scid_alias) { break; }
98809880						}
98819881						chan.context.set_outbound_scid_alias(outbound_scid_alias);
@@ -9989,7 +9989,7 @@ where
99899989		}
99909990
99919991		let channel_manager = ChannelManager {
9992- 			genesis_hash ,
9992+ 			chain_hash ,
99939993			fee_estimator: bounded_fee_estimator,
99949994			chain_monitor: args.chain_monitor,
99959995			tx_broadcaster: args.tx_broadcaster,
0 commit comments