Skip to content

perf(builder): use XLayerPayloadServiceBuilder to simplify main codes#95

Merged
Vui-Chee merged 6 commits intodevfrom
jimmyshi/xlayer-service-payload-builder
Jan 19, 2026
Merged

perf(builder): use XLayerPayloadServiceBuilder to simplify main codes#95
Vui-Chee merged 6 commits intodevfrom
jimmyshi/xlayer-service-payload-builder

Conversation

@JimmyShi22
Copy link
Contributor

This PR refactors payload builder initialization by introducing a unified XLayerPayloadServiceBuilder that handles both flashblocks and default modes internally, eliminating duplicate code in main.rs.

Changes

New payload_builder module (bin/node/src/payload_builder.rs):

  • Added XLayerPayloadServiceBuilder that wraps either FlashblocksServiceBuilder or BasicPayloadServiceBuilder<OpPayloadBuilder>
  • Uses internal Builder enum to dispatch to the appropriate implementation based on configuration
  • Implements PayloadServiceBuilder trait for seamless integration

Updated main.rs:

  • Replaced duplicate if-else branches with single unified code path using XLayerPayloadServiceBuilder
  • Simplified imports by removing BuilderConfig and FlashblocksServiceBuilder (now internal to payload_builder module)
  • Kept conditional RPC initialization logic for FlashblocksService and FlashblocksPubSub in non-flashblocks mode

@JimmyShi22 JimmyShi22 changed the base branch from main to dev January 19, 2026 02:39
@JimmyShi22 JimmyShi22 marked this pull request as ready for review January 19, 2026 06:05
Copy link
Contributor

@Vui-Chee Vui-Chee left a comment

Choose a reason for hiding this comment

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

LGTM :)

