From a4374e67e276051498ca1fe47ed1f9901f5affb7 Mon Sep 17 00:00:00 2001
From: Skanda Bhat <bhat.skanda.m@gmail.com>
Date: Sun, 3 Nov 2024 03:43:31 +0000
Subject: [PATCH] refactor: batch executor factory (#26)

* refactor lib rs

* refactor using latest commit

* version bump

---------

Co-authored-by: debjit <debjitbhowal.db@gmail.com>
---
 Cargo.lock             | 1613 ++++++++++++++++++++++------------------
 Cargo.toml             |   73 +-
 src/ethereum.rs        |  132 ----
 src/evm_config.rs      |   32 +-
 src/execute.rs         |  650 +++++-----------
 src/gnosis.rs          |   72 +-
 src/lib.rs             |   66 +-
 src/payload_builder.rs |   79 +-
 8 files changed, 1299 insertions(+), 1418 deletions(-)
 delete mode 100644 src/ethereum.rs

diff --git a/Cargo.lock b/Cargo.lock
index 670b24b..1a1b5b5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -97,21 +97,24 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
 
 [[package]]
 name = "alloy-chains"
-version = "0.1.36"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94c225801d42099570d0674701dddd4142f0ef715282aeb5985042e2ec962df7"
+checksum = "836cf02383d9ebb35502d379bcd1ae803155094077eaab9c29131d888cd5fa3e"
 dependencies = [
+ "alloy-primitives",
  "alloy-rlp",
+ "arbitrary",
  "num_enum",
+ "proptest",
  "serde",
  "strum",
 ]
 
 [[package]]
 name = "alloy-consensus"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e"
+checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -127,9 +130,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-dyn-abi"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b499852e1d0e9b8c6db0f24c48998e647c0d5762a01090f955106a7700e4611"
+checksum = "f5228b189b18b85761340dc9eaac0141148a8503657b36f9bc3a869413d987ca"
 dependencies = [
  "alloy-json-abi",
  "alloy-primitives",
@@ -158,13 +161,14 @@ dependencies = [
 
 [[package]]
 name = "alloy-eip7702"
-version = "0.1.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04"
+checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
  "arbitrary",
+ "derive_more",
  "k256",
  "rand",
  "serde",
@@ -173,9 +177,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-eips"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85"
+checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71"
 dependencies = [
  "alloy-eip2930",
  "alloy-eip7702",
@@ -185,6 +189,8 @@ dependencies = [
  "arbitrary",
  "c-kzg",
  "derive_more",
+ "ethereum_ssz",
+ "ethereum_ssz_derive",
  "once_cell",
  "serde",
  "sha2 0.10.8",
@@ -192,9 +198,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-genesis"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8429cf4554eed9b40feec7f4451113e76596086447550275e3def933faf47ce3"
+checksum = "dde15e14944a88bd6a57d325e9a49b75558746fe16aaccc79713ae50a6a9574c"
 dependencies = [
  "alloy-primitives",
  "alloy-serde",
@@ -203,9 +209,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-json-abi"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a438d4486b5d525df3b3004188f9d5cd1d65cd30ecc41e5a3ccef6f6342e8af9"
+checksum = "31a0f0d51db8a1a30a4d98a9f90e090a94c8f44cb4d9eafc7e03aa6d00aae984"
 dependencies = [
  "alloy-primitives",
  "alloy-sol-type-parser",
@@ -215,9 +221,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-json-rpc"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8fa8a1a3c4cbd221f2b8e3693aeb328fca79a757fe556ed08e47bbbc2a70db7"
+checksum = "af5979e0d5a7bf9c7eb79749121e8256e59021af611322aee56e77e20776b4b3"
 dependencies = [
  "alloy-primitives",
  "alloy-sol-types",
@@ -229,9 +235,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-network"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85fa23a6a9d612b52e402c995f2d582c25165ec03ac6edf64c861a76bc5b87cd"
+checksum = "204237129086ce5dc17a58025e93739b01b45313841f98fa339eb1d780511e57"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -250,9 +256,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-network-primitives"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "801492711d4392b2ccf5fc0bc69e299fa1aab15167d74dcaa9aab96a54f684bd"
+checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -263,9 +269,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-primitives"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "260d3ff3bff0bb84599f032a2f2c6828180b0ea0cd41fdaf44f39cef3ba41861"
+checksum = "8edae627382349b56cd6a7a2106f4fd69b243a9233e560c55c2e03cabb7e1d3c"
 dependencies = [
  "alloy-rlp",
  "arbitrary",
@@ -274,8 +280,9 @@ dependencies = [
  "const-hex",
  "derive_arbitrary",
  "derive_more",
+ "foldhash",
  "getrandom",
- "hashbrown 0.14.5",
+ "hashbrown 0.15.0",
  "hex-literal",
  "indexmap 2.6.0",
  "itoa",
@@ -294,9 +301,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-provider"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcfaa4ffec0af04e3555686b8aacbcdf7d13638133a0672749209069750f78a6"
+checksum = "4814d141ede360bb6cd1b4b064f1aab9de391e7c4d0d4d50ac89ea4bc1e25fbd"
 dependencies = [
  "alloy-chains",
  "alloy-consensus",
@@ -318,21 +325,24 @@ dependencies = [
  "futures",
  "futures-utils-wasm",
  "lru",
+ "parking_lot",
  "pin-project",
  "reqwest",
+ "schnellru",
  "serde",
  "serde_json",
  "thiserror",
  "tokio",
  "tracing",
  "url",
+ "wasmtimer",
 ]
 
 [[package]]
 name = "alloy-pubsub"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f32cef487122ae75c91eb50154c70801d71fabdb976fec6c49e0af5e6486ab15"
+checksum = "96ba46eb69ddf7a9925b81f15229cb74658e6eebe5dd30a5b74e2cd040380573"
 dependencies = [
  "alloy-json-rpc",
  "alloy-primitives",
@@ -349,9 +359,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rlp"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62"
+checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f"
 dependencies = [
  "alloy-rlp-derive",
  "arrayvec",
@@ -360,20 +370,20 @@ dependencies = [
 
 [[package]]
 name = "alloy-rlp-derive"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c"
+checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
 name = "alloy-rpc-client"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "370143ed581aace6e663342d21d209c6b2e34ee6142f7d6675adb518deeaf0dc"
+checksum = "7fc2bd1e7403463a5f2c61e955bcc9d3072b63aa177442b0f9aa6a6d22a941e3"
 dependencies = [
  "alloy-json-rpc",
  "alloy-primitives",
@@ -391,13 +401,14 @@ dependencies = [
  "tower 0.5.1",
  "tracing",
  "url",
+ "wasmtimer",
 ]
 
 [[package]]
 name = "alloy-rpc-types"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ffc534b7919e18f35e3aa1f507b6f3d9d92ec298463a9f6beaac112809d8d06"
+checksum = "eea9bf1abdd506f985a53533f5ac01296bcd6102c5e139bbc5d40bc468d2c916"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types-engine",
@@ -408,9 +419,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-admin"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb520ed46cc5b7d8c014a73fdd77b6a310383a2a5c0a5ae3c9b8055881f062b7"
+checksum = "ea02c25541fb19eaac4278aa5c41d2d7e0245898887e54a74bfc0f3103e99415"
 dependencies = [
  "alloy-genesis",
  "alloy-primitives",
@@ -420,9 +431,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-anvil"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d780adaa5d95b07ad92006b2feb68ecfa7e2015f7d5976ceaac4c906c73ebd07"
+checksum = "2382fc63fb0cf3e02818d547b80cb66cc49a31f8803d0c328402b2008bc13650"
 dependencies = [
  "alloy-primitives",
  "alloy-serde",
@@ -431,9 +442,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-beacon"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a8dc5980fe30203d698627cddb5f0cedc57f900c8b5e1229c8b9448e37acb4a"
+checksum = "45357a642081c8ce235c0ad990c4e9279f5f18a723545076b38cfcc05cc25234"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -445,9 +456,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-debug"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59d8f8c5bfb160081a772f1f68eb9a37e8929c4ef74e5d01f5b78c2b645a5c5e"
+checksum = "a5afe3ab1038f90faf56304aa0adf1e6a8c9844615d8f83967f932f3a70390b1"
 dependencies = [
  "alloy-primitives",
  "serde",
@@ -455,9 +466,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-engine"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0285c4c09f838ab830048b780d7f4a4f460f309aa1194bb049843309524c64c"
+checksum = "886d22d41992287a235af2f3af4299b5ced2bcafb81eb835572ad35747476946"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -465,6 +476,8 @@ dependencies = [
  "alloy-rlp",
  "alloy-serde",
  "derive_more",
+ "ethereum_ssz",
+ "ethereum_ssz_derive",
  "jsonrpsee-types",
  "jsonwebtoken",
  "rand",
@@ -474,9 +487,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-eth"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "413f4aa3ccf2c3e4234a047c5fa4727916d7daf25a89f9b765df0ba09784fd87"
+checksum = "00b034779a4850b4b03f5be5ea674a1cf7d746b2da762b34d1860ab45e48ca27"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -485,6 +498,7 @@ dependencies = [
  "alloy-rlp",
  "alloy-serde",
  "alloy-sol-types",
+ "arbitrary",
  "derive_more",
  "itertools 0.13.0",
  "jsonrpsee-types",
@@ -494,9 +508,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-mev"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cec23ce56c869eec5f6b6fd6a8a92b5aa0cfaf8d7be3a96502e537554dc7430"
+checksum = "3246948dfa5f5060a9abe04233d741ea656ef076b12958f3242416ce9f375058"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -507,9 +521,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-trace"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "017cad3e5793c5613588c1f9732bcbad77e820ba7d0feaba3527749f856fdbc5"
+checksum = "4e5fb6c5c401321f802f69dcdb95b932f30f8158f6798793f914baac5995628e"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types-eth",
@@ -521,9 +535,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rpc-types-txpool"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b230e321c416be7f50530159392b4c41a45596d40d97e185575bcd0b545e521"
+checksum = "9ad066b49c3b1b5f64cdd2399177a19926a6a15db2dbf11e2098de621f9e7480"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types-eth",
@@ -533,9 +547,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-serde"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dff0ab1cdd43ca001e324dc27ee0e8606bd2161d6623c63e0e0b8c4dfc13600"
+checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4"
 dependencies = [
  "alloy-primitives",
  "arbitrary",
@@ -545,9 +559,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-signer"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fd4e0ad79c81a27ca659be5d176ca12399141659fef2bcbfdc848da478f4504"
+checksum = "592c185d7100258c041afac51877660c7bf6213447999787197db4842f0e938e"
 dependencies = [
  "alloy-primitives",
  "async-trait",
@@ -559,9 +573,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-signer-local"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "494e0a256f3e99f2426f994bcd1be312c02cb8f88260088dacb33a8b8936475f"
+checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c"
 dependencies = [
  "alloy-consensus",
  "alloy-network",
@@ -575,23 +589,23 @@ dependencies = [
 
 [[package]]
 name = "alloy-sol-macro"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68e7f6e8fe5b443f82b3f1e15abfa191128f71569148428e49449d01f6f49e8b"
+checksum = "841eabaa4710f719fddbc24c95d386eae313f07e6da4babc25830ee37945be0c"
 dependencies = [
  "alloy-sol-macro-expander",
  "alloy-sol-macro-input",
  "proc-macro-error2",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
 name = "alloy-sol-macro-expander"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b96ce28d2fde09abb6135f410c41fad670a3a770b6776869bd852f1df102e6f"
+checksum = "6672337f19d837b9f7073c45853aeb528ed9f7dd6a4154ce683e9e5cb7794014"
 dependencies = [
  "alloy-sol-macro-input",
  "const-hex",
@@ -600,31 +614,31 @@ dependencies = [
  "proc-macro-error2",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
  "syn-solidity",
  "tiny-keccak",
 ]
 
 [[package]]
 name = "alloy-sol-macro-input"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "906746396a8296537745711630d9185746c0b50c033d5e9d18b0a6eba3d53f90"
+checksum = "0dff37dd20bfb118b777c96eda83b2067f4226d2644c5cfa00187b3bc01770ba"
 dependencies = [
  "const-hex",
  "dunce",
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
  "syn-solidity",
 ]
 
 [[package]]
 name = "alloy-sol-type-parser"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc85178909a49c8827ffccfc9103a7ce1767ae66a801b69bdc326913870bf8e6"
+checksum = "5b853d42292dbb159671a3edae3b2750277ff130f32b726fe07dc2b17aa6f2b5"
 dependencies = [
  "serde",
  "winnow",
@@ -632,9 +646,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-sol-types"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d86a533ce22525969661b25dfe296c112d35eb6861f188fd284f8bd4bb3842ae"
+checksum = "aa828bb1b9a6dc52208fbb18084fb9ce2c30facc2bfda6a5d922349b4990354f"
 dependencies = [
  "alloy-json-abi",
  "alloy-primitives",
@@ -645,9 +659,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-transport"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ac3e97dad3d31770db0fc89bd6a63b789fbae78963086733f960cf32c483904"
+checksum = "be77579633ebbc1266ae6fd7694f75c408beb1aeb6865d0b18f22893c265a061"
 dependencies = [
  "alloy-json-rpc",
  "base64 0.22.1",
@@ -660,13 +674,14 @@ dependencies = [
  "tower 0.5.1",
  "tracing",
  "url",
+ "wasmtimer",
 ]
 
 [[package]]
 name = "alloy-transport-http"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b367dcccada5b28987c2296717ee04b9a5637aacd78eacb1726ef211678b5212"
+checksum = "91fd1a5d0827939847983b46f2f79510361f901dc82f8e3c38ac7397af142c6e"
 dependencies = [
  "alloy-json-rpc",
  "alloy-transport",
@@ -679,9 +694,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-transport-ws"
-version = "0.4.2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7153b88690de6a50bba81c11e1d706bc41dbb90126d607404d60b763f6a3947f"
+checksum = "61f27837bb4a1d6c83a28231c94493e814882f0e9058648a97e908a5f3fc9fcf"
 dependencies = [
  "alloy-pubsub",
  "alloy-transport",
@@ -697,13 +712,14 @@ dependencies = [
 
 [[package]]
 name = "alloy-trie"
-version = "0.6.0"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9703ce68b97f8faae6f7739d1e003fc97621b856953cbcdbb2b515743f23288"
+checksum = "cdd7f8b3a7c65ca09b3c7bdd7c7d72d7423d026f5247eda96af53d24e58315c1"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
  "arbitrary",
+ "arrayvec",
  "derive_arbitrary",
  "derive_more",
  "nybbles",
@@ -731,9 +747,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.15"
+version = "0.6.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
+checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -746,56 +762,56 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.8"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
+checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
+checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
+checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
 dependencies = [
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.4"
+version = "3.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
+checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
 dependencies = [
  "anstyle",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.89"
+version = "1.0.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
+checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13"
 
 [[package]]
 name = "aquamarine"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e"
+checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2"
 dependencies = [
  "include_dir",
  "itertools 0.10.5",
- "proc-macro-error",
+ "proc-macro-error2",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -942,6 +958,9 @@ name = "arrayvec"
 version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "asn1_der"
@@ -951,9 +970,9 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247"
 
 [[package]]
 name = "async-compression"
-version = "0.4.13"
+version = "0.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e614738943d3f68c628ae3dbce7c3daffb196665f82f8c8ea6b65de73c79429"
+checksum = "0cb8f1d480b0ea3783ab015936d2a55c87e219676f0c0b7dec61494043f21857"
 dependencies = [
  "brotli",
  "flate2",
@@ -984,7 +1003,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -995,7 +1014,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -1033,7 +1052,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -1118,26 +1137,6 @@ dependencies = [
  "serde",
 ]
 
-[[package]]
-name = "bindgen"
-version = "0.69.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
-dependencies = [
- "bitflags 2.6.0",
- "cexpr",
- "clang-sys",
- "itertools 0.12.1",
- "lazy_static",
- "lazycell",
- "proc-macro2",
- "quote",
- "regex",
- "rustc-hash 1.1.0",
- "shlex",
- "syn 2.0.79",
-]
-
 [[package]]
 name = "bindgen"
 version = "0.70.1"
@@ -1153,7 +1152,7 @@ dependencies = [
  "regex",
  "rustc-hash 1.1.0",
  "shlex",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -1335,7 +1334,7 @@ checksum = "240f4126219a83519bad05c9a40bfc0303921eeb571fc2d7e44c17ffac99d3f1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
  "synstructure",
 ]
 
@@ -1416,6 +1415,17 @@ dependencies = [
  "tinyvec",
 ]
 
+[[package]]
+name = "bstr"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c"
+dependencies = [
+ "memchr",
+ "regex-automata 0.4.8",
+ "serde",
+]
+
 [[package]]
 name = "bumpalo"
 version = "3.16.0"
@@ -1430,22 +1440,22 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c"
 
 [[package]]
 name = "bytemuck"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
+checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.7.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26"
+checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -1456,9 +1466,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.7.2"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3"
+checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da"
 dependencies = [
  "serde",
 ]
@@ -1527,9 +1537,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.1.24"
+version = "1.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "812acba72f0a070b003d3697490d2b55b837230ae7c6c6497f05cc2ddbb8d938"
+checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f"
 dependencies = [
  "jobserver",
  "libc",
@@ -1557,6 +1567,12 @@ version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
+[[package]]
+name = "cfg_aliases"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+
 [[package]]
 name = "chrono"
 version = "0.4.38"
@@ -1595,9 +1611,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.19"
+version = "4.5.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7be5744db7978a28d9df86a214130d106a89ce49644cbc4e3f0c22c3fba30615"
+checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -1605,9 +1621,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.5.19"
+version = "4.5.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5fbc17d3ef8278f55b282b2a2e75ae6f6c7d4bb70ed3d0382375104bfafdb4b"
+checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54"
 dependencies = [
  "anstream",
  "anstyle",
@@ -1624,7 +1640,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -1635,9 +1651,9 @@ checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
 
 [[package]]
 name = "colorchoice"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
+checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
 
 [[package]]
 name = "combine"
@@ -1803,6 +1819,12 @@ dependencies = [
  "cfg-if",
 ]
 
+[[package]]
+name = "critical-section"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b"
+
 [[package]]
 name = "crossbeam-channel"
 version = "0.5.13"
@@ -1846,7 +1868,7 @@ dependencies = [
  "bitflags 2.6.0",
  "crossterm_winapi",
  "libc",
- "parking_lot 0.12.3",
+ "parking_lot",
  "winapi",
 ]
 
@@ -1859,7 +1881,7 @@ dependencies = [
  "bitflags 2.6.0",
  "crossterm_winapi",
  "mio 1.0.2",
- "parking_lot 0.12.3",
+ "parking_lot",
  "rustix",
  "signal-hook",
  "signal-hook-mio",
@@ -1947,7 +1969,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -1971,7 +1993,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -1982,7 +2004,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -1995,7 +2017,7 @@ dependencies = [
  "hashbrown 0.14.5",
  "lock_api",
  "once_cell",
- "parking_lot_core 0.9.10",
+ "parking_lot_core",
 ]
 
 [[package]]
@@ -2009,7 +2031,8 @@ dependencies = [
  "hashbrown 0.14.5",
  "lock_api",
  "once_cell",
- "parking_lot_core 0.9.10",
+ "parking_lot_core",
+ "serde",
 ]
 
 [[package]]
@@ -2046,11 +2069,12 @@ checksum = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e"
 
 [[package]]
 name = "delay_map"
-version = "0.3.0"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4355c25cbf99edcb6b4a0e906f6bdc6956eda149e84455bea49696429b2f8e8"
+checksum = "df941644b671f05f59433e481ba0d31ac10e3667de725236a4c0d587c496fba1"
 dependencies = [
  "futures",
+ "tokio",
  "tokio-util",
 ]
 
@@ -2093,7 +2117,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -2114,7 +2138,7 @@ dependencies = [
  "convert_case",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
  "unicode-xid",
 ]
 
@@ -2189,9 +2213,9 @@ dependencies = [
 
 [[package]]
 name = "discv5"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f569b8c367554666c8652305621e8bae3634a2ff5c6378081d5bd8c399c99f23"
+checksum = "23e6b70634e26c909d1edbb3142b3eaf3b89da0e52f284f00ca7c80d9901ad9e"
 dependencies = [
  "aes",
  "aes-gcm",
@@ -2210,13 +2234,13 @@ dependencies = [
  "lru",
  "more-asserts",
  "multiaddr",
- "parking_lot 0.11.2",
+ "parking_lot",
  "rand",
  "smallvec",
- "socket2 0.4.10",
+ "socket2",
  "tokio",
  "tracing",
- "uint",
+ "uint 0.10.0",
  "zeroize",
 ]
 
@@ -2228,7 +2252,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -2348,7 +2372,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -2359,7 +2383,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -2378,6 +2402,47 @@ dependencies = [
  "windows-sys 0.52.0",
 ]
 
+[[package]]
+name = "ethereum_serde_utils"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70cbccfccf81d67bff0ab36e591fa536c8a935b078a7b0e58c1d00d418332fc9"
+dependencies = [
+ "alloy-primitives",
+ "hex",
+ "serde",
+ "serde_derive",
+ "serde_json",
+]
+
+[[package]]
+name = "ethereum_ssz"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfbba28f4f3f32d92c06a64f5bf6c4537b5d4e21f28c689bd2bbaecfea4e0d3e"
+dependencies = [
+ "alloy-primitives",
+ "derivative",
+ "ethereum_serde_utils",
+ "itertools 0.13.0",
+ "serde",
+ "serde_derive",
+ "smallvec",
+ "typenum",
+]
+
+[[package]]
+name = "ethereum_ssz_derive"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d37845ba7c16bf4be8be4b5786f03a2ba5f2fda0d7f9e7cb2282f69cff420d7"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.86",
+]
+
 [[package]]
 name = "eyre"
 version = "0.6.12"
@@ -2477,6 +2542,12 @@ version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
+[[package]]
+name = "foldhash"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2"
+
 [[package]]
 name = "form_urlencoded"
 version = "1.2.1"
@@ -2503,9 +2574,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "futures"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2518,9 +2589,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -2528,15 +2599,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -2545,32 +2616,32 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
 
 [[package]]
 name = "futures-task"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
 
 [[package]]
 name = "futures-timer"
@@ -2584,9 +2655,9 @@ dependencies = [
 
 [[package]]
 name = "futures-util"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2612,6 +2683,7 @@ version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
+ "serde",
  "typenum",
  "version_check",
  "zeroize",
@@ -2754,7 +2826,6 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 dependencies = [
  "ahash",
  "allocator-api2",
- "serde",
 ]
 
 [[package]]
@@ -2762,12 +2833,18 @@ name = "hashbrown"
 version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb"
+dependencies = [
+ "allocator-api2",
+ "equivalent",
+ "foldhash",
+ "serde",
+]
 
 [[package]]
 name = "hashlink"
-version = "0.8.4"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
+checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
 dependencies = [
  "hashbrown 0.14.5",
 ]
@@ -2935,9 +3012,9 @@ dependencies = [
 
 [[package]]
 name = "hyper"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
+checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -2975,9 +3052,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b"
+checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -2986,7 +3063,7 @@ dependencies = [
  "http-body",
  "hyper",
  "pin-project-lite",
- "socket2 0.5.7",
+ "socket2",
  "tokio",
  "tower-service",
  "tracing",
@@ -3130,7 +3207,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -3274,16 +3351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b23a0c8dfe501baac4adf6ebbfa6eddf8f0c07f56b058cc1288017e32397846c"
 dependencies = [
  "quote",
- "syn 2.0.79",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
-dependencies = [
- "cfg-if",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -3316,7 +3384,7 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.7",
+ "socket2",
  "widestring",
  "windows-sys 0.48.0",
  "winreg",
@@ -3330,9 +3398,9 @@ checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708"
 
 [[package]]
 name = "iri-string"
-version = "0.7.6"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44bd7eced44cfe2cebc674adb2a7124a754a4b5269288d22e9f39f8fada3562d"
+checksum = "dc0f0a572e8ffe56e2ff4f769f32ffe919282c3916799f8b68688b6030063bea"
 dependencies = [
  "memchr",
  "serde",
@@ -3353,15 +3421,6 @@ dependencies = [
  "either",
 ]
 
-[[package]]
-name = "itertools"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
-dependencies = [
- "either",
-]
-
 [[package]]
 name = "itertools"
 version = "0.13.0"
@@ -3408,18 +3467,18 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.70"
+version = "0.3.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
+checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "jsonrpsee"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "126b48a5acc3c52fbd5381a77898cb60e145123179588a29e7ac48f9c06e401b"
+checksum = "c5c71d8c1a731cc4227c2f698d377e7848ca12c8a48866fc5e6951c43a4db843"
 dependencies = [
  "jsonrpsee-client-transport",
  "jsonrpsee-core",
@@ -3435,9 +3494,9 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-client-transport"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf679a8e0e083c77997f7c4bb4ca826577105906027ae462aac70ff348d02c6a"
+checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e"
 dependencies = [
  "base64 0.22.1",
  "futures-channel",
@@ -3460,9 +3519,9 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-core"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0e503369a76e195b65af35058add0e6900b794a4e9a9316900ddd3a87a80477"
+checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280"
 dependencies = [
  "async-trait",
  "bytes",
@@ -3472,7 +3531,7 @@ dependencies = [
  "http-body",
  "http-body-util",
  "jsonrpsee-types",
- "parking_lot 0.12.3",
+ "parking_lot",
  "pin-project",
  "rand",
  "rustc-hash 2.0.0",
@@ -3487,9 +3546,9 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-http-client"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2c0caba4a6a8efbafeec9baa986aa22a75a96c29d3e4b0091b0098d6470efb5"
+checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b"
 dependencies = [
  "async-trait",
  "base64 0.22.1",
@@ -3512,22 +3571,22 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-proc-macros"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc660a9389e2748e794a40673a4155d501f32db667757cdb80edeff0306b489b"
+checksum = "c06c01ae0007548e73412c08e2285ffe5d723195bf268bce67b1b77c3bb2a14d"
 dependencies = [
  "heck",
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
 name = "jsonrpsee-server"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af6e6c9b6d975edcb443565d648b605f3e85a04ec63aa6941811a8894cc9cded"
+checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c"
 dependencies = [
  "futures-util",
  "http",
@@ -3552,9 +3611,9 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-types"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8fb16314327cbc94fdf7965ef7e4422509cd5597f76d137bd104eb34aeede67"
+checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1"
 dependencies = [
  "http",
  "serde",
@@ -3564,9 +3623,9 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-wasm-client"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0da62b43702bd5640ea305d35df95da30abc878e79a7b4b01feda3beaf35d3c"
+checksum = "1a01cd500915d24ab28ca17527e23901ef1be6d659a2322451e1045532516c25"
 dependencies = [
  "jsonrpsee-client-transport",
  "jsonrpsee-core",
@@ -3575,9 +3634,9 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-ws-client"
-version = "0.24.5"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39aabf5d6c6f22da8d5b808eea1fab0736059f11fb42f71f141b14f404e5046a"
+checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d"
 dependencies = [
  "http",
  "jsonrpsee-client-transport",
@@ -3678,17 +3737,11 @@ dependencies = [
  "spin",
 ]
 
-[[package]]
-name = "lazycell"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-
 [[package]]
 name = "libc"
-version = "0.2.159"
+version = "0.2.161"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
+checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1"
 
 [[package]]
 name = "libloading"
@@ -3702,9 +3755,9 @@ dependencies = [
 
 [[package]]
 name = "libm"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
 
 [[package]]
 name = "libp2p-identity"
@@ -3727,11 +3780,11 @@ dependencies = [
 
 [[package]]
 name = "libproc"
-version = "0.14.8"
+version = "0.14.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae9ea4b75e1a81675429dafe43441df1caea70081e82246a8cccf514884a88bb"
+checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb"
 dependencies = [
- "bindgen 0.69.4",
+ "bindgen",
  "errno",
  "libc",
 ]
@@ -3744,7 +3797,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
  "bitflags 2.6.0",
  "libc",
- "redox_syscall 0.5.7",
+ "redox_syscall",
 ]
 
 [[package]]
@@ -3808,6 +3861,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588"
 dependencies = [
  "linked-hash-map",
+ "serde",
 ]
 
 [[package]]
@@ -3830,6 +3884,7 @@ checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
+ "serde",
 ]
 
 [[package]]
@@ -3840,11 +3895,11 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 
 [[package]]
 name = "lru"
-version = "0.12.4"
+version = "0.12.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904"
+checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
 dependencies = [
- "hashbrown 0.14.5",
+ "hashbrown 0.15.0",
 ]
 
 [[package]]
@@ -3912,9 +3967,9 @@ dependencies = [
 
 [[package]]
 name = "metrics"
-version = "0.23.0"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "884adb57038347dfbaf2d5065887b6cf4312330dc8e94bc30a1a839bd79d3261"
+checksum = "8ae428771d17306715c5091d446327d1cfdedc82185c65ba8423ab404e45bf10"
 dependencies = [
  "ahash",
  "portable-atomic",
@@ -3929,14 +3984,14 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
 name = "metrics-exporter-prometheus"
-version = "0.15.3"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4f0c8427b39666bf970460908b213ec09b3b350f20c0c2eabcbba51704a08e6"
+checksum = "85b6f8152da6d7892ff1b7a1c0fa3f435e92b5918ad67035c3bb432111d9a29b"
 dependencies = [
  "base64 0.22.1",
  "indexmap 2.6.0",
@@ -3948,30 +4003,30 @@ dependencies = [
 
 [[package]]
 name = "metrics-process"
-version = "2.1.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb524e5438255eaa8aa74214d5a62713b77b2c3c6e3c0bbeee65cfd9a58948ba"
+checksum = "57ca8ecd85575fbb143b2678cb123bb818779391ec0f745b1c4a9dbabadde407"
 dependencies = [
+ "libc",
  "libproc",
  "mach2",
  "metrics",
  "once_cell",
- "procfs",
+ "procfs 0.17.0",
  "rlimit",
- "windows",
+ "windows 0.58.0",
 ]
 
 [[package]]
 name = "metrics-util"
-version = "0.17.0"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4259040465c955f9f2f1a4a8a16dc46726169bca0f88e8fb2dbeced487c3e828"
+checksum = "15b482df36c13dd1869d73d14d28cd4855fbd6cfc32294bee109908a9f4a4ed7"
 dependencies = [
  "crossbeam-epoch",
  "crossbeam-utils",
- "hashbrown 0.14.5",
+ "hashbrown 0.15.0",
  "metrics",
- "num_cpus",
  "quanta",
  "sketches-ddsketch",
 ]
@@ -4074,7 +4129,7 @@ dependencies = [
  "percent-encoding",
  "serde",
  "static_assertions",
- "unsigned-varint 0.8.0",
+ "unsigned-varint",
  "url",
 ]
 
@@ -4091,12 +4146,12 @@ dependencies = [
 
 [[package]]
 name = "multihash"
-version = "0.19.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492"
+checksum = "cc41f430805af9d1cf4adae4ed2149c759b877b01d909a1f40256188d09345d2"
 dependencies = [
  "core2",
- "unsigned-varint 0.7.2",
+ "unsigned-varint",
 ]
 
 [[package]]
@@ -4123,6 +4178,7 @@ dependencies = [
  "libc",
  "log",
  "mio 0.8.11",
+ "serde",
  "walkdir",
  "windows-sys 0.48.0",
 ]
@@ -4255,7 +4311,7 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -4292,18 +4348,19 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.20.1"
+version = "1.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1"
+checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
 dependencies = [
+ "critical-section",
  "portable-atomic",
 ]
 
 [[package]]
 name = "op-alloy-consensus"
-version = "0.3.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4f7f318f885db6e1455370ca91f74b7faed152c8142f6418f0936d606e582ff"
+checksum = "f26c3b35b7b3e36d15e0563eebffe13c1d9ca16b7aaffcb6a64354633547e16b"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -4319,9 +4376,9 @@ dependencies = [
 
 [[package]]
 name = "op-alloy-genesis"
-version = "0.3.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8215c87b74d2fbbaff0fd2887868a8341df33a3c495ee01f813e5ddd5be9c46"
+checksum = "ccacc2efed3d60d98ea581bddb885df1c6c62a592e55de049cfefd94116112cd"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -4333,26 +4390,29 @@ dependencies = [
 
 [[package]]
 name = "op-alloy-protocol"
-version = "0.3.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa5c397fbe35e07f9c95a571440ca2e90df754e198496d82ff4127de00b89dd9"
+checksum = "f5f8e6ec6b91c6aaeb20860b455a52fd8e300acfe5d534e96e9073a24f853e74"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
  "alloy-primitives",
  "alloy-rlp",
  "alloy-serde",
+ "async-trait",
  "derive_more",
  "op-alloy-consensus",
  "op-alloy-genesis",
  "serde",
+ "tracing",
+ "unsigned-varint",
 ]
 
 [[package]]
 name = "op-alloy-rpc-types"
-version = "0.3.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "547d29c5ab957ff32e14edddb93652dad748d2ef6cbe4b0fe8615ce06b0a3ddb"
+checksum = "94bae9bf91b620e1e2c2291562e5998bc1247bd8ada011773e1997b31a95de99"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -4360,6 +4420,7 @@ dependencies = [
  "alloy-primitives",
  "alloy-rpc-types-eth",
  "alloy-serde",
+ "arbitrary",
  "op-alloy-consensus",
  "serde",
  "serde_json",
@@ -4367,16 +4428,18 @@ dependencies = [
 
 [[package]]
 name = "op-alloy-rpc-types-engine"
-version = "0.3.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5041122e20b76644cc690bba688671eecdc4626e6384a76eb740535d6ddcef14"
+checksum = "4b52ee59c86537cff83e8c7f2a6aa287a94f3608bb40c06d442aafd0c2e807a4"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types-engine",
  "alloy-serde",
  "derive_more",
+ "ethereum_ssz",
  "op-alloy-protocol",
  "serde",
+ "snap",
 ]
 
 [[package]]
@@ -4419,6 +4482,7 @@ version = "3.6.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee"
 dependencies = [
+ "arbitrary",
  "arrayvec",
  "bitvec",
  "byte-slice-cast",
@@ -4440,17 +4504,6 @@ dependencies = [
  "syn 1.0.109",
 ]
 
-[[package]]
-name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core 0.8.6",
-]
-
 [[package]]
 name = "parking_lot"
 version = "0.12.3"
@@ -4458,21 +4511,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.10",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
-dependencies = [
- "cfg-if",
- "instant",
- "libc",
- "redox_syscall 0.2.16",
- "smallvec",
- "winapi",
+ "parking_lot_core",
 ]
 
 [[package]]
@@ -4483,7 +4522,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.5.7",
+ "redox_syscall",
  "smallvec",
  "windows-targets 0.52.6",
 ]
@@ -4512,9 +4551,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.13"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9"
+checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442"
 dependencies = [
  "memchr",
  "thiserror",
@@ -4561,7 +4600,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -4575,29 +4614,29 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.5"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.5"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
 
 [[package]]
 name = "pin-utils"
@@ -4687,7 +4726,7 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2"
 dependencies = [
  "fixed-hash",
  "impl-codec",
- "uint",
+ "uint 0.9.5",
 ]
 
 [[package]]
@@ -4700,83 +4739,81 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-error"
-version = "1.0.4"
+name = "proc-macro-error-attr2"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
 dependencies = [
- "proc-macro-error-attr",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
- "version_check",
 ]
 
 [[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
+name = "proc-macro-error2"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
 dependencies = [
+ "proc-macro-error-attr2",
  "proc-macro2",
  "quote",
- "version_check",
+ "syn 2.0.86",
 ]
 
 [[package]]
-name = "proc-macro-error-attr2"
-version = "2.0.0"
+name = "proc-macro2"
+version = "1.0.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
+checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
 dependencies = [
- "proc-macro2",
- "quote",
+ "unicode-ident",
 ]
 
 [[package]]
-name = "proc-macro-error2"
-version = "2.0.1"
+name = "procfs"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
+checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
 dependencies = [
- "proc-macro-error-attr2",
- "proc-macro2",
- "quote",
- "syn 2.0.79",
+ "bitflags 2.6.0",
+ "chrono",
+ "flate2",
+ "hex",
+ "lazy_static",
+ "procfs-core 0.16.0",
+ "rustix",
 ]
 
 [[package]]
-name = "proc-macro2"
-version = "1.0.86"
+name = "procfs"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f"
 dependencies = [
- "unicode-ident",
+ "bitflags 2.6.0",
+ "hex",
+ "procfs-core 0.17.0",
+ "rustix",
 ]
 
 [[package]]
-name = "procfs"
+name = "procfs-core"
 version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
+checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
 dependencies = [
  "bitflags 2.6.0",
  "chrono",
- "flate2",
  "hex",
- "lazy_static",
- "procfs-core",
- "rustix",
 ]
 
 [[package]]
 name = "procfs-core"
-version = "0.16.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
+checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec"
 dependencies = [
  "bitflags 2.6.0",
- "chrono",
  "hex",
 ]
 
@@ -4818,7 +4855,7 @@ checksum = "6ff7ff745a347b87471d859a377a9a404361e7efc2a971d73424a6d183c0fc77"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -4863,7 +4900,7 @@ dependencies = [
  "quinn-udp",
  "rustc-hash 2.0.0",
  "rustls",
- "socket2 0.5.7",
+ "socket2",
  "thiserror",
  "tokio",
  "tracing",
@@ -4888,13 +4925,14 @@ dependencies = [
 
 [[package]]
 name = "quinn-udp"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
+checksum = "e346e016eacfff12233c243718197ca12f148c84e1e84268a896699b41c71780"
 dependencies = [
+ "cfg_aliases",
  "libc",
  "once_cell",
- "socket2 0.5.7",
+ "socket2",
  "tracing",
  "windows-sys 0.59.0",
 ]
@@ -5010,15 +5048,6 @@ version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175"
 
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
 [[package]]
 name = "redox_syscall"
 version = "0.5.7"
@@ -5041,9 +5070,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.11.0"
+version = "1.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -5095,9 +5124,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.12.8"
+version = "0.12.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b"
+checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f"
 dependencies = [
  "base64 0.22.1",
  "bytes",
@@ -5147,8 +5176,8 @@ dependencies = [
 
 [[package]]
 name = "reth"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -5219,9 +5248,10 @@ dependencies = [
 
 [[package]]
 name = "reth-auto-seal-consensus"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-eips",
  "alloy-primitives",
  "alloy-rpc-types-engine",
  "futures-util",
@@ -5249,21 +5279,23 @@ dependencies = [
 
 [[package]]
 name = "reth-basic-payload-builder"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
+ "alloy-eips",
  "alloy-primitives",
  "alloy-rlp",
  "futures-core",
  "futures-util",
  "metrics",
  "reth-chainspec",
+ "reth-evm",
  "reth-metrics",
  "reth-payload-builder",
  "reth-payload-primitives",
  "reth-primitives",
  "reth-provider",
- "reth-revm",
  "reth-tasks",
  "reth-transaction-pool",
  "revm",
@@ -5273,9 +5305,10 @@ dependencies = [
 
 [[package]]
 name = "reth-beacon-consensus"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-eips",
  "alloy-primitives",
  "alloy-rpc-types-engine",
  "futures",
@@ -5307,15 +5340,15 @@ dependencies = [
 
 [[package]]
 name = "reth-blockchain-tree"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
  "aquamarine",
  "linked_hash_set",
  "metrics",
- "parking_lot 0.12.3",
+ "parking_lot",
  "reth-blockchain-tree-api",
  "reth-consensus",
  "reth-db",
@@ -5340,8 +5373,8 @@ dependencies = [
 
 [[package]]
 name = "reth-blockchain-tree-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "reth-consensus",
@@ -5353,8 +5386,8 @@ dependencies = [
 
 [[package]]
 name = "reth-chain-state"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -5364,7 +5397,7 @@ dependencies = [
  "auto_impl",
  "derive_more",
  "metrics",
- "parking_lot 0.12.3",
+ "parking_lot",
  "pin-project",
  "rand",
  "reth-chainspec",
@@ -5382,14 +5415,14 @@ dependencies = [
 
 [[package]]
 name = "reth-chainspec"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-chains",
+ "alloy-consensus",
  "alloy-eips",
  "alloy-genesis",
  "alloy-primitives",
- "alloy-trie",
  "auto_impl",
  "derive_more",
  "once_cell",
@@ -5402,25 +5435,27 @@ dependencies = [
 
 [[package]]
 name = "reth-cli"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-genesis",
  "clap",
  "eyre",
  "reth-cli-runner",
+ "reth-db",
  "serde_json",
  "shellexpand",
 ]
 
 [[package]]
 name = "reth-cli-commands"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "ahash",
  "alloy-eips",
  "alloy-primitives",
+ "alloy-rlp",
  "backon",
  "clap",
  "comfy-table",
@@ -5473,8 +5508,8 @@ dependencies = [
 
 [[package]]
 name = "reth-cli-runner"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "reth-tasks",
  "tokio",
@@ -5483,8 +5518,8 @@ dependencies = [
 
 [[package]]
 name = "reth-cli-util"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -5494,40 +5529,45 @@ dependencies = [
  "rand",
  "reth-fs-util",
  "secp256k1",
+ "serde",
  "thiserror",
  "tikv-jemallocator",
 ]
 
 [[package]]
 name = "reth-codecs"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
  "alloy-genesis",
  "alloy-primitives",
  "alloy-trie",
+ "arbitrary",
  "bytes",
  "modular-bitfield",
+ "op-alloy-consensus",
  "reth-codecs-derive",
+ "serde",
+ "visibility",
 ]
 
 [[package]]
 name = "reth-codecs-derive"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "convert_case",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
 name = "reth-config"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "eyre",
  "humantime-serde",
@@ -5540,9 +5580,10 @@ dependencies = [
 
 [[package]]
 name = "reth-consensus"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-eips",
  "alloy-primitives",
  "auto_impl",
  "derive_more",
@@ -5551,9 +5592,11 @@ dependencies = [
 
 [[package]]
 name = "reth-consensus-common"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
+ "alloy-eips",
  "alloy-primitives",
  "reth-chainspec",
  "reth-consensus",
@@ -5563,8 +5606,8 @@ dependencies = [
 
 [[package]]
 name = "reth-consensus-debug-client"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -5587,8 +5630,8 @@ dependencies = [
 
 [[package]]
 name = "reth-db"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "bytes",
@@ -5596,7 +5639,7 @@ dependencies = [
  "eyre",
  "metrics",
  "page_size",
- "parking_lot 0.12.3",
+ "parking_lot",
  "paste",
  "reth-db-api",
  "reth-fs-util",
@@ -5620,8 +5663,8 @@ dependencies = [
 
 [[package]]
 name = "reth-db-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-genesis",
  "alloy-primitives",
@@ -5645,8 +5688,8 @@ dependencies = [
 
 [[package]]
 name = "reth-db-common"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-genesis",
  "alloy-primitives",
@@ -5673,8 +5716,8 @@ dependencies = [
 
 [[package]]
 name = "reth-db-models"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "arbitrary",
@@ -5688,15 +5731,17 @@ dependencies = [
 
 [[package]]
 name = "reth-discv4"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
  "discv5",
  "enr",
  "generic-array",
- "parking_lot 0.12.3",
+ "itertools 0.13.0",
+ "parking_lot",
+ "rand",
  "reth-ethereum-forks",
  "reth-net-banlist",
  "reth-net-nat",
@@ -5712,8 +5757,8 @@ dependencies = [
 
 [[package]]
 name = "reth-discv5"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
@@ -5736,19 +5781,21 @@ dependencies = [
 
 [[package]]
 name = "reth-dns-discovery"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "data-encoding",
  "enr",
  "linked_hash_set",
- "parking_lot 0.12.3",
+ "parking_lot",
  "reth-ethereum-forks",
  "reth-network-peers",
  "reth-tokio-util",
  "schnellru",
  "secp256k1",
+ "serde",
+ "serde_with",
  "thiserror",
  "tokio",
  "tokio-stream",
@@ -5758,8 +5805,8 @@ dependencies = [
 
 [[package]]
 name = "reth-downloaders"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -5787,8 +5834,8 @@ dependencies = [
 
 [[package]]
 name = "reth-ecies"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "aes",
  "alloy-primitives",
@@ -5816,10 +5863,40 @@ dependencies = [
  "typenum",
 ]
 
+[[package]]
+name = "reth-engine-local"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
+dependencies = [
+ "alloy-primitives",
+ "alloy-rpc-types-engine",
+ "eyre",
+ "futures-util",
+ "reth-beacon-consensus",
+ "reth-chainspec",
+ "reth-consensus",
+ "reth-engine-primitives",
+ "reth-engine-service",
+ "reth-engine-tree",
+ "reth-ethereum-engine-primitives",
+ "reth-evm",
+ "reth-payload-builder",
+ "reth-payload-primitives",
+ "reth-payload-validator",
+ "reth-provider",
+ "reth-prune",
+ "reth-rpc-types-compat",
+ "reth-stages-api",
+ "reth-transaction-pool",
+ "tokio",
+ "tokio-stream",
+ "tracing",
+]
+
 [[package]]
 name = "reth-engine-primitives"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "reth-execution-types",
@@ -5831,12 +5908,13 @@ dependencies = [
 
 [[package]]
 name = "reth-engine-service"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "futures",
  "pin-project",
  "reth-beacon-consensus",
+ "reth-chainspec",
  "reth-consensus",
  "reth-engine-tree",
  "reth-evm",
@@ -5853,8 +5931,8 @@ dependencies = [
 
 [[package]]
 name = "reth-engine-tree"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -5890,9 +5968,11 @@ dependencies = [
 
 [[package]]
 name = "reth-engine-util"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
+ "alloy-eips",
  "alloy-primitives",
  "alloy-rpc-types-engine",
  "eyre",
@@ -5921,8 +6001,8 @@ dependencies = [
 
 [[package]]
 name = "reth-errors"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "reth-blockchain-tree-api",
  "reth-consensus",
@@ -5934,8 +6014,8 @@ dependencies = [
 
 [[package]]
 name = "reth-eth-wire"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
@@ -5950,6 +6030,7 @@ dependencies = [
  "reth-metrics",
  "reth-network-peers",
  "reth-primitives",
+ "serde",
  "snap",
  "thiserror",
  "tokio",
@@ -5960,8 +6041,8 @@ dependencies = [
 
 [[package]]
 name = "reth-eth-wire-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-chains",
  "alloy-eips",
@@ -5972,13 +6053,14 @@ dependencies = [
  "reth-chainspec",
  "reth-codecs-derive",
  "reth-primitives",
+ "serde",
  "thiserror",
 ]
 
 [[package]]
 name = "reth-ethereum-cli"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "eyre",
  "reth-chainspec",
@@ -5987,9 +6069,11 @@ dependencies = [
 
 [[package]]
 name = "reth-ethereum-consensus"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
+ "alloy-eips",
  "alloy-primitives",
  "reth-chainspec",
  "reth-consensus",
@@ -6000,8 +6084,8 @@ dependencies = [
 
 [[package]]
 name = "reth-ethereum-engine-primitives"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -6019,8 +6103,8 @@ dependencies = [
 
 [[package]]
 name = "reth-ethereum-forks"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-chains",
  "alloy-primitives",
@@ -6039,9 +6123,11 @@ dependencies = [
 
 [[package]]
 name = "reth-ethereum-payload-builder"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
+ "alloy-eips",
  "alloy-primitives",
  "reth-basic-payload-builder",
  "reth-chain-state",
@@ -6064,8 +6150,8 @@ dependencies = [
 
 [[package]]
 name = "reth-etl"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "rayon",
  "reth-db-api",
@@ -6074,21 +6160,25 @@ dependencies = [
 
 [[package]]
 name = "reth-evm"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
  "auto_impl",
  "futures-util",
  "metrics",
+ "parking_lot",
  "reth-chainspec",
+ "reth-consensus",
+ "reth-consensus-common",
  "reth-execution-errors",
  "reth-execution-types",
  "reth-metrics",
  "reth-primitives",
  "reth-primitives-traits",
  "reth-prune-types",
+ "reth-revm",
  "reth-storage-errors",
  "revm",
  "revm-primitives",
@@ -6096,27 +6186,27 @@ dependencies = [
 
 [[package]]
 name = "reth-evm-ethereum"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
  "alloy-eips",
  "alloy-primitives",
  "alloy-sol-types",
  "reth-chainspec",
+ "reth-consensus",
  "reth-ethereum-consensus",
  "reth-ethereum-forks",
  "reth-evm",
- "reth-execution-types",
  "reth-primitives",
- "reth-prune-types",
  "reth-revm",
  "revm-primitives",
 ]
 
 [[package]]
 name = "reth-execution-errors"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -6131,8 +6221,8 @@ dependencies = [
 
 [[package]]
 name = "reth-execution-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -6146,8 +6236,8 @@ dependencies = [
 
 [[package]]
 name = "reth-exex"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -6155,7 +6245,7 @@ dependencies = [
  "futures",
  "itertools 0.13.0",
  "metrics",
- "parking_lot 0.12.3",
+ "parking_lot",
  "reth-chain-state",
  "reth-chainspec",
  "reth-config",
@@ -6182,8 +6272,8 @@ dependencies = [
 
 [[package]]
 name = "reth-exex-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -6195,8 +6285,8 @@ dependencies = [
 
 [[package]]
 name = "reth-fs-util"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "serde",
  "serde_json",
@@ -6205,8 +6295,8 @@ dependencies = [
 
 [[package]]
 name = "reth-invalid-block-hooks"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
@@ -6230,8 +6320,8 @@ dependencies = [
 
 [[package]]
 name = "reth-ipc"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "async-trait",
  "bytes",
@@ -6251,15 +6341,15 @@ dependencies = [
 
 [[package]]
 name = "reth-libmdbx"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "bitflags 2.6.0",
  "byteorder",
  "dashmap 6.1.0",
  "derive_more",
  "indexmap 2.6.0",
- "parking_lot 0.12.3",
+ "parking_lot",
  "reth-mdbx-sys",
  "smallvec",
  "thiserror",
@@ -6268,17 +6358,17 @@ dependencies = [
 
 [[package]]
 name = "reth-mdbx-sys"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
- "bindgen 0.70.1",
+ "bindgen",
  "cc",
 ]
 
 [[package]]
 name = "reth-metrics"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "futures",
  "metrics",
@@ -6289,16 +6379,16 @@ dependencies = [
 
 [[package]]
 name = "reth-net-banlist"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
 ]
 
 [[package]]
 name = "reth-net-nat"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "futures-util",
  "if-addrs",
@@ -6311,8 +6401,8 @@ dependencies = [
 
 [[package]]
 name = "reth-network"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -6325,7 +6415,7 @@ dependencies = [
  "futures",
  "itertools 0.13.0",
  "metrics",
- "parking_lot 0.12.3",
+ "parking_lot",
  "pin-project",
  "rand",
  "reth-chainspec",
@@ -6343,6 +6433,7 @@ dependencies = [
  "reth-network-peers",
  "reth-network-types",
  "reth-primitives",
+ "reth-provider",
  "reth-storage-api",
  "reth-tasks",
  "reth-tokio-util",
@@ -6361,8 +6452,8 @@ dependencies = [
 
 [[package]]
 name = "reth-network-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types-admin",
@@ -6384,14 +6475,15 @@ dependencies = [
 
 [[package]]
 name = "reth-network-p2p"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
  "auto_impl",
  "derive_more",
  "futures",
+ "parking_lot",
  "reth-consensus",
  "reth-eth-wire-types",
  "reth-network-peers",
@@ -6404,8 +6496,8 @@ dependencies = [
 
 [[package]]
 name = "reth-network-peers"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
@@ -6419,8 +6511,8 @@ dependencies = [
 
 [[package]]
 name = "reth-network-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "humantime-serde",
  "reth-ethereum-forks",
@@ -6433,8 +6525,8 @@ dependencies = [
 
 [[package]]
 name = "reth-nippy-jar"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "anyhow",
  "bincode",
@@ -6450,26 +6542,30 @@ dependencies = [
 
 [[package]]
 name = "reth-node-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-rpc-types-engine",
+ "eyre",
+ "reth-beacon-consensus",
+ "reth-consensus",
  "reth-engine-primitives",
  "reth-evm",
  "reth-network-api",
+ "reth-node-core",
  "reth-node-types",
  "reth-payload-builder",
  "reth-payload-primitives",
  "reth-primitives",
  "reth-provider",
- "reth-rpc-eth-api",
  "reth-tasks",
  "reth-transaction-pool",
 ]
 
 [[package]]
 name = "reth-node-builder"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types",
@@ -6491,6 +6587,7 @@ dependencies = [
  "reth-db-api",
  "reth-db-common",
  "reth-downloaders",
+ "reth-engine-local",
  "reth-engine-service",
  "reth-engine-tree",
  "reth-engine-util",
@@ -6531,9 +6628,11 @@ dependencies = [
 
 [[package]]
 name = "reth-node-core"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
+ "alloy-eips",
  "alloy-primitives",
  "alloy-rpc-types-engine",
  "clap",
@@ -6557,8 +6656,6 @@ dependencies = [
  "reth-network-peers",
  "reth-primitives",
  "reth-prune-types",
- "reth-rpc-api",
- "reth-rpc-eth-api",
  "reth-rpc-eth-types",
  "reth-rpc-server-types",
  "reth-rpc-types-compat",
@@ -6579,8 +6676,8 @@ dependencies = [
 
 [[package]]
 name = "reth-node-ethereum"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "eyre",
  "reth-auto-seal-consensus",
@@ -6590,6 +6687,7 @@ dependencies = [
  "reth-consensus",
  "reth-ethereum-engine-primitives",
  "reth-ethereum-payload-builder",
+ "reth-evm",
  "reth-evm-ethereum",
  "reth-network",
  "reth-node-api",
@@ -6597,16 +6695,21 @@ dependencies = [
  "reth-payload-builder",
  "reth-primitives",
  "reth-provider",
+ "reth-revm",
  "reth-rpc",
  "reth-tracing",
  "reth-transaction-pool",
+ "reth-trie-db",
+ "revm",
 ]
 
 [[package]]
 name = "reth-node-events"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
+ "alloy-eips",
  "alloy-primitives",
  "alloy-rpc-types-engine",
  "futures",
@@ -6615,7 +6718,6 @@ dependencies = [
  "reth-beacon-consensus",
  "reth-network",
  "reth-network-api",
- "reth-primitives",
  "reth-primitives-traits",
  "reth-provider",
  "reth-prune",
@@ -6627,8 +6729,8 @@ dependencies = [
 
 [[package]]
 name = "reth-node-metrics"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "eyre",
  "http",
@@ -6637,7 +6739,7 @@ dependencies = [
  "metrics-exporter-prometheus",
  "metrics-process",
  "metrics-util",
- "procfs",
+ "procfs 0.16.0",
  "reth-db-api",
  "reth-metrics",
  "reth-provider",
@@ -6651,18 +6753,21 @@ dependencies = [
 
 [[package]]
 name = "reth-node-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "reth-chainspec",
  "reth-db-api",
  "reth-engine-primitives",
+ "reth-primitives",
+ "reth-primitives-traits",
+ "reth-trie-db",
 ]
 
 [[package]]
 name = "reth-payload-builder"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types",
@@ -6681,9 +6786,10 @@ dependencies = [
 
 [[package]]
 name = "reth-payload-primitives"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-eips",
  "alloy-primitives",
  "alloy-rpc-types",
  "async-trait",
@@ -6703,8 +6809,8 @@ dependencies = [
 
 [[package]]
 name = "reth-payload-validator"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-rpc-types",
  "reth-chainspec",
@@ -6714,8 +6820,8 @@ dependencies = [
 
 [[package]]
 name = "reth-primitives"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -6732,7 +6838,6 @@ dependencies = [
  "once_cell",
  "op-alloy-consensus",
  "op-alloy-rpc-types",
- "proptest",
  "rand",
  "rayon",
  "reth-codecs",
@@ -6749,8 +6854,8 @@ dependencies = [
 
 [[package]]
 name = "reth-primitives-traits"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -6773,8 +6878,8 @@ dependencies = [
 
 [[package]]
 name = "reth-provider"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -6785,8 +6890,7 @@ dependencies = [
  "itertools 0.13.0",
  "metrics",
  "notify",
- "once_cell",
- "parking_lot 0.12.3",
+ "parking_lot",
  "rayon",
  "reth-blockchain-tree-api",
  "reth-chain-state",
@@ -6818,8 +6922,8 @@ dependencies = [
 
 [[package]]
 name = "reth-prune"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "itertools 0.13.0",
@@ -6844,10 +6948,11 @@ dependencies = [
 
 [[package]]
 name = "reth-prune-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
+ "arbitrary",
  "bytes",
  "derive_more",
  "modular-bitfield",
@@ -6858,24 +6963,24 @@ dependencies = [
 
 [[package]]
 name = "reth-revm"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-eips",
  "alloy-primitives",
- "reth-chainspec",
- "reth-consensus-common",
  "reth-execution-errors",
  "reth-primitives",
  "reth-prune-types",
  "reth-storage-api",
  "reth-storage-errors",
+ "reth-trie",
  "revm",
 ]
 
 [[package]]
 name = "reth-rpc"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-dyn-abi",
@@ -6886,6 +6991,7 @@ dependencies = [
  "alloy-rlp",
  "alloy-rpc-types",
  "alloy-rpc-types-admin",
+ "alloy-rpc-types-beacon",
  "alloy-rpc-types-debug",
  "alloy-rpc-types-eth",
  "alloy-rpc-types-mev",
@@ -6902,17 +7008,19 @@ dependencies = [
  "hyper",
  "jsonrpsee",
  "jsonwebtoken",
- "parking_lot 0.12.3",
+ "parking_lot",
  "pin-project",
  "rand",
  "reth-chainspec",
+ "reth-consensus",
  "reth-consensus-common",
  "reth-errors",
+ "reth-ethereum-consensus",
  "reth-evm",
  "reth-network-api",
  "reth-network-peers",
  "reth-network-types",
- "reth-node-api",
+ "reth-payload-validator",
  "reth-primitives",
  "reth-provider",
  "reth-revm",
@@ -6940,8 +7048,8 @@ dependencies = [
 
 [[package]]
 name = "reth-rpc-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-json-rpc",
@@ -6962,12 +7070,14 @@ dependencies = [
  "reth-network-peers",
  "reth-primitives",
  "reth-rpc-eth-api",
+ "serde",
+ "serde_with",
 ]
 
 [[package]]
 name = "reth-rpc-builder"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-network",
  "alloy-rpc-types",
@@ -6977,6 +7087,7 @@ dependencies = [
  "metrics",
  "pin-project",
  "reth-chainspec",
+ "reth-consensus",
  "reth-engine-primitives",
  "reth-evm",
  "reth-ipc",
@@ -6995,6 +7106,8 @@ dependencies = [
  "reth-transaction-pool",
  "serde",
  "thiserror",
+ "tokio",
+ "tokio-util",
  "tower 0.4.13",
  "tower-http",
  "tracing",
@@ -7002,8 +7115,8 @@ dependencies = [
 
 [[package]]
 name = "reth-rpc-engine-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -7033,9 +7146,10 @@ dependencies = [
 
 [[package]]
 name = "reth-rpc-eth-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
  "alloy-dyn-abi",
  "alloy-eips",
  "alloy-json-rpc",
@@ -7050,12 +7164,13 @@ dependencies = [
  "futures",
  "jsonrpsee",
  "jsonrpsee-types",
- "parking_lot 0.12.3",
+ "parking_lot",
  "reth-chainspec",
  "reth-errors",
  "reth-evm",
  "reth-execution-types",
  "reth-network-api",
+ "reth-node-api",
  "reth-primitives",
  "reth-provider",
  "reth-revm",
@@ -7074,8 +7189,8 @@ dependencies = [
 
 [[package]]
 name = "reth-rpc-eth-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-eips",
@@ -7086,6 +7201,7 @@ dependencies = [
  "alloy-sol-types",
  "derive_more",
  "futures",
+ "itertools 0.13.0",
  "jsonrpsee-core",
  "jsonrpsee-types",
  "metrics",
@@ -7117,8 +7233,8 @@ dependencies = [
 
 [[package]]
 name = "reth-rpc-layer"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-rpc-types-engine",
  "http",
@@ -7130,8 +7246,8 @@ dependencies = [
 
 [[package]]
 name = "reth-rpc-server-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types-engine",
@@ -7146,9 +7262,10 @@ dependencies = [
 
 [[package]]
 name = "reth-rpc-types-compat"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
  "alloy-eips",
  "alloy-primitives",
  "alloy-rlp",
@@ -7158,12 +7275,13 @@ dependencies = [
  "alloy-serde",
  "reth-primitives",
  "reth-trie-common",
+ "serde",
 ]
 
 [[package]]
 name = "reth-stages"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "bincode",
@@ -7198,8 +7316,8 @@ dependencies = [
 
 [[package]]
 name = "reth-stages-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "aquamarine",
@@ -7224,10 +7342,11 @@ dependencies = [
 
 [[package]]
 name = "reth-stages-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
+ "arbitrary",
  "bytes",
  "modular-bitfield",
  "reth-codecs",
@@ -7237,17 +7356,14 @@ dependencies = [
 
 [[package]]
 name = "reth-static-file"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
- "parking_lot 0.12.3",
+ "parking_lot",
  "rayon",
- "reth-chainspec",
  "reth-db",
  "reth-db-api",
- "reth-nippy-jar",
- "reth-node-types",
  "reth-provider",
  "reth-prune-types",
  "reth-stages-types",
@@ -7259,8 +7375,8 @@ dependencies = [
 
 [[package]]
 name = "reth-static-file-types"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "clap",
@@ -7271,9 +7387,10 @@ dependencies = [
 
 [[package]]
 name = "reth-storage-api"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
  "alloy-eips",
  "alloy-primitives",
  "auto_impl",
@@ -7290,8 +7407,8 @@ dependencies = [
 
 [[package]]
 name = "reth-storage-errors"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-eips",
  "alloy-primitives",
@@ -7303,8 +7420,8 @@ dependencies = [
 
 [[package]]
 name = "reth-tasks"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "auto_impl",
  "dyn-clone",
@@ -7321,8 +7438,8 @@ dependencies = [
 
 [[package]]
 name = "reth-tokio-util"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "tokio",
  "tokio-stream",
@@ -7331,8 +7448,8 @@ dependencies = [
 
 [[package]]
 name = "reth-tracing"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "clap",
  "eyre",
@@ -7346,9 +7463,10 @@ dependencies = [
 
 [[package]]
 name = "reth-transaction-pool"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
  "alloy-eips",
  "alloy-primitives",
  "alloy-rlp",
@@ -7357,7 +7475,8 @@ dependencies = [
  "bitflags 2.6.0",
  "futures-util",
  "metrics",
- "parking_lot 0.12.3",
+ "parking_lot",
+ "rand",
  "reth-chain-state",
  "reth-chainspec",
  "reth-eth-wire-types",
@@ -7380,13 +7499,13 @@ dependencies = [
 
 [[package]]
 name = "reth-trie"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
+ "alloy-consensus",
  "alloy-primitives",
  "alloy-rlp",
  "auto_impl",
- "derive_more",
  "itertools 0.13.0",
  "metrics",
  "rayon",
@@ -7405,8 +7524,8 @@ dependencies = [
 
 [[package]]
 name = "reth-trie-common"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-consensus",
  "alloy-genesis",
@@ -7428,33 +7547,31 @@ dependencies = [
 
 [[package]]
 name = "reth-trie-db"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
- "auto_impl",
  "derive_more",
- "itertools 0.13.0",
  "metrics",
- "rayon",
  "reth-db",
  "reth-db-api",
  "reth-execution-errors",
  "reth-metrics",
  "reth-primitives",
- "reth-stages-types",
  "reth-storage-errors",
  "reth-trie",
  "reth-trie-common",
  "revm",
+ "serde",
  "tracing",
+ "triehash",
 ]
 
 [[package]]
 name = "reth-trie-parallel"
-version = "1.0.8"
-source = "git+https://github.com/paradigmxyz/reth?rev=9a732f6b7813f9ecb5f28b379d3062c287a78e70#9a732f6b7813f9ecb5f28b379d3062c287a78e70"
+version = "1.1.0"
+source = "git+https://github.com/paradigmxyz/reth?rev=bd8c4eceb20c39c6e501d06cf906469329340bb9#bd8c4eceb20c39c6e501d06cf906469329340bb9"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
@@ -7463,7 +7580,6 @@ dependencies = [
  "metrics",
  "rayon",
  "reth-db",
- "reth-db-api",
  "reth-execution-errors",
  "reth-metrics",
  "reth-primitives",
@@ -7479,7 +7595,9 @@ name = "reth_gnosis"
 version = "0.1.0"
 dependencies = [
  "alloy-chains",
+ "alloy-consensus",
  "alloy-dyn-abi",
+ "alloy-eips",
  "alloy-primitives",
  "alloy-rlp",
  "alloy-serde",
@@ -7511,10 +7629,12 @@ dependencies = [
  "reth-primitives",
  "reth-provider",
  "reth-prune-types",
+ "reth-rpc",
  "reth-stages",
  "reth-stages-api",
  "reth-stages-types",
  "reth-trie",
+ "reth-trie-db",
  "revm",
  "revm-inspectors",
  "revm-primitives",
@@ -7531,9 +7651,9 @@ dependencies = [
 
 [[package]]
 name = "revm"
-version = "14.0.3"
+version = "17.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "641702b12847f9ed418d552f4fcabe536d867a2c980e96b6e7e25d7b992f929f"
+checksum = "055bee6a81aaeee8c2389ae31f0d4de87f44df24f4444a1116f9755fd87a76ad"
 dependencies = [
  "auto_impl",
  "cfg-if",
@@ -7546,9 +7666,9 @@ dependencies = [
 
 [[package]]
 name = "revm-inspectors"
-version = "0.8.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43c44af0bf801f48d25f7baf25cf72aff4c02d610f83b428175228162fef0246"
+checksum = "1e29c662f7887f3b659d4b0fd234673419a8fcbeaa1ecc29bf7034c0a75cc8ea"
 dependencies = [
  "alloy-primitives",
  "alloy-rpc-types-eth",
@@ -7565,9 +7685,9 @@ dependencies = [
 
 [[package]]
 name = "revm-interpreter"
-version = "10.0.3"
+version = "13.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e5e14002afae20b5bf1566f22316122f42f57517000e559c55b25bf7a49cba2"
+checksum = "fac2034454f8bc69dc7d3c94cdb1b57559e27f5ef0518771f1787de543d7d6a1"
 dependencies = [
  "revm-primitives",
  "serde",
@@ -7575,9 +7695,9 @@ dependencies = [
 
 [[package]]
 name = "revm-precompile"
-version = "11.0.3"
+version = "14.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3198c06247e8d4ad0d1312591edf049b0de4ddffa9fecb625c318fd67db8639b"
+checksum = "7a88c8c7c5f9b988a9e65fc0990c6ce859cdb74114db705bd118a96d22d08027"
 dependencies = [
  "aurora-engine-modexp",
  "blst",
@@ -7594,9 +7714,9 @@ dependencies = [
 
 [[package]]
 name = "revm-primitives"
-version = "10.0.0"
+version = "13.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f1525851a03aff9a9d6a1d018b414d76252d6802ab54695b27093ecd7e7a101"
+checksum = "0d11fa1e195b0bebaf3fb18596f314a13ba3a4cb1fdd16d3465934d812fd921e"
 dependencies = [
  "alloy-eip2930",
  "alloy-eip7702",
@@ -7796,9 +7916,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.37"
+version = "0.38.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
+checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a"
 dependencies = [
  "bitflags 2.6.0",
  "errno",
@@ -7809,9 +7929,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.23.13"
+version = "0.23.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8"
+checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e"
 dependencies = [
  "log",
  "once_cell",
@@ -7846,9 +7966,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55"
+checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b"
 
 [[package]]
 name = "rustls-platform-verifier"
@@ -7890,9 +8010,9 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
 
 [[package]]
 name = "rusty-fork"
@@ -7929,9 +8049,9 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.24"
+version = "0.1.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b"
+checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1"
 dependencies = [
  "windows-sys 0.59.0",
 ]
@@ -8052,29 +8172,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
 
 [[package]]
 name = "serde"
-version = "1.0.210"
+version = "1.0.214"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.210"
+version = "1.0.214"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.128"
+version = "1.0.132"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
+checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
 dependencies = [
  "indexmap 2.6.0",
  "itoa",
@@ -8091,7 +8211,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -8117,9 +8237,9 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.10.0"
+version = "3.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9720086b3357bcb44fce40117d769a4d068c70ecfa190850a980a71755f66fcc"
+checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817"
 dependencies = [
  "base64 0.22.1",
  "chrono",
@@ -8135,14 +8255,14 @@ dependencies = [
 
 [[package]]
 name = "serde_with_macros"
-version = "3.10.0"
+version = "3.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f1abbfe725f27678f4663bcacb75a83e829fd464c25d78dd038a3a29e307cec"
+checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -8269,6 +8389,10 @@ name = "similar"
 version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
+dependencies = [
+ "bstr",
+ "unicode-segmentation",
+]
 
 [[package]]
 name = "similar-asserts"
@@ -8277,6 +8401,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cfe85670573cd6f0fa97940f26e7e6601213c3b0555246c24234131f88c5709e"
 dependencies = [
  "console",
+ "serde",
  "similar",
 ]
 
@@ -8300,9 +8425,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "sketches-ddsketch"
-version = "0.2.2"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c"
+checksum = "c1e9a774a6c28142ac54bb25d25562e6bcf957493a184f15ad4eebccb23e410a"
 
 [[package]]
 name = "slab"
@@ -8329,16 +8454,6 @@ version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
 
-[[package]]
-name = "socket2"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
-
 [[package]]
 name = "socket2"
 version = "0.5.7"
@@ -8427,7 +8542,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -8462,9 +8577,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.79"
+version = "2.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
+checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -8473,14 +8588,14 @@ dependencies = [
 
 [[package]]
 name = "syn-solidity"
-version = "0.8.5"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ab661c8148c2261222a4d641ad5477fd4bea79406a99056096a0b41b35617a5"
+checksum = "16320d4a2021ba1a32470b3759676114a918885e9800e68ad60f2c67969fba62"
 dependencies = [
  "paste",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -8506,7 +8621,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -8519,7 +8634,7 @@ dependencies = [
  "libc",
  "memchr",
  "ntapi",
- "windows",
+ "windows 0.57.0",
 ]
 
 [[package]]
@@ -8549,22 +8664,22 @@ checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b"
 
 [[package]]
 name = "thiserror"
-version = "1.0.64"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
+checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.64"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
+checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -8707,18 +8822,18 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.40.0"
+version = "1.41.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
+checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
  "mio 1.0.2",
- "parking_lot 0.12.3",
+ "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.7",
+ "socket2",
  "tokio-macros",
  "windows-sys 0.52.0",
 ]
@@ -8731,7 +8846,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -8932,7 +9047,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -9066,9 +9181,10 @@ dependencies = [
  "ipconfig",
  "lru-cache",
  "once_cell",
- "parking_lot 0.12.3",
+ "parking_lot",
  "rand",
  "resolv-conf",
+ "serde",
  "smallvec",
  "thiserror",
  "tokio",
@@ -9126,6 +9242,18 @@ dependencies = [
  "static_assertions",
 ]
 
+[[package]]
+name = "uint"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e"
+dependencies = [
+ "byteorder",
+ "crunchy",
+ "hex",
+ "static_assertions",
+]
+
 [[package]]
 name = "unarray"
 version = "0.1.4"
@@ -9134,12 +9262,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
 
 [[package]]
 name = "unicase"
-version = "2.7.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
-dependencies = [
- "version_check",
-]
+checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df"
 
 [[package]]
 name = "unicode-bidi"
@@ -9201,12 +9326,6 @@ dependencies = [
  "subtle",
 ]
 
-[[package]]
-name = "unsigned-varint"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105"
-
 [[package]]
 name = "unsigned-varint"
 version = "0.8.0"
@@ -9256,9 +9375,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
 
 [[package]]
 name = "uuid"
-version = "1.10.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
+checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a"
 dependencies = [
  "getrandom",
 ]
@@ -9289,6 +9408,17 @@ version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
 
+[[package]]
+name = "visibility"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.86",
+]
+
 [[package]]
 name = "wait-timeout"
 version = "0.2.0"
@@ -9325,9 +9455,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.93"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
+checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -9336,24 +9466,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.93"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
+checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.43"
+version = "0.4.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
+checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -9363,9 +9493,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.93"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
+checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -9373,28 +9503,42 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.93"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
+checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.93"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
+checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d"
+
+[[package]]
+name = "wasmtimer"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7ed9d8b15c7fb594d72bfb4b5a276f3d2029333cd93a932f376f5937f6f80ee"
+dependencies = [
+ "futures",
+ "js-sys",
+ "parking_lot",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen",
+]
 
 [[package]]
 name = "web-sys"
-version = "0.3.70"
+version = "0.3.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
+checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -9456,6 +9600,16 @@ dependencies = [
  "windows-targets 0.52.6",
 ]
 
+[[package]]
+name = "windows"
+version = "0.58.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
+dependencies = [
+ "windows-core 0.58.0",
+ "windows-targets 0.52.6",
+]
+
 [[package]]
 name = "windows-core"
 version = "0.52.0"
@@ -9471,12 +9625,25 @@ version = "0.57.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
 dependencies = [
- "windows-implement",
- "windows-interface",
+ "windows-implement 0.57.0",
+ "windows-interface 0.57.0",
  "windows-result 0.1.2",
  "windows-targets 0.52.6",
 ]
 
+[[package]]
+name = "windows-core"
+version = "0.58.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
+dependencies = [
+ "windows-implement 0.58.0",
+ "windows-interface 0.58.0",
+ "windows-result 0.2.0",
+ "windows-strings",
+ "windows-targets 0.52.6",
+]
+
 [[package]]
 name = "windows-implement"
 version = "0.57.0"
@@ -9485,7 +9652,18 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.58.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -9496,7 +9674,18 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
+]
+
+[[package]]
+name = "windows-interface"
+version = "0.58.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -9771,7 +9960,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
  "synstructure",
 ]
 
@@ -9793,7 +9982,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -9813,7 +10002,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
  "synstructure",
 ]
 
@@ -9834,7 +10023,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
@@ -9856,7 +10045,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.79",
+ "syn 2.0.86",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 72ddf33..908b0e8 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,47 +12,47 @@ name = "reth"
 path = "src/main.rs"
 
 [dependencies]
-reth = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-evm = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-engine-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-ethereum-consensus = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-chain-state = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-consensus = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-cli-util = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-auto-seal-consensus = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-prune-types = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-ethereum-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-ethereum-engine-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70", features = ["test-utils"] }
-reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-db-api = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-stages = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-stages-api = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-stages-types = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
-reth-trie = { git = "https://github.com/paradigmxyz/reth", rev = "9a732f6b7813f9ecb5f28b379d3062c287a78e70" }
+reth = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-evm = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-engine-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-ethereum-consensus = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-chain-state = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-consensus = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-cli-util = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-auto-seal-consensus = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-prune-types = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-ethereum-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-ethereum-engine-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9", features = ["test-utils"] }
+reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-db-api = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-rpc = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-stages = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-stages-api = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-stages-types = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-trie = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
+reth-trie-db = { git = "https://github.com/paradigmxyz/reth", rev = "bd8c4eceb20c39c6e501d06cf906469329340bb9" }
 eyre = "0.6.12"
 clap = { version = "4.5.6", features = ["derive"] }
-alloy-sol-macro = "0.8.5"
-alloy-sol-types = "0.8.5"
 
 # revm
-revm = { version = "14.0.3", features = [
+revm = { version = "17.0.0", features = [
     "std",
     "secp256k1",
     "blst",
 ], default-features = false }
-revm-inspectors = "0.8.1"
-revm-primitives = { version = "10.0.0", features = [
+revm-inspectors = "0.10.0"
+revm-primitives = { version = "13.0.0", features = [
     "std",
 ], default-features = false }
 
-serde_json = "1.0.117"
+serde_json = "1.0.94"
 serde = { version = "1.0", default-features = false }
 serde_with = "3.3.0"
 hex = "0.4.3"
@@ -63,17 +63,22 @@ thiserror-no-std = { version = "2.0.2", default-features = false }
 # eth
 alloy-chains = "0.1.32"
 alloy-dyn-abi = "0.8.0"
-alloy-primitives = { version = "0.8.4", default-features = false }
-alloy-serde = { version = "0.4.0", default-features = false }
+alloy-primitives = { version = "0.8.9", default-features = false }
 alloy-rlp = "0.3.4"
-alloy-trie = { version = "0.6", default-features = false }
+alloy-sol-types = "0.8.0"
+alloy-trie = { version = "0.7", default-features = false }
+
+alloy-consensus = { version = "0.5.4", default-features = false }
+alloy-eips = { version = "0.5.4", default-features = false }
+alloy-sol-macro = "0.8.9"
+alloy-serde = { version = "0.5.4", default-features = false }
 rayon = "1.7"
 
 tracing = "0.1.0"
 
 [target.'cfg(unix)'.dependencies]
-tikv-jemallocator = { version = "0.6", optional = true }
 tikv-jemalloc-ctl = "0.6"
+tikv-jemallocator = { version = "0.6", optional = true }
 libc = "0.2"
 
 [features]
diff --git a/src/ethereum.rs b/src/ethereum.rs
deleted file mode 100644
index e849770..0000000
--- a/src/ethereum.rs
+++ /dev/null
@@ -1,132 +0,0 @@
-//! This module is exactly identical to <https://github.com/paradigmxyz/reth/blob/268e768d822a0d4eb8ed365dc6390862f759a849/crates/ethereum/evm/src/execute.rs>
-
-use reth::{
-    primitives::{BlockWithSenders, Receipt, Request},
-    providers::ProviderError,
-    revm::{primitives::ResultAndState, Database, DatabaseCommit, Evm, State},
-};
-use reth_chainspec::{ChainSpec, EthereumHardforks};
-use reth_evm::{
-    execute::{BlockExecutionError, BlockValidationError},
-    system_calls::{OnStateHook, SystemCaller},
-    ConfigureEvm,
-};
-use reth_evm_ethereum::eip6110::parse_deposits_from_receipts;
-use reth_primitives::Header;
-use std::{fmt::Display, sync::Arc};
-
-/// Helper type for the output of executing a block.
-#[derive(Debug, Clone)]
-pub struct EthExecuteOutput {
-    pub receipts: Vec<Receipt>,
-    pub requests: Vec<Request>,
-    pub gas_used: u64,
-}
-
-/// Helper container type for EVM with chain spec.
-#[derive(Debug, Clone)]
-pub struct EthEvmExecutor<EvmConfig> {
-    /// The chainspec
-    pub chain_spec: Arc<ChainSpec>,
-    /// How to create an EVM.
-    pub evm_config: EvmConfig,
-}
-
-impl<EvmConfig> EthEvmExecutor<EvmConfig>
-where
-    EvmConfig: ConfigureEvm<Header = Header>,
-{
-    /// Executes the transactions in the block and returns the receipts of the transactions in the
-    /// block, the total gas used and the list of EIP-7685 [requests](Request).
-    ///
-    /// This applies the pre-execution and post-execution changes that require an [EVM](Evm), and
-    /// executes the transactions.
-    pub fn execute_state_transitions<Ext, DB, F>(
-        &self,
-        block: &BlockWithSenders,
-        mut evm: Evm<'_, Ext, &mut State<DB>>,
-        state_hook: Option<F>,
-    ) -> Result<EthExecuteOutput, BlockExecutionError>
-    where
-        DB: Database,
-        DB::Error: Into<ProviderError> + Display,
-        F: OnStateHook,
-    {
-        let mut system_caller =
-            SystemCaller::new(&self.evm_config, &self.chain_spec).with_state_hook(state_hook);
-
-        system_caller.apply_pre_execution_changes(block, &mut evm)?;
-
-        // execute transactions
-        let mut cumulative_gas_used = 0;
-        let mut receipts = Vec::with_capacity(block.body.transactions.len());
-        for (sender, transaction) in block.transactions_with_sender() {
-            // The sum of the transaction’s gas limit, Tg, and the gas utilized in this block prior,
-            // must be no greater than the block’s gasLimit.
-            let block_available_gas = block.header.gas_limit - cumulative_gas_used;
-            if transaction.gas_limit() > block_available_gas {
-                return Err(
-                    BlockValidationError::TransactionGasLimitMoreThanAvailableBlockGas {
-                        transaction_gas_limit: transaction.gas_limit(),
-                        block_available_gas,
-                    }
-                    .into(),
-                );
-            }
-
-            self.evm_config
-                .fill_tx_env(evm.tx_mut(), transaction, *sender);
-
-            // Execute transaction.
-            let result_and_state = evm.transact().map_err(move |err| {
-                let new_err = err.map_db_err(|e| e.into());
-                // Ensure hash is calculated for error log, if not already done
-                BlockValidationError::EVM {
-                    hash: transaction.recalculate_hash(),
-                    error: Box::new(new_err),
-                }
-            })?;
-            system_caller.on_state(&result_and_state);
-            let ResultAndState { result, state } = result_and_state;
-            evm.db_mut().commit(state);
-
-            // append gas used
-            cumulative_gas_used += result.gas_used();
-
-            // Push transaction changeset and calculate header bloom filter for receipt.
-            receipts.push(
-                #[allow(clippy::needless_update)] // side-effect of optimism fields
-                Receipt {
-                    tx_type: transaction.tx_type(),
-                    // Success flag was added in `EIP-658: Embedding transaction status code in
-                    // receipts`.
-                    success: result.is_success(),
-                    cumulative_gas_used,
-                    // convert to reth log
-                    logs: result.into_logs(),
-                    ..Default::default()
-                },
-            );
-        }
-
-        let requests = if self
-            .chain_spec
-            .is_prague_active_at_timestamp(block.timestamp)
-        {
-            // Collect all EIP-6110 deposits
-            let deposit_requests = parse_deposits_from_receipts(&self.chain_spec, &receipts)?;
-
-            let post_execution_requests = system_caller.apply_post_execution_changes(&mut evm)?;
-
-            [deposit_requests, post_execution_requests].concat()
-        } else {
-            vec![]
-        };
-
-        Ok(EthExecuteOutput {
-            receipts,
-            requests,
-            gas_used: cumulative_gas_used,
-        })
-    }
-}
diff --git a/src/evm_config.rs b/src/evm_config.rs
index f866979..89962d2 100644
--- a/src/evm_config.rs
+++ b/src/evm_config.rs
@@ -1,21 +1,22 @@
-use reth::{
-    primitives::{transaction::FillTxEnv, Head, Header, TransactionSigned},
-    revm::{
-        inspector_handle_register,
-        interpreter::Gas,
-        primitives::{spec_to_generic, CfgEnvWithHandlerCfg, EVMError, Spec, SpecId, TxEnv},
-        Context, Database, Evm, EvmBuilder, GetInspector,
-    },
-};
+use alloy_primitives::{Address, U256};
+use reth::revm::{inspector_handle_register, Database, GetInspector};
+use reth::revm::{Evm, EvmBuilder};
 use reth_chainspec::ChainSpec;
 use reth_evm::{ConfigureEvm, ConfigureEvmEnv};
 use reth_evm_ethereum::{revm_spec, revm_spec_by_timestamp_after_merge};
-use revm::handler::mainnet::reward_beneficiary as reward_beneficiary_mainnet;
+use reth_primitives::{
+    revm_primitives::{AnalysisKind, CfgEnvWithHandlerCfg, TxEnv},
+    transaction::FillTxEnv,
+    Head, Header, TransactionSigned,
+};
+use revm::{
+    handler::mainnet::reward_beneficiary as reward_beneficiary_mainnet, interpreter::Gas, Context,
+};
 use revm_primitives::{
-    Address, AnalysisKind, BlobExcessGasAndPrice, BlockEnv, Bytes, CfgEnv, Env, HandlerCfg, TxKind,
-    U256,
+    spec_to_generic, BlobExcessGasAndPrice, BlockEnv, Bytes, CfgEnv, EVMError, Env, HandlerCfg,
+    Spec, SpecId, TxKind,
 };
-use std::sync::Arc;
+use std::{convert::Infallible, sync::Arc};
 
 /// Reward beneficiary with gas fee.
 #[inline]
@@ -122,6 +123,7 @@ impl ConfigureEvm for GnosisEvmConfig {
 
 impl ConfigureEvmEnv for GnosisEvmConfig {
     type Header = Header;
+    type Error = Infallible;
 
     fn fill_tx_env(&self, tx_env: &mut TxEnv, transaction: &TransactionSigned, sender: Address) {
         transaction.fill_tx_env(tx_env, sender);
@@ -191,7 +193,7 @@ impl ConfigureEvmEnv for GnosisEvmConfig {
         &self,
         parent: &Self::Header,
         attributes: reth_evm::NextBlockEnvAttributes,
-    ) -> (CfgEnvWithHandlerCfg, revm_primitives::BlockEnv) {
+    ) -> Result<(CfgEnvWithHandlerCfg, BlockEnv), Self::Error> {
         // configure evm env based on parent block
         let cfg = CfgEnv::default().with_chain_id(self.chain_spec.chain().id());
 
@@ -240,6 +242,6 @@ impl ConfigureEvmEnv for GnosisEvmConfig {
             };
         }
 
-        (cfg_with_handler_cfg, block_env)
+        Ok((cfg_with_handler_cfg, block_env))
     }
 }
diff --git a/src/execute.rs b/src/execute.rs
index f25e70c..14b9305 100644
--- a/src/execute.rs
+++ b/src/execute.rs
@@ -1,278 +1,245 @@
-use crate::errors::GnosisBlockExecutionError;
-use crate::ethereum::{EthEvmExecutor, EthExecuteOutput};
-use crate::gnosis::{apply_block_rewards_contract_call, apply_withdrawals_contract_call};
-use alloy_primitives::{Address, BlockNumber, U256};
-use eyre::eyre;
-use reth::primitives::Withdrawals;
-use reth::providers::ExecutionOutcome;
-use reth::{
-    api::ConfigureEvm,
-    providers::ProviderError,
-    revm::{
-        batch::BlockBatchRecord,
-        db::states::bundle_state::BundleRetention,
-        primitives::{BlockEnv, CfgEnvWithHandlerCfg, EnvWithHandlerCfg},
-        Database, State,
+extern crate alloc;
+use crate::evm_config::GnosisEvmConfig;
+
+use crate::gnosis::apply_post_block_system_calls;
+use alloc::{boxed::Box, sync::Arc};
+use alloy_consensus::Transaction as _;
+use alloy_eips::eip7685::Requests;
+use alloy_primitives::Address;
+use core::fmt::Display;
+use reth_chainspec::ChainSpec;
+use reth_chainspec::EthereumHardforks;
+use reth_evm::{
+    execute::{
+        BlockExecutionError, BlockExecutionStrategy, BlockExecutionStrategyFactory,
+        BlockValidationError, ExecuteOutput, ProviderError,
     },
+    system_calls::SystemCaller,
+    ConfigureEvm,
 };
-use reth_chainspec::{ChainSpec, EthereumHardforks};
-use reth_ethereum_consensus::validate_block_post_execution;
-use reth_evm::execute::{
-    BatchExecutor, BlockExecutionError, BlockExecutionInput, BlockExecutionOutput,
-    BlockExecutorProvider, BlockValidationError, Executor,
+use reth_evm_ethereum::eip6110::parse_deposits_from_receipts;
+use reth_primitives::{BlockWithSenders, Header, Receipt};
+use revm::State;
+use revm_primitives::{
+    db::{Database, DatabaseCommit},
+    BlockEnv, CfgEnvWithHandlerCfg, EnvWithHandlerCfg, ResultAndState, U256,
 };
-use reth_evm::system_calls::{NoopHook, OnStateHook};
-use reth_primitives::{BlockWithSenders, Header, Receipt, Receipts};
-use reth_prune_types::PruneModes;
-use revm::Evm;
-use std::fmt::Display;
-use std::sync::Arc;
 
+// We need to have block rewards contract address in the executor provider
+// because it's used in the post execution system calls.
+
+// in post_execution,
+// [Gnosis/fork:DIFF]: Upstream code in EthBlockExecutor computes balance changes for:
+// - Pre-merge omer and block rewards
+// - Beacon withdrawal mints
+// - DAO hardfork drain balances
+//
+// For gnosis instead:
+// - Do NOT credit withdrawals as native token mint
+// - Call into deposit contract with withdrawal data
+// - Call block rewards contract for bridged xDAI mint
+
+// Factory for [`GnosisExecutionStrategy`]
 #[derive(Debug, Clone)]
-pub struct GnosisExecutorProvider<EvmConfig: Clone> {
+pub struct GnosisExecutionStrategyFactory<EvmConfig = GnosisEvmConfig> {
     chain_spec: Arc<ChainSpec>,
     evm_config: EvmConfig,
-    /// AuRa BlockRewards contract address for its system call
-    block_rewards_contract: Address,
 }
 
-impl<EvmConfig: Clone> GnosisExecutorProvider<EvmConfig> {
-    /// Creates a new executor provider.
+impl<EvmConfig> GnosisExecutionStrategyFactory<EvmConfig> {
+    // Create a new executor strategy factory
     pub fn new(chain_spec: Arc<ChainSpec>, evm_config: EvmConfig) -> eyre::Result<Self> {
-        let block_rewards_contract = chain_spec
-            .genesis()
-            .config
-            .extra_fields
-            .get("blockRewardsContract")
-            .ok_or(eyre!("blockRewardsContract not defined"))?;
-        let block_rewards_contract: Address =
-            serde_json::from_value(block_rewards_contract.clone())
-                .map_err(|e| BlockExecutionError::other(Box::new(e)))?;
-
         Ok(Self {
             chain_spec,
             evm_config,
-            block_rewards_contract,
         })
     }
 }
 
-// [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthExecutorProvider
-impl<EvmConfig: Clone> GnosisExecutorProvider<EvmConfig>
+impl<EvmConfig> BlockExecutionStrategyFactory for GnosisExecutionStrategyFactory<EvmConfig>
 where
-    EvmConfig: ConfigureEvm,
+    EvmConfig:
+        Clone + Unpin + Sync + Send + 'static + ConfigureEvm<Header = alloy_consensus::Header>,
 {
-    fn gnosis_executor<DB>(&self, db: DB) -> GnosisBlockExecutor<EvmConfig, DB>
+    type Strategy<DB: Database<Error: Into<ProviderError> + Display>> =
+        GnosisExecutionStrategy<DB, EvmConfig>;
+
+    fn create_strategy<DB>(&self, db: DB) -> Self::Strategy<DB>
     where
         DB: Database<Error: Into<ProviderError> + Display>,
     {
-        GnosisBlockExecutor::new(
-            self.block_rewards_contract,
-            self.chain_spec.clone(),
-            self.evm_config.clone(),
-            State::builder()
-                .with_database(db)
-                .with_bundle_update()
-                .without_state_clear()
-                .build(),
-        )
+        let state = State::builder()
+            .with_database(db)
+            .with_bundle_update()
+            .without_state_clear()
+            .build();
+        GnosisExecutionStrategy::new(state, self.chain_spec.clone(), self.evm_config.clone())
     }
 }
 
-// Trait required by ExecutorBuilder
-// [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthExecutorProvider
-impl<EvmConfig: Clone> BlockExecutorProvider for GnosisExecutorProvider<EvmConfig>
+// Block execution strategy for Gnosis
+#[allow(missing_debug_implementations)]
+pub struct GnosisExecutionStrategy<DB, EvmConfig>
 where
-    EvmConfig: ConfigureEvm<Header = Header>,
+    EvmConfig: Clone,
 {
-    type Executor<DB: Database<Error: Into<ProviderError> + Display>> =
-        GnosisBlockExecutor<EvmConfig, DB>;
-    type BatchExecutor<DB: Database<Error: Into<ProviderError> + Display>> =
-        GnosisBatchExecutor<EvmConfig, DB>;
-
-    fn executor<DB>(&self, db: DB) -> Self::Executor<DB>
-    where
-        DB: Database<Error: Into<ProviderError> + Display>,
-    {
-        self.gnosis_executor(db)
-    }
-
-    fn batch_executor<DB>(&self, db: DB) -> Self::BatchExecutor<DB>
-    where
-        DB: Database<Error: Into<ProviderError> + Display>,
-    {
-        let executor = self.gnosis_executor(db);
-        GnosisBatchExecutor {
-            executor,
-            batch_record: BlockBatchRecord::default(),
-        }
-    }
-}
-
-// Struct required for BlockExecutorProvider trait
-// [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBlockExecutor
-#[derive(Debug)]
-pub struct GnosisBlockExecutor<EvmConfig, DB> {
-    /// Chain specific evm config that's used to execute a block.
-    executor: EthEvmExecutor<EvmConfig>,
-    /// The state to use for execution
+    /// The chainspec
+    chain_spec: Arc<ChainSpec>,
+    /// How to create an EVM.
+    evm_config: EvmConfig,
+    /// Current state for block execution.
     state: State<DB>,
-    /// AuRa BlockRewards contract address for its system call
+    /// Utility to call system smart contracts.
+    system_caller: SystemCaller<EvmConfig, ChainSpec>,
+    /// BlockRewards contract address
     block_rewards_contract: Address,
 }
 
-// [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBlockExecutor
-impl<EvmConfig, DB> GnosisBlockExecutor<EvmConfig, DB> {
-    /// Creates a new Ethereum block executor.
-    pub fn new(
-        block_rewards_contract: Address,
-        chain_spec: Arc<ChainSpec>,
-        evm_config: EvmConfig,
-        state: State<DB>,
-    ) -> Self {
+impl<DB, EvmConfig> GnosisExecutionStrategy<DB, EvmConfig>
+where
+    EvmConfig: Clone,
+{
+    pub fn new(state: State<DB>, chain_spec: Arc<ChainSpec>, evm_config: EvmConfig) -> Self {
+        let system_caller = SystemCaller::new(evm_config.clone(), (*chain_spec).clone());
+        let block_rewards_contract = chain_spec
+            .genesis()
+            .config
+            .extra_fields
+            .get("blockRewardsContract")
+            .expect("blockRewardsContract not defined")
+            .clone();
+        let block_rewards_contract: Address = serde_json::from_value(block_rewards_contract)
+            .expect("blockRewardsContract not an address");
         Self {
-            executor: EthEvmExecutor {
-                chain_spec,
-                evm_config,
-            },
             state,
+            chain_spec,
+            evm_config,
+            system_caller,
             block_rewards_contract,
         }
     }
-
-    #[inline]
-    fn chain_spec(&self) -> &ChainSpec {
-        &self.executor.chain_spec
-    }
-
-    fn chain_spec_clone(&self) -> Arc<ChainSpec> {
-        self.executor.chain_spec.clone()
-    }
-
-    /// Returns mutable reference to the state that wraps the underlying database.
-    #[allow(unused)]
-    fn state_mut(&mut self) -> &mut State<DB> {
-        &mut self.state
-    }
 }
 
-// [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBlockExecutor
-impl<EvmConfig, DB> GnosisBlockExecutor<EvmConfig, DB>
+impl<DB, EvmConfig> GnosisExecutionStrategy<DB, EvmConfig>
 where
-    EvmConfig: ConfigureEvm<Header = Header>,
     DB: Database<Error: Into<ProviderError> + Display>,
+    EvmConfig: ConfigureEvm<Header = alloy_consensus::Header>,
 {
     /// Configures a new evm configuration and block environment for the given block.
     ///
-    /// # Caution
-    ///
-    /// This does not initialize the tx environment.
+    /// Caution: this does not initialize the tx environment.
     fn evm_env_for_block(&self, header: &Header, total_difficulty: U256) -> EnvWithHandlerCfg {
         let mut cfg = CfgEnvWithHandlerCfg::new(Default::default(), Default::default());
         let mut block_env = BlockEnv::default();
-        self.executor.evm_config.fill_cfg_and_block_env(
-            &mut cfg,
-            &mut block_env,
-            header,
-            total_difficulty,
-        );
+        self.evm_config
+            .fill_cfg_and_block_env(&mut cfg, &mut block_env, header, total_difficulty);
 
         EnvWithHandlerCfg::new_with_cfg_env(cfg, block_env, Default::default())
     }
+}
+
+impl<DB, EvmConfig> BlockExecutionStrategy<DB> for GnosisExecutionStrategy<DB, EvmConfig>
+where
+    DB: Database<Error: Into<ProviderError> + Display>,
+    EvmConfig: ConfigureEvm<Header = alloy_consensus::Header>,
+{
+    type Error = BlockExecutionError;
 
-    fn execute_without_verification(
+    fn apply_pre_execution_changes(
         &mut self,
         block: &BlockWithSenders,
         total_difficulty: U256,
-    ) -> Result<EthExecuteOutput, BlockExecutionError> {
-        // 1. prepare state on new block
-        self.on_new_block(&block.header);
+    ) -> Result<(), Self::Error> {
+        // Set state clear flag if the block is after the Spurious Dragon hardfork.
+        let state_clear_flag =
+            (*self.chain_spec).is_spurious_dragon_active_at_block(block.header.number);
+        self.state.set_state_clear_flag(state_clear_flag);
 
-        // 2. configure the evm and execute
         let env = self.evm_env_for_block(&block.header, total_difficulty);
-        let output = {
-            let evm = self.executor.evm_config.evm_with_env(&mut self.state, env);
-            self.executor
-                .execute_state_transitions(block, evm, None::<NoopHook>)
-        }?;
+        let mut evm = self.evm_config.evm_with_env(&mut self.state, env);
 
-        // 3. apply post execution changes
-        self.post_execution(block, total_difficulty)?;
+        self.system_caller
+            .apply_pre_execution_changes(block, &mut evm)?;
 
-        Ok(output)
+        Ok(())
     }
 
-    /// Execute a single block and apply the state changes to the internal state.
-    ///
-    /// Returns the receipts of the transactions in the block, the total gas used and the list of
-    /// EIP-7685.
-    ///
-    /// Returns an error if execution fails.
-    fn execute_without_verification_with_state_hook<F>(
+    fn execute_transactions(
         &mut self,
         block: &BlockWithSenders,
         total_difficulty: U256,
-        state_hook: Option<F>,
-    ) -> Result<EthExecuteOutput, BlockExecutionError>
-    where
-        F: OnStateHook,
-    {
-        // 1. prepare state on new block
-        self.on_new_block(&block.header);
-
-        // 2. configure the evm and execute
+    ) -> Result<ExecuteOutput, Self::Error> {
         let env = self.evm_env_for_block(&block.header, total_difficulty);
-        let output = {
-            let evm = self.executor.evm_config.evm_with_env(&mut self.state, env);
-            self.executor
-                .execute_state_transitions(block, evm, state_hook)
-        }?;
-
-        // 3. apply post execution changes
-        self.post_execution(block, total_difficulty)?;
-
-        Ok(output)
-    }
-
-    fn on_new_block(&mut self, header: &Header) {
-        // Set state clear flag if the block is after the Spurious Dragon hardfork.
-        let state_clear_flag = self
-            .chain_spec()
-            .is_spurious_dragon_active_at_block(header.number);
-        self.state.set_state_clear_flag(state_clear_flag);
+        let mut evm = self.evm_config.evm_with_env(&mut self.state, env);
+
+        let mut cumulative_gas_used = 0;
+        let mut receipts = Vec::with_capacity(block.body.transactions.len());
+        for (sender, transaction) in block.transactions_with_sender() {
+            // The sum of the transaction’s gas limit, Tg, and the gas utilized in this block prior,
+            // must be no greater than the block’s gasLimit.
+            let block_available_gas = block.header.gas_limit - cumulative_gas_used;
+            if transaction.gas_limit() > block_available_gas {
+                return Err(
+                    BlockValidationError::TransactionGasLimitMoreThanAvailableBlockGas {
+                        transaction_gas_limit: transaction.gas_limit(),
+                        block_available_gas,
+                    }
+                    .into(),
+                );
+            }
+
+            self.evm_config
+                .fill_tx_env(evm.tx_mut(), transaction, *sender);
+
+            // Execute transaction.
+            let result_and_state = evm.transact().map_err(move |err| {
+                let new_err = err.map_db_err(|e| e.into());
+                // Ensure hash is calculated for error log, if not already done
+                BlockValidationError::EVM {
+                    hash: transaction.recalculate_hash(),
+                    error: Box::new(new_err),
+                }
+            })?;
+            self.system_caller.on_state(&result_and_state);
+            let ResultAndState { result, state } = result_and_state;
+            evm.db_mut().commit(state);
+
+            // append gas used
+            cumulative_gas_used += result.gas_used();
+
+            // Push transaction changeset and calculate header bloom filter for receipt.
+            receipts.push(
+                #[allow(clippy::needless_update)] // side-effect of optimism fields
+                Receipt {
+                    tx_type: transaction.tx_type(),
+                    // Success flag was added in `EIP-658: Embedding transaction status code in
+                    // receipts`.
+                    success: result.is_success(),
+                    cumulative_gas_used,
+                    // convert to reth log
+                    logs: result.into_logs(),
+                    ..Default::default()
+                },
+            );
+        }
+        Ok(ExecuteOutput {
+            receipts,
+            gas_used: cumulative_gas_used,
+        })
     }
 
-    /// Apply post execution state changes that do not require an evm such as: block
-    /// rewards, withdrawals, and irregular DAO hardfork state change
-    // [Gnosis/fork:DIFF]
-    pub fn post_execution(
+    fn apply_post_execution_changes(
         &mut self,
         block: &BlockWithSenders,
         total_difficulty: U256,
-    ) -> Result<(), BlockExecutionError> {
-        // [Gnosis/fork:DIFF]: Upstream code in EthBlockExecutor computes balance changes for:
-        // - Pre-merge omer and block rewards
-        // - Beacon withdrawal mints
-        // - DAO hardfork drain balances
-        //
-        // For gnosis instead:
-        // - Do NOT credit withdrawals as native token mint
-        // - Call into deposit contract with withdrawal data
-        // - Call block rewards contract for bridged xDAI mint
-
-        let chain_spec = self.chain_spec_clone();
-        let mut cfg = CfgEnvWithHandlerCfg::new(Default::default(), Default::default());
-        let mut block_env = BlockEnv::default();
-        self.executor.evm_config.fill_cfg_and_block_env(
-            &mut cfg,
-            &mut block_env,
-            &block.header,
-            total_difficulty,
-        );
-
-        gnosis_post_block_system_calls::<EvmConfig, DB>(
-            &chain_spec,
-            &self.executor.evm_config,
+        receipts: &[Receipt],
+    ) -> Result<Requests, Self::Error> {
+        let cfg = CfgEnvWithHandlerCfg::new(Default::default(), Default::default());
+        let block_env = BlockEnv::default();
+
+        apply_post_block_system_calls::<EvmConfig, DB>(
+            &self.chain_spec,
+            &self.evm_config,
             &mut self.state,
             &cfg,
             &block_env,
@@ -282,258 +249,31 @@ where
             block.beneficiary,
         )?;
 
-        Ok(())
-    }
-}
-
-#[allow(clippy::too_many_arguments)]
-pub(crate) fn gnosis_post_block_system_calls<EvmConfig, DB>(
-    chain_spec: &ChainSpec,
-    evm_config: &EvmConfig,
-    db: &mut State<DB>,
-    initialized_cfg: &CfgEnvWithHandlerCfg,
-    initialized_block_env: &BlockEnv,
-    block_rewards_contract: Address,
-    block_timestamp: u64,
-    withdrawals: Option<&Withdrawals>,
-    coinbase: Address,
-) -> Result<(), BlockExecutionError>
-where
-    EvmConfig: ConfigureEvm,
-    DB: Database<Error: Into<ProviderError> + Display>,
-{
-    let mut evm = Evm::builder()
-        .with_db(db)
-        .with_env_with_handler_cfg(EnvWithHandlerCfg::new_with_cfg_env(
-            initialized_cfg.clone(),
-            initialized_block_env.clone(),
-            Default::default(),
-        ))
-        .build();
-
-    // [Gnosis/fork:DIFF]: Upstream code in EthBlockExecutor computes balance changes for:
-    // - Pre-merge omer and block rewards
-    // - Beacon withdrawal mints
-    // - DAO hardfork drain balances
-    //
-    // For gnosis instead:
-    // - Do NOT credit withdrawals as native token mint
-    // - Call into deposit contract with withdrawal data
-    // - Call block rewards contract for bridged xDAI mint
-
-    if chain_spec.is_shanghai_active_at_timestamp(block_timestamp) {
-        let withdrawals = withdrawals.ok_or(GnosisBlockExecutionError::CustomErrorMessage {
-            message: "block has no withdrawals field".to_owned(),
-        })?;
-        apply_withdrawals_contract_call(evm_config, chain_spec, withdrawals, &mut evm)?;
-    }
-
-    let balance_increments = apply_block_rewards_contract_call(
-        evm_config,
-        block_rewards_contract,
-        block_timestamp,
-        coinbase,
-        &mut evm,
-    )?;
-
-    // increment balances
-    evm.context
-        .evm
-        .db
-        .increment_balances(balance_increments)
-        .map_err(|_| BlockValidationError::IncrementBalanceFailed)?;
-
-    Ok(())
-}
-
-// Trait required by BlockExecutorProvider associated type Executor
-impl<EvmConfig, DB> Executor<DB> for GnosisBlockExecutor<EvmConfig, DB>
-where
-    EvmConfig: ConfigureEvm<Header = Header>,
-    DB: Database<Error: Into<ProviderError> + Display>,
-{
-    type Input<'a> = BlockExecutionInput<'a, BlockWithSenders>;
-    type Output = BlockExecutionOutput<Receipt>;
-    type Error = BlockExecutionError;
-
-    // [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBlockExecutor
-    fn execute(mut self, input: Self::Input<'_>) -> Result<Self::Output, Self::Error> {
-        // No diff with EthBlockExecutor
-        let BlockExecutionInput {
-            block,
-            total_difficulty,
-        } = input;
-        let EthExecuteOutput {
-            receipts,
-            requests,
-            gas_used,
-        } = self.execute_without_verification(block, total_difficulty)?;
-
-        // NOTE: we need to merge keep the reverts for the bundle retention
-        self.state.merge_transitions(BundleRetention::Reverts);
-
-        Ok(BlockExecutionOutput {
-            state: self.state.take_bundle(),
-            receipts,
-            requests,
-            gas_used,
-        })
-    }
-
-    fn execute_with_state_witness<F>(
-        mut self,
-        input: Self::Input<'_>,
-        mut witness: F,
-    ) -> Result<Self::Output, Self::Error>
-    where
-        F: FnMut(&State<DB>),
-    {
-        let BlockExecutionInput {
-            block,
-            total_difficulty,
-        } = input;
-        let EthExecuteOutput {
-            receipts,
-            requests: _,
-            gas_used,
-        } = self.execute_without_verification(block, total_difficulty)?;
-
-        // NOTE: we need to merge keep the reverts for the bundle retention
-        self.state.merge_transitions(BundleRetention::Reverts);
-        witness(&self.state);
-
-        Ok(BlockExecutionOutput {
-            state: self.state.take_bundle(),
-            receipts,
-            requests: vec![],
-            gas_used,
-        })
-    }
-
-    fn execute_with_state_hook<F>(
-        mut self,
-        input: Self::Input<'_>,
-        state_hook: F,
-    ) -> Result<Self::Output, Self::Error>
-    where
-        F: OnStateHook,
-    {
-        let BlockExecutionInput {
-            block,
-            total_difficulty,
-        } = input;
-        let EthExecuteOutput {
-            receipts,
-            requests,
-            gas_used,
-        } = self.execute_without_verification_with_state_hook(
-            block,
-            total_difficulty,
-            Some(state_hook),
-        )?;
-
-        // NOTE: we need to merge keep the reverts for the bundle retention
-        self.state.merge_transitions(BundleRetention::Reverts);
-        Ok(BlockExecutionOutput {
-            state: self.state.take_bundle(),
-            receipts,
-            requests,
-            gas_used,
-        })
+        let env = self.evm_env_for_block(&block.header, total_difficulty);
+        let mut evm = self.evm_config.evm_with_env(&mut self.state, env);
+
+        let requests = if self
+            .chain_spec
+            .is_prague_active_at_timestamp(block.timestamp)
+        {
+            // Collect all EIP-6110 deposits
+            let deposit_requests = parse_deposits_from_receipts(&self.chain_spec, receipts)?;
+
+            let mut requests = Requests::new(vec![deposit_requests]);
+            requests.extend(self.system_caller.apply_post_execution_changes(&mut evm)?);
+            requests
+        } else {
+            Requests::default()
+        };
+
+        Ok(requests)
     }
-}
-
-/// An executor for a batch of blocks.
-///
-/// State changes are tracked until the executor is finalized.
-#[derive(Debug)]
-// [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBatchExecutor
-pub struct GnosisBatchExecutor<EvmConfig, DB> {
-    /// The executor used to execute blocks.
-    executor: GnosisBlockExecutor<EvmConfig, DB>,
-    /// Keeps track of the batch and record receipts based on the configured prune mode
-    batch_record: BlockBatchRecord,
-}
 
-// [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBatchExecutor
-impl<EvmConfig, DB> GnosisBatchExecutor<EvmConfig, DB> {
-    /// Returns the receipts of the executed blocks.
-    pub const fn receipts(&self) -> &Receipts {
-        self.batch_record.receipts()
+    fn state_ref(&self) -> &State<DB> {
+        &self.state
     }
 
-    /// Returns mutable reference to the state that wraps the underlying database.
-    #[allow(unused)]
     fn state_mut(&mut self) -> &mut State<DB> {
-        self.executor.state_mut()
-    }
-}
-
-// [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBatchExecutor
-impl<EvmConfig, DB> BatchExecutor<DB> for GnosisBatchExecutor<EvmConfig, DB>
-where
-    EvmConfig: ConfigureEvm<Header = Header>,
-    DB: Database<Error: Into<ProviderError> + Display>,
-{
-    type Input<'a> = BlockExecutionInput<'a, BlockWithSenders>;
-    type Output = ExecutionOutcome;
-    type Error = BlockExecutionError;
-
-    // [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBatchExecutor
-    fn execute_and_verify_one(&mut self, input: Self::Input<'_>) -> Result<(), Self::Error> {
-        let BlockExecutionInput {
-            block,
-            total_difficulty,
-        } = input;
-        let EthExecuteOutput {
-            receipts,
-            requests,
-            gas_used: _,
-        } = self
-            .executor
-            .execute_without_verification(block, total_difficulty)?;
-
-        validate_block_post_execution(block, self.executor.chain_spec(), &receipts, &requests)?;
-
-        // prepare the state according to the prune mode
-        let retention = self.batch_record.bundle_retention(block.number);
-        self.executor.state.merge_transitions(retention);
-
-        // store receipts in the set
-        self.batch_record.save_receipts(receipts)?;
-
-        // store requests in the set
-        self.batch_record.save_requests(requests);
-
-        if self.batch_record.first_block().is_none() {
-            self.batch_record.set_first_block(block.number);
-        }
-
-        Ok(())
-    }
-
-    // [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBatchExecutor
-    fn finalize(mut self) -> Self::Output {
-        ExecutionOutcome::new(
-            self.executor.state.take_bundle(),
-            self.batch_record.take_receipts(),
-            self.batch_record.first_block().unwrap_or_default(),
-            self.batch_record.take_requests(),
-        )
-    }
-
-    // [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBatchExecutor
-    fn set_tip(&mut self, tip: BlockNumber) {
-        self.batch_record.set_tip(tip);
-    }
-
-    // [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBatchExecutor
-    fn set_prune_modes(&mut self, prune_modes: PruneModes) {
-        self.batch_record.set_prune_modes(prune_modes);
-    }
-
-    // [Gnosis/fork] Copy paste code from crates/ethereum/evm/src/execute.rs::EthBatchExecutor
-    fn size_hint(&self) -> Option<usize> {
-        Some(self.executor.state.bundle_state.size_hint())
+        &mut self.state
     }
 }
diff --git a/src/gnosis.rs b/src/gnosis.rs
index e643ef3..c246c7b 100644
--- a/src/gnosis.rs
+++ b/src/gnosis.rs
@@ -9,13 +9,19 @@ use reth::{
     revm::{
         interpreter::Host,
         primitives::{ExecutionResult, Output, ResultAndState},
-        Database, DatabaseCommit, Evm,
+        Database, DatabaseCommit, Evm, State,
     },
 };
 use reth_chainspec::ChainSpec;
+use reth_chainspec::EthereumHardforks;
 use reth_errors::BlockValidationError;
 use reth_evm::{execute::BlockExecutionError, ConfigureEvm};
-use revm_primitives::{Account, AccountInfo, AccountStatus};
+use reth_primitives::Withdrawals;
+use reth_provider::ProviderError;
+use revm_primitives::{
+    Account, AccountInfo, AccountStatus, BlockEnv, CfgEnvWithHandlerCfg, EnvWithHandlerCfg,
+};
+use std::fmt::Display;
 
 pub const SYSTEM_ADDRESS: Address = address!("fffffffffffffffffffffffffffffffffffffffe");
 
@@ -227,3 +233,65 @@ where
 
     Ok(balance_increments)
 }
+
+// TODO: this can be simplified by using the existing apply_post_execution_changes
+// which does all of the same things
+//
+// [Gnosis/fork:DIFF]: Upstream code in EthBlockExecutor computes balance changes for:
+// - Pre-merge omer and block rewards
+// - Beacon withdrawal mints
+// - DAO hardfork drain balances
+//
+// Gnosis post-block system calls:
+// - Do NOT credit withdrawals as native token mint
+// - Call into deposit contract with withdrawal data
+// - Call block rewards contract for bridged xDAI mint
+#[allow(clippy::too_many_arguments)]
+pub(crate) fn apply_post_block_system_calls<EvmConfig, DB>(
+    chain_spec: &ChainSpec,
+    evm_config: &EvmConfig,
+    db: &mut State<DB>,
+    initialized_cfg: &CfgEnvWithHandlerCfg,
+    initialized_block_env: &BlockEnv,
+    block_rewards_contract: Address,
+    block_timestamp: u64,
+    withdrawals: Option<&Withdrawals>,
+    coinbase: Address,
+) -> Result<(), BlockExecutionError>
+where
+    EvmConfig: ConfigureEvm,
+    DB: Database<Error: Into<ProviderError> + Display>,
+{
+    let mut evm = Evm::builder()
+        .with_db(db)
+        .with_env_with_handler_cfg(EnvWithHandlerCfg::new_with_cfg_env(
+            initialized_cfg.clone(),
+            initialized_block_env.clone(),
+            Default::default(),
+        ))
+        .build();
+
+    if chain_spec.is_shanghai_active_at_timestamp(block_timestamp) {
+        let withdrawals = withdrawals.ok_or(GnosisBlockExecutionError::CustomErrorMessage {
+            message: "block has no withdrawals field".to_owned(),
+        })?;
+        apply_withdrawals_contract_call(evm_config, chain_spec, withdrawals, &mut evm)?;
+    }
+
+    let balance_increments = apply_block_rewards_contract_call(
+        evm_config,
+        block_rewards_contract,
+        block_timestamp,
+        coinbase,
+        &mut evm,
+    )?;
+
+    // increment balances
+    evm.context
+        .evm
+        .db
+        .increment_balances(balance_increments)
+        .map_err(|_| BlockValidationError::IncrementBalanceFailed)?;
+
+    Ok(())
+}
diff --git a/src/lib.rs b/src/lib.rs
index 37c8797..c745148 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,33 +1,31 @@
 use consensus::GnosisBeaconConsensus;
 use evm_config::GnosisEvmConfig;
-use execute::GnosisExecutorProvider;
+use execute::GnosisExecutionStrategyFactory;
 use eyre::eyre;
-// use gnosis::SYSTEM_ADDRESS;
 use payload_builder::GnosisPayloadServiceBuilder;
 use reth::{
-    api::{FullNodeComponents, NodeAddOns},
+    api::{AddOnsContext, FullNodeComponents},
     builder::{
-        components::{
-            ComponentsBuilder, ConsensusBuilder, EngineValidatorBuilder, ExecutorBuilder,
-        },
+        components::{ComponentsBuilder, ConsensusBuilder, ExecutorBuilder},
         node::{FullNodeTypes, NodeTypes, NodeTypesWithEngine},
-        BuilderContext, Node,
+        rpc::{EngineValidatorBuilder, RpcAddOns},
+        BuilderContext, Node, NodeAdapter, NodeComponentsBuilder,
     },
     network::NetworkHandle,
-    rpc::eth::EthApi,
 };
 use reth_chainspec::ChainSpec;
 use reth_engine_primitives::EngineValidator;
 use reth_ethereum_engine_primitives::EthereumEngineValidator;
 use reth_node_ethereum::{
-    node::{EthereumEngineValidatorBuilder, EthereumNetworkBuilder, EthereumPoolBuilder},
-    EthEngineTypes, EthereumNode,
+    node::{EthereumNetworkBuilder, EthereumPoolBuilder},
+    BasicBlockExecutorProvider, EthEngineTypes, EthereumNode,
 };
+use reth_rpc::EthApi;
+use reth_trie_db::MerklePatriciaTrie;
 use std::sync::Arc;
 
 mod consensus;
 mod errors;
-mod ethereum;
 mod evm_config;
 mod execute;
 mod gnosis;
@@ -64,7 +62,6 @@ impl GnosisNode {
         EthereumNetworkBuilder,
         GnosisExecutorBuilder,
         GnosisConsensusBuilder,
-        EthereumEngineValidatorBuilder,
     >
     where
         Node: FullNodeTypes<
@@ -78,7 +75,6 @@ impl GnosisNode {
             .network(EthereumNetworkBuilder::default())
             .executor(GnosisExecutorBuilder::default())
             .consensus(GnosisConsensusBuilder::default())
-            .engine_validator(EthereumEngineValidatorBuilder::default())
     }
 }
 
@@ -86,25 +82,28 @@ impl GnosisNode {
 impl NodeTypes for GnosisNode {
     type Primitives = ();
     type ChainSpec = ChainSpec;
+    type StateCommitment = MerklePatriciaTrie;
 }
 
 impl NodeTypesWithEngine for GnosisNode {
     type Engine = EthEngineTypes;
 }
 
-/// Add-ons w.r.t. l1 ethereum.
-#[derive(Debug, Clone, Default)]
-#[non_exhaustive]
-pub struct GnosisAddOns;
-
-impl<N: FullNodeComponents> NodeAddOns<N> for GnosisAddOns {
-    type EthApi = EthApi<N::Provider, N::Pool, NetworkHandle, N::Evm>;
-}
-
-impl<Types, N> Node<N> for GnosisNode
+/// Add-ons w.r.t. gnosis
+pub type GnosisAddOns<N> = RpcAddOns<
+    N,
+    EthApi<
+        <N as FullNodeTypes>::Provider,
+        <N as FullNodeComponents>::Pool,
+        NetworkHandle,
+        <N as FullNodeComponents>::Evm,
+    >,
+    GnosisEngineValidatorBuilder,
+>;
+
+impl<N> Node<N> for GnosisNode
 where
-    Types: NodeTypesWithEngine<Engine = EthEngineTypes, ChainSpec = ChainSpec>,
-    N: FullNodeTypes<Types = Types>,
+    N: FullNodeTypes<Types: NodeTypesWithEngine<Engine = EthEngineTypes, ChainSpec = ChainSpec>>,
 {
     type ComponentsBuilder = ComponentsBuilder<
         N,
@@ -113,10 +112,11 @@ where
         EthereumNetworkBuilder,
         GnosisExecutorBuilder,
         GnosisConsensusBuilder,
-        EthereumEngineValidatorBuilder,
     >;
 
-    type AddOns = GnosisAddOns;
+    type AddOns = GnosisAddOns<
+        NodeAdapter<N, <Self::ComponentsBuilder as NodeComponentsBuilder<N>>::Components>,
+    >;
 
     fn components_builder(&self) -> Self::ComponentsBuilder {
         let Self { args } = self;
@@ -140,7 +140,7 @@ where
     // Must implement ConfigureEvm;
     type EVM = GnosisEvmConfig;
     // Must implement BlockExecutorProvider;
-    type Executor = GnosisExecutorProvider<Self::EVM>;
+    type Executor = BasicBlockExecutorProvider<GnosisExecutionStrategyFactory>;
 
     async fn build_evm(
         self,
@@ -160,7 +160,9 @@ where
             serde_json::from_value(collector_address.clone())?,
             chain_spec.clone(),
         );
-        let executor = GnosisExecutorProvider::new(chain_spec, evm_config.clone())?;
+        let strategy_factory =
+            GnosisExecutionStrategyFactory::new(ctx.chain_spec(), evm_config.clone())?;
+        let executor = BasicBlockExecutorProvider::new(strategy_factory);
 
         Ok((evm_config, executor))
     }
@@ -196,12 +198,12 @@ pub struct GnosisEngineValidatorBuilder;
 impl<Node, Types> EngineValidatorBuilder<Node> for GnosisEngineValidatorBuilder
 where
     Types: NodeTypesWithEngine<ChainSpec = ChainSpec>,
-    Node: FullNodeTypes<Types = Types>,
+    Node: FullNodeComponents<Types = Types>,
     EthereumEngineValidator: EngineValidator<Types::Engine>,
 {
     type Validator = EthereumEngineValidator;
 
-    async fn build_validator(self, ctx: &BuilderContext<Node>) -> eyre::Result<Self::Validator> {
-        Ok(EthereumEngineValidator::new(ctx.chain_spec()))
+    async fn build(self, ctx: &AddOnsContext<'_, Node>) -> eyre::Result<Self::Validator> {
+        Ok(EthereumEngineValidator::new(ctx.config.chain.clone()))
     }
 }
diff --git a/src/payload_builder.rs b/src/payload_builder.rs
index 5d9585c..852785b 100644
--- a/src/payload_builder.rs
+++ b/src/payload_builder.rs
@@ -1,5 +1,7 @@
 use std::sync::Arc;
 
+use alloy_consensus::EMPTY_OMMER_ROOT_HASH;
+use alloy_eips::{eip4844::MAX_DATA_GAS_PER_BLOCK, eip7685::Requests, merge::BEACON_NONCE};
 use eyre::eyre;
 use reth::{
     api::{FullNodeTypes, NodeTypesWithEngine},
@@ -9,9 +11,8 @@ use reth::{
         PayloadBuilderService,
     },
     primitives::{
-        constants::{eip4844::MAX_DATA_GAS_PER_BLOCK, BEACON_NONCE},
-        proofs::{self, calculate_requests_root},
-        Block, Header, Receipt, EMPTY_OMMER_ROOT_HASH,
+        proofs::{self},
+        Block, Header, Receipt,
     },
     revm::database::StateProviderDatabase,
     transaction_pool::{noop::NoopTransactionPool, BestTransactionsAttributes, TransactionPool},
@@ -39,7 +40,7 @@ use revm_primitives::{
 };
 use tracing::{debug, trace, warn};
 
-use crate::{evm_config::GnosisEvmConfig, execute::gnosis_post_block_system_calls};
+use crate::{evm_config::GnosisEvmConfig, gnosis::apply_post_block_system_calls};
 
 /// A basic Gnosis payload service builder
 #[derive(Debug, Default, Clone)]
@@ -57,6 +58,8 @@ impl GnosisPayloadServiceBuilder {
 impl<Node, Pool> PayloadServiceBuilder<Node, Pool> for GnosisPayloadServiceBuilder
 where
     Node: FullNodeTypes<Types: NodeTypesWithEngine<Engine = EthEngineTypes, ChainSpec = ChainSpec>>,
+    <Node as FullNodeTypes>::Provider: reth_provider::StateProviderFactory
+        + reth_provider::ChainSpecProvider<ChainSpec = ChainSpec>,
     Pool: TransactionPool + Unpin + 'static,
 {
     async fn spawn_payload_service(
@@ -144,7 +147,7 @@ where
         &self,
         config: &PayloadConfig<EthPayloadBuilderAttributes>,
         parent: &Header,
-    ) -> (CfgEnvWithHandlerCfg, BlockEnv) {
+    ) -> Result<(CfgEnvWithHandlerCfg, BlockEnv), EvmConfig::Error> {
         let next_attributes = NextBlockEnvAttributes {
             timestamp: config.attributes.timestamp,
             suggested_fee_recipient: config.attributes.suggested_fee_recipient,
@@ -169,7 +172,9 @@ where
         &self,
         args: BuildArguments<Pool, Client, EthPayloadBuilderAttributes, EthBuiltPayload>,
     ) -> Result<BuildOutcome<EthBuiltPayload>, PayloadBuilderError> {
-        let (cfg_env, block_env) = self.cfg_and_block_env(&args.config, &args.config.parent_block);
+        let (cfg_env, block_env) = self
+            .cfg_and_block_env(&args.config, &args.config.parent_header)
+            .map_err(PayloadBuilderError::other)?;
         default_ethereum_payload(
             self.evm_config.clone(),
             args,
@@ -192,7 +197,9 @@ where
             cancel: Default::default(),
             best_payload: None,
         };
-        let (cfg_env, block_env) = self.cfg_and_block_env(&args.config, &args.config.parent_block);
+        let (cfg_env, block_env) = self
+            .cfg_and_block_env(&args.config, &args.config.parent_header)
+            .map_err(PayloadBuilderError::other)?;
         default_ethereum_payload(
             self.evm_config.clone(),
             args,
@@ -235,19 +242,19 @@ where
         best_payload,
     } = args;
     let chain_spec = client.chain_spec();
-    let state_provider = client.state_by_block_hash(config.parent_block.hash())?;
+    let state_provider = client.state_by_block_hash(config.parent_header.hash())?;
     let state = StateProviderDatabase::new(state_provider);
     let mut db = State::builder()
         .with_database_ref(cached_reads.as_db(state))
         .with_bundle_update()
         .build();
     let PayloadConfig {
-        parent_block,
+        parent_header,
         extra_data,
         attributes,
     } = config;
 
-    debug!(target: "payload_builder", id=%attributes.id, parent_hash = ?parent_block.hash(), parent_number = parent_block.number, "building new payload");
+    debug!(target: "payload_builder", id=%attributes.id, parent_hash = ?parent_header.hash(), parent_number = parent_header.number, "building new payload");
     let mut cumulative_gas_used = 0;
     let mut sum_blob_gas_used = 0;
     let block_gas_limit: u64 = initialized_block_env.gas_limit.to::<u64>();
@@ -267,7 +274,7 @@ where
 
     let block_number = initialized_block_env.number.to::<u64>();
 
-    let mut system_caller = SystemCaller::new(&evm_config, chain_spec.clone());
+    let mut system_caller = SystemCaller::new(evm_config.clone(), chain_spec.clone());
 
     // apply eip-4788 pre block contract call
     system_caller
@@ -279,7 +286,7 @@ where
         )
         .map_err(|err| {
             warn!(target: "payload_builder",
-                parent_hash=%parent_block.hash(),
+                parent_hash=%parent_header.hash(),
                 %err,
                 "failed to apply beacon root contract call for payload"
             );
@@ -291,10 +298,10 @@ where
         &mut db,
         &initialized_cfg,
         &initialized_block_env,
-        parent_block.hash(),
+        parent_header.hash(),
     )
     .map_err(|err| {
-        warn!(target: "payload_builder", parent_hash=%parent_block.hash(), %err, "failed to update blockhashes for payload");
+        warn!(target: "payload_builder", parent_hash=%parent_header.hash(), %err, "failed to update blockhashes for payload");
         PayloadBuilderError::Internal(err.into())
     })?;
 
@@ -335,7 +342,7 @@ where
         let env = EnvWithHandlerCfg::new_with_cfg_env(
             initialized_cfg.clone(),
             initialized_block_env.clone(),
-            evm_config.tx_env(&tx),
+            evm_config.tx_env(tx.as_signed(), tx.signer()),
         );
 
         // Configure the environment for the block.
@@ -417,9 +424,7 @@ where
     }
 
     // calculate the requests and the requests root
-    let (requests, requests_root) = if chain_spec
-        .is_prague_active_at_timestamp(attributes.timestamp)
-    {
+    let requests = if chain_spec.is_prague_active_at_timestamp(attributes.timestamp) {
         let deposit_requests = parse_deposits_from_receipts(&chain_spec, receipts.iter().flatten())
             .map_err(|err| PayloadBuilderError::Internal(RethError::Execution(err.into())))?;
         let withdrawal_requests = system_caller
@@ -437,20 +442,17 @@ where
             )
             .map_err(|err| PayloadBuilderError::Internal(err.into()))?;
 
-        let requests = [
+        Some(Requests::new(vec![
             deposit_requests,
             withdrawal_requests,
             consolidation_requests,
-        ]
-        .concat();
-        let requests_root = calculate_requests_root(&requests);
-        (Some(requests.into()), Some(requests_root))
+        ]))
     } else {
-        (None, None)
+        None
     };
 
     // < GNOSIS SPECIFIC
-    gnosis_post_block_system_calls(
+    apply_post_block_system_calls(
         &chain_spec,
         &evm_config,
         &mut db,
@@ -478,6 +480,7 @@ where
     // and 4788 contract call
     db.merge_transitions(BundleRetention::Reverts);
 
+    let requests_hash = requests.as_ref().map(|requests| requests.requests_hash());
     let execution_outcome = ExecutionOutcome::new(
         db.take_bundle(),
         vec![receipts.clone()].into(),
@@ -500,7 +503,7 @@ where
             .state_root_with_updates(hashed_state.clone())
             .inspect_err(|err| {
                 warn!(target: "payload_builder",
-                    parent_hash=%parent_block.hash(),
+                    parent_hash=%parent_header.hash(),
                     %err,
                     "failed to calculate state root for payload"
                 );
@@ -526,9 +529,9 @@ where
                 .collect(),
         )?;
 
-        excess_blob_gas = if chain_spec.is_cancun_active_at_timestamp(parent_block.timestamp) {
-            let parent_excess_blob_gas = parent_block.excess_blob_gas.unwrap_or_default();
-            let parent_blob_gas_used = parent_block.blob_gas_used.unwrap_or_default();
+        excess_blob_gas = if chain_spec.is_cancun_active_at_timestamp(parent_header.timestamp) {
+            let parent_excess_blob_gas = parent_header.excess_blob_gas.unwrap_or_default();
+            let parent_blob_gas_used = parent_header.blob_gas_used.unwrap_or_default();
             Some(calc_excess_blob_gas(
                 parent_excess_blob_gas,
                 parent_blob_gas_used,
@@ -543,7 +546,7 @@ where
     }
 
     let header = Header {
-        parent_hash: parent_block.hash(),
+        parent_hash: parent_header.hash(),
         ommers_hash: EMPTY_OMMER_ROOT_HASH,
         beneficiary: initialized_block_env.coinbase,
         state_root,
@@ -555,7 +558,7 @@ where
         mix_hash: attributes.prev_randao,
         nonce: BEACON_NONCE.into(),
         base_fee_per_gas: Some(base_fee),
-        number: parent_block.number + 1,
+        number: parent_header.number + 1,
         gas_limit: block_gas_limit,
         difficulty: U256::ZERO,
         gas_used: cumulative_gas_used,
@@ -563,7 +566,7 @@ where
         parent_beacon_block_root: attributes.parent_beacon_block_root,
         blob_gas_used: blob_gas_used.map(Into::into),
         excess_blob_gas: excess_blob_gas.map(Into::into),
-        requests_root,
+        requests_hash,
     };
 
     // seal the block
@@ -573,7 +576,6 @@ where
             transactions: executed_txs,
             ommers: vec![],
             withdrawals,
-            requests,
         },
     };
 
@@ -588,11 +590,16 @@ where
         hashed_state: Arc::new(hashed_state),
         trie: Arc::new(trie_output),
     };
-
-    let mut payload = EthBuiltPayload::new(attributes.id, sealed_block, total_fees, Some(executed));
+    let mut payload = EthBuiltPayload::new(
+        attributes.id,
+        sealed_block,
+        total_fees,
+        Some(executed),
+        requests,
+    );
 
     // extend the payload with the blob sidecars from the executed txs
-    payload.extend_sidecars(blob_sidecars);
+    payload.extend_sidecars(blob_sidecars.into_iter().map(Arc::unwrap_or_clone));
 
     Ok(BuildOutcome::Better {
         payload,