|
|
|
|
@@ -2,7 +2,7 @@ use crate::cases::{self, Case, Cases, EpochTransition, LoadCase, Operation};
|
|
|
|
|
use crate::type_name::TypeName;
|
|
|
|
|
use crate::{FeatureName, type_name};
|
|
|
|
|
use context_deserialize::ContextDeserialize;
|
|
|
|
|
use derivative::Derivative;
|
|
|
|
|
use educe::Educe;
|
|
|
|
|
use std::fs::{self, DirEntry};
|
|
|
|
|
use std::marker::PhantomData;
|
|
|
|
|
use std::path::PathBuf;
|
|
|
|
|
@@ -154,8 +154,8 @@ pub trait Handler {
|
|
|
|
|
|
|
|
|
|
macro_rules! bls_eth_handler {
|
|
|
|
|
($runner_name: ident, $case_name:ident, $handler_name:expr) => {
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct $runner_name;
|
|
|
|
|
|
|
|
|
|
impl Handler for $runner_name {
|
|
|
|
|
@@ -174,8 +174,8 @@ macro_rules! bls_eth_handler {
|
|
|
|
|
|
|
|
|
|
macro_rules! bls_handler {
|
|
|
|
|
($runner_name: ident, $case_name:ident, $handler_name:expr) => {
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct $runner_name;
|
|
|
|
|
|
|
|
|
|
impl Handler for $runner_name {
|
|
|
|
|
@@ -335,8 +335,8 @@ impl<T, E> SszStaticHandler<T, E> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Handler for SSZ types that implement `CachedTreeHash`.
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct SszStaticTHCHandler<T, E>(PhantomData<(T, E)>);
|
|
|
|
|
|
|
|
|
|
/// Handler for SSZ types that don't implement `ssz::Decode`.
|
|
|
|
|
@@ -436,8 +436,8 @@ where
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct ShufflingHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for ShufflingHandler<E> {
|
|
|
|
|
@@ -460,8 +460,8 @@ impl<E: EthSpec + TypeName> Handler for ShufflingHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct SanityBlocksHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for SanityBlocksHandler<E> {
|
|
|
|
|
@@ -486,8 +486,8 @@ impl<E: EthSpec + TypeName> Handler for SanityBlocksHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct SanitySlotsHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for SanitySlotsHandler<E> {
|
|
|
|
|
@@ -511,8 +511,8 @@ impl<E: EthSpec + TypeName> Handler for SanitySlotsHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct RandomHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for RandomHandler<E> {
|
|
|
|
|
@@ -531,8 +531,8 @@ impl<E: EthSpec + TypeName> Handler for RandomHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct EpochProcessingHandler<E, T>(PhantomData<(E, T)>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName, T: EpochTransition<E>> Handler for EpochProcessingHandler<E, T> {
|
|
|
|
|
@@ -581,8 +581,8 @@ impl<E: EthSpec + TypeName> Handler for RewardsHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct ForkHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for ForkHandler<E> {
|
|
|
|
|
@@ -601,8 +601,8 @@ impl<E: EthSpec + TypeName> Handler for ForkHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct TransitionHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for TransitionHandler<E> {
|
|
|
|
|
@@ -621,8 +621,8 @@ impl<E: EthSpec + TypeName> Handler for TransitionHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct FinalityHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for FinalityHandler<E> {
|
|
|
|
|
@@ -705,8 +705,8 @@ impl<E: EthSpec + TypeName> Handler for ForkChoiceHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct OptimisticSyncHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for OptimisticSyncHandler<E> {
|
|
|
|
|
@@ -734,8 +734,8 @@ impl<E: EthSpec + TypeName> Handler for OptimisticSyncHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct GenesisValidityHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for GenesisValidityHandler<E> {
|
|
|
|
|
@@ -754,8 +754,8 @@ impl<E: EthSpec + TypeName> Handler for GenesisValidityHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct GenesisInitializationHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for GenesisInitializationHandler<E> {
|
|
|
|
|
@@ -774,8 +774,8 @@ impl<E: EthSpec + TypeName> Handler for GenesisInitializationHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGBlobToKZGCommitmentHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGBlobToKZGCommitmentHandler<E> {
|
|
|
|
|
@@ -794,8 +794,8 @@ impl<E: EthSpec> Handler for KZGBlobToKZGCommitmentHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGComputeBlobKZGProofHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGComputeBlobKZGProofHandler<E> {
|
|
|
|
|
@@ -814,8 +814,8 @@ impl<E: EthSpec> Handler for KZGComputeBlobKZGProofHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGComputeKZGProofHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGComputeKZGProofHandler<E> {
|
|
|
|
|
@@ -834,8 +834,8 @@ impl<E: EthSpec> Handler for KZGComputeKZGProofHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGVerifyBlobKZGProofHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGVerifyBlobKZGProofHandler<E> {
|
|
|
|
|
@@ -854,8 +854,8 @@ impl<E: EthSpec> Handler for KZGVerifyBlobKZGProofHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGVerifyBlobKZGProofBatchHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGVerifyBlobKZGProofBatchHandler<E> {
|
|
|
|
|
@@ -874,8 +874,8 @@ impl<E: EthSpec> Handler for KZGVerifyBlobKZGProofBatchHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGVerifyKZGProofHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGVerifyKZGProofHandler<E> {
|
|
|
|
|
@@ -894,8 +894,8 @@ impl<E: EthSpec> Handler for KZGVerifyKZGProofHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct GetCustodyGroupsHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for GetCustodyGroupsHandler<E> {
|
|
|
|
|
@@ -914,8 +914,8 @@ impl<E: EthSpec + TypeName> Handler for GetCustodyGroupsHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct ComputeColumnsForCustodyGroupHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for ComputeColumnsForCustodyGroupHandler<E> {
|
|
|
|
|
@@ -934,8 +934,8 @@ impl<E: EthSpec + TypeName> Handler for ComputeColumnsForCustodyGroupHandler<E>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGComputeCellsHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGComputeCellsHandler<E> {
|
|
|
|
|
@@ -954,8 +954,8 @@ impl<E: EthSpec> Handler for KZGComputeCellsHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGComputeCellsAndKZGProofHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGComputeCellsAndKZGProofHandler<E> {
|
|
|
|
|
@@ -974,8 +974,8 @@ impl<E: EthSpec> Handler for KZGComputeCellsAndKZGProofHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGVerifyCellKZGProofBatchHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGVerifyCellKZGProofBatchHandler<E> {
|
|
|
|
|
@@ -994,8 +994,8 @@ impl<E: EthSpec> Handler for KZGVerifyCellKZGProofBatchHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KZGRecoverCellsAndKZGProofHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec> Handler for KZGRecoverCellsAndKZGProofHandler<E> {
|
|
|
|
|
@@ -1014,8 +1014,8 @@ impl<E: EthSpec> Handler for KZGRecoverCellsAndKZGProofHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct KzgInclusionMerkleProofValidityHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for KzgInclusionMerkleProofValidityHandler<E> {
|
|
|
|
|
@@ -1038,8 +1038,8 @@ impl<E: EthSpec + TypeName> Handler for KzgInclusionMerkleProofValidityHandler<E
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct MerkleProofValidityHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for MerkleProofValidityHandler<E> {
|
|
|
|
|
@@ -1062,8 +1062,8 @@ impl<E: EthSpec + TypeName> Handler for MerkleProofValidityHandler<E> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct LightClientUpdateHandler<E>(PhantomData<E>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName> Handler for LightClientUpdateHandler<E> {
|
|
|
|
|
@@ -1083,13 +1083,12 @@ impl<E: EthSpec + TypeName> Handler for LightClientUpdateHandler<E> {
|
|
|
|
|
|
|
|
|
|
fn is_enabled_for_fork(&self, fork_name: ForkName) -> bool {
|
|
|
|
|
// Enabled in Altair
|
|
|
|
|
// No test in Fulu yet.
|
|
|
|
|
fork_name.altair_enabled() && fork_name != ForkName::Fulu
|
|
|
|
|
fork_name.altair_enabled()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct OperationsHandler<E, O>(PhantomData<(E, O)>);
|
|
|
|
|
|
|
|
|
|
impl<E: EthSpec + TypeName, O: Operation<E>> Handler for OperationsHandler<E, O> {
|
|
|
|
|
@@ -1108,8 +1107,8 @@ impl<E: EthSpec + TypeName, O: Operation<E>> Handler for OperationsHandler<E, O>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Derivative)]
|
|
|
|
|
#[derivative(Default(bound = ""))]
|
|
|
|
|
#[derive(Educe)]
|
|
|
|
|
#[educe(Default)]
|
|
|
|
|
pub struct SszGenericHandler<H>(PhantomData<H>);
|
|
|
|
|
|
|
|
|
|
impl<H: TypeName> Handler for SszGenericHandler<H> {
|
|
|
|
|
|