Skip to content

Conversation

@haardikk21
Copy link
Collaborator

@haardikk21 haardikk21 commented Jan 13, 2026

Closes #412

  • Removes the standard block builder
  • Collapses some generic abstractions into concrete types that only existed due to the presence of 2 builder modes
  • Migrates fee priority ordering test to flashblocks-compatible logic
  • Adjusts the rb_test macro to only test for Flashblocks
  • Gets rid of the --flashblocks.enabled CLI arg as it's considered always-on now

Most importantly, makes integrating FAL stuff into the builder way easier now that we dont have to worry about pleasing Rust's typesystem with the generic dance anymore

@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Jan 13, 2026

✅ Heimdall Review Status

Requirement Status More Info
Reviews 1/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@danyalprout
Copy link
Collaborator

danyalprout commented Jan 14, 2026

@haardikk21 this lgtm, can you give it a rebase and I'll approve first thing

/// This trait is used to extend Reth's CLI with additional functionality that
/// are specific to the OP builder, such as populating default values for CLI arguments
/// when running in the playground mode or checking the builder mode.
/// when running in the playground mode.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +27 to +40
#[cfg(feature = "telemetry")]
let telemetry_args = match &cli.command {
reth_optimism_cli::commands::Commands::Node(node_command) => {
node_command.ext.telemetry.clone()
}
_ => Default::default(),
};

#[cfg(not(feature = "telemetry"))]
let cli_app = cli.configure();

#[cfg(feature = "telemetry")]
let mut cli_app = cli.configure();
#[cfg(feature = "telemetry")]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +37 to +41
use super::payload::FlashblocksExecutionInfo;
use crate::{flashblocks::OpPayloadBuilderCtx, primitives::reth::ExecutionInfo, tx_signer::Signer};

sol!(
// From https://github.com/Uniswap/flashblocks_number_contract/blob/main/src/FlashblockNumber.sol
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

};

#[derive(Debug, Default, Clone)]
pub struct FlashblocksExtraCtx {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 6 to +21
struct VariantInfo {
name: &'static str,
builder_type: &'static str,
default_instance_call: &'static str,
args_modifier: fn(&proc_macro2::TokenStream) -> proc_macro2::TokenStream,
default_args_factory: fn() -> proc_macro2::TokenStream,
}

const BUILDER_VARIANTS: &[VariantInfo] = &[
VariantInfo {
name: "standard",
builder_type: "crate::builders::StandardBuilder",
default_instance_call: "crate::tests::LocalInstance::standard().await?",
args_modifier: |args| quote! { #args },
default_args_factory: || quote! { Default::default() },
},
VariantInfo {
name: "flashblocks",
builder_type: "crate::builders::FlashblocksBuilder",
default_instance_call: "crate::tests::LocalInstance::flashblocks().await?",
args_modifier: |args| {
quote! {
{
let mut args = #args;
args.flashblocks.enabled = true;
args.flashblocks.flashblocks_port = crate::tests::get_available_port();
args
}
const BUILDER_VARIANTS: &[VariantInfo] = &[VariantInfo {
name: "flashblocks",
default_instance_call: "crate::tests::LocalInstance::flashblocks().await?",
args_modifier: |args| {
quote! {
{
let mut args = #args;
args.flashblocks.flashblocks_port = crate::tests::get_available_port();
args
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@haardikk21 haardikk21 added this to the v0.4.0 milestone Jan 14, 2026
@haardikk21 haardikk21 added this pull request to the merge queue Jan 14, 2026
Merged via the queue into main with commit f65b2f9 Jan 14, 2026
18 checks passed
@haardikk21 haardikk21 deleted the remove-standard-builder branch January 14, 2026 06:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(builder): Remove standard block building mode

4 participants