Merge spec crate into types

This commit is contained in:
Paul Hauner
2019-01-25 13:52:21 +11:00
parent 9c86c07eea
commit ea523c8658
57 changed files with 81 additions and 131 deletions

View File

@@ -6,6 +6,5 @@ edition = "2018"
[dependencies]
slot_clock = { path = "../../eth2/utils/slot_clock" }
spec = { path = "../../eth2/spec" }
ssz = { path = "../../eth2/utils/ssz" }
types = { path = "../../eth2/types" }

View File

@@ -2,10 +2,9 @@ pub mod test_utils;
mod traits;
use slot_clock::SlotClock;
use spec::ChainSpec;
use ssz::ssz_encode;
use std::sync::Arc;
use types::{BeaconBlock, Hash256, ProposalSignedData, PublicKey};
use types::{BeaconBlock, ChainSpec, Hash256, ProposalSignedData, PublicKey};
pub use self::traits::{
BeaconNode, BeaconNodeError, DutiesReader, DutiesReaderError, PublishOutcome, Signer,

View File

@@ -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" }

View File

@@ -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 {

View File

@@ -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)]

View File

@@ -1,8 +1,3 @@
extern crate spec;
extern crate types;
extern crate validator_induction;
extern crate validator_shuffling;
mod beacon_block;
mod beacon_state;

View File

@@ -1,9 +0,0 @@
[package]
name = "spec"
version = "0.1.0"
authors = ["Paul Hauner <paul@paulhauner.com>"]
edition = "2018"
[dependencies]
bls = { path = "../utils/bls" }
types = { path = "../types" }

View File

