Skip to content

chore: downgrade reth to v1.11.3#484

Open
avalonche wants to merge 2 commits intomainfrom
worktree-downgrade-reth-v1.11.3
Open

chore: downgrade reth to v1.11.3#484
avalonche wants to merge 2 commits intomainfrom
worktree-downgrade-reth-v1.11.3

Conversation

@avalonche
Copy link
Copy Markdown
Collaborator

@avalonche avalonche commented Apr 30, 2026

Summary

Reverts the reth v2.0 + alloy 1.8 upgrade (cacbb42) and pins back to reth v1.11.3 / op-reth/v1.11.3-rc.1. Branched from main (currently at v2.0.0); does not include v2.1.0.

Dependency pins (workspace)

dep from to
reth v2.0.0 v1.11.3
op-reth flashbots/optimism rev 5203736 ethereum-optimism/optimism tag op-reth/v1.11.3-rc.1
alloy stack 1.8.x 1.4.x (resolves to 1.7.x)
alloy-evm 0.30.0 0.27.2
alloy-op-evm 0.30.0 0.26.3
revm 36.0.0 34.0.0
op-revm git 15.0.0
reth-primitives-traits crates.io 0.1.0 git tag

avalonche and others added 2 commits April 30, 2026 15:24
Reverts the v2.0 reth/alloy upgrade (cacbb42) and pins back to:
- reth: v2.0.0 → v1.11.3
- op-reth: flashbots/optimism rev 5203736 → ethereum-optimism/optimism
  tag op-reth/v1.11.3-rc.1
- alloy stack: 1.8.x → 1.4.x (resolves to 1.7.x)
- alloy-evm: 0.30.0 → 0.27.2
- alloy-op-evm: 0.30.0 → 0.26.3
- revm: 36.0.0 → 34.0.0
- op-revm: git → 15.0.0
- reth-primitives-traits: version pin → git tag

Source-side adaptations to the v1.11.3 API surface:

- generator.rs: collapse `PayloadBuilder` trait back to a single
  `Attributes` associated type (drop `RpcAttributes`/`from_rpc_attrs`
  split). `new_payload_job` reverts to the v1.11.3 2-param
  `(self, attributes)` signature; drop `BuildNewPayload`. Drop the
  `rpc_attributes` field on `BlockPayloadJob`.
- payload.rs: drop the V3 payload-id wrapper (`OpPayloadAttrs`,
  `from_rpc_attrs`). Wrap eth-payload-attribute field accesses through
  `.payload_attributes.{timestamp,prev_randao,parent_beacon_block_root}`,
  use trait methods via `PayloadBuilderAttributes` for
  `.timestamp()`/`.suggested_fee_recipient()`/`.payload_id()`. Drop the
  `block_access_list_hash`/`slot_number` Header fields (EIP-7701/7934,
  not in v1.11.3 alloy). Drop the `OpReceipt::PostExec` match arm
  (Jovian fork variant not in op-alloy 0.23.1).
- payload_handler.rs: rebuild `OpPayloadBuilderAttributes` literal as
  `{ payload_attributes: EthPayloadBuilderAttributes { ... }, ... }`
  (the v1.11.3 nested shape). Drop the third `payload.id()` arg from
  `PayloadConfig::new` (v1.11.3 takes 2 args).
- context.rs: import `PayloadBuilderAttributes`. Field access fixes for
  `.payload_attributes.timestamp` (base_fee_params lookup) and
  `.payload_attributes.withdrawals`.
- builder_tx.rs: drop the `alloy_op_evm::OpTx(op_revm::OpTransaction
  { ... })` wrapper around `try_into_tx_env` — v1.11.3 returns the op
  tx env directly. Destructure `ExecutionResult::Success` with
  `gas_used` (flat field) instead of `gas` (`gas.spent()` was post-v2).
- presim.rs: switch `IntoTxEnv<OpTx>` bound to
  `IntoTxEnv<op_revm::OpTransaction<revm::context::TxEnv>>` (no newtype
  in alloy-op-evm 0.26.x).
- tx_signer.rs: drop `OpTypedTransaction::PostExec` arm (Jovian).
- tx.rs: drop the `consensus_ref` PoolTransaction shim (method not on
  the v1.11.3 trait).
- state_root.rs (tests): drop the `LegacyKeyAdapter` parameterization
  on `StorageRoot`/`StateRoot` — v1.11.3 only takes 1 generic
  (the v2.0 trie-table-adapter split doesn't exist).
- tests/framework/driver.rs: pass attribs directly to
  `update_forkchoice` (no `OpPayloadAttrs` wrapper).
- tests/revert.rs: revert the alloy 1.8 GC semantics adjustments
  (10 vs 11 blocks, max_block_number off-by-one) since v1.7.x has
  `block >= max` semantics on `has_exceeded_block_number`.

Things lost in the downgrade (per memory + commit notes):
- the dc45b53 incremental trie state-root fix (depends on v2.0 trie
  APIs that don't exist in v1.11.3)
- the V3 payload-id mismatch fix
- reth v2.1.0's state-pruning DB-corruption fix

Build green, 152/152 lib tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@avalonche avalonche marked this pull request as ready for review April 30, 2026 23:04
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