Skip to content

Commit 9bc9f47

Browse files
apollo_l1_provider: remove finality_too_high helper function, add MissingBlock error (#10348)
1 parent 6db2c6a commit 9bc9f47

File tree

1 file changed

+6
-26
lines changed

1 file changed

+6
-26
lines changed

crates/apollo_l1_provider/src/l1_scraper.rs

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -256,14 +256,11 @@ impl<BaseLayerType: BaseLayerContract + Send + Sync + Debug> L1Scraper<BaseLayer
256256
.base_layer
257257
.l1_block_at(latest_l1_block_number)
258258
.await
259-
.map_err(L1ScraperError::BaseLayerError)?;
259+
.map_err(L1ScraperError::BaseLayerError)?
260+
.ok_or(L1ScraperError::LatestL1BlockNumberNoBlockFound {
261+
block_number: latest_l1_block_number,
262+
})?;
260263

261-
let Some(latest_l1_block) = latest_l1_block else {
262-
// TODO(guyn): get rid of finality_too_high, use a better error.
263-
return Err(
264-
L1ScraperError::finality_too_high(self.config.finality, &self.base_layer).await
265-
);
266-
};
267264
let Some(scrape_from_this_l1_block) = self.scrape_from_this_l1_block else {
268265
panic!("Should never fetch events without first getting the last processed L1 block.");
269266
};
@@ -432,6 +429,8 @@ pub enum L1ScraperError<BaseLayerType: BaseLayerContract + Send + Sync + Debug>
432429
{latest_l1_block_no_finality:?}"
433430
)]
434431
FinalityTooHigh { finality: u64, latest_l1_block_no_finality: L1BlockNumber },
432+
#[error("Block number {block_number} not found")]
433+
LatestL1BlockNumberNoBlockFound { block_number: L1BlockNumber },
435434
#[error("Failed to calculate hash: {0}")]
436435
HashCalculationError(StarknetApiError),
437436
// Leaky abstraction, these errors should not propagate here.
@@ -465,25 +464,6 @@ impl<BaseLayerType: BaseLayerContract + Send + Sync + Debug> PartialEq
465464
}
466465
}
467466

468-
// TODO(guyn): get rid of finality_too_high, just use the new error FinalityTooHigh.
469-
impl<BaseLayerType: BaseLayerContract + Send + Sync + Debug> L1ScraperError<BaseLayerType> {
470-
/// Pass any base layer errors. In the rare case that the finality is bigger than the latest L1
471-
/// block number, return FinalityTooHigh.
472-
pub async fn finality_too_high(
473-
finality: u64,
474-
base_layer: &BaseLayerType,
475-
) -> L1ScraperError<BaseLayerType> {
476-
let latest_l1_block_number_no_finality = base_layer.latest_l1_block_number().await;
477-
478-
let latest_l1_block_no_finality = match latest_l1_block_number_no_finality {
479-
Ok(block_number) => block_number,
480-
Err(error) => return Self::BaseLayerError(error),
481-
};
482-
483-
Self::FinalityTooHigh { finality, latest_l1_block_no_finality }
484-
}
485-
}
486-
487467
fn handle_client_error<BaseLayerType: BaseLayerContract + Send + Sync + Debug>(
488468
client_result: Result<(), L1ProviderClientError>,
489469
) -> Result<(), L1ScraperError<BaseLayerType>> {

0 commit comments

Comments
 (0)