@@ -1,8 +1,8 @@
use super::bls::AggregateSignature;
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::{AttestationData, Bitfield};
use crate::test_utils::TestRandom;
use bls::AggregateSignature;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, Clone, PartialEq)]
pub struct Attestation {
@@ -62,7 +62,7 @@ impl<T: RngCore> TestRandom<T> for Attestation {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::Hash256;
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
pub const SSZ_ATTESTION_DATA_LENGTH: usize = {
8 + // slot
@@ -102,7 +102,7 @@ impl<T: RngCore> TestRandom<T> for AttestationData {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::AttestationData;
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, Clone, PartialEq, Default)]
pub struct AttestationDataAndCustodyBit {
@@ -39,7 +39,7 @@ impl<T: RngCore> TestRandom<T> for AttestationDataAndCustodyBit {
#[cfg(test)]
mod test {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,9 +1,9 @@
use super::ssz::{ssz_encode, Decodable, DecodeError, Encodable, SszStream};
use super::{BeaconBlockBody, Eth1Data, Hash256};
use crate::test_utils::TestRandom;
use bls::Signature;
use hashing::canonical_hash;
use rand::RngCore;
use ssz::{ssz_encode, Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct BeaconBlock {
@@ -77,7 +77,7 @@ impl<T: RngCore> TestRandom<T> for BeaconBlock {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::{Attestation, CasperSlashing, Deposit, Exit, ProposerSlashing};
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
// The following types are just dummy classes as they will not be defined until
// Phase 1 (Sharding phase)
@@ -78,7 +78,7 @@ impl<T: RngCore> TestRandom<T> for BeaconBlockBody {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -203,7 +203,7 @@ impl<T: RngCore> TestRandom<T> for BeaconState {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::SlashableVoteData;
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct CasperSlashing {
@@ -42,7 +42,7 @@ impl<T: RngCore> TestRandom<T> for CasperSlashing {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::Hash256;
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Clone, Debug, PartialEq)]
pub struct Crosslink {
@@ -52,7 +52,7 @@ impl<T: RngCore> TestRandom<T> for Crosslink {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::{DepositData, Hash256};
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct Deposit {
@@ -47,7 +47,7 @@ impl<T: RngCore> TestRandom<T> for Deposit {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::DepositInput;
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct DepositData {
@@ -47,7 +47,7 @@ impl<T: RngCore> TestRandom<T> for DepositData {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,8 +1,8 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::Hash256;
use crate::test_utils::TestRandom;
use bls::{PublicKey, Signature};
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct DepositInput {
@@ -48,7 +48,7 @@ impl<T: RngCore> TestRandom<T> for DepositInput {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::Hash256;
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
// Note: this is refer to as DepositRootVote in specs
#[derive(Debug, PartialEq, Clone, Default)]
@@ -43,7 +43,7 @@ impl<T: RngCore> TestRandom<T> for Eth1Data {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::Eth1Data;
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
// Note: this is refer to as DepositRootVote in specs
#[derive(Debug, PartialEq, Clone, Default)]
@@ -43,7 +43,7 @@ impl<T: RngCore> TestRandom<T> for Eth1DataVote {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use crate::test_utils::TestRandom;
use bls::Signature;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct Exit {
@@ -47,7 +47,7 @@ impl<T: RngCore> TestRandom<T> for Exit {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,6 +1,6 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, Clone, PartialEq, Default)]
pub struct Fork {
@@ -46,7 +46,7 @@ impl<T: RngCore> TestRandom<T> for Fork {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,8 +1,3 @@
extern crate bls;
extern crate boolean_bitfield;
extern crate ethereum_types;
extern crate ssz;
pub mod test_utils;
pub mod attestation;
@@ -26,6 +21,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;
@@ -33,7 +29,7 @@ pub mod validator_registry_delta_block;
pub mod readers;
use self::ethereum_types::{H160, H256, U256};
use ethereum_types::{H160, H256, U256};
use std::collections::HashMap;
pub use crate::attestation::Attestation;
@@ -56,6 +52,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;

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::{AttestationData, Bitfield};
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, Clone, PartialEq)]
pub struct PendingAttestation {
@@ -52,7 +52,7 @@ impl<T: RngCore> TestRandom<T> for PendingAttestation {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,7 +1,7 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::Hash256;
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone, Default)]
pub struct ProposalSignedData {
@@ -47,7 +47,7 @@ impl<T: RngCore> TestRandom<T> for ProposalSignedData {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,8 +1,8 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::ProposalSignedData;
use crate::test_utils::TestRandom;
use bls::Signature;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct ProposerSlashing {
@@ -58,7 +58,7 @@ impl<T: RngCore> TestRandom<T> for ProposerSlashing {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,6 +1,6 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Clone, Debug, PartialEq)]
pub struct ShardCommittee {
@@ -35,7 +35,7 @@ impl<T: RngCore> TestRandom<T> for ShardCommittee {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,6 +1,6 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use crate::test_utils::TestRandom;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct ShardReassignmentRecord {
@@ -46,9 +46,9 @@ impl<T: RngCore> TestRandom<T> for ShardReassignmentRecord {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};
use ssz::ssz_encode;
#[test]
pub fn test_ssz_round_trip() {

View File

@@ -1,8 +1,8 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use super::AttestationData;
use crate::test_utils::TestRandom;
use bls::AggregateSignature;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
#[derive(Debug, PartialEq, Clone)]
pub struct SlashableVoteData {
@@ -53,7 +53,7 @@ impl<T: RngCore> TestRandom<T> for SlashableVoteData {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -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;

View File

@@ -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, Clone)]
pub struct ChainSpec {

View File

@@ -1,4 +1,4 @@
use super::ssz::{Decodable, DecodeError, Encodable, SszStream};
use ssz::{Decodable, DecodeError, Encodable, SszStream};
/// The value of the "type" field of SpecialRecord.
///

View File

@@ -1,6 +1,6 @@
use super::bls::PublicKey;
use super::Hash256;
use crate::test_utils::TestRandom;
use bls::PublicKey;
use rand::RngCore;
use ssz::{Decodable, DecodeError, Encodable, SszStream};
@@ -162,7 +162,7 @@ impl<T: RngCore> TestRandom<T> for Validator {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -72,7 +72,7 @@ impl<T: RngCore> TestRandom<T> for ValidatorRegistryDeltaBlock {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng};

View File

@@ -1,6 +1,6 @@
use super::ssz::{decode_ssz_list, Decodable, DecodeError, Encodable, SszStream};
use super::{AggregatePublicKey, Signature};
use bls_aggregates::AggregateSignature as RawAggregateSignature;
use ssz::{decode_ssz_list, Decodable, DecodeError, Encodable, SszStream};
/// A BLS aggregate signature.
///
@@ -46,8 +46,8 @@ impl Decodable for AggregateSignature {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::super::{Keypair, Signature};
use super::ssz::ssz_encode;
use super::*;
#[test]

View File

@@ -67,7 +67,7 @@ impl Hash for PublicKey {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::ssz::ssz_encode;
use super::*;
#[test]

View File

@@ -1,6 +1,6 @@
use super::ssz::{decode_ssz_list, Decodable, DecodeError, Encodable, SszStream};
use super::{PublicKey, SecretKey};
use bls_aggregates::Signature as RawSignature;
use ssz::{decode_ssz_list, Decodable, DecodeError, Encodable, SszStream};
/// A single BLS signature.
///
@@ -59,8 +59,8 @@ impl Decodable for Signature {
#[cfg(test)]
mod tests {
use super::super::ssz::ssz_encode;
use super::super::Keypair;
use super::ssz::ssz_encode;
use super::*;
#[test]

View File

@@ -8,4 +8,3 @@ edition = "2018"
bls = { path = "../utils/bls" }
hashing = { path = "../utils/hashing" }
types = { path = "../types" }
spec = { path = "../spec" }

View File

@@ -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 {

View File

@@ -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};

View File

@@ -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" }

View File

@@ -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};

View File

@@ -1,9 +1,8 @@
use std::cmp::min;
use honey_badger_split::SplitExt;
use spec::ChainSpec;
use types::validator_registry::get_active_validator_indices;
use types::{ShardCommittee, Validator};
use types::{ChainSpec, ShardCommittee, Validator};
use vec_shuffle::{shuffle, ShuffleErr};
type DelegatedCycle = Vec<Vec<ShardCommittee>>;