diff --git a/beacon_node/http_api/src/beacon/pool.rs b/beacon_node/http_api/src/beacon/pool.rs index 56cc7c493c..ae9b50b279 100644 --- a/beacon_node/http_api/src/beacon/pool.rs +++ b/beacon_node/http_api/src/beacon/pool.rs @@ -577,7 +577,7 @@ pub fn post_beacon_pool_payload_attestations_ssz( network_tx: UnboundedSender>| { task_spawner.blocking_json_task(Priority::P0, move || { let item_len = ::ssz_fixed_len(); - if body_bytes.len() % item_len != 0 { + if !body_bytes.len().is_multiple_of(item_len) { return Err(warp_utils::reject::custom_bad_request(format!( "SSZ body length {} is not a multiple of PayloadAttestationMessage size {}", body_bytes.len(), diff --git a/validator_client/src/lib.rs b/validator_client/src/lib.rs index 3fbb52fcff..d54a2f5ee8 100644 --- a/validator_client/src/lib.rs +++ b/validator_client/src/lib.rs @@ -643,7 +643,7 @@ impl ProductionValidatorClient { self.payload_attestation_service .clone() - .start_update_service(&self.context.eth2_config.spec) + .start_update_service() .map_err(|e| format!("Unable to start payload attestation service: {}", e))?; self.preparation_service diff --git a/validator_client/validator_services/src/payload_attestation_service.rs b/validator_client/validator_services/src/payload_attestation_service.rs index 02aff8f1fb..f4a8483e65 100644 --- a/validator_client/validator_services/src/payload_attestation_service.rs +++ b/validator_client/validator_services/src/payload_attestation_service.rs @@ -7,7 +7,11 @@ use std::sync::Arc; use task_executor::TaskExecutor; use tokio::time::sleep; use tracing::{debug, error, info}; +<<<<<<< HEAD use types::ChainSpec; +======= +use types::{ChainSpec, EthSpec}; +>>>>>>> gloas-ptc-validator-duty use validator_store::ValidatorStore; pub struct PayloadAttestationServiceBuilder { @@ -19,6 +23,14 @@ pub struct PayloadAttestationServiceBuilder>, } +impl Default + for PayloadAttestationServiceBuilder +{ + fn default() -> Self { + Self::new() + } +} + impl PayloadAttestationServiceBuilder { pub fn new() -> Self { Self { @@ -117,9 +129,9 @@ impl Deref for PayloadAttestationService { } impl PayloadAttestationService { - pub fn start_update_service(self, spec: &ChainSpec) -> Result<(), String> { - let slot_duration = spec.get_slot_duration(); - let payload_attestation_due = spec.get_payload_attestation_due(); + pub fn start_update_service(self) -> Result<(), String> { + let slot_duration = self.chain_spec.get_slot_duration(); + let payload_attestation_due = self.chain_spec.get_payload_attestation_due(); info!( payload_attestation_due_ms = payload_attestation_due.as_millis(), @@ -143,6 +155,14 @@ impl PayloadAttestationServ continue; }; + if !self + .chain_spec + .fork_name_at_slot::(current_slot) + .gloas_enabled() + { + continue; + } + let duties = self.duties_service.get_ptc_duties_for_slot(current_slot); if duties.is_empty() { continue;