diff --git a/Cargo.lock b/Cargo.lock index 3fd5e04a..15c34ea1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -35,7 +35,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -106,9 +106,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.33" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4e9e31d834fe25fe991b8884e4b9f0e59db4a97d86e05d1464d6899c013cd62" +checksum = "84e0378e959aa6a885897522080a990e80eb317f1e9a222a604492ea50e13096" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -116,7 +116,7 @@ dependencies = [ "num_enum", "proptest", "serde", - "strum 0.27.2", + "strum", ] [[package]] @@ -139,7 +139,7 @@ dependencies = [ "either", "k256", "once_cell", - "rand 0.8.5", + "rand 0.8.6", "secp256k1 0.30.0", "serde", "serde_json", @@ -189,7 +189,7 @@ dependencies = [ "alloy-rlp", "arbitrary", "crc", - "rand 0.8.5", + "rand 0.8.6", "serde", "thiserror 2.0.18", ] @@ -204,7 +204,7 @@ dependencies = [ "alloy-rlp", "arbitrary", "borsh", - "rand 0.8.5", + "rand 0.8.6", "serde", ] @@ -219,7 +219,7 @@ dependencies = [ "arbitrary", "borsh", "k256", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_with", "thiserror 2.0.18", @@ -227,14 +227,15 @@ dependencies = [ [[package]] name = "alloy-eip7928" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8222b1d88f9a6d03be84b0f5e76bb60cd83991b43ad8ab6477f0e4a7809b98d" +checksum = "ec6ae911a2fc304a7cb80a79fb7bed6d1474aed4e7c203df1f8ff538f64fc78d" dependencies = [ "alloy-primitives", "alloy-rlp", "arbitrary", "borsh", + "once_cell", "serde", ] @@ -257,8 +258,8 @@ dependencies = [ "c-kzg", "derive_more 2.1.1", "either", - "ethereum_ssz", - "ethereum_ssz_derive", + "ethereum_ssz 0.9.1", + "ethereum_ssz_derive 0.9.1", "serde", "serde_with", "sha2 0.10.9", @@ -266,9 +267,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.26.4" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b99ba7b74a87176f31ee1cd26768f7155b0eeff61ed925f59b13085ffe5f891" +checksum = "e13146597a586a4166ac31b192883e08c044272d6b8c43de231ee1f43dd9a115" dependencies = [ "alloy-consensus", "alloy-eips", @@ -279,10 +280,9 @@ dependencies = [ "alloy-sol-types", "auto_impl", "derive_more 2.1.1", - "op-alloy", - "op-revm", "revm", "thiserror 2.0.18", + "tracing", ] [[package]] @@ -396,19 +396,19 @@ dependencies = [ "foldhash 0.2.0", "getrandom 0.4.2", "hashbrown 0.16.1", - "indexmap 2.13.0", + "indexmap 2.14.0", "itoa", "k256", "keccak-asm", "paste", "proptest", "proptest-derive", - "rand 0.9.2", + "rand 0.9.4", "rapidhash", "ruint", "rustc-hash", "serde", - "sha3 0.10.8", + "sha3 0.10.9", ] [[package]] @@ -442,10 +442,10 @@ dependencies = [ "either", "futures", "futures-utils-wasm", - "lru 0.16.3", + "lru 0.16.4", "parking_lot", "pin-project", - "reqwest 0.13.2", + "reqwest 0.13.3", "serde", "serde_json", "thiserror 2.0.18", @@ -479,9 +479,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" +checksum = "dc90b1e703d3c03f4ff7f48e82dd0bc1c8211ab7d079cd836a06fcfeb06651cb" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -490,9 +490,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8849c74c9ca0f5a03da1c865e3eb6f768df816e67dd3721a398a8a7e398011" +checksum = "f36834a5c0a2fa56e171bf256c34d70fca07d0c0031583edea1c4946b7889c9e" dependencies = [ "proc-macro2", "quote", @@ -514,7 +514,7 @@ dependencies = [ "alloy-transport-ws", "futures", "pin-project", - "reqwest 0.13.2", + "reqwest 0.13.3", "serde", "serde_json", "tokio", @@ -583,8 +583,8 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "derive_more 2.1.1", - "ethereum_ssz", - "ethereum_ssz_derive", + "ethereum_ssz 0.9.1", + "ethereum_ssz_derive 0.9.1", "serde", "serde_json", "serde_with", @@ -617,12 +617,12 @@ dependencies = [ "alloy-rlp", "alloy-serde", "derive_more 2.1.1", - "ethereum_ssz", - "ethereum_ssz_derive", + "ethereum_ssz 0.9.1", + "ethereum_ssz_derive 0.9.1", "jsonwebtoken", - "rand 0.8.5", + "rand 0.8.6", "serde", - "strum 0.27.2", + "strum", ] [[package]] @@ -729,7 +729,7 @@ dependencies = [ "coins-bip32", "coins-bip39", "k256", - "rand 0.8.5", + "rand 0.8.6", "thiserror 2.0.18", "zeroize", ] @@ -757,11 +757,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.13.0", + "indexmap 2.14.0", "proc-macro-error2", "proc-macro2", "quote", - "sha3 0.10.8", + "sha3 0.10.9", "syn 2.0.117", "syn-solidity", ] @@ -836,7 +836,7 @@ dependencies = [ "alloy-json-rpc", "alloy-transport", "itertools 0.14.0", - "reqwest 0.13.2", + "reqwest 0.13.3", "serde_json", "tower", "tracing", @@ -873,10 +873,10 @@ dependencies = [ "alloy-transport", "futures", "http 1.4.0", - "rustls 0.23.37", + "rustls 0.23.40", "serde_json", "tokio", - "tokio-tungstenite 0.28.0", + "tokio-tungstenite", "tracing", "url", "ws_stream_wasm", @@ -1332,7 +1332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -1342,7 +1342,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -1352,7 +1352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -1378,9 +1378,9 @@ checksum = "4858a9d740c5007a9069007c3b4e91152d0506f13c1b31dd49051fd537656156" [[package]] name = "async-compression" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" +checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac" dependencies = [ "compression-codecs", "compression-core", @@ -1467,9 +1467,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.16.2" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" +checksum = "0ec6fb3fe69024a75fa7e1bfb48aa6cf59706a101658ea01bfd33b2b248a038f" dependencies = [ "aws-lc-sys", "zeroize", @@ -1477,9 +1477,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.39.1" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" +checksum = "f50037ee5e1e41e7b8f9d161680a725bd1626cb6f8c7e901f91f942850852fe7" dependencies = [ "cc", "cmake", @@ -1509,7 +1509,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -1573,31 +1573,13 @@ dependencies = [ "serde", ] -[[package]] -name = "bindgen" -version = "0.71.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" -dependencies = [ - "bitflags 2.11.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.117", -] - [[package]] name = "bindgen" version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1663,9 +1645,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" dependencies = [ "serde_core", ] @@ -1683,6 +1665,20 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake3" +version = "1.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.0", +] + [[package]] name = "block-buffer" version = "0.7.3" @@ -1766,11 +1762,11 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6339a700715bda376f5ea65c76e8fe8fc880930d8b0638cea68e7f3da6538e0a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "boa_interner", "boa_macros", "boa_string", - "indexmap 2.13.0", + "indexmap 2.14.0", "num-bigint", "rustc-hash", ] @@ -1783,7 +1779,7 @@ checksum = "1521be326f8a5c8887e95d4ce7f002917a002a23f7b93b9a6a2bf50ed4157824" dependencies = [ "aligned-vec", "arrayvec", - "bitflags 2.11.0", + "bitflags 2.11.1", "boa_ast", "boa_gc", "boa_interner", @@ -1802,7 +1798,7 @@ dependencies = [ "futures-lite", "hashbrown 0.16.1", "icu_normalizer", - "indexmap 2.13.0", + "indexmap 2.14.0", "intrusive-collections", "itertools 0.14.0", "num-bigint", @@ -1811,7 +1807,7 @@ dependencies = [ "num_enum", "paste", "portable-atomic", - "rand 0.9.2", + "rand 0.9.4", "regress", "rustc-hash", "ryu-js", @@ -1848,7 +1844,7 @@ dependencies = [ "boa_gc", "boa_macros", "hashbrown 0.16.1", - "indexmap 2.13.0", + "indexmap 2.14.0", "once_cell", "phf 0.13.1", "rustc-hash", @@ -1875,7 +1871,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35bd957fa9fa93e3a001a8aba5a5cd40c2bbfde486378be4c4b472fd304aaddb" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "boa_ast", "boa_interner", "boa_macros", @@ -1985,7 +1981,6 @@ dependencies = [ "reth-ethereum-primitives", "reth-evm", "reth-evm-ethereum", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -2123,9 +2118,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87a0c0e6148f11f01f32650a2ea02d532b2ad4e81d8bd41e6e565b5adc5e6082" +checksum = "dd0061da739915fae12ea00e16397555ed4371a6bb285431aab930f61b0aa4ba" dependencies = [ "serde", "serde_core", @@ -2139,7 +2134,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform 0.1.9", - "semver 1.0.27", + "semver 1.0.28", "serde", "serde_json", ] @@ -2151,19 +2146,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9" dependencies = [ "camino", - "cargo-platform 0.3.2", - "semver 1.0.27", + "cargo-platform 0.3.3", + "semver 1.0.28", "serde", "serde_json", "thiserror 2.0.18", ] -[[package]] -name = "cassowary" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" - [[package]] name = "castaway" version = "0.2.4" @@ -2175,9 +2164,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.58" +version = "1.2.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" +checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" dependencies = [ "find-msvc-tools", "jobserver", @@ -2223,7 +2212,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -2249,9 +2238,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -2271,9 +2260,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck", "proc-macro2", @@ -2323,7 +2312,7 @@ dependencies = [ "hmac", "once_cell", "pbkdf2 0.12.2", - "rand 0.8.5", + "rand 0.8.6", "sha2 0.10.9", "thiserror 1.0.69", ] @@ -2343,7 +2332,7 @@ dependencies = [ "ripemd", "serde", "sha2 0.10.9", - "sha3 0.10.8", + "sha3 0.10.9", "thiserror 1.0.69", ] @@ -2472,9 +2461,9 @@ dependencies = [ "getrandom 0.2.17", "peg", "pin-project", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.11.27", - "semver 1.0.27", + "semver 1.0.28", "serde", "serde_bytes", "serde_json", @@ -2485,7 +2474,7 @@ dependencies = [ "tokio", "tracing", "url", - "uuid 1.23.0", + "uuid 1.23.1", "walkdir", ] @@ -2495,16 +2484,16 @@ version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" dependencies = [ - "crossterm 0.29.0", + "crossterm", "unicode-segmentation", - "unicode-width 0.2.0", + "unicode-width", ] [[package]] name = "compact_str" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" +checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" dependencies = [ "castaway", "cfg-if", @@ -2516,9 +2505,9 @@ dependencies = [ [[package]] name = "compression-codecs" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" +checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf" dependencies = [ "brotli", "compression-core", @@ -2530,9 +2519,9 @@ dependencies = [ [[package]] name = "compression-core" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" +checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789" [[package]] name = "concat-kdf" @@ -2550,7 +2539,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "proptest", "serde_core", ] @@ -2569,11 +2558,12 @@ checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" [[package]] name = "const_format" -version = "0.2.35" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" +checksum = "4481a617ad9a412be3b97c5d403fef8ed023103368908b9c50af598ff467cc1e" dependencies = [ "const_format_proc_macros", + "konst", ] [[package]] @@ -2587,6 +2577,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 = "contracts" version = "0.6.7" @@ -2639,15 +2635,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - [[package]] name = "cow-utils" version = "0.1.3" @@ -2663,6 +2650,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc" version = "3.4.0" @@ -2674,9 +2670,9 @@ dependencies = [ [[package]] name = "crc-catalog" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" [[package]] name = "crc32fast" @@ -2722,26 +2718,19 @@ dependencies = [ ] [[package]] -name = "crossbeam-utils" -version = "0.8.21" +name = "crossbeam-queue" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] [[package]] -name = "crossterm" -version = "0.28.1" +name = "crossbeam-utils" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" -dependencies = [ - "bitflags 2.11.0", - "crossterm_winapi", - "mio", - "parking_lot", - "rustix 0.38.44", - "signal-hook", - "signal-hook-mio", - "winapi", -] +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crossterm" @@ -2749,11 +2738,15 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "crossterm_winapi", + "derive_more 2.1.1", "document-features", + "mio", "parking_lot", - "rustix 1.1.4", + "rustix", + "signal-hook", + "signal-hook-mio", "winapi", ] @@ -2824,7 +2817,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", @@ -2946,25 +2939,27 @@ version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ + "arbitrary", "cfg-if", "crossbeam-utils", "hashbrown 0.14.5", "lock_api", "once_cell", "parking_lot_core", + "serde", ] [[package]] name = "data-encoding" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" +checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" [[package]] name = "data-encoding-macro" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb" +checksum = "3259c913752a86488b501ed8680446a5ed2d5aeac6e596cb23ba3800768ea32c" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2972,9 +2967,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" +checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" dependencies = [ "data-encoding", "syn 2.0.117", @@ -3153,15 +3148,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" @@ -3172,18 +3158,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.61.2", -] - [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -3191,7 +3165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users 0.4.6", + "redox_users", "winapi", ] @@ -3218,7 +3192,7 @@ dependencies = [ "more-asserts", "multiaddr", "parking_lot", - "rand 0.8.5", + "rand 0.8.6", "smallvec", "socket2 0.6.3", "tokio", @@ -3426,10 +3400,10 @@ dependencies = [ "hex 0.4.3", "k256", "log", - "rand 0.8.5", + "rand 0.8.6", "secp256k1 0.30.0", "serde", - "sha3 0.10.8", + "sha3 0.10.9", "zeroize", ] @@ -3522,12 +3496,12 @@ dependencies = [ "hex 0.4.3", "hmac", "pbkdf2 0.11.0", - "rand 0.8.5", + "rand 0.8.6", "scrypt 0.10.0", "serde", "serde_json", "sha2 0.10.9", - "sha3 0.10.8", + "sha3 0.10.9", "thiserror 1.0.69", "uuid 0.8.2", ] @@ -3538,7 +3512,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c853bd72c9e5787f8aafc3df2907c2ed03cff3150c3acd94e2e53a98ab70a8ab" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", "ring", "sha2 0.10.9", ] @@ -3571,6 +3545,21 @@ dependencies = [ "typenum", ] +[[package]] +name = "ethereum_ssz" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368a4a4e4273b0135111fe9464e35465067766a8f664615b5a86338b73864407" +dependencies = [ + "alloy-primitives", + "ethereum_serde_utils", + "itertools 0.14.0", + "serde", + "serde_derive", + "smallvec", + "typenum", +] + [[package]] name = "ethereum_ssz_derive" version = "0.9.1" @@ -3583,6 +3572,29 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "ethereum_ssz_derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cd82c68120c89361e1a457245cf212f7d9f541bffaffed530c8f2d54a160b2" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "evmap" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8874945f036109c72242964c1174cf99434e30cfa45bf45fedc983f50046f8" +dependencies = [ + "hashbag", + "left-right", + "smallvec", +] + [[package]] name = "eyre" version = "0.6.12" @@ -3629,9 +3641,9 @@ checksum = "f8eb564c5c7423d25c886fb561d1e4ee69f72354d16918afa32c08811f6b6a55" [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "fastrlp" @@ -3705,6 +3717,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c41c7aa69c00ebccf06c3fa7ffe2a6cf26a58b5fe4deabfe646285ff48136a8f" dependencies = [ "equivalent", + "rapidhash", + "typeid", ] [[package]] @@ -3714,7 +3728,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand 0.8.6", "rustc-hex", "static_assertions", ] @@ -3953,6 +3967,21 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "generator" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f04ae4152da20c76fe800fa48659201d5cf627c5149ca0b707b69d7eef6cf9" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows-link 0.2.1", + "windows-result 0.4.1", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -4046,7 +4075,7 @@ version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b88256088d75a56f8ecfa070513a775dd9107f6530ef14919dac831af9cfe2b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "libc", "libgit2-sys", "log", @@ -4128,7 +4157,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.13.0", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -4147,7 +4176,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.4.0", - "indexmap 2.13.0", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -4166,6 +4195,12 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" +[[package]] +name = "hashbag" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7040a10f52cba493ddb09926e15d10a9d8a28043708a405931fe4c6f19fac064" + [[package]] name = "hashbrown" version = "0.12.3" @@ -4211,6 +4246,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + [[package]] name = "hashlink" version = "0.11.0" @@ -4279,7 +4320,7 @@ dependencies = [ "idna", "ipnet", "once_cell", - "rand 0.9.2", + "rand 0.9.4", "ring", "serde", "thiserror 2.0.18", @@ -4302,7 +4343,7 @@ dependencies = [ "moka", "once_cell", "parking_lot", - "rand 0.9.2", + "rand 0.9.4", "resolv-conf", "serde", "smallvec", @@ -4486,21 +4527,18 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http 1.4.0", "hyper 1.9.0", "hyper-util", "log", - "rustls 0.23.37", - "rustls-native-certs 0.8.3", - "rustls-pki-types", + "rustls 0.23.40", "tokio", "tokio-rustls 0.26.4", "tower-service", - "webpki-roots 1.0.6", ] [[package]] @@ -4593,9 +4631,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", @@ -4652,9 +4690,9 @@ checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", @@ -4768,13 +4806,13 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] @@ -4794,7 +4832,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "inotify-sys", "libc", ] @@ -4833,9 +4871,9 @@ dependencies = [ [[package]] name = "interprocess" -version = "2.4.0" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6be5e5c847dbdb44564bd85294740d031f4f8aeb3464e5375ef7141f7538db69" +checksum = "069323743400cb7ab06a8fe5c1ed911d36b6919ec531661d034c89083629595b" dependencies = [ "doctest-file", "futures-core", @@ -4843,7 +4881,7 @@ dependencies = [ "recvmsg", "tokio", "widestring", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -4966,6 +5004,36 @@ dependencies = [ "windows-sys 0.45.0", ] +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys 0.4.1", + "log", + "simd_cesu8", + "thiserror 2.0.18", + "walkdir", + "windows-link 0.2.1", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "simd_cesu8", + "syn 2.0.117", +] + [[package]] name = "jni-sys" version = "0.3.1" @@ -5006,9 +5074,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.94" +version = "0.3.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" +checksum = "a1840c94c045fbcf8ba2812c95db44499f7c64910a912551aaaa541decebcacf" dependencies = [ "cfg-if", "futures-util", @@ -5047,9 +5115,9 @@ dependencies = [ "http 1.4.0", "jsonrpsee-core", "pin-project", - "rustls 0.23.37", + "rustls 0.23.40", "rustls-pki-types", - "rustls-platform-verifier", + "rustls-platform-verifier 0.5.3", "soketto", "thiserror 2.0.18", "tokio", @@ -5075,7 +5143,7 @@ dependencies = [ "jsonrpsee-types", "parking_lot", "pin-project", - "rand 0.9.2", + "rand 0.9.4", "rustc-hash", "serde", "serde_json", @@ -5096,12 +5164,12 @@ dependencies = [ "base64 0.22.1", "http-body 1.0.1", "hyper 1.9.0", - "hyper-rustls 0.27.7", + "hyper-rustls 0.27.9", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", - "rustls 0.23.37", - "rustls-platform-verifier", + "rustls 0.23.40", + "rustls-platform-verifier 0.5.3", "serde", "serde_json", "thiserror 2.0.18", @@ -5218,13 +5286,24 @@ dependencies = [ "signature 2.2.0", ] +[[package]] +name = "kasuari" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899" +dependencies = [ + "hashbrown 0.16.1", + "portable-atomic", + "thiserror 2.0.18", +] + [[package]] name = "keccak" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -5237,6 +5316,21 @@ dependencies = [ "sha3-asm", ] +[[package]] +name = "konst" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" +dependencies = [ + "konst_macro_rules", +] + +[[package]] +name = "konst_macro_rules" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" + [[package]] name = "kqueue" version = "1.1.1" @@ -5269,11 +5363,22 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" +[[package]] +name = "left-right" +version = "0.11.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0c21e4c8ff95f487fb34e6f9182875f42c84cef966d29216bf115d9bba835a" +dependencies = [ + "crossbeam-utils", + "loom", + "slab", +] + [[package]] name = "libc" -version = "0.2.184" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libgit2-sys" @@ -5294,7 +5399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -5328,21 +5433,21 @@ version = "0.14.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757" dependencies = [ - "bindgen 0.72.1", + "bindgen", "errno", "libc", ] [[package]] name = "libredox" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "libc", "plain", - "redox_syscall 0.7.3", + "redox_syscall 0.7.4", ] [[package]] @@ -5351,7 +5456,7 @@ version = "0.17.3+10.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cef2a00ee60fe526157c9023edab23943fae1ce2ab6f4abb2a807c1746835de9" dependencies = [ - "bindgen 0.72.1", + "bindgen", "bzip2-sys", "cc", "libc", @@ -5363,9 +5468,9 @@ dependencies = [ [[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", @@ -5373,6 +5478,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "line-clipping" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" +dependencies = [ + "bitflags 2.11.1", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -5389,12 +5503,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -5403,9 +5511,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "litrs" @@ -5429,6 +5537,19 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber 0.3.23", +] + [[package]] name = "lru" version = "0.12.5" @@ -5440,9 +5561,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" dependencies = [ "hashbrown 0.16.1", ] @@ -5474,9 +5595,9 @@ dependencies = [ [[package]] name = "lz4_flex" -version = "0.11.6" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373f5eceeeab7925e0c1098212f2fbc4d416adec9d35051a6ab251e824c1854a" +checksum = "98c23545df7ecf1b16c303910a69b079e8e251d60f7dd2cc9b4177f2afaf1746" [[package]] name = "mach2" @@ -5541,12 +5662,12 @@ dependencies = [ [[package]] name = "metrics" -version = "0.24.3" +version = "0.24.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5312e9ba3771cfa961b585728215e3d972c950a3eed9252aa093d6301277e8" +checksum = "b7cd3e9eb685089c784f5769b1197d348c7274bc20d4e1349650f63b91b6d0af" dependencies = [ - "ahash", "portable-atomic", + "rapidhash", ] [[package]] @@ -5562,12 +5683,13 @@ dependencies = [ [[package]] name = "metrics-exporter-prometheus" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3589659543c04c7dc5526ec858591015b87cd8746583b51b48ef4353f99dbcda" +checksum = "5c0ca2990f7f78a72c4000ddce186db7d1b700477426563ee851c95ea3c0d0c4" dependencies = [ "base64 0.22.1", - "indexmap 2.13.0", + "evmap", + "indexmap 2.14.0", "metrics", "metrics-util", "quanta", @@ -5585,24 +5707,25 @@ dependencies = [ "mach2", "metrics", "once_cell", - "procfs 0.18.0", + "procfs", "rlimit", "windows 0.62.2", ] [[package]] name = "metrics-util" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdfb1365fea27e6dd9dc1dbc19f570198bc86914533ad639dae939635f096be4" +checksum = "55ff5c12b797ebf094dc7c1d87e905efc0329cba332f96d51db03875441012b5" dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.16.1", "metrics", "quanta", - "rand 0.9.2", + "rand 0.9.4", "rand_xoshiro", + "rapidhash", "sketches-ddsketch", ] @@ -5667,9 +5790,9 @@ dependencies = [ [[package]] name = "modular-bitfield" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +checksum = "2956e537fc68236d2aa048f55704f231cc93f1c4de42fe1ecb5bd7938061fc4a" dependencies = [ "modular-bitfield-impl", "static_assertions", @@ -5677,13 +5800,13 @@ dependencies = [ [[package]] name = "modular-bitfield-impl" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +checksum = "59b43b4fd69e3437618106f7754f34021b831a514f9e1a98ae863cabcd8d8dad" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -5700,7 +5823,7 @@ dependencies = [ "portable-atomic", "smallvec", "tagptr", - "uuid 1.23.0", + "uuid 1.23.1", ] [[package]] @@ -5742,11 +5865,10 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.3" +version = "0.19.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" +checksum = "577c63b00ad74d57e8c9aa870b5fccebf2fd64a308a5aee9f1bb88e4aea19447" dependencies = [ - "core2", "unsigned-varint", ] @@ -5766,7 +5888,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "fsevent-sys", "inotify", "kqueue", @@ -5784,7 +5906,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -5965,145 +6087,48 @@ dependencies = [ ] [[package]] -name = "object" -version = "0.37.3" +name = "objc2-core-foundation" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "memchr", + "bitflags 2.11.1", ] [[package]] -name = "once_cell" -version = "1.21.4" +name = "objc2-io-kit" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "once_cell_polyfill" -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 2.1.1", - "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" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" dependencies = [ - "alloy-network", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-types-engine", - "alloy-transport", - "async-trait", - "op-alloy-rpc-types-engine", + "libc", + "objc2-core-foundation", ] [[package]] -name = "op-alloy-rpc-types" -version = "0.23.1" +name = "object" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd87c6b9e5b6eee8d6b76f41b04368dca0e9f38d83338e5b00e730c282098a4" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "derive_more 2.1.1", - "op-alloy-consensus", - "serde", - "serde_json", - "thiserror 2.0.18", + "memchr", ] [[package]] -name = "op-alloy-rpc-types-engine" -version = "0.23.1" +name = "once_cell" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77727699310a18cdeed32da3928c709e2704043b6584ed416397d5da65694efc" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-serde", - "derive_more 2.1.1", - "ethereum_ssz", - "ethereum_ssz_derive", - "op-alloy-consensus", - "serde", - "sha2 0.10.9", - "snap", - "thiserror 2.0.18", + "critical-section", + "portable-atomic", ] [[package]] -name = "op-revm" -version = "15.0.0" +name = "once_cell_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79c92b75162c2ed1661849fa51683b11254a5b661798360a2c24be918edafd40" -dependencies = [ - "auto_impl", - "revm", - "serde", -] +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "opaque-debug" @@ -6217,16 +6242,10 @@ dependencies = [ "futures-util", "opentelemetry", "percent-encoding", - "rand 0.9.2", + "rand 0.9.4", "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" @@ -6261,7 +6280,6 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ - "arbitrary", "arrayvec", "bitvec", "byte-slice-cast", @@ -6311,7 +6329,7 @@ dependencies = [ "libc", "redox_syscall 0.5.18", "smallvec", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -6441,7 +6459,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared 0.11.3", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -6542,9 +6560,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "plain" @@ -6568,7 +6586,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug 0.3.1", "universal-hash", ] @@ -6581,9 +6599,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "potential_utf" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "zerovec", ] @@ -6649,7 +6667,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.9+spec-1.1.0", + "toml_edit 0.25.11+spec-1.1.0", ] [[package]] @@ -6683,40 +6701,17 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "procfs" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" -dependencies = [ - "bitflags 2.11.0", - "chrono", - "flate2", - "hex 0.4.3", - "procfs-core 0.17.0", - "rustix 0.38.44", -] - [[package]] name = "procfs" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" dependencies = [ - "bitflags 2.11.0", - "procfs-core 0.18.0", - "rustix 1.1.4", -] - -[[package]] -name = "procfs-core" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" -dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "chrono", - "hex 0.4.3", + "flate2", + "procfs-core", + "rustix", ] [[package]] @@ -6725,7 +6720,8 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", + "chrono", "hex 0.4.3", ] @@ -6737,9 +6733,9 @@ checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", - "bitflags 2.11.0", + "bitflags 2.11.1", "num-traits", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha 0.9.0", "rand_xorshift", "regex-syntax", @@ -6887,7 +6883,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "memchr", "unicase", ] @@ -6934,7 +6930,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.37", + "rustls 0.23.40", "socket2 0.6.3", "thiserror 2.0.18", "tokio", @@ -6948,13 +6944,14 @@ version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ + "aws-lc-rs", "bytes 1.11.1", "getrandom 0.3.4", "lru-slab", - "rand 0.9.2", + "rand 0.9.4", "ring", "rustc-hash", - "rustls 0.23.37", + "rustls 0.23.40", "rustls-pki-types", "slab", "thiserror 2.0.18", @@ -7019,9 +7016,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -7031,9 +7028,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.5", @@ -7131,29 +7128,71 @@ version = "4.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e48930979c155e2f33aa36ab3119b5ee81332beb6482199a8ecd6029b80b59" dependencies = [ - "rand 0.9.2", + "rand 0.9.4", "rustversion", ] [[package]] name = "ratatui" -version = "0.29.0" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc" +dependencies = [ + "instability", + "ratatui-core", + "ratatui-crossterm", + "ratatui-widgets", +] + +[[package]] +name = "ratatui-core" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" +checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293" dependencies = [ - "bitflags 2.11.0", - "cassowary", + "bitflags 2.11.1", "compact_str", - "crossterm 0.28.1", + "hashbrown 0.16.1", "indoc", - "instability", - "itertools 0.13.0", - "lru 0.12.5", - "paste", - "strum 0.26.3", + "itertools 0.14.0", + "kasuari", + "lru 0.16.4", + "strum", + "thiserror 2.0.18", "unicode-segmentation", "unicode-truncate", - "unicode-width 0.2.0", + "unicode-width", +] + +[[package]] +name = "ratatui-crossterm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3" +dependencies = [ + "cfg-if", + "crossterm", + "instability", + "ratatui-core", +] + +[[package]] +name = "ratatui-widgets" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db" +dependencies = [ + "bitflags 2.11.1", + "hashbrown 0.16.1", + "indoc", + "instability", + "itertools 0.14.0", + "line-clipping", + "ratatui-core", + "strum", + "time", + "unicode-segmentation", + "unicode-width", ] [[package]] @@ -7162,14 +7201,14 @@ version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -7197,16 +7236,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] name = "redox_syscall" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" +checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -7220,17 +7259,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" @@ -7352,62 +7380,64 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.9.0", - "hyper-rustls 0.27.7", "hyper-util", "js-sys", "log", "percent-encoding", "pin-project-lite", - "quinn", - "rustls 0.23.37", - "rustls-native-certs 0.8.3", - "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.2", "tokio", - "tokio-rustls 0.26.4", - "tokio-util", "tower", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", "web-sys", - "webpki-roots 1.0.6", ] [[package]] name = "reqwest" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0" dependencies = [ "base64 0.22.1", "bytes 1.11.1", + "futures-channel", "futures-core", + "futures-util", "http 1.4.0", "http-body 1.0.1", "http-body-util", "hyper 1.9.0", + "hyper-rustls 0.27.9", "hyper-util", "js-sys", "log", "percent-encoding", "pin-project-lite", + "quinn", + "rustls 0.23.40", + "rustls-pki-types", + "rustls-platform-verifier 0.7.0", "serde", "serde_json", + "serde_urlencoded", "sync_wrapper 1.0.2", "tokio", + "tokio-rustls 0.26.4", + "tokio-util", "tower", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", ] @@ -7419,13 +7449,13 @@ checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "reth" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ + "alloy-primitives", "alloy-rpc-types", "aquamarine", "clap", - "eyre", "reth-chainspec", "reth-cli-runner", "reth-cli-util", @@ -7435,7 +7465,6 @@ dependencies = [ "reth-ethereum-cli", "reth-ethereum-payload-builder", "reth-ethereum-primitives", - "reth-evm", "reth-network", "reth-network-api", "reth-node-api", @@ -7445,10 +7474,8 @@ dependencies = [ "reth-node-metrics", "reth-payload-builder", "reth-payload-primitives", - "reth-primitives", + "reth-primitives-traits", "reth-provider", - "reth-ress-protocol", - "reth-ress-provider", "reth-revm", "reth-rpc", "reth-rpc-api", @@ -7457,16 +7484,14 @@ dependencies = [ "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tasks", - "reth-tokio-util", "reth-transaction-pool", - "tokio", "tracing", ] [[package]] name = "reth-basic-payload-builder" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7475,7 +7500,8 @@ dependencies = [ "futures-util", "metrics", "reth-chain-state", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-execution-cache", + "reth-metrics 2.0.0", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", @@ -7483,14 +7509,16 @@ dependencies = [ "reth-revm", "reth-storage-api", "reth-tasks", + "reth-trie-parallel", + "serde", "tokio", "tracing", ] [[package]] name = "reth-chain-state" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7501,12 +7529,13 @@ dependencies = [ "metrics", "parking_lot", "pin-project", - "rand 0.9.2", + "rand 0.9.4", + "rayon", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", "reth-execution-types", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-primitives-traits", "reth-storage-api", "reth-trie", @@ -7521,8 +7550,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7541,8 +7570,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-genesis", "clap", @@ -7550,13 +7579,12 @@ dependencies = [ "reth-cli-runner", "reth-db", "serde_json", - "shellexpand", ] [[package]] name = "reth-cli-commands" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7565,9 +7593,10 @@ dependencies = [ "alloy-rlp", "arbitrary", "backon", + "blake3", "clap", "comfy-table", - "crossterm 0.28.1", + "crossterm", "eyre", "fdlimit", "futures", @@ -7576,10 +7605,12 @@ dependencies = [ "itertools 0.14.0", "lz4", "metrics", + "parking_lot", "proptest", "proptest-arbitrary-interop", "ratatui", - "reqwest 0.12.28", + "rayon", + "reqwest 0.13.3", "reth-chainspec", "reth-cli", "reth-cli-runner", @@ -7622,6 +7653,7 @@ dependencies = [ "reth-stages-types", "reth-static-file", "reth-static-file-types", + "reth-storage-api", "reth-tasks", "reth-trie", "reth-trie-common", @@ -7633,7 +7665,7 @@ dependencies = [ "tar", "tokio", "tokio-stream", - "toml 0.8.23", + "toml 0.9.12+spec-1.1.0", "tracing", "url", "zstd", @@ -7641,8 +7673,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "reth-tasks", "tokio", @@ -7651,26 +7683,27 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eips", "alloy-primitives", "cfg-if", "eyre", "libc", - "rand 0.8.5", + "rand 0.8.6", "reth-fs-util", "secp256k1 0.30.0", "serde", "thiserror 2.0.18", + "tikv-jemalloc-sys", "tikv-jemallocator", ] [[package]] name = "reth-codecs" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "0.1.1" +source = "git+https://github.com/bnb-chain/reth-core.git?branch=v0.1.1-v2#5e11acfdc8e02201f3e83635b7ff9724ab36f63a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7680,7 +7713,7 @@ dependencies = [ "arbitrary", "bytes 1.11.1", "modular-bitfield", - "op-alloy-consensus", + "parity-scale-codec", "reth-codecs-derive", "reth-zstd-compressors", "serde", @@ -7689,8 +7722,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "0.1.1" +source = "git+https://github.com/bnb-chain/reth-core.git?branch=v0.1.1-v2#5e11acfdc8e02201f3e83635b7ff9724ab36f63a" dependencies = [ "proc-macro2", "quote", @@ -7699,8 +7732,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "eyre", "humantime-serde", @@ -7709,14 +7742,14 @@ dependencies = [ "reth-stages-types", "reth-static-file-types", "serde", - "toml 0.8.23", + "toml 0.9.12+spec-1.1.0", "url", ] [[package]] name = "reth-consensus" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7728,11 +7761,12 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-primitives", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -7740,8 +7774,8 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7754,7 +7788,7 @@ dependencies = [ "derive_more 2.1.1", "eyre", "futures", - "reqwest 0.12.28", + "reqwest 0.13.3", "reth-node-api", "reth-primitives-traits", "reth-tracing", @@ -7766,8 +7800,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "derive_more 2.1.1", @@ -7775,40 +7809,40 @@ dependencies = [ "metrics", "page_size", "parking_lot", + "quanta", "reth-db-api", "reth-fs-util", "reth-libmdbx", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-nippy-jar", "reth-static-file-types", "reth-storage-errors", "reth-tracing", "rustc-hash", - "strum 0.27.2", + "strum", "sysinfo", "tempfile", "thiserror 2.0.18", + "tracing", ] [[package]] name = "reth-db-api" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", - "alloy-genesis", "alloy-primitives", "arbitrary", + "arrayvec", "bytes 1.11.1", "derive_more 2.1.1", "metrics", "modular-bitfield", - "parity-scale-codec", "proptest", "reth-codecs", "reth-db-models", "reth-ethereum-primitives", - "reth-optimism-primitives", "reth-primitives-traits", "reth-prune-types", "reth-stages-types", @@ -7820,8 +7854,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7854,8 +7888,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7869,8 +7903,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7878,7 +7912,7 @@ dependencies = [ "enr", "itertools 0.14.0", "parking_lot", - "rand 0.8.5", + "rand 0.8.6", "reth-ethereum-forks", "reth-net-banlist", "reth-net-nat", @@ -7894,8 +7928,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7905,10 +7939,10 @@ dependencies = [ "futures", "itertools 0.14.0", "metrics", - "rand 0.9.2", + "rand 0.9.4", "reth-chainspec", "reth-ethereum-forks", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-network-peers", "secp256k1 0.30.0", "thiserror 2.0.18", @@ -7918,15 +7952,15 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", + "dashmap 6.1.0", "data-encoding", "enr", "hickory-resolver", "linked_hash_set", - "parking_lot", "reth-ethereum-forks", "reth-network-peers", "reth-tokio-util", @@ -7942,8 +7976,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7959,7 +7993,7 @@ dependencies = [ "reth-config", "reth-consensus", "reth-ethereum-primitives", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-network-p2p", "reth-network-peers", "reth-primitives-traits", @@ -7977,8 +8011,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "aes", "alloy-primitives", @@ -7992,7 +8026,7 @@ dependencies = [ "futures", "hmac", "pin-project", - "rand 0.8.5", + "rand 0.8.6", "reth-network-peers", "secp256k1 0.30.0", "sha2 0.10.9", @@ -8005,8 +8039,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8028,8 +8062,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8051,33 +8085,10 @@ dependencies = [ "tokio", ] -[[package]] -name = "reth-engine-service" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" -dependencies = [ - "futures", - "pin-project", - "reth-chainspec", - "reth-consensus", - "reth-engine-primitives", - "reth-engine-tree", - "reth-ethereum-primitives", - "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.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eip7928", @@ -8087,11 +8098,9 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-engine", "crossbeam-channel", - "dashmap 6.1.0", "derive_more 2.1.1", "futures", "metrics", - "mini-moka", "moka", "parking_lot", "rayon", @@ -8103,8 +8112,9 @@ dependencies = [ "reth-errors", "reth-ethereum-primitives", "reth-evm", + "reth-execution-cache", "reth-execution-types", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-network-p2p", "reth-payload-builder", "reth-payload-primitives", @@ -8123,7 +8133,6 @@ dependencies = [ "reth-trie-db", "reth-trie-parallel", "reth-trie-sparse", - "reth-trie-sparse-parallel", "revm", "revm-primitives", "rust-eth-triedb", @@ -8131,7 +8140,6 @@ dependencies = [ "rust-eth-triedb-pathdb", "rust-eth-triedb-state-trie", "schnellru", - "smallvec", "thiserror 2.0.18", "tokio", "tracing", @@ -8139,8 +8147,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8167,29 +8175,29 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", - "ethereum_ssz", - "ethereum_ssz_derive", + "ethereum_ssz 0.10.3", + "ethereum_ssz_derive 0.10.3", "snap", "thiserror 2.0.18", ] [[package]] name = "reth-era-downloader" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "bytes 1.11.1", "eyre", "futures-util", - "reqwest 0.12.28", + "reqwest 0.13.3", "reth-era", "reth-fs-util", "sha2 0.10.9", @@ -8198,8 +8206,8 @@ dependencies = [ [[package]] name = "reth-era-utils" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8220,8 +8228,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -8231,8 +8239,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-chains", "alloy-primitives", @@ -8246,7 +8254,7 @@ dependencies = [ "reth-ecies", "reth-eth-wire-types", "reth-ethereum-forks", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-network-peers", "reth-primitives-traits", "serde", @@ -8260,8 +8268,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8284,8 +8292,8 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "clap", "eyre", @@ -8300,14 +8308,15 @@ dependencies = [ "reth-node-ethereum", "reth-node-metrics", "reth-rpc-server-types", + "reth-tasks", "reth-tracing", "tracing", ] [[package]] name = "reth-ethereum-consensus" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8322,26 +8331,24 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" 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 0.10.9", "thiserror 2.0.18", ] [[package]] name = "reth-ethereum-forks" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -8354,8 +8361,8 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8369,6 +8376,7 @@ dependencies = [ "reth-ethereum-primitives", "reth-evm", "reth-evm-ethereum", + "reth-execution-cache", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", @@ -8383,28 +8391,22 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" 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.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "rayon", "reth-db-api", @@ -8413,8 +8415,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8427,7 +8429,7 @@ dependencies = [ "rayon", "reth-execution-errors", "reth-execution-types", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -8438,16 +8440,14 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", - "derive_more 2.1.1", - "parking_lot", "reth-chainspec", "reth-ethereum-forks", "reth-ethereum-primitives", @@ -8458,10 +8458,28 @@ dependencies = [ "revm", ] +[[package]] +name = "reth-execution-cache" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" +dependencies = [ + "alloy-primitives", + "fixed-cache", + "metrics", + "parking_lot", + "reth-errors", + "reth-metrics 2.0.0", + "reth-primitives-traits", + "reth-provider", + "reth-revm", + "reth-trie", + "tracing", +] + [[package]] name = "reth-execution-errors" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-evm", "alloy-primitives", @@ -8473,13 +8491,14 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-primitives", + "alloy-rlp", "derive_more 2.1.1", "reth-ethereum-primitives", "reth-primitives-traits", @@ -8491,8 +8510,8 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8509,7 +8528,7 @@ dependencies = [ "reth-evm", "reth-exex-types", "reth-fs-util", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-node-api", "reth-node-core", "reth-payload-builder", @@ -8529,8 +8548,8 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8543,8 +8562,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "serde", "serde_json", @@ -8553,8 +8572,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8581,8 +8600,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "bytes 1.11.1", "futures", @@ -8601,11 +8620,12 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "byteorder", + "crossbeam-queue", "dashmap 6.1.0", "derive_more 2.1.1", "parking_lot", @@ -8617,17 +8637,17 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ - "bindgen 0.71.1", + "bindgen", "cc", ] [[package]] name = "reth-metrics" version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +source = "git+https://github.com/bnb-chain/reth.git#95d649fe0b75ba06e23c317fd75e07b422fdebd0" dependencies = [ "futures", "metrics", @@ -8638,8 +8658,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git#b02940f65fe1e12a4224452c7cdfaa9e56ce8f0f" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "futures", "metrics", @@ -8650,8 +8670,8 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "ipnet", @@ -8659,12 +8679,12 @@ dependencies = [ [[package]] name = "reth-net-nat" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "futures-util", "if-addrs", - "reqwest 0.12.28", + "reqwest 0.13.3", "serde_with", "thiserror 2.0.18", "tokio", @@ -8673,8 +8693,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8690,8 +8710,8 @@ dependencies = [ "metrics", "parking_lot", "pin-project", - "rand 0.8.5", - "rand 0.9.2", + "rand 0.8.6", + "rand 0.9.4", "rayon", "reth-chainspec", "reth-consensus", @@ -8703,8 +8723,9 @@ dependencies = [ "reth-eth-wire-types", "reth-ethereum-forks", "reth-ethereum-primitives", + "reth-evm-ethereum", "reth-fs-util", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-net-banlist", "reth-network-api", "reth-network-p2p", @@ -8729,8 +8750,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8754,8 +8775,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8777,8 +8798,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8792,8 +8813,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -8806,8 +8827,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "anyhow", "bincode", @@ -8823,8 +8844,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -8847,8 +8868,8 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8876,7 +8897,6 @@ dependencies = [ "reth-downloaders", "reth-engine-local", "reth-engine-primitives", - "reth-engine-service", "reth-engine-tree", "reth-engine-util", "reth-evm", @@ -8918,8 +8938,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8932,7 +8952,7 @@ dependencies = [ "futures", "humantime", "ipnet", - "rand 0.9.2", + "rand 0.9.4", "reth-chainspec", "reth-cli-util", "reth-config", @@ -8949,7 +8969,6 @@ dependencies = [ "reth-network-p2p", "reth-network-peers", "reth-primitives-traits", - "reth-provider", "reth-prune-types", "reth-rpc-convert", "reth-rpc-eth-types", @@ -8957,15 +8976,15 @@ dependencies = [ "reth-stages-types", "reth-storage-api", "reth-storage-errors", + "reth-tasks", "reth-tracing", "reth-tracing-otlp", "reth-transaction-pool", "secp256k1 0.30.0", "serde", - "shellexpand", - "strum 0.27.2", + "strum", "thiserror 2.0.18", - "toml 0.8.23", + "toml 0.9.12+spec-1.1.0", "tracing", "url", "vergen", @@ -8974,8 +8993,8 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eips", "alloy-network", @@ -9012,8 +9031,8 @@ dependencies = [ [[package]] name = "reth-node-ethstats" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -9029,15 +9048,15 @@ dependencies = [ "thiserror 2.0.18", "tokio", "tokio-stream", - "tokio-tungstenite 0.26.2", + "tokio-tungstenite", "tracing", "url", ] [[package]] name = "reth-node-events" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9060,8 +9079,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "bytes 1.11.1", "eyre", @@ -9072,9 +9091,9 @@ dependencies = [ "metrics-exporter-prometheus", "metrics-process", "metrics-util", - "procfs 0.17.0", - "reqwest 0.12.28", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "procfs", + "reqwest 0.13.3", + "reth-metrics 2.0.0", "reth-tasks", "tikv-jemalloc-ctl", "tokio", @@ -9084,8 +9103,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "reth-chainspec", "reth-db-api", @@ -9094,37 +9113,25 @@ dependencies = [ "reth-primitives-traits", ] -[[package]] -name = "reth-optimism-primitives" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "op-alloy-consensus", - "reth-primitives-traits", - "serde", - "serde_with", -] - [[package]] name = "reth-payload-builder" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rpc-types", + "derive_more 2.1.1", "futures-util", "metrics", "reth-chain-state", "reth-ethereum-engine-primitives", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-execution-cache", + "reth-metrics 2.0.0", "reth-payload-builder-primitives", "reth-payload-primitives", "reth-primitives-traits", + "reth-trie-parallel", "tokio", "tokio-stream", "tracing", @@ -9132,8 +9139,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "pin-project", "reth-payload-primitives", @@ -9144,16 +9151,16 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" 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", @@ -9161,38 +9168,25 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", + "sha2 0.10.9", "thiserror 2.0.18", "tokio", ] [[package]] name = "reth-payload-validator" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", "reth-primitives-traits", ] -[[package]] -name = "reth-primitives" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" -dependencies = [ - "alloy-consensus", - "c-kzg", - "once_cell", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-static-file-types", -] - [[package]] name = "reth-primitives-traits" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "0.1.1" +source = "git+https://github.com/bnb-chain/reth-core.git?branch=v0.1.1-v2#5e11acfdc8e02201f3e83635b7ff9724ab36f63a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9202,15 +9196,15 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-trie", "arbitrary", - "auto_impl", "byteorder", "bytes 1.11.1", + "dashmap 6.1.0", "derive_more 2.1.1", "modular-bitfield", "once_cell", - "op-alloy-consensus", "proptest", "proptest-arbitrary-interop", + "quanta", "rayon", "reth-codecs", "revm-bytecode", @@ -9218,20 +9212,19 @@ dependencies = [ "revm-state", "secp256k1 0.30.0", "serde", - "serde_with", "thiserror 2.0.18", ] [[package]] name = "reth-provider" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-genesis", "alloy-primitives", "alloy-rpc-types-engine", - "dashmap 6.1.0", "eyre", "itertools 0.14.0", "metrics", @@ -9247,7 +9240,8 @@ dependencies = [ "reth-ethereum-engine-primitives", "reth-ethereum-primitives", "reth-execution-types", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-fs-util", + "reth-metrics 2.0.0", "reth-nippy-jar", "reth-node-types", "reth-primitives-traits", @@ -9256,21 +9250,23 @@ dependencies = [ "reth-static-file-types", "reth-storage-api", "reth-storage-errors", + "reth-tasks", "reth-trie", "reth-trie-db", "revm-database", "revm-state", + "rocksdb", "rust-eth-triedb", "rust-eth-triedb-common", - "strum 0.27.2", + "strum", "tokio", "tracing", ] [[package]] name = "reth-prune" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9282,12 +9278,13 @@ dependencies = [ "reth-db-api", "reth-errors", "reth-exex-types", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-primitives-traits", "reth-provider", "reth-prune-types", "reth-stages-types", "reth-static-file-types", + "reth-storage-api", "reth-tokio-util", "rustc-hash", "thiserror 2.0.18", @@ -9297,8 +9294,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "arbitrary", @@ -9306,62 +9303,19 @@ dependencies = [ "modular-bitfield", "reth-codecs", "serde", - "strum 0.27.2", + "strum", "thiserror 2.0.18", -] - -[[package]] -name = "reth-ress-protocol" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rlp", - "futures", - "reth-eth-wire", - "reth-ethereum-primitives", - "reth-network", - "reth-network-api", - "reth-storage-errors", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-ress-provider" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "eyre", - "futures", - "parking_lot", - "reth-chain-state", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", - "reth-node-api", - "reth-primitives-traits", - "reth-ress-protocol", - "reth-revm", - "reth-storage-api", - "reth-tasks", - "reth-tokio-util", - "reth-trie", - "schnellru", - "tokio", "tracing", ] [[package]] name = "reth-revm" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-debug", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -9371,8 +9325,8 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -9400,13 +9354,9 @@ dependencies = [ "derive_more 2.1.1", "dyn-clone", "futures", - "http 1.4.0", - "http-body 1.0.1", - "hyper 1.9.0", "itertools 0.14.0", "jsonrpsee", "jsonrpsee-types", - "jsonwebtoken", "parking_lot", "pin-project", "reth-chain-state", @@ -9420,7 +9370,7 @@ dependencies = [ "reth-evm", "reth-evm-ethereum", "reth-execution-types", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-network-api", "reth-network-peers", "reth-network-types", @@ -9435,6 +9385,7 @@ dependencies = [ "reth-rpc-server-types", "reth-storage-api", "reth-tasks", + "reth-tracing", "reth-transaction-pool", "reth-trie-common", "revm", @@ -9447,15 +9398,14 @@ dependencies = [ "thiserror 2.0.18", "tokio", "tokio-stream", - "tower", "tracing", "tracing-futures", ] [[package]] name = "reth-rpc-api" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eip7928", "alloy-eips", @@ -9479,13 +9429,14 @@ dependencies = [ "reth-network-peers", "reth-rpc-eth-api", "reth-trie-common", + "serde", "serde_json", ] [[package]] name = "reth-rpc-builder" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-network", "alloy-provider", @@ -9500,12 +9451,14 @@ dependencies = [ "reth-engine-primitives", "reth-evm", "reth-ipc", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "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", @@ -9525,8 +9478,8 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-evm", @@ -9534,24 +9487,24 @@ 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", "serde", "thiserror 2.0.18", ] [[package]] name = "reth-rpc-engine-api" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eips", "alloy-primitives", + "alloy-rlp", "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core", @@ -9559,7 +9512,7 @@ dependencies = [ "metrics", "reth-chainspec", "reth-engine-primitives", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-network-api", "reth-payload-builder", "reth-payload-builder-primitives", @@ -9577,11 +9530,12 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-dyn-abi", + "alloy-eip7928", "alloy-eips", "alloy-evm", "alloy-json-rpc", @@ -9617,14 +9571,15 @@ dependencies = [ "revm", "revm-inspectors", "rust-eth-triedb", + "serde_json", "tokio", "tracing", ] [[package]] name = "reth-rpc-eth-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9641,15 +9596,15 @@ dependencies = [ "jsonrpsee-core", "jsonrpsee-types", "metrics", - "rand 0.9.2", - "reqwest 0.12.28", + "rand 0.9.4", + "reqwest 0.13.3", "reth-chain-state", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", "reth-evm", "reth-execution-types", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-primitives-traits", "reth-revm", "reth-rpc-convert", @@ -9671,8 +9626,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-rpc-types-engine", "http 1.4.0", @@ -9685,8 +9640,8 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9696,25 +9651,40 @@ dependencies = [ "reth-errors", "reth-network-api", "serde", - "strum 0.27.2", + "strum", +] + +[[package]] +name = "reth-rpc-traits" +version = "0.1.1" +source = "git+https://github.com/bnb-chain/reth-core.git?branch=v0.1.1-v2#5e11acfdc8e02201f3e83635b7ff9724ab36f63a" +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.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", + "alloy-rlp", "alloy-trie", - "bincode", "eyre", "futures-util", "itertools 0.14.0", "num-traits", + "page_size", "rayon", - "reqwest 0.12.28", + "reqwest 0.13.3", "reth-chainspec", "reth-codecs", "reth-config", @@ -9730,6 +9700,7 @@ dependencies = [ "reth-execution-types", "reth-exex", "reth-fs-util", + "reth-libmdbx", "reth-network-p2p", "reth-primitives-traits", "reth-provider", @@ -9740,6 +9711,7 @@ dependencies = [ "reth-static-file-types", "reth-storage-api", "reth-storage-errors", + "reth-tasks", "reth-testing-utils", "reth-trie", "reth-trie-common", @@ -9753,8 +9725,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9762,9 +9734,10 @@ dependencies = [ "auto_impl", "futures-util", "metrics", + "reth-codecs", "reth-consensus", "reth-errors", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-network-p2p", "reth-primitives-traits", "reth-provider", @@ -9780,8 +9753,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "arbitrary", @@ -9794,8 +9767,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "parking_lot", @@ -9814,21 +9787,23 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "clap", "derive_more 2.1.1", "fixed-map", + "reth-stages-types", "serde", - "strum 0.27.2", + "strum", + "tracing", ] [[package]] name = "reth-storage-api" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9851,13 +9826,14 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "derive_more 2.1.1", + "reth-codecs", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", @@ -9868,17 +9844,20 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ - "auto_impl", - "dyn-clone", + "crossbeam-utils", + "dashmap 6.1.0", "futures-util", + "libc", "metrics", + "parking_lot", "pin-project", "rayon", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "thiserror 2.0.18", + "thread-priority", "tokio", "tracing", "tracing-futures", @@ -9886,15 +9865,15 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", "alloy-primitives", - "rand 0.8.5", - "rand 0.9.2", + "rand 0.8.6", + "rand 0.9.4", "reth-ethereum-primitives", "reth-primitives-traits", "secp256k1 0.30.0", @@ -9902,8 +9881,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "tokio", "tokio-stream", @@ -9912,8 +9891,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "clap", "eyre", @@ -9927,8 +9906,8 @@ dependencies = [ [[package]] name = "reth-tracing-otlp" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "clap", "eyre", @@ -9945,8 +9924,8 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9954,23 +9933,26 @@ dependencies = [ "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.11.0", + "bitflags 2.11.1", "futures-util", "metrics", "parking_lot", "paste", "pin-project", - "rand 0.9.2", + "rand 0.9.4", "reth-chain-state", "reth-chainspec", "reth-eth-wire-types", "reth-ethereum-primitives", + "reth-evm", + "reth-evm-ethereum", "reth-execution-types", "reth-fs-util", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-primitives-traits", "reth-storage-api", "reth-tasks", + "revm", "revm-interpreter", "revm-primitives", "rustc-hash", @@ -9986,8 +9968,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9999,7 +9981,7 @@ dependencies = [ "metrics", "parking_lot", "reth-execution-errors", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-primitives-traits", "reth-stages-types", "reth-storage-errors", @@ -10012,8 +9994,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -10041,15 +10023,15 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "metrics", "parking_lot", "reth-db-api", "reth-execution-errors", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-primitives-traits", "reth-stages-types", "reth-storage-api", @@ -10062,33 +10044,36 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ + "alloy-eip7928", + "alloy-evm", "alloy-primitives", "alloy-rlp", "crossbeam-channel", - "dashmap 6.1.0", + "crossbeam-utils", "derive_more 2.1.1", "itertools 0.14.0", "metrics", "rayon", "reth-execution-errors", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", + "reth-primitives-traits", "reth-provider", "reth-storage-errors", + "reth-tasks", "reth-trie", - "reth-trie-common", "reth-trie-sparse", + "revm-state", "thiserror 2.0.18", - "tokio", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "2.0.0" +source = "git+https://github.com/bnb-chain/reth.git?branch=develop-v2#ba2f60cb3cab4a12accf089e9fc30a7e7d655f27" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -10097,35 +10082,20 @@ dependencies = [ "metrics", "rayon", "reth-execution-errors", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-primitives-traits", "reth-trie-common", - "smallvec", - "tracing", -] - -[[package]] -name = "reth-trie-sparse-parallel" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "metrics", - "rayon", - "reth-execution-errors", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", - "reth-trie-common", - "reth-trie-sparse", + "serde", + "serde_json", + "slotmap", "smallvec", "tracing", ] [[package]] name = "reth-zstd-compressors" -version = "1.10.2" -source = "git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928#ed59a0985b62f4964b389b1666b73b03b39b6928" +version = "0.1.1" +source = "git+https://github.com/bnb-chain/reth-core.git?branch=v0.1.1-v2#5e11acfdc8e02201f3e83635b7ff9724ab36f63a" dependencies = [ "zstd", ] @@ -10186,7 +10156,7 @@ dependencies = [ "pbkdf2 0.12.2", "phf 0.11.3", "prost 0.12.6", - "rand 0.9.2", + "rand 0.9.4", "reth", "reth-basic-payload-builder", "reth-chain-state", @@ -10194,6 +10164,7 @@ dependencies = [ "reth-cli", "reth-cli-commands", "reth-cli-util", + "reth-codecs", "reth-db", "reth-discv4", "reth-engine-local", @@ -10209,7 +10180,7 @@ dependencies = [ "reth-evm-ethereum", "reth-execution-types", "reth-ipc", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git?rev=ed59a0985b62f4964b389b1666b73b03b39b6928)", + "reth-metrics 2.0.0", "reth-network", "reth-network-api", "reth-network-p2p", @@ -10219,7 +10190,6 @@ dependencies = [ "reth-node-ethereum", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -10232,11 +10202,16 @@ dependencies = [ "reth-trie-common", "reth-trie-db", "revm", - "revm-context-interface", + "revm-bytecode", "revm-database", + "revm-database-interface", + "revm-interpreter", + "revm-primitives", + "revm-state", "rust-eth-triedb", "rust-eth-triedb-common", "rust-eth-triedb-pathdb", + "rust-eth-triedb-state-trie", "schnellru", "scrypt 0.11.0", "secp256k1 0.30.0", @@ -10252,15 +10227,15 @@ dependencies = [ "tokio", "tokio-stream", "tracing", - "uuid 1.23.0", + "uuid 1.23.1", "zeroize", ] [[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", @@ -10277,11 +10252,12 @@ 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", + "paste", "phf 0.13.1", "revm-primitives", "serde", @@ -10289,9 +10265,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", @@ -10306,9 +10282,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", @@ -10322,9 +10298,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", @@ -10336,9 +10312,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", @@ -10350,9 +10326,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", @@ -10369,9 +10345,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", @@ -10387,9 +10363,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.34.3" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e341d9777b1903a8428bc6f8fe7a8f80671d2249837c9749566e61328ef14125" +checksum = "9487362b728f80dd2033ef5f4d0688453435bbe7caa721fa7e3b8fa25d89242b" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -10407,9 +10383,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", @@ -10456,12 +10432,12 @@ 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", + "bitflags 2.11.1", "revm-bytecode", "revm-primitives", "serde", @@ -10493,9 +10469,9 @@ dependencies = [ [[package]] name = "ringbuffer" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6368f71f205ff9c33c076d170dd56ebf68e8161c733c0caa07a7a5509ed53" +checksum = "57b0b88a509053cbfd535726dcaaceee631313cef981266119527a1d110f6d2b" [[package]] name = "ripemd" @@ -10568,9 +10544,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.12" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e8d2cfa184d94d0726d650a9f4a1be7f9b76ac9fdb954219878dc00c1c1e7b" +checksum = "1dedc5658c6ecb3bdb5ef5f3295bb9253f42dcf3fd1402c03f6b1f7659c3c4a9" dependencies = [ "bytemuck", "byteorder", @@ -10603,9 +10579,9 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "ruint" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" +checksum = "0298da754d1395046b0afdc2f20ee76d29a8ae310cd30ffa84ed42acba9cb12a" dependencies = [ "alloy-rlp", "arbitrary", @@ -10621,8 +10597,8 @@ dependencies = [ "parity-scale-codec", "primitive-types", "proptest", - "rand 0.8.5", - "rand 0.9.2", + "rand 0.8.6", + "rand 0.9.4", "rlp", "ruint-macro", "serde_core", @@ -10646,7 +10622,7 @@ dependencies = [ "metrics", "once_cell", "rayon", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git)", + "reth-metrics 1.10.2", "rust-eth-triedb-common", "rust-eth-triedb-pathdb", "rust-eth-triedb-state-trie", @@ -10677,7 +10653,7 @@ dependencies = [ "alloy-trie", "metrics", "mini-moka", - "reth-metrics 1.10.2 (git+https://github.com/bnb-chain/reth.git)", + "reth-metrics 1.10.2", "rocksdb", "rust-eth-triedb-common", "schnellru", @@ -10695,9 +10671,10 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie", + "arbitrary", "auto_impl", "hex 0.4.3", - "rand 0.8.5", + "rand 0.8.6", "rayon", "rust-eth-triedb-common", "rust-eth-triedb-pathdb", @@ -10718,7 +10695,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" dependencies = [ - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -10751,20 +10728,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.27", -] - -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.11.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", + "semver 1.0.28", ] [[package]] @@ -10773,10 +10737,10 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "errno", "libc", - "linux-raw-sys 0.12.1", + "linux-raw-sys", "windows-sys 0.61.2", ] @@ -10794,16 +10758,16 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" dependencies = [ "aws-lc-rs", "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.10", + "rustls-webpki 0.103.13", "subtle", "zeroize", ] @@ -10843,9 +10807,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ "web-time", "zeroize", @@ -10859,19 +10823,40 @@ checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" dependencies = [ "core-foundation 0.10.1", "core-foundation-sys", - "jni", + "jni 0.21.1", "log", "once_cell", - "rustls 0.23.37", + "rustls 0.23.40", "rustls-native-certs 0.8.3", "rustls-platform-verifier-android", - "rustls-webpki 0.103.10", + "rustls-webpki 0.103.13", "security-framework 3.7.0", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni 0.22.4", + "log", + "once_cell", + "rustls 0.23.40", + "rustls-native-certs 0.8.3", + "rustls-platform-verifier-android", + "rustls-webpki 0.103.13", + "security-framework 3.7.0", + "security-framework-sys", + "webpki-root-certs 1.0.7", + "windows-sys 0.61.2", +] + [[package]] name = "rustls-platform-verifier-android" version = "0.1.1" @@ -10890,9 +10875,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.10" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "aws-lc-rs", "ring", @@ -10992,6 +10977,12 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -11054,7 +11045,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", - "rand 0.8.5", + "rand 0.8.6", "secp256k1-sys 0.10.1", "serde", ] @@ -11066,7 +11057,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ "bitcoin_hashes", - "rand 0.9.2", + "rand 0.9.4", "secp256k1-sys 0.11.0", ] @@ -11094,7 +11085,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -11107,7 +11098,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -11144,9 +11135,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" dependencies = [ "serde", "serde_core", @@ -11235,7 +11226,7 @@ version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "itoa", "memchr", "serde", @@ -11263,6 +11254,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -11285,7 +11285,7 @@ dependencies = [ "chrono", "hex 0.4.3", "indexmap 1.9.3", - "indexmap 2.13.0", + "indexmap 2.14.0", "schemars 0.9.0", "schemars 1.2.1", "serde_core", @@ -11323,7 +11323,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -11347,7 +11347,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.9.0", "opaque-debug 0.3.1", ] @@ -11359,7 +11359,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -11378,9 +11378,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" dependencies = [ "digest 0.10.7", "keccak", @@ -11405,15 +11405,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" @@ -11473,6 +11464,22 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" +[[package]] +name = "simd_cesu8" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version 0.4.1", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "simple_asn1" version = "0.6.4" @@ -11518,6 +11525,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 = "small_btree" version = "0.1.0" @@ -11575,7 +11591,7 @@ dependencies = [ "http 1.4.0", "httparse", "log", - "rand 0.8.5", + "rand 0.8.6", "sha1", ] @@ -11607,35 +11623,13 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - [[package]] name = "strum" version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ - "strum_macros 0.27.2", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.117", + "strum_macros", ] [[package]] @@ -11671,6 +11665,12 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" +[[package]] +name = "symlink" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" + [[package]] name = "syn" version = "1.0.109" @@ -11745,15 +11745,16 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.33.1" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" +checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f" dependencies = [ - "core-foundation-sys", "libc", "memchr", "ntapi", - "windows 0.57.0", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.62.2", ] [[package]] @@ -11815,7 +11816,7 @@ dependencies = [ "fastrand", "getrandom 0.4.2", "once_cell", - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] @@ -11880,9 +11881,9 @@ dependencies = [ [[package]] name = "thin-vec" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d" +checksum = "259cdf8ed4e4aca6f1e9d011e10bd53f524a2d0637d7b28450f6c64ac298c4c6" [[package]] name = "thiserror" @@ -11924,6 +11925,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.1", + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.61.3", +] + [[package]] name = "thread_local" version = "1.1.9" @@ -12008,9 +12023,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "serde_core", @@ -12034,9 +12049,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.50.0" +version = "1.52.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" dependencies = [ "bytes 1.11.1", "libc", @@ -12051,9 +12066,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", @@ -12076,7 +12091,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.37", + "rustls 0.23.40", "tokio", ] @@ -12092,22 +12107,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "tokio-tungstenite" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" -dependencies = [ - "futures-util", - "log", - "rustls 0.23.37", - "rustls-native-certs 0.8.3", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.26.4", - "tungstenite 0.26.2", -] - [[package]] name = "tokio-tungstenite" version = "0.28.0" @@ -12116,11 +12115,12 @@ checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" dependencies = [ "futures-util", "log", - "rustls 0.23.37", + "rustls 0.23.40", + "rustls-native-certs 0.8.3", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", - "tungstenite 0.28.0", + "tungstenite", "webpki-roots 0.26.11", ] @@ -12155,11 +12155,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_edit 0.22.27", ] +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -12169,6 +12184,15 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_datetime" version = "1.1.1+spec-1.1.0" @@ -12184,9 +12208,9 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", "winnow 0.7.15", @@ -12194,23 +12218,23 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.9+spec-1.1.0" +version = "0.25.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da053d28fe57e2c9d21b48261e14e7b4c8b670b54d2c684847b91feaf4c7dac5" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", - "winnow 1.0.1", + "winnow 1.0.2", ] [[package]] name = "toml_parser" -version = "1.1.1+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ca317ebc49f06bd748bfba29533eac9485569dc9bf80b849024b025e814fb9" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.1", + "winnow 1.0.2", ] [[package]] @@ -12219,6 +12243,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + [[package]] name = "tonic" version = "0.14.5" @@ -12265,7 +12295,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.13.0", + "indexmap 2.14.0", "pin-project-lite", "slab", "sync_wrapper 1.0.2", @@ -12284,7 +12314,7 @@ checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.11.0", + "bitflags 2.11.1", "bytes 1.11.1", "futures-core", "futures-util", @@ -12304,7 +12334,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "uuid 1.23.0", + "uuid 1.23.1", ] [[package]] @@ -12333,11 +12363,12 @@ dependencies = [ [[package]] name = "tracing-appender" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf" +checksum = "050686193eb999b4bb3bc2acfa891a13da00f79734704c4b8b4ef1a10b368a3c" dependencies = [ "crossbeam-channel", + "symlink", "thiserror 2.0.18", "time", "tracing-subscriber 0.3.23", @@ -12444,9 +12475,11 @@ dependencies = [ "serde", "serde_json", "sharded-slab", + "smallvec", "thread_local", "tracing", "tracing-core", + "tracing-log", "tracing-serde", ] @@ -12458,7 +12491,7 @@ checksum = "ee44f4cef85f88b4dea21c0b1f58320bdf35715cf56d840969487cff00613321" dependencies = [ "alloy-primitives", "ethereum_hashing", - "ethereum_ssz", + "ethereum_ssz 0.9.1", "smallvec", "typenum", ] @@ -12499,17 +12532,17 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.26.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" dependencies = [ "bytes 1.11.1", "data-encoding", "http 1.4.0", "httparse", "log", - "rand 0.9.2", - "rustls 0.23.37", + "rand 0.9.4", + "rustls 0.23.40", "rustls-pki-types", "sha1", "thiserror 2.0.18", @@ -12517,29 +12550,16 @@ dependencies = [ ] [[package]] -name = "tungstenite" -version = "0.28.0" +name = "typeid" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" -dependencies = [ - "bytes 1.11.1", - "data-encoding", - "http 1.4.0", - "httparse", - "log", - "rand 0.9.2", - "rustls 0.23.37", - "rustls-pki-types", - "sha1", - "thiserror 2.0.18", - "utf-8", -] +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "ucd-trie" @@ -12597,26 +12617,20 @@ checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-truncate" -version = "1.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "unicode-segmentation", - "unicode-width 0.1.14", + "unicode-width", ] [[package]] name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - -[[package]] -name = "unicode-width" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unicode-xid" @@ -12695,9 +12709,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.23.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ "getrandom 0.4.2", "js-sys", @@ -12816,11 +12830,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -12829,14 +12843,14 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.117" +version = "0.2.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" +checksum = "df52b6d9b87e0c74c9edfa1eb2d9bf85e5d63515474513aa50fa181b3c4f5db1" dependencies = [ "cfg-if", "once_cell", @@ -12847,9 +12861,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.67" +version = "0.4.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" +checksum = "af934872acec734c2d80e6617bbb5ff4f12b052dd8e6332b0817bce889516084" dependencies = [ "js-sys", "wasm-bindgen", @@ -12857,9 +12871,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.117" +version = "0.2.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" +checksum = "78b1041f495fb322e64aca85f5756b2172e35cd459376e67f2a6c9dffcedb103" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -12867,9 +12881,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.117" +version = "0.2.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" +checksum = "9dcd0ff20416988a18ac686d4d4d0f6aae9ebf08a389ff5d29012b05af2a1b41" dependencies = [ "bumpalo", "proc-macro2", @@ -12880,9 +12894,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.117" +version = "0.2.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" +checksum = "49757b3c82ebf16c57d69365a142940b384176c24df52a087fb748e2085359ea" dependencies = [ "unicode-ident", ] @@ -12904,16 +12918,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.13.0", + "indexmap 2.14.0", "wasm-encoder", "wasmparser", ] [[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", @@ -12928,10 +12942,10 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "hashbrown 0.15.5", - "indexmap 2.13.0", - "semver 1.0.27", + "indexmap 2.14.0", + "semver 1.0.28", ] [[package]] @@ -12950,9 +12964,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.94" +version = "0.3.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" +checksum = "2eadbac71025cd7b0834f20d1fe8472e8495821b4e9801eb0a60bd1f19827602" dependencies = [ "js-sys", "wasm-bindgen", @@ -12974,14 +12988,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.6", + "webpki-root-certs 1.0.7", ] [[package]] name = "webpki-root-certs" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" dependencies = [ "rustls-pki-types", ] @@ -12992,14 +13006,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.6", + "webpki-roots 1.0.7", ] [[package]] name = "webpki-roots" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" dependencies = [ "rustls-pki-types", ] @@ -13043,12 +13057,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.57.0" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-core 0.57.0", - "windows-targets 0.52.6", + "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]] @@ -13057,10 +13074,19 @@ version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ - "windows-collections", + "windows-collections 0.3.2", "windows-core 0.62.2", - "windows-future", - "windows-numerics", + "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]] @@ -13074,14 +13100,15 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.57.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.57.0", - "windows-interface 0.57.0", - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -13090,33 +13117,33 @@ version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", - "windows-link", + "windows-implement", + "windows-interface", + "windows-link 0.2.1", "windows-result 0.4.1", - "windows-strings", + "windows-strings 0.5.1", ] [[package]] name = "windows-future" -version = "0.3.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core 0.62.2", - "windows-link", - "windows-threading", + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading 0.1.0", ] [[package]] -name = "windows-implement" -version = "0.57.0" +name = "windows-future" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", ] [[package]] @@ -13132,9 +13159,9 @@ dependencies = [ [[package]] name = "windows-interface" -version = "0.57.0" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", @@ -13142,15 +13169,10 @@ dependencies = [ ] [[package]] -name = "windows-interface" -version = "0.59.3" +name = "windows-link" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-link" @@ -13158,6 +13180,16 @@ 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" @@ -13165,7 +13197,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ "windows-core 0.62.2", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -13174,18 +13206,18 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ - "windows-link", + "windows-link 0.2.1", "windows-result 0.4.1", - "windows-strings", + "windows-strings 0.5.1", ] [[package]] name = "windows-result" -version = "0.1.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-targets 0.52.6", + "windows-link 0.1.3", ] [[package]] @@ -13194,7 +13226,16 @@ 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.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", ] [[package]] @@ -13203,7 +13244,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -13257,7 +13298,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]] @@ -13312,7 +13353,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", @@ -13323,13 +13364,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]] @@ -13523,9 +13573,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" dependencies = [ "memchr", ] @@ -13549,6 +13599,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -13568,7 +13624,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck", - "indexmap 2.13.0", + "indexmap 2.14.0", "prettyplease", "syn 2.0.117", "wasm-metadata", @@ -13598,8 +13654,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.0", - "indexmap 2.13.0", + "bitflags 2.11.1", + "indexmap 2.14.0", "log", "serde", "serde_derive", @@ -13618,9 +13674,9 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", - "semver 1.0.27", + "semver 1.0.28", "serde", "serde_derive", "serde_json", @@ -13636,9 +13692,9 @@ checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" [[package]] name = "writeable" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" [[package]] name = "ws_stream_wasm" @@ -13675,7 +13731,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.1.4", + "rustix", ] [[package]] @@ -13692,9 +13748,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "yoke" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -13703,9 +13759,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", @@ -13735,18 +13791,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", @@ -13776,20 +13832,21 @@ dependencies = [ [[package]] name = "zerotrie" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", "zerofrom", + "zerovec", ] [[package]] name = "zerovec" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "serde", "yoke", @@ -13799,9 +13856,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index c6766932..01e69b31 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,95 +16,100 @@ name = "reth-bsc" path = "src/main.rs" [dependencies] -reth = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-cli = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-cli-commands = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-basic-payload-builder = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-db = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-engine-local = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-engine-tree = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-node-builder = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-chainspec = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-cli-util = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-discv4 = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928", features = [ +reth = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-cli = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-cli-commands = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-basic-payload-builder = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-db = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-engine-local = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-engine-tree = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-node-builder = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-chainspec = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-cli-util = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-discv4 = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2", features = [ "test-utils", ] } -reth-engine-primitives = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-ethereum-forks = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928", features = [ +reth-engine-primitives = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-ethereum-forks = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2", features = [ "serde", ] } -reth-ethereum-payload-builder = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-payload-builder-primitives = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-chain-state = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-ethereum-primitives = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-eth-wire = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-eth-wire-types = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-evm = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-evm-ethereum = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-execution-types = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-ipc = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-metrics = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-node-core = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-revm = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-network = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928", features = [ +reth-ethereum-payload-builder = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-payload-builder-primitives = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-chain-state = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-ethereum-primitives = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-eth-wire = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-eth-wire-types = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-evm = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-evm-ethereum = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-execution-types = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-ipc = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-metrics = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-node-core = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-revm = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-network = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2", features = [ "test-utils", ] } -reth-network-p2p = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-network-api = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-node-ethereum = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928", features = [ +reth-network-p2p = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-network-api = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-node-ethereum = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2", features = [ "test-utils", ] } -reth-network-peers = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-payload-primitives = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-ethereum-engine-primitives = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-primitives = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-primitives-traits = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-provider = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928", features = [ +reth-network-peers = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-payload-primitives = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-ethereum-engine-primitives = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-primitives-traits = { git = "https://github.com/bnb-chain/reth-core.git", branch = "v0.1.1-v2", default-features = false } +reth-codecs = { git = "https://github.com/bnb-chain/reth-core.git", branch = "v0.1.1-v2" } +reth-provider = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2", features = [ "test-utils", ] } -reth-rpc-eth-api = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-rpc-convert = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-rpc-engine-api = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-rpc-server-types = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-trie-common = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-trie-db = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-tasks = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-transaction-pool = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } +reth-rpc-eth-api = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-rpc-convert = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-rpc-engine-api = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-rpc-server-types = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-trie-common = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-trie-db = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-tasks = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-transaction-pool = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } # triedb dependencies rust-eth-triedb = { git = "https://github.com/bnb-chain/reth-bsc-triedb.git", tag = "v0.0.2" } rust-eth-triedb-common = { git = "https://github.com/bnb-chain/reth-bsc-triedb.git", tag = "v0.0.2", package = "rust-eth-triedb-common" } rust-eth-triedb-pathdb = { git = "https://github.com/bnb-chain/reth-bsc-triedb.git", tag = "v0.0.2", package = "rust-eth-triedb-pathdb" } +rust-eth-triedb-state-trie = { git = "https://github.com/bnb-chain/reth-bsc-triedb.git", tag = "v0.0.2", package = "rust-eth-triedb-state-trie" } -revm = "34.0.0" -revm-context-interface = "14.0.0" -revm-database = "10.0.0" +revm = "36.0.0" +revm-database = "12.0.0" +revm-bytecode = "9.0.0" +revm-state = "10.0.0" +revm-primitives = { version = "22.1.0", default-features = false } +revm-interpreter = "34.0.0" +revm-database-interface = "10.0.0" # alloy dependencies -alloy-evm = "0.26.3" - -alloy-genesis = "1.1.3" -alloy-consensus = "1.1.3" -alloy-eips = "1.1.3" -alloy-network = "1.1.3" -alloy-rpc-types = { version = "1.1.3", features = ["engine"] } -alloy-rpc-types-eth = "1.1.3" -alloy-rpc-types-engine = "1.1.3" -alloy-rpc-types-mev = "1.1.3" -alloy-signer = "1.1.3" - -alloy-chains = "0.2.23" -alloy-rlp = { version = "0.3.12", default-features = false, features = [ +alloy-evm = "0.30.0" + +alloy-genesis = "1.8.2" +alloy-consensus = "1.8.2" +alloy-eips = "1.8.2" +alloy-network = "1.8.2" +alloy-rpc-types = { version = "1.8.2", features = ["eth"] } +alloy-rpc-types-eth = "1.8.2" +alloy-rpc-types-engine = "1.8.2" +alloy-rpc-types-mev = "1.8.2" +alloy-signer = "1.8.2" + +alloy-chains = "0.2.33" +alloy-rlp = { version = "0.3.13", default-features = false, features = [ "core-net", ] } -alloy-dyn-abi = "1.4.1" -alloy-json-abi = { version = "1.4.1", default-features = false } -alloy-primitives = { version = "1.4.1", default-features = false, features = [ +alloy-dyn-abi = "1.5.6" +alloy-json-abi = { version = "1.5.6", default-features = false } +alloy-primitives = { version = "1.5.6", default-features = false, features = [ "map-foldhash", ] } -alloy-sol-macro = "1.4.1" -alloy-sol-types = { version = "1.4.1", default-features = false } +alloy-sol-macro = "1.5.6" +alloy-sol-types = { version = "1.5.6", default-features = false } jsonrpsee = { version = "0.26.0", features = ["server", "client", "macros"] } jsonrpsee-core = { version = "0.26.0", features = ["server"] } @@ -182,7 +187,6 @@ dev = ["reth-cli-commands/arbitrary", "reth/dev", "revm/dev"] asm-keccak = [ "reth/asm-keccak", "reth-node-core/asm-keccak", - "reth-primitives/asm-keccak", "reth-node-ethereum/asm-keccak", ] @@ -238,4 +242,6 @@ lto = "fat" codegen-units = 1 [dev-dependencies] -uuid = { version = "1", features = ["v4"] } \ No newline at end of file +uuid = { version = "1", features = ["v4"] } + + diff --git a/src/chainspec/bsc.rs b/src/chainspec/bsc.rs index 78eedcd0..8e7bab43 100644 --- a/src/chainspec/bsc.rs +++ b/src/chainspec/bsc.rs @@ -4,7 +4,7 @@ use alloy_primitives::BlockHash; use reth_chainspec::{ make_genesis_header, BaseFeeParams, BaseFeeParamsKind, Chain, ChainSpec, Head, NamedChain, }; -use reth_primitives::SealedHeader; +use reth_primitives_traits::SealedHeader; use std::str::FromStr; pub fn bsc_mainnet() -> ChainSpec { diff --git a/src/chainspec/bsc_chapel.rs b/src/chainspec/bsc_chapel.rs index 75eafa68..fb0d252b 100644 --- a/src/chainspec/bsc_chapel.rs +++ b/src/chainspec/bsc_chapel.rs @@ -4,7 +4,7 @@ use alloy_primitives::{BlockHash, B256, U256}; use reth_chainspec::{ make_genesis_header, BaseFeeParams, BaseFeeParamsKind, Chain, ChainSpec, Head, NamedChain, }; -use reth_primitives::SealedHeader; +use reth_primitives_traits::SealedHeader; use std::str::FromStr; pub fn bsc_testnet() -> ChainSpec { diff --git a/src/chainspec/bsc_rialto.rs b/src/chainspec/bsc_rialto.rs index c3fde534..b4eae32f 100644 --- a/src/chainspec/bsc_rialto.rs +++ b/src/chainspec/bsc_rialto.rs @@ -3,7 +3,7 @@ use alloy_primitives::{BlockHash, U256, B256}; use reth_chainspec::{ make_genesis_header, BaseFeeParams, BaseFeeParamsKind, Chain, ChainSpec, Head, }; -use reth_primitives::SealedHeader; +use reth_primitives_traits::SealedHeader; use std::str::FromStr; pub const RIALTO_CHAIN_ID: u64 = 714; diff --git a/src/chainspec/local.rs b/src/chainspec/local.rs index e8fc11bf..1ade751f 100644 --- a/src/chainspec/local.rs +++ b/src/chainspec/local.rs @@ -3,7 +3,7 @@ use crate::hardforks::bsc::BscHardfork; use reth_chainspec::{ make_genesis_header, BaseFeeParams, BaseFeeParamsKind, Chain, ChainSpec, Head, NamedChain, }; -use reth_primitives::SealedHeader; +use reth_primitives_traits::SealedHeader; pub fn bsc_local() -> ChainSpec { let genesis = serde_json::from_str(include_str!("genesis_local.json")) diff --git a/src/consensus/parlia/snapshot.rs b/src/consensus/parlia/snapshot.rs index acd18ed1..5a5cede4 100644 --- a/src/consensus/parlia/snapshot.rs +++ b/src/consensus/parlia/snapshot.rs @@ -4,8 +4,7 @@ use super::vote::{VoteAddress, VoteAttestation, VoteData}; use crate::metrics::BscVoteMetrics; use alloy_primitives::{Address, BlockHash, BlockNumber}; use once_cell::sync::Lazy; -use reth_db::table::{Compress, Decompress}; -use reth_db::DatabaseError; +use reth_codecs::{Compress, Decompress, DecompressError}; use serde::{Deserialize, Serialize}; /// Number of blocks after which we persist snapshots to DB. @@ -498,8 +497,8 @@ impl Compress for Snapshot { } impl Decompress for Snapshot { - fn decompress(value: &[u8]) -> Result { - serde_cbor::from_slice(value).map_err(|_| DatabaseError::Decode) + fn decompress(value: &[u8]) -> Result { + serde_cbor::from_slice(value).map_err(DecompressError::new) } } diff --git a/src/consensus/parlia/validation.rs b/src/consensus/parlia/validation.rs index 6df9838d..5778444f 100644 --- a/src/consensus/parlia/validation.rs +++ b/src/consensus/parlia/validation.rs @@ -7,7 +7,7 @@ use crate::consensus::eip4844::is_blob_eligible_block; use super::{Parlia, EMPTY_WITHDRAWALS_HASH}; use alloy_consensus::{Header, Transaction, EMPTY_OMMER_ROOT_HASH}; use alloy_primitives::B256; -use reth_primitives::GotExpected; +use reth_primitives_traits::GotExpected; use alloy_eips::eip4844::{DATA_GAS_PER_BLOB, MAX_DATA_GAS_PER_BLOCK_DENCUN}; use crate::BscBlock; use reth_primitives_traits::Block; @@ -297,7 +297,7 @@ impl SealedHeader { RethSealedHeader::new(header, B256::ZERO) diff --git a/src/evm/api/mod.rs b/src/evm/api/mod.rs index d7978e63..a074d977 100644 --- a/src/evm/api/mod.rs +++ b/src/evm/api/mod.rs @@ -335,7 +335,7 @@ mod tests { false, false, ); - mismatched.inner.instruction = EthInstructions::new_mainnet(); + mismatched.inner.instruction = EthInstructions::new_mainnet_with_spec(SpecId::default()); let mismatched_result = mismatched .transact_one(tx) diff --git a/src/evm/handler.rs b/src/evm/handler.rs index 631c6fb8..213ee97c 100644 --- a/src/evm/handler.rs +++ b/src/evm/handler.rs @@ -17,13 +17,13 @@ use revm::{ transaction::TransactionType, Cfg, ContextError, ContextTr, LocalContextTr, Transaction, }, - context_interface::{transaction::eip7702::AuthorizationTr, Block, JournalTr}, + context_interface::{result::ResultGas, transaction::eip7702::AuthorizationTr, Block, JournalTr}, handler::{EthFrame, EvmTr, FrameResult, Handler, MainnetHandler}, inspector::{Inspector, InspectorHandler}, interpreter::{interpreter::EthInterpreter, Host, InitialAndFloorGas, SuccessOrHalt}, primitives::hardfork::SpecId, }; -use revm_context_interface::journaled_state::account::JournaledAccountTr; +use revm::context_interface::journaled_state::account::JournaledAccountTr; use crate::consensus::SYSTEM_ADDRESS; pub struct BscHandler { @@ -249,6 +249,7 @@ impl Handler for BscHandler { &mut self, evm: &mut Self::Evm, result: FrameResult, + mut result_gas: ResultGas, ) -> Result, Self::Error> { // Ensure we always pop the trace context, even on early returns. struct PrecompileTracePopGuard; @@ -265,15 +266,12 @@ impl Handler for BscHandler { Ok(_) => (), } - // used gas with refund calculated. - let raw_gas_refunded = result.gas().refunded() as u64; - let raw_gas_spent = result.gas().spent(); - let is_system_tx = { - let ctx = evm.ctx_ref(); - ctx.tx().is_system_transaction - }; - let gas_refunded = if is_system_tx { 0 } else { raw_gas_refunded }; - let final_gas_used = raw_gas_spent - gas_refunded; + // System transactions never get a gas refund in BSC. + let is_system_tx = evm.ctx_ref().tx().is_system_transaction; + if is_system_tx { + result_gas.set_refunded(0); + } + let output = result.output(); let instruction_result = result.into_interpreter_result(); @@ -283,16 +281,15 @@ impl Handler for BscHandler { let result = match SuccessOrHalt::from(instruction_result.result) { SuccessOrHalt::Success(reason) => ExecutionResult::Success { reason, - gas_used: final_gas_used, - gas_refunded, + gas: result_gas, logs, output, }, SuccessOrHalt::Revert => { - ExecutionResult::Revert { gas_used: final_gas_used, output: output.into_data() } + ExecutionResult::Revert { gas: result_gas, logs, output: output.into_data() } } SuccessOrHalt::Halt(reason) => { - ExecutionResult::Halt { reason, gas_used: final_gas_used } + ExecutionResult::Halt { reason, gas: result_gas, logs } } // Only two internal return flags. flag @ (SuccessOrHalt::FatalExternalError | SuccessOrHalt::Internal(_)) => { diff --git a/src/evm/transaction.rs b/src/evm/transaction.rs index 184dc86a..a085bdcc 100644 --- a/src/evm/transaction.rs +++ b/src/evm/transaction.rs @@ -1,7 +1,8 @@ use alloy_evm::{rpc::TryIntoTxEnv, EvmEnv}; use alloy_rpc_types_eth::{AccessList, TransactionRequest}; -use reth_evm::{FromRecoveredTx, FromTxWithEncoded, IntoTxEnv, TransactionEnv}; -use reth_primitives::TransactionSigned; +use alloy_evm::TransactionEnvMut; +use reth_evm::{FromRecoveredTx, FromTxWithEncoded, IntoTxEnv}; +use reth_ethereum_primitives::TransactionSigned; use revm::{ context::TxEnv, context_interface::transaction::Transaction, @@ -110,26 +111,22 @@ impl FromRecoveredTx for BscTxEnv { impl FromTxWithEncoded for BscTxEnv { fn from_encoded_tx(tx: &TransactionSigned, sender: Address, _encoded: Bytes) -> Self { let base = match tx.clone().into_typed_transaction() { - reth_primitives::Transaction::Legacy(tx) => TxEnv::from_recovered_tx(&tx, sender), - reth_primitives::Transaction::Eip2930(tx) => TxEnv::from_recovered_tx(&tx, sender), - reth_primitives::Transaction::Eip1559(tx) => TxEnv::from_recovered_tx(&tx, sender), - reth_primitives::Transaction::Eip4844(tx) => TxEnv::from_recovered_tx(&tx, sender), - reth_primitives::Transaction::Eip7702(tx) => TxEnv::from_recovered_tx(&tx, sender), + reth_ethereum_primitives::Transaction::Legacy(tx) => TxEnv::from_recovered_tx(&tx, sender), + reth_ethereum_primitives::Transaction::Eip2930(tx) => TxEnv::from_recovered_tx(&tx, sender), + reth_ethereum_primitives::Transaction::Eip1559(tx) => TxEnv::from_recovered_tx(&tx, sender), + reth_ethereum_primitives::Transaction::Eip4844(tx) => TxEnv::from_recovered_tx(&tx, sender), + reth_ethereum_primitives::Transaction::Eip7702(tx) => TxEnv::from_recovered_tx(&tx, sender), }; Self { base, is_system_transaction: false } } } -impl TransactionEnv for BscTxEnv { +impl TransactionEnvMut for BscTxEnv { fn set_gas_limit(&mut self, gas_limit: u64) { self.base.set_gas_limit(gas_limit); } - fn nonce(&self) -> u64 { - TransactionEnv::nonce(&self.base) - } - fn set_nonce(&mut self, nonce: u64) { self.base.set_nonce(nonce); } @@ -157,15 +154,19 @@ impl SystemCallTx for BscTxEnv { } } -impl TryIntoTxEnv for TransactionRequest { - type Err = >::Err; +impl TryIntoTxEnv + for TransactionRequest +{ + type Err = >::Err; - fn try_into_tx_env( + fn try_into_tx_env( self, - evm_env: &EvmEnv, - ) -> Result>::Err> { + evm_env: &EvmEnv, + ) -> Result { Ok(BscTxEnv { - base: >::try_into_tx_env(self, evm_env)?, + base: >::try_into_tx_env( + self, evm_env, + )?, is_system_transaction: false, }) } diff --git a/src/node/consensus.rs b/src/node/consensus.rs index 075c9126..4409e964 100644 --- a/src/node/consensus.rs +++ b/src/node/consensus.rs @@ -32,8 +32,7 @@ use reth::{ use reth_chainspec::EthChainSpec; use reth_engine_primitives::ConsensusEngineHandle; use reth_ethereum_primitives::Receipt; -use reth_payload_primitives::EngineApiMessageVersion; -use reth_primitives::{gas_spent_by_transactions, GotExpected}; +use reth_primitives_traits::{receipt::gas_spent_by_transactions, GotExpected}; use reth_primitives_traits::constants::{GAS_LIMIT_BOUND_DIVISOR, MINIMUM_GAS_LIMIT}; use reth_provider::{BlockNumReader, HeaderProvider}; use std::sync::Arc; @@ -375,15 +374,15 @@ mod tests { fn sealed_header( &self, _number: u64, - ) -> reth_provider::ProviderResult>> { + ) -> reth_provider::ProviderResult>> { Ok(None) } fn sealed_headers_while( &self, _range: impl core::ops::RangeBounds, - _predicate: impl FnMut(&reth_primitives::SealedHeader) -> bool, - ) -> reth_provider::ProviderResult>> { + _predicate: impl FnMut(&reth_primitives_traits::SealedHeader) -> bool, + ) -> reth_provider::ProviderResult>> { Ok(Vec::new()) } } @@ -1256,7 +1255,7 @@ where match self .engine_handle - .fork_choice_updated(state, None, EngineApiMessageVersion::default()) + .fork_choice_updated(state, None) .await { Ok(response) => match response.payload_status.status { diff --git a/src/node/engine.rs b/src/node/engine.rs index 64f5a4c8..26a81418 100644 --- a/src/node/engine.rs +++ b/src/node/engine.rs @@ -22,7 +22,8 @@ use reth_chain_state::ExecutedBlock; use reth_evm::ConfigureEvm; use reth_payload_builder_primitives::Events; use reth_payload_primitives::BuiltPayload; -use reth_primitives::{SealedBlock, TransactionSigned}; +use reth_primitives_traits::SealedBlock; +use reth_ethereum_primitives::TransactionSigned; use std::sync::Arc; use std::time::Duration; use tokio::sync::{broadcast, mpsc}; @@ -122,7 +123,7 @@ where let chain_spec_clone = Arc::new(ctx.config().chain.clone().as_ref().clone()); let task_executor_clone = ctx.task_executor().clone(); - ctx.task_executor().spawn_critical("bsc-miner-initializer", async move { + ctx.task_executor().spawn_critical_task("bsc-miner-initializer", async move { info!("Waiting for consensus module to initialize snapshot provider..."); let mut attempts = 0; let snapshot_provider = loop { @@ -164,7 +165,7 @@ where let _ = crate::shared::set_payload_events_tx(events_tx.clone()); // Handle payload service commands (keep minimal compatibility but with shared events channel) - ctx.task_executor().spawn_critical("payload-service-handler", async move { + ctx.task_executor().spawn_critical_task("payload-service-handler", async move { while let Some(message) = rx.recv().await { match message { PayloadServiceCommand::Subscribe(tx) => { diff --git a/src/node/engine_api/mod.rs b/src/node/engine_api/mod.rs index c05eec63..b9d404cf 100644 --- a/src/node/engine_api/mod.rs +++ b/src/node/engine_api/mod.rs @@ -8,8 +8,6 @@ use alloy_rpc_types_engine::{ForkchoiceState, PayloadStatusEnum}; #[cfg(feature = "bench-test")] use jsonrpsee_types::ErrorObjectOwned; #[cfg(feature = "bench-test")] -use reth_payload_primitives::EngineApiMessageVersion; -#[cfg(feature = "bench-test")] use reth_node_ethereum::engine::EthPayloadAttributes; @@ -68,7 +66,6 @@ impl IntoEngineApiRpcModule for BscEngineApi { .fork_choice_updated( forkchoice_state, payload_attrs, - EngineApiMessageVersion::V1, ) .await { diff --git a/src/node/engine_api/payload.rs b/src/node/engine_api/payload.rs index 684d829a..65748a12 100644 --- a/src/node/engine_api/payload.rs +++ b/src/node/engine_api/payload.rs @@ -1,8 +1,5 @@ use crate::node::{engine::BscBuiltPayload, engine_api::validator::BscExecutionData}; -use reth::{ - payload::EthPayloadBuilderAttributes, - primitives::{NodePrimitives, SealedBlock}, -}; +use reth::primitives::{NodePrimitives, SealedBlock}; use reth_node_ethereum::engine::EthPayloadAttributes; use reth_payload_primitives::{BuiltPayload, PayloadTypes}; @@ -14,7 +11,6 @@ pub struct BscPayloadTypes; impl PayloadTypes for BscPayloadTypes { type BuiltPayload = BscBuiltPayload; type PayloadAttributes = EthPayloadAttributes; - type PayloadBuilderAttributes = EthPayloadBuilderAttributes; type ExecutionData = BscExecutionData; fn block_to_payload( diff --git a/src/node/engine_api/validator.rs b/src/node/engine_api/validator.rs index a3b02171..15436209 100644 --- a/src/node/engine_api/validator.rs +++ b/src/node/engine_api/validator.rs @@ -14,7 +14,7 @@ use reth::{ }; use reth_engine_primitives::{ExecutionPayload, PayloadValidator}; use reth_payload_primitives::NewPayloadError; -use reth_primitives::{RecoveredBlock, SealedBlock}; +use reth_primitives_traits::{RecoveredBlock, SealedBlock}; use reth_primitives_traits::Block; use reth_trie_common::HashedPostState; use serde::{Deserialize, Serialize}; diff --git a/src/node/evm/assembler.rs b/src/node/evm/assembler.rs index 63f5c269..e4900907 100644 --- a/src/node/evm/assembler.rs +++ b/src/node/evm/assembler.rs @@ -233,10 +233,13 @@ where let logs_bloom = logs_bloom(receipts.iter().flat_map(|r| &r.logs)); let block_number = evm_env.block_env.number().saturating_to(); - let withdrawals = self + let withdrawals: Option = self .chain_spec .is_shanghai_active_at_timestamp(timestamp) - .then(|| eth_ctx.withdrawals.clone().map(|w| w.into_owned()).unwrap_or_default()); + .then(|| { + let v = eth_ctx.withdrawals.clone().map(|w| w.into_owned()).unwrap_or_default(); + Withdrawals::new(v) + }); let withdrawals_root = withdrawals.as_deref().map(|w| proofs::calculate_withdrawals_root(w)); diff --git a/src/node/evm/builder.rs b/src/node/evm/builder.rs index cc54c7a2..fb55975b 100644 --- a/src/node/evm/builder.rs +++ b/src/node/evm/builder.rs @@ -98,10 +98,11 @@ where &revm::context::result::ExecutionResult<<::Evm as alloy_evm::Evm>::HaltReason>, ) -> alloy_evm::block::CommitChanges, ) -> Result, BlockExecutionError> { + let (tx_env, recovered) = tx.into_parts(); if let Some(gas_used) = - self.executor.execute_transaction_with_commit_condition(tx.as_executable(), f)? + self.executor.execute_transaction_with_commit_condition((tx_env, &recovered), f)? { - self.transactions.push(tx.into_recovered()); + self.transactions.push(recovered); Ok(Some(gas_used)) } else { Ok(None) @@ -112,6 +113,7 @@ where fn finish( self, state: impl StateProvider, + _state_root_precomputed: Option<(alloy_primitives::B256, TrieUpdates)>, ) -> Result, BlockExecutionError> { Ok(self.finish_with_difflayer(state)?.inner) } diff --git a/src/node/evm/config.rs b/src/node/evm/config.rs index d3727760..07094c01 100644 --- a/src/node/evm/config.rs +++ b/src/node/evm/config.rs @@ -25,7 +25,8 @@ use reth_evm::{ NextBlockEnvAttributes, }; use reth_evm_ethereum::RethReceiptBuilder; -use reth_primitives::{BlockTy, HeaderTy, SealedBlock, SealedHeader, TransactionSigned}; +use reth_primitives_traits::{BlockTy, HeaderTy, SealedBlock, SealedHeader}; +use reth_ethereum_primitives::TransactionSigned; use reth_primitives_traits::constants::MAX_TX_GAS_LIMIT_OSAKA; use reth_revm::State; use reth_rpc_eth_api::helpers::pending_block::BuildPendingEnv; @@ -240,12 +241,12 @@ where #[allow(refining_impl_trait)] fn create_executor<'a, DB, I>( &'a self, - evm: ::Evm<&'a mut State, I>, + evm: ::Evm, ctx: Self::ExecutionCtx<'a>, - ) -> BscBlockExecutor<'a, ::Evm<&'a mut State, I>, Spec, R> + ) -> BscBlockExecutor<'a, ::Evm, Spec, R> where - DB: alloy_evm::Database + 'a, - I: Inspector<::Context<&'a mut State>> + 'a, + DB: alloy_evm::block::StateDB + 'a, + I: Inspector<::Context> + 'a, { BscBlockExecutor::new( evm, @@ -329,6 +330,7 @@ where gas_limit: header.gas_limit(), basefee: header.base_fee_per_gas().unwrap_or_default(), blob_excess_gas_and_price, + slot_num: 0, }; Ok(EvmEnv { cfg_env, block_env }) @@ -408,6 +410,7 @@ where basefee: basefee.unwrap_or_default(), // calculate excess gas based on parent block's blob gas usage blob_excess_gas_and_price, + slot_num: 0, }; Ok(EvmEnv { cfg_env, block_env }) @@ -423,7 +426,7 @@ where parent_hash: block.header().parent_hash, parent_beacon_block_root: block.header().parent_beacon_block_root, ommers: &block.body().ommers, - withdrawals: block.body().withdrawals.as_ref().map(Cow::Borrowed), + withdrawals: block.body().withdrawals.as_ref().map(|w| Cow::Borrowed(w.as_slice())), extra_data: block.header().extra_data.clone(), }, header: Some(block.header().clone()), @@ -448,7 +451,7 @@ where parent_hash: parent.hash(), parent_beacon_block_root: attributes.inner.parent_beacon_block_root, ommers: &[], - withdrawals: attributes.inner.withdrawals.map(Cow::Owned), + withdrawals: attributes.inner.withdrawals.map(|w| Cow::Owned(w.into_inner())), extra_data: attributes.inner.extra_data, }, header: None, // No header available for next block context @@ -469,7 +472,7 @@ where ctx: ::ExecutionCtx<'a>, ) -> impl BlockBuilder< Primitives = Self::Primitives, - Executor: BlockExecutorFor<'a, Self::BlockExecutorFactory, DB, I>, + Executor: BlockExecutorFor<'a, Self::BlockExecutorFactory, &'a mut State, I>, > where DB: Database, @@ -522,7 +525,7 @@ where parent_hash: block.header.parent_hash(), parent_beacon_block_root: block.header.parent_beacon_block_root, ommers: &block.body.inner.ommers, - withdrawals: block.body.inner.withdrawals.as_ref().map(Cow::Borrowed), + withdrawals: block.body.inner.withdrawals.as_ref().map(|w| Cow::Borrowed(w.as_slice())), extra_data: block.header.extra_data.clone(), }, header: Some(block.header.clone()), diff --git a/src/node/evm/error.rs b/src/node/evm/error.rs index 1945c30d..bfc96206 100644 --- a/src/node/evm/error.rs +++ b/src/node/evm/error.rs @@ -4,7 +4,7 @@ use alloy_primitives::{Address, BlockHash, BlockNumber, B256, U256}; use crate::consensus::parlia::error::ParliaConsensusError; use reth_evm::execute::{BlockExecutionError, BlockValidationError}; use reth_provider::ProviderError; -use reth_primitives::{GotExpected, GotExpectedBoxed}; +use reth_primitives_traits::{GotExpected, GotExpectedBoxed}; /// BSC specific block validation error #[derive(thiserror::Error, Debug, Clone)] diff --git a/src/node/evm/executor.rs b/src/node/evm/executor.rs index cf20de55..5c1a339c 100644 --- a/src/node/evm/executor.rs +++ b/src/node/evm/executor.rs @@ -1,39 +1,72 @@ +use super::config::{revm_spec_by_timestamp_and_block_number, BscBlockExecutionCtx}; use super::patch::HertzPatchManager; +use crate::consensus::parlia::SnapshotProvider; use crate::{ - consensus::{SYSTEM_ADDRESS, parlia::{Parlia, Snapshot, VoteAddress}}, evm::{precompiles, transaction::BscTxEnv}, hardforks::BscHardforks, metrics::{BscBlockchainMetrics, BscConsensusMetrics, BscExecutorMetrics, BscRewardsMetrics, BscVoteMetrics}, node::evm::config::BscExecutionSharedCtx, system_contracts::{ - SystemContract, feynman_fork::ValidatorElectionInfo, get_upgrade_system_contracts, is_system_transaction - } + consensus::{ + parlia::{Parlia, Snapshot, VoteAddress}, + SYSTEM_ADDRESS, + }, + evm::{precompiles, transaction::BscTxEnv}, + hardforks::BscHardforks, + metrics::{ + BscBlockchainMetrics, BscConsensusMetrics, BscExecutorMetrics, BscRewardsMetrics, + BscVoteMetrics, + }, + node::evm::config::BscExecutionSharedCtx, + system_contracts::{ + feynman_fork::ValidatorElectionInfo, get_upgrade_system_contracts, is_system_transaction, + SystemContract, + }, }; -use alloy_consensus::{Header, Transaction, TxReceipt}; +use alloy_consensus::{Header, TxReceipt, TxType}; +use alloy_eips::eip2935::{HISTORY_STORAGE_ADDRESS, HISTORY_STORAGE_CODE}; use alloy_eips::{eip7685::Requests, Encodable2718}; -use alloy_evm::{block::{ExecutableTx, StateChangeSource}, eth::receipt_builder::ReceiptBuilderCtx}; -use alloy_primitives::{hex, uint, Address, U256, BlockNumber, Bytes}; +use alloy_evm::{ + block::{ExecutableTx, StateChangeSource, TxResult}, + eth::receipt_builder::ReceiptBuilderCtx, +}; +use alloy_primitives::keccak256; +use alloy_primitives::{hex, uint, Address, BlockNumber, Bytes, U256}; use reth_chainspec::{EthChainSpec, EthereumHardforks, Hardforks}; -use super::config::{BscBlockExecutionCtx, revm_spec_by_timestamp_and_block_number}; +use reth_ethereum_primitives::TransactionSigned; use reth_evm::{ - block::{BlockValidationError, CommitChanges}, + block::BlockValidationError, eth::receipt_builder::ReceiptBuilder, execute::{BlockExecutionError, BlockExecutor}, system_calls::SystemCaller, - Database, Evm, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv, OnStateHook, RecoveredTx, + Evm, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv, OnStateHook, }; -use reth_primitives::TransactionSigned; use reth_provider::BlockExecutionResult; -use reth_revm::State; +use revm::Database as _; use revm::{ - context::{ - result::{ExecutionResult, ResultAndState}, - - }, + context::result::{ExecutionResult, Output, ResultAndState, ResultGas, SuccessReason}, context_interface::block::Block, - state::Bytecode, + state::{Account as RevmAccount, Bytecode, EvmState}, DatabaseCommit, }; -use tracing::{error, warn, info, debug, trace}; -use alloy_eips::eip2935::{HISTORY_STORAGE_ADDRESS, HISTORY_STORAGE_CODE}; -use alloy_primitives::keccak256; use std::{collections::HashMap, sync::Arc}; -use crate::consensus::parlia::SnapshotProvider; +use tracing::{debug, error, info, trace, warn}; + +/// Result of executing a single BSC transaction. +pub struct BscTxResult { + pub inner: ResultAndState, + pub blob_gas_used: u64, + pub tx_type: TxType, + pub tx: TransactionSigned, + pub is_system: bool, +} + +impl TxResult for BscTxResult { + type HaltReason = H; + + fn result(&self) -> &ResultAndState { + &self.inner + } + + fn into_result(self) -> ResultAndState { + self.inner + } +} /// Helper type for the input of post execution. #[allow(clippy::type_complexity)] #[derive(Debug, Clone)] @@ -93,11 +126,10 @@ where pub(super) rewards_metrics: BscRewardsMetrics, } -impl<'a, DB, EVM, Spec, R: ReceiptBuilder> BscBlockExecutor<'a, EVM, Spec, R> +impl<'a, EVM, Spec, R: ReceiptBuilder> BscBlockExecutor<'a, EVM, Spec, R> where - DB: Database + 'a, EVM: Evm< - DB = &'a mut State, + DB: alloy_evm::block::StateDB + 'a, Tx: FromRecoveredTx + FromRecoveredTx + FromTxWithEncoded, @@ -121,15 +153,19 @@ where ) -> Self { let is_mainnet = spec.chain().id() == 56; // BSC mainnet chain ID let hertz_patch_manager = HertzPatchManager::new(is_mainnet); - + trace!("Succeed to new block executor, header: {:?}", ctx.header); if let Some(ref header) = ctx.header { crate::node::evm::util::HEADER_CACHE_READER .lock() .unwrap() .insert_header_to_cache_with_hash(header.clone(), ctx.header_hash); - } else if !ctx.is_miner { // miner has no current header. - warn!("No header found in the context, block_number: {:?}", evm.block().number().to::()); + } else if !ctx.is_miner { + // miner has no current header. + warn!( + "No header found in the context, block_number: {:?}", + evm.block().number().to::() + ); } let parlia = Arc::new(Parlia::new(Arc::new(spec.clone()), 200)); @@ -166,22 +202,13 @@ where } } - /// Accumulate blob gas used for Cancun blocks. - fn accumulate_blob_gas_used(&mut self, tx: &T) { - if !BscHardforks::is_cancun_active_at_timestamp( - &self.spec, - self.evm.block().number().to::(), - self.evm.block().timestamp().to::(), - ) { - return; - } - - self.blob_gas_used = - self.blob_gas_used.saturating_add(tx.blob_gas_used().unwrap_or_default()); - } - /// Applies system contract upgrades if the Feynman fork is not yet active. - fn upgrade_contracts(&mut self, block_number: BlockNumber, block_timestamp: u64, parent_timestamp: u64) -> Result<(), BlockExecutionError> { + fn upgrade_contracts( + &mut self, + block_number: BlockNumber, + block_timestamp: u64, + parent_timestamp: u64, + ) -> Result<(), BlockExecutionError> { trace!( target: "bsc::executor::upgrade", block_number, @@ -189,7 +216,7 @@ where parent_timestamp, "Calling get_upgrade_system_contracts" ); - + let contracts = get_upgrade_system_contracts( &self.spec, block_number, @@ -215,7 +242,13 @@ where } /// Mimics Geth-BSC's TryUpdateBuildInSystemContract function - fn try_update_build_in_system_contract(&mut self, block_number: BlockNumber, block_timestamp: u64, parent_timestamp: u64, at_block_begin: bool) -> Result<(), BlockExecutionError> { + fn try_update_build_in_system_contract( + &mut self, + block_number: BlockNumber, + block_timestamp: u64, + parent_timestamp: u64, + at_block_begin: bool, + ) -> Result<(), BlockExecutionError> { if at_block_begin { // Upgrade system contracts before Feynman at block begin if !self.spec.is_feynman_active_at_timestamp(block_number, parent_timestamp) { @@ -227,10 +260,14 @@ where ); self.upgrade_contracts(block_number, block_timestamp, parent_timestamp)?; } - + // HistoryStorageAddress is a special system contract in BSC, which can't be upgraded // This must be done at block begin when Prague activates - if self.spec.is_prague_transition_at_block_and_timestamp(block_number, block_timestamp, parent_timestamp) { + if self.spec.is_prague_transition_at_block_and_timestamp( + block_number, + block_timestamp, + parent_timestamp, + ) { info!( target: "bsc::executor::prague", block_number, @@ -272,7 +309,7 @@ where beneficiary: Address, ) -> Result<(), BlockExecutionError> { let txs = self.system_contracts.genesis_contracts_txs(); - for tx in txs { + for tx in txs { self.transact_system_tx(tx.into(), beneficiary)?; } Ok(()) @@ -284,15 +321,15 @@ where address: Address, code: Bytecode, ) -> Result<(), BlockExecutionError> { - let account = - self.evm.db_mut().load_cache_account(address).map_err(BlockExecutionError::other)?; - - let mut info = account.account_info().unwrap_or_default(); + let db = self.evm.db_mut(); + let mut info = db.basic(address).map_err(BlockExecutionError::other)?.unwrap_or_default(); info.code_hash = code.hash_slow(); info.code = Some(code); - - let transition = account.change(info, Default::default()); - self.evm.db_mut().apply_transition(vec![(address, transition)]); + let mut account = RevmAccount::from(info); + account.mark_touch(); + let mut changes: EvmState = Default::default(); + changes.insert(address, account); + db.commit(changes); Ok(()) } @@ -307,7 +344,8 @@ where "Deploying HistoryStorageAddress contract (Prague transition)" ); - let account = self.evm.db_mut().load_cache_account(HISTORY_STORAGE_ADDRESS).map_err(|err| { + let db = self.evm.db_mut(); + let old_info = db.basic(HISTORY_STORAGE_ADDRESS).map_err(|err| { error!( target: "bsc::executor::prague", block_number, @@ -316,8 +354,6 @@ where ); BlockExecutionError::other(err) })?; - - let old_info = account.account_info(); debug!( target: "bsc::executor::prague", block_number, @@ -326,15 +362,17 @@ where "HistoryStorageAddress account before deployment" ); - let mut new_info = account.account_info().unwrap_or_default(); + let mut new_info = old_info.unwrap_or_default(); new_info.code_hash = keccak256(HISTORY_STORAGE_CODE.clone()); new_info.code = Some(Bytecode::new_raw(Bytes::from_static(&HISTORY_STORAGE_CODE))); new_info.nonce = 1_u64; new_info.balance = U256::ZERO; + let mut account = RevmAccount::from(new_info); + account.mark_touch(); + let mut changes: EvmState = Default::default(); + changes.insert(HISTORY_STORAGE_ADDRESS, account); + db.commit(changes); - let transition = account.change(new_info, Default::default()); - self.evm.db_mut().apply_transition(vec![(HISTORY_STORAGE_ADDRESS, transition)]); - info!( target: "bsc::executor::prague", block_number, @@ -344,11 +382,10 @@ where } } -impl<'a, DB, E, Spec, R> BlockExecutor for BscBlockExecutor<'a, E, Spec, R> +impl<'a, E, Spec, R> BlockExecutor for BscBlockExecutor<'a, E, Spec, R> where - DB: Database + 'a, E: Evm< - DB = &'a mut State, + DB: alloy_evm::block::StateDB + 'a, Tx: FromRecoveredTx + FromRecoveredTx + FromTxWithEncoded, @@ -364,16 +401,17 @@ where type Transaction = TransactionSigned; type Receipt = R::Receipt; type Evm = E; + type Result = BscTxResult; fn apply_pre_execution_changes(&mut self) -> Result<(), BlockExecutionError> { let block_env = self.evm.block().clone(); trace!( - target: "bsc::executor", + target: "bsc::executor", block_id = %block_env.number(), is_miner = self.ctx.is_miner, "Start to apply_pre_execution_changes" ); - + // Update current block height and header height metrics let block_number = block_env.number().to::(); self.consensus_metrics.current_block_height.set(block_number as f64); @@ -384,23 +422,19 @@ where } else { self.check_new_block(&block_env)?; } - - // set state clear flag if the block is after the Spurious Dragon hardfork. - let block_number = self.evm.block().number().to::(); - let state_clear_flag = self.spec.is_spurious_dragon_active_at_block(block_number); - self.evm.db_mut().set_state_clear_flag(state_clear_flag); + let parent_timestamp = self.inner_ctx.parent_header.as_ref().unwrap().timestamp; self.try_update_build_in_system_contract( - self.evm.block().number().to::(), - self.evm.block().timestamp().to::(), - parent_timestamp, - true + self.evm.block().number().to::(), + self.evm.block().timestamp().to::(), + parent_timestamp, + true, )?; - + // Apply historical block hashes if Prague is active if self.spec.is_prague_active_at_block_and_timestamp( - self.evm.block().number().to::(), - self.evm.block().timestamp().to::() + self.evm.block().number().to::(), + self.evm.block().timestamp().to::(), ) { trace!( target: "bsc::executor::prague", @@ -418,123 +452,78 @@ where fn execute_transaction_without_commit( &mut self, tx: impl ExecutableTx, - ) -> Result::HaltReason>, BlockExecutionError> { - let block_available_gas = self.evm.block().gas_limit() - self.gas_used; - if tx.tx().gas_limit() > block_available_gas { - return Err(BlockValidationError::TransactionGasLimitMoreThanAvailableBlockGas { - transaction_gas_limit: tx.tx().gas_limit(), - block_available_gas, - } - .into()); - } + ) -> Result, BlockExecutionError> { + use alloy_evm::RecoveredTx as _; - let tx_hash = tx.tx().trie_hash(); - let block_number = self.evm.block().number().to::(); - let timestamp = self.evm.block().timestamp().to::(); - let spec = revm_spec_by_timestamp_and_block_number(self.spec.clone(), timestamp, block_number); - let (to, selector, input_len) = { - let to = tx.tx().to(); - let input = tx.tx().input(); - let selector = if input.len() >= 4 { - Some(hex::encode(&input[..4])) - } else { - None - }; - (to, selector, input.len()) - }; + let (tx_env, recovered) = tx.into_parts(); + let signer = *recovered.signer(); + let tx_signed: TransactionSigned = recovered.tx().clone(); + let tx_type = tx_signed.tx_type(); - precompiles::push_precompile_trace_context(precompiles::PrecompileTraceContext::from_parts( - block_number, - spec, - false, - Some(tx_hash), - to, - selector, - input_len, - )); - struct PrecompileTracePopGuard; - impl Drop for PrecompileTracePopGuard { - fn drop(&mut self) { - precompiles::pop_precompile_trace_context(); - } + // Detect system transactions: skip EVM execution, accumulate for later. + let is_system = is_system_transaction(&tx_signed, signer, self.evm.block().beneficiary()); + if is_system { + self.system_txs.push(tx_signed.clone()); + let dummy = ResultAndState { + result: ExecutionResult::Success { + reason: SuccessReason::Stop, + gas: ResultGas::new(0, 0, 0, 0, 0), + logs: vec![], + output: Output::Call(Bytes::new()), + }, + state: Default::default(), + }; + return Ok(BscTxResult { + inner: dummy, + blob_gas_used: 0, + tx_type, + tx: tx_signed, + is_system: true, + }); } - let _precompile_trace_pop_guard = PrecompileTracePopGuard; - - self.evm - .transact(&tx) - .map_err(|err| BlockExecutionError::evm(err, tx_hash)) - } - - fn commit_transaction( - &mut self, - output: ResultAndState<::HaltReason>, - tx: impl ExecutableTx, - ) -> Result { - let ResultAndState { result, state } = output; - - let mut temp_state = state.clone(); - temp_state.remove(&SYSTEM_ADDRESS); - self.system_caller - .on_state(StateChangeSource::Transaction(self.receipts.len()), &temp_state); - - let gas_used = result.gas_used(); - self.gas_used += gas_used; - self.accumulate_blob_gas_used(tx.tx()); - self.receipts.push(self.receipt_builder.build_receipt(ReceiptBuilderCtx { - tx: tx.tx(), - evm: &self.evm, - result, - state: &state, - cumulative_gas_used: self.gas_used, - })); - - self.evm.db_mut().commit(state); - - Ok(gas_used) - } + // Apply hertz patch before tx (validation only, not mining). + if !self.ctx.is_miner { + self.hertz_patch_manager.patch_before_tx(&tx_signed, self.evm.db_mut())?; + } - fn execute_transaction_with_commit_condition( - &mut self, - tx: impl ExecutableTx, - f: impl FnOnce(&ExecutionResult<::HaltReason>) -> CommitChanges, - ) -> Result, BlockExecutionError> { - // The sum of the transaction's gas limit, Tg, and the gas utilized in this block prior, - // must be no greater than the block's gasLimit. let block_available_gas = self.evm.block().gas_limit() - self.gas_used; - - if tx.tx().gas_limit() > block_available_gas { + let tx_gas_limit = { + use alloy_consensus::Transaction as _; + tx_signed.gas_limit() + }; + if tx_gas_limit > block_available_gas { return Err(BlockValidationError::TransactionGasLimitMoreThanAvailableBlockGas { - transaction_gas_limit: tx.tx().gas_limit(), + transaction_gas_limit: tx_gas_limit, block_available_gas, } .into()); } - let tx_hash = tx.tx().trie_hash(); + let tx_hash = tx_signed.trie_hash(); let block_number = self.evm.block().number().to::(); let timestamp = self.evm.block().timestamp().to::(); - let spec = revm_spec_by_timestamp_and_block_number(self.spec.clone(), timestamp, block_number); + let spec = + revm_spec_by_timestamp_and_block_number(self.spec.clone(), timestamp, block_number); let (to, selector, input_len) = { - let to = tx.tx().to(); - let input = tx.tx().input(); - let selector = if input.len() >= 4 { - Some(hex::encode(&input[..4])) - } else { - None - }; + use alloy_consensus::Transaction as _; + let to = tx_signed.to(); + let input = tx_signed.input(); + let selector = if input.len() >= 4 { Some(hex::encode(&input[..4])) } else { None }; (to, selector, input.len()) }; - precompiles::push_precompile_trace_context(precompiles::PrecompileTraceContext::from_parts( - block_number, - spec, - false, - Some(tx_hash), - to, - selector, - input_len, - )); + precompiles::push_precompile_trace_context( + precompiles::PrecompileTraceContext::from_parts( + block_number, + spec, + false, + Some(tx_hash), + to, + selector, + input_len, + ), + ); struct PrecompileTracePopGuard; impl Drop for PrecompileTracePopGuard { fn drop(&mut self) { @@ -543,133 +532,63 @@ where } let _precompile_trace_pop_guard = PrecompileTracePopGuard; - // Execute transaction. - let ResultAndState { result, state } = self - .evm - .transact(&tx) - .map_err(|err| BlockExecutionError::evm(err, tx_hash))?; - - if !f(&result).should_commit() { - return Ok(None); - } - - let mut temp_state = state.clone(); - temp_state.remove(&SYSTEM_ADDRESS); - self.system_caller - .on_state(StateChangeSource::Transaction(self.receipts.len()), &temp_state); - - let gas_used = result.gas_used(); - - // append gas used - self.gas_used += gas_used; - self.accumulate_blob_gas_used(tx.tx()); - - // Push transaction changeset and calculate header bloom filter for receipt. - self.receipts.push(self.receipt_builder.build_receipt(ReceiptBuilderCtx { - tx: tx.tx(), - evm: &self.evm, - result, - state: &state, - cumulative_gas_used: self.gas_used, - })); + let blob_gas_used = + if BscHardforks::is_cancun_active_at_timestamp(&self.spec, block_number, timestamp) { + use alloy_consensus::Transaction as _; + tx_signed.blob_gas_used().unwrap_or_default() + } else { + 0 + }; - // Commit the state changes. - self.evm.db_mut().commit(state); + let inner = + self.evm.transact(tx_env).map_err(|err| BlockExecutionError::evm(err, tx_hash))?; - Ok(Some(gas_used)) + Ok(BscTxResult { inner, blob_gas_used, tx_type, tx: tx_signed, is_system: false }) } - fn execute_transaction_with_result_closure( + fn commit_transaction( &mut self, - tx: impl ExecutableTx - + IntoTxEnv<::Tx> - + RecoveredTx, - f: impl for<'b> FnOnce(&'b ExecutionResult<::HaltReason>), + output: BscTxResult, ) -> Result { - let signer = tx.signer(); - let is_system = is_system_transaction(tx.tx(), *signer, self.evm.block().beneficiary()); - if is_system { - self.system_txs.push(tx.tx().clone()); + if output.is_system { return Ok(0); } - self.hertz_patch_manager.patch_before_tx(tx.tx(), self.evm.db_mut())?; - - let block_available_gas = self.evm.block().gas_limit() - self.gas_used; - if tx.tx().gas_limit() > block_available_gas { - return Err(BlockValidationError::TransactionGasLimitMoreThanAvailableBlockGas { - transaction_gas_limit: tx.tx().gas_limit(), - block_available_gas, - } - .into()); - } - let tx_hash = tx.tx().trie_hash(); - let block_number = self.evm.block().number().to::(); - let timestamp = self.evm.block().timestamp().to::(); - let spec = revm_spec_by_timestamp_and_block_number(self.spec.clone(), timestamp, block_number); - let (to, selector, input_len) = { - let to = tx.tx().to(); - let input = tx.tx().input(); - let selector = if input.len() >= 4 { - Some(hex::encode(&input[..4])) - } else { - None - }; - (to, selector, input.len()) - }; - - precompiles::push_precompile_trace_context(precompiles::PrecompileTraceContext::from_parts( - block_number, - spec, - false, - Some(tx_hash), - to, - selector, - input_len, - )); - struct PrecompileTracePopGuard; - impl Drop for PrecompileTracePopGuard { - fn drop(&mut self) { - precompiles::pop_precompile_trace_context(); - } - } - let _precompile_trace_pop_guard = PrecompileTracePopGuard; - - let tx_ref = tx.tx().clone(); - let result_and_state = - self.evm.transact(tx).map_err(|err| BlockExecutionError::evm(err, tx_hash))?; - let ResultAndState { result, state } = result_and_state; - - f(&result); + let ResultAndState { result, state } = output.inner; let mut temp_state = state.clone(); temp_state.remove(&SYSTEM_ADDRESS); - self.system_caller.on_state(StateChangeSource::Transaction(self.receipts.len()), &temp_state); + self.system_caller + .on_state(StateChangeSource::Transaction(self.receipts.len()), &temp_state); let gas_used = result.gas_used(); self.gas_used += gas_used; - self.accumulate_blob_gas_used(&tx_ref); + self.blob_gas_used = self.blob_gas_used.saturating_add(output.blob_gas_used); + self.receipts.push(self.receipt_builder.build_receipt(ReceiptBuilderCtx { - tx: &tx_ref, + tx_type: output.tx_type, evm: &self.evm, result, state: &state, cumulative_gas_used: self.gas_used, })); + self.evm.db_mut().commit(state); - self.hertz_patch_manager.patch_after_tx(&tx_ref, self.evm.db_mut())?; + // Apply hertz patch after tx (validation only, not mining). + if !self.ctx.is_miner { + self.hertz_patch_manager.patch_after_tx(&output.tx, self.evm.db_mut())?; + } Ok(gas_used) } - fn finish( mut self, ) -> Result<(Self::Evm, BlockExecutionResult), BlockExecutionError> { let block_env = self.evm.block().clone(); debug!( - target: "bsc::executor", + target: "bsc::executor", block_id = %block_env.number(), is_miner = self.ctx.is_miner, "Start to finish" @@ -677,17 +596,17 @@ where let parent_timestamp = self.inner_ctx.parent_header.as_ref().unwrap().timestamp; self.try_update_build_in_system_contract( - self.evm.block().number().to::(), - self.evm.block().timestamp().to::(), - parent_timestamp, - false + self.evm.block().number().to::(), + self.evm.block().timestamp().to::(), + parent_timestamp, + false, )?; // Initialize Feynman contracts on transition block if self.spec.is_feynman_transition_at_timestamp( - self.evm.block().number().to::(), - self.evm.block().timestamp().to::(), - parent_timestamp + self.evm.block().number().to::(), + self.evm.block().timestamp().to::(), + parent_timestamp, ) { info!( target: "bsc::executor::feynman", @@ -715,23 +634,25 @@ where // Update receipt height metric let block_number = self.evm.block().number().to::(); self.blockchain_metrics.current_receipt_height.set(block_number as f64); - + // Update block execution metrics self.executor_metrics.executed_blocks_total.increment(1); - + // Update block insert metrics // Calculate total transaction size in bytes (simplified estimation) - // Each receipt contributes approximately: + // Each receipt contributes approximately: // - Base tx overhead: ~100 bytes // - Per log: ~100 bytes (address + topics + data average) - let tx_size_bytes: usize = self.receipts.iter() + let tx_size_bytes: usize = self + .receipts + .iter() .map(|r| { let logs_count = r.logs().len(); 100 + logs_count * 100 // Base + logs estimation }) .sum(); self.blockchain_metrics.block_tx_size_bytes.set(tx_size_bytes as f64); - + // Calculate block receive time difference // This is the difference between current block timestamp and parent block timestamp let current_timestamp = self.evm.block().timestamp().to::(); @@ -740,7 +661,7 @@ where let time_diff = (current_timestamp as i64) - (parent_timestamp as i64); self.blockchain_metrics.block_receive_time_diff_seconds.set(time_diff as f64); } - + // Note: For gas-related metrics, use reth's ExecutorMetrics: // - sync.execution.gas_used_histogram // - sync.execution.gas_per_second (can be converted to MGas/s) @@ -772,5 +693,4 @@ where fn receipts(&self) -> &[Self::Receipt] { &self.receipts } - } diff --git a/src/node/evm/mod.rs b/src/node/evm/mod.rs index 399848aa..c78432eb 100644 --- a/src/node/evm/mod.rs +++ b/src/node/evm/mod.rs @@ -25,7 +25,7 @@ use revm::{ context_interface::JournalTr, Context, ExecuteEvm, InspectEvm, Inspector, SystemCallEvm, }; -use revm_context_interface::journaled_state::account::JournaledAccountTr; +use revm::context_interface::journaled_state::account::JournaledAccountTr; mod assembler; mod builder; diff --git a/src/node/evm/patch/mod.rs b/src/node/evm/patch/mod.rs index dd124557..8eda7b65 100644 --- a/src/node/evm/patch/mod.rs +++ b/src/node/evm/patch/mod.rs @@ -1,8 +1,7 @@ use alloy_primitives::{address, b256, Address, B256, U256}; use reth_evm::block::BlockExecutionError; use reth_primitives_traits::SignedTransaction; -use reth_revm::{db::states::StorageSlot, State}; -use revm::Database; +use revm::{state::{Account, EvmState, EvmStorageSlot}, Database, DatabaseCommit}; use std::{collections::HashMap, str::FromStr, sync::LazyLock}; use tracing::trace; @@ -676,100 +675,94 @@ static CHAPEL_PATCHES_AFTER_TX: LazyLock> = LazyLock pub(crate) fn patch_mainnet_before_tx( transaction: &T, - state: &mut State, + db: &mut DB, ) -> Result<(), BlockExecutionError> where T: SignedTransaction, - DB: Database, - ::Error: Sync + Send + 'static, + DB: Database + DatabaseCommit, + ::Error: std::error::Error + Send + Sync + 'static, { let tx_hash = transaction.tx_hash(); if let Some(patch) = MAINNET_PATCHES_BEFORE_TX.get(tx_hash) { trace!("patch evm state for mainnet before tx {:?}", tx_hash); - - apply_patch(state, patch.address, &patch.storage)?; + apply_patch(db, patch.address, &patch.storage)?; } Ok(()) } pub(crate) fn patch_mainnet_after_tx( transaction: &T, - state: &mut State, + db: &mut DB, ) -> Result<(), BlockExecutionError> where - DB: Database, - ::Error: Sync + Send + 'static, + DB: Database + DatabaseCommit, + ::Error: std::error::Error + Send + Sync + 'static, T: SignedTransaction, { let tx_hash = transaction.tx_hash(); if let Some(patch) = MAINNET_PATCHES_AFTER_TX.get(tx_hash) { trace!("patch evm state for mainnet after tx {:?}", tx_hash); - - apply_patch(state, patch.address, &patch.storage)?; + apply_patch(db, patch.address, &patch.storage)?; } Ok(()) } pub(crate) fn patch_chapel_before_tx( transaction: &T, - state: &mut State, + db: &mut DB, ) -> Result<(), BlockExecutionError> where T: SignedTransaction, - DB: Database, - ::Error: Sync + Send + 'static, + DB: Database + DatabaseCommit, + ::Error: std::error::Error + Send + Sync + 'static, { let tx_hash = transaction.tx_hash(); if let Some(patch) = CHAPEL_PATCHES_BEFORE_TX.get(tx_hash) { trace!("patch evm state for chapel testnet before tx {:?}", tx_hash); - - apply_patch(state, patch.address, &patch.storage)?; + apply_patch(db, patch.address, &patch.storage)?; } Ok(()) } pub(crate) fn patch_chapel_after_tx( transaction: &T, - state: &mut State, + db: &mut DB, ) -> Result<(), BlockExecutionError> where - DB: Database, - ::Error: Sync + Send + 'static, + DB: Database + DatabaseCommit, + ::Error: std::error::Error + Send + Sync + 'static, T: SignedTransaction, { let tx_hash = transaction.tx_hash(); if let Some(patch) = CHAPEL_PATCHES_AFTER_TX.get(tx_hash) { trace!("patch evm state for chapel testnet after tx {:?}", tx_hash); - - apply_patch(state, patch.address, &patch.storage)?; + apply_patch(db, patch.address, &patch.storage)?; } Ok(()) } fn apply_patch( - state: &mut State, + db: &mut DB, address: Address, storage: &HashMap, ) -> Result<(), BlockExecutionError> where - DB: Database, - ::Error: Sync + Send + 'static, + DB: Database + DatabaseCommit, + ::Error: std::error::Error + Send + Sync + 'static, { - let account = state.load_cache_account(address).map_err(BlockExecutionError::other)?; - let account_change = account.change( - account.account_info().unwrap_or_default(), - storage - .iter() - .map(|(key, value)| { - ( - *key, - StorageSlot { previous_or_original_value: U256::ZERO, present_value: *value }, - ) - }) - .collect(), - ); - - state.apply_transition(vec![(address, account_change)]); + let info = db.basic(address).map_err(BlockExecutionError::other)?.unwrap_or_default(); + let mut account = Account::from(info); + account.mark_touch(); + for (&key, &value) in storage.iter() { + let original = if value == U256::ZERO { U256::from(1) } else { U256::ZERO }; + account.storage.insert( + key, + EvmStorageSlot { original_value: original, present_value: value, transaction_id: 0, is_cold: false }, + ); + } + let mut changes: EvmState = Default::default(); + changes.insert(address, account); + db.commit(changes); Ok(()) } @@ -784,31 +777,31 @@ impl HertzPatchManager { Self { is_mainnet } } - pub fn patch_before_tx(&self, transaction: &T, state: &mut State) -> Result<(), BlockExecutionError> + pub fn patch_before_tx(&self, transaction: &T, db: &mut DB) -> Result<(), BlockExecutionError> where T: SignedTransaction, - DB: Database, - ::Error: Sync + Send + 'static, + DB: Database + DatabaseCommit, + ::Error: std::error::Error + Send + Sync + 'static, { if self.is_mainnet { - patch_mainnet_before_tx(transaction, state)?; + patch_mainnet_before_tx(transaction, db)?; } else { - patch_chapel_before_tx(transaction, state)?; + patch_chapel_before_tx(transaction, db)?; } Ok(()) } - + /// Apply patches after transaction execution - pub fn patch_after_tx(&self, transaction: &T, state: &mut State) -> Result<(), BlockExecutionError> + pub fn patch_after_tx(&self, transaction: &T, db: &mut DB) -> Result<(), BlockExecutionError> where T: SignedTransaction, - DB: Database, - ::Error: Sync + Send + 'static, + DB: Database + DatabaseCommit, + ::Error: std::error::Error + Send + Sync + 'static, { if self.is_mainnet { - patch_mainnet_after_tx(transaction, state)?; + patch_mainnet_after_tx(transaction, db)?; } else { - patch_chapel_after_tx(transaction, state)?; + patch_chapel_after_tx(transaction, db)?; } Ok(()) } diff --git a/src/node/evm/post_execution.rs b/src/node/evm/post_execution.rs index 599b61d9..0db81d58 100644 --- a/src/node/evm/post_execution.rs +++ b/src/node/evm/post_execution.rs @@ -12,17 +12,16 @@ use crate::evm::precompiles; use crate::evm::transaction::BscTxEnv; use crate::system_contracts::{SLASH_CONTRACT, SYSTEM_REWARD_CONTRACT, STAKE_HUB_CONTRACT, feynman_fork::{ValidatorElectionInfo, get_top_validators_by_voting_power, ElectedValidators}}; use reth_chainspec::{EthChainSpec, EthereumHardforks, Hardforks}; -use reth_evm::{eth::receipt_builder::{ReceiptBuilder, ReceiptBuilderCtx}, execute::BlockExecutionError, Database, Evm, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv, block::StateChangeSource}; -use reth_primitives::{TransactionSigned, Transaction}; -use reth_revm::State; +use reth_evm::{eth::receipt_builder::{ReceiptBuilder, ReceiptBuilderCtx}, execute::BlockExecutionError, Evm, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv, block::StateChangeSource}; +use reth_ethereum_primitives::{TransactionSigned, Transaction}; use crate::node::evm::ResultAndState; use revm::{ context::{BlockEnv, TxEnv}, context_interface::block::Block, - Database as RevmDatabase, + Database as _, DatabaseCommit, + state::{Account as RevmAccount, EvmState}, }; -use revm_database::DatabaseCommitExt; use alloy_consensus::{Header, TxReceipt, Transaction as AlloyTransaction, SignableTransaction}; use alloy_primitives::{Address, BlockNumber, TxKind, U256, hex}; use std::collections::HashMap; @@ -39,11 +38,10 @@ fn turn_length_matches(turn_length_from_header: Option, expected_turn_length } -impl<'a, DB, EVM, Spec, R: ReceiptBuilder> BscBlockExecutor<'a, EVM, Spec, R> +impl<'a, EVM, Spec, R: ReceiptBuilder> BscBlockExecutor<'a, EVM, Spec, R> where - DB: Database + 'a, EVM: Evm< - DB = &'a mut State, + DB: alloy_evm::block::StateDB + 'a, Tx: FromRecoveredTx + FromRecoveredTx + FromTxWithEncoded, @@ -414,7 +412,7 @@ where } let _precompile_trace_pop_guard = PrecompileTracePopGuard; - let result_and_state = self.evm.transact(tx_env).map_err(BlockExecutionError::other)?; + let result_and_state = self.evm.transact(tx_env.into_tx_env()).map_err(BlockExecutionError::other)?; let ResultAndState { result, state } = result_and_state; let mut temp_state = state.clone(); temp_state.remove(&SYSTEM_ADDRESS); @@ -422,12 +420,16 @@ where let gas_used = result.gas_used(); self.gas_used += gas_used; - + // Record system transaction gas usage self.executor_metrics.system_tx_gas_used_total.increment(gas_used); + let tx_type = { + use alloy_consensus::TxType; + signed_tx.as_ref().map(|tx| tx.tx_type()).unwrap_or(TxType::Legacy) + }; self.receipts.push(self.receipt_builder.build_receipt(ReceiptBuilderCtx { - tx: signed_tx.as_ref().unwrap(), + tx_type, evm: &self.evm, result, state: &state, @@ -446,27 +448,37 @@ where &mut self, validator: Address, ) -> Result<(), BlockExecutionError> { - let system_account = self - .evm - .db_mut() - .load_cache_account(SYSTEM_ADDRESS) - .map_err(BlockExecutionError::other)?; + let system_info = self.evm.db_mut().basic(SYSTEM_ADDRESS) + .map_err(BlockExecutionError::other)? + .unwrap_or_default(); + let mut block_reward = system_info.balance.to::(); - if system_account.account.is_none() || - system_account.account.as_ref().unwrap().info.balance == U256::ZERO - { + if block_reward == 0 { return Ok(()); } - let (mut block_reward, mut transition) = system_account.drain_balance(); - transition.info = None; - self.evm.db_mut().apply_transition(vec![(SYSTEM_ADDRESS, transition)]); - let balance_increment = vec![(validator, block_reward)]; + // Zero out SYSTEM_ADDRESS balance + { + let mut system_account = RevmAccount::from(system_info); + system_account.mark_touch(); + system_account.info.balance = U256::ZERO; + let mut changes: EvmState = Default::default(); + changes.insert(SYSTEM_ADDRESS, system_account); + self.evm.db_mut().commit(changes); + } - self.evm - .db_mut() - .increment_balances(balance_increment) - .map_err(BlockExecutionError::other)?; + // Credit validator with the block reward + { + let validator_info = self.evm.db_mut().basic(validator) + .map_err(BlockExecutionError::other)? + .unwrap_or_default(); + let mut validator_account = RevmAccount::from(validator_info); + validator_account.mark_touch(); + validator_account.info.balance = validator_account.info.balance.saturating_add(U256::from(block_reward)); + let mut changes: EvmState = Default::default(); + changes.insert(validator, validator_account); + self.evm.db_mut().commit(changes); + } let system_reward_balance = self .evm @@ -491,7 +503,7 @@ where // Track system rewards distribution self.rewards_metrics.system_rewards_distributed_total.increment(1); // Note: Truncating to u64 for metrics (large rewards unlikely) - self.rewards_metrics.system_rewards_amount_wei_total.increment(reward_to_system.min(u128::from(u64::MAX)) as u64); + self.rewards_metrics.system_rewards_amount_wei_total.increment(reward_to_system.min(u64::MAX as u128) as u64); } block_reward -= reward_to_system; @@ -505,7 +517,7 @@ where // Track validator rewards distribution self.rewards_metrics.validator_rewards_distributed_total.increment(1); // Note: Truncating to u64 for metrics (large rewards unlikely) - self.rewards_metrics.validator_rewards_amount_wei_total.increment(block_reward.min(u128::from(u64::MAX)) as u64); + self.rewards_metrics.validator_rewards_amount_wei_total.increment(block_reward.min(u64::MAX as u128) as u64); Ok(()) } diff --git a/src/node/evm/pre_execution.rs b/src/node/evm/pre_execution.rs index f3a79b31..a844ae5a 100644 --- a/src/node/evm/pre_execution.rs +++ b/src/node/evm/pre_execution.rs @@ -2,9 +2,8 @@ use super::executor::BscBlockExecutor; use crate::evm::transaction::BscTxEnv; use reth_chainspec::{EthChainSpec, EthereumHardforks, Hardforks}; -use reth_evm::{eth::receipt_builder::ReceiptBuilder, execute::BlockExecutionError, Database, Evm, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv}; -use reth_primitives::TransactionSigned; -use reth_revm::State; +use reth_evm::{eth::receipt_builder::ReceiptBuilder, execute::BlockExecutionError, Evm, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv}; +use reth_ethereum_primitives::TransactionSigned; use revm::{ context::{BlockEnv, TxEnv}, context_interface::block::Block, @@ -20,7 +19,7 @@ use crate::node::evm::util::HEADER_CACHE_READER; use crate::system_contracts::feynman_fork::ValidatorElectionInfo; use std::{collections::HashMap, sync::{LazyLock, Mutex}}; use schnellru::{ByLength, LruMap}; -use reth_primitives::GotExpected; +use reth_primitives_traits::GotExpected; use blst::{ min_pk::{PublicKey, Signature}, BLST_ERROR, @@ -41,11 +40,10 @@ pub static TURN_LENGTH_CACHE: LazyLock> = LazyLock::new(| Mutex::new(LruMap::new(ByLength::new(1024))) }); -impl<'a, DB, EVM, Spec, R: ReceiptBuilder> BscBlockExecutor<'a, EVM, Spec, R> +impl<'a, EVM, Spec, R: ReceiptBuilder> BscBlockExecutor<'a, EVM, Spec, R> where - DB: Database + 'a, EVM: Evm< - DB = &'a mut State, + DB: alloy_evm::block::StateDB + 'a, Tx: FromRecoveredTx + FromRecoveredTx + FromTxWithEncoded, @@ -232,7 +230,7 @@ where is_system_transaction: true, }; - let result_and_state = self.evm.transact(tx_env).map_err(BlockExecutionError::other)?; + let result_and_state = self.evm.transact(tx_env.into_tx_env()).map_err(BlockExecutionError::other)?; if !result_and_state.result.is_success() { tracing::error!("Failed to eth call, to: {:?}, data: {:?}", to, data); return Err(BlockExecutionError::msg("ETH call failed")); diff --git a/src/node/evm/util.rs b/src/node/evm/util.rs index b3c4cb34..e1052db8 100644 --- a/src/node/evm/util.rs +++ b/src/node/evm/util.rs @@ -1,4 +1,4 @@ -use reth_primitives::Transaction; +use reth_ethereum_primitives::Transaction; use alloy_consensus::{Header, BlockHeader}; use alloy_primitives::{B256, BlockHash, BlockNumber}; use schnellru::{ByLength, LruMap}; diff --git a/src/node/miner/bid_simulator.rs b/src/node/miner/bid_simulator.rs index c1f8805f..259b9d7a 100644 --- a/src/node/miner/bid_simulator.rs +++ b/src/node/miner/bid_simulator.rs @@ -15,7 +15,7 @@ use alloy_evm::Evm; use alloy_primitives::U256; use alloy_primitives::{Address, B256}; use parking_lot::RwLock; -use reth::payload::EthPayloadBuilderAttributes; +use reth_node_ethereum::engine::EthPayloadAttributes; use reth::transaction_pool::BestTransactionsAttributes; use reth_chainspec::EthChainSpec; use reth_ethereum_payload_builder::EthereumBuilderConfig; @@ -24,12 +24,12 @@ use reth_evm::execute::BlockBuilderOutcome; use reth_evm::execute::{BlockExecutionError, BlockValidationError}; use reth_evm::{ConfigureEvm, NextBlockEnvAttributes}; use reth_execution_types::BlockExecutionOutput; -use reth_payload_primitives::PayloadBuilderAttributes; use reth_payload_primitives::{BuiltPayloadExecutedBlock, PayloadBuilderError}; +use alloy_eips::eip4895::Withdrawals; use either::Either; -use revm_context_interface::Block as EvmBlock; -use reth_primitives::SealedHeader; -use reth_primitives::TransactionSigned; +use revm::context_interface::Block as EvmBlock; +use reth_primitives_traits::SealedHeader; +use reth_ethereum_primitives::TransactionSigned; use reth_primitives_traits::SignerRecoverable; use reth_provider::StateProviderFactory; use reth_provider::{BlockHashReader, HeaderProvider}; @@ -51,7 +51,7 @@ pub struct Bid { pub builder: Address, pub block_number: u64, pub parent_hash: B256, - pub txs: Vec, + pub txs: Vec, pub blob_sidecars: HashMap, pub un_revertible: Vec, pub gas_used: u64, @@ -79,6 +79,7 @@ pub struct BidSimulator { parlia: Arc>, pool: Pool, validator_address: Address, + task_executor: reth_tasks::TaskExecutor, // Each map has its own lock for fine-grained concurrency control // This avoids writer starvation when one operation needs write access @@ -117,12 +118,14 @@ where snapshot_provider: Arc, validator_commission: u64, greedy_merge: bool, + task_executor: reth_tasks::TaskExecutor, ) -> Self { Self { client, parlia, pool, validator_address, + task_executor, chain_spec, snapshot_provider, best_bid_to_run: Arc::new(RwLock::new(HashMap::new())), @@ -313,7 +316,7 @@ where &self, _bid: &Bid, _validator_commission: u64, - attributes: EthPayloadBuilderAttributes, + attributes: EthPayloadAttributes, mining_ctx: MiningContext, ) -> Result, Box> { let mut runtime = BidRuntime::new( @@ -419,6 +422,7 @@ where parent_header.state_root(), path_db, Some(difflayers), + self.task_executor.clone(), ) .ok() }); @@ -442,12 +446,12 @@ where &parent_header, BscNextBlockEnvAttributes { inner: NextBlockEnvAttributes { - timestamp: attributes.timestamp(), - suggested_fee_recipient: attributes.suggested_fee_recipient(), - prev_randao: attributes.prev_randao(), + timestamp: attributes.timestamp, + suggested_fee_recipient: attributes.suggested_fee_recipient, + prev_randao: attributes.prev_randao, gas_limit, - parent_beacon_block_root: attributes.parent_beacon_block_root(), - withdrawals: Some(attributes.withdrawals().clone()), + parent_beacon_block_root: attributes.parent_beacon_block_root, + withdrawals: attributes.withdrawals.as_ref().map(|w| Withdrawals::new(w.clone())), extra_data: builder_config.extra_data.clone(), }, parent_difflayers: triedb_env_difflayers, @@ -703,7 +707,7 @@ pub struct BidRuntime { pool: Pool, evm_config: EvmConfig, parent_header: SealedHeader, - attributes: EthPayloadBuilderAttributes, + attributes: EthPayloadAttributes, builder_config: EthereumBuilderConfig, chain_spec: Arc, pub bsc_payload: Option, @@ -733,7 +737,7 @@ where bid: Bid, pool: Pool, evm_config: EvmConfig, - attributes: EthPayloadBuilderAttributes, + attributes: EthPayloadAttributes, chain_spec: Arc, mining_ctx: MiningContext, ) -> Self { @@ -807,7 +811,7 @@ where B::Primitives: reth_primitives_traits::NodePrimitives, { let base_fee: u64 = builder.evm().block().basefee(); - let blob_params = self.chain_spec.blob_params_at_timestamp(self.attributes.timestamp()); + let blob_params = self.chain_spec.blob_params_at_timestamp(self.attributes.timestamp); let header = self.mining_ctx.header.as_ref().unwrap(); let blob_eligible = is_blob_eligible_block(&self.chain_spec, header.number, header.timestamp); let mut max_blob_count = @@ -959,7 +963,7 @@ where fn fill_tx_from_pool( &mut self, builder: &mut B, - bid_txs: Vec, + bid_txs: Vec, block_gas_limit: u64, delay_ms: u64, ) -> Result<(), Box> diff --git a/src/node/miner/bsc_miner.rs b/src/node/miner/bsc_miner.rs index 98807827..83f33e51 100644 --- a/src/node/miner/bsc_miner.rs +++ b/src/node/miner/bsc_miner.rs @@ -33,7 +33,8 @@ use reth_chainspec::EthChainSpec; use reth_ethereum_payload_builder::EthereumBuilderConfig; use reth_network::message::NewBlockMessage; use reth_payload_primitives::BuiltPayload; -use reth_primitives::{SealedHeader, TransactionSigned}; +use reth_primitives_traits::SealedHeader; +use reth_ethereum_primitives::TransactionSigned; use reth_primitives_traits::BlockBody; use reth_provider::{ BlockNumReader, CanonStateNotification, CanonStateSubscriptions, HeaderProvider, @@ -53,8 +54,8 @@ const RECENT_MINED_BLOCKS_CACHE_SIZE: usize = 100; #[derive(Clone, Debug)] pub struct MiningContext { - pub header: Option, // tmp header for payload building. - pub parent_header: reth_primitives::SealedHeader, + pub header: Option, // tmp header for payload building. + pub parent_header: reth_primitives_traits::SealedHeader, pub parent_snapshot: Arc, pub is_inturn: bool, pub cached_reads: Option, @@ -403,7 +404,7 @@ where } } - fn get_tip_header_at_startup(&self) -> Option { + fn get_tip_header_at_startup(&self) -> Option { let best_number = self.provider.best_block_number().ok()?; let tip_header = self.provider.sealed_header(best_number).ok()??; Some(tip_header) @@ -564,6 +565,7 @@ pub struct MainWorkWorker { simulator: Arc>, // No outer RwLock, each map has its own lock desired_gas_limit: u64, desired_min_gas_tip: u128, + task_executor: reth_tasks::TaskExecutor, } impl MainWorkWorker @@ -592,6 +594,7 @@ where payload_tx: mpsc::UnboundedSender, desired_gas_limit: u64, desired_min_gas_tip: u128, + task_executor: reth_tasks::TaskExecutor, ) -> Self { Self { pool, @@ -606,6 +609,7 @@ where payload_job_join_set: JoinSet::new(), desired_gas_limit, desired_min_gas_tip, + task_executor, } } @@ -719,10 +723,11 @@ where self.chain_spec.clone(), self.parlia.clone(), mining_ctx.clone(), + self.task_executor.clone(), ); let build_args = BscBuildArguments { cached_reads: mining_ctx.cached_reads.clone().unwrap_or_default(), - config: PayloadConfig::new(Arc::new(mining_ctx.parent_header.clone()), attributes), + config: PayloadConfig::new(Arc::new(mining_ctx.parent_header.clone()), attributes, alloy_rpc_types_engine::PayloadId::new([0u8; 8])), cancel: ManualCancel::default(), trace_id: crate::node::miner::payload::generate_trace_id(), min_gas_tip: crate::shared::get_miner_gas_tip() @@ -1275,6 +1280,7 @@ where snapshot_provider.clone(), mining_config.validator_commission.unwrap_or(100), mining_config.greedy_merge, + task_executor.clone(), )); let main_work_worker = MainWorkWorker::new( validator_address, @@ -1287,6 +1293,7 @@ where payload_tx, desired_gas_limit, desired_min_gas_tip, + task_executor.clone(), ); let result_work_worker = ResultWorkWorker::new( @@ -1321,10 +1328,10 @@ where } fn spawn_workers(self) -> Result<(), Box> { - self.task_executor.spawn_critical("mev_work_worker", self.mev_work_worker.run()); - self.task_executor.spawn_critical("new_work_worker", self.new_work_worker.run()); - self.task_executor.spawn_critical("main_work_worker", self.main_work_worker.run()); - self.task_executor.spawn_critical("result_work_worker", self.result_work_worker.run()); + self.task_executor.spawn_critical_task("mev_work_worker", self.mev_work_worker.run()); + self.task_executor.spawn_critical_task("new_work_worker", self.new_work_worker.run()); + self.task_executor.spawn_critical_task("main_work_worker", self.main_work_worker.run()); + self.task_executor.spawn_critical_task("result_work_worker", self.result_work_worker.run()); info!("Succeed to start mining, address: {}", self.validator_address); Ok(()) } diff --git a/src/node/miner/payload.rs b/src/node/miner/payload.rs index 7dce6cb4..026cd103 100644 --- a/src/node/miner/payload.rs +++ b/src/node/miner/payload.rs @@ -18,7 +18,7 @@ use alloy_consensus::{BlockHeader, Transaction}; use alloy_evm::block::BlockExecutor; use alloy_evm::Evm; use alloy_primitives::U256; -use reth::payload::EthPayloadBuilderAttributes; +use reth_node_ethereum::engine::EthPayloadAttributes; use reth::transaction_pool::error::Eip4844PoolTransactionError; use reth::transaction_pool::error::InvalidPoolTransactionError; use reth::transaction_pool::BestTransactionsAttributes; @@ -31,14 +31,14 @@ use reth_evm::execute::BlockBuilder; use reth_evm::execute::BlockBuilderOutcome; use reth_evm::{ConfigureEvm, NextBlockEnvAttributes}; use reth_execution_types::BlockExecutionOutput; -use reth_payload_primitives::PayloadBuilderAttributes; use reth_payload_primitives::{BuiltPayload, BuiltPayloadExecutedBlock, PayloadBuilderError}; +use alloy_eips::eip4895::Withdrawals; use either::Either; use once_cell::sync::Lazy; -use revm_context_interface::Block as EvmBlock; -use reth_primitives::{HeaderTy, SealedHeader}; -use reth_primitives::InvalidTransactionError; -use reth_primitives::TransactionSigned; +use revm::context_interface::Block as EvmBlock; +use reth_primitives_traits::{HeaderTy, SealedHeader}; +use reth_primitives_traits::transaction::error::InvalidTransactionError; +use reth_ethereum_primitives::TransactionSigned; use reth_primitives_traits::{BlockBody, RecoveredBlock, SignerRecoverable}; use reth_provider::StateProviderFactory; use reth_revm::cached::CachedReads; @@ -306,6 +306,8 @@ pub struct BscPayloadBuilder { parlia: Arc>, // Mining context containing header information for blob fee calculation ctx: MiningContext, + /// Task executor for spawning blocking tasks (e.g., trie prefetcher). + task_executor: reth_tasks::TaskExecutor, } impl BscPayloadBuilder @@ -320,7 +322,8 @@ where >, Pool: TransactionPool> + 'static, { - pub const fn new( + #[allow(clippy::too_many_arguments)] + pub fn new( client: Client, pool: Pool, evm_config: EvmConfig, @@ -328,8 +331,9 @@ where chain_spec: Arc, parlia: Arc>, ctx: MiningContext, + task_executor: reth_tasks::TaskExecutor, ) -> Self { - Self { client, pool, evm_config, builder_config, chain_spec, parlia, ctx } + Self { client, pool, evm_config, builder_config, chain_spec, parlia, ctx, task_executor } } /// Builds a payload with the given arguments. @@ -349,11 +353,11 @@ where /// Returns a `Result` containing the built payload or an error. pub async fn build_payload( &self, - args: BscBuildArguments, + args: BscBuildArguments, ) -> Result> { let build_start = std::time::Instant::now(); let BscBuildArguments { mut cached_reads, config, cancel, trace_id, min_gas_tip, parent_difflayers } = args; - let PayloadConfig { parent_header, attributes } = config; + let PayloadConfig { parent_header, attributes, payload_id: _ } = config; let parent_hash = parent_header.hash_slow(); // Parent difflayers were fetched once at job start; reuse across all retry attempts. @@ -397,7 +401,7 @@ where let triedb_prefetcher = triedb_parent_difflayers.clone().and_then(|difflayers| { let mut triedb = get_global_triedb(); let path_db = triedb.get_mut_path_db_ref().clone(); - MinerTrieDbPrefetcher::new(parent_header.state_root(), path_db, Some(difflayers)).ok() + MinerTrieDbPrefetcher::new(parent_header.state_root(), path_db, Some(difflayers), self.task_executor.clone()).ok() }); // Sinks transport current_validators / turn_length from the builder (which is consumed by @@ -409,12 +413,12 @@ where let next_env_attributes = BscNextBlockEnvAttributes { inner: NextBlockEnvAttributes { - timestamp: attributes.timestamp(), - suggested_fee_recipient: attributes.suggested_fee_recipient(), - prev_randao: attributes.prev_randao(), + timestamp: attributes.timestamp, + suggested_fee_recipient: attributes.suggested_fee_recipient, + prev_randao: attributes.prev_randao, gas_limit: self.builder_config.gas_limit(parent_header.gas_limit), - parent_beacon_block_root: attributes.parent_beacon_block_root(), - withdrawals: Some(attributes.withdrawals().clone()), + parent_beacon_block_root: attributes.parent_beacon_block_root, + withdrawals: attributes.withdrawals.as_ref().map(|w| Withdrawals::new(w.clone())), extra_data: crate::shared::get_miner_extra() .filter(|b| !b.is_empty()) .unwrap_or_else(|| self.builder_config.extra_data.clone()), @@ -477,7 +481,7 @@ where let mut block_blob_count = 0; let mut blob_fee = None; - let blob_params = self.chain_spec.blob_params_at_timestamp(attributes.timestamp()); + let blob_params = self.chain_spec.blob_params_at_timestamp(attributes.timestamp); let header = self.ctx.header.as_ref().ok_or_else(|| { Box::new(std::io::Error::other("Missing header in mining context")) as Box @@ -609,7 +613,7 @@ where if BscHardforks::is_cancun_active_at_timestamp( &self.chain_spec, parent_header.number + 1, - attributes.timestamp(), + attributes.timestamp, ) { let left = max_blob_count - block_blob_count; if left < blob_tx.tx().blob_gas_used().unwrap_or(0) / BLOB_TX_BLOB_GAS_PER_BLOB @@ -876,12 +880,12 @@ where /// Only contains system transactions (if any) pub async fn build_empty_payload( &self, - args: BscBuildArguments, + args: BscBuildArguments, ) -> Result> { let build_start = std::time::Instant::now(); let BscBuildArguments { mut cached_reads, config, cancel: _, trace_id, min_gas_tip: _, parent_difflayers } = args; - let PayloadConfig { parent_header, attributes } = config; + let PayloadConfig { parent_header, attributes, payload_id: _ } = config; let parent_hash = parent_header.hash_slow(); // Parent difflayers were fetched once at job start; reuse across all retry attempts. @@ -923,7 +927,7 @@ where let triedb_prefetcher = triedb_parent_difflayers.clone().and_then(|difflayers| { let mut triedb = get_global_triedb(); let path_db = triedb.get_mut_path_db_ref().clone(); - MinerTrieDbPrefetcher::new(parent_header.state_root(), path_db, Some(difflayers)).ok() + MinerTrieDbPrefetcher::new(parent_header.state_root(), path_db, Some(difflayers), self.task_executor.clone()).ok() }); // Sinks for empty-payload builds (same delayed-seal mechanism as normal builds). @@ -938,12 +942,12 @@ where &parent_header, BscNextBlockEnvAttributes { inner: NextBlockEnvAttributes { - timestamp: attributes.timestamp(), - suggested_fee_recipient: attributes.suggested_fee_recipient(), - prev_randao: attributes.prev_randao(), + timestamp: attributes.timestamp, + suggested_fee_recipient: attributes.suggested_fee_recipient, + prev_randao: attributes.prev_randao, gas_limit: self.builder_config.gas_limit(parent_header.gas_limit), - parent_beacon_block_root: attributes.parent_beacon_block_root(), - withdrawals: Some(attributes.withdrawals().clone()), + parent_beacon_block_root: attributes.parent_beacon_block_root, + withdrawals: attributes.withdrawals.as_ref().map(|w| Withdrawals::new(w.clone())), extra_data: crate::shared::get_miner_extra() .filter(|b| !b.is_empty()) .unwrap_or_else(|| self.builder_config.extra_data.clone()), @@ -1129,7 +1133,7 @@ where /// Potential payloads vector for selecting the best one potential_payloads: Vec, /// Current build arguments - build_args: BscBuildArguments, + build_args: BscBuildArguments, /// Retry count for payload building retries: u32, /// JoinSet for managing build tasks @@ -1176,7 +1180,7 @@ where parlia: Arc>, mining_ctx: MiningContext, builder: BscPayloadBuilder, - build_args: BscBuildArguments, + build_args: BscBuildArguments, simulator: Arc>, // No outer RwLock needed result_tx: mpsc::UnboundedSender, ) -> (Self, BscPayloadJobHandle) { @@ -2287,7 +2291,7 @@ mod tests { }; use alloy_primitives::{Address, B256, U256}; use reth::transaction_pool::error::Eip4844PoolTransactionError; - use reth_primitives::SealedHeader; + use reth_primitives_traits::SealedHeader; use std::sync::Arc; use std::time::Duration; diff --git a/src/node/miner/signer.rs b/src/node/miner/signer.rs index ed326932..03781081 100644 --- a/src/node/miner/signer.rs +++ b/src/node/miner/signer.rs @@ -1,6 +1,6 @@ use once_cell::sync::OnceCell; use std::sync::Arc; -use reth_primitives::{Transaction, TransactionSigned}; +use reth_ethereum_primitives::{Transaction, TransactionSigned}; // reth signing helper avoided to not materialize a B256 from secret use alloy_primitives::B256; use alloy_consensus::{SignableTransaction, Header}; @@ -128,7 +128,7 @@ mod tests { use alloy_consensus::Header; use alloy_primitives::{keccak256, Address, Bytes, TxKind, U256}; use alloy_consensus::TxLegacy; - use reth_primitives::Transaction; + use reth_ethereum_primitives::Transaction; use reth_primitives_traits::SignerRecoverable; use secp256k1::{ecdsa::RecoverableSignature, ecdsa::RecoveryId}; diff --git a/src/node/miner/util.rs b/src/node/miner/util.rs index 13712c87..27209791 100644 --- a/src/node/miner/util.rs +++ b/src/node/miner/util.rs @@ -17,9 +17,9 @@ use crate::node::miner::bsc_miner::MiningContext; use crate::node::miner::signer::{seal_header_with_global_signer, SignerError}; use alloy_consensus::{BlockHeader, Header}; use alloy_primitives::{Address, Bytes, B256}; -use reth::payload::EthPayloadBuilderAttributes; +use reth_node_ethereum::engine::EthPayloadAttributes; use reth_chainspec::EthChainSpec; -use reth_primitives::SealedHeader; +use reth_primitives_traits::SealedHeader; use std::sync::Arc; fn resolve_epoch_validators( @@ -79,7 +79,7 @@ pub fn prepare_new_attributes( parlia: Arc>, parent_header: &SealedHeader, signer: Address, -) -> EthPayloadBuilderAttributes { +) -> EthPayloadAttributes { let mut new_header = prepare_new_header(parlia.clone(), parent_header, signer); // Cache the planned millisecond timestamp so finalize_new_header can reuse it verbatim. ctx.block_timestamp_ms = @@ -97,12 +97,12 @@ pub fn prepare_new_attributes( // Ethereum PoS). The validation path in BscEvmConfig::evm_env sets // `prevrandao = header.difficulty()`, so the building path must match. let difficulty = calculate_difficulty(&ctx.parent_snapshot, signer); - let mut attributes = EthPayloadBuilderAttributes { - parent: new_header.parent_hash, + let mut attributes = EthPayloadAttributes { timestamp: new_header.timestamp, suggested_fee_recipient: new_header.beneficiary, prev_randao: difficulty.into(), - ..Default::default() + withdrawals: None, + parent_beacon_block_root: None, }; if BscHardforks::is_bohr_active_at_timestamp( &parlia.spec, diff --git a/src/node/mod.rs b/src/node/mod.rs index 38743b3e..55fe7f1b 100644 --- a/src/node/mod.rs +++ b/src/node/mod.rs @@ -29,7 +29,7 @@ use reth_engine_local::LocalPayloadAttributesBuilder; use reth_engine_primitives::ConsensusEngineHandle; use reth_payload_primitives::{PayloadAttributesBuilder, PayloadTypes}; -use reth_primitives::BlockBody; +use reth_ethereum_primitives::BlockBody; use std::sync::Arc; use tokio::sync::{oneshot, Mutex}; use tracing::trace; diff --git a/src/node/network/block_import/fork_recover.rs b/src/node/network/block_import/fork_recover.rs index 3711ea77..9f1a2a04 100644 --- a/src/node/network/block_import/fork_recover.rs +++ b/src/node/network/block_import/fork_recover.rs @@ -518,14 +518,14 @@ mod tests { fn sealed_header( &self, _number: u64, - ) -> Result>, ProviderError> { + ) -> Result>, ProviderError> { Ok(None) } fn sealed_headers_while( &self, _range: impl core::ops::RangeBounds, - _predicate: impl FnMut(&reth_primitives::SealedHeader) -> bool, - ) -> Result>, ProviderError> { + _predicate: impl FnMut(&reth_primitives_traits::SealedHeader) -> bool, + ) -> Result>, ProviderError> { Ok(vec![]) } } diff --git a/src/node/network/block_import/mod.rs b/src/node/network/block_import/mod.rs index 38097095..3b32defa 100644 --- a/src/node/network/block_import/mod.rs +++ b/src/node/network/block_import/mod.rs @@ -4,7 +4,7 @@ use reth_engine_primitives::EngineTypes; use reth_network::import::{BlockImport, BlockImportOutcome, NewBlockEvent}; use reth_network_peers::PeerId; use reth_payload_primitives::{BuiltPayload, PayloadTypes}; -use reth_primitives::NodePrimitives; +use reth_primitives_traits::NodePrimitives; use service::{BlockMsg, ImportEvent, Outcome}; use std::{ fmt, diff --git a/src/node/network/block_import/service.rs b/src/node/network/block_import/service.rs index 031b2424..f9197cc3 100644 --- a/src/node/network/block_import/service.rs +++ b/src/node/network/block_import/service.rs @@ -32,8 +32,8 @@ use reth_network::{ use reth_network_api::{PeerId, Peers, ReputationChangeKind}; use reth_node_ethereum::EthEngineTypes; use reth_payload_builder_primitives::Events; -use reth_payload_primitives::{BuiltPayload, EngineApiMessageVersion, PayloadTypes}; -use reth_primitives::NodePrimitives; +use reth_payload_primitives::{BuiltPayload, PayloadTypes}; +use reth_primitives_traits::NodePrimitives; use reth_primitives_traits::{AlloyBlockHeader, Block}; use reth_provider::{BlockHashReader, BlockNumReader, BlockReaderIdExt, HeaderProvider}; use std::{ @@ -658,7 +658,7 @@ where safe_block_hash: B256::ZERO, finalized_block_hash: B256::ZERO, }; - match engine.fork_choice_updated(state, None, EngineApiMessageVersion::V1).await { + match engine.fork_choice_updated(state, None).await { Ok(ret) => tracing::info!( target: "bsc::block_import", %head_hash, @@ -898,7 +898,8 @@ mod tests { use reth_engine_primitives::{BeaconEngineMessage, OnForkChoiceUpdated}; use reth_eth_wire::NewBlock; use reth_node_ethereum::EthEngineTypes; - use reth_primitives::{Block, SealedHeader}; + use reth_ethereum_primitives::Block; + use reth_primitives_traits::SealedHeader; use reth_provider::ProviderError; use schnellru::{ByLength, LruMap}; use std::{ @@ -1317,7 +1318,6 @@ mod tests { BeaconEngineMessage::ForkchoiceUpdated { state: _, payload_attrs: _, - version: _, tx, } => { tx.send(Ok(OnForkChoiceUpdated::valid(PayloadStatus::new( @@ -1360,7 +1360,6 @@ mod tests { BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs: _, - version: _, tx, } => { let _ = fcu_tx.send(state); diff --git a/src/node/network/blocks_by_range.rs b/src/node/network/blocks_by_range.rs index b796b47e..c07db84f 100644 --- a/src/node/network/blocks_by_range.rs +++ b/src/node/network/blocks_by_range.rs @@ -205,7 +205,7 @@ mod tests { use crate::BscBlockBody; use alloy_consensus::Header; use alloy_rlp::RlpDecodable; - use reth_primitives::TransactionSigned; + use reth_ethereum_primitives::TransactionSigned; use bytes::BytesMut; use std::collections::HashMap; diff --git a/src/node/network/mod.rs b/src/node/network/mod.rs index 8f1c4e41..ff1abc5c 100644 --- a/src/node/network/mod.rs +++ b/src/node/network/mod.rs @@ -23,7 +23,7 @@ use reth_network::{NetworkConfig, NetworkHandle, NetworkManager}; use reth_network_api::PeersInfo; use reth_network_peers::NodeRecord; use reth_provider::{BlockNumReader, HeaderProvider, StateProviderFactory}; -use reth_primitives::TransactionSigned; +use reth_ethereum_primitives::TransactionSigned; use std::{sync::Arc, time::Duration}; use tokio::sync::{mpsc, oneshot, Mutex}; use tracing::{debug, info, warn}; @@ -60,7 +60,7 @@ mod rlp { use alloy_primitives::U128; use alloy_rlp::{RlpDecodable, RlpEncodable}; use alloy_rpc_types::Withdrawals; - use reth_primitives::TransactionSigned; + use reth_ethereum_primitives::TransactionSigned; use std::borrow::Cow; #[derive(RlpEncodable, RlpDecodable)] @@ -288,7 +288,7 @@ impl BscNetworkBuilder { } // Spawn the critical ImportService task exactly like the official implementation - ctx.task_executor().spawn_critical("block import", async move { + ctx.task_executor().spawn_critical_task("block import", async move { let handle = engine_handle_rx .lock() .await @@ -421,7 +421,7 @@ fn spawn_evn_sync_watcher( .unwrap_or(30); let provider = ctx.provider().clone(); let chain_spec = ctx.chain_spec().clone(); - ctx.task_executor().spawn_critical("evn-sync-watcher", async move { + ctx.task_executor().spawn_critical_task("evn-sync-watcher", async move { use std::time::{SystemTime, UNIX_EPOCH, Duration}; use alloy_consensus::BlockHeader; @@ -505,7 +505,7 @@ async fn register_nodeids_actions( let mut signed_batch: Vec = Vec::new(); if !to_add.is_empty() { let (_to, data) = crate::system_contracts::encode_add_node_ids_call(to_add.clone()); - let mut tx = reth_primitives::Transaction::Legacy(alloy_consensus::TxLegacy { + let mut tx = reth_ethereum_primitives::Transaction::Legacy(alloy_consensus::TxLegacy { chain_id: Some(chain_id), nonce: next_nonce, gas_price: 1000000000, @@ -520,7 +520,7 @@ async fn register_nodeids_actions( let gas = crate::shared::ipc_estimate_gas(req, None, None).await?; let gas_limit = std::cmp::min(gas, U256::from(u64::MAX / 2)).to::(); debug!(target: "bsc::evn", "Estimated gas for transaction, to_add: {:?}, gas: {}, gas_limit: {}", to_add, gas, gas_limit); - if let reth_primitives::Transaction::Legacy(inner) = &mut tx { + if let reth_ethereum_primitives::Transaction::Legacy(inner) = &mut tx { inner.gas_limit = gas_limit; } let signed = sign_system_transaction(tx)?; @@ -532,7 +532,7 @@ async fn register_nodeids_actions( if !to_remove.is_empty() { let (_to, data) = crate::system_contracts::encode_remove_node_ids_call(to_remove.clone()); - let mut tx = reth_primitives::Transaction::Legacy(alloy_consensus::TxLegacy { + let mut tx = reth_ethereum_primitives::Transaction::Legacy(alloy_consensus::TxLegacy { chain_id: Some(chain_id), nonce: next_nonce, gas_price: 1000000000, @@ -547,7 +547,7 @@ async fn register_nodeids_actions( let gas = crate::shared::ipc_estimate_gas(req, None, None).await?; let gas_limit = std::cmp::min(gas, U256::from(u64::MAX / 2)).to::(); debug!(target: "bsc::evn", "Estimated gas for transaction, to_remove: {:?}, gas: {}, gas_limit: {}", to_remove, gas, gas_limit); - if let reth_primitives::Transaction::Legacy(inner) = &mut tx { + if let reth_ethereum_primitives::Transaction::Legacy(inner) = &mut tx { inner.gas_limit = gas_limit; } let signed = sign_system_transaction(tx)?; diff --git a/src/node/pool/mod.rs b/src/node/pool/mod.rs index 45e733be..62493dc2 100644 --- a/src/node/pool/mod.rs +++ b/src/node/pool/mod.rs @@ -13,6 +13,7 @@ use reth::builder::{ }; use reth_chainspec::{EthChainSpec, EthereumHardforks, ForkCondition, Hardforks}; use reth_ethereum_primitives::TransactionSigned as EthTxSigned; +use reth_evm::ConfigureEvm; use reth_payload_primitives::PayloadTypes; use reth_primitives_traits::SignedTransaction; use reth_primitives_traits::constants::MAX_TX_GAS_LIMIT_OSAKA; @@ -70,6 +71,7 @@ where V: TransactionValidator + Send + Sync + 'static, { type Transaction = ::Transaction; + type Block = ::Block; async fn validate_transaction( &self, @@ -109,54 +111,7 @@ where self.inner.validate_transaction(origin, transaction).await } - async fn validate_transactions( - &self, - transactions: Vec<(TransactionOrigin, Self::Transaction)>, - ) -> Vec> { - let outcomes = self.inner.validate_transactions(transactions).await; - let mut mapped: Vec> = - Vec::with_capacity(outcomes.len()); - for outcome in outcomes { - let new_outcome: TransactionValidationOutcome = match outcome { - TransactionValidationOutcome::Valid { - balance, - state_nonce, - bytecode_hash, - transaction, - propagate, - authorities, - } => { - if blacklist::check_tx_basic_blacklist( - transaction.transaction().sender(), - transaction.transaction().to(), - ) { - tracing::debug!(target: "bsc::txpool", "Blacklisted transaction: {:?}", transaction.hash()); - TransactionValidationOutcome::Invalid( - transaction.into_transaction(), - InvalidPoolTransactionError::other(BlacklistedAddressError()), - ) - } else { - TransactionValidationOutcome::Valid { - balance, - state_nonce, - bytecode_hash, - transaction, - propagate, - authorities, - } - } - } - other => other, - }; - mapped.push(new_outcome); - } - mapped - } - - fn on_new_head_block(&self, new_tip_block: &reth_primitives_traits::SealedBlock) - where - B: reth_primitives_traits::Block, - { + fn on_new_head_block(&self, new_tip_block: &reth_primitives_traits::SealedBlock) { if let Some(osaka_ts) = self.osaka_timestamp { self.osaka_activated.store( new_tip_block.header().timestamp() >= osaka_ts, @@ -172,7 +127,7 @@ where #[non_exhaustive] pub struct BscPoolBuilder; -impl PoolBuilder for BscPoolBuilder +impl PoolBuilder for BscPoolBuilder where Node: FullNodeTypes, Types: NodeTypes< @@ -183,16 +138,22 @@ where ::Payload: PayloadTypes, EthPooledTransaction: reth_transaction_pool::EthPoolTransaction, EthPooledTransaction: PoolTransaction, + Evm: ConfigureEvm< + Primitives: NodePrimitives< + BlockHeader = <::Primitives as NodePrimitives>::BlockHeader, + Block = <::Primitives as NodePrimitives>::Block, + >, + > + Clone + Send + Sync + 'static, { type Pool = Pool< TransactionValidationTaskExecutor< - BscTxValidator>, + BscTxValidator>, >, CoinbaseTipOrdering, DiskFileBlobStore, >; - async fn build_pool(self, ctx: &BuilderContext) -> eyre::Result { + async fn build_pool(self, ctx: &BuilderContext, evm_config: Evm) -> eyre::Result { // Disable the upstream protocol base fee check (MIN_PROTOCOL_BASE_FEE = 7 wei) // because BSC handles min gas price dynamically via miner_setGasPrice RPC // and enforces it in BscTxValidator instead. @@ -223,8 +184,7 @@ where // Build default Ethereum validator executor // BSC rejected EIP-7594 (PeerDAS), so we disable EIP-7594 sidecar support to always // use v0 (legacy) blob sidecars and reject v1 (EIP-7594) sidecars. - let validator = TransactionValidationTaskExecutor::eth_builder(ctx.provider().clone()) - .with_head_timestamp(ctx.head().timestamp) + let validator = TransactionValidationTaskExecutor::eth_builder(ctx.provider().clone(), evm_config) .with_max_tx_input_bytes(ctx.config().txpool.max_tx_input_bytes) .kzg_settings(ctx.kzg_settings()?) .with_local_transactions_config(pool_config.local_transactions_config.clone()) diff --git a/src/node/primitives.rs b/src/node/primitives.rs index 1640bbc2..bb4d8796 100644 --- a/src/node/primitives.rs +++ b/src/node/primitives.rs @@ -1,10 +1,10 @@ #![allow(clippy::owned_cow)] use alloy_consensus::{BlobTransactionSidecar, Header}; +use alloy_eips::eip4895::Withdrawals; use alloy_primitives::B256; use alloy_rlp::{Decodable, Encodable}; -use reth_ethereum_primitives::{BlockBody, Receipt}; -use reth_primitives::{NodePrimitives, TransactionSigned}; -use reth_primitives_traits::{Block, BlockBody as BlockBodyTrait, InMemorySize}; +use reth_ethereum_primitives::{BlockBody, Receipt, TransactionSigned}; +use reth_primitives_traits::{Block, BlockBody as BlockBodyTrait, InMemorySize, NodePrimitives}; use serde::{Deserialize, Serialize}; use std::borrow::Cow; @@ -149,7 +149,7 @@ impl BlockBodyTrait for BscBlockBody { self.inner.into_transactions() } - fn withdrawals(&self) -> Option<&alloy_rpc_types::Withdrawals> { + fn withdrawals(&self) -> Option<&Withdrawals> { self.inner.withdrawals() } @@ -340,58 +340,12 @@ mod rlp { } } -pub mod serde_bincode_compat { - use super::*; - use reth_primitives_traits::serde_bincode_compat::{BincodeReprFor, SerdeBincodeCompat}; - - #[derive(Debug, Serialize, Deserialize)] - pub struct BscBlockBodyBincode<'a> { - inner: BincodeReprFor<'a, BlockBody>, - sidecars: Option>>, - } - - #[derive(Debug, Serialize, Deserialize)] - pub struct BscBlockBincode<'a> { - header: BincodeReprFor<'a, Header>, - body: BincodeReprFor<'a, BscBlockBody>, - } - - impl SerdeBincodeCompat for BscBlockBody { - type BincodeRepr<'a> = BscBlockBodyBincode<'a>; - - fn as_repr(&self) -> Self::BincodeRepr<'_> { - BscBlockBodyBincode { - inner: self.inner.as_repr(), - sidecars: self.sidecars.as_ref().map(Cow::Borrowed), - } - } - - fn from_repr(repr: Self::BincodeRepr<'_>) -> Self { - let BscBlockBodyBincode { inner, sidecars } = repr; - Self { inner: BlockBody::from_repr(inner), sidecars: sidecars.map(|s| s.into_owned()) } - } - } - - impl SerdeBincodeCompat for BscBlock { - type BincodeRepr<'a> = BscBlockBincode<'a>; - - fn as_repr(&self) -> Self::BincodeRepr<'_> { - BscBlockBincode { header: self.header.as_repr(), body: self.body.as_repr() } - } - - fn from_repr(repr: Self::BincodeRepr<'_>) -> Self { - let BscBlockBincode { header, body } = repr; - Self { header: Header::from_repr(header), body: BscBlockBody::from_repr(body) } - } - } -} #[cfg(test)] mod tests { use super::*; use alloy_consensus::Header; use alloy_eips::eip4895::Withdrawals; - use reth_primitives_traits::Block; fn create_test_header() -> Header { Header::default() diff --git a/src/rpc/eth_config.rs b/src/rpc/eth_config.rs index ba2a9736..31c68390 100644 --- a/src/rpc/eth_config.rs +++ b/src/rpc/eth_config.rs @@ -2,7 +2,7 @@ use alloy_eips::eip7910::{EthConfig, EthForkConfig, SystemContract}; use jsonrpsee::core::RpcResult; use reth_chainspec::{ChainSpecProvider, EthereumHardforks, Hardforks}; use reth_evm::ConfigureEvm; -use reth_primitives::NodePrimitives; +use reth_primitives_traits::NodePrimitives; use reth_primitives_traits::header::HeaderMut; use reth_provider::BlockReaderIdExt; use reth_rpc_eth_api::helpers::config::{EthConfigApiServer, EthConfigHandler}; diff --git a/src/rpc/mev.rs b/src/rpc/mev.rs index 8a86bc3c..afd2c01c 100644 --- a/src/rpc/mev.rs +++ b/src/rpc/mev.rs @@ -11,7 +11,7 @@ use alloy_primitives::{Bytes, B256, U256, U64}; use jsonrpsee::core::RpcResult; use jsonrpsee::proc_macros::rpc; use reth_chainspec::EthChainSpec; -use reth_primitives::TransactionSigned; +use reth_ethereum_primitives::TransactionSigned; use reth_primitives_traits::SignerRecoverable; use std::collections::HashSet; use std::sync::{Arc, RwLock}; diff --git a/src/shared.rs b/src/shared.rs index 2d838e54..1519c49e 100644 --- a/src/shared.rs +++ b/src/shared.rs @@ -19,7 +19,7 @@ use reth_network::NetworkHandle; use reth_network_api::PeerId; use reth_provider::providers::BlockchainProvider; use reth_payload_builder_primitives::Events; -use reth_primitives::TransactionSigned; +use reth_ethereum_primitives::TransactionSigned; use reth_provider::{BlockNumReader, HeaderProvider}; use schnellru::{ByLength, LruMap}; use std::collections::VecDeque; @@ -34,7 +34,7 @@ pub type BscEngineApiTx = UnboundedSender< EngineApiRequest< crate::node::engine_api::payload::BscPayloadTypes, crate::BscPrimitives, - BlockchainProvider>>, + BlockchainProvider>, crate::node::evm::config::BscEvmConfig, >, >; diff --git a/src/system_contracts/mod.rs b/src/system_contracts/mod.rs index a5f5623c..bdc4d703 100644 --- a/src/system_contracts/mod.rs +++ b/src/system_contracts/mod.rs @@ -14,7 +14,7 @@ use alloy_primitives::{address, hex, Address, BlockNumber, Bytes, Signature, TxK use lazy_static::lazy_static; use reth_chainspec::{ChainSpec, EthChainSpec}; use reth_ethereum_forks::Hardforks; -use reth_primitives::{Transaction, TransactionSigned}; +use reth_ethereum_primitives::{Transaction, TransactionSigned}; use revm::state::Bytecode; use std::{collections::HashMap, sync::Arc}; use thiserror::Error; diff --git a/testing/bsc-ef-tests/Cargo.toml b/testing/bsc-ef-tests/Cargo.toml index c1eb507d..05893c13 100644 --- a/testing/bsc-ef-tests/Cargo.toml +++ b/testing/bsc-ef-tests/Cargo.toml @@ -13,34 +13,33 @@ asm-keccak = ["alloy-primitives/asm-keccak"] # BSC crate reth_bsc = { path = "../.." } -# reth dependencies aligned with root crate rev to avoid duplicate crate versions -reth-chainspec = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-consensus = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-ethereum-forks = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-db = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928", features = ["mdbx", "test-utils", "disable-lock"] } -reth-db-api = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-db-common = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-ethereum-consensus = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-ethereum-primitives = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-evm = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-evm-ethereum = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-primitives = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-primitives-traits = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-provider = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928", features = ["test-utils"] } -reth-revm = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928", features = ["std"] } -reth-tracing = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-trie = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } -reth-trie-db = { git = "https://github.com/bnb-chain/reth.git", rev = "ed59a0985b62f4964b389b1666b73b03b39b6928" } +# reth dependencies aligned with root crate branch to avoid duplicate crate versions +reth-chainspec = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-consensus = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-ethereum-forks = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-db = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2", features = ["mdbx", "test-utils", "disable-lock"] } +reth-db-api = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-db-common = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-ethereum-consensus = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-ethereum-primitives = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-evm = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-evm-ethereum = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-primitives-traits = { git = "https://github.com/bnb-chain/reth-core.git", branch = "v0.1.1-v2", default-features = false } +reth-provider = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2", features = ["test-utils"] } +reth-revm = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2", features = ["std"] } +reth-tracing = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-trie = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } +reth-trie-db = { git = "https://github.com/bnb-chain/reth.git", branch = "develop-v2" } # revm -revm = { version = "34.0.0", features = ["secp256k1", "blst", "c-kzg", "memory_limit"] } +revm = { version = "36.0.0", features = ["secp256k1", "blst", "c-kzg", "memory_limit"] } # alloy -alloy-consensus = "1.1.3" -alloy-eips = "1.1.3" -alloy-genesis = "1.1.3" -alloy-primitives = "1.4.1" -alloy-rlp = "0.3.12" +alloy-consensus = "1.8.2" +alloy-eips = "1.8.2" +alloy-genesis = "1.8.2" +alloy-primitives = "1.5.6" +alloy-rlp = "0.3.13" # misc rayon = "1" diff --git a/testing/bsc-ef-tests/src/cases/blockchain_test.rs b/testing/bsc-ef-tests/src/cases/blockchain_test.rs index f907ba87..e932e733 100644 --- a/testing/bsc-ef-tests/src/cases/blockchain_test.rs +++ b/testing/bsc-ef-tests/src/cases/blockchain_test.rs @@ -29,7 +29,7 @@ use reth_provider::{ }; use reth_revm::{database::StateProviderDatabase, State}; use reth_trie::{HashedPostState, KeccakKeyHasher, StateRoot}; -use reth_trie_db::DatabaseStateRoot; +use reth_trie_db::{DatabaseHashedCursorFactory, DatabaseStateRoot, DatabaseTrieCursorFactory, LegacyKeyAdapter}; use std::{ collections::BTreeMap, fs, @@ -236,7 +236,10 @@ fn run_case( // Compute and check the post state root let hashed_state = HashedPostState::from_bundle_state::(output.state.state()); - let (computed_state_root, _) = StateRoot::overlay_root_with_updates( + let (computed_state_root, _) = , + DatabaseHashedCursorFactory<_>, + > as DatabaseStateRoot<_>>::overlay_root_with_updates( provider.tx_ref(), &hashed_state.clone_into_sorted(), )