Merge branch 'electra_attestation_changes' of https://github.com/sigp/lighthouse into electra_op_pool

This commit is contained in:
realbigsean
2024-05-09 18:18:01 -04:00
12 changed files with 307 additions and 108 deletions

View File

@@ -67,9 +67,9 @@ pub struct Attestation<E: EthSpec> {
#[superstruct(only(Electra), partial_getter(rename = "aggregation_bits_electra"))]
pub aggregation_bits: BitList<E::MaxValidatorsPerSlot>,
pub data: AttestationData,
pub signature: AggregateSignature,
#[superstruct(only(Electra))]
pub committee_bits: BitVector<E::MaxCommitteesPerSlot>,
pub signature: AggregateSignature,
}
impl<E: EthSpec> Decode for Attestation<E> {
@@ -92,6 +92,7 @@ impl<E: EthSpec> Decode for Attestation<E> {
}
}
// TODO(electra): think about how to handle fork variants here
impl<E: EthSpec> TestRandom for Attestation<E> {
fn random_for_test(rng: &mut impl RngCore) -> Self {
let aggregation_bits: BitList<E::MaxValidatorsPerCommittee> = BitList::random_for_test(rng);

View File

@@ -159,7 +159,8 @@ pub enum Error {
IndexNotSupported(usize),
InvalidFlagIndex(usize),
MerkleTreeError(merkle_proof::MerkleTreeError),
NoCommitteeFound,
NoCommitteeFound(CommitteeIndex),
InvalidCommitteeIndex(CommitteeIndex),
}
/// Control whether an epoch-indexed field can be indexed at the next epoch or not.

View File

@@ -408,6 +408,8 @@ impl EthSpec for MainnetEthSpec {
pub struct MinimalEthSpec;
impl EthSpec for MinimalEthSpec {
type MaxCommitteesPerSlot = U4;
type MaxValidatorsPerSlot = U8192;
type SlotsPerEpoch = U8;
type EpochsPerEth1VotingPeriod = U4;
type SlotsPerHistoricalRoot = U64;
@@ -432,8 +434,6 @@ impl EthSpec for MinimalEthSpec {
SubnetBitfieldLength,
SyncCommitteeSubnetCount,
MaxValidatorsPerCommittee,
MaxCommitteesPerSlot,
MaxValidatorsPerSlot,
GenesisEpoch,
HistoricalRootsLimit,
ValidatorRegistryLimit,