use crate::per_epoch_processing::altair::participation_cache::Error as ParticipationCacheError; use types::{milhouse, BeaconStateError, InconsistentFork}; #[derive(Debug, PartialEq)] pub enum EpochProcessingError { UnableToDetermineProducer, NoBlockRoots, BaseRewardQuotientIsZero, NoRandaoSeed, PreviousTotalBalanceIsZero, InclusionDistanceZero, ValidatorStatusesInconsistent, DeltasInconsistent, DeltaOutOfBounds(usize), /// Unable to get the inclusion distance for a validator that should have an inclusion /// distance. This indicates an internal inconsistency. /// /// (validator_index) InclusionSlotsInconsistent(usize), BeaconStateError(BeaconStateError), InclusionError(InclusionError), SszTypesError(ssz_types::Error), ArithError(safe_arith::ArithError), InconsistentStateFork(InconsistentFork), InvalidJustificationBit(ssz_types::Error), InvalidFlagIndex(usize), ParticipationCache(ParticipationCacheError), MilhouseError(milhouse::Error), } impl From for EpochProcessingError { fn from(e: InclusionError) -> EpochProcessingError { EpochProcessingError::InclusionError(e) } } impl From for EpochProcessingError { fn from(e: BeaconStateError) -> EpochProcessingError { EpochProcessingError::BeaconStateError(e) } } impl From for EpochProcessingError { fn from(e: ssz_types::Error) -> EpochProcessingError { EpochProcessingError::SszTypesError(e) } } impl From for EpochProcessingError { fn from(e: safe_arith::ArithError) -> EpochProcessingError { EpochProcessingError::ArithError(e) } } impl From for EpochProcessingError { fn from(e: ParticipationCacheError) -> EpochProcessingError { EpochProcessingError::ParticipationCache(e) } } impl From for EpochProcessingError { fn from(e: milhouse::Error) -> Self { Self::MilhouseError(e) } } #[derive(Debug, PartialEq)] pub enum InclusionError { /// The validator did not participate in an attestation in this period. NoAttestationsForValidator, BeaconStateError(BeaconStateError), } impl From for InclusionError { fn from(e: BeaconStateError) -> InclusionError { InclusionError::BeaconStateError(e) } }