From e1abb4a3c7f80e2167a7b97174229559298d6411 Mon Sep 17 00:00:00 2001 From: faheelsattar Date: Wed, 17 Jun 2026 23:44:03 +0200 Subject: [PATCH 1/2] migrate reth deps to 2.2 --- Cargo.lock | 1997 +++++++++-------- Cargo.toml | 96 +- crates/eth-sparse-mpt/src/lib.rs | 8 +- crates/eth-sparse-mpt/src/utils.rs | 20 +- .../src/v1/reth_sparse_trie/mod.rs | 6 +- .../v1/reth_sparse_trie/trie_fetcher/mod.rs | 14 +- .../src/v1/sparse_mpt/fixed_trie.rs | 6 +- crates/eth-sparse-mpt/src/v2/fetch.rs | 43 +- crates/eth-sparse-mpt/src/v2/mod.rs | 9 +- .../eth-sparse-mpt/src/v2/trie/proof_store.rs | 6 +- .../src/v_experimental/fetch.rs | 31 +- .../eth-sparse-mpt/src/v_experimental/mod.rs | 9 +- .../src/v_experimental/trie/proof_store.rs | 6 +- .../rbuilder-operator/src/flashbots_config.rs | 7 +- crates/rbuilder-primitives/Cargo.toml | 1 - crates/rbuilder-primitives/src/built_block.rs | 8 +- .../rbuilder-primitives/src/evm_inspector.rs | 3 +- crates/rbuilder-primitives/src/lib.rs | 15 +- .../src/test_data_generator.rs | 3 +- crates/rbuilder-utils/Cargo.toml | 2 +- crates/rbuilder/Cargo.toml | 6 +- .../rbuilder/benches/benchmarks/mev_boost.rs | 17 +- .../full_partial_block_execution_tracer.rs | 13 +- .../resim_landed_block.rs | 3 +- crates/rbuilder/src/backtest/store.rs | 3 +- .../rbuilder/src/building/bid_adjustments.rs | 2 +- .../builders/mock_block_building_helper.rs | 5 +- crates/rbuilder/src/building/builders/mod.rs | 5 +- .../parallel_builder/conflict_resolvers.rs | 3 +- .../conflict_task_generator.rs | 4 +- .../builders/parallel_builder/groups.rs | 4 +- crates/rbuilder/src/building/evm.rs | 3 +- crates/rbuilder/src/building/mod.rs | 63 +- crates/rbuilder/src/building/order_commit.rs | 9 +- crates/rbuilder/src/building/payout_tx.rs | 11 +- .../src/building/testing/bundle_tests/mod.rs | 2 +- .../testing/evm_inspector_tests/mod.rs | 6 +- .../testing/evm_inspector_tests/setup.rs | 3 +- .../src/building/testing/test_chain_state.rs | 8 +- .../rbuilder/src/live_builder/base_config.rs | 2 +- .../live_builder/block_output/bid_observer.rs | 3 +- .../block_output/bid_observer_multiplexer.rs | 3 +- crates/rbuilder/src/live_builder/config.rs | 2 +- crates/rbuilder/src/live_builder/mod.rs | 3 +- crates/rbuilder/src/mev_boost/rpc.rs | 1 + crates/rbuilder/src/mev_boost/sign_payload.rs | 5 +- .../src/provider/ipc_state_provider.rs | 19 +- crates/rbuilder/src/provider/reth_prov.rs | 7 +- crates/rbuilder/src/roothash/mod.rs | 79 +- crates/rbuilder/src/roothash/prefetcher.rs | 4 +- crates/rbuilder/src/utils/mod.rs | 5 +- .../src/utils/provider_factory_reopen.rs | 8 +- crates/rbuilder/src/utils/receipts.rs | 21 +- crates/rbuilder/src/utils/test_utils.rs | 3 +- crates/rbuilder/src/utils/tx_signer.rs | 3 +- 55 files changed, 1454 insertions(+), 1174 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index de3573ea0..7eb88581c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,11 +97,11 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.21" +version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ebac8ff9c2f07667e1803dc777304337e160ce5153335beb45e8ec0751808" +checksum = "f4e9e31d834fe25fe991b8884e4b9f0e59db4a97d86e05d1464d6899c013cd62" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "num_enum", "serde", @@ -114,12 +114,39 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f16daaf7e1f95f62c6c3bf8a3fc3d78b08ae9777810c0bb5e94966c7cd57ef0" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 1.8.3", + "alloy-primitives 1.5.6", + "alloy-rlp", + "alloy-serde 1.8.3", + "alloy-trie", + "alloy-tx-macros 1.8.3", + "auto_impl", + "borsh", + "c-kzg", + "derive_more 2.1.0", + "either", + "k256 0.13.4", + "once_cell", + "rand 0.8.5", + "secp256k1 0.30.0", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.17", +] + +[[package]] +name = "alloy-consensus" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d64da86c616b5092ea64eea648f311bbd58630a0b384c42d699175d6f9122b" +dependencies = [ + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.4", "alloy-trie", - "alloy-tx-macros", + "alloy-tx-macros 2.1.0", "arbitrary", "auto_impl", "borsh", @@ -142,30 +169,44 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "118998d9015332ab1b4720ae1f1e3009491966a0349938a1f43ff45a8a4c6299" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 1.8.3", + "alloy-eips 1.8.3", + "alloy-primitives 1.5.6", + "alloy-rlp", + "alloy-serde 1.8.3", + "serde", +] + +[[package]] +name = "alloy-consensus-any" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd98696ca3617d3a9ba1a6f2011880cbfd5618228dab6400c9f8bca457859a8" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.4", "arbitrary", "serde", ] [[package]] name = "alloy-dyn-abi" -version = "1.6.0" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a475bb02d9cef2dbb99065c1664ab3fe1f9352e21d6d5ed3f02cdbfc06ed1abc" +checksum = "e6ab1b2f1b48a7e6b3597cb2afae04f93879fb69d71e39736b5663d7366b23f2" dependencies = [ "alloy-json-abi", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-sol-type-parser", "alloy-sol-types", "derive_more 2.1.0", "itoa", "serde", "serde_json", - "winnow 1.0.3", + "winnow", ] [[package]] @@ -174,7 +215,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "arbitrary", "crc", @@ -189,7 +230,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "arbitrary", "borsh", @@ -203,7 +244,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "arbitrary", "borsh", @@ -220,7 +261,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b827a6d7784fe3eb3489d40699407a4cdcce74271421a01bdffe60cf573bb16" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "arbitrary", "borsh", @@ -239,17 +280,40 @@ dependencies = [ "alloy-eip2930", "alloy-eip7702", "alloy-eip7928", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", + "alloy-rlp", + "alloy-serde 1.8.3", + "auto_impl", + "borsh", + "c-kzg", + "derive_more 2.1.0", + "either", + "serde", + "serde_with", + "sha2 0.10.9", +] + +[[package]] +name = "alloy-eips" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c0456f5f7a4497e9342d20f528e30f5288ddfa0d6a012bd5044afee46cd8a0" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-eip7928", + "alloy-primitives 1.5.6", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.4", "arbitrary", "auto_impl", "borsh", "c-kzg", "derive_more 2.1.0", "either", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", + "ethereum_ssz 0.10.4", + "ethereum_ssz_derive 0.10.4", "serde", "serde_with", "sha2 0.10.9", @@ -257,34 +321,33 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.27.3" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b991c370ce44e70a3a9e474087e3d65e42e66f967644ad729dc4cec09a21fd09" +checksum = "c1ceeea6dcbbcd4e546b27700763a6f6c3b3fee30054209884f521078b6fda4f" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-hardforks 0.4.7", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-sol-types", "auto_impl", "derive_more 2.1.0", - "op-alloy", - "op-revm", "revm", "thiserror 2.0.17", + "tracing", ] [[package]] name = "alloy-genesis" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf9480307b09d22876efb67d30cadd9013134c21f3a17ec9f93fd7536d38024" +checksum = "a71ff8b55d2b8aa05259f474cae7dea0e4991724dc18936b81cb23ec492a0c2a" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", - "alloy-serde", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", + "alloy-serde 2.0.4", "alloy-trie", "borsh", "serde", @@ -299,7 +362,7 @@ checksum = "3165210652f71dfc094b051602bafd691f506c54050a174b1cba18fb5ef706a3" dependencies = [ "alloy-chains", "alloy-eip2124", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "auto_impl", "dyn-clone", ] @@ -312,7 +375,7 @@ checksum = "83ba208044232d14d4adbfa77e57d6329f51bc1acc21f5667bb7db72d88a0831" dependencies = [ "alloy-chains", "alloy-eip2124", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "auto_impl", "dyn-clone", "serde", @@ -320,11 +383,11 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.6.0" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c36c9d7f9021601b04bfef14a4b64849f6d73116a4e91e071d7fbfe10247901" +checksum = "1e414aa37b335ad2acb78a95814c59d137d53139b412f87aed1e10e2d862cd49" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-sol-type-parser", "serde", "serde_json", @@ -336,7 +399,22 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "422d110f1c40f1f8d0e5562b0b649c35f345fccb7093d9f02729943dcd1eef71" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", + "alloy-sol-types", + "http 1.4.0", + "serde", + "serde_json", + "thiserror 2.0.17", + "tracing", +] + +[[package]] +name = "alloy-json-rpc" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e352478b756bad5d7203148e4b461861282ea2ded3da406ba24868b52cd098" +dependencies = [ + "alloy-primitives 1.5.6", "alloy-sol-types", "http 1.4.0", "serde", @@ -347,19 +425,19 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7197a66d94c4de1591cdc16a9bcea5f8cccd0da81b865b49aef97b1b4016e0fa" +checksum = "ed08ae169869e08370ed121612e0d3dadac33d1a256e9f2465926b23f0bd7d95" dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-json-rpc", - "alloy-network-primitives", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-consensus-any 2.0.4", + "alloy-eips 2.0.4", + "alloy-json-rpc 2.0.4", + "alloy-network-primitives 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-any", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", "alloy-signer", "alloy-sol-types", "async-trait", @@ -377,23 +455,36 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb82711d59a43fdfd79727c99f270b974c784ec4eb5728a0d0d22f26716c87ef" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", - "alloy-serde", + "alloy-consensus 1.8.3", + "alloy-eips 1.8.3", + "alloy-primitives 1.5.6", + "alloy-serde 1.8.3", + "serde", +] + +[[package]] +name = "alloy-network-primitives" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e6c7ad28afe348a9a9c5624b67ee5b3607b8de98d5816b3056ecdfa6fa2697" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", + "alloy-serde 2.0.4", "serde", ] [[package]] name = "alloy-node-bindings" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b2fda91b56bb08907cd44c5068130360e027e46a8c17612d386869fa7940be" +checksum = "5a29998ddc1f3a7658b82de0784566c65e2f116917a349de7fdd0b765e539d0c" dependencies = [ "alloy-genesis", "alloy-hardforks 0.2.13", "alloy-network", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-signer", "alloy-signer-local", "k256 0.13.4", @@ -457,9 +548,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.6.0" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4885c1409b6936c4898e646ef58baf6ec54edaf6d8179f79df805a7b85b7cf3e" +checksum = "66b1483f8c2562bf35f0270b697d5b5fe8170464e935bd855a4c5eaf6f89b354" dependencies = [ "alloy-rlp", "arbitrary", @@ -470,40 +561,39 @@ dependencies = [ "fixed-cache", "foldhash 0.2.0", "getrandom 0.4.2", - "hashbrown 0.17.1", + "hashbrown 0.16.1", "indexmap 2.12.1", "itoa", "k256 0.13.4", "keccak-asm", "paste", "proptest", - "proptest-derive 0.8.0", + "proptest-derive", "rand 0.9.2", "rapidhash", "ruint", "rustc-hash 2.1.1", - "secp256k1 0.31.1", "serde", - "sha3 0.11.0", + "sha3 0.10.8", ] [[package]] name = "alloy-provider" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6b18b929ef1d078b834c3631e9c925177f3b23ddc6fa08a722d13047205876" +checksum = "93a7c17472b55482d4734154c2f5ed13f72e03f6752cebb927f6a2d8b52e646c" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-json-rpc 2.0.4", "alloy-network", - "alloy-network-primitives", - "alloy-primitives 1.6.0", + "alloy-network-primitives 2.0.4", + "alloy-primitives 1.5.6", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types-debug", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-rpc-types-trace", "alloy-signer", "alloy-sol-types", @@ -533,12 +623,12 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad54073131e7292d4e03e1aa2287730f737280eb160d8b579fb31939f558c11" +checksum = "a8d86958b02bca85103d64fa60d7b364a8b017c6e40f2b02c3f50ca22964a738" dependencies = [ - "alloy-json-rpc", - "alloy-primitives 1.6.0", + "alloy-json-rpc 2.0.4", + "alloy-primitives 1.5.6", "alloy-transport", "auto_impl", "bimap", @@ -555,9 +645,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.15" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc90b1e703d3c03f4ff7f48e82dd0bc1c8211ab7d079cd836a06fcfeb06651cb" +checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -577,12 +667,12 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fcc9604042ca80bd37aa5e232ea1cd851f337e31e2babbbb345bc0b1c30de3" +checksum = "5beb5c2fe6b960c8e8b038e69fd502a90a2e930afa4770efb748b163b0767729" dependencies = [ - "alloy-json-rpc", - "alloy-primitives 1.6.0", + "alloy-json-rpc 2.0.4", + "alloy-primitives 1.5.6", "alloy-pubsub", "alloy-transport", "alloy-transport-http", @@ -603,79 +693,84 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4faad925d3a669ffc15f43b3deec7fbdf2adeb28a4d6f9cf4bc661698c0f8f4b" +checksum = "4ee1257a278f6d293e05c5162c5940a1561b1aa85ded0028b464c81de37ebfa5" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b38080c2b01ad1bacbd3583cf7f6f800e5e0ffc11eaddaad7321225733a2d818" +checksum = "e2144d5b2866e651796eac0a997d3b5a056449c12e0d91be3184129e0c722885" dependencies = [ "alloy-genesis", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-anvil" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47df51bedb3e6062cb9981187a51e86d0d64a4de66eb0855e9efe6574b044ddf" +checksum = "df32156f085e74eac942b6103744be49b817c302341aaa8cb0c1c88dc29228d9" dependencies = [ - "alloy-primitives 1.6.0", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3823026d1ed239a40f12364fac50726c8daf1b6ab8077a97212c5123910429ed" +checksum = "6a234bfbdf7a76c3d13808f729af5321852de3dedcaa6fc6d5f54787aaf54c6a" dependencies = [ - "alloy-consensus-any", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-consensus-any 2.0.4", + "alloy-network-primitives 2.0.4", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", + "serde", + "serde_json", ] [[package]] name = "alloy-rpc-types-beacon" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f526dbd7bb039327cfd0ccf18c8a29ffd7402616b0c7a0239512bf8417d544c7" +checksum = "296450f5e76bece0116c939b9437b0421a5da9c5d40031bf4cf9b38d3d94e475" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "derive_more 2.1.0", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", + "ethereum_ssz 0.10.4", + "ethereum_ssz_derive 0.10.4", "serde", "serde_json", "serde_with", "thiserror 2.0.17", - "tree_hash 0.10.0", - "tree_hash_derive 0.10.0", + "tree_hash 0.12.1", + "tree_hash_derive 0.12.1", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2145138f3214928f08cd13da3cb51ef7482b5920d8ac5a02ecd4e38d1a8f6d1e" +checksum = "0ab075ac1c25bcf697f133b7cd92e2fb26afe213e872ef79fdf77f0d7bcb3793" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", + "alloy-rlp", "derive_more 2.1.0", "serde", "serde_with", @@ -683,18 +778,18 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9b97b6e7965679ad22df297dda809b11cebc13405c1b537e5cffecc95834fa" +checksum = "73b12366c96f4013e1aeebc96c6b56e5f33f07853c42ea2f485045c0c157a4a1" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.4", "derive_more 2.1.0", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", + "ethereum_ssz 0.10.4", + "ethereum_ssz_derive 0.10.4", "jsonwebtoken", "rand 0.8.5", "serde", @@ -707,13 +802,34 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59c095f92c4e1ff4981d89e9aa02d5f98c762a1980ab66bec49c44be11349da2" dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives 1.6.0", + "alloy-consensus 1.8.3", + "alloy-consensus-any 1.8.3", + "alloy-eips 1.8.3", + "alloy-network-primitives 1.8.3", + "alloy-primitives 1.5.6", + "alloy-rlp", + "alloy-serde 1.8.3", + "alloy-sol-types", + "itertools 0.14.0", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.17", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56a282daf869eeb7383d3d5c2deb35b0b3fb45ecb329513af4090fc61245ee18" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-consensus-any 2.0.4", + "alloy-eips 2.0.4", + "alloy-network-primitives 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.4", "alloy-sol-types", "arbitrary", "itertools 0.14.0", @@ -725,28 +841,28 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eae9c65ff60dcc262247b6ebb5ad391ddf36d09029802c1768c5723e0cfa2f4" +checksum = "7adc1243d55744a66b3a6cbbbba96436e8df5d248f2ee8186bef4238ef704ec7" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-trace" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5a4d010f86cd4e01e5205ec273911e538e1738e76d8bafe9ecd245910ea5a3" +checksum = "6184b5d14152b68b0bb8beb621339d94f0b761a37958bb365fbf7c00922125c2" dependencies = [ - "alloy-primitives 1.6.0", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", "serde", "serde_json", "thiserror 2.0.17", @@ -754,13 +870,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942d26a2ca8891b26de4a8529d21091e21c1093e27eb99698f1a86405c76b1ff" +checksum = "f00b631c361e7c7baaf4f1f5a9877730f3507fed2acb9d4b34841b8184b2ec28" dependencies = [ - "alloy-primitives 1.6.0", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", "serde", ] @@ -770,7 +886,18 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11ece63b89294b8614ab3f483560c08d016930f842bf36da56bf0b764a15c11e" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-serde" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0eada2558e921b39dfcead33c487364df9b31374f5733c1c9d2c891c4529933" +dependencies = [ + "alloy-primitives 1.5.6", "arbitrary", "serde", "serde_json", @@ -778,11 +905,11 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f447aefab0f1c0649f71edc33f590992d4e122bc35fb9cdbbf67d4421ace85" +checksum = "41eb29f7a8adcd8941fbb8e134022a133e6f8dfd345f2e3b7109599f8a7dca08" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "async-trait", "auto_impl", "either", @@ -793,13 +920,13 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f721f4bf2e4812e5505aaf5de16ef3065a8e26b9139ac885862d00b5a55a659a" +checksum = "bef839e7ce9b59aa60fa9a175e97986c6145c888d643b0f1fb0a3e7b8e56a2e2" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-network", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-signer", "async-trait", "coins-bip32", @@ -860,33 +987,33 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.6.0" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "857b470ecdd2ed38beaf82ad1a38c516a8ff75266750f38b9eeed001d575241b" +checksum = "b28e6e86c6d2db52654b65a5a76b4f57eae5a32a7f0aa2222d1dbdb74e2cb8e0" dependencies = [ "serde", - "winnow 1.0.3", + "winnow", ] [[package]] name = "alloy-sol-types" -version = "1.6.0" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384cf252de0db2dec52821eac037a7f57e2aa33fe5b900ce6fe39973402341f1" +checksum = "fdf7effe4ab0a4f52c865959f790036e61a7983f68b13b75d7fbcedf20b753ce" dependencies = [ "alloy-json-abi", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-sol-macro", "serde", ] [[package]] name = "alloy-transport" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8098f965442a9feb620965ba4b4be5e2b320f4ec5a3fff6bfa9e1ff7ef42bed1" +checksum = "3ac7a80c0bac3e44559d53d002e34c461dc2f23262b42cafec019bc70551abbe" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 2.0.4", "auto_impl", "base64 0.22.1", "derive_more 2.1.0", @@ -905,11 +1032,11 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8597d36d546e1dab822345ad563243ec3920e199322cb554ce56c8ef1a1e2e7" +checksum = "eed3ed3300a998f88639ed619fdbbd88bd82865e00c6a8ecb796c99eb12358f6" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 2.0.4", "alloy-transport", "itertools 0.14.0", "reqwest 0.13.4", @@ -921,11 +1048,11 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1bd98c3870b8a44b79091dde5216a81d58ffbc1fd8ed61b776f9fee0f3bdf20" +checksum = "1075d9d30fd4d71e50000fd4afb19ed2664ceab20c2a29f3889a6e988329e02d" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 2.0.4", "alloy-pubsub", "alloy-transport", "bytes", @@ -941,9 +1068,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.8.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3ab7a72b180992881acc112628b7668337a19ce15293ee974600ea7b693691" +checksum = "0e3bff84b2b2a46eb34cc522dc3f889a2867c70be90a377421429b662b3ec4ce" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -960,18 +1087,19 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.9.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f14b5d9b2c2173980202c6ff470d96e7c5e202c65a9f67884ad565226df7fbb" +checksum = "4d7fd448ab0a017de542de1dcca7a58e7019fe0e7a34ed3f9543ebddf6aceffa" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "arbitrary", + "arrayvec", "derive_arbitrary", "derive_more 2.1.0", "nybbles", "proptest", - "proptest-derive 0.7.0", + "proptest-derive", "serde", "smallvec", "thiserror 2.0.17", @@ -990,6 +1118,18 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "alloy-tx-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc2cd27809c88c413e5542dbd5a8eff8c12f0086af920e881ae586d3a787d5e5" +dependencies = [ + "darling 0.23.0", + "proc-macro2 1.0.103", + "quote 1.0.42", + "syn 2.0.117", +] + [[package]] name = "android_system_properties" version = "0.1.5" @@ -1093,6 +1233,12 @@ dependencies = [ "derive_arbitrary", ] +[[package]] +name = "archery" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e0a5f99dfebb87bb342d0f53bb92c81842e100bbb915223e38349580e5441d" + [[package]] name = "argminmax" version = "0.6.3" @@ -1617,6 +1763,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" dependencies = [ "aws-lc-sys", + "untrusted 0.7.1", "zeroize", ] @@ -1775,7 +1922,7 @@ dependencies = [ name = "bid-scraper" version = "0.1.0" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-provider", "alloy-rpc-types-beacon", "async-trait", @@ -1910,6 +2057,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "bitmaps" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6" + [[package]] name = "bitvec" version = "1.0.1" @@ -1923,6 +2076,20 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake3" +version = "1.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq 0.4.2", + "cpufeatures 0.3.0", +] + [[package]] name = "block-buffer" version = "0.9.0" @@ -2792,6 +2959,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + [[package]] name = "convert_case" version = "0.4.0" @@ -3325,7 +3498,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.117", + "syn 1.0.109", ] [[package]] @@ -3583,9 +3756,8 @@ dependencies = [ [[package]] name = "discv5" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f170f4f6ed0e1df52bf43b403899f0081917ecf1500bfe312505cc3b515a8899" +version = "0.10.4" +source = "git+https://github.com/sigp/discv5?rev=7663c00#7663c00ee0837ea98547caaedede95d9d6736f4d" dependencies = [ "aes", "aes-gcm", @@ -3596,18 +3768,17 @@ dependencies = [ "enr 0.13.0", "fnv", "futures", - "hashlink 0.9.1", + "hashlink 0.11.1", "hex", "hkdf", "lazy_static", "libp2p-identity", - "lru 0.12.5", "more-asserts", "multiaddr 0.18.2", "parking_lot", "rand 0.8.5", "smallvec", - "socket2 0.5.10", + "socket2 0.6.4", "tokio", "tracing", "uint 0.10.0", @@ -3999,7 +4170,7 @@ dependencies = [ name = "eth-sparse-mpt" version = "0.1.0" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "alloy-trie", "arrayvec", @@ -4122,6 +4293,17 @@ dependencies = [ "sha2 0.10.9", ] +[[package]] +name = "ethereum_hashing" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa93f58bb1eb3d1e556e4f408ef1dac130bad01ac37db4e7ade45de40d1c86a" +dependencies = [ + "cpufeatures 0.2.17", + "ring", + "sha2 0.10.9", +] + [[package]] name = "ethereum_serde_utils" version = "0.7.0" @@ -4141,7 +4323,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "hex", "serde", "serde_derive", @@ -4165,7 +4347,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "ethereum_serde_utils 0.8.0", "itertools 0.13.0", "serde", @@ -4180,7 +4362,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e462875ad8693755ea8913d6e905715c76ea4836e2254e18c9cf0f7a8f8c2a13" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "ethereum_serde_utils 0.8.0", "itertools 0.14.0", "serde", @@ -5167,6 +5349,8 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash 0.2.0", + "serde", + "serde_core", ] [[package]] @@ -5178,8 +5362,6 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash 0.2.0", - "serde", - "serde_core", ] [[package]] @@ -5193,11 +5375,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.9.1" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +checksum = "824e001ac4f3012dd16a264bec811403a67ca9deb6c102fc5049b32c4574b35f" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.16.1", ] [[package]] @@ -5579,7 +5761,6 @@ dependencies = [ "tokio", "tokio-rustls 0.26.4", "tower-service", - "webpki-roots 1.0.4", ] [[package]] @@ -5642,7 +5823,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.1", + "socket2 0.6.4", "system-configuration 0.6.1", "tokio", "tower-service", @@ -5999,6 +6180,31 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "imbl" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e525189e5f603908d0c6e0d402cb5de9c4b2c8866151fabc4ebd771ed2630a2e" +dependencies = [ + "archery", + "bitmaps", + "imbl-sized-chunks", + "rand_core 0.9.3", + "rand_xoshiro", + "serde_core", + "version_check 0.9.5", + "wide", +] + +[[package]] +name = "imbl-sized-chunks" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4241005618a62f8d57b2febd02510fb96e0137304728543dfc5fd6f052c22d" +dependencies = [ + "bitmaps", +] + [[package]] name = "impl-codec" version = "0.6.0" @@ -6365,11 +6571,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] @@ -6708,17 +6915,20 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "9.3.1" +version = "10.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +checksum = "eba32bfb4ffdeaca3e34431072faf01745c9b26d25504aa7a6cf5684334fc4fc" dependencies = [ + "aws-lc-rs", "base64 0.22.1", + "getrandom 0.2.16", "js-sys", "pem", - "ring", "serde", "serde_json", + "signature 2.2.0", "simple_asn1", + "zeroize", ] [[package]] @@ -6909,9 +7119,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.178" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libgit2-sys" @@ -7445,9 +7655,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" dependencies = [ "libc", "log", @@ -7970,122 +8180,6 @@ version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" -[[package]] -name = "op-alloy" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9b8fee21003dd4f076563de9b9d26f8c97840157ef78593cd7f262c5ca99848" -dependencies = [ - "op-alloy-consensus", - "op-alloy-network", - "op-alloy-provider", - "op-alloy-rpc-types", - "op-alloy-rpc-types-engine", -] - -[[package]] -name = "op-alloy-consensus" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736381a95471d23e267263cfcee9e1d96d30b9754a94a2819148f83379de8a86" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network", - "alloy-primitives 1.6.0", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "arbitrary", - "derive_more 2.1.0", - "serde", - "serde_with", - "thiserror 2.0.17", -] - -[[package]] -name = "op-alloy-network" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4034183dca6bff6632e7c24c92e75ff5f0eabb58144edb4d8241814851334d47" -dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives 1.6.0", - "alloy-provider", - "alloy-rpc-types-eth", - "alloy-signer", - "op-alloy-consensus", - "op-alloy-rpc-types", -] - -[[package]] -name = "op-alloy-provider" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6753d90efbaa8ea8bcb89c1737408ca85fa60d7adb875049d3f382c063666f86" -dependencies = [ - "alloy-network", - "alloy-primitives 1.6.0", - "alloy-provider", - "alloy-rpc-types-engine", - "alloy-transport", - "async-trait", - "op-alloy-rpc-types-engine", -] - -[[package]] -name = "op-alloy-rpc-types" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd87c6b9e5b6eee8d6b76f41b04368dca0e9f38d83338e5b00e730c282098a4" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives 1.6.0", - "alloy-rpc-types-eth", - "alloy-serde", - "derive_more 2.1.0", - "op-alloy-consensus", - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "op-alloy-rpc-types-engine" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77727699310a18cdeed32da3928c709e2704043b6584ed416397d5da65694efc" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-serde", - "derive_more 2.1.0", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", - "op-alloy-consensus", - "serde", - "sha2 0.10.9", - "snap", - "thiserror 2.0.17", -] - -[[package]] -name = "op-revm" -version = "15.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79c92b75162c2ed1661849fa51683b11254a5b661798360a2c24be918edafd40" -dependencies = [ - "auto_impl", - "revm", - "serde", -] - [[package]] name = "opaque-debug" version = "0.3.1" @@ -8311,7 +8405,6 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ - "arbitrary", "arrayvec", "bitvec", "byte-slice-cast", @@ -9285,17 +9378,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "proptest-derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c57924a81864dddafba92e1bf92f9bf82f97096c44489548a60e888e1547549b" -dependencies = [ - "proc-macro2 1.0.103", - "quote 1.0.42", - "syn 2.0.117", -] - [[package]] name = "prost" version = "0.13.5" @@ -9432,7 +9514,7 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls 0.23.35", - "socket2 0.6.1", + "socket2 0.6.4", "thiserror 2.0.17", "tokio", "tracing", @@ -9470,7 +9552,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.1", + "socket2 0.6.4", "tracing", "windows-sys 0.60.2", ] @@ -9860,20 +9942,20 @@ version = "0.1.0" dependencies = [ "ahash", "alloy-chains", - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-evm", - "alloy-json-rpc", + "alloy-json-rpc 2.0.4", "alloy-network", - "alloy-network-primitives", + "alloy-network-primitives 2.0.4", "alloy-node-bindings", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-provider", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-beacon", "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-signer-local", "alloy-trie", "assert_matches", @@ -9893,7 +9975,7 @@ dependencies = [ "derive_more 2.1.0", "eth-sparse-mpt", "ethereum-consensus", - "ethereum_ssz 0.9.1", + "ethereum_ssz 0.10.4", "exponential-backoff", "eyre", "flate2", @@ -9910,6 +9992,7 @@ dependencies = [ "metrics_macros", "mev-share-sse", "mockall", + "nybbles", "parking_lot", "priority-queue", "prometheus", @@ -9928,15 +10011,16 @@ dependencies = [ "reth-db", "reth-db-common", "reth-errors", + "reth-ethereum-primitives", "reth-evm", "reth-evm-ethereum", "reth-node-api", "reth-node-core", "reth-node-ethereum", "reth-payload-builder", - "reth-primitives", "reth-primitives-traits", "reth-provider", + "reth-tasks", "reth-trie", "reth-trie-db", "reth-trie-parallel", @@ -9990,7 +10074,7 @@ name = "rbuilder-operator" version = "0.1.0" dependencies = [ "ahash", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rpc-types-beacon", "alloy-signer", "alloy-signer-local", @@ -10041,9 +10125,9 @@ name = "rbuilder-primitives" version = "0.1.0" dependencies = [ "ahash", - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-beacon", @@ -10052,8 +10136,8 @@ dependencies = [ "derivative", "derive_more 2.1.0", "ethereum-consensus", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", + "ethereum_ssz 0.10.4", + "ethereum_ssz_derive 0.10.4", "eyre", "integer-encoding", "proptest", @@ -10061,7 +10145,6 @@ dependencies = [ "reqwest 0.12.24", "reth-chainspec", "reth-ethereum-primitives", - "reth-primitives", "reth-primitives-traits", "reth-transaction-pool", "revm", @@ -10084,11 +10167,11 @@ dependencies = [ name = "rbuilder-rebalancer" version = "0.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-provider", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-signer", "alloy-signer-local", "clap", @@ -10107,7 +10190,7 @@ dependencies = [ name = "rbuilder-utils" version = "0.1.0" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "clickhouse", "derive_more 2.1.0", "rand 0.9.2", @@ -10263,9 +10346,9 @@ name = "reipc" version = "0.1.0" source = "git+https://github.com/nethermindeth/reipc.git?rev=b0b70735cda6273652212d1591188642e3449ed7#b0b70735cda6273652212d1591188642e3449ed7" dependencies = [ - "alloy-json-rpc", - "alloy-primitives 1.6.0", - "alloy-rpc-types-eth", + "alloy-json-rpc 1.8.3", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 1.8.3", "bytes", "crossbeam", "dashmap 6.1.0", @@ -10315,7 +10398,7 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", + "wasm-streams 0.4.2", "web-sys", "webpki-roots 0.25.4", "winreg", @@ -10358,16 +10441,13 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-rustls 0.26.4", - "tokio-util", "tower 0.5.2", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", "web-sys", - "webpki-roots 1.0.4", ] [[package]] @@ -10378,7 +10458,9 @@ checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ "base64 0.22.1", "bytes", + "futures-channel", "futures-core", + "futures-util", "http 1.4.0", "http-body 1.0.1", "http-body-util", @@ -10395,15 +10477,18 @@ dependencies = [ "rustls-platform-verifier 0.7.0", "serde", "serde_json", + "serde_urlencoded", "sync_wrapper 1.0.2", "tokio", "tokio-rustls 0.26.4", + "tokio-util", "tower 0.5.2", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams 0.5.0", "web-sys", ] @@ -10415,10 +10500,10 @@ checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "reth" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rpc-types", "aquamarine", "clap", @@ -10430,6 +10515,7 @@ dependencies = [ "reth-db", "reth-ethereum-cli", "reth-ethereum-payload-builder", + "reth-ethereum-primitives", "reth-network", "reth-network-api", "reth-node-api", @@ -10439,7 +10525,7 @@ dependencies = [ "reth-node-metrics", "reth-payload-builder", "reth-payload-primitives", - "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-revm", "reth-rpc", @@ -10455,16 +10541,17 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "futures-core", "futures-util", "metrics", "reth-chain-state", + "reth-execution-cache", "reth-metrics", "reth-payload-builder", "reth-payload-builder-primitives", @@ -10473,18 +10560,20 @@ dependencies = [ "reth-revm", "reth-storage-api", "reth-tasks", + "reth-trie-parallel", + "serde", "tokio", "tracing", ] [[package]] name = "reth-chain-state" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-signer", "alloy-signer-local", "derive_more 2.1.0", @@ -10511,15 +10600,15 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-evm", "alloy-genesis", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-trie", "auto_impl", "derive_more 2.1.0", @@ -10531,8 +10620,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-genesis", "clap", @@ -10540,20 +10629,20 @@ dependencies = [ "reth-cli-runner", "reth-db", "serde_json", - "shellexpand", ] [[package]] name = "reth-cli-commands" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "backon", + "blake3", "clap", "comfy-table", "crossterm", @@ -10567,7 +10656,8 @@ dependencies = [ "metrics", "parking_lot", "ratatui", - "reqwest 0.12.24", + "rayon", + "reqwest 0.13.4", "reth-chainspec", "reth-cli", "reth-cli-runner", @@ -10602,14 +10692,15 @@ dependencies = [ "reth-primitives-traits", "reth-provider", "reth-prune", + "reth-prune-types", "reth-revm", "reth-stages", + "reth-stages-types", "reth-static-file", "reth-static-file-types", "reth-storage-api", "reth-tasks", "reth-trie", - "reth-trie-common", "reth-trie-db", "secp256k1 0.30.0", "serde", @@ -10625,8 +10716,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "reth-tasks", "tokio", @@ -10635,11 +10726,11 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "cfg-if", "eyre", "libc", @@ -10648,23 +10739,25 @@ dependencies = [ "secp256k1 0.30.0", "serde", "thiserror 2.0.17", + "tikv-jemalloc-sys", "tikv-jemallocator", ] [[package]] name = "reth-codecs" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee9f6a4b8f4992c030c82fb8c2dcc872349452009b4127055f678f7d5a3dea3" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-genesis", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-trie", "arbitrary", "bytes", "modular-bitfield", - "op-alloy-consensus", + "parity-scale-codec", "reth-codecs-derive", "reth-zstd-compressors", "serde", @@ -10673,8 +10766,9 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07feedb2c0ec9ec76dd1210b7486904f139243dc9b264586994a6246955c1c73" dependencies = [ "proc-macro2 1.0.103", "quote 1.0.42", @@ -10683,8 +10777,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "eyre", "humantime-serde", @@ -10699,11 +10793,11 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "auto_impl", "reth-execution-types", "reth-primitives-traits", @@ -10712,11 +10806,12 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -10724,13 +10819,13 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-json-rpc 2.0.4", + "alloy-primitives 1.5.6", "alloy-provider", "alloy-rpc-types-engine", "alloy-transport", @@ -10738,7 +10833,7 @@ dependencies = [ "derive_more 2.1.0", "eyre", "futures", - "reqwest 0.12.24", + "reqwest 0.13.4", "reth-node-api", "reth-primitives-traits", "reth-tracing", @@ -10750,15 +10845,17 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "derive_more 2.1.0", "eyre", + "libc", "metrics", "page_size", "parking_lot", + "quanta", "reth-db-api", "reth-fs-util", "reth-libmdbx", @@ -10777,20 +10874,17 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "arbitrary", "arrayvec", "bytes", "derive_more 2.1.0", "metrics", "modular-bitfield", - "op-alloy-consensus", - "parity-scale-codec", "proptest", "reth-codecs", "reth-db-models", @@ -10806,12 +10900,12 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-genesis", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "boyer-moore-magiclen", "eyre", "reth-chainspec", @@ -10836,11 +10930,11 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "arbitrary", "bytes", "modular-bitfield", @@ -10851,10 +10945,10 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "discv5", "enr 0.13.0", @@ -10876,10 +10970,10 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "derive_more 2.1.0", "discv5", @@ -10900,10 +10994,10 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "dashmap 6.1.0", "data-encoding", "enr 0.13.0", @@ -10924,12 +11018,12 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "async-compression", "futures", @@ -10955,11 +11049,11 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "aes", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "block-padding", "byteorder", @@ -10983,11 +11077,11 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "eyre", "futures-util", @@ -11006,12 +11100,12 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "auto_impl", "futures", @@ -11029,44 +11123,22 @@ dependencies = [ "tokio", ] -[[package]] -name = "reth-engine-service" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" -dependencies = [ - "futures", - "pin-project", - "reth-chainspec", - "reth-consensus", - "reth-engine-primitives", - "reth-engine-tree", - "reth-evm", - "reth-network-p2p", - "reth-node-types", - "reth-payload-builder", - "reth-provider", - "reth-prune", - "reth-stages-api", - "reth-tasks", - "reth-trie-db", -] - [[package]] name = "reth-engine-tree" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-eip7928", - "alloy-eips", + "alloy-eips 2.0.4", "alloy-evm", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "alloy-rpc-types-engine", "crossbeam-channel", "derive_more 2.1.0", - "fixed-cache", "futures", + "indexmap 2.12.1", "metrics", "moka", "parking_lot", @@ -11078,6 +11150,7 @@ dependencies = [ "reth-errors", "reth-ethereum-primitives", "reth-evm", + "reth-execution-cache", "reth-execution-types", "reth-metrics", "reth-network-p2p", @@ -11097,7 +11170,6 @@ dependencies = [ "revm", "revm-primitives", "schnellru", - "smallvec", "thiserror 2.0.17", "tokio", "tracing", @@ -11105,10 +11177,10 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-rpc-types-engine", "eyre", "futures", @@ -11133,29 +11205,30 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "ethereum_ssz 0.10.4", "ethereum_ssz_derive 0.10.4", + "sha2 0.10.9", "snap", "thiserror 2.0.17", ] [[package]] name = "reth-era-downloader" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "bytes", "eyre", "futures-util", - "reqwest 0.12.24", + "reqwest 0.13.4", "reth-era", "reth-fs-util", "sha2 0.10.9", @@ -11164,11 +11237,11 @@ dependencies = [ [[package]] name = "reth-era-utils" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "eyre", "futures-util", "reth-db-api", @@ -11186,8 +11259,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -11197,11 +11270,11 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-chains", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "bytes", "derive_more 2.1.0", @@ -11225,14 +11298,15 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eip7928", + "alloy-eips 2.0.4", "alloy-hardforks 0.4.7", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "bytes", "derive_more 2.1.0", @@ -11246,8 +11320,8 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "clap", "eyre", @@ -11269,12 +11343,12 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "reth-chainspec", "reth-consensus", "reth-consensus-common", @@ -11285,30 +11359,28 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", - "alloy-rlp", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "reth-engine-primitives", "reth-ethereum-primitives", "reth-payload-primitives", "reth-primitives-traits", "serde", - "sha2 0.10.9", "thiserror 2.0.17", ] [[package]] name = "reth-ethereum-forks" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-eip2124", "alloy-hardforks 0.4.7", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "auto_impl", "once_cell", "rustc-hash 2.1.1", @@ -11316,12 +11388,12 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "alloy-rpc-types-engine", "reth-basic-payload-builder", @@ -11331,6 +11403,7 @@ dependencies = [ "reth-ethereum-primitives", "reth-evm", "reth-evm-ethereum", + "reth-execution-cache", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", @@ -11345,28 +11418,22 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "arbitrary", - "modular-bitfield", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", "reth-codecs", "reth-primitives-traits", - "reth-zstd-compressors", "serde", - "serde_with", ] [[package]] name = "reth-etl" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "rayon", "reth-db-api", @@ -11375,13 +11442,13 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-evm", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "auto_impl", "derive_more 2.1.0", "futures-util", @@ -11399,15 +11466,14 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-evm", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", - "derive_more 2.1.0", "reth-chainspec", "reth-ethereum-forks", "reth-ethereum-primitives", @@ -11418,13 +11484,31 @@ dependencies = [ "revm", ] +[[package]] +name = "reth-execution-cache" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" +dependencies = [ + "alloy-primitives 1.5.6", + "fixed-cache", + "metrics", + "parking_lot", + "reth-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-provider", + "reth-revm", + "reth-trie", + "tracing", +] + [[package]] name = "reth-execution-errors" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-evm", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "nybbles", "reth-storage-errors", @@ -11433,13 +11517,14 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-evm", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", + "alloy-rlp", "derive_more 2.1.0", "reth-ethereum-primitives", "reth-primitives-traits", @@ -11451,12 +11536,12 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "eyre", "futures", "itertools 0.14.0", @@ -11489,11 +11574,11 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "reth-chain-state", "reth-execution-types", "reth-primitives-traits", @@ -11503,8 +11588,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "serde", "serde_json", @@ -11513,11 +11598,11 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "alloy-rpc-types-debug", "eyre", @@ -11541,8 +11626,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "bytes", "futures", @@ -11561,11 +11646,12 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "bitflags 2.13.0", "byteorder", + "crossbeam-queue", "dashmap 6.1.0", "derive_more 2.1.0", "parking_lot", @@ -11577,8 +11663,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "bindgen", "cc", @@ -11586,33 +11672,34 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "futures", "metrics", "metrics-derive", + "reth-primitives-traits", "tokio", "tokio-util", ] [[package]] name = "reth-net-banlist" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "ipnet", ] [[package]] name = "reth-net-nat" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "futures-util", "if-addrs", - "reqwest 0.12.24", + "reqwest 0.13.4", "serde_with", "thiserror 2.0.17", "tokio", @@ -11621,12 +11708,12 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "aquamarine", "auto_impl", @@ -11668,6 +11755,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", + "socket2 0.6.4", "thiserror 2.0.17", "tokio", "tokio-stream", @@ -11677,13 +11765,13 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-admin", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "auto_impl", "derive_more 2.1.0", "enr 0.13.0", @@ -11702,12 +11790,12 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "auto_impl", "derive_more 2.1.0", "futures", @@ -11724,10 +11812,10 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "enr 0.13.0", "secp256k1 0.30.0", @@ -11739,8 +11827,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -11753,8 +11841,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "anyhow", "bincode", @@ -11770,8 +11858,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -11794,12 +11882,12 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-provider", "alloy-rpc-types", "alloy-rpc-types-engine", @@ -11822,7 +11910,6 @@ dependencies = [ "reth-downloaders", "reth-engine-local", "reth-engine-primitives", - "reth-engine-service", "reth-engine-tree", "reth-engine-util", "reth-evm", @@ -11863,12 +11950,12 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "clap", "derive_more 2.1.0", @@ -11901,12 +11988,12 @@ dependencies = [ "reth-stages-types", "reth-storage-api", "reth-storage-errors", + "reth-tasks", "reth-tracing", "reth-tracing-otlp", "reth-transaction-pool", "secp256k1 0.30.0", "serde", - "shellexpand", "strum 0.27.2", "thiserror 2.0.17", "toml 0.9.8", @@ -11918,13 +12005,13 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.4", "alloy-network", "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "eyre", "reth-chainspec", "reth-engine-local", @@ -11956,11 +12043,11 @@ dependencies = [ [[package]] name = "reth-node-ethstats" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "chrono", "futures-util", "reth-chain-state", @@ -11980,12 +12067,12 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "derive_more 2.1.0", "futures", @@ -12004,8 +12091,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "bytes", "eyre", @@ -12017,7 +12104,7 @@ dependencies = [ "metrics-process", "metrics-util", "procfs", - "reqwest 0.12.24", + "reqwest 0.13.4", "reth-metrics", "reth-tasks", "tikv-jemalloc-ctl", @@ -12028,8 +12115,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "reth-chainspec", "reth-db-api", @@ -12040,20 +12127,23 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types", + "derive_more 2.1.0", "futures-util", "metrics", "reth-chain-state", "reth-ethereum-engine-primitives", + "reth-execution-cache", "reth-metrics", "reth-payload-builder-primitives", "reth-payload-primitives", "reth-primitives-traits", + "reth-trie-parallel", "tokio", "tokio-stream", "tracing", @@ -12061,8 +12151,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "pin-project", "reth-payload-primitives", @@ -12073,16 +12163,16 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", + "alloy-rlp", "alloy-rpc-types-engine", "auto_impl", "either", - "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -12090,59 +12180,41 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", + "sha2 0.10.9", "thiserror 2.0.17", "tokio", ] [[package]] name = "reth-payload-validator" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-rpc-types-engine", "reth-primitives-traits", ] -[[package]] -name = "reth-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives 1.6.0", - "alloy-rlp", - "c-kzg", - "once_cell", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-static-file-types", -] - [[package]] name = "reth-primitives-traits" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83138080a41e35a6aa876410ca67231fb35da7e2ca494315d8b8be15e9ed9c0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-genesis", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-trie", "arbitrary", - "auto_impl", "byteorder", "bytes", "dashmap 6.1.0", "derive_more 2.1.0", "modular-bitfield", "once_cell", - "op-alloy-consensus", "proptest", "proptest-arbitrary-interop", "rayon", @@ -12152,18 +12224,18 @@ dependencies = [ "revm-state", "secp256k1 0.30.0", "serde", - "serde_with", "thiserror 2.0.17", ] [[package]] name = "reth-provider" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-genesis", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "eyre", "itertools 0.14.0", @@ -12203,12 +12275,12 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "itertools 0.14.0", "metrics", "rayon", @@ -12232,10 +12304,10 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "arbitrary", "derive_more 2.1.0", "modular-bitfield", @@ -12267,10 +12339,12 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", + "alloy-rlp", + "alloy-rpc-types-debug", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -12280,17 +12354,16 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-dyn-abi", - "alloy-eip7928", - "alloy-eips", + "alloy-eips 2.0.4", "alloy-evm", "alloy-genesis", "alloy-network", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "alloy-rpc-client", "alloy-rpc-types", @@ -12298,11 +12371,11 @@ dependencies = [ "alloy-rpc-types-beacon", "alloy-rpc-types-debug", "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde", + "alloy-serde 2.0.4", "alloy-signer", "alloy-signer-local", "async-trait", @@ -12340,6 +12413,7 @@ dependencies = [ "reth-rpc-server-types", "reth-storage-api", "reth-tasks", + "reth-tracing", "reth-transaction-pool", "reth-trie-common", "revm", @@ -12357,38 +12431,38 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eip7928", - "alloy-eips", + "alloy-eips 2.0.4", "alloy-genesis", - "alloy-json-rpc", - "alloy-primitives 1.6.0", + "alloy-json-rpc 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde", + "alloy-serde 2.0.4", "jsonrpsee 0.26.0", "reth-chain-state", "reth-engine-primitives", "reth-network-peers", "reth-rpc-eth-api", "reth-trie-common", + "serde", "serde_json", ] [[package]] name = "reth-rpc-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-network", "alloy-provider", @@ -12406,9 +12480,11 @@ dependencies = [ "reth-metrics", "reth-network-api", "reth-node-core", + "reth-payload-primitives", "reth-primitives-traits", "reth-rpc", "reth-rpc-api", + "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-layer", @@ -12428,32 +12504,32 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-evm", - "alloy-json-rpc", + "alloy-json-rpc 2.0.4", "alloy-network", - "alloy-primitives 1.6.0", - "alloy-rpc-types-eth", - "alloy-signer", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", "auto_impl", "dyn-clone", "jsonrpsee-types 0.26.0", - "reth-ethereum-primitives", "reth-evm", "reth-primitives-traits", + "reth-rpc-traits", "thiserror 2.0.17", ] [[package]] name = "reth-rpc-engine-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", + "alloy-rlp", "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core 0.26.0", @@ -12479,20 +12555,21 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", + "alloy-consensus 2.0.4", "alloy-dyn-abi", - "alloy-eips", + "alloy-eip7928", + "alloy-eips 2.0.4", "alloy-evm", - "alloy-json-rpc", + "alloy-json-rpc 2.0.4", "alloy-network", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-rpc-types-mev", - "alloy-serde", + "alloy-serde 2.0.4", "async-trait", "auto_impl", "dyn-clone", @@ -12517,22 +12594,23 @@ dependencies = [ "reth-trie-common", "revm", "revm-inspectors", + "serde_json", "tokio", "tracing", ] [[package]] name = "reth-rpc-eth-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", "alloy-evm", "alloy-network", - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rpc-client", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 2.0.4", "alloy-sol-types", "alloy-transport", "derive_more 2.1.0", @@ -12542,7 +12620,7 @@ dependencies = [ "jsonrpsee-types 0.26.0", "metrics", "rand 0.9.2", - "reqwest 0.12.24", + "reqwest 0.13.4", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -12571,8 +12649,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "alloy-rpc-types-engine", "http 1.4.0", @@ -12585,11 +12663,11 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", @@ -12599,21 +12677,38 @@ dependencies = [ "strum 0.27.2", ] +[[package]] +name = "reth-rpc-traits" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706ca5cd7bc99bdf82d89f7f3215242a9f901128ab4c09bb88b0640a0cf40b77" +dependencies = [ + "alloy-consensus 2.0.4", + "alloy-network", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", + "alloy-signer", + "reth-primitives-traits", + "thiserror 2.0.17", +] + [[package]] name = "reth-stages" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", - "bincode", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", + "alloy-rlp", "eyre", "futures-util", "itertools 0.14.0", "num-traits", + "page_size", "rayon", - "reqwest 0.12.24", + "reqwest 0.13.4", + "reth-chainspec", "reth-codecs", "reth-config", "reth-consensus", @@ -12627,6 +12722,7 @@ dependencies = [ "reth-execution-types", "reth-exex", "reth-fs-util", + "reth-libmdbx", "reth-network-p2p", "reth-primitives-traits", "reth-provider", @@ -12647,15 +12743,16 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "aquamarine", "auto_impl", "futures-util", "metrics", + "reth-codecs", "reth-consensus", "reth-errors", "reth-metrics", @@ -12674,10 +12771,10 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "arbitrary", "bytes", "modular-bitfield", @@ -12688,10 +12785,10 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "parking_lot", "rayon", "reth-codecs", @@ -12708,10 +12805,10 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "clap", "derive_more 2.1.0", "fixed-map", @@ -12723,12 +12820,12 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", @@ -12747,13 +12844,14 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "derive_more 2.1.0", + "reth-codecs", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", @@ -12764,17 +12862,20 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "auto_impl", - "dyn-clone", + "crossbeam-utils", + "dashmap 6.1.0", "futures-util", + "libc", "metrics", + "parking_lot", "pin-project", "rayon", "reth-metrics", "thiserror 2.0.17", + "thread-priority", "tokio", "tracing", "tracing-futures", @@ -12782,8 +12883,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "tokio", "tokio-stream", @@ -12792,8 +12893,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "clap", "eyre", @@ -12809,8 +12910,8 @@ dependencies = [ [[package]] name = "reth-tracing-otlp" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ "clap", "eyre", @@ -12827,17 +12928,18 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "aquamarine", "auto_impl", "bitflags 2.13.0", "futures-util", + "imbl", "metrics", "parking_lot", "pin-project", @@ -12870,12 +12972,12 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-eips 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", "alloy-trie", "auto_impl", @@ -12896,14 +12998,14 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-consensus", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-primitives 1.5.6", "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 2.0.4", + "alloy-serde 2.0.4", "alloy-trie", "arbitrary", "arrayvec", @@ -12923,10 +13025,10 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "metrics", "parking_lot", "reth-db-api", @@ -12943,12 +13045,15 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-eip7928", + "alloy-evm", + "alloy-primitives 1.5.6", "alloy-rlp", "crossbeam-channel", + "crossbeam-utils", "derive_more 2.1.0", "itertools 0.14.0", "metrics", @@ -12960,44 +13065,46 @@ dependencies = [ "reth-storage-errors", "reth-tasks", "reth-trie", - "reth-trie-common", - "reth-trie-sparse", + "revm-state", "thiserror 2.0.17", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.2.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.2.0#88505c7fcbfdebfd3b56d88c86b62e950043c6c4" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "alloy-rlp", "alloy-trie", - "auto_impl", "metrics", "rayon", "reth-execution-errors", "reth-metrics", "reth-primitives-traits", "reth-trie-common", + "serde", + "serde_json", + "slotmap", "smallvec", "tracing", ] [[package]] name = "reth-zstd-compressors" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth?rev=d6324d63e27ef6b7c49cdc9b1977c1b808234c7b#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a1f121117f149412446e92c5442d4a9722e04e7760ac3f62d518f4213634d9" dependencies = [ "zstd 0.13.3", ] [[package]] name = "revm" -version = "34.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2aabdebaa535b3575231a88d72b642897ae8106cf6b0d12eafc6bfdf50abfc7" +checksum = "91202d39dbe8e8d10e9e8f2b76c30da68ecd1d25be69ba6d853ad0d03a3a398a" dependencies = [ "revm-bytecode", "revm-context", @@ -13014,9 +13121,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "8.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d1e5c1eaa44d39d537f668bc5c3409dc01e5c8be954da6c83370bbdf006457" +checksum = "bdbb3a3d735efa94c91f2ef6bf20a35f99a77bc78f3e25bd758336901bdf9661" dependencies = [ "bitvec", "phf 0.13.1", @@ -13026,9 +13133,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "13.0.0" +version = "16.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "892ff3e6a566cf8d72ffb627fdced3becebbd9ba64089c25975b9b028af326a5" +checksum = "c5f68d928d8b228e0faeb1c6ed75c4fde7d124f1ddf9119b67e7a0ad4041237d" dependencies = [ "bitvec", "cfg-if", @@ -13043,9 +13150,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "14.0.0" +version = "17.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57f61cc6d23678c4840af895b19f8acfbbd546142ec8028b6526c53cc1c16c98" +checksum = "1f3758e6167c4ba7a59a689c519a047edaefcd4c37d74f279b93ed87bc8aece4" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -13059,11 +13166,11 @@ dependencies = [ [[package]] name = "revm-database" -version = "10.0.0" +version = "13.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529528d0b05fe646be86223032c3e77aa8b05caa2a35447d538c55965956a511" +checksum = "c281a1f11d3bcb8c0bba1199ed6bcb001d1aeb3d4fb366819e14f88723989a4e" dependencies = [ - "alloy-eips", + "alloy-eips 1.8.3", "revm-bytecode", "revm-database-interface", "revm-primitives", @@ -13073,9 +13180,9 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "9.0.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7bf93ac5b91347c057610c0d96e923db8c62807e03f036762d03e981feddc1d" +checksum = "d89efb9832a4e3742bb4ded5f7fe5bf905e8860e69427d4dfec153484fc6d304" dependencies = [ "auto_impl", "either", @@ -13087,9 +13194,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "15.0.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cd0e43e815a85eded249df886c4badec869195e70cdd808a13cfca2794622d2" +checksum = "783e903d6922b7f5f9a940d1bb229530502d2924b1aed9d5ca5a94ebf065d460" dependencies = [ "auto_impl", "derive-where", @@ -13106,9 +13213,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "15.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3ccad59db91ef93696536a0dbaf2f6f17cfe20d4d8843ae118edb7e97947ef" +checksum = "8216ad58422090d0daa9eb430e0a081f7ad07e7fd30681dee71f8420c99624e0" dependencies = [ "auto_impl", "either", @@ -13124,12 +13231,12 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.34.4" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "699b3689517761b838844d715482dfa6059c20a0a5a68bc363e1604d29918555" +checksum = "731b682530a732ef9c189ef831589128e2ce34d4a306c956322ae2dffe009715" dependencies = [ - "alloy-primitives 1.6.0", - "alloy-rpc-types-eth", + "alloy-primitives 1.5.6", + "alloy-rpc-types-eth 2.0.4", "alloy-rpc-types-trace", "alloy-sol-types", "anstyle", @@ -13144,9 +13251,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "32.0.0" +version = "35.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11406408597bc249392d39295831c4b641b3a6f5c471a7c41104a7a1e3564c07" +checksum = "1ece9f41b69658c15d748288a4dbdfc06a63f3ce93d983af440de3f1631dce6a" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -13157,9 +13264,9 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "32.1.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2ec11f45deec71e4945e1809736bb20d454285f9167ab53c5159dae1deb603f" +checksum = "a346a8cc6c8c39bd65306641c692191299c0a7b63d38810e39e8fe9b92378660" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -13168,11 +13275,13 @@ dependencies = [ "ark-serialize 0.5.0", "arrayref", "aurora-engine-modexp", + "aws-lc-rs", "blst", "c-kzg", "cfg-if", "k256 0.13.4", "p256", + "revm-context-interface", "revm-primitives", "ripemd", "secp256k1 0.31.1", @@ -13181,11 +13290,11 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "22.1.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfb5ce6cf18b118932bcdb7da05cd9c250f2cb9f64131396b55f3fe3537c35" +checksum = "0c99bda77d9661521ba0b4bc04558c6692074f01e65dd420fa3b893033d9b8a2" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "num_enum", "once_cell", "serde", @@ -13193,9 +13302,9 @@ dependencies = [ [[package]] name = "revm-state" -version = "9.0.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "311720d4f0f239b041375e7ddafdbd20032a33b7bae718562ea188e188ed9fd3" +checksum = "c32490ed687dba31c3c882beb8c20408bdd30ef96690d8f145b0ee9a87040bfe" dependencies = [ "alloy-eip7928", "bitflags 2.13.0", @@ -13235,7 +13344,7 @@ dependencies = [ "cfg-if", "getrandom 0.2.16", "libc", - "untrusted", + "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -13619,7 +13728,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ "ring", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -13631,7 +13740,7 @@ dependencies = [ "aws-lc-rs", "ring", "rustls-pki-types", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -13664,6 +13773,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd29631678d6fb0903b69223673e122c32e9ae559d0960a38d574695ebc0ea15" +[[package]] +name = "safe_arch" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +dependencies = [ + "bytemuck", +] + [[package]] name = "same-file" version = "1.0.6" @@ -13777,7 +13895,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ "ring", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -14367,6 +14485,15 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +[[package]] +name = "slotmap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" +dependencies = [ + "version_check 0.9.5", +] + [[package]] name = "small_btree" version = "0.1.0" @@ -14415,12 +14542,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -15064,7 +15191,7 @@ dependencies = [ name = "sysperf" version = "0.1.0" dependencies = [ - "alloy-primitives 1.6.0", + "alloy-primitives 1.5.6", "rand 0.8.5", "rayon", "sysinfo 0.33.1", @@ -15182,14 +15309,14 @@ name = "test-relay" version = "0.1.0" dependencies = [ "ahash", - "alloy-consensus", - "alloy-json-rpc", - "alloy-primitives 1.6.0", + "alloy-consensus 2.0.4", + "alloy-json-rpc 2.0.4", + "alloy-primitives 1.5.6", "alloy-provider", "alloy-rpc-types-beacon", "clap", "ctor", - "ethereum_ssz 0.9.1", + "ethereum_ssz 0.10.4", "eyre", "flate2", "lazy_static", @@ -15266,6 +15393,20 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "thread-priority" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d2e834949be5111506bb252643498af1514f600d9e1dceedaa42afae155b67f" +dependencies = [ + "bitflags 2.13.0", + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.62.2", +] + [[package]] name = "thread_local" version = "1.1.9" @@ -15402,9 +15543,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", @@ -15412,16 +15553,16 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "socket2 0.6.4", "tokio-macros", "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2 1.0.103", "quote 1.0.42", @@ -15507,6 +15648,7 @@ dependencies = [ "futures-util", "log", "rustls 0.23.35", + "rustls-native-certs 0.8.2", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", @@ -15562,7 +15704,7 @@ dependencies = [ "toml_datetime 0.7.3", "toml_parser", "toml_writer", - "winnow 0.7.14", + "winnow", ] [[package]] @@ -15594,7 +15736,7 @@ dependencies = [ "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", - "winnow 0.7.14", + "winnow", ] [[package]] @@ -15606,7 +15748,7 @@ dependencies = [ "indexmap 2.12.1", "toml_datetime 0.7.3", "toml_parser", - "winnow 0.7.14", + "winnow", ] [[package]] @@ -15615,7 +15757,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ - "winnow 0.7.14", + "winnow", ] [[package]] @@ -15867,9 +16009,9 @@ dependencies = [ [[package]] name = "tracing-logfmt" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1f47d22deb79c3f59fcf2a1f00f60cbdc05462bf17d1cd356c1fefa3f444bd" +checksum = "a250055a3518b5efba928a18ffac8d32d42ea607a9affff4532144cd5b2e378e" dependencies = [ "time", "tracing", @@ -15959,19 +16101,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373495c23db675a5192de8b610395e1bec324d596f9e6111192ce903dc11403a" dependencies = [ "alloy-primitives 0.8.26", - "ethereum_hashing", + "ethereum_hashing 0.7.0", "smallvec", ] [[package]] name = "tree_hash" -version = "0.10.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee44f4cef85f88b4dea21c0b1f58320bdf35715cf56d840969487cff00613321" +checksum = "f7fd51aa83d2eb83b04570808430808b5d24fdbf479a4d5ac5dee4a2e2dd2be4" dependencies = [ - "alloy-primitives 1.6.0", - "ethereum_hashing", - "ethereum_ssz 0.9.1", + "alloy-primitives 1.5.6", + "ethereum_hashing 0.8.0", + "ethereum_ssz 0.10.4", "smallvec", "typenum", ] @@ -15990,11 +16132,11 @@ dependencies = [ [[package]] name = "tree_hash_derive" -version = "0.10.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bee2ea1551f90040ab0e34b6fb7f2fa3bad8acc925837ac654f2c78a13e3089" +checksum = "8840ad4d852e325d3afa7fde8a50b2412f89dce47d7eb291c0cc7f87cd040f38" dependencies = [ - "darling 0.20.11", + "darling 0.23.0", "proc-macro2 1.0.103", "quote 1.0.42", "syn 2.0.117", @@ -16223,6 +16365,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "untrusted" version = "0.9.0" @@ -16477,9 +16625,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a" dependencies = [ "cfg-if", "once_cell", @@ -16490,22 +16638,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "503b14d284f2c8dac03b819967e155ea753f573586193b2b2c95990cb5d69280" dependencies = [ - "cfg-if", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d" dependencies = [ "quote 1.0.42", "wasm-bindgen-macro-support", @@ -16513,9 +16658,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd" dependencies = [ "bumpalo", "proc-macro2 1.0.103", @@ -16526,9 +16671,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f" dependencies = [ "unicode-ident", ] @@ -16568,6 +16713,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wasmparser" version = "0.244.0" @@ -16596,9 +16754,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d" dependencies = [ "js-sys", "wasm-bindgen", @@ -16666,6 +16824,16 @@ dependencies = [ "wasite", ] +[[package]] +name = "wide" +version = "0.7.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +dependencies = [ + "bytemuck", + "safe_arch", +] + [[package]] name = "widestring" version = "1.2.1" @@ -17272,15 +17440,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winnow" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" -dependencies = [ - "memchr", -] - [[package]] name = "winreg" version = "0.50.0" @@ -17589,7 +17748,7 @@ dependencies = [ "aes", "byteorder", "bzip2", - "constant_time_eq", + "constant_time_eq 0.1.5", "crc32fast", "crossbeam-utils", "flate2", diff --git a/Cargo.toml b/Cargo.toml index 594a7f0fe..fccf035af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [workspace.package] version = "0.1.0" edition = "2021" -rust-version = "1.88" +rust-version = "1.93" license = "MIT OR Apache-2.0" homepage = "https://github.com/flashbots/rbuilder" repository = "https://github.com/flashbots/rbuilder" @@ -70,62 +70,64 @@ codegen-units = 1 incremental = false [workspace.dependencies] -reth = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-db-common = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b", features = [ +reth = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-cli-util = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-primitives = { package = "reth-ethereum-primitives", git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-primitives-traits = { version = "0.3.1", default-features = false } +reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0", features = [ "test-utils", ] } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-evm = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } - -# compatible with reth d6324d63e27ef6b7c49cdc9b1977c1b808234c7b dependencies -revm = { version = "34.0.0", features = [ +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v2.2.0" } + +# compatible with reth v2.2.0 dependencies +revm = { version = "=38.0.0", features = [ "std", "secp256k1", "optional_balance_check", ], default-features = false } -revm-inspectors = { version = "0.34.2", default-features = false } +revm-inspectors = { version = "=0.39.0", default-features = false } -ethereum_ssz_derive = "0.9.0" -ethereum_ssz = "0.9.0" +ethereum_ssz_derive = "0.10" +ethereum_ssz = "0.10" -alloy-primitives = { version = "1.5.6", default-features = false, features = [ +alloy-primitives = { version = "=1.5.6", default-features = false, features = [ "getrandom", + "map-foldhash", ] } -alloy-rlp = "0.3.13" -alloy-chains = "0.2.5" -alloy-trie = { version = "0.9.4", default-features = false } -alloy-evm = { version = "0.27.2", default-features = false } -alloy-provider = { version = "1.6.3", features = ["ipc", "pubsub", "ws"] } -alloy-eips = { version = "1.6.3" } -alloy-rpc-types = { version = "1.6.3" } -alloy-json-rpc = { version = "1.6.3" } -alloy-network = { version = "1.6.3" } -alloy-network-primitives = { version = "1.6.3" } -alloy-node-bindings = { version = "1.6.3" } -alloy-consensus = { version = "1.6.3", features = ["kzg"] } -alloy-rpc-types-beacon = { version = "1.6.3", features = ["ssz"] } -alloy-rpc-types-engine = { version = "1.6.3", features = ["ssz"] } -alloy-rpc-types-eth = { version = "1.6.3" } -alloy-signer = { version = "1.6.3" } -alloy-signer-local = { version = "1.6.3" } +alloy-rlp = { version = "=0.3.13", default-features = false, features = ["core-net"] } +alloy-chains = { version = "=0.2.33", default-features = false } +alloy-trie = { version = "=0.9.4", default-features = false } +alloy-evm = { version = "=0.34.0", default-features = false } +alloy-provider = { version = "=2.0.4", features = ["ipc", "pubsub", "ws"] } +alloy-eips = { version = "=2.0.4" } +alloy-rpc-types = { version = "=2.0.4" } +alloy-json-rpc = { version = "=2.0.4" } +alloy-network = { version = "=2.0.4" } +alloy-network-primitives = { version = "=2.0.4" } +alloy-node-bindings = { version = "=2.0.4" } +alloy-consensus = { version = "=2.0.4", features = ["kzg"] } +alloy-rpc-types-beacon = { version = "=2.0.4", features = ["ssz"] } +alloy-rpc-types-engine = { version = "=2.0.4", features = ["ssz"] } +alloy-rpc-types-eth = { version = "=2.0.4" } +alloy-signer = { version = "=2.0.4" } +alloy-signer-local = { version = "=2.0.4" } # Version required by ethereum-consensus beacon-api-client mev-share-sse = { git = "https://github.com/paradigmxyz/mev-share-rs", rev = "9eb2b0138ab3202b9eb3af4b19c7b3bf40b0faa8", default-features = false } diff --git a/crates/eth-sparse-mpt/src/lib.rs b/crates/eth-sparse-mpt/src/lib.rs index ac7e3a545..f2e46ee28 100644 --- a/crates/eth-sparse-mpt/src/lib.rs +++ b/crates/eth-sparse-mpt/src/lib.rs @@ -8,7 +8,9 @@ use crate::utils::{HashMap, HashSet}; use alloy_primitives::{Address, Bytes, B256}; -use reth_provider::{providers::ConsistentDbView, BlockReader, DatabaseProviderFactory}; +use reth_provider::{ + providers::ConsistentDbView, BlockReader, DatabaseProviderFactory, StorageSettingsCache, +}; use revm::database::BundleState; use std::sync::Arc; @@ -107,6 +109,7 @@ pub fn prefetch_tries_for_accounts<'a, Provider>( ) -> Result where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { match version { ETHSpareMPTVersion::V1 => { @@ -166,6 +169,7 @@ pub fn calculate_account_proofs_with_sparse_trie( ) where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let calculate = || match version { ETHSpareMPTVersion::V1 => ( @@ -221,6 +225,7 @@ pub fn calculate_root_hash_with_sparse_trie( ) -> (Result, SparseTrieMetrics) where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { if let Some(thread_pool) = thread_pool { thread_pool.rayon_pool.install(|| { @@ -255,6 +260,7 @@ pub fn calculate_root_hash_with_sparse_trie_internal( ) -> (Result, SparseTrieMetrics) where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { match version { ETHSpareMPTVersion::V1 => { diff --git a/crates/eth-sparse-mpt/src/utils.rs b/crates/eth-sparse-mpt/src/utils.rs index 42a31abfa..6446acf51 100644 --- a/crates/eth-sparse-mpt/src/utils.rs +++ b/crates/eth-sparse-mpt/src/utils.rs @@ -28,6 +28,14 @@ pub fn rlp_pointer(rlp_encode: Bytes) -> Bytes { } } +pub fn convert_nibbles_to_reth_nybbles(key: Nibbles) -> Nibbles { + key +} + +pub fn convert_reth_nybbles_to_nibbles(key: Nibbles) -> Nibbles { + key +} + pub fn concat_path(p1: &Nibbles, p2: &[u8]) -> Nibbles { let mut result = *p1; result.extend_from_slice_unchecked(p2); @@ -52,25 +60,29 @@ pub fn extract_prefix_and_suffix(p1: &Nibbles, p2: &Nibbles) -> (Nibbles, Nibble #[inline] pub fn encode_leaf(key: &Nibbles, value: &[u8], out: &mut dyn BufMut) { - LeafNodeRef { key, value }.encode(out) + let key = convert_nibbles_to_reth_nybbles(key.clone()); + LeafNodeRef { key: &key, value }.encode(out) } pub fn encode_len_leaf(key: &Nibbles, value: &[u8]) -> usize { - LeafNodeRef { key, value }.length() + let key = convert_nibbles_to_reth_nybbles(key.clone()); + LeafNodeRef { key: &key, value }.length() } #[inline] pub fn encode_extension(key: &Nibbles, child_rlp_pointer: &[u8], out: &mut dyn BufMut) { + let key = convert_nibbles_to_reth_nybbles(key.clone()); ExtensionNodeRef { - key, + key: &key, child: child_rlp_pointer, } .encode(out) } pub fn encode_len_extension(key: &Nibbles, child_rlp_pointer: &[u8]) -> usize { + let key = convert_nibbles_to_reth_nybbles(key.clone()); ExtensionNodeRef { - key, + key: &key, child: child_rlp_pointer, } .length() diff --git a/crates/eth-sparse-mpt/src/v1/reth_sparse_trie/mod.rs b/crates/eth-sparse-mpt/src/v1/reth_sparse_trie/mod.rs index 00b9a1ad7..e765f5a01 100644 --- a/crates/eth-sparse-mpt/src/v1/reth_sparse_trie/mod.rs +++ b/crates/eth-sparse-mpt/src/v1/reth_sparse_trie/mod.rs @@ -1,7 +1,9 @@ use alloy_primitives::B256; use change_set::{prepare_change_set, prepare_change_set_for_prefetch}; use hash::RootHashError; -use reth_provider::{providers::ConsistentDbView, BlockReader, DatabaseProviderFactory}; +use reth_provider::{ + providers::ConsistentDbView, BlockReader, DatabaseProviderFactory, StorageSettingsCache, +}; use revm::database::BundleState; use std::time::{Duration, Instant}; @@ -63,6 +65,7 @@ pub fn prefetch_tries_for_accounts<'a, Provider>( ) -> Result where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let mut metrics = SparseTrieMetrics::default(); @@ -108,6 +111,7 @@ pub fn calculate_root_hash_with_sparse_trie( ) -> (Result, SparseTrieMetrics) where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let mut metrics = SparseTrieMetrics::default(); diff --git a/crates/eth-sparse-mpt/src/v1/reth_sparse_trie/trie_fetcher/mod.rs b/crates/eth-sparse-mpt/src/v1/reth_sparse_trie/trie_fetcher/mod.rs index 5a2910b5d..acfa7bb8f 100644 --- a/crates/eth-sparse-mpt/src/v1/reth_sparse_trie/trie_fetcher/mod.rs +++ b/crates/eth-sparse-mpt/src/v1/reth_sparse_trie/trie_fetcher/mod.rs @@ -11,6 +11,7 @@ use reth_errors::ProviderError; use reth_execution_errors::trie::StateProofError; use reth_provider::{ providers::ConsistentDbView, BlockReader, DBProvider, DatabaseProviderFactory, + StorageSettingsCache, }; use reth_trie::{proof::Proof, MultiProof as RethMultiProof, MultiProofTargets, EMPTY_ROOT_HASH}; use reth_trie_db::{DatabaseHashedCursorFactory, DatabaseTrieCursorFactory}; @@ -61,6 +62,7 @@ pub struct TrieFetcher { impl TrieFetcher where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { pub fn new(consistent_db_view: ConsistentDbView) -> Self { Self { consistent_db_view } @@ -77,14 +79,16 @@ where .map(|targets| -> Result { let start = Instant::now(); let provider = self.consistent_db_view.provider_ro()?; - let proof = Proof::new( - DatabaseTrieCursorFactory::new(provider.tx_ref()), - DatabaseHashedCursorFactory::new(provider.tx_ref()), - ); let targets_accounts = targets.len(); let targets_slots = targets.values().map(|v| v.len()).sum::(); - let reth_multiproof = proof.multiproof(targets)?; + let reth_multiproof = reth_trie_db::with_adapter!(provider, |A| { + Proof::new( + DatabaseTrieCursorFactory::<_, A>::new(provider.tx_ref()), + DatabaseHashedCursorFactory::new(provider.tx_ref()), + ) + .multiproof(targets) + })?; let result = convert_reth_multiproof(reth_multiproof, &all_requested_accounts); let time_ms = start.elapsed().as_micros() as f64 / 1000.0; trace!( diff --git a/crates/eth-sparse-mpt/src/v1/sparse_mpt/fixed_trie.rs b/crates/eth-sparse-mpt/src/v1/sparse_mpt/fixed_trie.rs index 935ead06b..dca46b165 100644 --- a/crates/eth-sparse-mpt/src/v1/sparse_mpt/fixed_trie.rs +++ b/crates/eth-sparse-mpt/src/v1/sparse_mpt/fixed_trie.rs @@ -1,4 +1,4 @@ -use crate::utils::{fast_hash, hash_map_with_capacity, HashMap}; +use crate::utils::{convert_reth_nybbles_to_nibbles, fast_hash, hash_map_with_capacity, HashMap}; use alloy_primitives::{keccak256, Bytes, B256}; use alloy_rlp::Decodable; use alloy_trie::nodes::{ @@ -89,7 +89,7 @@ pub struct FixedLeafNode { impl From for FixedLeafNode { fn from(alloy_leaf_node: AlloyLeafNode) -> Self { Self { - key: alloy_leaf_node.key, + key: convert_reth_nybbles_to_nibbles(alloy_leaf_node.key), value: alloy_leaf_node.value.into(), } } @@ -133,7 +133,7 @@ pub struct FixedExtensionNode { impl From for FixedExtensionNode { fn from(alloy_extension_node: AlloyExtensionNode) -> Self { Self { - key: alloy_extension_node.key, + key: convert_reth_nybbles_to_nibbles(alloy_extension_node.key), child: Bytes::copy_from_slice(alloy_extension_node.child.as_ref()), } } diff --git a/crates/eth-sparse-mpt/src/v2/fetch.rs b/crates/eth-sparse-mpt/src/v2/fetch.rs index b8540e069..62b508022 100644 --- a/crates/eth-sparse-mpt/src/v2/fetch.rs +++ b/crates/eth-sparse-mpt/src/v2/fetch.rs @@ -9,22 +9,28 @@ use alloy_primitives::B256; use nybbles::Nibbles; use reth_provider::{ providers::ConsistentDbView, BlockReader, DBProvider, DatabaseProviderFactory, + StorageSettingsCache, }; use reth_trie::{ proof::{Proof, StorageProof}, MultiProofTargets, StateRoot, }; -use reth_trie_db::{DatabaseHashedCursorFactory, DatabaseStateRoot, DatabaseTrieCursorFactory}; +use reth_trie_db::{DatabaseHashedCursorFactory, DatabaseTrieCursorFactory}; use super::SharedCacheV2; pub fn check_state_root_in_db( - provider: &impl DBProvider, + provider: &(impl DBProvider + StorageSettingsCache), expected_state_root: B256, ) -> Result<(), SparseTrieError> { - let db_state_root = StateRoot::from_tx(provider.tx_ref()) + let db_state_root = reth_trie_db::with_adapter!(provider, |A| { + StateRoot::new( + DatabaseTrieCursorFactory::<_, A>::new(provider.tx_ref()), + DatabaseHashedCursorFactory::new(provider.tx_ref()), + ) .root() - .map_err(SparseTrieError::other)?; + }) + .map_err(SparseTrieError::other)?; if db_state_root == expected_state_root { Ok(()) } else { @@ -66,6 +72,7 @@ impl MissingNodesFetcher { ) -> Result where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let fetched_nodes: Arc> = Default::default(); @@ -81,14 +88,15 @@ impl MissingNodesFetcher { check_state_root_in_db(&provider, parent_state_root)?; } - let proof = StorageProof::new_hashed( - DatabaseTrieCursorFactory::new(provider.tx_ref()), - DatabaseHashedCursorFactory::new(provider.tx_ref()), - hashed_address, - ); - let storge_multiproof = proof + let storge_multiproof = reth_trie_db::with_adapter!(provider, |A| { + StorageProof::new_hashed( + DatabaseTrieCursorFactory::<_, A>::new(provider.tx_ref()), + DatabaseHashedCursorFactory::new(provider.tx_ref()), + hashed_address, + ) .storage_multiproof(targets) - .map_err(SparseTrieError::other)?; + }) + .map_err(SparseTrieError::other)?; *fetched_nodes.lock() += requested_proofs.len(); for requested_proof in requested_proofs { let proof_for_node = storge_multiproof @@ -112,12 +120,15 @@ impl MissingNodesFetcher { check_state_root_in_db(&provider, parent_state_root)? } - let proof = Proof::new( - DatabaseTrieCursorFactory::new(provider.tx_ref()), - DatabaseHashedCursorFactory::new(provider.tx_ref()), - ); let targets = MultiProofTargets::accounts(std::mem::take(&mut self.account_proof_targets)); - let multiproof = proof.multiproof(targets).map_err(SparseTrieError::other)?; + let multiproof = reth_trie_db::with_adapter!(provider, |A| { + Proof::new( + DatabaseTrieCursorFactory::<_, A>::new(provider.tx_ref()), + DatabaseHashedCursorFactory::new(provider.tx_ref()), + ) + .multiproof(targets) + }) + .map_err(SparseTrieError::other)?; *fetched_nodes.lock() += self.account_proof_requested_nodes.len(); for requested_node in self.account_proof_requested_nodes.drain(..) { diff --git a/crates/eth-sparse-mpt/src/v2/mod.rs b/crates/eth-sparse-mpt/src/v2/mod.rs index 306a4c17c..f0e3407f6 100644 --- a/crates/eth-sparse-mpt/src/v2/mod.rs +++ b/crates/eth-sparse-mpt/src/v2/mod.rs @@ -4,7 +4,9 @@ use fetch::MissingNodesFetcher; use nybbles::Nibbles; use parking_lot::{Mutex, RwLock}; use rayon::prelude::*; -use reth_provider::{providers::ConsistentDbView, BlockReader, DatabaseProviderFactory}; +use reth_provider::{ + providers::ConsistentDbView, BlockReader, DatabaseProviderFactory, StorageSettingsCache, +}; use reth_trie::TrieAccount; use revm::{ database::{BundleAccount, BundleState}, @@ -256,6 +258,7 @@ pub fn prefetch_proofs<'a, Provider>( ) -> Result where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let mut metrics = SparseTrieMetrics::default(); let mut fetcher = MissingNodesFetcher::default(); @@ -427,6 +430,7 @@ impl RootHashCalculator { ) -> Result<(), SparseTrieError> where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { stats.start(); @@ -623,6 +627,7 @@ impl RootHashCalculator { ) -> Result<(), SparseTrieError> where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let fetcher = Arc::new(Mutex::new(MissingNodesFetcher::default())); @@ -910,6 +915,7 @@ impl RootHashCalculator { ) -> Result<(), SparseTrieError> where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let mut fetcher = MissingNodesFetcher::default(); @@ -968,6 +974,7 @@ impl RootHashCalculator { ) -> Result<(B256, HashMap>, SparseTrieMetrics), SparseTrieError> where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { if !incremental_change.is_empty() { self.incremental_account_change.extend(incremental_change); diff --git a/crates/eth-sparse-mpt/src/v2/trie/proof_store.rs b/crates/eth-sparse-mpt/src/v2/trie/proof_store.rs index 5abca12aa..202ad1f6d 100644 --- a/crates/eth-sparse-mpt/src/v2/trie/proof_store.rs +++ b/crates/eth-sparse-mpt/src/v2/trie/proof_store.rs @@ -8,6 +8,8 @@ use dashmap::DashMap; use nybbles::Nibbles; use rustc_hash::FxBuildHasher; +use crate::utils::convert_reth_nybbles_to_nibbles; + #[derive(Debug, Clone)] pub enum ProofNode { Leaf { key: usize, value: usize }, @@ -82,11 +84,11 @@ impl ProofStore { ProofNode::Branch { children } } AlloyTrieNode::Extension(node) => ProofNode::Extension { - key: self.add_key(node.key), + key: self.add_key(convert_reth_nybbles_to_nibbles(node.key)), child: self.add_rlp_ptr(node.child.as_slice().try_into().unwrap()), }, AlloyTrieNode::Leaf(node) => ProofNode::Leaf { - key: self.add_key(node.key), + key: self.add_key(convert_reth_nybbles_to_nibbles(node.key)), value: self.add_value(node.value), }, AlloyTrieNode::EmptyRoot => ProofNode::Empty, diff --git a/crates/eth-sparse-mpt/src/v_experimental/fetch.rs b/crates/eth-sparse-mpt/src/v_experimental/fetch.rs index d822b5810..2069e1e6f 100644 --- a/crates/eth-sparse-mpt/src/v_experimental/fetch.rs +++ b/crates/eth-sparse-mpt/src/v_experimental/fetch.rs @@ -9,7 +9,7 @@ use alloy_primitives::B256; use nybbles::Nibbles; use reth_provider::{ providers::ConsistentDbView, BlockHashReader, BlockNumReader, BlockReader, DBProvider, - DatabaseProviderFactory, + DatabaseProviderFactory, StorageSettingsCache, }; use reth_trie::{ proof::{Proof, StorageProof}, @@ -53,6 +53,7 @@ impl MissingNodesFetcher { ) -> Result where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let fetched_nodes: Arc> = Default::default(); @@ -76,14 +77,15 @@ impl MissingNodesFetcher { } } - let proof = StorageProof::new_hashed( - DatabaseTrieCursorFactory::new(provider.tx_ref()), - DatabaseHashedCursorFactory::new(provider.tx_ref()), - hashed_address, - ); - let storge_multiproof = proof + let storge_multiproof = reth_trie_db::with_adapter!(provider, |A| { + StorageProof::new_hashed( + DatabaseTrieCursorFactory::<_, A>::new(provider.tx_ref()), + DatabaseHashedCursorFactory::new(provider.tx_ref()), + hashed_address, + ) .storage_multiproof(targets) - .map_err(SparseTrieError::other)?; + }) + .map_err(SparseTrieError::other)?; *fetched_nodes.lock() += requested_proofs.len(); for requested_proof in requested_proofs { let proof_for_node = storge_multiproof @@ -115,12 +117,15 @@ impl MissingNodesFetcher { } } - let proof = Proof::new( - DatabaseTrieCursorFactory::new(provider.tx_ref()), - DatabaseHashedCursorFactory::new(provider.tx_ref()), - ); let targets = MultiProofTargets::accounts(std::mem::take(&mut self.account_proof_targets)); - let multiproof = proof.multiproof(targets).map_err(SparseTrieError::other)?; + let multiproof = reth_trie_db::with_adapter!(provider, |A| { + Proof::new( + DatabaseTrieCursorFactory::<_, A>::new(provider.tx_ref()), + DatabaseHashedCursorFactory::new(provider.tx_ref()), + ) + .multiproof(targets) + }) + .map_err(SparseTrieError::other)?; *fetched_nodes.lock() += self.account_proof_requested_nodes.len(); for requested_node in self.account_proof_requested_nodes.drain(..) { diff --git a/crates/eth-sparse-mpt/src/v_experimental/mod.rs b/crates/eth-sparse-mpt/src/v_experimental/mod.rs index ec310a482..141530962 100644 --- a/crates/eth-sparse-mpt/src/v_experimental/mod.rs +++ b/crates/eth-sparse-mpt/src/v_experimental/mod.rs @@ -4,7 +4,9 @@ use fetch::MissingNodesFetcher; use nybbles::Nibbles; use parking_lot::{Mutex, RwLock}; use rayon::prelude::*; -use reth_provider::{providers::ConsistentDbView, BlockReader, DatabaseProviderFactory}; +use reth_provider::{ + providers::ConsistentDbView, BlockReader, DatabaseProviderFactory, StorageSettingsCache, +}; use reth_trie::TrieAccount; use revm::{ database::{BundleAccount, BundleState}, @@ -259,6 +261,7 @@ pub fn prefetch_proofs<'a, Provider>( ) -> Result where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let mut metrics = SparseTrieMetrics::default(); let mut fetcher = MissingNodesFetcher::default(); @@ -430,6 +433,7 @@ impl RootHashCalculator { ) -> Result<(), SparseTrieError> where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { stats.start(); @@ -626,6 +630,7 @@ impl RootHashCalculator { ) -> Result<(), SparseTrieError> where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let fetcher = Arc::new(Mutex::new(MissingNodesFetcher::default())); @@ -913,6 +918,7 @@ impl RootHashCalculator { ) -> Result<(), SparseTrieError> where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { let mut fetcher = MissingNodesFetcher::default(); @@ -971,6 +977,7 @@ impl RootHashCalculator { ) -> Result<(B256, HashMap>, SparseTrieMetrics), SparseTrieError> where Provider: DatabaseProviderFactory + Send + Sync, + ::Provider: StorageSettingsCache, { if !incremental_change.is_empty() { self.incremental_account_change.extend(incremental_change); diff --git a/crates/eth-sparse-mpt/src/v_experimental/trie/proof_store.rs b/crates/eth-sparse-mpt/src/v_experimental/trie/proof_store.rs index 5abca12aa..202ad1f6d 100644 --- a/crates/eth-sparse-mpt/src/v_experimental/trie/proof_store.rs +++ b/crates/eth-sparse-mpt/src/v_experimental/trie/proof_store.rs @@ -8,6 +8,8 @@ use dashmap::DashMap; use nybbles::Nibbles; use rustc_hash::FxBuildHasher; +use crate::utils::convert_reth_nybbles_to_nibbles; + #[derive(Debug, Clone)] pub enum ProofNode { Leaf { key: usize, value: usize }, @@ -82,11 +84,11 @@ impl ProofStore { ProofNode::Branch { children } } AlloyTrieNode::Extension(node) => ProofNode::Extension { - key: self.add_key(node.key), + key: self.add_key(convert_reth_nybbles_to_nibbles(node.key)), child: self.add_rlp_ptr(node.child.as_slice().try_into().unwrap()), }, AlloyTrieNode::Leaf(node) => ProofNode::Leaf { - key: self.add_key(node.key), + key: self.add_key(convert_reth_nybbles_to_nibbles(node.key)), value: self.add_value(node.value), }, AlloyTrieNode::EmptyRoot => ProofNode::Empty, diff --git a/crates/rbuilder-operator/src/flashbots_config.rs b/crates/rbuilder-operator/src/flashbots_config.rs index 5eb367bdb..5241d449c 100644 --- a/crates/rbuilder-operator/src/flashbots_config.rs +++ b/crates/rbuilder-operator/src/flashbots_config.rs @@ -428,9 +428,10 @@ impl FlashbotsConfig { .with_password(config.password.value()?) .with_validation(false); // CRITICAL for U256 serialization. - let task_executor = rbuilder_utils::tasks::Runtime::with_existing_handle( - tokio::runtime::Handle::current(), - )?; + let task_executor = rbuilder_utils::tasks::RuntimeBuilder::new( + rbuilder_utils::tasks::RuntimeConfig::default(), + ) + .build()?; let disk_backup = DiskBackup::new( DiskBackupConfig::new() diff --git a/crates/rbuilder-primitives/Cargo.toml b/crates/rbuilder-primitives/Cargo.toml index 4fe5c906d..f8d35ba1f 100644 --- a/crates/rbuilder-primitives/Cargo.toml +++ b/crates/rbuilder-primitives/Cargo.toml @@ -24,7 +24,6 @@ revm-inspectors.workspace = true # reth reth-chainspec.workspace = true reth-primitives-traits.workspace = true -reth-primitives.workspace = true reth-ethereum-primitives.workspace = true reth-transaction-pool.workspace = true diff --git a/crates/rbuilder-primitives/src/built_block.rs b/crates/rbuilder-primitives/src/built_block.rs index 5bcf8390f..d16c78485 100644 --- a/crates/rbuilder-primitives/src/built_block.rs +++ b/crates/rbuilder-primitives/src/built_block.rs @@ -21,7 +21,8 @@ use alloy_rpc_types_engine::{ ExecutionPayloadV3, }; use reth_chainspec::{ChainSpec, EthereumHardforks}; -use reth_primitives::SealedBlock; +use reth_ethereum_primitives::Block; +use reth_primitives_traits::SealedBlock; use std::sync::Arc; #[derive(Clone, Debug)] @@ -40,6 +41,9 @@ impl SignedBuiltBlock { ExecutionPayload::V1(_v1) => { eyre::bail!("v1 payloads are not supported"); } + ExecutionPayload::V4(_v4) => { + eyre::bail!("v4 payloads are not supported"); + } ExecutionPayload::V2(v2) => { Ok(AlloySubmitBlockRequest::Capella(SignedBidSubmissionV2 { message: self.message, @@ -155,7 +159,7 @@ fn marshall_txs_blobs_sidecars_v2( pub fn block_to_execution_payload( chain_spec: &ChainSpec, attrs: &PayloadAttributesData, - sealed_block: &SealedBlock, + sealed_block: &SealedBlock, ) -> ExecutionPayload { let transactions = sealed_block .body() diff --git a/crates/rbuilder-primitives/src/evm_inspector.rs b/crates/rbuilder-primitives/src/evm_inspector.rs index 82dff8287..f12cd7907 100644 --- a/crates/rbuilder-primitives/src/evm_inspector.rs +++ b/crates/rbuilder-primitives/src/evm_inspector.rs @@ -2,7 +2,8 @@ use ahash::HashMap; use alloy_consensus::Transaction; use alloy_primitives::{Address, B256, U256}; use alloy_rpc_types::AccessList; -use reth_primitives::{Recovered, TransactionSigned}; +use reth_ethereum_primitives::TransactionSigned; +use reth_primitives_traits::Recovered; use revm::{ bytecode::opcode, context::ContextTr, diff --git a/crates/rbuilder-primitives/src/lib.rs b/crates/rbuilder-primitives/src/lib.rs index 49848a74f..d80b6b826 100644 --- a/crates/rbuilder-primitives/src/lib.rs +++ b/crates/rbuilder-primitives/src/lib.rs @@ -12,7 +12,10 @@ mod test_data_generator; use alloy_consensus::Transaction as _; use alloy_eips::{ eip2718::{Decodable2718, Eip2718Error, Encodable2718}, - eip4844::{Blob, BlobTransactionSidecar, Bytes48, DATA_GAS_PER_BLOB}, + eip4844::{ + Blob, BlobTransactionSidecar, Bytes48, BYTES_PER_BLOB, BYTES_PER_COMMITMENT, + BYTES_PER_PROOF, DATA_GAS_PER_BLOB, + }, eip7594::BlobTransactionSidecarVariant, Typed2718, }; @@ -21,12 +24,8 @@ use alloy_rlp::Encodable as _; use derivative::Derivative; use evm_inspector::UsedStateTrace; use integer_encoding::VarInt; -use reth_ethereum_primitives::PooledTransactionVariant; -use reth_primitives::{ - kzg::{BYTES_PER_BLOB, BYTES_PER_COMMITMENT, BYTES_PER_PROOF}, - Recovered, Transaction, TransactionSigned, -}; -use reth_primitives_traits::{InMemorySize, SignedTransaction as _, SignerRecoverable}; +use reth_ethereum_primitives::{PooledTransactionVariant, Transaction, TransactionSigned}; +use reth_primitives_traits::{InMemorySize, Recovered, SignedTransaction as _, SignerRecoverable}; use reth_transaction_pool::{ BlobStore, BlobStoreError, EthPooledTransaction, Pool, TransactionOrdering, TransactionPool, TransactionValidator, @@ -1223,7 +1222,7 @@ mod tests { use super::*; use alloy_consensus::TxLegacy; use alloy_primitives::{fixed_bytes, Signature}; - use reth_primitives::{Transaction, TransactionSigned}; + use reth_ethereum_primitives::{Transaction, TransactionSigned}; use uuid::uuid; #[test] diff --git a/crates/rbuilder-primitives/src/test_data_generator.rs b/crates/rbuilder-primitives/src/test_data_generator.rs index c0bc26974..bbed1acd2 100644 --- a/crates/rbuilder-primitives/src/test_data_generator.rs +++ b/crates/rbuilder-primitives/src/test_data_generator.rs @@ -4,7 +4,8 @@ use super::{ }; use alloy_consensus::TxLegacy; use alloy_primitives::{Address, BlockHash, Signature, TxHash, B256, U256}; -use reth_primitives::{Recovered, Transaction, TransactionSigned}; +use reth_ethereum_primitives::{Transaction, TransactionSigned}; +use reth_primitives_traits::Recovered; use uuid::Uuid; /// TestDataGenerator allows you to create unique test objects with unique content, it tries to use different numbers for every field it sets since it may help debugging. diff --git a/crates/rbuilder-utils/Cargo.toml b/crates/rbuilder-utils/Cargo.toml index 514b9c8d2..41a881407 100644 --- a/crates/rbuilder-utils/Cargo.toml +++ b/crates/rbuilder-utils/Cargo.toml @@ -9,8 +9,8 @@ repository.workspace = true exclude.workspace = true [dependencies] -reth-tasks = { git = "https://github.com/paradigmxyz/reth", rev = "d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" } reth-provider.workspace = true +reth-tasks.workspace = true # misc tracing.workspace = true diff --git a/crates/rbuilder/Cargo.toml b/crates/rbuilder/Cargo.toml index f9dd1f9a3..19ab05f07 100644 --- a/crates/rbuilder/Cargo.toml +++ b/crates/rbuilder/Cargo.toml @@ -28,16 +28,17 @@ reth-db.workspace = true reth-errors.workspace = true reth-payload-builder.workspace = true reth-trie.workspace = true -reth-trie-parallel.workspace = true reth-trie-db.workspace = true +reth-trie-parallel.workspace = true reth-node-api.workspace = true reth-node-core.workspace = true -reth-primitives.workspace = true +reth-ethereum-primitives.workspace = true reth-primitives-traits.workspace = true reth-provider.workspace = true reth-chainspec.workspace = true reth-evm.workspace = true reth-evm-ethereum.workspace = true +reth-tasks.workspace = true revm.workspace = true reth-node-ethereum.workspace = true @@ -82,6 +83,7 @@ time.workspace = true bigdecimal = "0.4.1" mempool-dumpster = "0.1.1" itertools = "0.11.0" +nybbles = { version = "0.4", features = ["serde"] } clap.workspace = true priority-queue = "2.0.3" secp256k1 = { workspace = true, features = [ diff --git a/crates/rbuilder/benches/benchmarks/mev_boost.rs b/crates/rbuilder/benches/benchmarks/mev_boost.rs index 092c72946..88420ccdf 100644 --- a/crates/rbuilder/benches/benchmarks/mev_boost.rs +++ b/crates/rbuilder/benches/benchmarks/mev_boost.rs @@ -9,7 +9,6 @@ use alloy_rpc_types_beacon::BlsPublicKey; use criterion::{criterion_group, Criterion}; use rbuilder::mev_boost::{rpc::TestDataGenerator, sign_block_for_relay, BLSBlockSigner}; use reth::primitives::SealedBlock; -use reth_primitives::kzg::Blob; use ssz::Encode; use std::{fs, path::PathBuf, sync::Arc}; @@ -57,17 +56,13 @@ fn bench_mevboost_sign(c: &mut Criterion) { serde_json::from_str(&json_content).expect("Failed to deserialize JSON"); // Extract blob data from JSON and convert it to Blob. - let blobs: Vec = vec![AlloyBlob::from( - Blob::from_hex( - json_value - .get("data") - .unwrap() - .as_str() - .expect("Data is not a valid string"), - ) + let blobs: Vec = vec![json_value + .get("data") .unwrap() - .into_inner(), - )]; + .as_str() + .expect("Data is not a valid string") + .parse() + .unwrap()]; // Generate a BlobTransactionSidecar from the blobs let blob = BlobTransactionSidecar::try_from_blobs(blobs).unwrap(); diff --git a/crates/rbuilder/src/backtest/build_block/full_partial_block_execution_tracer.rs b/crates/rbuilder/src/backtest/build_block/full_partial_block_execution_tracer.rs index 4b8020c22..49934bedf 100644 --- a/crates/rbuilder/src/backtest/build_block/full_partial_block_execution_tracer.rs +++ b/crates/rbuilder/src/backtest/build_block/full_partial_block_execution_tracer.rs @@ -276,27 +276,20 @@ impl PartialBlockForkExecutionTracer for FullPartialBlockExecutionTracer { Ok(Ok(tx_ok)) => match tx_ok.exec_result { revm::context::result::ExecutionResult::Success { reason: _, - gas_used: _, - gas_refunded: _, logs: _, output: _, + .. } => ( SimpleTxExecutionResult::OkSuccess, tx_ok.tx_info.coinbase_profit, tx_ok.tx_info.space_used.gas, ), - revm::context::result::ExecutionResult::Revert { - gas_used: _, - output: _, - } => ( + revm::context::result::ExecutionResult::Revert { output: _, .. } => ( SimpleTxExecutionResult::OkRevert, tx_ok.tx_info.coinbase_profit, tx_ok.tx_info.space_used.gas, ), - revm::context::result::ExecutionResult::Halt { - reason: _, - gas_used: _, - } => ( + revm::context::result::ExecutionResult::Halt { reason: _, .. } => ( SimpleTxExecutionResult::OkHalt, tx_ok.tx_info.coinbase_profit, tx_ok.tx_info.space_used.gas, diff --git a/crates/rbuilder/src/backtest/restore_landed_orders/resim_landed_block.rs b/crates/rbuilder/src/backtest/restore_landed_orders/resim_landed_block.rs index 17413f328..9dc3132e7 100644 --- a/crates/rbuilder/src/backtest/restore_landed_orders/resim_landed_block.rs +++ b/crates/rbuilder/src/backtest/restore_landed_orders/resim_landed_block.rs @@ -15,7 +15,8 @@ use alloy_primitives::{TxHash, B256, I256}; use eyre::Context; use rbuilder_primitives::evm_inspector::SlotKey; use reth_chainspec::ChainSpec; -use reth_primitives::{Receipt, Recovered, TransactionSigned}; +use reth_ethereum_primitives::{Receipt, TransactionSigned}; +use reth_primitives_traits::Recovered; use std::sync::Arc; #[derive(Debug)] diff --git a/crates/rbuilder/src/backtest/store.rs b/crates/rbuilder/src/backtest/store.rs index 3311c239e..bfedefd23 100644 --- a/crates/rbuilder/src/backtest/store.rs +++ b/crates/rbuilder/src/backtest/store.rs @@ -698,7 +698,7 @@ mod test { serialize::{RawBundle, RawBundleMetadata, RawTx}, BundleReplacementKey, LAST_BUNDLE_VERSION, }; - use reth_primitives::Recovered; + use reth_primitives_traits::Recovered; use time::OffsetDateTime; use uuid::uuid; @@ -856,6 +856,7 @@ mod test { block_number: Some(4), transaction_index: Some(5), effective_gas_price: Some(7), + block_timestamp: Some(8), } } } diff --git a/crates/rbuilder/src/building/bid_adjustments.rs b/crates/rbuilder/src/building/bid_adjustments.rs index 547d329aa..d5ee1db0e 100644 --- a/crates/rbuilder/src/building/bid_adjustments.rs +++ b/crates/rbuilder/src/building/bid_adjustments.rs @@ -4,7 +4,7 @@ use rbuilder_primitives::mev_boost::{ ssz_roots::{tx_ssz_leaf_root, CompactSszTransactionTree}, BidAdjustmentStateProofs, }; -use reth_primitives::TransactionSigned; +use reth_ethereum_primitives::TransactionSigned; use std::collections::{HashMap, HashSet}; use tracing::*; diff --git a/crates/rbuilder/src/building/builders/mock_block_building_helper.rs b/crates/rbuilder/src/building/builders/mock_block_building_helper.rs index a8cf507c7..3973d1e92 100644 --- a/crates/rbuilder/src/building/builders/mock_block_building_helper.rs +++ b/crates/rbuilder/src/building/builders/mock_block_building_helper.rs @@ -15,7 +15,8 @@ use crate::{ use alloy_primitives::{Address, Bytes, B256, I256, U256}; use eth_sparse_mpt::utils::{HashMap, HashSet}; use rbuilder_primitives::{order_statistics::OrderStatistics, SimValue, SimulatedOrder}; -use reth_primitives::SealedBlock; +use reth_ethereum_primitives::Block as EthereumBlock; +use reth_primitives_traits::SealedBlock; use revm::database::BundleState; use time::OffsetDateTime; @@ -98,7 +99,7 @@ impl BlockBuildingHelper for MockBlockBuildingHelper { let block = Block { builder_name: "BlockBuildingHelper".to_string(), trace: self.built_block_trace.clone(), - sealed_block: SealedBlock::default(), + sealed_block: SealedBlock::::default(), txs_blobs_sidecars: Vec::new(), execution_requests: Default::default(), bid_adjustments: Default::default(), diff --git a/crates/rbuilder/src/building/builders/mod.rs b/crates/rbuilder/src/building/builders/mod.rs index 8ae305f0a..c88e4b5de 100644 --- a/crates/rbuilder/src/building/builders/mod.rs +++ b/crates/rbuilder/src/building/builders/mod.rs @@ -22,7 +22,8 @@ use ahash::HashSet; use alloy_eips::eip7594::BlobTransactionSidecarVariant; use alloy_primitives::{Address, Bytes}; use rbuilder_primitives::{mev_boost::BidAdjustmentDataV3, AccountNonce, OrderId, SimulatedOrder}; -use reth::primitives::SealedBlock; +use reth_ethereum_primitives::Block as EthereumBlock; +use reth_primitives_traits::SealedBlock; use std::{ collections::HashMap, fmt::Debug, @@ -51,7 +52,7 @@ const ORDERS_CONSUMED_PER_BATCH: usize = 8192; pub struct Block { pub builder_name: String, pub trace: BuiltBlockTrace, - pub sealed_block: SealedBlock, + pub sealed_block: SealedBlock, /// Sidecars for the txs included in SealedBlock pub txs_blobs_sidecars: Vec>, /// The Pectra execution requests for this bid. diff --git a/crates/rbuilder/src/building/builders/parallel_builder/conflict_resolvers.rs b/crates/rbuilder/src/building/builders/parallel_builder/conflict_resolvers.rs index ee596571b..14d791571 100644 --- a/crates/rbuilder/src/building/builders/parallel_builder/conflict_resolvers.rs +++ b/crates/rbuilder/src/building/builders/parallel_builder/conflict_resolvers.rs @@ -458,7 +458,8 @@ mod tests { use alloy_consensus::TxLegacy; use alloy_primitives::{Address, TxHash, B256, U256}; use reth::primitives::TransactionSigned; - use reth_primitives::{Recovered, Transaction}; + use reth_ethereum_primitives::Transaction; + use reth_primitives_traits::Recovered; use uuid::Uuid; use super::*; diff --git a/crates/rbuilder/src/building/builders/parallel_builder/conflict_task_generator.rs b/crates/rbuilder/src/building/builders/parallel_builder/conflict_task_generator.rs index 0888eb348..bd25aada4 100644 --- a/crates/rbuilder/src/building/builders/parallel_builder/conflict_task_generator.rs +++ b/crates/rbuilder/src/building/builders/parallel_builder/conflict_task_generator.rs @@ -425,8 +425,8 @@ mod tests { evm_inspector::{SlotKey, UsedStateTrace}, MempoolTx, Order, SimValue, SimulatedOrder, TransactionSignedEcRecoveredWithBlobs, }; - use reth::primitives::{Transaction, TransactionSigned}; - use reth_primitives::Recovered; + use reth_ethereum_primitives::{Transaction, TransactionSigned}; + use reth_primitives_traits::Recovered; use std::sync::Arc; use std::sync::mpsc; diff --git a/crates/rbuilder/src/building/builders/parallel_builder/groups.rs b/crates/rbuilder/src/building/builders/parallel_builder/groups.rs index 23e4e1e77..6b8d4da18 100644 --- a/crates/rbuilder/src/building/builders/parallel_builder/groups.rs +++ b/crates/rbuilder/src/building/builders/parallel_builder/groups.rs @@ -379,8 +379,8 @@ mod tests { use alloy_consensus::TxLegacy; use alloy_primitives::{Address, TxHash, B256, U256}; - use reth::primitives::{Transaction, TransactionSigned}; - use reth_primitives::Recovered; + use reth_ethereum_primitives::{Transaction, TransactionSigned}; + use reth_primitives_traits::Recovered; use rbuilder_primitives::{ evm_inspector::{SlotKey, UsedStateTrace}, diff --git a/crates/rbuilder/src/building/evm.rs b/crates/rbuilder/src/building/evm.rs index 464905c62..3814a4ba6 100644 --- a/crates/rbuilder/src/building/evm.rs +++ b/crates/rbuilder/src/building/evm.rs @@ -84,12 +84,13 @@ impl EvmFactory for EthCachedEvmFactory { where DB: Database, { + let spec = env.cfg_env.spec; let evm = self .evm_factory .create_evm(db, env) .into_inner() .with_precompiles(WrappedPrecompile::new( - EthPrecompiles::default(), + EthPrecompiles::new(spec), self.cache.clone(), )); diff --git a/crates/rbuilder/src/building/mod.rs b/crates/rbuilder/src/building/mod.rs index 84d2c59a7..ee4622d1b 100644 --- a/crates/rbuilder/src/building/mod.rs +++ b/crates/rbuilder/src/building/mod.rs @@ -42,18 +42,13 @@ use rbuilder_primitives::{ mev_boost::BidAdjustmentDataV3, BlockSpace, Order, SimValue, SimulatedOrder, TransactionSignedEcRecoveredWithBlobs, }; -use reth::{ - payload::PayloadId, - primitives::{Block, SealedBlock}, -}; +use reth::payload::PayloadId; use reth_chainspec::{ChainSpec, EthChainSpec, EthereumHardforks}; use reth_errors::{BlockExecutionError, BlockValidationError, ProviderError}; +use reth_ethereum_primitives::{Block, BlockBody}; use reth_evm::{ConfigureEvm, NextBlockEnvAttributes}; use reth_evm_ethereum::{revm_spec_by_timestamp_and_block_number, EthEvmConfig}; -use reth_node_api::{EngineApiMessageVersion, PayloadBuilderAttributes}; -use reth_payload_builder::EthPayloadBuilderAttributes; -use reth_primitives::BlockBody; -use reth_primitives_traits::{proofs, Block as _}; +use reth_primitives_traits::{proofs, Block as _, SealedBlock}; use revm::{ context_interface::result::InvalidTransaction, database::{states::bundle_state::BundleRetention, DatabaseCommitExt as _}, @@ -102,6 +97,35 @@ pub use conflict::*; /// Estimated overhead for the whole block header rlp length const BLOCK_HEADER_RLP_OVERHEAD: usize = 1024; +#[derive(Debug, Clone)] +pub struct EthPayloadBuilderAttributes { + pub id: PayloadId, + pub parent: B256, + pub timestamp: u64, + pub suggested_fee_recipient: Address, + pub prev_randao: B256, + pub withdrawals: Withdrawals, + pub parent_beacon_block_root: Option, +} + +impl EthPayloadBuilderAttributes { + pub fn timestamp(&self) -> u64 { + self.timestamp + } + + pub fn suggested_fee_recipient(&self) -> Address { + self.suggested_fee_recipient + } + + pub fn prev_randao(&self) -> B256 { + self.prev_randao + } + + pub fn parent_beacon_block_root(&self) -> Option { + self.parent_beacon_block_root + } +} + #[derive(Debug, Clone)] pub struct BlockBuildingContext { pub evm_factory: EthCachedEvmFactory, @@ -151,12 +175,16 @@ impl BlockBuildingContext { adjustment_fee_payers: ahash::HashSet
, mempool_tx_detector: Arc, ) -> Option { - let attributes = EthPayloadBuilderAttributes::try_new( - attributes.data.parent_block_hash, - attributes.data.payload_attributes.clone(), - EngineApiMessageVersion::default() as u8, - ) - .expect("PayloadBuilderAttributes::try_new"); + let payload_attributes = attributes.data.payload_attributes.clone(); + let attributes = EthPayloadBuilderAttributes { + id: PayloadId::new([0u8; 8]), + parent: attributes.data.parent_block_hash, + timestamp: payload_attributes.timestamp, + suggested_fee_recipient: payload_attributes.suggested_fee_recipient, + prev_randao: payload_attributes.prev_randao, + withdrawals: Withdrawals::new(payload_attributes.withdrawals.unwrap_or_default()), + parent_beacon_block_root: payload_attributes.parent_beacon_block_root, + }; let eth_evm_config = EthEvmConfig::new(chain_spec.clone()); let gas_limit = calculate_block_gas_limit( parent.gas_limit, @@ -174,7 +202,8 @@ impl BlockBuildingContext { gas_limit, withdrawals: Some(attributes.withdrawals.clone()), parent_beacon_block_root: attributes.parent_beacon_block_root, - extra_data: extra_data.clone().into(), + extra_data: Bytes::new(), + slot_number: None, }, ) .ok()?; @@ -610,7 +639,7 @@ impl ExecutionError { pub struct FinalizeResult { /// Sealed block. - pub sealed_block: SealedBlock, + pub sealed_block: SealedBlock, // sidecars for all txs in SealedBlock pub txs_blob_sidecars: Vec>, /// The Pectra execution requests for this bid. @@ -1108,6 +1137,8 @@ impl { return Ok(Err(TransactionErr::InvalidTransaction(tx_err))) } - EVMError::Database(_) | EVMError::Header(_) | EVMError::Custom(_) => { - return Err(err.into()) - } + EVMError::Database(_) + | EVMError::Header(_) + | EVMError::Custom(_) + | EVMError::CustomAny(_) => return Err(err.into()), }, }; drop(evm); diff --git a/crates/rbuilder/src/building/payout_tx.rs b/crates/rbuilder/src/building/payout_tx.rs index 24428c433..f38c76a9d 100644 --- a/crates/rbuilder/src/building/payout_tx.rs +++ b/crates/rbuilder/src/building/payout_tx.rs @@ -9,8 +9,9 @@ use alloy_primitives::{Address, TxKind as TransactionKind, U256}; use alloy_rlp::Encodable as _; use reth_chainspec::ChainSpec; use reth_errors::ProviderError; +use reth_ethereum_primitives::{Transaction, TransactionSigned}; use reth_evm::Evm; -use reth_primitives::{Recovered, Transaction, TransactionSigned}; +use reth_primitives_traits::Recovered; use revm::{ context::result::{EVMError, ExecutionResult}, database::bal::EvmDatabaseError, @@ -97,11 +98,7 @@ where let res = evm.transact(&tx)?; match res.result { - ExecutionResult::Success { - gas_used, - gas_refunded, - .. - } => Ok(Some(gas_used + gas_refunded)), + ExecutionResult::Success { .. } => Ok(Some(res.result.tx_gas_used())), _ => Ok(None), } } @@ -225,7 +222,7 @@ mod tests { use assert_matches::assert_matches; use reth_chainspec::{EthereumHardfork, MAINNET}; use reth_db::{tables, transaction::DbTxMut}; - use reth_primitives::Account; + use reth_primitives_traits::Account; use reth_provider::test_utils::create_test_provider_factory_with_chain_spec; use revm::primitives::hardfork::SpecId; use std::sync::Arc; diff --git a/crates/rbuilder/src/building/testing/bundle_tests/mod.rs b/crates/rbuilder/src/building/testing/bundle_tests/mod.rs index a29d725fa..7296f10c1 100644 --- a/crates/rbuilder/src/building/testing/bundle_tests/mod.rs +++ b/crates/rbuilder/src/building/testing/bundle_tests/mod.rs @@ -1,7 +1,7 @@ pub mod setup; use alloy_primitives::{Address, Bytes, U256}; -use reth_primitives::Bytecode; +use reth_primitives_traits::Bytecode; use std::collections::{HashMap, HashSet}; use crate::{ diff --git a/crates/rbuilder/src/building/testing/evm_inspector_tests/mod.rs b/crates/rbuilder/src/building/testing/evm_inspector_tests/mod.rs index fe3f384c8..c2ce90144 100644 --- a/crates/rbuilder/src/building/testing/evm_inspector_tests/mod.rs +++ b/crates/rbuilder/src/building/testing/evm_inspector_tests/mod.rs @@ -1,5 +1,5 @@ use alloy_primitives::{B256, U256}; -use reth_primitives::TransactionSigned; +use reth_ethereum_primitives::TransactionSigned; use crate::building::testing::{ evm_inspector_tests::setup::TestSetup, test_chain_state::NamedAddr, @@ -104,7 +104,7 @@ fn test_read_balance() -> eyre::Result<()> { let mev_test_contract_addr = test_setup.named_address(NamedAddr::MevTest)?; let dummy_addr = test_setup.named_address(NamedAddr::Dummy)?; - let tx: reth_primitives::Recovered = + let tx: reth_primitives_traits::Recovered = test_setup.make_test_read_balance_tx(dummy_addr, 100)?; let used_state_trace = test_setup.inspect_tx_without_commit(tx)?; @@ -126,7 +126,7 @@ fn test_ephemeral_contract_destruct() -> eyre::Result<()> { let test_setup = TestSetup::new()?; let refund_addr = test_setup.named_address(NamedAddr::Dummy)?; - let tx: reth_primitives::Recovered = + let tx: reth_primitives_traits::Recovered = test_setup.make_test_ephemeral_contract_destruct_tx(refund_addr, 100)?; let used_state_trace = test_setup.inspect_tx_without_commit(tx)?; diff --git a/crates/rbuilder/src/building/testing/evm_inspector_tests/setup.rs b/crates/rbuilder/src/building/testing/evm_inspector_tests/setup.rs index 8c5771cd7..6e3a38c4b 100644 --- a/crates/rbuilder/src/building/testing/evm_inspector_tests/setup.rs +++ b/crates/rbuilder/src/building/testing/evm_inspector_tests/setup.rs @@ -7,8 +7,9 @@ use crate::building::{ use alloy_primitives::Address; use rbuilder_primitives::evm_inspector::{RBuilderEVMInspector, UsedStateTrace}; +use reth_ethereum_primitives::TransactionSigned; use reth_evm::Evm; -use reth_primitives::{Recovered, TransactionSigned}; +use reth_primitives_traits::Recovered; #[derive(Debug)] pub struct TestSetup { diff --git a/crates/rbuilder/src/building/testing/test_chain_state.rs b/crates/rbuilder/src/building/testing/test_chain_state.rs index 81e096d37..b3d6af186 100644 --- a/crates/rbuilder/src/building/testing/test_chain_state.rs +++ b/crates/rbuilder/src/building/testing/test_chain_state.rs @@ -16,15 +16,14 @@ use alloy_rpc_types_beacon::events::{PayloadAttributesData, PayloadAttributesEve use eth_sparse_mpt::ETHSpareMPTVersion::V2; use lazy_static::lazy_static; use reth::{ - primitives::{Account, BlockBody, Bytecode}, providers::ProviderFactory, rpc::types::{engine::PayloadAttributes, Withdrawal}, }; use reth_chainspec::{ChainSpec, EthereumHardfork, MAINNET}; use reth_db::{cursor::DbCursorRW, tables, transaction::DbTxMut}; use reth_errors::ProviderResult; -use reth_primitives::{Recovered, TransactionSigned}; -use reth_primitives_traits::Block as _; +use reth_ethereum_primitives::{BlockBody, TransactionSigned}; +use reth_primitives_traits::{Account, Block as _, Bytecode, Recovered}; use reth_provider::{ test_utils::{create_test_provider_factory, MockNodeTypesWithDB}, BlockWriter, @@ -384,6 +383,7 @@ impl TestBlockContextBuilder { suggested_fee_recipient: self.suggested_fee_recipient, withdrawals: self.withdrawals, parent_beacon_block_root: None, + slot_number: None, }, }, }, @@ -409,6 +409,8 @@ impl TestBlockContextBuilder { parent_beacon_block_root: None, extra_data: Default::default(), requests_hash: Default::default(), + block_access_list_hash: None, + slot_number: None, }, self.builder_signer, self.chain_spec, diff --git a/crates/rbuilder/src/live_builder/base_config.rs b/crates/rbuilder/src/live_builder/base_config.rs index 815036b47..5b693a1a2 100644 --- a/crates/rbuilder/src/live_builder/base_config.rs +++ b/crates/rbuilder/src/live_builder/base_config.rs @@ -31,8 +31,8 @@ use reth_chainspec::ChainSpec; use reth_db::DatabaseEnv; use reth_node_api::NodeTypesWithDBAdapter; use reth_node_ethereum::EthereumNode; -use reth_primitives::StaticFileSegment; use reth_provider::StaticFileProviderFactory; +use reth_provider::StaticFileSegment; use serde::{Deserialize, Deserializer}; use serde_with::serde_as; use std::{ diff --git a/crates/rbuilder/src/live_builder/block_output/bid_observer.rs b/crates/rbuilder/src/live_builder/block_output/bid_observer.rs index a982cc58d..409350806 100644 --- a/crates/rbuilder/src/live_builder/block_output/bid_observer.rs +++ b/crates/rbuilder/src/live_builder/block_output/bid_observer.rs @@ -1,5 +1,6 @@ use alloy_primitives::U256; -use reth_primitives::SealedBlock; +use reth_ethereum_primitives::Block; +use reth_primitives_traits::SealedBlock; use crate::{building::BuiltBlockTrace, live_builder::payload_events::MevBoostSlotData}; diff --git a/crates/rbuilder/src/live_builder/block_output/bid_observer_multiplexer.rs b/crates/rbuilder/src/live_builder/block_output/bid_observer_multiplexer.rs index a608ee8ea..768b86790 100644 --- a/crates/rbuilder/src/live_builder/block_output/bid_observer_multiplexer.rs +++ b/crates/rbuilder/src/live_builder/block_output/bid_observer_multiplexer.rs @@ -1,4 +1,5 @@ -use reth_primitives::SealedBlock; +use reth_ethereum_primitives::Block; +use reth_primitives_traits::SealedBlock; use crate::{building::BuiltBlockTrace, live_builder::payload_events::MevBoostSlotData}; diff --git a/crates/rbuilder/src/live_builder/config.rs b/crates/rbuilder/src/live_builder/config.rs index d78db0005..5ed4cda4a 100644 --- a/crates/rbuilder/src/live_builder/config.rs +++ b/crates/rbuilder/src/live_builder/config.rs @@ -65,8 +65,8 @@ use reth_chainspec::{Chain, ChainSpec, NamedChain}; use reth_db::DatabaseEnv; use reth_node_api::NodeTypesWithDBAdapter; use reth_node_ethereum::EthereumNode; -use reth_primitives::StaticFileSegment; use reth_provider::StaticFileProviderFactory; +use reth_provider::StaticFileSegment; use serde::Deserialize; use serde_with::{serde_as, OneOrMany}; use std::{ diff --git a/crates/rbuilder/src/live_builder/mod.rs b/crates/rbuilder/src/live_builder/mod.rs index f18e9fac7..4ca09fb29 100644 --- a/crates/rbuilder/src/live_builder/mod.rs +++ b/crates/rbuilder/src/live_builder/mod.rs @@ -46,7 +46,8 @@ use reth::transaction_pool::{ TransactionPool, TransactionValidator, }; use reth_chainspec::ChainSpec; -use reth_primitives::{Recovered, TransactionSigned}; +use reth_ethereum_primitives::TransactionSigned; +use reth_primitives_traits::Recovered; use std::{ cmp::min, fmt::Debug, diff --git a/crates/rbuilder/src/mev_boost/rpc.rs b/crates/rbuilder/src/mev_boost/rpc.rs index c4cbcde84..5665048de 100644 --- a/crates/rbuilder/src/mev_boost/rpc.rs +++ b/crates/rbuilder/src/mev_boost/rpc.rs @@ -102,6 +102,7 @@ impl TestDataGenerator { suggested_fee_recipient: self.create_address(), withdrawals: None, parent_beacon_block_root: Some(self.create_hash()), + slot_number: None, }, } } diff --git a/crates/rbuilder/src/mev_boost/sign_payload.rs b/crates/rbuilder/src/mev_boost/sign_payload.rs index fcdff6346..f52b335b9 100644 --- a/crates/rbuilder/src/mev_boost/sign_payload.rs +++ b/crates/rbuilder/src/mev_boost/sign_payload.rs @@ -9,7 +9,8 @@ use ethereum_consensus::{ signing::sign_with_domain, ssz::prelude::*, }; -use reth_primitives::SealedBlock; +use reth_ethereum_primitives::Block; +use reth_primitives_traits::SealedBlock; use serde_with::{serde_as, DisplayFromStr}; /// Object to sign blocks to be sent to relays. @@ -101,7 +102,7 @@ fn a2e_address(a: &Address) -> ExecutionAddress { pub fn sign_block_for_relay( signer: &BLSBlockSigner, - sealed_block: &SealedBlock, + sealed_block: &SealedBlock, attrs: &PayloadAttributesData, proposer_pubkey: BlsPublicKey, value: U256, diff --git a/crates/rbuilder/src/provider/ipc_state_provider.rs b/crates/rbuilder/src/provider/ipc_state_provider.rs index 09b002887..5593fbd8b 100644 --- a/crates/rbuilder/src/provider/ipc_state_provider.rs +++ b/crates/rbuilder/src/provider/ipc_state_provider.rs @@ -16,7 +16,7 @@ use dashmap::DashMap; use quick_cache::sync::Cache; use reipc::rpc_provider::RpcProvider; use reth_errors::{ProviderError, ProviderResult}; -use reth_primitives::{Account, Bytecode}; +use reth_primitives_traits::{Account, Bytecode}; use reth_provider::{ errors::any::AnyError, AccountReader, BlockHashReader, BytecodeReader, HashedPostStateProvider, StateProofProvider, StateProvider, StateProviderBox, StateRootProvider, StorageRootProvider, @@ -285,16 +285,6 @@ impl StateProvider for IpcStateProvider { Ok(storage) } - - /// Get storage using a pre-hashed storage key. Unsupported over IPC: the plain storage key - /// required by `eth_getStorageAt` cannot be recovered from its hash. - fn storage_by_hashed_key( - &self, - _account: Address, - _hashed_storage_key: StorageKey, - ) -> ProviderResult> { - Err(ProviderError::UnsupportedProvider) - } } impl BlockHashReader for IpcStateProvider { @@ -426,7 +416,12 @@ impl StateProofProvider for IpcStateProvider { unimplemented!() } - fn witness(&self, _input: TrieInput, _target: HashedPostState) -> ProviderResult> { + fn witness( + &self, + _input: TrieInput, + _target: HashedPostState, + _mode: reth_trie::ExecutionWitnessMode, + ) -> ProviderResult> { unimplemented!() } } diff --git a/crates/rbuilder/src/provider/reth_prov.rs b/crates/rbuilder/src/provider/reth_prov.rs index c9a13602a..2b7a065ca 100644 --- a/crates/rbuilder/src/provider/reth_prov.rs +++ b/crates/rbuilder/src/provider/reth_prov.rs @@ -4,9 +4,9 @@ use alloy_eips::BlockNumHash; use alloy_primitives::{BlockHash, BlockNumber, B256}; use reth_errors::ProviderResult; use reth_provider::{ - BlockReader, ChangeSetReader, DBProvider, DatabaseProviderFactory, HeaderProvider, - PruneCheckpointReader, StageCheckpointReader, StateProviderBox, StorageChangeSetReader, - StorageSettingsCache, + BlockNumReader, BlockReader, ChangeSetReader, DBProvider, DatabaseProviderFactory, + HeaderProvider, PruneCheckpointReader, StageCheckpointReader, StateProviderBox, + StorageChangeSetReader, StorageSettingsCache, }; use tracing::error; @@ -37,6 +37,7 @@ where + ChangeSetReader + StorageChangeSetReader + DBProvider + + BlockNumReader + StorageSettingsCache, > + reth_provider::StateProviderFactory + reth_provider::HashedPostStateProvider diff --git a/crates/rbuilder/src/roothash/mod.rs b/crates/rbuilder/src/roothash/mod.rs index c98849f5b..4a85a4b7a 100644 --- a/crates/rbuilder/src/roothash/mod.rs +++ b/crates/rbuilder/src/roothash/mod.rs @@ -3,15 +3,18 @@ use alloy_eips::BlockNumHash; use alloy_primitives::{Address, Bytes, B256}; use eth_sparse_mpt::*; use reth::providers::providers::ConsistentDbView; +use reth_ethereum_primitives::EthPrimitives; use reth_provider::{ - providers::OverlayStateProviderFactory, BlockReader, ChangeSetReader, DBProvider, - DatabaseProviderFactory, HashedPostStateProvider, PruneCheckpointReader, StageCheckpointReader, - StorageChangeSetReader, StorageSettingsCache, + providers::{OverlayBuilder, OverlayStateProviderFactory}, + BlockNumReader, BlockReader, ChangeSetReader, DBProvider, DatabaseProviderFactory, + HashedPostStateProvider, PruneCheckpointReader, StageCheckpointReader, StorageChangeSetReader, + StorageSettingsCache, }; use reth_trie::TrieInput; use reth_trie_db::ChangesetCache; use reth_trie_parallel::root::{ParallelStateRoot, ParallelStateRootError}; use revm::database::BundleState; +use std::sync::Arc; use tracing::trace; pub use prefetcher::run_trie_prefetcher; @@ -82,15 +85,8 @@ pub fn calculate_account_proofs

( config: &RootHashContext, ) -> Result>, RootHashError> where - P: DatabaseProviderFactory< - Provider: BlockReader - + StageCheckpointReader - + PruneCheckpointReader - + ChangeSetReader - + StorageChangeSetReader - + DBProvider - + StorageSettingsCache, - > + Send + P: DatabaseProviderFactory + + Send + Sync + Clone + 'static, @@ -124,32 +120,35 @@ where fn calculate_parallel_root_hash( hasher: &HasherType, outcome: &BundleState, + parent_num_hash: BlockNumHash, provider: P, + runtime: reth_tasks::Runtime, ) -> Result where - HasherType: HashedPostStateProvider, + HasherType: HashedPostStateProvider + Sync, P: DatabaseProviderFactory< Provider: BlockReader + StageCheckpointReader + PruneCheckpointReader + + DBProvider + + BlockNumReader + ChangeSetReader + StorageChangeSetReader - + DBProvider + StorageSettingsCache, > + Send + Sync + Clone + 'static, { - let overlay = OverlayStateProviderFactory::new(provider, ChangesetCache::new()); let hashed_post_state = hasher.hashed_post_state(outcome); - let parallel_root_calculator = ParallelStateRoot::new( - overlay, - TrieInput::from_state(hashed_post_state) - .prefix_sets - .freeze(), - crate::utils::reth_task_runtime(), - ); + let prefix_sets = TrieInput::from_state(hashed_post_state.clone()) + .prefix_sets + .freeze(); + let overlay_builder = + OverlayBuilder::::new(parent_num_hash.hash, ChangesetCache::new()) + .with_hashed_state_overlay(Some(Arc::new(hashed_post_state.into_sorted()))); + let overlay = OverlayStateProviderFactory::new(provider, overlay_builder); + let parallel_root_calculator = ParallelStateRoot::new(overlay, prefix_sets, runtime); parallel_root_calculator.incremental_root() } @@ -163,16 +162,18 @@ pub fn calculate_state_root( shared_cache: &SparseTrieSharedCache, local_cache: &mut SparseTrieLocalCache, config: &RootHashContext, + runtime: reth_tasks::Runtime, ) -> Result where - HasherType: HashedPostStateProvider + Send + Sync, + HasherType: HashedPostStateProvider + Sync, P: DatabaseProviderFactory< Provider: BlockReader + StageCheckpointReader + PruneCheckpointReader + + DBProvider + + BlockNumReader + ChangeSetReader + StorageChangeSetReader - + DBProvider + StorageSettingsCache, > + Send + Sync @@ -193,11 +194,25 @@ where if let Some(thread_pool) = &config.thread_pool { thread_pool .rayon_pool - .install(|| calculate_parallel_root_hash(hasher, outcome, provider.clone())) + .install(|| { + calculate_parallel_root_hash( + hasher, + outcome, + parent_num_hash, + provider.clone(), + runtime.clone(), + ) + }) .map_err(|err| RootHashError::Other(err.into()))? } else { - calculate_parallel_root_hash(hasher, outcome, provider.clone()) - .map_err(|err| RootHashError::Other(err.into()))? + calculate_parallel_root_hash( + hasher, + outcome, + parent_num_hash, + provider.clone(), + runtime.clone(), + ) + .map_err(|err| RootHashError::Other(err.into()))? } } else { B256::ZERO @@ -225,8 +240,14 @@ where } } } else { - calculate_parallel_root_hash(hasher, outcome, provider.clone()) - .map_err(|err| RootHashError::Other(err.into()))? + calculate_parallel_root_hash( + hasher, + outcome, + parent_num_hash, + provider.clone(), + runtime.clone(), + ) + .map_err(|err| RootHashError::Other(err.into()))? }; if config.compare_sparse_trie_output && reference_root_hash != root { diff --git a/crates/rbuilder/src/roothash/prefetcher.rs b/crates/rbuilder/src/roothash/prefetcher.rs index 83801f37b..37e59742f 100644 --- a/crates/rbuilder/src/roothash/prefetcher.rs +++ b/crates/rbuilder/src/roothash/prefetcher.rs @@ -5,7 +5,7 @@ use alloy_eips::BlockNumHash; use alloy_primitives::Address; use eth_sparse_mpt::*; use reth::providers::providers::ConsistentDbView; -use reth_provider::{BlockReader, DatabaseProviderFactory}; +use reth_provider::{BlockReader, DatabaseProviderFactory, StorageSettingsCache}; use tracing::{error, trace}; use crate::{ @@ -36,7 +36,7 @@ pub fn run_trie_prefetcher

( provider: P, simulated_orders: mpsc::Receiver, ) where - P: DatabaseProviderFactory + Send + Sync + Clone, + P: DatabaseProviderFactory + Send + Sync + Clone, { let consistent_db_view = ConsistentDbView::new( provider, diff --git a/crates/rbuilder/src/utils/mod.rs b/crates/rbuilder/src/utils/mod.rs index 8e38db51b..19384bca1 100644 --- a/crates/rbuilder/src/utils/mod.rs +++ b/crates/rbuilder/src/utils/mod.rs @@ -41,10 +41,7 @@ pub(crate) fn reth_task_runtime() -> Runtime { static RUNTIME: std::sync::OnceLock = std::sync::OnceLock::new(); RUNTIME .get_or_init(|| { - let config = match tokio::runtime::Handle::try_current() { - Ok(handle) => RuntimeConfig::with_existing_handle(handle), - Err(_) => RuntimeConfig::default(), - }; + let config = RuntimeConfig::default(); // Invariant: building the process-wide task runtime is a startup operation. If it // fails the builder cannot compute state roots or open the provider factory, so there // is no meaningful way to continue. diff --git a/crates/rbuilder/src/utils/provider_factory_reopen.rs b/crates/rbuilder/src/utils/provider_factory_reopen.rs index 0b28dfbc3..c41548ef9 100644 --- a/crates/rbuilder/src/utils/provider_factory_reopen.rs +++ b/crates/rbuilder/src/utils/provider_factory_reopen.rs @@ -68,7 +68,7 @@ impl ProviderFactoryReopener let provider_factory = ProviderFactory::new( db, chain_spec.clone(), - StaticFileProvider::read_only(static_files_path.as_path(), true).unwrap(), + StaticFileProvider::read_only(static_files_path.as_path()).unwrap(), open_rocksdb_read_only(rocksdb_path.as_path())?, super::reth_task_runtime(), )?; @@ -131,7 +131,7 @@ impl ProviderFactoryReopener *provider_factory = ProviderFactory::new( provider_factory.db_ref().clone(), self.chain_spec.clone(), - StaticFileProvider::read_only(reopen_paths.static_files_path.as_path(), true) + StaticFileProvider::read_only(reopen_paths.static_files_path.as_path()) .unwrap(), open_rocksdb_read_only(reopen_paths.rocksdb_path.as_path())?, super::reth_task_runtime(), @@ -287,6 +287,7 @@ pub struct RootHasherImpl { hasher: HasherType, sparse_trie_shared_cache: SparseTrieSharedCache, config: RootHashContext, + runtime: reth_tasks::Runtime, } impl RootHasherImpl { @@ -307,6 +308,7 @@ impl RootHasherImpl { hasher, config, sparse_trie_shared_cache, + runtime: super::reth_task_runtime(), } } } @@ -321,6 +323,7 @@ where + ChangeSetReader + StorageChangeSetReader + DBProvider + + BlockNumReader + StorageSettingsCache, > + Send + Sync @@ -369,6 +372,7 @@ where &self.sparse_trie_shared_cache, &mut local_ctx.root_hash_calculator, &self.config, + self.runtime.clone(), ) } } diff --git a/crates/rbuilder/src/utils/receipts.rs b/crates/rbuilder/src/utils/receipts.rs index aa6f1df1e..34a5b9aed 100644 --- a/crates/rbuilder/src/utils/receipts.rs +++ b/crates/rbuilder/src/utils/receipts.rs @@ -1,12 +1,14 @@ use ahash::HashMap; use alloy_consensus::ReceiptWithBloom; use alloy_eips::Encodable2718; -use alloy_primitives::{Bloom, Bytes, B256}; -use alloy_trie::{proof::ProofRetainer, root::adjust_index_for_rlp, HashBuilder, Nibbles}; +use alloy_primitives::{Bloom, Bytes, Log, B256}; +use alloy_trie::{ + proof::ProofRetainer, root::adjust_index_for_rlp, HashBuilder, Nibbles as AlloyNibbles, +}; use eth_sparse_mpt::v2::trie::{proof_store::ProofStore, Trie}; use itertools::Itertools; -use reth::primitives::Receipt; -use reth_primitives::Log; +use nybbles::Nibbles as SparseNibbles; +use reth_ethereum_primitives::Receipt; use crate::building::TransactionExecutionInfo; @@ -141,7 +143,7 @@ fn calculate_receipts_root_and_placeholder_proof_with_cache( }; let target_idx = receipts.len().checked_sub(1).unwrap(); - let nibbles = Nibbles::unpack(alloy_rlp::encode_fixed_size(&target_idx)); + let nibbles = SparseNibbles::unpack(alloy_rlp::encode_fixed_size(&target_idx)); let proof_with_value = trie .get_proof_nibbles_key(&nibbles, &cache.empty_proof_store) .unwrap(); @@ -223,7 +225,7 @@ fn calculate_tx_root_and_placeholder_proof_with_cache( }; let target_idx = executed_tx_infos.len().checked_sub(1).unwrap(); - let nibbles = Nibbles::unpack(alloy_rlp::encode_fixed_size(&target_idx)); + let nibbles = SparseNibbles::unpack(alloy_rlp::encode_fixed_size(&target_idx)); let proof_with_value = trie .get_proof_nibbles_key(&nibbles, &cache.empty_proof_store) .unwrap(); @@ -259,13 +261,13 @@ pub fn ordered_trie_root_and_proof(items: &[Bytes], proof_index: usize) -> (B256 let items_len = items.len(); let proof_target_encoded = alloy_rlp::encode_fixed_size(&proof_index); - let proof_retainer = ProofRetainer::from_iter([Nibbles::unpack(&proof_target_encoded)]); + let proof_retainer = ProofRetainer::from_iter([AlloyNibbles::unpack(&proof_target_encoded)]); let mut hb = HashBuilder::default().with_proof_retainer(proof_retainer); for i in 0..items_len { let index = adjust_index_for_rlp(i, items_len); let index_encoded = alloy_rlp::encode_fixed_size(&index); - hb.add_leaf(Nibbles::unpack(&index_encoded), &items[index]); + hb.add_leaf(AlloyNibbles::unpack(&index_encoded), &items[index]); } let root = hb.root(); @@ -284,9 +286,8 @@ pub fn ordered_trie_root_and_proof(items: &[Bytes], proof_index: usize) -> (B256 #[cfg(test)] mod tests { use alloy_consensus::{TxReceipt, TxType}; - use alloy_primitives::{address, fixed_bytes}; + use alloy_primitives::{address, fixed_bytes, logs_bloom, Log, LogData}; use rbuilder_primitives::BlockSpace; - use reth_primitives::{logs_bloom, Log, LogData}; use crate::utils::test_utils::tx; diff --git a/crates/rbuilder/src/utils/test_utils.rs b/crates/rbuilder/src/utils/test_utils.rs index 80fb9cf2a..20fd6da6c 100644 --- a/crates/rbuilder/src/utils/test_utils.rs +++ b/crates/rbuilder/src/utils/test_utils.rs @@ -1,6 +1,7 @@ use alloy_primitives::{Address, Signature, B256, I256, U256}; use rbuilder_primitives::{OrderId, TransactionSignedEcRecoveredWithBlobs}; -use reth_primitives::{Recovered, Transaction, TransactionSigned}; +use reth_ethereum_primitives::{Transaction, TransactionSigned}; +use reth_primitives_traits::Recovered; pub fn order_id(id: u64) -> OrderId { OrderId::Tx(hash(id)) diff --git a/crates/rbuilder/src/utils/tx_signer.rs b/crates/rbuilder/src/utils/tx_signer.rs index 891ca5544..fff240703 100644 --- a/crates/rbuilder/src/utils/tx_signer.rs +++ b/crates/rbuilder/src/utils/tx_signer.rs @@ -1,6 +1,7 @@ use alloy_consensus::SignableTransaction; use alloy_primitives::{Address, Signature, B256, U256}; -use reth_primitives::{public_key_to_address, Recovered, Transaction, TransactionSigned}; +use reth_ethereum_primitives::{Transaction, TransactionSigned}; +use reth_primitives_traits::{crypto::secp256k1::public_key_to_address, Recovered}; use secp256k1::{Message, SecretKey, SECP256K1}; /// Simple struct to sign txs/messages. From 28b9a4161bcacf671d13939e8b6ba8d385f2f633 Mon Sep 17 00:00:00 2001 From: faheelsattar Date: Tue, 30 Jun 2026 16:29:33 +0200 Subject: [PATCH 2/2] use alloy payload attributes --- crates/eth-sparse-mpt/src/utils.rs | 20 +---- .../src/v1/sparse_mpt/fixed_trie.rs | 6 +- .../eth-sparse-mpt/src/v2/trie/proof_store.rs | 6 +- .../src/v_experimental/trie/proof_store.rs | 6 +- crates/rbuilder-primitives/src/built_block.rs | 6 +- .../rbuilder/benches/benchmarks/mev_boost.rs | 18 ++-- .../rbuilder/src/building/bid_adjustments.rs | 2 +- .../builders/block_building_helper.rs | 6 +- crates/rbuilder/src/building/mod.rs | 90 ++++++++++--------- crates/rbuilder/src/building/order_commit.rs | 4 +- .../rbuilder/src/live_builder/building/mod.rs | 2 +- crates/rbuilder/src/utils/mod.rs | 9 +- crates/rbuilder/src/utils/receipts.rs | 13 ++- 13 files changed, 92 insertions(+), 96 deletions(-) diff --git a/crates/eth-sparse-mpt/src/utils.rs b/crates/eth-sparse-mpt/src/utils.rs index 6446acf51..42a31abfa 100644 --- a/crates/eth-sparse-mpt/src/utils.rs +++ b/crates/eth-sparse-mpt/src/utils.rs @@ -28,14 +28,6 @@ pub fn rlp_pointer(rlp_encode: Bytes) -> Bytes { } } -pub fn convert_nibbles_to_reth_nybbles(key: Nibbles) -> Nibbles { - key -} - -pub fn convert_reth_nybbles_to_nibbles(key: Nibbles) -> Nibbles { - key -} - pub fn concat_path(p1: &Nibbles, p2: &[u8]) -> Nibbles { let mut result = *p1; result.extend_from_slice_unchecked(p2); @@ -60,29 +52,25 @@ pub fn extract_prefix_and_suffix(p1: &Nibbles, p2: &Nibbles) -> (Nibbles, Nibble #[inline] pub fn encode_leaf(key: &Nibbles, value: &[u8], out: &mut dyn BufMut) { - let key = convert_nibbles_to_reth_nybbles(key.clone()); - LeafNodeRef { key: &key, value }.encode(out) + LeafNodeRef { key, value }.encode(out) } pub fn encode_len_leaf(key: &Nibbles, value: &[u8]) -> usize { - let key = convert_nibbles_to_reth_nybbles(key.clone()); - LeafNodeRef { key: &key, value }.length() + LeafNodeRef { key, value }.length() } #[inline] pub fn encode_extension(key: &Nibbles, child_rlp_pointer: &[u8], out: &mut dyn BufMut) { - let key = convert_nibbles_to_reth_nybbles(key.clone()); ExtensionNodeRef { - key: &key, + key, child: child_rlp_pointer, } .encode(out) } pub fn encode_len_extension(key: &Nibbles, child_rlp_pointer: &[u8]) -> usize { - let key = convert_nibbles_to_reth_nybbles(key.clone()); ExtensionNodeRef { - key: &key, + key, child: child_rlp_pointer, } .length() diff --git a/crates/eth-sparse-mpt/src/v1/sparse_mpt/fixed_trie.rs b/crates/eth-sparse-mpt/src/v1/sparse_mpt/fixed_trie.rs index dca46b165..935ead06b 100644 --- a/crates/eth-sparse-mpt/src/v1/sparse_mpt/fixed_trie.rs +++ b/crates/eth-sparse-mpt/src/v1/sparse_mpt/fixed_trie.rs @@ -1,4 +1,4 @@ -use crate::utils::{convert_reth_nybbles_to_nibbles, fast_hash, hash_map_with_capacity, HashMap}; +use crate::utils::{fast_hash, hash_map_with_capacity, HashMap}; use alloy_primitives::{keccak256, Bytes, B256}; use alloy_rlp::Decodable; use alloy_trie::nodes::{ @@ -89,7 +89,7 @@ pub struct FixedLeafNode { impl From for FixedLeafNode { fn from(alloy_leaf_node: AlloyLeafNode) -> Self { Self { - key: convert_reth_nybbles_to_nibbles(alloy_leaf_node.key), + key: alloy_leaf_node.key, value: alloy_leaf_node.value.into(), } } @@ -133,7 +133,7 @@ pub struct FixedExtensionNode { impl From for FixedExtensionNode { fn from(alloy_extension_node: AlloyExtensionNode) -> Self { Self { - key: convert_reth_nybbles_to_nibbles(alloy_extension_node.key), + key: alloy_extension_node.key, child: Bytes::copy_from_slice(alloy_extension_node.child.as_ref()), } } diff --git a/crates/eth-sparse-mpt/src/v2/trie/proof_store.rs b/crates/eth-sparse-mpt/src/v2/trie/proof_store.rs index 202ad1f6d..5abca12aa 100644 --- a/crates/eth-sparse-mpt/src/v2/trie/proof_store.rs +++ b/crates/eth-sparse-mpt/src/v2/trie/proof_store.rs @@ -8,8 +8,6 @@ use dashmap::DashMap; use nybbles::Nibbles; use rustc_hash::FxBuildHasher; -use crate::utils::convert_reth_nybbles_to_nibbles; - #[derive(Debug, Clone)] pub enum ProofNode { Leaf { key: usize, value: usize }, @@ -84,11 +82,11 @@ impl ProofStore { ProofNode::Branch { children } } AlloyTrieNode::Extension(node) => ProofNode::Extension { - key: self.add_key(convert_reth_nybbles_to_nibbles(node.key)), + key: self.add_key(node.key), child: self.add_rlp_ptr(node.child.as_slice().try_into().unwrap()), }, AlloyTrieNode::Leaf(node) => ProofNode::Leaf { - key: self.add_key(convert_reth_nybbles_to_nibbles(node.key)), + key: self.add_key(node.key), value: self.add_value(node.value), }, AlloyTrieNode::EmptyRoot => ProofNode::Empty, diff --git a/crates/eth-sparse-mpt/src/v_experimental/trie/proof_store.rs b/crates/eth-sparse-mpt/src/v_experimental/trie/proof_store.rs index 202ad1f6d..5abca12aa 100644 --- a/crates/eth-sparse-mpt/src/v_experimental/trie/proof_store.rs +++ b/crates/eth-sparse-mpt/src/v_experimental/trie/proof_store.rs @@ -8,8 +8,6 @@ use dashmap::DashMap; use nybbles::Nibbles; use rustc_hash::FxBuildHasher; -use crate::utils::convert_reth_nybbles_to_nibbles; - #[derive(Debug, Clone)] pub enum ProofNode { Leaf { key: usize, value: usize }, @@ -84,11 +82,11 @@ impl ProofStore { ProofNode::Branch { children } } AlloyTrieNode::Extension(node) => ProofNode::Extension { - key: self.add_key(convert_reth_nybbles_to_nibbles(node.key)), + key: self.add_key(node.key), child: self.add_rlp_ptr(node.child.as_slice().try_into().unwrap()), }, AlloyTrieNode::Leaf(node) => ProofNode::Leaf { - key: self.add_key(convert_reth_nybbles_to_nibbles(node.key)), + key: self.add_key(node.key), value: self.add_value(node.value), }, AlloyTrieNode::EmptyRoot => ProofNode::Empty, diff --git a/crates/rbuilder-primitives/src/built_block.rs b/crates/rbuilder-primitives/src/built_block.rs index d16c78485..bcd51d6e3 100644 --- a/crates/rbuilder-primitives/src/built_block.rs +++ b/crates/rbuilder-primitives/src/built_block.rs @@ -41,9 +41,6 @@ impl SignedBuiltBlock { ExecutionPayload::V1(_v1) => { eyre::bail!("v1 payloads are not supported"); } - ExecutionPayload::V4(_v4) => { - eyre::bail!("v4 payloads are not supported"); - } ExecutionPayload::V2(v2) => { Ok(AlloySubmitBlockRequest::Capella(SignedBidSubmissionV2 { message: self.message, @@ -87,6 +84,9 @@ impl SignedBuiltBlock { signature: self.signature, })) } + ExecutionPayload::V4(_v4) => { + eyre::bail!("v4 payloads are not supported"); + } } } } diff --git a/crates/rbuilder/benches/benchmarks/mev_boost.rs b/crates/rbuilder/benches/benchmarks/mev_boost.rs index 88420ccdf..f726636e0 100644 --- a/crates/rbuilder/benches/benchmarks/mev_boost.rs +++ b/crates/rbuilder/benches/benchmarks/mev_boost.rs @@ -1,6 +1,6 @@ use alloy_consensus::{Block, Header}; use alloy_eips::{ - eip4844::{Blob as AlloyBlob, BlobTransactionSidecar}, + eip4844::{c_kzg::Blob, Blob as AlloyBlob, BlobTransactionSidecar}, eip7594::BlobTransactionSidecarVariant, }; use alloy_primitives::U256; @@ -56,13 +56,15 @@ fn bench_mevboost_sign(c: &mut Criterion) { serde_json::from_str(&json_content).expect("Failed to deserialize JSON"); // Extract blob data from JSON and convert it to Blob. - let blobs: Vec = vec![json_value - .get("data") - .unwrap() - .as_str() - .expect("Data is not a valid string") - .parse() - .unwrap()]; + let blob = Blob::from_hex( + json_value + .get("data") + .unwrap() + .as_str() + .expect("Data is not valid string"), + ) + .unwrap(); + let blobs: Vec = vec![AlloyBlob::from_slice(blob.as_ref())]; // Generate a BlobTransactionSidecar from the blobs let blob = BlobTransactionSidecar::try_from_blobs(blobs).unwrap(); diff --git a/crates/rbuilder/src/building/bid_adjustments.rs b/crates/rbuilder/src/building/bid_adjustments.rs index d5ee1db0e..60746b21a 100644 --- a/crates/rbuilder/src/building/bid_adjustments.rs +++ b/crates/rbuilder/src/building/bid_adjustments.rs @@ -25,7 +25,7 @@ pub fn generate_bid_adjustment_state_proofs( let builder_signer = &ctx.builder_signer; let builder_address = builder_signer.address; - let fee_recipient_address = ctx.attributes.suggested_fee_recipient; + let fee_recipient_address = ctx.attributes.suggested_fee_recipient(); let proof_targets = HashSet::from_iter( [builder_address, fee_recipient_address] diff --git a/crates/rbuilder/src/building/builders/block_building_helper.rs b/crates/rbuilder/src/building/builders/block_building_helper.rs index 041f4c0cf..bb66b4a17 100644 --- a/crates/rbuilder/src/building/builders/block_building_helper.rs +++ b/crates/rbuilder/src/building/builders/block_building_helper.rs @@ -266,7 +266,7 @@ impl< check_block_hash_reader_health(last_committed_block, &state_provider)?; let fee_recipient_balance_start = state_provider - .account_balance(&building_ctx.attributes.suggested_fee_recipient)? + .account_balance(&building_ctx.attributes.suggested_fee_recipient())? .unwrap_or_default(); let mut partial_block = PartialBlock::new_with_execution_tracer(discard_txs, partial_block_execution_tracer) @@ -277,7 +277,7 @@ impl< .pre_block_call(&building_ctx, &mut block_state) .map_err(|_| BlockBuildingHelperError::PreBlockCallFailed)?; let payout_tx_space = estimate_payout_gas_limit( - building_ctx.attributes.suggested_fee_recipient, + building_ctx.attributes.suggested_fee_recipient(), &building_ctx, &mut block_state, BlockSpace::ZERO, @@ -368,7 +368,7 @@ impl< let fee_recipient_balance_after = self .block_state - .balance(self.building_ctx.attributes.suggested_fee_recipient)?; + .balance(self.building_ctx.attributes.suggested_fee_recipient())?; let fee_recipient_balance_diff = fee_recipient_balance_after .checked_sub(self._fee_recipient_balance_start) .unwrap_or_default(); diff --git a/crates/rbuilder/src/building/mod.rs b/crates/rbuilder/src/building/mod.rs index ee4622d1b..57e4bbf0c 100644 --- a/crates/rbuilder/src/building/mod.rs +++ b/crates/rbuilder/src/building/mod.rs @@ -32,6 +32,7 @@ use alloy_evm::{block::system_calls::SystemCaller, env::EvmEnv, eth::eip6110, Da use alloy_primitives::{Address, BlockNumber, Bytes, B256, I256, U256}; use alloy_rlp::Encodable as _; use alloy_rpc_types_beacon::events::PayloadAttributesEvent; +use alloy_rpc_types_engine::PayloadAttributes; use cached_reads::SharedCachedReads; use derive_more::Deref; use eth_sparse_mpt::SparseTrieLocalCache; @@ -101,28 +102,37 @@ const BLOCK_HEADER_RLP_OVERHEAD: usize = 1024; pub struct EthPayloadBuilderAttributes { pub id: PayloadId, pub parent: B256, - pub timestamp: u64, - pub suggested_fee_recipient: Address, - pub prev_randao: B256, - pub withdrawals: Withdrawals, - pub parent_beacon_block_root: Option, + pub payload_attributes: PayloadAttributes, } impl EthPayloadBuilderAttributes { pub fn timestamp(&self) -> u64 { - self.timestamp + self.payload_attributes.timestamp } pub fn suggested_fee_recipient(&self) -> Address { - self.suggested_fee_recipient + self.payload_attributes.suggested_fee_recipient } pub fn prev_randao(&self) -> B256 { - self.prev_randao + self.payload_attributes.prev_randao } pub fn parent_beacon_block_root(&self) -> Option { - self.parent_beacon_block_root + self.payload_attributes.parent_beacon_block_root + } + + pub fn withdrawals(&self) -> Withdrawals { + Withdrawals::new( + self.payload_attributes + .withdrawals + .clone() + .unwrap_or_default(), + ) + } + + pub fn slot_number(&self) -> Option { + self.payload_attributes.slot_number } } @@ -179,11 +189,7 @@ impl BlockBuildingContext { let attributes = EthPayloadBuilderAttributes { id: PayloadId::new([0u8; 8]), parent: attributes.data.parent_block_hash, - timestamp: payload_attributes.timestamp, - suggested_fee_recipient: payload_attributes.suggested_fee_recipient, - prev_randao: payload_attributes.prev_randao, - withdrawals: Withdrawals::new(payload_attributes.withdrawals.unwrap_or_default()), - parent_beacon_block_root: payload_attributes.parent_beacon_block_root, + payload_attributes, }; let eth_evm_config = EthEvmConfig::new(chain_spec.clone()); let gas_limit = calculate_block_gas_limit( @@ -200,21 +206,21 @@ impl BlockBuildingContext { suggested_fee_recipient: attributes.suggested_fee_recipient(), prev_randao: attributes.prev_randao(), gas_limit, - withdrawals: Some(attributes.withdrawals.clone()), - parent_beacon_block_root: attributes.parent_beacon_block_root, + withdrawals: Some(attributes.withdrawals()), + parent_beacon_block_root: attributes.parent_beacon_block_root(), extra_data: Bytes::new(), - slot_number: None, + slot_number: attributes.slot_number(), }, ) .ok()?; evm_env.cfg_env.tx_chain_id_check = true; evm_env.block_env.beneficiary = signer.address; - let excess_blob_gas = if chain_spec.is_cancun_active_at_timestamp(attributes.timestamp) { + let excess_blob_gas = if chain_spec.is_cancun_active_at_timestamp(attributes.timestamp()) { if chain_spec.is_cancun_active_at_timestamp(parent.timestamp) { parent.next_block_excess_blob_gas( chain_spec - .blob_params_at_timestamp(attributes.timestamp) + .blob_params_at_timestamp(attributes.timestamp()) .unwrap_or(BlobParams::cancun()), ) } else { @@ -301,11 +307,14 @@ impl BlockBuildingContext { let attributes = EthPayloadBuilderAttributes { id: PayloadId::new([0u8; 8]), parent: onchain_block.header.parent_hash, - timestamp: timestamp_as_u64(&onchain_block), - suggested_fee_recipient, - prev_randao: onchain_block.header.mix_hash, - withdrawals, - parent_beacon_block_root: onchain_block.header.parent_beacon_block_root, + payload_attributes: PayloadAttributes { + timestamp: timestamp_as_u64(&onchain_block), + prev_randao: onchain_block.header.mix_hash, + suggested_fee_recipient, + withdrawals: Some(withdrawals.into_inner()), + parent_beacon_block_root: onchain_block.header.parent_beacon_block_root, + slot_number: onchain_block.header.slot_number, + }, }; let spec_id = spec_id.unwrap_or_else(|| { // we use current block data instead of the parent block data to determine fork @@ -363,12 +372,12 @@ impl BlockBuildingContext { } pub fn timestamp(&self) -> OffsetDateTime { - OffsetDateTime::from_unix_timestamp(self.attributes.timestamp as i64) + OffsetDateTime::from_unix_timestamp(self.attributes.timestamp() as i64) .expect("Payload attributes timestamp") } pub fn timestamp_u64(&self) -> u64 { - self.attributes.timestamp + self.attributes.timestamp() } pub fn block(&self) -> u64 { @@ -898,7 +907,7 @@ impl::default(); - for withdrawal in &ctx.attributes.withdrawals { + for withdrawal in &withdrawals { if withdrawal.amount > 0 { *balance_increments.entry(withdrawal.address).or_default() += withdrawal.amount_wei().to::(); @@ -986,9 +996,7 @@ impl> = Vec::new(); let (excess_blob_gas, blob_gas_used) = if ctx .chain_spec - .is_cancun_active_at_timestamp(ctx.attributes.timestamp) + .is_cancun_active_at_timestamp(ctx.attributes.timestamp()) { // We should NEVER get the wrong sidecar types but we double check here just in case.... let valid_blobs_count = if ctx .chain_spec - .is_osaka_active_at_timestamp(ctx.attributes.timestamp) + .is_osaka_active_at_timestamp(ctx.attributes.timestamp()) { |side_car: &BlobTransactionSidecarVariant| { side_car.as_eip7594().map_or(0, |sc| sc.blobs.len()) @@ -1124,8 +1132,8 @@ impl = if block_ctx .chain_spec - .is_osaka_active_at_timestamp(block_ctx.attributes.timestamp) + .is_osaka_active_at_timestamp(block_ctx.attributes.timestamp()) { Box::new(BlobTypeOrderFilter::new_fusaka(Box::new( order_replacement_manager, diff --git a/crates/rbuilder/src/utils/mod.rs b/crates/rbuilder/src/utils/mod.rs index 19384bca1..897823b8e 100644 --- a/crates/rbuilder/src/utils/mod.rs +++ b/crates/rbuilder/src/utils/mod.rs @@ -10,7 +10,7 @@ use rbuilder_primitives::{ serialize::{RawTx, TxEncoding}, TransactionSignedEcRecoveredWithBlobs, }; -use reth::tasks::{Runtime, RuntimeBuilder, RuntimeConfig}; +use reth::tasks::{Runtime, RuntimeBuilder, RuntimeConfig, TokioConfig}; use time::{format_description::well_known::Rfc3339, OffsetDateTime}; pub mod bls; @@ -41,7 +41,12 @@ pub(crate) fn reth_task_runtime() -> Runtime { static RUNTIME: std::sync::OnceLock = std::sync::OnceLock::new(); RUNTIME .get_or_init(|| { - let config = RuntimeConfig::default(); + let config = match tokio::runtime::Handle::try_current() { + Ok(handle) => { + RuntimeConfig::default().with_tokio(TokioConfig::ExistingHandle(handle)) + } + Err(_) => RuntimeConfig::default(), + }; // Invariant: building the process-wide task runtime is a startup operation. If it // fails the builder cannot compute state roots or open the provider factory, so there // is no meaningful way to continue. diff --git a/crates/rbuilder/src/utils/receipts.rs b/crates/rbuilder/src/utils/receipts.rs index 34a5b9aed..0072584be 100644 --- a/crates/rbuilder/src/utils/receipts.rs +++ b/crates/rbuilder/src/utils/receipts.rs @@ -2,12 +2,9 @@ use ahash::HashMap; use alloy_consensus::ReceiptWithBloom; use alloy_eips::Encodable2718; use alloy_primitives::{Bloom, Bytes, Log, B256}; -use alloy_trie::{ - proof::ProofRetainer, root::adjust_index_for_rlp, HashBuilder, Nibbles as AlloyNibbles, -}; +use alloy_trie::{proof::ProofRetainer, root::adjust_index_for_rlp, HashBuilder, Nibbles}; use eth_sparse_mpt::v2::trie::{proof_store::ProofStore, Trie}; use itertools::Itertools; -use nybbles::Nibbles as SparseNibbles; use reth_ethereum_primitives::Receipt; use crate::building::TransactionExecutionInfo; @@ -143,7 +140,7 @@ fn calculate_receipts_root_and_placeholder_proof_with_cache( }; let target_idx = receipts.len().checked_sub(1).unwrap(); - let nibbles = SparseNibbles::unpack(alloy_rlp::encode_fixed_size(&target_idx)); + let nibbles = Nibbles::unpack(alloy_rlp::encode_fixed_size(&target_idx)); let proof_with_value = trie .get_proof_nibbles_key(&nibbles, &cache.empty_proof_store) .unwrap(); @@ -225,7 +222,7 @@ fn calculate_tx_root_and_placeholder_proof_with_cache( }; let target_idx = executed_tx_infos.len().checked_sub(1).unwrap(); - let nibbles = SparseNibbles::unpack(alloy_rlp::encode_fixed_size(&target_idx)); + let nibbles = Nibbles::unpack(alloy_rlp::encode_fixed_size(&target_idx)); let proof_with_value = trie .get_proof_nibbles_key(&nibbles, &cache.empty_proof_store) .unwrap(); @@ -261,13 +258,13 @@ pub fn ordered_trie_root_and_proof(items: &[Bytes], proof_index: usize) -> (B256 let items_len = items.len(); let proof_target_encoded = alloy_rlp::encode_fixed_size(&proof_index); - let proof_retainer = ProofRetainer::from_iter([AlloyNibbles::unpack(&proof_target_encoded)]); + let proof_retainer = ProofRetainer::from_iter([Nibbles::unpack(&proof_target_encoded)]); let mut hb = HashBuilder::default().with_proof_retainer(proof_retainer); for i in 0..items_len { let index = adjust_index_for_rlp(i, items_len); let index_encoded = alloy_rlp::encode_fixed_size(&index); - hb.add_leaf(AlloyNibbles::unpack(&index_encoded), &items[index]); + hb.add_leaf(Nibbles::unpack(&index_encoded), &items[index]); } let root = hb.root();