mirror of
https://gitlab.com/pulsechaincom/lighthouse-pulse.git
synced 2025-01-06 02:52:20 +00:00
Merge pull request #303 from sigp/cloned-keypairs
Add TestingBeaconStateBuilder fn for cloned keypairs
This commit is contained in:
commit
3112f83786
@ -198,6 +198,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
#[ignore]
|
||||||
fn test_block_at_slot() {
|
fn test_block_at_slot() {
|
||||||
let db = Arc::new(MemoryDB::open());
|
let db = Arc::new(MemoryDB::open());
|
||||||
let bs = Arc::new(BeaconBlockStore::new(db.clone()));
|
let bs = Arc::new(BeaconBlockStore::new(db.clone()));
|
||||||
|
@ -24,7 +24,7 @@ use std::collections::HashMap;
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::{fs::File, io::prelude::*, path::PathBuf};
|
use std::{fs::File, io::prelude::*, path::PathBuf};
|
||||||
use types::test_utils::TestingBeaconStateBuilder;
|
use types::test_utils::TestingBeaconStateBuilder;
|
||||||
use types::{BeaconBlock, BeaconBlockBody, ChainSpec, Eth1Data, Hash256, Slot};
|
use types::{BeaconBlock, BeaconBlockBody, ChainSpec, Eth1Data, Hash256, Keypair, Slot};
|
||||||
use yaml_rust::yaml;
|
use yaml_rust::yaml;
|
||||||
|
|
||||||
// Note: We Assume the block Id's are hex-encoded.
|
// Note: We Assume the block Id's are hex-encoded.
|
||||||
@ -218,7 +218,7 @@ fn load_test_cases_from_yaml(file_path: &str) -> Vec<yaml_rust::Yaml> {
|
|||||||
// initialise a single validator and state. All blocks will reference this state root.
|
// initialise a single validator and state. All blocks will reference this state root.
|
||||||
fn setup_inital_state(
|
fn setup_inital_state(
|
||||||
fork_choice_algo: &ForkChoiceAlgorithm,
|
fork_choice_algo: &ForkChoiceAlgorithm,
|
||||||
no_validators: usize,
|
num_validators: usize,
|
||||||
) -> (Box<ForkChoice>, Arc<BeaconBlockStore<MemoryDB>>, Hash256) {
|
) -> (Box<ForkChoice>, Arc<BeaconBlockStore<MemoryDB>>, Hash256) {
|
||||||
let db = Arc::new(MemoryDB::open());
|
let db = Arc::new(MemoryDB::open());
|
||||||
let block_store = Arc::new(BeaconBlockStore::new(db.clone()));
|
let block_store = Arc::new(BeaconBlockStore::new(db.clone()));
|
||||||
@ -243,7 +243,7 @@ fn setup_inital_state(
|
|||||||
let spec = ChainSpec::foundation();
|
let spec = ChainSpec::foundation();
|
||||||
|
|
||||||
let state_builder =
|
let state_builder =
|
||||||
TestingBeaconStateBuilder::from_deterministic_keypairs(no_validators, &spec);
|
TestingBeaconStateBuilder::from_single_keypair(num_validators, &Keypair::random(), &spec);
|
||||||
let (state, _keypairs) = state_builder.build();
|
let (state, _keypairs) = state_builder.build();
|
||||||
|
|
||||||
let state_root = state.canonical_root();
|
let state_root = state.canonical_root();
|
||||||
|
@ -74,6 +74,22 @@ impl TestingBeaconStateBuilder {
|
|||||||
TestingBeaconStateBuilder::from_keypairs(keypairs, spec)
|
TestingBeaconStateBuilder::from_keypairs(keypairs, spec)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Uses the given keypair for all validators.
|
||||||
|
pub fn from_single_keypair(
|
||||||
|
validator_count: usize,
|
||||||
|
keypair: &Keypair,
|
||||||
|
spec: &ChainSpec,
|
||||||
|
) -> Self {
|
||||||
|
debug!("Generating {} cloned keypairs...", validator_count);
|
||||||
|
|
||||||
|
let mut keypairs = Vec::with_capacity(validator_count);
|
||||||
|
for _ in 0..validator_count {
|
||||||
|
keypairs.push(keypair.clone())
|
||||||
|
}
|
||||||
|
|
||||||
|
TestingBeaconStateBuilder::from_keypairs(keypairs, spec)
|
||||||
|
}
|
||||||
|
|
||||||
/// Creates the builder from an existing set of keypairs.
|
/// Creates the builder from an existing set of keypairs.
|
||||||
pub fn from_keypairs(keypairs: Vec<Keypair>, spec: &ChainSpec) -> Self {
|
pub fn from_keypairs(keypairs: Vec<Keypair>, spec: &ChainSpec) -> Self {
|
||||||
let validator_count = keypairs.len();
|
let validator_count = keypairs.len();
|
||||||
|
Loading…
Reference in New Issue
Block a user