diff --git a/beacon_chain/genesis/src/beacon_block.rs b/beacon_chain/genesis/src/beacon_block.rs index 65adc1cf7..696ac6499 100644 --- a/beacon_chain/genesis/src/beacon_block.rs +++ b/beacon_chain/genesis/src/beacon_block.rs @@ -8,7 +8,7 @@ pub fn genesis_beacon_block(state_root: Hash256, spec: &ChainSpec) -> BeaconBloc BeaconBlock { slot: spec.initial_slot_number, parent_root: spec.zero_hash, - state_root: state_root, + state_root, randao_reveal: spec.zero_hash, candidate_pow_receipt_root: spec.zero_hash, signature: genesis_signature(), diff --git a/beacon_chain/naive_fork_choice/src/lib.rs b/beacon_chain/naive_fork_choice/src/lib.rs index 385c9c50d..9a7578607 100644 --- a/beacon_chain/naive_fork_choice/src/lib.rs +++ b/beacon_chain/naive_fork_choice/src/lib.rs @@ -15,8 +15,8 @@ pub enum ForkChoiceError { } pub fn naive_fork_choice( - head_block_hashes: &Vec, - block_store: Arc>, + head_block_hashes: &[Hash256], + block_store: &Arc>, ) -> Result, ForkChoiceError> where T: ClientDB + Sized, @@ -28,7 +28,7 @@ where */ for (index, block_hash) in head_block_hashes.iter().enumerate() { let ssz = block_store - .get(&block_hash.to_vec()[..])? + .get(&block_hash)? .ok_or(ForkChoiceError::MissingBlock)?; let (block, _) = BeaconBlock::ssz_decode(&ssz, 0)?; head_blocks.push((index, block)); diff --git a/beacon_chain/spec/src/foundation.rs b/beacon_chain/spec/src/foundation.rs index b80187281..4dd1931d2 100644 --- a/beacon_chain/spec/src/foundation.rs +++ b/beacon_chain/spec/src/foundation.rs @@ -64,7 +64,7 @@ impl ChainSpec { * Intialization parameters */ initial_validators: initial_validators_for_testing(), - genesis_time: 1544672897, + genesis_time: 1_544_672_897, processed_pow_receipt_root: Hash256::from("pow_root".as_bytes()), } } diff --git a/beacon_chain/types/src/validator_record.rs b/beacon_chain/types/src/validator_record.rs index 374d95623..1168296f7 100644 --- a/beacon_chain/types/src/validator_record.rs +++ b/beacon_chain/types/src/validator_record.rs @@ -5,7 +5,7 @@ use rand::RngCore; use ssz::{Decodable, DecodeError, Encodable, SszStream}; use std::convert; -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Clone, Copy)] pub enum ValidatorStatus { PendingActivation, Active, @@ -87,7 +87,7 @@ impl TestRandom for ValidatorStatus { ValidatorStatus::Withdrawn, ValidatorStatus::Penalized, ]; - options[(rng.next_u32() as usize) % options.len()].clone() + options[(rng.next_u32() as usize) % options.len()] } } diff --git a/beacon_chain/utils/bls/src/aggregate_signature.rs b/beacon_chain/utils/bls/src/aggregate_signature.rs index 2e3630268..90bf44702 100644 --- a/beacon_chain/utils/bls/src/aggregate_signature.rs +++ b/beacon_chain/utils/bls/src/aggregate_signature.rs @@ -6,7 +6,7 @@ use bls_aggregates::AggregateSignature as RawAggregateSignature; /// /// This struct is a wrapper upon a base type and provides helper functions (e.g., SSZ /// serialization). -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Clone, Default)] pub struct AggregateSignature(RawAggregateSignature); impl AggregateSignature { diff --git a/beacon_chain/utils/slot_clock/src/system_time_slot_clock.rs b/beacon_chain/utils/slot_clock/src/system_time_slot_clock.rs index be7265ae8..8c1e2f66c 100644 --- a/beacon_chain/utils/slot_clock/src/system_time_slot_clock.rs +++ b/beacon_chain/utils/slot_clock/src/system_time_slot_clock.rs @@ -26,7 +26,7 @@ impl SystemTimeSlotClock { if slot_duration_seconds == 0 { Err(Error::SlotDurationIsZero) } else { - Ok(SystemTimeSlotClock { + Ok(Self { genesis_seconds, slot_duration_seconds, }) diff --git a/lighthouse/beacon_chain/src/block_production.rs b/lighthouse/beacon_chain/src/block_production.rs index 9754b4a54..b83669cd2 100644 --- a/lighthouse/beacon_chain/src/block_production.rs +++ b/lighthouse/beacon_chain/src/block_production.rs @@ -23,25 +23,31 @@ where .present_slot()? .ok_or(Error::PresentSlotIsNone)?; let parent_root = self.canonical_leaf_block; - let parent_block = self + let parent_block_reader = self .block_store - .get_deserialized(&parent_root)? - .ok_or(Error::DBError("Block not found.".to_string()))?; - let parent_state = self + .get_reader(&parent_root)? + .ok_or_else(|| Error::DBError("Block not found.".to_string()))?; + let parent_state_reader = self .state_store - .get_deserialized(&parent_block.state_root())? - .ok_or(Error::DBError("State not found.".to_string()))?; + .get_reader(&parent_block_reader.state_root())? + .ok_or_else(|| Error::DBError("State not found.".to_string()))?; + let parent_block = parent_block_reader + .into_beacon_block() + .ok_or_else(|| Error::DBError("Bad parent block SSZ.".to_string()))?; let mut block = BeaconBlock { slot: present_slot, parent_root, state_root: Hash256::zero(), // Updated after the state is calculated. - ..parent_block.to_beacon_block() + ..parent_block }; + let parent_state = parent_state_reader + .into_beacon_state() + .ok_or_else(|| Error::DBError("Bad parent block SSZ.".to_string()))?; let state = BeaconState { slot: present_slot, - ..parent_state.to_beacon_state() + ..parent_state }; let state_root = state.canonical_root(); diff --git a/lighthouse/beacon_chain/src/lib.rs b/lighthouse/beacon_chain/src/lib.rs index 6acdc3ef6..2a3d41538 100644 --- a/lighthouse/beacon_chain/src/lib.rs +++ b/lighthouse/beacon_chain/src/lib.rs @@ -55,7 +55,7 @@ where block_store.put(&block_root, &ssz_encode(&genesis_block)[..])?; let mut leaf_blocks = HashSet::new(); - leaf_blocks.insert(block_root.clone()); + leaf_blocks.insert(block_root); Ok(Self { block_store, diff --git a/lighthouse/db/src/stores/macros.rs b/lighthouse/db/src/stores/macros.rs index 2086dcbac..36b8aef8e 100644 --- a/lighthouse/db/src/stores/macros.rs +++ b/lighthouse/db/src/stores/macros.rs @@ -20,6 +20,7 @@ macro_rules! impl_crud_for_store { }; } +#[allow(unused_macros)] macro_rules! test_crud_for_store { ($store: ident, $db_column: expr) => { #[test]