diff --git a/consensus/types/src/light_client_bootstrap.rs b/consensus/types/src/light_client_bootstrap.rs index 616aced483a..843b3cd514b 100644 --- a/consensus/types/src/light_client_bootstrap.rs +++ b/consensus/types/src/light_client_bootstrap.rs @@ -8,6 +8,7 @@ use serde_json::Value; use ssz_derive::{Decode, Encode}; use std::sync::Arc; use test_random_derive::TestRandom; +use tree_hash_derive::TreeHash; /// A LightClientBootstrap is the initializer we send over to lightclient nodes /// that are trying to generate their basic storage when booting up. @@ -19,6 +20,7 @@ use test_random_derive::TestRandom; Deserialize, Encode, Decode, + TreeHash, TestRandom, arbitrary::Arbitrary, )] diff --git a/consensus/types/src/light_client_finality_update.rs b/consensus/types/src/light_client_finality_update.rs index 87601b81565..b0ae9028896 100644 --- a/consensus/types/src/light_client_finality_update.rs +++ b/consensus/types/src/light_client_finality_update.rs @@ -10,6 +10,7 @@ use serde_json::Value; use ssz_derive::{Decode, Encode}; use test_random_derive::TestRandom; use tree_hash::TreeHash; +use tree_hash_derive::TreeHash; /// A LightClientFinalityUpdate is the update lightclient request or received by a gossip that /// signal a new finalized beacon block header for the light client sync protocol. @@ -21,6 +22,7 @@ use tree_hash::TreeHash; Deserialize, Encode, Decode, + TreeHash, TestRandom, arbitrary::Arbitrary, )] diff --git a/consensus/types/src/light_client_header.rs b/consensus/types/src/light_client_header.rs index 8fe31f7af8c..f7d3c633ab9 100644 --- a/consensus/types/src/light_client_header.rs +++ b/consensus/types/src/light_client_header.rs @@ -3,6 +3,7 @@ use crate::BeaconBlockHeader; use serde::{Deserialize, Serialize}; use ssz_derive::{Decode, Encode}; use test_random_derive::TestRandom; +use tree_hash_derive::TreeHash; #[derive( Debug, @@ -12,6 +13,7 @@ use test_random_derive::TestRandom; Deserialize, Encode, Decode, + TreeHash, TestRandom, arbitrary::Arbitrary, )] diff --git a/consensus/types/src/light_client_optimistic_update.rs b/consensus/types/src/light_client_optimistic_update.rs index d883d735f35..dd17a64342c 100644 --- a/consensus/types/src/light_client_optimistic_update.rs +++ b/consensus/types/src/light_client_optimistic_update.rs @@ -8,6 +8,7 @@ use serde_json::Value; use ssz_derive::{Decode, Encode}; use test_random_derive::TestRandom; use tree_hash::TreeHash; +use tree_hash_derive::TreeHash; /// A LightClientOptimisticUpdate is the update we send on each slot, /// it is based off the current unfinalized epoch is verified only against BLS signature. @@ -19,6 +20,7 @@ use tree_hash::TreeHash; Deserialize, Encode, Decode, + TreeHash, TestRandom, arbitrary::Arbitrary, )] diff --git a/consensus/types/src/light_client_update.rs b/consensus/types/src/light_client_update.rs index 718cd7553f9..76a3bd3b9bc 100644 --- a/consensus/types/src/light_client_update.rs +++ b/consensus/types/src/light_client_update.rs @@ -11,6 +11,7 @@ use ssz_types::typenum::{U5, U6}; use std::sync::Arc; use test_random_derive::TestRandom; use tree_hash::TreeHash; +use tree_hash_derive::TreeHash; pub const FINALIZED_ROOT_INDEX: usize = 105; pub const CURRENT_SYNC_COMMITTEE_INDEX: usize = 54; @@ -64,6 +65,7 @@ impl From for Error { Deserialize, Encode, Decode, + TreeHash, TestRandom, arbitrary::Arbitrary, )] diff --git a/testing/ef_tests/check_all_files_accessed.py b/testing/ef_tests/check_all_files_accessed.py index a5ab897c33f..0fbbc5ed786 100755 --- a/testing/ef_tests/check_all_files_accessed.py +++ b/testing/ef_tests/check_all_files_accessed.py @@ -27,20 +27,6 @@ "tests/.*/.*/ssz_static/PowBlock/", # light_client "tests/.*/.*/light_client", - # LightClientStore - "tests/.*/.*/ssz_static/LightClientStore", - # LightClientUpdate - "tests/.*/.*/ssz_static/LightClientUpdate", - # LightClientSnapshot - "tests/.*/.*/ssz_static/LightClientSnapshot", - # LightClientBootstrap - "tests/.*/.*/ssz_static/LightClientBootstrap", - # LightClientOptimistic - "tests/.*/.*/ssz_static/LightClientOptimistic", - # LightClientFinalityUpdate - "tests/.*/.*/ssz_static/LightClientFinalityUpdate", - # LightClientHeader - "tests/.*/.*/ssz_static/LightClientHeader", # One of the EF researchers likes to pack the tarballs on a Mac ".*\.DS_Store.*", # More Mac weirdness. diff --git a/testing/ef_tests/src/type_name.rs b/testing/ef_tests/src/type_name.rs index ef128440301..e57e2b13598 100644 --- a/testing/ef_tests/src/type_name.rs +++ b/testing/ef_tests/src/type_name.rs @@ -73,6 +73,11 @@ type_name!(Fork); type_name!(ForkData); type_name_generic!(HistoricalBatch); type_name_generic!(IndexedAttestation); +type_name_generic!(LightClientBootstrap); +type_name_generic!(LightClientFinalityUpdate); +type_name!(LightClientHeader); +type_name_generic!(LightClientOptimisticUpdate); +type_name_generic!(LightClientUpdate); type_name_generic!(PendingAttestation); type_name!(ProposerSlashing); type_name_generic!(SignedAggregateAndProof); diff --git a/testing/ef_tests/tests/tests.rs b/testing/ef_tests/tests/tests.rs index d2d30b596cc..000a557a5f5 100644 --- a/testing/ef_tests/tests/tests.rs +++ b/testing/ef_tests/tests/tests.rs @@ -236,7 +236,6 @@ mod ssz_static { ssz_static_test!(fork_data, ForkData); ssz_static_test!(historical_batch, HistoricalBatch<_>); ssz_static_test!(indexed_attestation, IndexedAttestation<_>); - // NOTE: LightClient* intentionally omitted ssz_static_test!(pending_attestation, PendingAttestation<_>); ssz_static_test!(proposer_slashing, ProposerSlashing); ssz_static_test!(signed_aggregate_and_proof, SignedAggregateAndProof<_>); @@ -285,6 +284,46 @@ mod ssz_static { .run(); } + #[test] + fn light_client_bootstrap() { + SszStaticHandler::, MinimalEthSpec>::altair_only() + .run(); + SszStaticHandler::, MainnetEthSpec>::altair_only() + .run(); + } + + #[test] + fn light_client_finality_update() { + SszStaticHandler::, MinimalEthSpec>::altair_only( + ) + .run(); + SszStaticHandler::, MainnetEthSpec>::altair_only( + ) + .run(); + } + + #[test] + fn light_client_header() { + SszStaticHandler::::altair_only().run(); + SszStaticHandler::::altair_only().run(); + } + + #[test] + fn light_client_optimistic_update() { + SszStaticHandler::, MinimalEthSpec>::altair_only( + ) + .run(); + SszStaticHandler::, MainnetEthSpec>::altair_only( + ) + .run(); + } + + #[test] + fn light_client_update() { + SszStaticHandler::, MinimalEthSpec>::altair_only().run(); + SszStaticHandler::, MainnetEthSpec>::altair_only().run(); + } + #[test] fn signed_contribution_and_proof() { SszStaticHandler::, MinimalEthSpec>::altair_and_later().run();