Skip to content
Merged
1 change: 1 addition & 0 deletions crates/builder/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ nanoid = { version = "0.4" }
reth-ipc.workspace = true
reth-optimism-rpc = { workspace = true, features = ["client"] }
rlimit = { version = "0.10" }
tokio = { workspace = true, features = ["test-util"] }

[features]
default = []
Expand Down
13 changes: 13 additions & 0 deletions crates/builder/src/payload/flashblocks/payload.rs
Original file line number Diff line number Diff line change
Expand Up @@ -474,7 +474,13 @@ where
schedule = ?flashblock_scheduler,
"Computed flashblock timing schedule"
);
// Get target number of flashblocks to build. If no flashblocks are scheduled, return early.
let target_flashblocks = flashblock_scheduler.target_flashblocks();
if target_flashblocks == 0 {
self.resolve_best_payload(&ctx, best_payload, fallback_payload, &resolve_payload);
self.record_flashblocks_metrics(&ctx, &fb_state, &info, 0);
return Ok(());
}

let expected_flashblocks = self.config.flashblocks_per_block();
if target_flashblocks < expected_flashblocks {
Expand Down Expand Up @@ -555,6 +561,13 @@ where
return Ok(());
}

// Check if we have reached target flashblocks count
if fb_state.flashblock_index() > fb_state.target_flashblock_count() {
self.resolve_best_payload(&ctx, best_payload, fallback_payload, &resolve_payload);
self.record_flashblocks_metrics(&ctx, &fb_state, &info, target_flashblocks);
return Ok(());
}

// Build flashblock after receiving signal
let next_fb_state = match self.build_next_flashblock(
&ctx,
Expand Down
Loading