mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-09 11:41:51 +00:00
Subscribe to the correct subnets for electra attestations (#5782)
* subscribe to the correct att subnets for electra * subscribe to the correct att subnets for electra
This commit is contained in:
committed by
realbigsean
parent
3b1fb0ad81
commit
79a5f2556f
@@ -795,9 +795,9 @@ impl<'a, T: BeaconChainTypes> IndexedUnaggregatedAttestation<'a, T> {
|
||||
committees_per_slot: u64,
|
||||
subnet_id: Option<SubnetId>,
|
||||
chain: &BeaconChain<T>,
|
||||
) -> Result<(u64, SubnetId), Error> {
|
||||
let expected_subnet_id = SubnetId::compute_subnet_for_attestation_data::<T::EthSpec>(
|
||||
indexed_attestation.data(),
|
||||
) -> Result<(u64, SubnetId), Error> {
|
||||
let expected_subnet_id = SubnetId::compute_subnet_for_attestation::<T::EthSpec>(
|
||||
&attestation,
|
||||
committees_per_slot,
|
||||
&chain.spec,
|
||||
)
|
||||
|
||||
@@ -1168,8 +1168,8 @@ where
|
||||
agg_sig
|
||||
};
|
||||
|
||||
let subnet_id = SubnetId::compute_subnet_for_attestation_data::<E>(
|
||||
attestation.data(),
|
||||
let subnet_id = SubnetId::compute_subnet_for_attestation::<E>(
|
||||
&attestation.to_ref(),
|
||||
committee_count,
|
||||
&self.chain.spec,
|
||||
)
|
||||
|
||||
@@ -146,8 +146,8 @@ fn get_valid_unaggregated_attestation<T: BeaconChainTypes>(
|
||||
)
|
||||
.expect("should sign attestation");
|
||||
|
||||
let subnet_id = SubnetId::compute_subnet_for_attestation_data::<E>(
|
||||
valid_attestation.data(),
|
||||
let subnet_id = SubnetId::compute_subnet_for_attestation::<E>(
|
||||
&valid_attestation.to_ref(),
|
||||
head.beacon_state
|
||||
.get_committee_count_at_slot(current_slot)
|
||||
.expect("should get committee count"),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//! Identifies each shard by an integer identifier.
|
||||
use crate::{AttestationData, ChainSpec, CommitteeIndex, Epoch, EthSpec, Slot};
|
||||
use crate::{AttestationRef, ChainSpec, CommitteeIndex, Epoch, EthSpec, Slot};
|
||||
use safe_arith::{ArithError, SafeArith};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::ops::{Deref, DerefMut};
|
||||
@@ -37,16 +37,16 @@ impl SubnetId {
|
||||
id.into()
|
||||
}
|
||||
|
||||
/// Compute the subnet for an attestation with `attestation_data` where each slot in the
|
||||
/// Compute the subnet for an attestation where each slot in the
|
||||
/// attestation epoch contains `committee_count_per_slot` committees.
|
||||
pub fn compute_subnet_for_attestation_data<E: EthSpec>(
|
||||
attestation_data: &AttestationData,
|
||||
pub fn compute_subnet_for_attestation<E: EthSpec>(
|
||||
attestation: &AttestationRef<E>,
|
||||
committee_count_per_slot: u64,
|
||||
spec: &ChainSpec,
|
||||
) -> Result<SubnetId, ArithError> {
|
||||
Self::compute_subnet::<E>(
|
||||
attestation_data.slot,
|
||||
attestation_data.index,
|
||||
attestation.data().slot,
|
||||
attestation.committee_index(),
|
||||
committee_count_per_slot,
|
||||
spec,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user