diff --git a/mev-rs/src/error.rs b/mev-rs/src/error.rs index 09d32611..e0f92702 100644 --- a/mev-rs/src/error.rs +++ b/mev-rs/src/error.rs @@ -42,8 +42,6 @@ pub enum Error { Api(#[from] ApiError), #[error(transparent)] ValidatorRegistry(#[from] crate::validator_registry::Error), - #[error(transparent)] - ProposerScheduler(#[from] crate::proposer_scheduler::Error), } #[cfg(feature = "api")] diff --git a/mev-rs/src/lib.rs b/mev-rs/src/lib.rs index 80f9e11b..97a78bb5 100644 --- a/mev-rs/src/lib.rs +++ b/mev-rs/src/lib.rs @@ -1,7 +1,6 @@ pub mod blinded_block_provider; pub mod blinded_block_relayer; mod error; -mod proposer_scheduler; pub mod relay; #[cfg(feature = "serde")] pub mod serde; @@ -13,6 +12,5 @@ pub use blinded_block_provider::BlindedBlockProvider; pub use blinded_block_relayer::BlindedBlockRelayer; pub use error::Error; -pub use proposer_scheduler::ProposerScheduler; pub use relay::{Relay, RelayEndpoint}; pub use validator_registry::ValidatorRegistry; diff --git a/mev-rs/src/proposer_scheduler.rs b/mev-rs/src/proposer_scheduler.rs deleted file mode 100644 index 578eed2f..00000000 --- a/mev-rs/src/proposer_scheduler.rs +++ /dev/null @@ -1,53 +0,0 @@ -use beacon_api_client::{ - mainnet::Client, BeaconProposerRegistration, Error as ApiError, ProposerDuty, -}; -use ethereum_consensus::primitives::{BlsPublicKey, Epoch, Slot}; -use parking_lot::Mutex; -use std::collections::HashMap; -use thiserror::Error; - -#[derive(Debug, Error)] -pub enum Error { - #[error("api error: {0}")] - Api(#[from] ApiError), -} - -pub struct ProposerScheduler { - api: Client, - state: Mutex, -} - -#[derive(Default)] -struct State { - proposer_schedule: HashMap, -} - -impl ProposerScheduler { - pub fn new(api: Client) -> Self { - Self { api, state: Default::default() } - } - - pub async fn dispatch_proposer_preparations( - &self, - preparations: &[BeaconProposerRegistration], - ) -> Result<(), Error> { - self.api.prepare_proposers(preparations).await.map_err(From::from) - } - - pub async fn fetch_duties(&self, epoch: Epoch) -> Result, Error> { - // TODO be tolerant to re-orgs - let (_dependent_root, duties) = self.api.get_proposer_duties(epoch).await?; - let mut state = self.state.lock(); - for duty in &duties { - let slot = duty.slot; - let public_key = &duty.public_key; - state.proposer_schedule.insert(slot, public_key.clone()); - } - Ok(duties) - } - - pub fn get_proposer_for(&self, slot: Slot) -> Option { - let state = self.state.lock(); - state.proposer_schedule.get(&slot).cloned() - } -}