diff --git a/Cargo.toml b/Cargo.toml index c73e9f22d..a473e0391 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,6 @@ members = [ "eth2/attestation_validation", "eth2/genesis", "eth2/naive_fork_choice", - "eth2/spec", "eth2/types", "eth2/utils/bls", "eth2/utils/boolean-bitfield", diff --git a/beacon_node/src/beacon_chain/mod.rs b/beacon_node/src/beacon_chain/mod.rs index 2a3d41538..09dec741c 100644 --- a/beacon_node/src/beacon_chain/mod.rs +++ b/beacon_node/src/beacon_chain/mod.rs @@ -7,11 +7,10 @@ use db::{ }; use genesis::{genesis_beacon_block, genesis_beacon_state, GenesisError}; use slot_clock::SlotClock; -use spec::ChainSpec; use ssz::ssz_encode; use std::collections::HashSet; use std::sync::Arc; -use types::Hash256; +use types::{ChainSpec, Hash256}; pub use crate::block_processing::Outcome as BlockProcessingOutcome; diff --git a/beacon_node/src/beacon_chain/tests/chain_test.rs b/beacon_node/src/beacon_chain/tests/chain_test.rs index 8d2cfa501..fe7dfcf6c 100644 --- a/beacon_node/src/beacon_chain/tests/chain_test.rs +++ b/beacon_node/src/beacon_chain/tests/chain_test.rs @@ -4,8 +4,8 @@ use db::{ MemoryDB, }; use slot_clock::TestingSlotClock; -use spec::ChainSpec; use std::sync::Arc; +use types::ChainSpec; fn in_memory_test_stores() -> ( Arc, diff --git a/eth2/genesis/Cargo.toml b/eth2/genesis/Cargo.toml index 499333979..d56b3f929 100644 --- a/eth2/genesis/Cargo.toml +++ b/eth2/genesis/Cargo.toml @@ -6,7 +6,6 @@ edition = "2018" [dependencies] bls = { path = "../utils/bls" } -spec = { path = "../spec" } ssz = { path = "../utils/ssz" } types = { path = "../types" } validator_induction = { path = "../validator_induction" } diff --git a/eth2/genesis/src/beacon_block.rs b/eth2/genesis/src/beacon_block.rs index e79e3d2f4..debc2bd2b 100644 --- a/eth2/genesis/src/beacon_block.rs +++ b/eth2/genesis/src/beacon_block.rs @@ -1,5 +1,4 @@ -use spec::ChainSpec; -use types::{BeaconBlock, BeaconBlockBody, Eth1Data, Hash256}; +use types::{BeaconBlock, BeaconBlockBody, ChainSpec, Eth1Data, Hash256}; /// Generate a genesis BeaconBlock. pub fn genesis_beacon_block(state_root: Hash256, spec: &ChainSpec) -> BeaconBlock { diff --git a/eth2/genesis/src/beacon_state.rs b/eth2/genesis/src/beacon_state.rs index 7644e782b..788af7c82 100644 --- a/eth2/genesis/src/beacon_state.rs +++ b/eth2/genesis/src/beacon_state.rs @@ -1,5 +1,4 @@ -use spec::ChainSpec; -use types::{BeaconState, Crosslink, Fork}; +use types::{BeaconState, ChainSpec, Crosslink, Fork}; use validator_shuffling::{shard_and_committees_for_cycle, ValidatorAssignmentError}; #[derive(Debug, PartialEq)] diff --git a/eth2/genesis/src/lib.rs b/eth2/genesis/src/lib.rs index 6f45863aa..003e66959 100644 --- a/eth2/genesis/src/lib.rs +++ b/eth2/genesis/src/lib.rs @@ -1,8 +1,3 @@ -extern crate spec; -extern crate types; -extern crate validator_induction; -extern crate validator_shuffling; - mod beacon_block; mod beacon_state; diff --git a/eth2/spec/Cargo.toml b/eth2/spec/Cargo.toml deleted file mode 100644 index 5c535ab41..000000000 --- a/eth2/spec/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "spec" -version = "0.1.0" -authors = ["Paul Hauner "] -edition = "2018" - -[dependencies] -bls = { path = "../utils/bls" } -types = { path = "../types" } diff --git a/eth2/types/src/lib.rs b/eth2/types/src/lib.rs index 6c4a1b977..1018e38af 100644 --- a/eth2/types/src/lib.rs +++ b/eth2/types/src/lib.rs @@ -25,6 +25,7 @@ pub mod proposer_slashing; pub mod shard_committee; pub mod shard_reassignment_record; pub mod slashable_vote_data; +pub mod spec; pub mod special_record; pub mod validator; pub mod validator_registry; @@ -54,6 +55,7 @@ pub use crate::proposal_signed_data::ProposalSignedData; pub use crate::proposer_slashing::ProposerSlashing; pub use crate::shard_committee::ShardCommittee; pub use crate::slashable_vote_data::SlashableVoteData; +pub use crate::spec::ChainSpec; pub use crate::special_record::{SpecialRecord, SpecialRecordKind}; pub use crate::validator::{StatusFlags as ValidatorStatusFlags, Validator}; pub use crate::validator_registry_delta_block::ValidatorRegistryDeltaBlock; diff --git a/eth2/spec/src/foundation.rs b/eth2/types/src/spec/foundation.rs similarity index 98% rename from eth2/spec/src/foundation.rs rename to eth2/types/src/spec/foundation.rs index 8508a74e1..f24a55b2a 100644 --- a/eth2/spec/src/foundation.rs +++ b/eth2/types/src/spec/foundation.rs @@ -1,7 +1,7 @@ use super::ChainSpec; use bls::{Keypair, PublicKey, SecretKey, Signature}; -use types::{Address, Eth1Data, Hash256, Validator}; +use crate::{Address, Eth1Data, Hash256, Validator}; /// The size of a validators deposit in GWei. pub const DEPOSIT_GWEI: u64 = 32_000_000_000; diff --git a/eth2/spec/src/lib.rs b/eth2/types/src/spec/mod.rs similarity index 95% rename from eth2/spec/src/lib.rs rename to eth2/types/src/spec/mod.rs index 3e7d5dd2b..1bf5b3d50 100644 --- a/eth2/spec/src/lib.rs +++ b/eth2/types/src/spec/mod.rs @@ -1,10 +1,7 @@ -extern crate bls; -extern crate types; - mod foundation; +use crate::{Address, Eth1Data, Hash256, Validator}; use bls::Signature; -use types::{Address, Eth1Data, Hash256, Validator}; #[derive(PartialEq, Debug)] pub struct ChainSpec { diff --git a/eth2/validator_induction/Cargo.toml b/eth2/validator_induction/Cargo.toml index 3530bbbf1..5907014df 100644 --- a/eth2/validator_induction/Cargo.toml +++ b/eth2/validator_induction/Cargo.toml @@ -8,4 +8,3 @@ edition = "2018" bls = { path = "../utils/bls" } hashing = { path = "../utils/hashing" } types = { path = "../types" } -spec = { path = "../spec" } diff --git a/eth2/validator_induction/src/inductor.rs b/eth2/validator_induction/src/inductor.rs index 6efc9af2e..6b3cfdf16 100644 --- a/eth2/validator_induction/src/inductor.rs +++ b/eth2/validator_induction/src/inductor.rs @@ -1,6 +1,5 @@ use bls::verify_proof_of_possession; -use spec::ChainSpec; -use types::{BeaconState, Deposit, Validator}; +use types::{BeaconState, ChainSpec, Deposit, Validator}; #[derive(Debug, PartialEq, Clone)] pub enum ValidatorInductionError { diff --git a/eth2/validator_induction/src/lib.rs b/eth2/validator_induction/src/lib.rs index 7119d6c2e..3a4fa9a14 100644 --- a/eth2/validator_induction/src/lib.rs +++ b/eth2/validator_induction/src/lib.rs @@ -1,8 +1,3 @@ -extern crate bls; -extern crate hashing; -extern crate spec; -extern crate types; - mod inductor; pub use crate::inductor::{process_deposit, ValidatorInductionError}; diff --git a/eth2/validator_shuffling/Cargo.toml b/eth2/validator_shuffling/Cargo.toml index 99a97c5ec..ae2babf1a 100644 --- a/eth2/validator_shuffling/Cargo.toml +++ b/eth2/validator_shuffling/Cargo.toml @@ -6,6 +6,5 @@ edition = "2018" [dependencies] honey-badger-split = { path = "../utils/honey-badger-split" } -spec = { path = "../spec" } types = { path = "../types" } vec_shuffle = { path = "../utils/vec_shuffle" } diff --git a/eth2/validator_shuffling/src/lib.rs b/eth2/validator_shuffling/src/lib.rs index ee59ffecc..2307dd301 100644 --- a/eth2/validator_shuffling/src/lib.rs +++ b/eth2/validator_shuffling/src/lib.rs @@ -1,8 +1,3 @@ -extern crate honey_badger_split; -extern crate spec; -extern crate types; -extern crate vec_shuffle; - mod shuffle; pub use crate::shuffle::{shard_and_committees_for_cycle, ValidatorAssignmentError}; diff --git a/eth2/validator_shuffling/src/shuffle.rs b/eth2/validator_shuffling/src/shuffle.rs index 734f5995c..ea2cba7f4 100644 --- a/eth2/validator_shuffling/src/shuffle.rs +++ b/eth2/validator_shuffling/src/shuffle.rs @@ -1,8 +1,7 @@ use std::cmp::min; use honey_badger_split::SplitExt; -use spec::ChainSpec; -use types::validator_registry::get_active_validator_indices; +use types::{validator_registry::get_active_validator_indices, ChainSpec}; use types::{ShardCommittee, Validator}; use vec_shuffle::{shuffle, ShuffleErr}; diff --git a/validator_client/Cargo.toml b/validator_client/Cargo.toml index c23e6607a..dfec240c4 100644 --- a/validator_client/Cargo.toml +++ b/validator_client/Cargo.toml @@ -12,7 +12,6 @@ grpcio = { version = "0.4", default-features = false, features = ["protobuf-code protobuf = "2.0.2" protos = { path = "../protos" } slot_clock = { path = "../eth2/utils/slot_clock" } -spec = { path = "../eth2/spec" } types = { path = "../eth2/types" } slog = "^2.2.3" slog-term = "^2.4.0" diff --git a/validator_client/src/block_producer/mod.rs b/validator_client/src/block_producer/mod.rs index f3cd0199b..e36d4ed80 100644 --- a/validator_client/src/block_producer/mod.rs +++ b/validator_client/src/block_producer/mod.rs @@ -7,9 +7,8 @@ mod traits; use self::traits::{BeaconNode, BeaconNodeError}; use super::EpochDutiesMap; use slot_clock::SlotClock; -use spec::ChainSpec; use std::sync::{Arc, RwLock}; -use types::BeaconBlock; +use types::{BeaconBlock, ChainSpec}; pub use self::service::BlockProducerService; diff --git a/validator_client/src/duties/mod.rs b/validator_client/src/duties/mod.rs index 4656715ba..851c2a033 100644 --- a/validator_client/src/duties/mod.rs +++ b/validator_client/src/duties/mod.rs @@ -7,9 +7,9 @@ mod traits; use self::traits::{BeaconNode, BeaconNodeError}; use bls::PublicKey; use slot_clock::SlotClock; -use spec::ChainSpec; use std::collections::HashMap; use std::sync::{Arc, RwLock}; +use types::ChainSpec; pub use self::service::DutiesManagerService; diff --git a/validator_client/src/main.rs b/validator_client/src/main.rs index bbbc0b4c3..56c705494 100644 --- a/validator_client/src/main.rs +++ b/validator_client/src/main.rs @@ -7,10 +7,10 @@ use grpcio::{ChannelBuilder, EnvBuilder}; use protos::services_grpc::{BeaconBlockServiceClient, ValidatorServiceClient}; use slog::{error, info, o, Drain}; use slot_clock::SystemTimeSlotClock; -use spec::ChainSpec; use std::path::PathBuf; use std::sync::{Arc, RwLock}; use std::thread; +use types::ChainSpec; mod block_producer; mod config;