Implement gloas proposer preference vc duty (#9208)

Allow for the vc to submit its proposer preferences to the network


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>

Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
This commit is contained in:
Eitan Seri-Levi
2026-05-04 13:33:09 +02:00
committed by GitHub
parent ee61aee659
commit 9cf155a0dd
17 changed files with 694 additions and 41 deletions

View File

@@ -8,10 +8,10 @@ use std::sync::Arc;
use types::{
Address, Attestation, AttestationError, BlindedBeaconBlock, Epoch, EthSpec,
ExecutionPayloadEnvelope, Graffiti, Hash256, PayloadAttestationData, PayloadAttestationMessage,
SelectionProof, SignedAggregateAndProof, SignedBlindedBeaconBlock, SignedContributionAndProof,
SignedExecutionPayloadEnvelope, SignedValidatorRegistrationData, Slot,
SyncCommitteeContribution, SyncCommitteeMessage, SyncSelectionProof, SyncSubnetId,
ValidatorRegistrationData,
ProposerPreferences, SelectionProof, SignedAggregateAndProof, SignedBlindedBeaconBlock,
SignedContributionAndProof, SignedExecutionPayloadEnvelope, SignedProposerPreferences,
SignedValidatorRegistrationData, Slot, SyncCommitteeContribution, SyncCommitteeMessage,
SyncSelectionProof, SyncSubnetId, ValidatorRegistrationData,
};
#[derive(Debug, PartialEq, Clone)]
@@ -213,6 +213,13 @@ pub trait ValidatorStore: Send + Sync {
data: PayloadAttestationData,
) -> impl Future<Output = Result<PayloadAttestationMessage, Error<Self::Error>>> + Send;
/// Sign a `ProposerPreferences` message.
fn sign_proposer_preferences(
&self,
validator_pubkey: PublicKeyBytes,
preferences: ProposerPreferences,
) -> impl Future<Output = Result<SignedProposerPreferences, Error<Self::Error>>> + Send;
/// Returns `ProposalData` for the provided `pubkey` if it exists in `InitializedValidators`.
/// `ProposalData` fields include defaulting logic described in `get_fee_recipient_defaulting`,
/// `get_gas_limit_defaulting`, and `get_builder_proposals_defaulting`.