Merge branch 'master' into disk-db

This commit is contained in:
Paul Hauner 2019-05-21 17:57:55 +10:00
commit 29427cf0e6
No known key found for this signature in database
GPG Key ID: 5E2CFF9B75FA63DF
2 changed files with 16 additions and 8 deletions

View File

@ -1,6 +1,6 @@
use tree_hash::SignedRoot;
use types::test_utils::{TestingBeaconBlockBuilder, TestingBeaconStateBuilder}; use types::test_utils::{TestingBeaconBlockBuilder, TestingBeaconStateBuilder};
use types::*; use types::*;
use tree_hash::SignedRoot;
pub struct BlockProcessingBuilder<T: EthSpec> { pub struct BlockProcessingBuilder<T: EthSpec> {
pub state_builder: TestingBeaconStateBuilder<T>, pub state_builder: TestingBeaconStateBuilder<T>,
@ -31,7 +31,12 @@ impl<T: EthSpec> BlockProcessingBuilder<T> {
self.state_builder.build_caches(&spec).unwrap(); self.state_builder.build_caches(&spec).unwrap();
} }
pub fn build(mut self, randao_sk: Option<SecretKey>, previous_block_root: Option<Hash256>, spec: &ChainSpec) -> (BeaconBlock, BeaconState<T>) { pub fn build(
mut self,
randao_sk: Option<SecretKey>,
previous_block_root: Option<Hash256>,
spec: &ChainSpec,
) -> (BeaconBlock, BeaconState<T>) {
let (state, keypairs) = self.state_builder.build(); let (state, keypairs) = self.state_builder.build();
let builder = &mut self.block_builder; let builder = &mut self.block_builder;
@ -39,7 +44,9 @@ impl<T: EthSpec> BlockProcessingBuilder<T> {
match previous_block_root { match previous_block_root {
Some(root) => builder.set_previous_block_root(root), Some(root) => builder.set_previous_block_root(root),
None => builder.set_previous_block_root(Hash256::from_slice(&state.latest_block_header.signed_root())), None => builder.set_previous_block_root(Hash256::from_slice(
&state.latest_block_header.signed_root(),
)),
} }
let proposer_index = state let proposer_index = state
@ -56,5 +63,4 @@ impl<T: EthSpec> BlockProcessingBuilder<T> {
(block, state) (block, state)
} }
} }

View File

@ -49,8 +49,8 @@ fn invalid_parent_block_root() {
assert_eq!( assert_eq!(
result, result,
Err(BlockProcessingError::Invalid( Err(BlockProcessingError::Invalid(
BlockInvalid::ParentBlockRootMismatch{ BlockInvalid::ParentBlockRootMismatch {
state: Hash256::from_slice(&state.latest_block_header.signed_root()), state: Hash256::from_slice(&state.latest_block_header.signed_root()),
block: block.previous_block_root block: block.previous_block_root
} }
)) ))
@ -88,13 +88,15 @@ fn invalid_randao_reveal_signature() {
// sign randao reveal with random keypair // sign randao reveal with random keypair
let keypair = Keypair::random(); let keypair = Keypair::random();
let (block, mut state) = builder.build(Some(keypair.sk), None, &spec); let (block, mut state) = builder.build(Some(keypair.sk), None, &spec);
let result = per_block_processing(&mut state, &block, &spec); let result = per_block_processing(&mut state, &block, &spec);
// should get a BadRandaoSignature error // should get a BadRandaoSignature error
assert_eq!( assert_eq!(
result, result,
Err(BlockProcessingError::Invalid(BlockInvalid::BadRandaoSignature)) Err(BlockProcessingError::Invalid(
BlockInvalid::BadRandaoSignature
))
); );
} }