Update block_producer for upstream changes

This commit is contained in:
Paul Hauner
2019-01-25 11:29:41 +11:00
parent 5fdad686fa
commit 643fc20063
4 changed files with 52 additions and 27 deletions

View File

@@ -1,10 +1,10 @@
use crate::traits::{BeaconNode, BeaconNodeError};
use crate::traits::{BeaconNode, BeaconNodeError, PublishOutcome};
use std::sync::RwLock;
use types::{BeaconBlock, PublicKey, Signature};
type NonceResult = Result<u64, BeaconNodeError>;
type ProduceResult = Result<Option<BeaconBlock>, BeaconNodeError>;
type PublishResult = Result<bool, BeaconNodeError>;
type PublishResult = Result<PublishOutcome, BeaconNodeError>;
/// A test-only struct used to simulate a Beacon Node.
#[derive(Default)]

View File

@@ -1,11 +1,24 @@
use crate::{DutiesReader, DutiesReaderError};
use std::collections::HashMap;
pub type TestEpochMap = HashMap<u64, u64>;
pub struct TestEpochMap {
epoch_length: u64,
map: HashMap<u64, u64>,
}
impl TestEpochMap {
fn new(epoch_length: u64) -> Self {
Self {
epoch_length,
map: HashMap::new(),
}
}
}
impl DutiesReader for TestEpochMap {
fn is_block_production_slot(&self, epoch: u64, slot: u64) -> Result<bool, DutiesReaderError> {
match self.get(&epoch) {
fn is_block_production_slot(&self, slot: u64) -> Result<bool, DutiesReaderError> {
let epoch = slot / self.epoch_length;
match self.map.get(&epoch) {
Some(s) if *s == slot => Ok(true),
Some(s) if *s != slot => Ok(false),
_ => Err(DutiesReaderError::UnknownEpoch),