@Vui-Chee Vui-Chee merged commit 8309828 into dev Jan 19, 2026
@Vui-Chee Vui-Chee deleted the jimmyshi/xlayer-service-payload-builder branch January 19, 2026 09:30
louisliu2048 pushed a commit that referenced this pull request Feb 5, 2026
* upgrade to v1.10.0 (#98)

* perf(builder): use XLayerPayloadServiceBuilder to simplify main codes (#95)

Co-authored-by: Vui-Chee <vuicheesiew@gmail.com>
Co-authored-by: Niven <sieniven@gmail.com>

* drop unused dep

* chore: better rename, fix unused variable warning (#99)

* Better refactor, fix unused var warn

* Better rename

* Remove xlayer suffix

* Align cargo chef base image with latest rust toolchain version (#100)

* Update builder version (#101)

* feat(full trace): Add full trace hook framework (#103)

* add engine api hook for full trace

* rm comment

* fix clippy

* add send tx hook

* add blockchain tracer

* cargo lock

* fix review issues

* simplify to tracer to avoid nasty type bonanza

* renamed `TracerConfig` to `Tracer`

* more renames

* EngineApiTracer derive clone over manual impl

* handle middleware overwrite problem

* reorder

* drop clone

* no box on middleware rpc tracer

* impl `EngineApiBuilder` directly to tracer

---------

Co-authored-by: Vui-Chee <vuicheesiew@gmail.com>

* fix: remove engine api, and simplify monitor logic (#107)

* remove unused reth-node-api (#108)

* fix: resolve audit issues related to flashblocks subscription (#113)

* Fix unnecessary clone

* Fix incomplete documentation of subscribe addrs filter

* Better desc

* chore(flashblocks): update builder version to v0.2.5 (#114)

* Update builder version to v0.2.5 with full link monitor updates

* Fix wspub init

* feat: Add Transaction Trace Monitoring Support (#115)

* add trace logic

* optimize

* fix ut

* fix ut

* fix

* fix

* optimize code

* optimize code

* fix

* chore: fix rust formatter (#132)

* Fix fmt

* Remove unused dep

* Fix nested if else clippy check

* Update dependencies, use reth v1.10.2 and builder v0.3.0 (#133)

* fix: upgrade reth v1.10.2 version with bug fixes (#134)

* Fix revm dep

* Update reth version, use merge fixes version

* Add audit report (#135)

* add audit report

* add audit report

---------

Co-authored-by: chunsheng.wang <chunsheng.wang@okg.com>

* feat: add flashblocks enabled RPC method (#136)

* feat: add flashblocks enabled RPC method

* chore: clippy

* chore: add unit tests

* chore: reword documentation

* remove min gas rpc (#138)

---------

Co-authored-by: jimmyshi <417711026@qq.com>
Co-authored-by: Niven <sieniven@gmail.com>
Co-authored-by: Leo <335209779@qq.com>
Co-authored-by: wangchunsheng-ops <13614269216@163.com>
Co-authored-by: chunsheng.wang <chunsheng.wang@okg.com>
Co-authored-by: lucas <66681646+limyeechern@users.noreply.github.com>
louisliu2048 pushed a commit that referenced this pull request Feb 5, 2026
* upgrade to v1.10.0 (#98)

* perf(builder): use XLayerPayloadServiceBuilder to simplify main codes (#95)

Co-authored-by: Vui-Chee <vuicheesiew@gmail.com>
Co-authored-by: Niven <sieniven@gmail.com>

* drop unused dep

* chore: better rename, fix unused variable warning (#99)

* Better refactor, fix unused var warn

* Better rename

* Remove xlayer suffix

* Align cargo chef base image with latest rust toolchain version (#100)

* Update builder version (#101)

* feat(full trace): Add full trace hook framework (#103)

* add engine api hook for full trace

* rm comment

* fix clippy

* add send tx hook

* add blockchain tracer

* cargo lock

* fix review issues

* simplify to tracer to avoid nasty type bonanza

* renamed `TracerConfig` to `Tracer`

* more renames

* EngineApiTracer derive clone over manual impl

* handle middleware overwrite problem

* reorder

* drop clone

* no box on middleware rpc tracer

* impl `EngineApiBuilder` directly to tracer

---------

Co-authored-by: Vui-Chee <vuicheesiew@gmail.com>

* fix: remove engine api, and simplify monitor logic (#107)

* remove unused reth-node-api (#108)

* fix: resolve audit issues related to flashblocks subscription (#113)

* Fix unnecessary clone

* Fix incomplete documentation of subscribe addrs filter

* Better desc

* chore(flashblocks): update builder version to v0.2.5 (#114)

* Update builder version to v0.2.5 with full link monitor updates

* Fix wspub init

* feat: Add Transaction Trace Monitoring Support (#115)

* add trace logic

* optimize

* fix ut

* fix ut

* fix

* fix

* optimize code

* optimize code

* fix

* chore: fix rust formatter (#132)

* Fix fmt

* Remove unused dep

* Fix nested if else clippy check

* Update dependencies, use reth v1.10.2 and builder v0.3.0 (#133)

* fix: upgrade reth v1.10.2 version with bug fixes (#134)

* Fix revm dep

* Update reth version, use merge fixes version

* Add audit report (#135)

* add audit report

* add audit report

---------

Co-authored-by: chunsheng.wang <chunsheng.wang@okg.com>

* feat: add flashblocks enabled RPC method (#136)

* feat: add flashblocks enabled RPC method

* chore: clippy

* chore: add unit tests

* chore: reword documentation

* remove min gas rpc (#138)

---------

Co-authored-by: jimmyshi <417711026@qq.com>
Co-authored-by: Niven <sieniven@gmail.com>
Co-authored-by: Leo <335209779@qq.com>
Co-authored-by: wangchunsheng-ops <13614269216@163.com>
Co-authored-by: chunsheng.wang <chunsheng.wang@okg.com>
Co-authored-by: lucas <66681646+limyeechern@users.noreply.github.com>
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.

3 participants