Skip to content

Conversation

@refcell
Copy link
Contributor

@refcell refcell commented Dec 10, 2025

Description

Refactored the runner to make extensions type-driven using newly created extension traits built from the BaseNodeConfig. Extensions can now be installed via a generic method: install_ext::<T>() (in the code snippet below we show this API change). In the node binary entrypoint, we now install extensions in this way - programmatically.

// bin/node/src/main.rs
cli.run(|builder, args| async move {
    let mut runner = BaseNodeRunner::new(args);
    runner.install_ext::<FlashblocksCanonExtension>()?;
    runner.install_ext::<TransactionTracingExtension>()?;
    runner.install_ext::<BaseRpcExtension>()?;
    runner.run(builder).await
})?;

To allow the flashblocks state to be shared through a OnceCell, we moved this instantiation into the BaseNodeConfig, so this type can be cloned by the extensions during construction. This is a temporary solution which should be improved down the road.

@refcell refcell requested a review from danyalprout December 10, 2025 00:07
@refcell refcell self-assigned this Dec 10, 2025
@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Dec 10, 2025

✅ 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

Copy link
Contributor

@haardikk21 haardikk21 left a comment

Choose a reason for hiding this comment

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

this is pretty cool

@refcell refcell merged commit f734947 into main Dec 11, 2025
19 checks passed
@refcell refcell deleted the runner-refactor branch December 11, 2025 15:11
haardikk21 pushed a commit that referenced this pull request Dec 11, 2025
* chore(runner): node handle

* feat(runner): make extensions generic
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.

4 participants