diff --git a/Cargo.lock b/Cargo.lock index d8134c96..896d2d4b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -106,9 +106,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.2.32" +version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9247f0a399ef71aeb68f497b2b8fb348014f742b50d3b83b1e00dfe1b7d64b3d" +checksum = "f4e9e31d834fe25fe991b8884e4b9f0e59db4a97d86e05d1464d6899c013cd62" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -302,9 +302,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.27.3" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b991c370ce44e70a3a9e474087e3d65e42e66f967644ad729dc4cec09a21fd09" +checksum = "e13146597a586a4166ac31b192883e08c044272d6b8c43de231ee1f43dd9a115" dependencies = [ "alloy-consensus", "alloy-eips", @@ -315,10 +315,9 @@ dependencies = [ "alloy-sol-types", "auto_impl", "derive_more", - "op-alloy", - "op-revm", "revm", "thiserror 2.0.18", + "tracing", ] [[package]] @@ -477,7 +476,7 @@ dependencies = [ "either", "futures", "futures-utils-wasm", - "lru 0.16.3", + "lru", "parking_lot", "pin-project", "reqwest 0.13.2", @@ -575,9 +574,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.7.3" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42325c117af3a9e49013f881c1474168db57978e02085fc9853a1c89e0562740" +checksum = "b38080c2b01ad1bacbd3583cf7f6f800e5e0ffc11eaddaad7321225733a2d818" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -587,9 +586,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.7.3" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a3100b76987c1b1dc81f3abe592b7edc29e92b1242067a69d65e0030b35cf9" +checksum = "47df51bedb3e6062cb9981187a51e86d0d64a4de66eb0855e9efe6574b044ddf" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -610,9 +609,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.7.3" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a22e13215866f5dfd5d3278f4c41f1fad9410dc68ce39022f58593c873c26f8" +checksum = "f526dbd7bb039327cfd0ccf18c8a29ffd7402616b0c7a0239512bf8417d544c7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -685,9 +684,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.7.3" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe85bf3be739126aa593dca9fb3ab13ca93fa7873e6f2247be64d7f2cb15f34a" +checksum = "8eae9c65ff60dcc262247b6ebb5ad391ddf36d09029802c1768c5723e0cfa2f4" dependencies = [ "alloy-consensus", "alloy-eips", @@ -998,7 +997,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1009,7 +1008,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1612,6 +1611,20 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake3" +version = "1.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.0", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -1739,6 +1752,16 @@ dependencies = [ "serde", ] +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +dependencies = [ + "cc", + "pkg-config", +] + [[package]] name = "c-kzg" version = "2.1.7" @@ -1858,7 +1881,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -2096,6 +2119,12 @@ dependencies = [ "unicode-xid", ] +[[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.10.0" @@ -2206,6 +2235,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -2567,15 +2605,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys", -] - [[package]] name = "dirs-next" version = "2.0.0" @@ -2586,18 +2615,6 @@ dependencies = [ "dirs-sys-next", ] -[[package]] -name = "dirs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.5.2", - "windows-sys 0.60.2", -] - [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -2605,15 +2622,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users 0.4.6", + "redox_users", "winapi", ] [[package]] name = "discv5" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f170f4f6ed0e1df52bf43b403899f0081917ecf1500bfe312505cc3b515a8899" +checksum = "4c7999df38d0bd8f688212e1a4fae31fd2fea6d218649b9cd7c40bf3ec1318fc" dependencies = [ "aes", "aes-gcm", @@ -2629,13 +2646,12 @@ dependencies = [ "hkdf", "lazy_static", "libp2p-identity", - "lru 0.12.5", "more-asserts", "multiaddr", "parking_lot", "rand 0.8.5", "smallvec", - "socket2 0.5.10", + "socket2", "tokio", "tracing", "uint 0.10.0", @@ -2826,7 +2842,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2994,7 +3010,6 @@ dependencies = [ "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -3030,7 +3045,6 @@ dependencies = [ "bytes", "eyre", "reth-ethereum", - "reth-primitives", "reth-revm", "revm", "tracing", @@ -3107,10 +3121,7 @@ dependencies = [ "ev-primitives", "reth-evm", "reth-evm-ethereum", - "reth-primitives", "reth-revm", - "revm-context-interface", - "revm-inspector", "revm-inspectors", "thiserror 2.0.18", ] @@ -3159,7 +3170,6 @@ dependencies = [ "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -3200,7 +3210,6 @@ dependencies = [ "reth-execution-types", "reth-node-api", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", "reth-transaction-pool", "serde", @@ -3506,8 +3515,8 @@ dependencies = [ "libc", "log", "rustversion", - "windows-link", - "windows-result", + "windows-link 0.2.1", + "windows-result 0.4.1", ] [[package]] @@ -3690,9 +3699,6 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", -] [[package]] name = "hashbrown" @@ -3701,7 +3707,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", - "equivalent", "foldhash 0.1.5", ] @@ -3720,11 +3725,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.9.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +checksum = "ea0b22561a9c04a7cb1a302c013e0259cd3b4bb619f145b32f72b8b4bcbed230" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.16.1", ] [[package]] @@ -3937,7 +3942,6 @@ dependencies = [ "hyper-util", "log", "rustls", - "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -3975,7 +3979,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.3", + "socket2", "tokio", "tower-service", "tracing", @@ -3993,7 +3997,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.2", ] [[package]] @@ -4267,14 +4271,15 @@ dependencies = [ [[package]] name = "ipconfig" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +checksum = "4d40460c0ce33d6ce4b0630ad68ff63d6661961c48b6dba35e5a4d81cfb48222" dependencies = [ - "socket2 0.5.10", + "socket2", "widestring", - "windows-sys 0.48.0", - "winreg", + "windows-registry", + "windows-result 0.4.1", + "windows-sys 0.61.2", ] [[package]] @@ -4663,7 +4668,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -4704,9 +4709,9 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" +checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" dependencies = [ "bitflags 2.11.0", "libc", @@ -4714,11 +4719,26 @@ dependencies = [ "redox_syscall 0.7.3", ] +[[package]] +name = "librocksdb-sys" +version = "0.17.3+10.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cef2a00ee60fe526157c9023edab23943fae1ce2ab6f4abb2a807c1746835de9" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + [[package]] name = "libz-sys" -version = "1.1.25" +version = "1.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52f4c29e2a68ac30c9087e1b772dc9f44a2b66ed44edf2266cf2be9b03dafc1" +checksum = "fc3a226e576f50782b3305c5ccf458698f92798987f551c6a02efe8276721e22" dependencies = [ "cc", "libc", @@ -4728,9 +4748,9 @@ dependencies = [ [[package]] name = "line-clipping" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a" +checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" dependencies = [ "bitflags 2.11.0", ] @@ -4798,15 +4818,6 @@ dependencies = [ "tracing-subscriber 0.3.23", ] -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.5", -] - [[package]] name = "lru" version = "0.16.3" @@ -4956,7 +4967,7 @@ dependencies = [ "once_cell", "procfs", "rlimit", - "windows", + "windows 0.62.2", ] [[package]] @@ -5042,9 +5053,9 @@ dependencies = [ [[package]] name = "moka" -version = "0.12.14" +version = "0.12.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85f8024e1c8e71c778968af91d43700ce1d11b219d127d79fb2934153b82b42b" +checksum = "957228ad12042ee839f93c8f257b62b4c0ab5eaae1d4fa60de53b27c9d7c5046" dependencies = [ "crossbeam-channel", "crossbeam-epoch", @@ -5156,7 +5167,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -5330,122 +5341,6 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" -[[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", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "arbitrary", - "derive_more", - "serde", - "serde_with", - "thiserror 2.0.18", -] - -[[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", - "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", - "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", - "alloy-rpc-types-eth", - "alloy-serde", - "derive_more", - "op-alloy-consensus", - "serde", - "serde_json", - "thiserror 2.0.18", -] - -[[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", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-serde", - "derive_more", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", - "op-alloy-consensus", - "serde", - "sha2", - "snap", - "thiserror 2.0.18", -] - -[[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" @@ -5487,9 +5382,9 @@ dependencies = [ [[package]] name = "opentelemetry-otlp" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" +checksum = "1f69cd6acbb9af919df949cd1ec9e5e7fdc2ef15d234b6b795aaa525cc02f71f" dependencies = [ "http", "opentelemetry", @@ -5538,12 +5433,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - [[package]] name = "p256" version = "0.13.2" @@ -5572,7 +5461,6 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ - "arbitrary", "arrayvec", "bitvec", "byte-slice-cast", @@ -5616,7 +5504,7 @@ dependencies = [ "libc", "redox_syscall 0.5.18", "smallvec", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -6029,7 +5917,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.6.3", + "socket2", "thiserror 2.0.18", "tokio", "tracing", @@ -6067,7 +5955,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.3", + "socket2", "tracing", "windows-sys 0.60.2", ] @@ -6230,7 +6118,7 @@ dependencies = [ "indoc", "itertools 0.14.0", "kasuari", - "lru 0.16.3", + "lru", "strum", "thiserror 2.0.18", "unicode-segmentation", @@ -6333,17 +6221,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "redox_users" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 2.0.18", -] - [[package]] name = "ref-cast" version = "1.0.25" @@ -6417,7 +6294,6 @@ dependencies = [ "pin-project-lite", "quinn", "rustls", - "rustls-native-certs", "rustls-pki-types", "serde", "serde_json", @@ -6425,14 +6301,12 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-rustls", - "tokio-util", "tower", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", "web-sys", "webpki-roots 1.0.6", ] @@ -6445,7 +6319,9 @@ checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" dependencies = [ "base64 0.22.1", "bytes", + "futures-channel", "futures-core", + "futures-util", "http", "http-body", "http-body-util", @@ -6462,15 +6338,18 @@ dependencies = [ "rustls-platform-verifier 0.6.2", "serde", "serde_json", + "serde_urlencoded", "sync_wrapper", "tokio", "tokio-rustls", + "tokio-util", "tower", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", ] @@ -6482,8 +6361,8 @@ checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "reth-basic-payload-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6492,6 +6371,7 @@ dependencies = [ "futures-util", "metrics", "reth-chain-state", + "reth-execution-cache", "reth-metrics", "reth-payload-builder", "reth-payload-builder-primitives", @@ -6500,14 +6380,16 @@ 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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6538,8 +6420,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6558,8 +6440,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-genesis", "clap", @@ -6567,13 +6449,12 @@ 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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6582,6 +6463,7 @@ dependencies = [ "alloy-rlp", "arbitrary", "backon", + "blake3", "clap", "comfy-table", "crossterm", @@ -6597,7 +6479,8 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "ratatui", - "reqwest 0.12.28", + "rayon", + "reqwest 0.13.2", "reth-chainspec", "reth-cli", "reth-cli-runner", @@ -6658,8 +6541,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "reth-tasks", "tokio", @@ -6668,8 +6551,8 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6682,14 +6565,16 @@ dependencies = [ "secp256k1 0.30.0", "serde", "thiserror 2.0.18", + "tikv-jemalloc-sys", "tikv-jemallocator", "tracy-client", ] [[package]] name = "reth-codecs" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf1df733d93427eb197cf80a7aaa68bff8949e1b59d34cde1ad410351a24136d" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6699,7 +6584,7 @@ dependencies = [ "arbitrary", "bytes", "modular-bitfield", - "op-alloy-consensus", + "parity-scale-codec", "reth-codecs-derive", "reth-zstd-compressors", "serde", @@ -6708,8 +6593,9 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d14acf8feadf1eed0734d1766b55b6c19a374d4cb140bc862880f96da33e7e5a" dependencies = [ "proc-macro2", "quote", @@ -6718,8 +6604,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "eyre", "humantime-serde", @@ -6734,8 +6620,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6747,11 +6633,12 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-primitives", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -6759,8 +6646,8 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6773,7 +6660,7 @@ dependencies = [ "derive_more", "eyre", "futures", - "reqwest 0.12.28", + "reqwest 0.13.2", "reth-node-api", "reth-primitives-traits", "reth-tracing", @@ -6785,8 +6672,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "derive_more", @@ -6794,6 +6681,7 @@ dependencies = [ "metrics", "page_size", "parking_lot", + "quanta", "reth-db-api", "reth-fs-util", "reth-libmdbx", @@ -6812,11 +6700,10 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", - "alloy-genesis", "alloy-primitives", "arbitrary", "arrayvec", @@ -6824,8 +6711,6 @@ dependencies = [ "derive_more", "metrics", "modular-bitfield", - "op-alloy-consensus", - "parity-scale-codec", "proptest", "reth-codecs", "reth-db-models", @@ -6841,8 +6726,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6871,8 +6756,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6886,8 +6771,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6911,8 +6796,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6935,8 +6820,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "dashmap", @@ -6959,8 +6844,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6994,8 +6879,8 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7030,7 +6915,6 @@ dependencies = [ "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-rpc-api", @@ -7052,8 +6936,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "aes", "alloy-primitives", @@ -7080,8 +6964,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7103,8 +6987,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7127,31 +7011,9 @@ dependencies = [ ] [[package]] -name = "reth-engine-service" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +name = "reth-engine-tree" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eip7928", @@ -7162,7 +7024,6 @@ dependencies = [ "alloy-rpc-types-engine", "crossbeam-channel", "derive_more", - "fixed-cache", "futures", "metrics", "moka", @@ -7176,6 +7037,7 @@ dependencies = [ "reth-errors", "reth-ethereum-primitives", "reth-evm", + "reth-execution-cache", "reth-execution-types", "reth-metrics", "reth-network-p2p", @@ -7199,7 +7061,6 @@ dependencies = [ "revm", "revm-primitives", "schnellru", - "smallvec", "thiserror 2.0.18", "tokio", "tracing", @@ -7207,8 +7068,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -7235,8 +7096,8 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7250,14 +7111,14 @@ dependencies = [ [[package]] name = "reth-era-downloader" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "bytes", "eyre", "futures-util", - "reqwest 0.12.28", + "reqwest 0.13.2", "reth-era", "reth-fs-util", "sha2", @@ -7266,8 +7127,8 @@ dependencies = [ [[package]] name = "reth-era-utils" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7288,8 +7149,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -7299,8 +7160,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7328,8 +7189,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7352,8 +7213,8 @@ dependencies = [ [[package]] name = "reth-ethereum" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -7392,8 +7253,8 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "clap", "eyre", @@ -7415,8 +7276,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7431,26 +7292,24 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-primitives", - "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", "reth-ethereum-primitives", "reth-payload-primitives", "reth-primitives-traits", "serde", - "sha2", "thiserror 2.0.18", ] [[package]] name = "reth-ethereum-forks" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -7463,8 +7322,8 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7478,6 +7337,7 @@ dependencies = [ "reth-ethereum-primitives", "reth-evm", "reth-evm-ethereum", + "reth-execution-cache", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", @@ -7492,28 +7352,22 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", - "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde", - "arbitrary", - "modular-bitfield", "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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "rayon", "reth-db-api", @@ -7522,8 +7376,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7546,16 +7400,14 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", - "derive_more", - "parking_lot", "reth-chainspec", "reth-ethereum-forks", "reth-ethereum-primitives", @@ -7566,10 +7418,28 @@ dependencies = [ "revm", ] +[[package]] +name = "reth-execution-cache" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +dependencies = [ + "alloy-primitives", + "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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-evm", "alloy-primitives", @@ -7581,13 +7451,14 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-primitives", + "alloy-rlp", "derive_more", "reth-ethereum-primitives", "reth-primitives-traits", @@ -7599,8 +7470,8 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7637,8 +7508,8 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7651,8 +7522,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "serde", "serde_json", @@ -7661,8 +7532,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7689,8 +7560,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "bytes", "futures", @@ -7709,11 +7580,12 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "bitflags 2.11.0", "byteorder", + "crossbeam-queue", "dashmap", "derive_more", "parking_lot", @@ -7725,8 +7597,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "bindgen", "cc", @@ -7734,8 +7606,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "futures", "metrics", @@ -7746,8 +7618,8 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "ipnet", @@ -7755,12 +7627,12 @@ dependencies = [ [[package]] name = "reth-net-nat" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "futures-util", "if-addrs", - "reqwest 0.12.28", + "reqwest 0.13.2", "serde_with", "thiserror 2.0.18", "tokio", @@ -7769,8 +7641,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7826,8 +7698,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7851,8 +7723,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7874,8 +7746,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7889,8 +7761,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -7903,8 +7775,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "anyhow", "bincode", @@ -7920,8 +7792,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -7944,8 +7816,8 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7972,7 +7844,6 @@ dependencies = [ "reth-downloaders", "reth-engine-local", "reth-engine-primitives", - "reth-engine-service", "reth-engine-tree", "reth-engine-util", "reth-evm", @@ -8013,8 +7884,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8051,12 +7922,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", "thiserror 2.0.18", "toml 0.9.12+spec-1.1.0", @@ -8068,8 +7939,8 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-network", @@ -8106,8 +7977,8 @@ dependencies = [ [[package]] name = "reth-node-ethstats" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8130,8 +8001,8 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8154,8 +8025,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "bytes", "eyre", @@ -8167,7 +8038,7 @@ dependencies = [ "metrics-process", "metrics-util", "procfs", - "reqwest 0.12.28", + "reqwest 0.13.2", "reth-metrics", "reth-tasks", "tikv-jemalloc-ctl", @@ -8178,8 +8049,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "reth-chainspec", "reth-db-api", @@ -8190,20 +8061,23 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rpc-types", + "derive_more", "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", @@ -8211,8 +8085,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "pin-project", "reth-payload-primitives", @@ -8223,16 +8097,16 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", + "alloy-rlp", "alloy-rpc-types-engine", "auto_impl", "either", - "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -8240,37 +8114,26 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", + "sha2", "thiserror 2.0.18", "tokio", ] [[package]] name = "reth-payload-validator" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", "reth-primitives-traits", ] -[[package]] -name = "reth-primitives" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" -dependencies = [ - "alloy-consensus", - "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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03650bb740d1bca0d974c007248177ae7a7e38c50c9f46eb02292c5d9bc01252" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8280,16 +8143,15 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-trie", "arbitrary", - "auto_impl", "byteorder", "bytes", "dashmap", "derive_more", "modular-bitfield", "once_cell", - "op-alloy-consensus", "proptest", "proptest-arbitrary-interop", + "quanta", "rayon", "reth-codecs", "revm-bytecode", @@ -8297,17 +8159,17 @@ dependencies = [ "revm-state", "secp256k1 0.30.0", "serde", - "serde_with", "thiserror 2.0.18", ] [[package]] name = "reth-provider" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-genesis", "alloy-primitives", "alloy-rpc-types-engine", "eyre", @@ -8340,6 +8202,7 @@ dependencies = [ "reth-trie-db", "revm-database", "revm-state", + "rocksdb", "strum", "tokio", "tracing", @@ -8347,8 +8210,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8376,8 +8239,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "arbitrary", @@ -8392,10 +8255,12 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-debug", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -8405,8 +8270,8 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -8465,6 +8330,7 @@ dependencies = [ "reth-rpc-server-types", "reth-storage-api", "reth-tasks", + "reth-tracing", "reth-transaction-pool", "reth-trie-common", "revm", @@ -8482,8 +8348,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eip7928", "alloy-eips", @@ -8507,13 +8373,14 @@ dependencies = [ "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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-network", "alloy-provider", @@ -8531,9 +8398,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", @@ -8553,8 +8422,8 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-evm", @@ -8562,23 +8431,23 @@ dependencies = [ "alloy-network", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-signer", "auto_impl", "dyn-clone", "jsonrpsee-types", - "reth-ethereum-primitives", "reth-evm", "reth-primitives-traits", + "reth-rpc-traits", "thiserror 2.0.18", ] [[package]] name = "reth-rpc-engine-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-primitives", + "alloy-rlp", "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core", @@ -8604,11 +8473,12 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-dyn-abi", + "alloy-eip7928", "alloy-eips", "alloy-evm", "alloy-json-rpc", @@ -8642,14 +8512,15 @@ 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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8667,7 +8538,7 @@ dependencies = [ "jsonrpsee-types", "metrics", "rand 0.9.2", - "reqwest 0.12.28", + "reqwest 0.13.2", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -8696,8 +8567,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-rpc-types-engine", "http", @@ -8710,8 +8581,8 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8724,21 +8595,37 @@ dependencies = [ "strum", ] +[[package]] +name = "reth-rpc-traits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9230acfd70f7f27bc52da3f397e1896432ce160f9bd460d9788f1a28d61588c" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-signer", + "reth-primitives-traits", + "thiserror 2.0.18", +] + [[package]] name = "reth-stages" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", - "bincode", + "alloy-rlp", "eyre", "futures-util", "itertools 0.14.0", "num-traits", + "page_size", "rayon", - "reqwest 0.12.28", + "reqwest 0.13.2", "reth-chainspec", "reth-codecs", "reth-config", @@ -8754,6 +8641,7 @@ dependencies = [ "reth-execution-types", "reth-exex", "reth-fs-util", + "reth-libmdbx", "reth-network-p2p", "reth-primitives-traits", "reth-provider", @@ -8776,8 +8664,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8785,6 +8673,7 @@ dependencies = [ "auto_impl", "futures-util", "metrics", + "reth-codecs", "reth-consensus", "reth-errors", "reth-metrics", @@ -8803,8 +8692,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "arbitrary", @@ -8817,8 +8706,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "parking_lot", @@ -8837,8 +8726,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "clap", @@ -8852,8 +8741,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8876,13 +8765,14 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "derive_more", + "reth-codecs", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", @@ -8893,17 +8783,20 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ - "auto_impl", - "dyn-clone", + "crossbeam-utils", + "dashmap", "futures-util", + "libc", "metrics", + "parking_lot", "pin-project", "rayon", "reth-metrics", "thiserror 2.0.18", + "thread-priority", "tokio", "tracing", "tracing-futures", @@ -8911,8 +8804,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8927,8 +8820,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "tokio", "tokio-stream", @@ -8937,8 +8830,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "clap", "eyre", @@ -8954,8 +8847,8 @@ dependencies = [ [[package]] name = "reth-tracing-otlp" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "clap", "eyre", @@ -8971,8 +8864,8 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9017,8 +8910,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9043,8 +8936,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -9070,8 +8963,8 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "metrics", @@ -9090,12 +8983,15 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ + "alloy-eip7928", + "alloy-evm", "alloy-primitives", "alloy-rlp", "crossbeam-channel", + "crossbeam-utils", "derive_more", "itertools 0.14.0", "metrics", @@ -9107,16 +9003,16 @@ dependencies = [ "reth-storage-errors", "reth-tasks", "reth-trie", - "reth-trie-common", "reth-trie-sparse", + "revm-state", "thiserror 2.0.18", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.11.3" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "2.0.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9128,23 +9024,27 @@ dependencies = [ "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.git?tag=v1.11.3#d6324d63e27ef6b7c49cdc9b1977c1b808234c7b" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be2e9bda3e45c5d87cfbe811676bfb9cb1f0e6fa82d1dd6a3e8cd996512f236" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "34.0.0" +version = "36.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2aabdebaa535b3575231a88d72b642897ae8106cf6b0d12eafc6bfdf50abfc7" +checksum = "b0abc15d09cd211e9e73410ada10134069c794d4bcdb787dfc16a1bf0939849c" dependencies = [ "revm-bytecode", "revm-context", @@ -9161,9 +9061,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "8.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d1e5c1eaa44d39d537f668bc5c3409dc01e5c8be954da6c83370bbdf006457" +checksum = "e86e468df3cf5cf59fa7ef71a3e9ccabb76bb336401ea2c0674f563104cf3c5e" dependencies = [ "bitvec", "phf", @@ -9173,9 +9073,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "13.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "892ff3e6a566cf8d72ffb627fdced3becebbd9ba64089c25975b9b028af326a5" +checksum = "9eb1f0a76b14d684a444fc52f7bf6b7564bf882599d91ee62e76d602e7a187c7" dependencies = [ "bitvec", "cfg-if", @@ -9190,9 +9090,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "14.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57f61cc6d23678c4840af895b19f8acfbbd546142ec8028b6526c53cc1c16c98" +checksum = "fc256b27743e2912ca16899568e6652a372eb5d1d573e6edb16c7836b16cf487" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -9206,9 +9106,9 @@ dependencies = [ [[package]] name = "revm-database" -version = "10.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529528d0b05fe646be86223032c3e77aa8b05caa2a35447d538c55965956a511" +checksum = "2c0a7d6da41061f2c50f99a2632571026b23684b5449ff319914151f4449b6c8" dependencies = [ "alloy-eips", "revm-bytecode", @@ -9220,9 +9120,9 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "9.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7bf93ac5b91347c057610c0d96e923db8c62807e03f036762d03e981feddc1d" +checksum = "bd497a38a79057b94a049552cb1f925ad15078bc1a479c132aeeebd1d2ccc768" dependencies = [ "auto_impl", "either", @@ -9234,9 +9134,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "15.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cd0e43e815a85eded249df886c4badec869195e70cdd808a13cfca2794622d2" +checksum = "9f1eed729ca9b228ae98688f352235871e9b8be3d568d488e4070f64c56e9d3d" dependencies = [ "auto_impl", "derive-where", @@ -9253,9 +9153,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "15.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3ccad59db91ef93696536a0dbaf2f6f17cfe20d4d8843ae118edb7e97947ef" +checksum = "cbf5102391706513689f91cb3cb3d97b5f13a02e8647e6e9cb7620877ef84847" dependencies = [ "auto_impl", "either", @@ -9271,9 +9171,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.34.2" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e435414e9de50a1b930da602067c76365fea2fea11e80ceb50783c94ddd127f" +checksum = "9487362b728f80dd2033ef5f4d0688453435bbe7caa721fa7e3b8fa25d89242b" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -9289,9 +9189,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "32.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11406408597bc249392d39295831c4b641b3a6f5c471a7c41104a7a1e3564c07" +checksum = "cf22f80612bb8f58fd1f578750281f2afadb6c93835b14ae6a4d6b75ca26f445" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -9338,9 +9238,9 @@ dependencies = [ [[package]] name = "revm-state" -version = "9.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "311720d4f0f239b041375e7ddafdbd20032a33b7bae718562ea188e188ed9fd3" +checksum = "d29404707763da607e5d6e4771cb203998c28159279c2f64cc32de08d2814651" dependencies = [ "alloy-eip7928", "bitflags 2.11.0", @@ -9436,6 +9336,16 @@ dependencies = [ "byteorder", ] +[[package]] +name = "rocksdb" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddb7af00d2b17dbd07d82c0063e25411959748ff03e8d4f96134c2ff41fce34f" +dependencies = [ + "libc", + "librocksdb-sys", +] + [[package]] name = "rolling-file" version = "0.2.0" @@ -9486,6 +9396,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +[[package]] +name = "rustc-demangle" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" + [[package]] name = "rustc-hash" version = "2.1.1" @@ -9529,7 +9445,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -9588,7 +9504,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs 0.26.11", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -9609,7 +9525,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs 1.0.6", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -9893,9 +9809,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ "serde_core", ] @@ -10004,15 +9920,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shellexpand" -version = "3.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32824fab5e16e6c4d86dc1ba84489390419a39f97699852b66480bb87d297ed8" -dependencies = [ - "dirs", -] - [[package]] name = "shlex" version = "1.3.0" @@ -10062,9 +9969,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "simple_asn1" @@ -10096,6 +10003,15 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +[[package]] +name = "slotmap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" +dependencies = [ + "version_check", +] + [[package]] name = "smallvec" version = "1.15.1" @@ -10112,16 +10028,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.3" @@ -10129,7 +10035,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -10268,7 +10174,7 @@ dependencies = [ "ntapi", "objc2-core-foundation", "objc2-io-kit", - "windows", + "windows 0.62.2", ] [[package]] @@ -10304,7 +10210,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -10347,6 +10253,20 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "thread-priority" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2210811179577da3d54eb69ab0b50490ee40491a25d95b8c6011ba40771cb721" +dependencies = [ + "bitflags 2.11.0", + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.61.3", +] + [[package]] name = "thread_local" version = "1.1.9" @@ -10466,7 +10386,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.3", + "socket2", "tokio-macros", "windows-sys 0.61.2", ] @@ -10513,6 +10433,7 @@ dependencies = [ "futures-util", "log", "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -10555,7 +10476,7 @@ checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" dependencies = [ "indexmap 2.13.0", "serde_core", - "serde_spanned 1.0.4", + "serde_spanned 1.1.1", "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "toml_writer", @@ -10632,9 +10553,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "toml_writer" -version = "1.0.7+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17aaa1c6e3dc22b1da4b6bba97d066e354c7945cac2f7852d4e4e7ca7a6b56d" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "tonic" @@ -10815,9 +10736,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", @@ -10905,6 +10826,7 @@ checksum = "a4f6fc3baeac5d86ab90c772e9e30620fc653bf1864295029921a15ef478e6a5" dependencies = [ "loom", "once_cell", + "rustc-demangle", "tracy-client-sys", ] @@ -10915,7 +10837,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5f7c95348f20c1c913d72157b3c6dee6ea3e30b3d19502c5a7f6d3f160dacbf" dependencies = [ "cc", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -11122,9 +11044,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.22.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" +checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" dependencies = [ "getrandom 0.4.2", "js-sys", @@ -11336,9 +11258,9 @@ dependencies = [ [[package]] name = "wasm-streams" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" dependencies = [ "futures-util", "js-sys", @@ -11457,7 +11379,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] @@ -11466,16 +11388,38 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections 0.2.0", + "windows-core 0.61.2", + "windows-future 0.2.1", + "windows-link 0.1.3", + "windows-numerics 0.2.0", +] + [[package]] name = "windows" version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ - "windows-collections", - "windows-core", - "windows-future", - "windows-numerics", + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", ] [[package]] @@ -11484,7 +11428,20 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" dependencies = [ - "windows-core", + "windows-core 0.62.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -11495,9 +11452,20 @@ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading 0.1.0", ] [[package]] @@ -11506,9 +11474,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "windows-core", - "windows-link", - "windows-threading", + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", ] [[package]] @@ -11533,20 +11501,56 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + [[package]] name = "windows-numerics" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-core", - "windows-link", + "windows-core 0.62.2", + "windows-link 0.2.1", +] + +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", ] [[package]] @@ -11555,34 +11559,34 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] name = "windows-strings" -version = "0.5.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] -name = "windows-sys" -version = "0.45.0" +name = "windows-strings" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-targets 0.42.2", + "windows-link 0.2.1", ] [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.42.2", ] [[package]] @@ -11618,7 +11622,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -11636,21 +11640,6 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -11673,7 +11662,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link", + "windows-link 0.2.1", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -11684,13 +11673,22 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + [[package]] name = "windows-threading" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -11699,12 +11697,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -11723,12 +11715,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -11747,12 +11733,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -11783,12 +11763,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -11807,12 +11781,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -11831,12 +11799,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -11855,12 +11817,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -11891,16 +11847,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "wit-bindgen" version = "0.51.0" diff --git a/Cargo.toml b/Cargo.toml index e4696cc2..fe3e2ced 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,110 +16,107 @@ members = [ [workspace.package] version = "0.1.0" edition = "2021" -rust-version = "1.82" +rust-version = "1.93" license = "MIT OR Apache-2.0" homepage = "https://github.com/evstack/ev-reth" repository = "https://github.com/evstack/ev-reth" authors = ["Evolve Stack Contributors"] [workspace.dependencies] -# Reth dependencies - Using v1.11.3 stable -reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-node-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-provider = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-storage-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-tracing = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", default-features = false } -reth-network = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-network-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-chain-state = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-db-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-ethereum-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-engine-local = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-engine-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-ethereum-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", features = ["serde", "serde-bincode-compat", "reth-codec"] } -reth-e2e-test-utils = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", default-features = false } -reth-evm = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v1.11.3" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v1.11.3" } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-node-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v1.11.3" } -reth-ethereum-forks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-revm = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v1.11.3" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-rpc = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-rpc-convert = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } -reth-codecs = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3" } +# Reth dependencies - Using v2.0.0 stable +reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-cli-util = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-node-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-node-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-trie-db = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-primitives-traits = { version = "0.1.0", default-features = false } +reth-provider = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-storage-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-tracing = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } +reth-network = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-network-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-chain-state = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-db-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-ethereum-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-engine-local = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-engine-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-ethereum-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", features = ["serde", "reth-codec"] } +reth-e2e-test-utils = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } +reth-evm = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.0.0" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.0.0" } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-node-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-ethereum-forks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-revm = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.0.0" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-rpc = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-rpc-convert = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } +reth-codecs = { version = "0.1.0", default-features = false } ev-revm = { path = "crates/ev-revm" } ev-primitives = { path = "crates/ev-primitives" } # Consensus dependencies -reth-consensus = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", default-features = false } -reth-consensus-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", default-features = false } -reth-ethereum-consensus = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", default-features = false } +reth-consensus = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } +reth-consensus-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } +reth-ethereum-consensus = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } # Test dependencies -reth-testing-utils = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", default-features = false } -reth-db = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", default-features = false } -reth-tasks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.3", default-features = false } +reth-testing-utils = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } +reth-db = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } +reth-tasks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } -revm = { version = "34.0.0", default-features = false } -revm-context-interface = { version = "14.0.0", default-features = false } +revm = { version = "36.0.0", default-features = false } -# Alloy dependencies (aligned to reth v1.11.3) -alloy = { version = "1.8.3", features = [ +# Alloy dependencies (aligned to reth v2.0.0) +alloy = { version = "1.8.2", features = [ "contract", "providers", "provider-http", "signers", "reqwest-rustls-tls", ], default-features = false } -alloy-evm = { version = "0.27.2", default-features = false } -alloy-eips = { version = "1.8.3", default-features = false } -alloy-network = { version = "1.8.3", default-features = false } -alloy-provider = { version = "1.8.3", default-features = false } -alloy-rpc-client = { version = "1.8.3", default-features = false } -alloy-rpc-types = { version = "1.8.3", default-features = false } -alloy-json-rpc = { version = "1.8.3", default-features = false } -alloy-rpc-types-eth = { version = "1.8.3", default-features = false } -alloy-rpc-types-engine = { version = "1.8.3", default-features = false } -alloy-signer = { version = "1.8.3", default-features = false } -alloy-signer-local = { version = "1.8.3", features = ["mnemonic"] } -alloy-serde = { version = "1.8.3", default-features = false } +alloy-evm = { version = "0.30.0", default-features = false } +alloy-eips = { version = "1.8.2", default-features = false } +alloy-network = { version = "1.8.2", default-features = false } +alloy-provider = { version = "1.8.2", default-features = false } +alloy-rpc-client = { version = "1.8.2", default-features = false } +alloy-rpc-types = { version = "1.8.2", default-features = false } +alloy-json-rpc = { version = "1.8.2", default-features = false } +alloy-rpc-types-eth = { version = "1.8.2", default-features = false } +alloy-rpc-types-engine = { version = "1.8.2", default-features = false } +alloy-signer = { version = "1.8.2", default-features = false } +alloy-signer-local = { version = "1.8.2", features = ["mnemonic"] } +alloy-serde = { version = "1.8.2", default-features = false } alloy-primitives = { version = "1.5.6", default-features = false } -alloy-consensus = { version = "1.8.3", default-features = false } -alloy-consensus-any = { version = "1.8.3", default-features = false } +alloy-consensus = { version = "1.8.2", default-features = false } +alloy-consensus-any = { version = "1.8.2", default-features = false } alloy-rlp = { version = "0.3.13", default-features = false } -alloy-genesis = { version = "1.8.3", default-features = false } -alloy-rpc-types-txpool = { version = "1.8.3", default-features = false } +alloy-genesis = { version = "1.8.2", default-features = false } +alloy-rpc-types-txpool = { version = "1.8.2", default-features = false } alloy-sol-types = { version = "1.5.6", default-features = false } # Utility dependencies bytes = "1.10.1" -revm-inspector = "15.0.0" -revm-inspectors = "0.34.2" +revm-inspectors = "0.36.0" # force newer nybbles for const push_unchecked (needed for Rust 1.92+) nybbles = "0.4.8" diff --git a/crates/ev-precompiles/Cargo.toml b/crates/ev-precompiles/Cargo.toml index c88d9d3b..4a953b88 100644 --- a/crates/ev-precompiles/Cargo.toml +++ b/crates/ev-precompiles/Cargo.toml @@ -7,7 +7,6 @@ license = "MIT" [dependencies] # Reth -reth-primitives = { workspace = true } reth-ethereum = { workspace = true } reth-revm = { workspace = true } diff --git a/crates/ev-precompiles/src/mint.rs b/crates/ev-precompiles/src/mint.rs index 69665976..a98a9c54 100644 --- a/crates/ev-precompiles/src/mint.rs +++ b/crates/ev-precompiles/src/mint.rs @@ -252,9 +252,6 @@ impl Precompile for MintPrecompile { } } - fn is_pure(&self) -> bool { - false - } } #[cfg(test)] diff --git a/crates/ev-primitives/Cargo.toml b/crates/ev-primitives/Cargo.toml index b3bac415..123296aa 100644 --- a/crates/ev-primitives/Cargo.toml +++ b/crates/ev-primitives/Cargo.toml @@ -15,8 +15,5 @@ bytes = { workspace = true } reth-codecs = { workspace = true } reth-db-api = { workspace = true } reth-ethereum-primitives = { workspace = true } -reth-primitives-traits = { workspace = true, features = ["serde-bincode-compat"] } +reth-primitives-traits = { workspace = true } serde = { workspace = true, features = ["derive"] } - -[features] -serde-bincode-compat = ["reth-primitives-traits/serde-bincode-compat"] diff --git a/crates/ev-primitives/src/pool.rs b/crates/ev-primitives/src/pool.rs index c0f5f389..affeecd3 100644 --- a/crates/ev-primitives/src/pool.rs +++ b/crates/ev-primitives/src/pool.rs @@ -8,7 +8,6 @@ //! - [`InMemorySize`]: Memory accounting for pool size limits //! - [`SignerRecoverable`]: Sender address recovery for validation //! - [`TxHashRef`]: Transaction hash access for deduplication -//! - [`SignedTransaction`]: Marker trait for signed transaction types use alloy_consensus::{ error::ValueError, @@ -16,7 +15,7 @@ use alloy_consensus::{ TransactionEnvelope, }; use alloy_primitives::{Address, B256}; -use reth_primitives_traits::{InMemorySize, SignedTransaction}; +use reth_primitives_traits::InMemorySize; use crate::tx::{EvNodeSignedTx, EvTxEnvelope}; @@ -86,4 +85,3 @@ impl From for EvTxEnvelope { } } -impl SignedTransaction for EvPooledTxEnvelope {} diff --git a/crates/ev-primitives/src/tx.rs b/crates/ev-primitives/src/tx.rs index 439d945a..8027de52 100644 --- a/crates/ev-primitives/src/tx.rs +++ b/crates/ev-primitives/src/tx.rs @@ -12,11 +12,9 @@ use reth_codecs::{ txtype::COMPACT_EXTENDED_IDENTIFIER_FLAG, Compact, }; -use reth_db_api::{ - table::{Compress, Decompress}, - DatabaseError, -}; -use reth_primitives_traits::{InMemorySize, SignedTransaction}; +use reth_codecs::DecompressError; +use reth_db_api::table::{Compress, Decompress}; +use reth_primitives_traits::InMemorySize; use std::vec::Vec; /// EIP-2718 transaction type for EvNode batch + sponsorship. @@ -523,10 +521,6 @@ impl Compact for EvTxEnvelope { } } -impl SignedTransaction for EvTxEnvelope {} - -impl reth_primitives_traits::serde_bincode_compat::RlpBincode for EvTxEnvelope {} - impl Compress for EvTxEnvelope { type Compressed = Vec; @@ -536,7 +530,7 @@ impl Compress for EvTxEnvelope { } impl Decompress for EvTxEnvelope { - fn decompress(value: &[u8]) -> Result { + fn decompress(value: &[u8]) -> Result { let (obj, _) = Compact::from_compact(value, value.len()); Ok(obj) } diff --git a/crates/ev-revm/Cargo.toml b/crates/ev-revm/Cargo.toml index 29a0b416..cacc1411 100644 --- a/crates/ev-revm/Cargo.toml +++ b/crates/ev-revm/Cargo.toml @@ -13,11 +13,8 @@ alloy-evm.workspace = true alloy-primitives.workspace = true reth-revm.workspace = true reth-evm.workspace = true -reth-primitives.workspace = true reth-evm-ethereum.workspace = true -revm-inspector.workspace = true revm-inspectors.workspace = true -revm-context-interface.workspace = true thiserror.workspace = true ev-precompiles = { path = "../ev-precompiles" } ev-primitives = { path = "../ev-primitives" } diff --git a/crates/ev-revm/src/evm.rs b/crates/ev-revm/src/evm.rs index c628fa09..6ce0e8c9 100644 --- a/crates/ev-revm/src/evm.rs +++ b/crates/ev-revm/src/evm.rs @@ -22,7 +22,7 @@ use reth_revm::{ }, Context, }; -use revm_inspector::JournalExt; +use reth_revm::revm::inspector::JournalExt; use std::ops::{Deref, DerefMut}; /// Convenience alias matching the stock mainnet EVM signature. @@ -37,28 +37,6 @@ pub struct EvEvm { inspect: bool, } -impl EvEvm -where - CTX: ContextTr + ContextSetters, - P: Default, -{ - /// Creates a new wrapper configured with the provided redirect policy. - pub fn new(ctx: CTX, inspector: INSP, redirect: Option) -> Self { - Self { - inner: Evm { - ctx, - inspector, - instruction: EthInstructions::new_mainnet(), - precompiles: P::default(), - frame_stack: FrameStack::new(), - }, - redirect, - deploy_allowlist: None, - inspect: false, - } - } -} - impl EvEvm { /// Wraps an existing EVM instance with the redirect policy. pub fn from_inner( @@ -116,7 +94,7 @@ impl EvEvm { } /// Exposes a mutable reference to the wrapped `Evm`. - pub(crate) fn inner_mut( + pub(crate) const fn inner_mut( &mut self, ) -> &mut Evm, P, EthFrame> { diff --git a/crates/ev-revm/src/factory.rs b/crates/ev-revm/src/factory.rs index e177507a..89394775 100644 --- a/crates/ev-revm/src/factory.rs +++ b/crates/ev-revm/src/factory.rs @@ -319,12 +319,13 @@ impl EvTxEvmFactory { env: EvmEnv, inspector: I, ) -> EvRevmEvm { + let spec = env.cfg_env.spec; let precompiles = PrecompilesMap::from_static(Precompiles::new( - PrecompileSpecId::from_spec_id(env.cfg_env.spec), + PrecompileSpecId::from_spec_id(spec), )); let mut journaled_state = reth_revm::revm::Journal::new(db); - journaled_state.set_spec_id(env.cfg_env.spec); + journaled_state.set_spec_id(spec); let ctx = Context { block: env.block_env, @@ -339,7 +340,7 @@ impl EvTxEvmFactory { RevmEvm { ctx, inspector, - instruction: EthInstructions::new_mainnet(), + instruction: EthInstructions::new_mainnet_with_spec(spec), precompiles, frame_stack: FrameStack::new(), } @@ -531,9 +532,10 @@ mod tests { .transact_raw(tx) .expect("transaction executes without error"); - let ExecutionResult::Success { gas_used, .. } = result_and_state.result else { + let ExecutionResult::Success { gas, .. } = result_and_state.result else { panic!("expected successful execution"); }; + let gas_used = gas.used(); let state: EvmState = result_and_state.state; let sink_account = state diff --git a/crates/ev-revm/src/handler.rs b/crates/ev-revm/src/handler.rs index 0751e43a..383ad3ce 100644 --- a/crates/ev-revm/src/handler.rs +++ b/crates/ev-revm/src/handler.rs @@ -369,8 +369,9 @@ where &mut self, evm: &mut Self::Evm, result: ::FrameResult, + result_gas: reth_revm::revm::context_interface::result::ResultGas, ) -> Result, Self::Error> { - self.inner.execution_result(evm, result) + self.inner.execution_result(evm, result, result_gas) } } @@ -708,7 +709,7 @@ mod tests { use reth_revm::revm::context_interface::result::{EVMError, InvalidTransaction}; type TestContext = Context, EmptyDB>; - type TestEvm = EvEvm; + type TestEvm = EvEvm; type TestError = EVMError; type TestHandler = EvHandler>; @@ -716,6 +717,8 @@ mod tests { use reth_revm::revm::{ bytecode::Bytecode as RevmBytecode, context::{BlockEnv, CfgEnv, TxEnv}, + handler::EthPrecompiles, + MainBuilder, }; const BASE_FEE: u64 = 100; @@ -1327,7 +1330,7 @@ mod tests { ctx.tx.kind = TxKind::Create; ctx.tx.gas_limit = 1_000_000; - let mut evm = EvEvm::new(ctx, NoOpInspector, None); + let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, Some(allowlist)); let result = handler.validate_against_state_and_deduct_caller(&mut evm); @@ -1349,7 +1352,7 @@ mod tests { // gas_price=0 so no balance is required ctx.tx.gas_price = 0; - let mut evm = EvEvm::new(ctx, NoOpInspector, None); + let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, Some(allowlist)); let result = handler.validate_against_state_and_deduct_caller(&mut evm); @@ -1372,7 +1375,7 @@ mod tests { ctx.tx.gas_limit = 1_000_000; ctx.tx.gas_price = 0; - let mut evm = EvEvm::new(ctx, NoOpInspector, None); + let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, None); let result = handler.validate_against_state_and_deduct_caller(&mut evm); @@ -1396,7 +1399,7 @@ mod tests { ctx.tx.gas_limit = 1_000_000; ctx.tx.gas_price = 0; - let mut evm = EvEvm::new(ctx, NoOpInspector, None); + let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, Some(allowlist)); let result = handler.validate_against_state_and_deduct_caller(&mut evm); @@ -1421,7 +1424,7 @@ mod tests { ctx.tx.gas_limit = 1_000_000; ctx.tx.gas_price = 0; - let mut evm = EvEvm::new(ctx, NoOpInspector, None); + let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, Some(allowlist)); let result = handler.validate_against_state_and_deduct_caller(&mut evm); @@ -1431,6 +1434,11 @@ mod tests { ); } + fn build_test_evm(ctx: TestContext, redirect: Option, deploy_allowlist: Option) -> TestEvm { + let inner = ctx.build_mainnet_with_inspector(NoOpInspector); + EvEvm::from_inner(inner, redirect, deploy_allowlist, false) + } + fn setup_evm(redirect: BaseFeeRedirect, beneficiary: Address) -> (TestEvm, TestHandler) { let mut ctx = Context::mainnet().with_db(EmptyDB::default()); ctx.block.basefee = BASE_FEE; @@ -1440,7 +1448,7 @@ mod tests { ctx.tx.gas_price = GAS_PRICE; ctx.tx.gas_limit = 1_000_000; - let mut evm = EvEvm::new(ctx, NoOpInspector, Some(redirect)); + let mut evm = build_test_evm(ctx, Some(redirect), None); { let journal = evm.ctx_mut().journal_mut(); journal.load_account(redirect.fee_sink()).unwrap(); diff --git a/crates/ev-revm/src/tx_env.rs b/crates/ev-revm/src/tx_env.rs index b6672e76..24f6d569 100644 --- a/crates/ev-revm/src/tx_env.rs +++ b/crates/ev-revm/src/tx_env.rs @@ -1,7 +1,7 @@ use alloy_evm::{FromRecoveredTx, FromTxWithEncoded}; use alloy_primitives::{Address, Bytes, U256}; use ev_primitives::{Call, EvTxEnvelope}; -use reth_evm::TransactionEnv; +use alloy_evm::TransactionEnvMut; use reth_revm::revm::{ context::TxEnv, context_interface::{ @@ -65,7 +65,7 @@ impl EvTxEnv { } /// Returns the underlying `TxEnv` mutably. - pub fn inner_mut(&mut self) -> &mut TxEnv { + pub const fn inner_mut(&mut self) -> &mut TxEnv { &mut self.inner } @@ -187,15 +187,11 @@ impl RevmTransaction for EvTxEnv { } } -impl TransactionEnv for EvTxEnv { +impl TransactionEnvMut for EvTxEnv { fn set_gas_limit(&mut self, gas_limit: u64) { self.inner.gas_limit = gas_limit; } - fn nonce(&self) -> u64 { - self.inner.nonce - } - fn set_nonce(&mut self, nonce: u64) { self.inner.nonce = nonce; } diff --git a/crates/evolve/Cargo.toml b/crates/evolve/Cargo.toml index 98871ac5..e85da2d7 100644 --- a/crates/evolve/Cargo.toml +++ b/crates/evolve/Cargo.toml @@ -11,7 +11,6 @@ description = "Evolve-specific types and integration for ev-reth" [dependencies] # Reth dependencies reth-payload-primitives.workspace = true -reth-primitives.workspace = true reth-primitives-traits.workspace = true reth-engine-primitives.workspace = true reth-transaction-pool.workspace = true @@ -43,6 +42,8 @@ eyre.workspace = true [dev-dependencies] serde_json.workspace = true +alloy-consensus.workspace = true +reth-primitives-traits.workspace = true [lints] workspace = true diff --git a/crates/evolve/tests/consensus_tests.rs b/crates/evolve/tests/consensus_tests.rs index 22db2691..e409d3a3 100644 --- a/crates/evolve/tests/consensus_tests.rs +++ b/crates/evolve/tests/consensus_tests.rs @@ -3,7 +3,8 @@ use evolve_ev_reth::consensus::EvolveConsensus; use reth_chainspec::MAINNET; use reth_consensus::{ConsensusError, HeaderValidator}; -use reth_primitives::{Header, SealedHeader}; +use alloy_consensus::Header; +use reth_primitives_traits::SealedHeader; fn create_test_header(number: u64, parent_hash: [u8; 32], timestamp: u64) -> SealedHeader { let header = Header { @@ -27,7 +28,7 @@ fn test_evolve_consensus_allows_same_timestamp() { let parent = create_test_header(1, [0u8; 32], 1000); // Create child block with SAME timestamp (this should be allowed) - let child_header = reth_primitives::Header { + let child_header = Header { number: 2, parent_hash: parent.hash(), timestamp: 1000, diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index a0910c92..147dc502 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -23,7 +23,6 @@ reth-ethereum = { workspace = true, features = ["node", "cli", "pool"] } reth-ethereum-forks.workspace = true reth-ethereum-payload-builder.workspace = true reth-payload-primitives.workspace = true -reth-primitives.workspace = true reth-primitives-traits.workspace = true reth-node-api.workspace = true reth-provider = { workspace = true, features = ["test-utils"] } diff --git a/crates/node/src/attributes.rs b/crates/node/src/attributes.rs index 06bbd86b..d387b62b 100644 --- a/crates/node/src/attributes.rs +++ b/crates/node/src/attributes.rs @@ -1,5 +1,4 @@ use alloy_consensus::BlockHeader; -use alloy_eips::{eip4895::Withdrawals, Decodable2718}; use alloy_primitives::{Address, Bytes, B256}; use alloy_rpc_types::{ engine::{PayloadAttributes as RpcPayloadAttributes, PayloadId}, @@ -7,18 +6,11 @@ use alloy_rpc_types::{ }; use reth_chainspec::EthereumHardforks; use reth_engine_local::payload::LocalPayloadAttributesBuilder; -use reth_ethereum::node::api::payload::{PayloadAttributes, PayloadBuilderAttributes}; -use reth_payload_builder::EthPayloadBuilderAttributes; -use reth_payload_primitives::PayloadAttributesBuilder; +use reth_ethereum::node::api::payload::PayloadAttributes; +use reth_payload_primitives::{payload_id, PayloadAttributesBuilder}; use reth_primitives_traits::SealedHeader; use serde::{Deserialize, Serialize}; -use crate::tracing_ext::RecordDurationOnDrop; -use tracing::{info, instrument}; - -use crate::error::EvolveEngineError; -use ev_primitives::TransactionSigned; - /// Evolve payload attributes that support passing transactions via Engine API. #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct EvolveEnginePayloadAttributes { @@ -33,6 +25,10 @@ pub struct EvolveEnginePayloadAttributes { } impl PayloadAttributes for EvolveEnginePayloadAttributes { + fn payload_id(&self, parent_hash: &B256) -> PayloadId { + payload_id(parent_hash, &self.inner) + } + fn timestamp(&self) -> u64 { self.inner.timestamp() } @@ -56,97 +52,6 @@ impl From for EvolveEnginePayloadAttributes { } } -/// Evolve payload builder attributes. -#[derive(Clone, Debug, PartialEq, Eq)] -pub struct EvolveEnginePayloadBuilderAttributes { - /// Ethereum payload builder attributes. - pub ethereum_attributes: EthPayloadBuilderAttributes, - /// Decoded transactions from the Engine API. - pub transactions: Vec, - /// Gas limit for the payload. - pub gas_limit: Option, -} - -impl PayloadBuilderAttributes for EvolveEnginePayloadBuilderAttributes { - type RpcPayloadAttributes = EvolveEnginePayloadAttributes; - type Error = EvolveEngineError; - - #[instrument(skip(parent, attributes, _version), fields( - parent_hash = %parent, - raw_tx_count = attributes.transactions.as_ref().map_or(0, |t| t.len()), - gas_limit = ?attributes.gas_limit, - duration_ms = tracing::field::Empty, - ))] - fn try_new( - parent: B256, - attributes: EvolveEnginePayloadAttributes, - _version: u8, - ) -> Result { - let _duration = RecordDurationOnDrop::new(); - let ethereum_attributes = EthPayloadBuilderAttributes::new(parent, attributes.inner); - - // Decode transactions from bytes if provided. - let transactions = attributes - .transactions - .unwrap_or_default() - .into_iter() - .map(|tx_bytes| { - TransactionSigned::network_decode(&mut tx_bytes.as_ref()) - .map_err(|e| EvolveEngineError::InvalidTransactionData(e.to_string())) - }) - .collect::, _>>()?; - - info!( - decoded_tx_count = transactions.len(), - "decoded payload attributes" - ); - - Ok(Self { - ethereum_attributes, - transactions, - gas_limit: attributes.gas_limit, - }) - } - - fn payload_id(&self) -> PayloadId { - self.ethereum_attributes.id - } - - fn parent(&self) -> B256 { - self.ethereum_attributes.parent - } - - fn timestamp(&self) -> u64 { - self.ethereum_attributes.timestamp - } - - fn parent_beacon_block_root(&self) -> Option { - self.ethereum_attributes.parent_beacon_block_root - } - - fn suggested_fee_recipient(&self) -> Address { - self.ethereum_attributes.suggested_fee_recipient - } - - fn prev_randao(&self) -> B256 { - self.ethereum_attributes.prev_randao - } - - fn withdrawals(&self) -> &Withdrawals { - &self.ethereum_attributes.withdrawals - } -} - -impl From for EvolveEnginePayloadBuilderAttributes { - fn from(eth: EthPayloadBuilderAttributes) -> Self { - Self { - ethereum_attributes: eth, - transactions: Vec::new(), - gas_limit: None, - } - } -} - impl PayloadAttributesBuilder for LocalPayloadAttributesBuilder { @@ -182,48 +87,3 @@ impl PayloadAttributesBuilder } } -#[cfg(test)] -mod tests { - use super::*; - use crate::test_utils::SpanCollector; - - #[test] - fn try_new_span_has_expected_fields() { - let collector = SpanCollector::new(); - let _guard = collector.as_default(); - - let parent = B256::random(); - let attrs = EvolveEnginePayloadAttributes { - inner: RpcPayloadAttributes { - timestamp: 1710338136, - prev_randao: B256::random(), - suggested_fee_recipient: Address::random(), - withdrawals: Some(vec![]), - parent_beacon_block_root: Some(B256::ZERO), - }, - transactions: Some(vec![]), - gas_limit: Some(30_000_000), - }; - - // we only care that the span was created with the right fields. - let _ = EvolveEnginePayloadBuilderAttributes::try_new(parent, attrs, 3); - - let span = collector - .find_span("try_new") - .expect("try_new span should be recorded"); - - assert!( - span.has_field("parent_hash"), - "span missing parent_hash field" - ); - assert!( - span.has_field("raw_tx_count"), - "span missing raw_tx_count field" - ); - assert!(span.has_field("gas_limit"), "span missing gas_limit field"); - assert!( - span.has_field("duration_ms"), - "span missing duration_ms field" - ); - } -} diff --git a/crates/node/src/builder.rs b/crates/node/src/builder.rs index 139e5f6a..5b397ade 100644 --- a/crates/node/src/builder.rs +++ b/crates/node/src/builder.rs @@ -12,7 +12,8 @@ use reth_evm::{ ConfigureEvm, NextBlockEnvAttributes, }; use reth_payload_builder_primitives::PayloadBuilderError; -use reth_primitives::{transaction::SignedTransaction, Header, SealedHeader}; +use alloy_consensus::Header; +use reth_primitives_traits::{SealedHeader, SignedTransaction}; use reth_primitives_traits::SealedBlock; use reth_provider::{HeaderProvider, StateProviderFactory}; use reth_revm::{database::StateProviderDatabase, State}; @@ -182,7 +183,7 @@ where trie_updates: _, block, } = builder - .finish(&state_provider) + .finish(&state_provider, None) .map_err(PayloadBuilderError::other)?; let sealed_block = block.sealed_block().clone(); @@ -240,7 +241,7 @@ mod tests { use alloy_primitives::B256; use evolve_ev_reth::EvolvePayloadAttributes; use reth_chainspec::ChainSpecBuilder; - use reth_primitives::Header; + use alloy_consensus::Header; use reth_provider::test_utils::MockEthProvider; #[tokio::test] @@ -373,7 +374,7 @@ mod tests { input: Bytes::default(), }; let signed = alloy_consensus::Signed::new_unhashed( - reth_primitives::Transaction::Legacy(legacy_tx), + reth_ethereum_primitives::Transaction::Legacy(legacy_tx), Signature::test_signature(), ); let tx = EvTxEnvelope::Ethereum(reth_ethereum_primitives::TransactionSigned::from(signed)); diff --git a/crates/node/src/evm_executor.rs b/crates/node/src/evm_executor.rs index a18b82e7..239f5b1c 100644 --- a/crates/node/src/evm_executor.rs +++ b/crates/node/src/evm_executor.rs @@ -15,7 +15,7 @@ use alloy_evm::{ spec::{EthExecutorSpec, EthSpec}, EthBlockExecutionCtx, }, - Database, EthEvmFactory, Evm, EvmFactory, FromRecoveredTx, FromTxWithEncoded, RecoveredTx, + EthEvmFactory, Evm, EvmFactory, FromRecoveredTx, FromTxWithEncoded, RecoveredTx, }; use alloy_primitives::Log; use ev_primitives::{Receipt, TransactionSigned}; @@ -23,7 +23,7 @@ use reth_ethereum_forks::EthereumHardfork; use reth_revm::{ context_interface::block::Block as BlockEnvTr, database_interface::DatabaseCommitExt, - revm::{context_interface::result::ResultAndState, database::State, DatabaseCommit, Inspector}, + revm::{context_interface::result::ResultAndState, DatabaseCommit, Inspector}, }; /// Execution result wrapper used by the EV block executor. @@ -46,6 +46,10 @@ impl alloy_evm::block::TxResult for EvTxResult { fn result(&self) -> &ResultAndState { &self.result } + + fn into_result(self) -> ResultAndState { + self.result + } } /// Receipt builder that works with Ev transaction envelopes. @@ -110,11 +114,10 @@ where } } -impl<'db, DB, E, Spec, R> BlockExecutor for EvBlockExecutor<'_, E, Spec, R> +impl BlockExecutor for EvBlockExecutor<'_, E, Spec, R> where - DB: Database + 'db, E: Evm< - DB = &'db mut State, + DB: alloy_evm::block::state::StateDB, Tx: FromRecoveredTx + FromTxWithEncoded, >, Spec: EthExecutorSpec, @@ -127,11 +130,6 @@ where EvTxResult<::HaltReason, ::TxType>; fn apply_pre_execution_changes(&mut self) -> Result<(), BlockExecutionError> { - let state_clear_flag = self - .spec - .is_spurious_dragon_active_at_block(self.evm.block().number().saturating_to()); - self.evm.db_mut().set_state_clear_flag(state_clear_flag); - self.system_caller .apply_blockhashes_contract_call(self.ctx.parent_hash, &mut self.evm)?; self.system_caller @@ -350,12 +348,12 @@ where fn create_executor<'a, DB, I>( &'a self, - evm: EvmF::Evm<&'a mut State, I>, + evm: EvmF::Evm, ctx: Self::ExecutionCtx<'a>, ) -> impl BlockExecutorFor<'a, Self, DB, I> where - DB: Database + 'a, - I: Inspector>> + 'a, + DB: alloy_evm::block::state::StateDB + 'a, + I: Inspector> + 'a, { EvBlockExecutor::new(evm, ctx, self.spec.clone(), self.receipt_builder.clone()) } diff --git a/crates/node/src/executor.rs b/crates/node/src/executor.rs index 0eb63955..baa45d37 100644 --- a/crates/node/src/executor.rs +++ b/crates/node/src/executor.rs @@ -21,7 +21,7 @@ use reth_ethereum::{ use reth_ethereum_forks::Hardforks; use reth_evm::{ ConfigureEngineEvm, ConfigureEvm, EvmEnv, EvmEnvFor, ExecutableTxIterator, ExecutionCtxFor, - NextBlockEnvAttributes, TransactionEnv, + NextBlockEnvAttributes, TransactionEnvMut, }; use reth_node_builder::PayloadBuilderConfig; use reth_primitives_traits::{ @@ -96,7 +96,7 @@ impl ConfigureEvm for EvEvmConfig where ChainSpec: EthExecutorSpec + EthChainSpec
+ Hardforks + 'static, EvmF: reth_evm::EvmFactory< - Tx: TransactionEnv, + Tx: TransactionEnvMut, Spec = SpecId, BlockEnv = BlockEnv, Precompiles = reth_evm::precompiles::PrecompilesMap, @@ -171,6 +171,7 @@ where gas_limit: header.gas_limit, basefee: header.base_fee_per_gas.unwrap_or_default(), blob_excess_gas_and_price, + slot_num: 0, // EL client — CL slot tracking not applicable }; Ok(EvmEnv { cfg_env, block_env }) @@ -247,6 +248,7 @@ where gas_limit, basefee: basefee.unwrap_or_default(), blob_excess_gas_and_price, + slot_num: 0, // EL client — CL slot tracking not applicable }; Ok(EvmEnv { @@ -268,7 +270,7 @@ where .body() .withdrawals .as_ref() - .map(std::borrow::Cow::Borrowed), + .map(|w| std::borrow::Cow::Borrowed(w.as_slice())), extra_data: block.header().extra_data.clone(), }) } @@ -283,7 +285,9 @@ where parent_hash: parent.hash(), parent_beacon_block_root: attributes.parent_beacon_block_root, ommers: &[], - withdrawals: attributes.withdrawals.map(std::borrow::Cow::Owned), + withdrawals: attributes + .withdrawals + .map(|w| std::borrow::Cow::Owned(w.into_inner())), extra_data: attributes.extra_data, }) } @@ -293,7 +297,7 @@ impl ConfigureEngineEvm for EvEvmConfig + Hardforks + 'static, EvmF: reth_evm::EvmFactory< - Tx: TransactionEnv + FromRecoveredTx + FromTxWithEncoded, + Tx: TransactionEnvMut + FromRecoveredTx + FromTxWithEncoded, Spec = SpecId, BlockEnv = BlockEnv, Precompiles = reth_evm::precompiles::PrecompilesMap, @@ -350,6 +354,7 @@ where gas_limit: payload.payload.gas_limit(), basefee: payload.payload.saturated_base_fee_per_gas(), blob_excess_gas_and_price, + slot_num: 0, // EL client — CL slot tracking not applicable }; Ok(EvmEnv { cfg_env, block_env }) @@ -367,7 +372,7 @@ where withdrawals: payload .payload .withdrawals() - .map(|w| std::borrow::Cow::Owned(w.clone().into())), + .map(|w| std::borrow::Cow::Owned(w.clone())), extra_data: payload.payload.as_v1().extra_data.clone(), }) } @@ -448,7 +453,7 @@ where ); Ok(EvEvmConfig::new_with_evm_factory(chain_spec, factory) - .with_extra_data(ctx.payload_builder_config().extra_data_bytes())) + .with_extra_data(ctx.payload_builder_config().extra_data())) } /// Thin wrapper so we can plug the EV executor into the node components builder. diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs index 3007acdb..543d5196 100644 --- a/crates/node/src/lib.rs +++ b/crates/node/src/lib.rs @@ -41,7 +41,7 @@ mod test_utils; // Re-export public types for convenience. pub use args::EvolveArgs; -pub use attributes::{EvolveEnginePayloadAttributes, EvolveEnginePayloadBuilderAttributes}; +pub use attributes::EvolveEnginePayloadAttributes; pub use builder::{create_payload_builder_service, EvolvePayloadBuilder}; pub use chainspec::EvolveChainSpecParser; pub use config::{ConfigError, EvolvePayloadBuilderConfig}; diff --git a/crates/node/src/node.rs b/crates/node/src/node.rs index 9f1e5885..d0988f65 100644 --- a/crates/node/src/node.rs +++ b/crates/node/src/node.rs @@ -26,7 +26,7 @@ use std::sync::Arc; use tracing::info; use crate::{ - attributes::{EvolveEnginePayloadAttributes, EvolveEnginePayloadBuilderAttributes}, + attributes::EvolveEnginePayloadAttributes, executor::EvolveExecutorBuilder, payload_service::EvolvePayloadBuilderBuilder, payload_types::EvBuiltPayload, @@ -44,7 +44,6 @@ impl PayloadTypes for EvolveEngineTypes { type ExecutionData = ExecutionData; type BuiltPayload = EvBuiltPayload; type PayloadAttributes = EvolveEnginePayloadAttributes; - type PayloadBuilderAttributes = EvolveEnginePayloadBuilderAttributes; fn block_to_payload( block: SealedBlock< diff --git a/crates/node/src/payload_service.rs b/crates/node/src/payload_service.rs index bb0cb2f3..d62cb0ba 100644 --- a/crates/node/src/payload_service.rs +++ b/crates/node/src/payload_service.rs @@ -11,7 +11,7 @@ use reth_basic_payload_builder::{ use reth_ethereum::{ chainspec::{ChainSpec, ChainSpecProvider}, node::{ - api::{payload::PayloadBuilderAttributes, FullNodeTypes, NodeTypes}, + api::{payload::PayloadAttributes, FullNodeTypes, NodeTypes}, builder::{components::PayloadBuilderBuilder, BuilderContext}, }, pool::{PoolTransaction, TransactionPool}, @@ -23,8 +23,10 @@ use reth_revm::cached::CachedReads; use tokio::runtime::Handle; use tracing::{info, instrument}; +use alloy_eips::Decodable2718; + use crate::{ - attributes::EvolveEnginePayloadBuilderAttributes, builder::EvolvePayloadBuilder, + attributes::EvolveEnginePayloadAttributes, builder::EvolvePayloadBuilder, config::EvolvePayloadBuilderConfig, executor::EvolveEvmConfig, node::EvolveEngineTypes, payload_types::EvBuiltPayload, }; @@ -123,6 +125,29 @@ where } } +impl EvolveEnginePayloadBuilder +where + Client: Clone, +{ + /// Resolves the fee recipient: uses the suggested value from attributes, falling back + /// to the configured base-fee sink when the suggested value is zero. + fn resolve_fee_recipient(&self, suggested: Address, block_number: u64) -> Address { + if suggested != Address::ZERO { + return suggested; + } + if let Some(sink) = self.config.base_fee_sink_for_block(block_number) { + info!( + target: "ev-reth", + fee_sink = ?sink, + block_number, + "Suggested fee recipient missing; defaulting to base-fee sink" + ); + return sink; + } + suggested + } +} + impl PayloadBuilder for EvolveEnginePayloadBuilder where Client: reth_ethereum::provider::StateProviderFactory @@ -136,12 +161,12 @@ where + Unpin + 'static, { - type Attributes = EvolveEnginePayloadBuilderAttributes; + type Attributes = EvolveEnginePayloadAttributes; type BuiltPayload = EvBuiltPayload; #[instrument(skip(self, args), fields( tx_count = tracing::field::Empty, - payload_id = %args.config.attributes.payload_id(), + payload_id = %args.config.payload_id(), duration_ms = tracing::field::Empty, ))] fn try_build( @@ -154,10 +179,12 @@ where config, cancel: _, best_payload: _, + .. } = args; let PayloadConfig { parent_header, - attributes, + mut attributes, + payload_id, } = config; info!("building payload"); @@ -169,18 +196,8 @@ where set_current_block_gas_limit(effective_gas_limit); let block_number = parent_header.number + 1; - let mut fee_recipient = attributes.suggested_fee_recipient(); - if fee_recipient == Address::ZERO { - if let Some(sink) = self.config.base_fee_sink_for_block(block_number) { - info!( - target: "ev-reth", - fee_sink = ?sink, - block_number, - "Suggested fee recipient missing; defaulting to base-fee sink" - ); - fee_recipient = sink; - } - } + let fee_recipient = + self.resolve_fee_recipient(attributes.inner.suggested_fee_recipient, block_number); // In dev mode, pull pending transactions from the txpool. // In production, transactions come exclusively from Engine API attributes. @@ -199,7 +216,25 @@ where } pool_txs } else { - attributes.transactions.clone() + // Decode transactions from raw bytes. + attributes + .transactions + .take() + .unwrap_or_default() + .into_iter() + .filter_map(|tx_bytes| { + match TransactionSigned::network_decode(&mut tx_bytes.as_ref()) { + Ok(tx) => Some(tx), + Err(err) => { + tracing::warn!( + %err, + "dropping undecodable transaction from payload attributes" + ); + None + } + } + }) + .collect() }; tracing::Span::current().record("tx_count", transactions.len()); @@ -208,9 +243,9 @@ where transactions, Some(effective_gas_limit), attributes.timestamp(), - attributes.prev_randao(), + attributes.inner.prev_randao, fee_recipient, - attributes.parent(), + parent_header.hash(), block_number, ); @@ -230,7 +265,7 @@ where // Convert to EvBuiltPayload. let gas_used = sealed_block.gas_used; let built_payload = EvBuiltPayload::new( - attributes.payload_id(), // Use the proper payload ID from attributes. + payload_id, Arc::new(sealed_block), U256::from(gas_used), // Block gas used. None, // No blob sidecar for evolve. @@ -243,7 +278,7 @@ where } #[instrument(skip(self, config), fields( - payload_id = %config.attributes.payload_id(), + payload_id = %config.payload_id(), duration_ms = tracing::field::Empty, ))] fn build_empty_payload( @@ -254,6 +289,7 @@ where let PayloadConfig { parent_header, attributes, + payload_id, } = config; info!("building empty payload"); @@ -265,26 +301,16 @@ where set_current_block_gas_limit(effective_gas_limit); let block_number = parent_header.number + 1; - let mut fee_recipient = attributes.suggested_fee_recipient(); - if fee_recipient == Address::ZERO { - if let Some(sink) = self.config.base_fee_sink_for_block(block_number) { - info!( - target: "ev-reth", - fee_sink = ?sink, - block_number, - "Suggested fee recipient missing; defaulting to base-fee sink" - ); - fee_recipient = sink; - } - } + let fee_recipient = + self.resolve_fee_recipient(attributes.inner.suggested_fee_recipient, block_number); let evolve_attrs = EvolvePayloadAttributes::new( vec![], Some(effective_gas_limit), attributes.timestamp(), - attributes.prev_randao(), + attributes.inner.prev_randao, fee_recipient, - attributes.parent(), + parent_header.hash(), block_number, ); @@ -297,7 +323,7 @@ where let gas_used = sealed_block.gas_used; Ok(EvBuiltPayload::new( - attributes.payload_id(), + payload_id, Arc::new(sealed_block), U256::from(gas_used), None, @@ -327,7 +353,7 @@ mod tests { use alloy_rpc_types::engine::PayloadAttributes as RpcPayloadAttributes; use reth_basic_payload_builder::PayloadConfig; use reth_chainspec::ChainSpecBuilder; - use reth_payload_builder::EthPayloadBuilderAttributes; + use reth_payload_primitives::PayloadAttributes; use reth_primitives_traits::SealedHeader; use reth_provider::test_utils::MockEthProvider; use reth_revm::{cached::CachedReads, cancelled::CancelOnDrop}; @@ -387,20 +413,25 @@ mod tests { dev_mode: false, }; - let rpc_attrs = RpcPayloadAttributes { - timestamp: 1710338136, - prev_randao: B256::random(), - suggested_fee_recipient: Address::random(), - withdrawals: Some(vec![]), - parent_beacon_block_root: Some(B256::ZERO), + let attrs = EvolveEnginePayloadAttributes { + inner: RpcPayloadAttributes { + timestamp: 1710338136, + prev_randao: B256::random(), + suggested_fee_recipient: Address::random(), + withdrawals: Some(vec![]), + parent_beacon_block_root: Some(B256::ZERO), + }, + transactions: None, + gas_limit: Some(30_000_000), }; - let eth_attrs = EthPayloadBuilderAttributes::new(genesis_hash, rpc_attrs); - let builder_attrs = EvolveEnginePayloadBuilderAttributes::from(eth_attrs); + let payload_id = attrs.payload_id(&genesis_hash); let sealed_parent = SealedHeader::new(genesis_header, genesis_hash); - let payload_config = PayloadConfig::new(Arc::new(sealed_parent), builder_attrs); + let payload_config = PayloadConfig::new(Arc::new(sealed_parent), attrs, payload_id); let args = BuildArguments::new( CachedReads::default(), + None, + None, payload_config, CancelOnDrop::default(), None, @@ -478,18 +509,21 @@ mod tests { dev_mode: false, }; - let rpc_attrs = RpcPayloadAttributes { - timestamp: 1710338136, - prev_randao: B256::random(), - suggested_fee_recipient: Address::random(), - withdrawals: Some(vec![]), - parent_beacon_block_root: Some(B256::ZERO), + let attrs = EvolveEnginePayloadAttributes { + inner: RpcPayloadAttributes { + timestamp: 1710338136, + prev_randao: B256::random(), + suggested_fee_recipient: Address::random(), + withdrawals: Some(vec![]), + parent_beacon_block_root: Some(B256::ZERO), + }, + transactions: None, + gas_limit: Some(30_000_000), }; - let eth_attrs = EthPayloadBuilderAttributes::new(genesis_hash, rpc_attrs); - let builder_attrs = EvolveEnginePayloadBuilderAttributes::from(eth_attrs); + let payload_id = attrs.payload_id(&genesis_hash); let sealed_parent = SealedHeader::new(genesis_header, genesis_hash); - let payload_config = PayloadConfig::new(Arc::new(sealed_parent), builder_attrs); + let payload_config = PayloadConfig::new(Arc::new(sealed_parent), attrs, payload_id); // we only care that the span was created with the right fields. let _ = engine_builder.build_empty_payload(payload_config); @@ -507,4 +541,89 @@ mod tests { "span missing duration_ms field" ); } + + #[tokio::test(flavor = "multi_thread", worker_threads = 2)] + async fn try_build_drops_invalid_raw_transactions() { + let genesis: alloy_genesis::Genesis = + serde_json::from_str(include_str!("../../tests/assets/genesis.json")) + .expect("valid genesis"); + let chain_spec = Arc::new( + ChainSpecBuilder::default() + .chain(reth_chainspec::Chain::from_id(1234)) + .genesis(genesis) + .cancun_activated() + .build(), + ); + + let provider = MockEthProvider::default(); + let genesis_hash = B256::from_slice( + &hex::decode("2b8bbb1ea1e04f9c9809b4b278a8687806edc061a356c7dbc491930d8e922503") + .unwrap(), + ); + let genesis_state_root = B256::from_slice( + &hex::decode("05e9954443da80d86f2104e56ffdfd98fe21988730684360104865b3dc8191b4") + .unwrap(), + ); + + let genesis_header = Header { + state_root: genesis_state_root, + number: 0, + gas_limit: 30_000_000, + timestamp: 1710338135, + base_fee_per_gas: Some(0), + excess_blob_gas: Some(0), + blob_gas_used: Some(0), + parent_beacon_block_root: Some(B256::ZERO), + ..Default::default() + }; + provider.add_header(genesis_hash, genesis_header.clone()); + + let config = EvolvePayloadBuilderConfig::from_chain_spec(chain_spec.as_ref()).unwrap(); + let evm_config = EvolveEvmConfig::new(chain_spec); + let evolve_builder = Arc::new(EvolvePayloadBuilder::new( + Arc::new(provider), + evm_config, + config.clone(), + )); + + let engine_builder = EvolveEnginePayloadBuilder { + evolve_builder, + config, + pool: NoopTransactionPool::::new(), + dev_mode: false, + }; + + // Include garbage bytes that cannot be decoded as valid transactions. + let invalid_tx = alloy_primitives::Bytes::from_static(&[0xde, 0xad, 0xbe, 0xef]); + let attrs = EvolveEnginePayloadAttributes { + inner: RpcPayloadAttributes { + timestamp: 1710338136, + prev_randao: B256::random(), + suggested_fee_recipient: Address::random(), + withdrawals: Some(vec![]), + parent_beacon_block_root: Some(B256::ZERO), + }, + transactions: Some(vec![invalid_tx]), + gas_limit: Some(30_000_000), + }; + let payload_id = attrs.payload_id(&genesis_hash); + + let sealed_parent = SealedHeader::new(genesis_header, genesis_hash); + let payload_config = PayloadConfig::new(Arc::new(sealed_parent), attrs, payload_id); + let args = BuildArguments::new( + CachedReads::default(), + None, + None, + payload_config, + CancelOnDrop::default(), + None, + ); + + // The build should succeed — invalid transactions are dropped, not fatal. + let result = engine_builder.try_build(args); + assert!( + result.is_ok(), + "build should succeed even with invalid raw transactions, got: {result:?}" + ); + } } diff --git a/crates/node/src/rpc.rs b/crates/node/src/rpc.rs index 9521cda8..0c6f3fb7 100644 --- a/crates/node/src/rpc.rs +++ b/crates/node/src/rpc.rs @@ -17,11 +17,10 @@ use reth_node_builder::rpc::{EthApiBuilder, EthApiCtx}; use reth_rpc::EthApi; use reth_rpc_convert::{ transaction::{ - ConvertReceiptInput, ReceiptConverter, RpcTxConverter, SimTxConverter, TryIntoSimTx, - TxEnvConverter, + ConvertReceiptInput, ReceiptConverter, RpcTxConverter, SimTxConverter, TxEnvConverter, }, EthTxEnvError, RpcConvert, RpcConverter, RpcTransaction, RpcTxReq, RpcTypes, - SignTxRequestError, SignableTxRequest, TryIntoTxEnv, + SignTxRequestError, SignableTxRequest, TryIntoSimTx, TryIntoTxEnv, }; use reth_rpc_eth_api::{ helpers::pending_block::BuildPendingEnv, FromEvmError, FullEthApiServer, RpcNodeCore, @@ -300,12 +299,14 @@ impl TryIntoSimTx for EvTransactionRequest { } } -impl TryIntoTxEnv for EvTransactionRequest { +impl TryIntoTxEnv + for EvTransactionRequest +{ type Err = EthTxEnvError; - fn try_into_tx_env( + fn try_into_tx_env( self, - evm_env: &alloy_evm::EvmEnv, + evm_env: &alloy_evm::EvmEnv, ) -> Result { self.0.try_into_tx_env(evm_env).map(EvTxEnv::from) } @@ -350,9 +351,23 @@ where EvTxEnvelope::Ethereum(_) => None, }; let receipt = build_receipt(input, blob_params, |receipt, next_log_index, meta| { - let rpc_receipt = receipt.into_rpc(next_log_index, meta); - let tx_type = u8::from(rpc_receipt.tx_type); - let inner = >::from(rpc_receipt).with_bloom(); + let tx_type = u8::from(receipt.tx_type); + let mut log_index = next_log_index; + let mapped = receipt.map_logs(|log| { + let idx = log_index; + log_index += 1; + Log { + inner: log, + block_hash: Some(meta.block_hash), + block_number: Some(meta.block_number), + block_timestamp: Some(meta.timestamp), + transaction_hash: Some(meta.tx_hash), + transaction_index: Some(meta.index), + log_index: Some(idx as u64), + removed: false, + } + }); + let inner = >::from(mapped).with_bloom(); AnyReceiptEnvelope { inner, r#type: tx_type, diff --git a/crates/node/src/txpool.rs b/crates/node/src/txpool.rs index c9ebb456..8c155c19 100644 --- a/crates/node/src/txpool.rs +++ b/crates/node/src/txpool.rs @@ -58,6 +58,10 @@ impl PoolTransaction for EvPooledTransaction { type Consensus = EvTxEnvelope; type Pooled = EvPooledTxEnvelope; + fn consensus_ref(&self) -> Recovered<&Self::Consensus> { + Recovered::new_unchecked(self.inner.transaction.inner(), self.inner.transaction.signer()) + } + fn clone_into_consensus(&self) -> Recovered { self.inner.transaction().clone() } @@ -598,7 +602,7 @@ where // - Sender balance for non-sponsored EvNode and standard Ethereum transactions .disable_balance_check() .with_additional_tasks(ctx.config().txpool.additional_validation_tasks) - .build_with_tasks::( + .build_with_tasks::( ctx.task_executor().clone(), blob_store.clone(), ) diff --git a/crates/tests/Cargo.toml b/crates/tests/Cargo.toml index 5fa689e7..eab44b44 100644 --- a/crates/tests/Cargo.toml +++ b/crates/tests/Cargo.toml @@ -28,7 +28,6 @@ reth-tasks.workspace = true reth-tracing.workspace = true reth-provider = { workspace = true, features = ["test-utils"] } reth-payload-primitives.workspace = true -reth-primitives.workspace = true reth-primitives-traits.workspace = true reth-node-api.workspace = true reth-payload-builder.workspace = true diff --git a/crates/tests/src/common.rs b/crates/tests/src/common.rs index da45a9d9..f55ab10b 100644 --- a/crates/tests/src/common.rs +++ b/crates/tests/src/common.rs @@ -16,7 +16,8 @@ use ev_revm::{ use eyre::Result; use reth_chainspec::{ChainSpec, ChainSpecBuilder}; use reth_node_api::TreeConfig; -use reth_primitives::{Header, Transaction}; +use alloy_consensus::Header; +use reth_ethereum_primitives::Transaction; use reth_provider::test_utils::{ExtendedAccount, MockEthProvider}; use serde_json::json; use tempfile::TempDir; @@ -109,7 +110,6 @@ pub fn create_test_chain_spec_with_deploy_allowlist( pub fn e2e_test_tree_config() -> TreeConfig { TreeConfig::default() .with_legacy_state_root(true) - .with_disable_proof_v2(true) } /// Shared test fixture for evolve payload builder tests