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) {
@@ -3103,8 +3103,8 @@ where
3103
3103
// Note that this is likely a timing oracle for detecting whether an scid is a
3104
3104
// phantom or an intercept.
3105
3105
if (self.default_configuration.accept_intercept_htlcs &&
3106
- fake_scid::is_valid_intercept(&self.fake_scid_rand_bytes, outgoing_scid, &self.genesis_hash )) ||
3107
- fake_scid::is_valid_phantom(&self.fake_scid_rand_bytes, outgoing_scid, &self.genesis_hash )
3106
+ fake_scid::is_valid_intercept(&self.fake_scid_rand_bytes, outgoing_scid, &self.chain_hash )) ||
3107
+ fake_scid::is_valid_phantom(&self.fake_scid_rand_bytes, outgoing_scid, &self.chain_hash )
3108
3108
{
3109
3109
None
3110
3110
} else {
@@ -3332,7 +3332,7 @@ where
3332
3332
};
3333
3333
3334
3334
let unsigned = msgs::UnsignedChannelUpdate {
3335
- chain_hash: self.genesis_hash ,
3335
+ chain_hash: self.chain_hash ,
3336
3336
short_channel_id,
3337
3337
timestamp: chan.context.get_update_time_counter(),
3338
3338
flags: (!were_node_one) as u8 | ((!enabled as u8) << 1),
@@ -4250,7 +4250,7 @@ where
4250
4250
}
4251
4251
if let PendingHTLCRouting::Forward { onion_packet, .. } = routing {
4252
4252
let phantom_pubkey_res = self.node_signer.get_node_id(Recipient::PhantomNode);
4253
- if phantom_pubkey_res.is_ok() && fake_scid::is_valid_phantom(&self.fake_scid_rand_bytes, short_chan_id, &self.genesis_hash ) {
4253
+ if phantom_pubkey_res.is_ok() && fake_scid::is_valid_phantom(&self.fake_scid_rand_bytes, short_chan_id, &self.chain_hash ) {
4254
4254
let phantom_shared_secret = self.node_signer.ecdh(Recipient::PhantomNode, &onion_packet.public_key.unwrap(), None).unwrap().secret_bytes();
4255
4255
let next_hop = match onion_utils::decode_next_payment_hop(
4256
4256
phantom_shared_secret, &onion_packet.hop_data, onion_packet.hmac,
@@ -5876,7 +5876,7 @@ where
5876
5876
fn internal_open_channel(&self, counterparty_node_id: &PublicKey, msg: &msgs::OpenChannel) -> Result<(), MsgHandleErrInternal> {
5877
5877
// Note that the ChannelManager is NOT re-persisted on disk after this, so any changes are
5878
5878
// likely to be lost on restart!
5879
- if msg.chain_hash != self.genesis_hash {
5879
+ if msg.chain_hash != self.chain_hash {
5880
5880
return Err(MsgHandleErrInternal::send_err_msg_no_close("Unknown genesis block hash".to_owned(), msg.temporary_channel_id.clone()));
5881
5881
}
5882
5882
@@ -6141,7 +6141,7 @@ where
6141
6141
hash_map::Entry::Occupied(mut chan_phase_entry) => {
6142
6142
if let ChannelPhase::Funded(chan) = chan_phase_entry.get_mut() {
6143
6143
let announcement_sigs_opt = try_chan_phase_entry!(self, chan.channel_ready(&msg, &self.node_signer,
6144
- self.genesis_hash.clone() , &self.default_configuration, &self.best_block.read().unwrap(), &self.logger), chan_phase_entry);
6144
+ self.chain_hash , &self.default_configuration, &self.best_block.read().unwrap(), &self.logger), chan_phase_entry);
6145
6145
if let Some(announcement_sigs) = announcement_sigs_opt {
6146
6146
log_trace!(self.logger, "Sending announcement_signatures for channel {}", chan.context.channel_id());
6147
6147
peer_state.pending_msg_events.push(events::MessageSendEvent::SendAnnouncementSignatures {
@@ -6518,7 +6518,7 @@ where
6518
6518
},
6519
6519
hash_map::Entry::Vacant(entry) => {
6520
6520
if !is_our_scid && forward_info.incoming_amt_msat.is_some() &&
6521
- fake_scid::is_valid_intercept(&self.fake_scid_rand_bytes, scid, &self.genesis_hash )
6521
+ fake_scid::is_valid_intercept(&self.fake_scid_rand_bytes, scid, &self.chain_hash )
6522
6522
{
6523
6523
let intercept_id = InterceptId(Sha256::hash(&forward_info.incoming_shared_secret).into_inner());
6524
6524
let mut pending_intercepts = self.pending_intercepted_htlcs.lock().unwrap();
@@ -6711,7 +6711,7 @@ where
6711
6711
6712
6712
peer_state.pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
6713
6713
msg: try_chan_phase_entry!(self, chan.announcement_signatures(
6714
- &self.node_signer, self.genesis_hash.clone() , self.best_block.read().unwrap().height(),
6714
+ &self.node_signer, self.chain_hash , self.best_block.read().unwrap().height(),
6715
6715
msg, &self.default_configuration
6716
6716
), chan_phase_entry),
6717
6717
// Note that announcement_signatures fails if the channel cannot be announced,
@@ -6799,7 +6799,7 @@ where
6799
6799
// freed HTLCs to fail backwards. If in the future we no longer drop pending
6800
6800
// add-HTLCs on disconnect, we may be handed HTLCs to fail backwards here.
6801
6801
let responses = try_chan_phase_entry!(self, chan.channel_reestablish(
6802
- msg, &self.logger, &self.node_signer, self.genesis_hash ,
6802
+ msg, &self.logger, &self.node_signer, self.chain_hash ,
6803
6803
&self.default_configuration, &*self.best_block.read().unwrap()), chan_phase_entry);
6804
6804
let mut channel_update = None;
6805
6805
if let Some(msg) = responses.shutdown_msg {
@@ -7179,7 +7179,7 @@ where
7179
7179
let best_block_height = self.best_block.read().unwrap().height();
7180
7180
let short_to_chan_info = self.short_to_chan_info.read().unwrap();
7181
7181
loop {
7182
- let scid_candidate = fake_scid::Namespace::Phantom.get_fake_scid(best_block_height, &self.genesis_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
7182
+ let scid_candidate = fake_scid::Namespace::Phantom.get_fake_scid(best_block_height, &self.chain_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
7183
7183
// Ensure the generated scid doesn't conflict with a real channel.
7184
7184
match short_to_chan_info.get(&scid_candidate) {
7185
7185
Some(_) => continue,
@@ -7209,7 +7209,7 @@ where
7209
7209
let best_block_height = self.best_block.read().unwrap().height();
7210
7210
let short_to_chan_info = self.short_to_chan_info.read().unwrap();
7211
7211
loop {
7212
- let scid_candidate = fake_scid::Namespace::Intercept.get_fake_scid(best_block_height, &self.genesis_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
7212
+ let scid_candidate = fake_scid::Namespace::Intercept.get_fake_scid(best_block_height, &self.chain_hash , &self.fake_scid_rand_bytes, &self.entropy_source);
7213
7213
// Ensure the generated scid doesn't conflict with a real channel.
7214
7214
if short_to_chan_info.contains_key(&scid_candidate) { continue }
7215
7215
return scid_candidate
@@ -7472,7 +7472,7 @@ where
7472
7472
*best_block = BestBlock::new(header.prev_blockhash, new_height)
7473
7473
}
7474
7474
7475
- 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));
7475
+ 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));
7476
7476
}
7477
7477
}
7478
7478
@@ -7498,13 +7498,13 @@ where
7498
7498
let _persistence_guard =
7499
7499
PersistenceNotifierGuard::optionally_notify_skipping_background_events(
7500
7500
self, || -> NotifyOption { NotifyOption::DoPersist });
7501
- 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)
7501
+ 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)
7502
7502
.map(|(a, b)| (a, Vec::new(), b)));
7503
7503
7504
7504
let last_best_block_height = self.best_block.read().unwrap().height();
7505
7505
if height < last_best_block_height {
7506
7506
let timestamp = self.highest_seen_timestamp.load(Ordering::Acquire);
7507
- 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));
7507
+ 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));
7508
7508
}
7509
7509
}
7510
7510
@@ -7521,7 +7521,7 @@ where
7521
7521
self, || -> NotifyOption { NotifyOption::DoPersist });
7522
7522
*self.best_block.write().unwrap() = BestBlock::new(block_hash, height);
7523
7523
7524
- 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));
7524
+ 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));
7525
7525
7526
7526
macro_rules! max_time {
7527
7527
($timestamp: expr) => {
@@ -7641,7 +7641,7 @@ where
7641
7641
msg: announcement_sigs,
7642
7642
});
7643
7643
if let Some(height) = height_opt {
7644
- if let Some(announcement) = channel.get_signed_channel_announcement(&self.node_signer, self.genesis_hash , height, &self.default_configuration) {
7644
+ if let Some(announcement) = channel.get_signed_channel_announcement(&self.node_signer, self.chain_hash , height, &self.default_configuration) {
7645
7645
pending_msg_events.push(events::MessageSendEvent::BroadcastChannelAnnouncement {
7646
7646
msg: announcement,
7647
7647
// Note that announcement_signatures fails if the channel cannot be announced,
@@ -8251,7 +8251,7 @@ where
8251
8251
let mut peer_state_lock = peer_state_mutex_opt.unwrap().lock().unwrap();
8252
8252
let peer_state = &mut *peer_state_lock;
8253
8253
if let Some(ChannelPhase::UnfundedOutboundV1(chan)) = peer_state.channel_by_id.get_mut(&msg.channel_id) {
8254
- if let Ok(msg) = chan.maybe_handle_error_without_close(self.genesis_hash , &self.fee_estimator) {
8254
+ if let Ok(msg) = chan.maybe_handle_error_without_close(self.chain_hash , &self.fee_estimator) {
8255
8255
peer_state.pending_msg_events.push(events::MessageSendEvent::SendOpenChannel {
8256
8256
node_id: *counterparty_node_id,
8257
8257
msg,
@@ -8274,8 +8274,8 @@ where
8274
8274
provided_init_features(&self.default_configuration)
8275
8275
}
8276
8276
8277
- fn get_genesis_hashes (&self) -> Option<Vec<ChainHash>> {
8278
- Some(vec![ChainHash::from(& self.genesis_hash[..]) ])
8277
+ fn get_chain_hashes (&self) -> Option<Vec<ChainHash>> {
8278
+ Some(vec![self.chain_hash ])
8279
8279
}
8280
8280
8281
8281
fn handle_tx_add_input(&self, counterparty_node_id: &PublicKey, msg: &msgs::TxAddInput) {
@@ -8820,7 +8820,7 @@ where
8820
8820
8821
8821
write_ver_prefix!(writer, SERIALIZATION_VERSION, MIN_SERIALIZATION_VERSION);
8822
8822
8823
- self.genesis_hash .write(writer)?;
8823
+ self.chain_hash .write(writer)?;
8824
8824
{
8825
8825
let best_block = self.best_block.read().unwrap();
8826
8826
best_block.height().write(writer)?;
@@ -9231,7 +9231,7 @@ where
9231
9231
fn read<Reader: io::Read>(reader: &mut Reader, mut args: ChannelManagerReadArgs<'a, M, T, ES, NS, SP, F, R, L>) -> Result<Self, DecodeError> {
9232
9232
let _ver = read_ver_prefix!(reader, SERIALIZATION_VERSION);
9233
9233
9234
- let genesis_hash: BlockHash = Readable::read(reader)?;
9234
+ let chain_hash: ChainHash = Readable::read(reader)?;
9235
9235
let best_block_height: u32 = Readable::read(reader)?;
9236
9236
let best_block_hash: BlockHash = Readable::read(reader)?;
9237
9237
@@ -9879,7 +9879,7 @@ where
9879
9879
let mut outbound_scid_alias;
9880
9880
loop {
9881
9881
outbound_scid_alias = fake_scid::Namespace::OutboundAlias
9882
- .get_fake_scid(best_block_height, &genesis_hash , fake_scid_rand_bytes.as_ref().unwrap(), &args.entropy_source);
9882
+ .get_fake_scid(best_block_height, &chain_hash , fake_scid_rand_bytes.as_ref().unwrap(), &args.entropy_source);
9883
9883
if outbound_scid_aliases.insert(outbound_scid_alias) { break; }
9884
9884
}
9885
9885
chan.context.set_outbound_scid_alias(outbound_scid_alias);
@@ -9993,7 +9993,7 @@ where
9993
9993
}
9994
9994
9995
9995
let channel_manager = ChannelManager {
9996
- genesis_hash ,
9996
+ chain_hash ,
9997
9997
fee_estimator: bounded_fee_estimator,
9998
9998
chain_monitor: args.chain_monitor,
9999
9999
tx_broadcaster: args.tx_broadcaster,
0 commit comments