19
19
20
20
use bitcoin::blockdata::block::BlockHeader;
21
21
use bitcoin::blockdata::transaction::Transaction;
22
- use bitcoin::blockdata::constants::{genesis_block, ChainHash} ;
22
+ use bitcoin::blockdata::constants::ChainHash;
23
23
use bitcoin::network::constants::Network;
24
24
25
25
use bitcoin::hashes::Hash;
@@ -1018,7 +1018,7 @@ where
1018
1018
L::Target: Logger,
1019
1019
{
1020
1020
default_configuration: UserConfig,
1021
- genesis_hash: BlockHash ,
1021
+ chain_hash: ChainHash ,
1022
1022
fee_estimator: LowerBoundedFeeEstimator<F>,
1023
1023
chain_monitor: M,
1024
1024
tx_broadcaster: T,
@@ -2012,7 +2012,7 @@ macro_rules! emit_channel_ready_event {
2012
2012
macro_rules! handle_monitor_update_completion {
2013
2013
($self: ident, $peer_state_lock: expr, $peer_state: expr, $per_peer_state_lock: expr, $chan: expr) => { {
2014
2014
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,
2016
2016
$self.best_block.read().unwrap().height());
2017
2017
let counterparty_node_id = $chan.context.get_counterparty_node_id();
2018
2018
let channel_update = if updates.channel_ready.is_some() && $chan.context.is_usable() {
@@ -2258,7 +2258,7 @@ where
2258
2258
let expanded_inbound_key = inbound_payment::ExpandedKey::new(&inbound_pmt_key_material);
2259
2259
ChannelManager {
2260
2260
default_configuration: config.clone(),
2261
- genesis_hash: genesis_block (params.network).header.block_hash( ),
2261
+ chain_hash: ChainHash::using_genesis_block (params.network),
2262
2262
fee_estimator: LowerBoundedFeeEstimator::new(fee_est),
2263
2263
chain_monitor,
2264
2264
tx_broadcaster,
@@ -2317,7 +2317,7 @@ where
2317
2317
if cfg!(fuzzing) { // fuzzing chacha20 doesn't use the key at all so we always get the same alias
2318
2318
outbound_scid_alias += 1;
2319
2319
} 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);
2321
2321
}
2322
2322
if outbound_scid_alias != 0 && self.outbound_scid_aliases.lock().unwrap().insert(outbound_scid_alias) {
2323
2323
break;
@@ -2387,7 +2387,7 @@ where
2387
2387
},
2388
2388
}
2389
2389
};
2390
- let res = channel.get_open_channel(self.genesis_hash.clone() );
2390
+ let res = channel.get_open_channel(self.chain_hash );
2391
2391
2392
2392
let temporary_channel_id = channel.context.channel_id();
2393
2393
match peer_state.channel_by_id.entry(temporary_channel_id) {
@@ -3101,8 +3101,8 @@ where
3101
3101
// Note that this is likely a timing oracle for detecting whether an scid is a
3102
3102
// phantom or an intercept.
3103
3103
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 )
3106
3106
{
3107
3107
None
3108
3108
} else {
@@ -3330,7 +3330,7 @@ where
3330
3330
};
3331
3331
3332
3332
let unsigned = msgs::UnsignedChannelUpdate {
3333
- chain_hash: self.genesis_hash ,
3333
+ chain_hash: self.chain_hash ,
3334
3334
short_channel_id,
3335
3335
timestamp: chan.context.get_update_time_counter(),
3336
3336
flags: (!were_node_one) as u8 | ((!enabled as u8) << 1),
@@ -4248,7 +4248,7 @@ where
4248
4248
}
4249
4249
if let PendingHTLCRouting::Forward { onion_packet, .. } = routing {
4250
4250
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 ) {
4252
4252
let phantom_shared_secret = self.node_signer.ecdh(Recipient::PhantomNode, &onion_packet.public_key.unwrap(), None).unwrap().secret_bytes();
4253
4253
let next_hop = match onion_utils::decode_next_payment_hop(
4254
4254
phantom_shared_secret, &onion_packet.hop_data, onion_packet.hmac,
@@ -5872,7 +5872,7 @@ where
5872
5872
fn internal_open_channel(&self, counterparty_node_id: &PublicKey, msg: &msgs::OpenChannel) -> Result<(), MsgHandleErrInternal> {
5873
5873
// Note that the ChannelManager is NOT re-persisted on disk after this, so any changes are
5874
5874
// likely to be lost on restart!
5875
- if msg.chain_hash != self.genesis_hash {
5875
+ if msg.chain_hash != self.chain_hash {
5876
5876
return Err(MsgHandleErrInternal::send_err_msg_no_close("Unknown genesis block hash".to_owned(), msg.temporary_channel_id.clone()));
5877
5877
}
5878
5878
@@ -6137,7 +6137,7 @@ where
6137
6137
hash_map::Entry::Occupied(mut chan_phase_entry) => {
6138
6138
if let ChannelPhase::Funded(chan) = chan_phase_entry.get_mut() {
6139
6139
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);
6141
6141
if let Some(announcement_sigs) = announcement_sigs_opt {
6142
6142
log_trace!(self.logger, "Sending announcement_signatures for channel {}", chan.context.channel_id());
6143
6143
peer_state.pending_msg_events.push(events::MessageSendEvent::SendAnnouncementSignatures {
@@ -6514,7 +6514,7 @@ where
6514
6514
},
6515
6515
hash_map::Entry::Vacant(entry) => {
6516
6516
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 )
6518
6518
{
6519
6519
let intercept_id = InterceptId(Sha256::hash(&forward_info.incoming_shared_secret).into_inner());
6520
6520
let mut pending_intercepts = self.pending_intercepted_htlcs.lock().unwrap();
@@ -6707,7 +6707,7 @@ where
6707
6707
6708
6708
peer_state.pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
6709
6709
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(),
6711
6711
msg, &self.default_configuration
6712
6712
), chan_phase_entry),
6713
6713
// Note that announcement_signatures fails if the channel cannot be announced,
@@ -6795,7 +6795,7 @@ where
6795
6795
// freed HTLCs to fail backwards. If in the future we no longer drop pending
6796
6796
// add-HTLCs on disconnect, we may be handed HTLCs to fail backwards here.
6797
6797
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 ,
6799
6799
&self.default_configuration, &*self.best_block.read().unwrap()), chan_phase_entry);
6800
6800
let mut channel_update = None;
6801
6801
if let Some(msg) = responses.shutdown_msg {
@@ -7175,7 +7175,7 @@ where
7175
7175
let best_block_height = self.best_block.read().unwrap().height();
7176
7176
let short_to_chan_info = self.short_to_chan_info.read().unwrap();
7177
7177
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);
7179
7179
// Ensure the generated scid doesn't conflict with a real channel.
7180
7180
match short_to_chan_info.get(&scid_candidate) {
7181
7181
Some(_) => continue,
@@ -7205,7 +7205,7 @@ where
7205
7205
let best_block_height = self.best_block.read().unwrap().height();
7206
7206
let short_to_chan_info = self.short_to_chan_info.read().unwrap();
7207
7207
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);
7209
7209
// Ensure the generated scid doesn't conflict with a real channel.
7210
7210
if short_to_chan_info.contains_key(&scid_candidate) { continue }
7211
7211
return scid_candidate
@@ -7468,7 +7468,7 @@ where
7468
7468
*best_block = BestBlock::new(header.prev_blockhash, new_height)
7469
7469
}
7470
7470
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));
7472
7472
}
7473
7473
}
7474
7474
@@ -7494,13 +7494,13 @@ where
7494
7494
let _persistence_guard =
7495
7495
PersistenceNotifierGuard::optionally_notify_skipping_background_events(
7496
7496
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)
7498
7498
.map(|(a, b)| (a, Vec::new(), b)));
7499
7499
7500
7500
let last_best_block_height = self.best_block.read().unwrap().height();
7501
7501
if height < last_best_block_height {
7502
7502
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));
7504
7504
}
7505
7505
}
7506
7506
@@ -7517,7 +7517,7 @@ where
7517
7517
self, || -> NotifyOption { NotifyOption::DoPersist });
7518
7518
*self.best_block.write().unwrap() = BestBlock::new(block_hash, height);
7519
7519
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));
7521
7521
7522
7522
macro_rules! max_time {
7523
7523
($timestamp: expr) => {
@@ -7637,7 +7637,7 @@ where
7637
7637
msg: announcement_sigs,
7638
7638
});
7639
7639
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) {
7641
7641
pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
7642
7642
msg: announcement,
7643
7643
// Note that announcement_signatures fails if the channel cannot be announced,
@@ -8247,7 +8247,7 @@ where
8247
8247
let mut peer_state_lock = peer_state_mutex_opt.unwrap().lock().unwrap();
8248
8248
let peer_state = &mut *peer_state_lock;
8249
8249
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) {
8251
8251
peer_state.pending_msg_events.push(events::MessageSendEvent::SendOpenChannel {
8252
8252
node_id: *counterparty_node_id,
8253
8253
msg,
@@ -8270,8 +8270,8 @@ where
8270
8270
provided_init_features(&self.default_configuration)
8271
8271
}
8272
8272
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 ])
8275
8275
}
8276
8276
8277
8277
fn handle_tx_add_input(&self, counterparty_node_id: &PublicKey, msg: &msgs::TxAddInput) {
@@ -8816,7 +8816,7 @@ where
8816
8816
8817
8817
write_ver_prefix!(writer, SERIALIZATION_VERSION, MIN_SERIALIZATION_VERSION);
8818
8818
8819
- self.genesis_hash .write(writer)?;
8819
+ self.chain_hash .write(writer)?;
8820
8820
{
8821
8821
let best_block = self.best_block.read().unwrap();
8822
8822
best_block.height().write(writer)?;
@@ -9227,7 +9227,7 @@ where
9227
9227
fn read<Reader: io::Read>(reader: &mut Reader, mut args: ChannelManagerReadArgs<'a, M, T, ES, NS, SP, F, R, L>) -> Result<Self, DecodeError> {
9228
9228
let _ver = read_ver_prefix!(reader, SERIALIZATION_VERSION);
9229
9229
9230
- let genesis_hash: BlockHash = Readable::read(reader)?;
9230
+ let chain_hash: ChainHash = Readable::read(reader)?;
9231
9231
let best_block_height: u32 = Readable::read(reader)?;
9232
9232
let best_block_hash: BlockHash = Readable::read(reader)?;
9233
9233
@@ -9875,7 +9875,7 @@ where
9875
9875
let mut outbound_scid_alias;
9876
9876
loop {
9877
9877
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);
9879
9879
if outbound_scid_aliases.insert(outbound_scid_alias) { break; }
9880
9880
}
9881
9881
chan.context.set_outbound_scid_alias(outbound_scid_alias);
@@ -9989,7 +9989,7 @@ where
9989
9989
}
9990
9990
9991
9991
let channel_manager = ChannelManager {
9992
- genesis_hash ,
9992
+ chain_hash ,
9993
9993
fee_estimator: bounded_fee_estimator,
9994
9994
chain_monitor: args.chain_monitor,
9995
9995
tx_broadcaster: args.tx_broadcaster,
0 commit comments