From 3bebc69d82faca9f296a3486133ca15797e36fd8 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2025 15:02:10 +0000 Subject: [PATCH 1/2] feat(fortuna): retry processing backlog using configured block_delays Co-Authored-By: Jayant Krishnamurthy --- apps/fortuna/src/keeper.rs | 1 + apps/fortuna/src/keeper/block.rs | 35 ++++++++++++++++++++++++++------ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/apps/fortuna/src/keeper.rs b/apps/fortuna/src/keeper.rs index 47be7cdf4a..ffe4031a5b 100644 --- a/apps/fortuna/src/keeper.rs +++ b/apps/fortuna/src/keeper.rs @@ -93,6 +93,7 @@ pub async fn run_keeper_threads( chain_state.clone(), metrics.clone(), fulfilled_requests_cache.clone(), + chain_eth_config.block_delays.clone(), ) .in_current_span(), ); diff --git a/apps/fortuna/src/keeper/block.rs b/apps/fortuna/src/keeper/block.rs index e2dc882b30..11576ff3ec 100644 --- a/apps/fortuna/src/keeper/block.rs +++ b/apps/fortuna/src/keeper/block.rs @@ -334,6 +334,8 @@ pub async fn process_new_blocks( } /// Processes the backlog_range for a chain. +/// It processes the backlog range for each configured block delay. +#[allow(clippy::too_many_arguments)] #[tracing::instrument(skip_all)] pub async fn process_backlog( backlog_range: BlockRange, @@ -343,18 +345,39 @@ pub async fn process_backlog( chain_state: BlockchainState, metrics: Arc, fulfilled_requests_cache: Arc>>, + block_delays: Vec, ) { tracing::info!("Processing backlog"); + // Process blocks immediately first process_block_range( - backlog_range, - contract, + backlog_range.clone(), + Arc::clone(&contract), gas_limit, - escalation_policy, - chain_state, - metrics, - fulfilled_requests_cache, + escalation_policy.clone(), + chain_state.clone(), + metrics.clone(), + fulfilled_requests_cache.clone(), ) .in_current_span() .await; + + // Then process with each configured delay + for delay in &block_delays { + let adjusted_range = BlockRange { + from: backlog_range.from.saturating_sub(*delay), + to: backlog_range.to.saturating_sub(*delay), + }; + process_block_range( + adjusted_range, + Arc::clone(&contract), + gas_limit, + escalation_policy.clone(), + chain_state.clone(), + metrics.clone(), + fulfilled_requests_cache.clone(), + ) + .in_current_span() + .await; + } tracing::info!("Backlog processed"); } From c155212257ccf5b5626e8d58795672710b05a127 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2025 15:47:44 +0000 Subject: [PATCH 2/2] chore(fortuna): update Cargo.lock for version bump Co-Authored-By: Jayant Krishnamurthy --- apps/fortuna/Cargo.lock | 2 +- apps/fortuna/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/fortuna/Cargo.lock b/apps/fortuna/Cargo.lock index d383ffebda..edd4604e20 100644 --- a/apps/fortuna/Cargo.lock +++ b/apps/fortuna/Cargo.lock @@ -1554,7 +1554,7 @@ dependencies = [ [[package]] name = "fortuna" -version = "7.4.2" +version = "7.4.3" dependencies = [ "anyhow", "axum", diff --git a/apps/fortuna/Cargo.toml b/apps/fortuna/Cargo.toml index dccfad3e52..85e3de1f95 100644 --- a/apps/fortuna/Cargo.toml +++ b/apps/fortuna/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fortuna" -version = "7.4.2" +version = "7.4.3" edition = "2021" [lib]