diff --git a/Cargo.lock b/Cargo.lock index ed64eba3..411418be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -105,14 +105,14 @@ dependencies = [ "alloy-rlp", "num_enum", "serde", - "strum 0.27.1", + "strum", ] [[package]] name = "alloy-consensus" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6093bc69509849435a2d68237a2e9fea79d27390c8e62f1e4012c460aabad8" +checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" dependencies = [ "alloy-eips", "alloy-primitives", @@ -120,7 +120,6 @@ dependencies = [ "alloy-serde", "alloy-trie", "alloy-tx-macros", - "arbitrary", "auto_impl", "c-kzg", "derive_more", @@ -136,24 +135,23 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d1cfed4fefd13b5620cb81cdb6ba397866ff0de514c1b24806e6e79cdff5570" +checksum = "81443e3b8dccfeac7cd511aced15928c97ff253f4177acbb97de97178e543f6c" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", - "arbitrary", "serde", ] [[package]] name = "alloy-dyn-abi" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b95b3deca680efc7e9cba781f1a1db352fa1ea50e6384a514944dcf4419e652" +checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -174,9 +172,7 @@ checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ "alloy-primitives", "alloy-rlp", - "arbitrary", "crc", - "rand 0.8.5", "serde", "thiserror 2.0.12", ] @@ -189,8 +185,6 @@ checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" dependencies = [ "alloy-primitives", "alloy-rlp", - "arbitrary", - "rand 0.8.5", "serde", ] @@ -202,9 +196,7 @@ checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" dependencies = [ "alloy-primitives", "alloy-rlp", - "arbitrary", "k256", - "rand 0.8.5", "serde", "serde_with", "thiserror 2.0.12", @@ -212,9 +204,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5937e2d544e9b71000942d875cbc57965b32859a666ea543cc57aae5a06d602d" +checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -222,7 +214,6 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde", - "arbitrary", "auto_impl", "c-kzg", "derive_more", @@ -230,34 +221,16 @@ dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_with", "sha2 0.10.9", -] - -[[package]] -name = "alloy-evm" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff5aae4c6dc600734b206b175f3200085ee82dcdaa388760358830a984ca9869" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-sol-types", - "auto_impl", - "derive_more", - "op-alloy-consensus 0.18.13", - "op-revm 7.0.1", - "revm 26.0.1", "thiserror 2.0.12", ] [[package]] name = "alloy-evm" -version = "0.15.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28de0dd1bbb0634ef7c3715e8e60176b77b82f8b6b15b2e35fe64cf6640f6550" +checksum = "0dbe7c66c859b658d879b22e8aaa19546dab726b0639f4649a424ada3d99349e" dependencies = [ "alloy-consensus", "alloy-eips", @@ -267,17 +240,17 @@ dependencies = [ "alloy-sol-types", "auto_impl", "derive_more", - "op-alloy-consensus 0.18.13", - "op-revm 8.1.0", - "revm 27.1.0", + "op-alloy-consensus 0.19.1", + "op-revm", + "revm", "thiserror 2.0.12", ] [[package]] name = "alloy-genesis" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51b4c13e02a8104170a4de02ccf006d7c233e6c10ab290ee16e7041e6ac221d" +checksum = "33ba1cbc25a07e0142e8875fcbe80e1fdb02be8160ae186b90f4b9a69a72ed2b" dependencies = [ "alloy-eips", "alloy-primitives", @@ -289,9 +262,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.2.11" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce138b29a2f8e7ed97c064af8359dfa6559c12cba5e821ae4eb93081a56557e" +checksum = "31c8616642b176f21e98e2740e27d28917b5d30d8612450cafff21772d4926bc" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -303,9 +276,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15516116086325c157c18261d768a20677f0f699348000ed391d4ad0dcb82530" +checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -315,9 +288,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b590caa6b6d8bc10e6e7a7696c59b1e550e89f27f50d1ee13071150d3a3e3f66" +checksum = "f8882ec8e4542cfd02aadc6dccbe90caa73038f60016d936734eb6ced53d2167" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -330,9 +303,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36fe5af1fca03277daa56ad4ce5f6d623d3f4c2273ea30b9ee8674d18cefc1fa" +checksum = "51d6d87d588bda509881a7a66ae77c86514bd1193ac30fbff0e0f24db95eb5a5" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -356,9 +329,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793df1e3457573877fbde8872e4906638fde565ee2d3bd16d04aad17d43dbf0e" +checksum = "5b14fa9ba5774e0b30ae6a04176d998211d516c8af69c9c530af7c6c42a8c508" dependencies = [ "alloy-consensus", "alloy-eips", @@ -369,43 +342,26 @@ dependencies = [ [[package]] name = "alloy-op-evm" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588a87b77b30452991151667522d2f2f724cec9c2ec6602e4187bc97f66d8095" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.12.3", - "alloy-op-hardforks", - "alloy-primitives", - "auto_impl", - "op-alloy-consensus 0.18.13", - "op-revm 7.0.1", - "revm 26.0.1", -] - -[[package]] -name = "alloy-op-evm" -version = "0.15.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0afe768962308a08b42fddef8a4296324f140b5a8dd0d4360038229885ce9434" +checksum = "ed9b726869a13d5d958f2f78fbef7ce522689c4d40d613c16239f5e286fbeb1a" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm", "alloy-op-hardforks", "alloy-primitives", "auto_impl", - "op-alloy-consensus 0.18.13", - "op-revm 8.1.0", - "revm 27.1.0", + "op-alloy-consensus 0.19.1", + "op-revm", + "revm", ] [[package]] name = "alloy-op-hardforks" -version = "0.2.11" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9a510692bef4871797062ca09ec7873c45dc68c7f3f72291165320f53606a3" +checksum = "07953246c78130f119855393ba0235d22539c60b6a627f737cdf0ae692f042f6" dependencies = [ "alloy-chains", "alloy-hardforks", @@ -414,16 +370,14 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cfebde8c581a5d37b678d0a48a32decb51efd7a63a08ce2517ddec26db705c8" +checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" dependencies = [ "alloy-rlp", - "arbitrary", "bytes", "cfg-if", "const-hex", - "derive_arbitrary", "derive_more", "foldhash", "getrandom 0.3.3", @@ -434,7 +388,6 @@ dependencies = [ "keccak-asm", "paste", "proptest", - "proptest-derive", "rand 0.9.1", "ruint", "rustc-hash 2.1.1", @@ -445,9 +398,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59879a772ebdcde9dc4eb38b2535d32e8503d3175687cc09e763a625c5fcf32" +checksum = "475a5141313c3665b75d818be97d5fa3eb5e0abb7e832e9767edd94746db28e3" dependencies = [ "alloy-chains", "alloy-consensus", @@ -472,7 +425,6 @@ dependencies = [ "either", "futures", "futures-utils-wasm", - "http", "lru 0.13.0", "parking_lot", "pin-project", @@ -488,13 +440,14 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdfb2899b54b7cb0063fa8e61938320f9be6b81b681be69c203abf130a87baa" +checksum = "f97c18795ce1ce8151c5539ce1e4200940389674173f677c7455f79bfb00e5df" dependencies = [ "alloy-json-rpc", "alloy-primitives", "alloy-transport", + "auto_impl", "bimap", "futures", "parking_lot", @@ -531,9 +484,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f060e3bb9f319eb01867a2d6d1ff9e0114e8877f5ca8f5db447724136106cae" +checksum = "25289674cd8c58fcca2568b5350423cb0dd7bca8c596c5e2869bfe4c5c57ed14" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -557,9 +510,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d47b637369245d2dafef84b223b1ff5ea59e6cd3a98d2d3516e32788a0b216df" +checksum = "39676beaa50db545cf15447fc94ec5513b64e85a48357a0625b9a04aef08a910" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -570,9 +523,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.16" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0182187bcbe47f3a737f5eced007b7788d4ed37aba19d43fd3df123169b3b05e" +checksum = "65acc9264342069decb617aa344847f55180ba3aeab1c8d1db062d0619881029" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -582,9 +535,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.16" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754d5062b594ed300a3bb0df615acb7bacdbd7bd1cd1a6e5b59fb936c5025a13" +checksum = "a9c8cad42fa936000be72ab80fcd97386a6a226c35c2989212756da9e76c1521" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -594,9 +547,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e26b4dd90b33bd158975307fb9cf5fafa737a0e33cbb772a8648bf8be13c104" +checksum = "01bac57c987c93773787619e20f89167db74d460a2d1d40f591d94fb7c22c379" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -605,9 +558,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.16" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32c1ddf8fb2e41fa49316185d7826ed034f55819e0017e65dc6715f911b8a1ee" +checksum = "8d3c0e6cc87a8be5582d08f929f96db25843f44cb636a0985a4a6bf02609c02f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -615,6 +568,7 @@ dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_json", "serde_with", "thiserror 2.0.12", "tree_hash", @@ -623,19 +577,21 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71841e6fc8e221892035a74f7d5b279c0a2bf27a7e1c93e7476c64ce9056624e" +checksum = "c2fe118e6c152d54cb4549b9835fb87d38b12754bb121375183ee3ec84bd0849" dependencies = [ "alloy-primitives", + "derive_more", "serde", + "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f9cbf5f781b9ee39cfdddea078fdef6015424f4c8282ef0e5416d15ca352c4" +checksum = "72a41624eb84bc743e414198bf10eb48b611a5554d6a9fd6205f7384d57dfd7f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -648,14 +604,14 @@ dependencies = [ "jsonwebtoken", "rand 0.8.5", "serde", - "strum 0.27.1", + "strum", ] [[package]] name = "alloy-rpc-types-eth" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46586ec3c278639fc0e129f0eb73dbfa3d57f683c44b2ff5e066fab7ba63fa1f" +checksum = "1cd1e1b4dcdf13eaa96343e5c0dafc2d2e8ce5d20b90347169d46a1df0dec210" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -665,7 +621,6 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", - "arbitrary", "itertools 0.14.0", "serde", "serde_json", @@ -675,9 +630,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.0.16" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c1b50012f55de4a6d58ee9512944089fa61a835e6fe3669844075bb6e0312e" +checksum = "01620baa48d3f49fc908c781eb91ded71f3226e719bb6404697c2851cac4e098" dependencies = [ "alloy-consensus", "alloy-eips", @@ -690,9 +645,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.16" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf52c884c7114c5d1f1f2735634ba0f6579911427281fb02cbd5cb8147723ca" +checksum = "1bc33d9d0e0b3cfe9c2e82a1a427c9ed516fcfebe764f0adf7ceb8107f702dd1" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -704,9 +659,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.16" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4fd0df1af2ed62d02e7acbc408a162a06f30cb91550c2ec34b11c760cdc0ba" +checksum = "d4fa9e9b3e613425d2a2ee1a322bdad5f1cedf835406fd4b59538822500b44bc" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -716,21 +671,20 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1722bc30feef87cc0fa824e43c9013f9639cc6c037be7be28a31361c788be2" +checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" dependencies = [ "alloy-primitives", - "arbitrary", "serde", "serde_json", ] [[package]] name = "alloy-signer" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3674beb29e68fbbc7be302b611cf35fe07b736e308012a280861df5a2361395" +checksum = "10ab1b8d4649bf7d0db8ab04e31658a6cc20364d920795484d886c35bed3bab4" dependencies = [ "alloy-primitives", "async-trait", @@ -743,17 +697,15 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.16" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c288c5b38be486bb84986701608f5d815183de990e884bb747f004622783e125" +checksum = "7bdeec36c8d9823102b571b3eab8b323e053dc19c12da14a9687bd474129bf2a" dependencies = [ "alloy-consensus", "alloy-network", "alloy-primitives", "alloy-signer", "async-trait", - "coins-bip32", - "coins-bip39", "k256", "rand 0.8.5", "thiserror 2.0.12", @@ -761,9 +713,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a14f21d053aea4c6630687c2f4ad614bed4c81e14737a9b904798b24f30ea849" +checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -775,9 +727,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d99282e7c9ef14eb62727981a985a01869e586d1dec729d3bb33679094c100" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -793,9 +745,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda029f955b78e493360ee1d7bd11e1ab9f2a220a5715449babc79d6d0a01105" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" dependencies = [ "const-hex", "dunce", @@ -809,9 +761,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10db1bd7baa35bc8d4a1b07efbf734e73e5ba09f2580fb8cee3483a36087ceb2" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" dependencies = [ "serde", "winnow", @@ -819,9 +771,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58377025a47d8b8426b3e4846a251f2c1991033b27f517aade368146f6ab1dfe" +checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -831,12 +783,13 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89bec2f59a41c0e259b6fe92f78dfc49862c17d10f938db9c33150d5a7f42b6" +checksum = "dce5129146a76ca6139a19832c75ad408857a56bcd18cd2c684183b8eacd78d8" dependencies = [ "alloy-json-rpc", "alloy-primitives", + "auto_impl", "base64 0.22.1", "derive_more", "futures", @@ -854,9 +807,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3615ec64d775fec840f4e9d5c8e1f739eb1854d8d28db093fb3d4805e0cb53" +checksum = "e2379d998f46d422ec8ef2b61603bc28cda931e5e267aea1ebe71f62da61d101" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -869,9 +822,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374db72669d8ee09063b9aa1a316e812d5cdfce7fc9a99a3eceaa0e5512300d2" +checksum = "041aa5db2e907692a9a93a0a908057665c03e59364e1fbbeed613511a0159289" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -889,9 +842,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5dbaa6851875d59c8803088f4b6ec72eaeddf7667547ae8995c1a19fbca6303" +checksum = "c6d44395e6793566e9c89bd82297cc4b0566655c1e78a1d69362640814784cc6" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -907,19 +860,15 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bada1fc392a33665de0dc50d401a3701b62583c655e3522a323490a5da016962" +checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ "alloy-primitives", "alloy-rlp", - "arbitrary", "arrayvec", - "derive_arbitrary", "derive_more", "nybbles", - "proptest", - "proptest-derive", "serde", "smallvec", "tracing", @@ -927,12 +876,12 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.23" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f916ff6d52f219c44a9684aea764ce2c7e1d53bd4a724c9b127863aeacc30bb" +checksum = "3b5becb9c269a7d05a2f28d549f86df5a5dbc923e2667eff84fdecac8cda534c" dependencies = [ "alloy-primitives", - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.104", @@ -1023,15 +972,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "arc-swap" version = "1.7.1" @@ -1613,16 +1553,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "backon" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302eaff5357a264a2c42f127ecb8bac761cf99749fc3dc95677e2743991f99e7" -dependencies = [ - "fastrand", - "tokio", -] - [[package]] name = "backtrace" version = "0.3.75" @@ -1668,12 +1598,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - [[package]] name = "bimap" version = "0.6.3" @@ -1789,19 +1713,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -1927,7 +1838,6 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "sha2 0.10.9", "tinyvec", ] @@ -1938,7 +1848,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", - "regex-automata 0.4.9", + "regex-automata", "serde", ] @@ -1962,9 +1872,9 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.23.1" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" [[package]] name = "byteorder" @@ -1987,7 +1897,6 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7318cfa722931cb5fe0838b98d3ce5621e75f6a6408abc21721d80de9223f2e4" dependencies = [ - "arbitrary", "blst", "cc", "glob", @@ -2042,21 +1951,6 @@ dependencies = [ "thiserror 2.0.12", ] -[[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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5" -dependencies = [ - "rustversion", -] - [[package]] name = "cc" version = "1.2.15" @@ -2180,57 +2074,6 @@ dependencies = [ "cc", ] -[[package]] -name = "coins-bip32" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2073678591747aed4000dd468b97b14d7007f7936851d3f2f01846899f5ebf08" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2 0.10.9", - "thiserror 1.0.69", -] - -[[package]] -name = "coins-bip39" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b169b26623ff17e9db37a539fe4f15342080df39f129ef7631df7683d6d9d4" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2", - "rand 0.8.5", - "sha2 0.10.9", - "thiserror 1.0.69", -] - -[[package]] -name = "coins-core" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b962ad8545e43a28e14e87377812ba9ae748dd4fd963f4c10e9fcc6d13475b" -dependencies = [ - "base64 0.21.7", - "bech32", - "bs58", - "const-hex", - "digest 0.10.7", - "generic-array", - "ripemd", - "serde", - "sha2 0.10.9", - "sha3", - "thiserror 1.0.69", -] - [[package]] name = "colorchoice" version = "1.0.4" @@ -2247,31 +2090,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "comfy-table" -version = "7.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" -dependencies = [ - "crossterm", - "unicode-segmentation", - "unicode-width 0.2.0", -] - -[[package]] -name = "compact_str" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" -dependencies = [ - "castaway", - "cfg-if", - "itoa", - "rustversion", - "ryu", - "static_assertions", -] - [[package]] name = "concat-kdf" version = "0.1.0" @@ -2329,12 +2147,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - [[package]] name = "convert_case" version = "0.7.1" @@ -2452,31 +2264,6 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" -[[package]] -name = "crossterm" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" -dependencies = [ - "bitflags 2.9.1", - "crossterm_winapi", - "mio", - "parking_lot", - "rustix 0.38.44", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] - [[package]] name = "crunchy" version = "0.2.4" @@ -2564,8 +2351,18 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] @@ -2582,13 +2379,39 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim", + "syn 2.0.104", +] + [[package]] name = "darling_macro" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", "quote", "syn 2.0.104", ] @@ -2705,17 +2528,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "derive_arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "derive_builder" version = "0.20.2" @@ -2731,7 +2543,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.104", @@ -2829,7 +2641,7 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.0", + "redox_users 0.5.2", "windows-sys 0.60.2", ] @@ -2971,9 +2783,9 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", @@ -3173,7 +2985,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd55d08012b4e0dfcc92b8d6081234df65f2986ad34cc76eeed69c5e2ce7506" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.104", @@ -3288,59 +3100,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "flashblocks-rpc" -version = "0.1.0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-json-rpc", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-client", - "alloy-rpc-types", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "arc-swap", - "brotli", - "clap", - "eyre", - "futures-util", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "metrics", - "metrics-derive", - "op-alloy-consensus 0.18.13", - "op-alloy-network", - "op-alloy-rpc-types", - "reth-db", - "reth-e2e-test-utils", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-optimism-chainspec 1.5.0", - "reth-optimism-cli", - "reth-optimism-evm 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-node", - "reth-optimism-primitives 1.5.0", - "reth-optimism-rpc", - "reth-primitives", - "reth-primitives-traits 1.5.0", - "reth-provider", - "reth-rpc-eth-api", - "reth-rpc-server-types", - "reth-tasks 1.5.0", - "reth-tracing", - "rollup-boost", - "serde", - "serde_json", - "tokio", - "tokio-tungstenite", - "tracing", - "url", -] - [[package]] name = "flashblocks-websocket-proxy" version = "0.1.0" @@ -3367,7 +3126,7 @@ dependencies = [ "tokio-tungstenite", "tokio-util", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "uuid", ] @@ -3726,12 +3485,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "hash-db" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" - [[package]] name = "hashbrown" version = "0.12.3" @@ -3952,12 +3705,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "human_bytes" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e" - [[package]] name = "humantime" version = "2.2.0" @@ -4026,7 +3773,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.1", + "webpki-roots 1.0.2", ] [[package]] @@ -4308,18 +4055,11 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ - "arbitrary", "equivalent", "hashbrown 0.15.4", "serde", ] -[[package]] -name = "indoc" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" - [[package]] name = "inotify" version = "0.11.0" @@ -4350,19 +4090,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instability" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d" -dependencies = [ - "darling", - "indoc", - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "instant" version = "0.1.13" @@ -4507,48 +4234,34 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fba77a59c4c644fd48732367624d1bcf6f409f9c9a286fbc71d2f1fc0b2ea16" +checksum = "3f3f48dc3e6b8bd21e15436c1ddd0bc22a6a54e8ec46fedd6adf3425f396ec6a" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-http-client 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-proc-macros 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-http-client 0.26.0", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types 0.26.0", "jsonrpsee-wasm-client", "jsonrpsee-ws-client", "tokio", "tracing", ] -[[package]] -name = "jsonrpsee" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-http-client 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-proc-macros 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-server 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "tokio", - "tracing", -] - [[package]] name = "jsonrpsee-client-transport" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a320a3f1464e4094f780c4d48413acd786ce5627aaaecfac9e9c7431d13ae1" +checksum = "cf36eb27f8e13fa93dcb50ccb44c417e25b818cfa1a481b5470cd07b19c60b98" dependencies = [ "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", "http", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", "pin-project", "rustls", "rustls-pki-types", @@ -4570,38 +4283,34 @@ checksum = "693c93cbb7db25f4108ed121304b671a36002c2db67dff2ee4391a688c738547" dependencies = [ "async-trait", "bytes", - "futures-timer", "futures-util", "http", "http-body", "http-body-util", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot", + "jsonrpsee-types 0.25.1", "pin-project", - "rand 0.9.1", - "rustc-hash 2.1.1", "serde", "serde_json", "thiserror 2.0.12", "tokio", - "tokio-stream", "tower 0.5.2", "tracing", - "wasm-bindgen-futures", ] [[package]] name = "jsonrpsee-core" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "316c96719901f05d1137f19ba598b5fe9c9bc39f4335f67f6be8613921946480" dependencies = [ "async-trait", "bytes", + "futures-timer", "futures-util", "http", "http-body", "http-body-util", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-types 0.26.0", "parking_lot", "pin-project", "rand 0.9.1", @@ -4610,8 +4319,10 @@ dependencies = [ "serde_json", "thiserror 2.0.12", "tokio", + "tokio-stream", "tower 0.5.2", "tracing", + "wasm-bindgen-futures", ] [[package]] @@ -4625,8 +4336,8 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.25.1", + "jsonrpsee-types 0.25.1", "rustls", "rustls-platform-verifier", "serde", @@ -4639,16 +4350,17 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790bedefcec85321e007ff3af84b4e417540d5c87b3c9779b9e247d1bcc3dab8" dependencies = [ "base64 0.22.1", "http-body", "hyper", "hyper-rustls", "hyper-util", - "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "rustls", "rustls-platform-verifier", "serde", @@ -4661,21 +4373,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fa4f5daed39f982a1bb9d15449a28347490ad42b212f8eaa2a2a344a0dce9e9" -dependencies = [ - "heck", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +checksum = "2da3f8ab5ce1bb124b6d082e62dffe997578ceaf0aeb9f3174a214589dc00f07" dependencies = [ "heck", "proc-macro-crate", @@ -4686,35 +4386,9 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38b0bcf407ac68d241f90e2d46041e6a06988f97fe1721fb80b91c42584fae6" -dependencies = [ - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto", - "thiserror 2.0.12", - "tokio", - "tokio-stream", - "tokio-util", - "tower 0.5.2", - "tracing", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +checksum = "4c51b7c290bb68ce3af2d029648148403863b982f138484a73f02a9dd52dbd7f" dependencies = [ "futures-util", "http", @@ -4722,8 +4396,8 @@ dependencies = [ "http-body-util", "hyper", "hyper-util", - "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "pin-project", "route-recognizer", "serde", @@ -4751,8 +4425,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc88ff4688e43cc3fa9883a8a95c6fa27aa2e76c96e610b737b6554d650d7fd5" dependencies = [ "http", "serde", @@ -4762,26 +4437,26 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b67695cbcf4653f39f8f8738925547e0e23fd9fe315bccf951097b9f6a38781" +checksum = "7902885de4779f711a95d82c8da2d7e5f9f3a7c7cfa44d51c067fd1c29d72a3c" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "tower 0.5.2", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da2694c9ff271a9d3ebfe520f6b36820e85133a51be77a3cb549fd615095261" +checksum = "9b6fceceeb05301cc4c065ab3bd2fa990d41ff4eb44e4ca1b30fa99c057c3e79" dependencies = [ "http", "jsonrpsee-client-transport", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "tower 0.5.2", "url", ] @@ -4892,7 +4567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.2", + "windows-targets 0.48.5", ] [[package]] @@ -5061,7 +4736,7 @@ dependencies = [ "generator", "scoped-tls", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -5088,25 +4763,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" -[[package]] -name = "lz4" -version = "1.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" -dependencies = [ - "lz4-sys", -] - -[[package]] -name = "lz4-sys" -version = "1.11.1+lz4-1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "lz4_flex" version = "0.11.5" @@ -5135,11 +4791,11 @@ dependencies = [ [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -5162,9 +4818,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -5476,12 +5132,11 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "notify" -version = "8.0.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ "bitflags 2.9.1", - "filetime", "fsevent-sys", "inotify", "kqueue", @@ -5490,7 +5145,7 @@ dependencies = [ "mio", "notify-types", "walkdir", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -5510,12 +5165,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -5641,12 +5295,12 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.0" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d51b0175c49668a033fe7cc69080110d9833b291566cdf332905f3ad9c68a0" +checksum = "f0418987d1aaed324d95b4beffc93635e19be965ed5d63ec07a35980fe3b71a4" dependencies = [ "alloy-rlp", - "arbitrary", + "cfg-if", "proptest", "ruint", "serde", @@ -5694,9 +5348,9 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.18.13" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c719b26da6d9cac18c3a35634d6ab27a74a304ed9b403b43749c22e57a389f" +checksum = "d9ade20c592484ba1ea538006e0454284174447a3adf9bb59fa99ed512f95493" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5705,7 +5359,6 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", - "arbitrary", "derive_more", "serde", "serde_with", @@ -5720,9 +5373,9 @@ checksum = "a79f352fc3893dcd670172e615afef993a41798a1d3fc0db88a3e60ef2e70ecc" [[package]] name = "op-alloy-network" -version = "0.18.9" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "839a7a1826dc1d38fdf9c6d30d1f4ed8182c63816c97054e5815206f1ebf08c7" +checksum = "84741a798124ceb43979d70db654039937a00979b1341fa8bfdc48473bbd52bf" dependencies = [ "alloy-consensus", "alloy-network", @@ -5730,25 +5383,25 @@ dependencies = [ "alloy-provider", "alloy-rpc-types-eth", "alloy-signer", - "op-alloy-consensus 0.18.13", + "op-alloy-consensus 0.19.1", "op-alloy-rpc-types", ] [[package]] name = "op-alloy-rpc-jsonrpsee" -version = "0.18.9" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9d3de5348e2b34366413412f1f1534dc6b10d2cf6e8e1d97c451749c0c81c0" +checksum = "1e2332801645a90df295317ab5c54247ad823a3d96b524a4b62696d81582d7cb" dependencies = [ "alloy-primitives", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", ] [[package]] name = "op-alloy-rpc-types" -version = "0.18.13" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99911fa02e717a96ba24de59874b20cf31c9d116ce79ed4e0253267260b6922f" +checksum = "9076d4fcb8e260cec8ad01cd155200c0dbb562e62adb553af245914f30854e29" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5757,7 +5410,7 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "derive_more", - "op-alloy-consensus 0.18.13", + "op-alloy-consensus 0.19.1", "serde", "serde_json", "thiserror 2.0.12", @@ -5765,9 +5418,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.18.13" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cf45d43a3d548fdc39d9bfab6ba13cc06b3214ef4b9c36d3efbf3faea1b9f1" +checksum = "d4256b1eda5766a9fa7de5874e54515994500bef632afda41e940aed015f9455" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5778,7 +5431,7 @@ dependencies = [ "derive_more", "ethereum_ssz", "ethereum_ssz_derive", - "op-alloy-consensus 0.18.13", + "op-alloy-consensus 0.19.1", "serde", "snap", "thiserror 2.0.12", @@ -5786,25 +5439,12 @@ dependencies = [ [[package]] name = "op-revm" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b97d2b54651fcd2955b454e86b2336c031e17925a127f4c44e2b63b2eeda923" -dependencies = [ - "auto_impl", - "once_cell", - "revm 26.0.1", - "serde", -] - -[[package]] -name = "op-revm" -version = "8.1.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce1dc7533f4e5716c55cd3d62488c6200cb4dfda96e0c75a7e484652464343b" +checksum = "5ba21d705bbbfc947a423cba466d75e4af0c7d43ee89ba0a0f1cfa04963cede9" dependencies = [ "auto_impl", - "once_cell", - "revm 27.1.0", + "revm", "serde", ] @@ -5959,12 +5599,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "p256" version = "0.13.2" @@ -5993,7 +5627,6 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ - "arbitrary", "arrayvec", "bitvec", "byte-slice-cast", @@ -6054,7 +5687,7 @@ checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" dependencies = [ "parse-display-derive", "regex", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] @@ -6066,7 +5699,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "regex-syntax 0.8.5", + "regex-syntax", "structmeta", "syn 2.0.104", ] @@ -6077,16 +5710,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - [[package]] name = "pem" version = "3.0.5" @@ -6215,15 +5838,6 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" -[[package]] -name = "plain_hasher" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e19e6491bdde87c2c43d70f4c194bc8a758f2eb732df00f61e43f7362e3b4cc" -dependencies = [ - "crunchy", -] - [[package]] name = "polyval" version = "0.6.2" @@ -6415,33 +6029,12 @@ dependencies = [ "rand 0.9.1", "rand_chacha 0.9.0", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax", "rusty-fork", "tempfile", "unarray", ] -[[package]] -name = "proptest-arbitrary-interop" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1981e49bd2432249da8b0e11e5557099a8e74690d6b94e721f7dc0bb7f3555f" -dependencies = [ - "arbitrary", - "proptest", -] - -[[package]] -name = "proptest-derive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "prost" version = "0.13.5" @@ -6508,9 +6101,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -6528,9 +6121,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "getrandom 0.3.3", @@ -6549,16 +6142,16 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -6672,27 +6265,6 @@ dependencies = [ "rand_core 0.9.3", ] -[[package]] -name = "ratatui" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" -dependencies = [ - "bitflags 2.9.1", - "cassowary", - "compact_str", - "crossterm", - "indoc", - "instability", - "itertools 0.13.0", - "lru 0.12.5", - "paste", - "strum 0.26.3", - "unicode-segmentation", - "unicode-truncate", - "unicode-width 0.2.0", -] - [[package]] name = "raw-cpuid" version = "11.5.0" @@ -6776,9 +6348,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", @@ -6813,17 +6385,8 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -6834,15 +6397,9 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.5" @@ -6895,7 +6452,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.1", + "webpki-roots 1.0.2", ] [[package]] @@ -6906,32 +6463,8 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth-basic-payload-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "futures-core", - "futures-util", - "metrics", - "reth-chain-state 1.5.0", - "reth-metrics 1.5.0", - "reth-payload-builder 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-basic-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6939,281 +6472,107 @@ dependencies = [ "futures-core", "futures-util", "metrics", - "reth-chain-state 1.6.0", - "reth-metrics 1.6.0", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", + "reth-chain-state", + "reth-metrics", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", + "reth-tasks", "tokio", "tracing", ] [[package]] name = "reth-chain-state" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", - "alloy-signer", - "alloy-signer-local", "derive_more", "metrics", "parking_lot", "pin-project", "rand 0.9.1", - "reth-chainspec 1.5.0", - "reth-errors 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-execution-types 1.5.0", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-trie 1.5.0", - "revm-database 6.0.0", - "revm-state 6.0.0", + "reth-chainspec", + "reth-errors", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-metrics", + "reth-primitives-traits", + "reth-storage-api", + "reth-trie", + "revm-database", + "revm-state", "serde", "tokio", "tokio-stream", "tracing", ] -[[package]] -name = "reth-chain-state" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "derive_more", - "metrics", - "parking_lot", - "pin-project", - "reth-chainspec 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-trie 1.6.0", - "revm-database 7.0.2", - "tokio", - "tokio-stream", - "tracing", -] - [[package]] name = "reth-chainspec" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-evm 0.12.3", + "alloy-evm", "alloy-genesis", "alloy-primitives", "alloy-trie", "auto_impl", "derive_more", - "reth-ethereum-forks 1.5.0", - "reth-network-peers 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-ethereum-forks", + "reth-network-peers", + "reth-primitives-traits", "serde_json", ] [[package]] -name = "reth-chainspec" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "reth-cli-util" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "alloy-chains", - "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", - "alloy-genesis", "alloy-primitives", - "alloy-trie", - "auto_impl", - "derive_more", - "reth-ethereum-forks 1.6.0", - "reth-network-peers 1.6.0", - "reth-primitives-traits 1.6.0", - "serde_json", + "cfg-if", + "eyre", + "libc", + "rand 0.8.5", + "reth-fs-util", + "secp256k1 0.30.0", + "serde", + "thiserror 2.0.12", ] [[package]] -name = "reth-cli" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +name = "reth-codecs" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ + "alloy-consensus", + "alloy-eips", "alloy-genesis", - "clap", - "eyre", - "reth-cli-runner", - "reth-db", - "serde_json", - "shellexpand", + "alloy-primitives", + "alloy-trie", + "bytes", + "modular-bitfield", + "op-alloy-consensus 0.19.1", + "reth-codecs-derive", + "reth-zstd-compressors", + "serde", ] [[package]] -name = "reth-cli-commands" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "ahash", - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "backon", - "clap", - "comfy-table", - "crossterm", - "eyre", - "fdlimit", - "futures", - "human_bytes", - "itertools 0.14.0", - "lz4", - "ratatui", - "reqwest", - "reth-chainspec 1.5.0", - "reth-cli", - "reth-cli-runner", - "reth-cli-util", - "reth-codecs 1.5.0", - "reth-config", - "reth-consensus 1.5.0", - "reth-db", - "reth-db-api", - "reth-db-common", - "reth-discv4", - "reth-discv5", - "reth-downloaders", - "reth-ecies", - "reth-era-downloader", - "reth-era-utils", - "reth-eth-wire", - "reth-etl", - "reth-evm 1.5.0", - "reth-exex", - "reth-fs-util 1.5.0", - "reth-net-nat", - "reth-network", - "reth-network-p2p", - "reth-network-peers 1.5.0", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-events", - "reth-node-metrics", - "reth-primitives-traits 1.5.0", - "reth-provider", - "reth-prune", - "reth-stages", - "reth-static-file", - "reth-static-file-types 1.5.0", - "reth-trie 1.5.0", - "reth-trie-db", - "secp256k1 0.30.0", - "serde", - "serde_json", - "tar", - "tokio", - "tokio-stream", - "toml", - "tracing", -] - -[[package]] -name = "reth-cli-runner" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "reth-tasks 1.5.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-cli-util" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "cfg-if", - "eyre", - "libc", - "rand 0.8.5", - "reth-fs-util 1.5.0", - "secp256k1 0.30.0", - "serde", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-codecs" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "arbitrary", - "bytes", - "modular-bitfield", - "op-alloy-consensus 0.18.13", - "reth-codecs-derive 1.5.0", - "reth-zstd-compressors 1.5.0", - "serde", - "visibility", -] - -[[package]] -name = "reth-codecs" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "bytes", - "modular-bitfield", - "op-alloy-consensus 0.18.13", - "reth-codecs-derive 1.6.0", - "reth-zstd-compressors 1.6.0", - "serde", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "syn 2.0.104", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "reth-codecs-derive" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "convert_case", "proc-macro2", @@ -7223,14 +6582,14 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "eyre", "humantime-serde", "reth-network-types", - "reth-prune-types 1.5.0", - "reth-stages-types 1.5.0", + "reth-prune-types", + "reth-stages-types", "serde", "toml", "url", @@ -7238,58 +6597,33 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "auto_impl", - "reth-execution-types 1.5.0", - "reth-primitives-traits 1.5.0", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives", "auto_impl", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-execution-types", + "reth-primitives-traits", "thiserror 2.0.12", ] [[package]] name = "reth-consensus-common" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-primitives-traits 1.5.0", -] - -[[package]] -name = "reth-consensus-common" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chainspec", + "reth-consensus", + "reth-primitives-traits", ] [[package]] name = "reth-consensus-debug-client" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7303,89 +6637,86 @@ dependencies = [ "futures", "reqwest", "reth-node-api", - "reth-primitives-traits 1.5.0", + "reth-primitives-traits", "reth-tracing", "ringbuffer", "serde", + "serde_json", "tokio", ] [[package]] name = "reth-db" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "derive_more", "eyre", "metrics", "page_size", - "parking_lot", "reth-db-api", - "reth-fs-util 1.5.0", + "reth-fs-util", "reth-libmdbx", - "reth-metrics 1.5.0", + "reth-metrics", "reth-nippy-jar", - "reth-static-file-types 1.5.0", - "reth-storage-errors 1.5.0", + "reth-static-file-types", + "reth-storage-errors", "reth-tracing", "rustc-hash 2.1.1", - "strum 0.27.1", + "strum", "sysinfo", - "tempfile", "thiserror 2.0.12", ] [[package]] name = "reth-db-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-genesis", "alloy-primitives", - "arbitrary", "bytes", "derive_more", "metrics", "modular-bitfield", "parity-scale-codec", - "proptest", - "reth-codecs 1.5.0", - "reth-db-models 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-prune-types 1.5.0", - "reth-stages-types 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", + "reth-codecs", + "reth-db-models", + "reth-ethereum-primitives", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", "roaring", "serde", ] [[package]] name = "reth-db-common" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-genesis", "alloy-primitives", "boyer-moore-magiclen", "eyre", - "reth-chainspec 1.5.0", - "reth-codecs 1.5.0", + "reth-chainspec", + "reth-codecs", "reth-config", "reth-db-api", "reth-etl", - "reth-fs-util 1.5.0", + "reth-execution-errors", + "reth-fs-util", "reth-node-types", - "reth-primitives-traits 1.5.0", + "reth-primitives-traits", "reth-provider", - "reth-stages-types 1.5.0", - "reth-static-file-types 1.5.0", - "reth-trie 1.5.0", + "reth-stages-types", + "reth-static-file-types", + "reth-trie", "reth-trie-db", "serde", "serde_json", @@ -7395,33 +6726,22 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives", - "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-codecs", + "reth-primitives-traits", "serde", ] -[[package]] -name = "reth-db-models" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "reth-primitives-traits 1.6.0", -] - [[package]] name = "reth-discv4" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7431,10 +6751,10 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "rand 0.8.5", - "reth-ethereum-forks 1.5.0", + "reth-ethereum-forks", "reth-net-banlist", "reth-net-nat", - "reth-network-peers 1.5.0", + "reth-network-peers", "schnellru", "secp256k1 0.30.0", "serde", @@ -7446,8 +6766,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7458,10 +6778,10 @@ dependencies = [ "itertools 0.14.0", "metrics", "rand 0.9.1", - "reth-chainspec 1.5.0", - "reth-ethereum-forks 1.5.0", - "reth-metrics 1.5.0", - "reth-network-peers 1.5.0", + "reth-chainspec", + "reth-ethereum-forks", + "reth-metrics", + "reth-network-peers", "secp256k1 0.30.0", "thiserror 2.0.12", "tokio", @@ -7470,8 +6790,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "data-encoding", @@ -7479,8 +6799,8 @@ dependencies = [ "hickory-resolver", "linked_hash_set", "parking_lot", - "reth-ethereum-forks 1.5.0", - "reth-network-peers 1.5.0", + "reth-ethereum-forks", + "reth-network-peers", "reth-tokio-util", "schnellru", "secp256k1 0.30.0", @@ -7494,8 +6814,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7508,18 +6828,13 @@ dependencies = [ "pin-project", "rayon", "reth-config", - "reth-consensus 1.5.0", - "reth-db", - "reth-db-api", - "reth-ethereum-primitives 1.5.0", - "reth-metrics 1.5.0", + "reth-consensus", + "reth-metrics", "reth-network-p2p", - "reth-network-peers 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "reth-testing-utils", - "tempfile", + "reth-network-peers", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", "thiserror 2.0.12", "tokio", "tokio-stream", @@ -7527,58 +6842,10 @@ dependencies = [ "tracing", ] -[[package]] -name = "reth-e2e-test-utils" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network", - "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-signer", - "alloy-signer-local", - "derive_more", - "eyre", - "futures-util", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-chainspec 1.5.0", - "reth-db", - "reth-engine-local", - "reth-ethereum-primitives 1.5.0", - "reth-network-api", - "reth-network-peers 1.5.0", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-ethereum", - "reth-payload-builder 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-provider", - "reth-rpc-api", - "reth-rpc-builder", - "reth-rpc-eth-api", - "reth-rpc-layer 1.5.0", - "reth-rpc-server-types", - "reth-stages-types 1.5.0", - "reth-tasks 1.5.0", - "reth-tokio-util", - "reth-tracing", - "revm 26.0.1", - "serde_json", - "tokio", - "tokio-stream", - "tracing", - "url", -] - [[package]] name = "reth-ecies" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "aes", "alloy-primitives", @@ -7594,7 +6861,7 @@ dependencies = [ "hmac", "pin-project", "rand 0.8.5", - "reth-network-peers 1.5.0", + "reth-network-peers", "secp256k1 0.30.0", "sha2 0.10.9", "sha3", @@ -7608,8 +6875,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7617,14 +6884,14 @@ dependencies = [ "eyre", "futures-util", "op-alloy-rpc-types-engine", - "reth-chainspec 1.5.0", - "reth-engine-primitives 1.5.0", - "reth-ethereum-engine-primitives 1.5.0", - "reth-optimism-chainspec 1.5.0", - "reth-payload-builder 1.5.0", - "reth-payload-primitives 1.5.0", + "reth-chainspec", + "reth-engine-primitives", + "reth-ethereum-engine-primitives", + "reth-optimism-chainspec", + "reth-payload-builder", + "reth-payload-primitives", "reth-provider", - "reth-transaction-pool 1.5.0", + "reth-transaction-pool", "tokio", "tokio-stream", "tracing", @@ -7632,33 +6899,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "futures", - "reth-chain-state 1.5.0", - "reth-errors 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-execution-types 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-trie 1.5.0", - "reth-trie-common 1.5.0", - "serde", - "thiserror 2.0.12", - "tokio", -] - -[[package]] -name = "reth-engine-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7666,15 +6908,15 @@ dependencies = [ "alloy-rpc-types-engine", "auto_impl", "futures", - "reth-chain-state 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie 1.6.0", - "reth-trie-common 1.6.0", + "reth-chain-state", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-trie-common", "serde", "thiserror 2.0.12", "tokio", @@ -7682,74 +6924,71 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "futures", "pin-project", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-engine-primitives 1.5.0", + "reth-chainspec", + "reth-consensus", + "reth-engine-primitives", "reth-engine-tree", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", + "reth-ethereum-primitives", + "reth-evm", "reth-network-p2p", "reth-node-types", - "reth-payload-builder 1.5.0", + "reth-payload-builder", "reth-provider", "reth-prune", "reth-stages-api", - "reth-tasks 1.5.0", + "reth-tasks", "thiserror 2.0.12", ] [[package]] name = "reth-engine-tree" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.12.3", + "alloy-evm", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", "derive_more", "futures", - "itertools 0.14.0", "metrics", "mini-moka", "parking_lot", "rayon", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", + "reth-chain-state", + "reth-consensus", "reth-db", - "reth-engine-primitives 1.5.0", - "reth-errors 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", - "reth-metrics 1.5.0", + "reth-engine-primitives", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-metrics", "reth-network-p2p", - "reth-payload-builder 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-payload-builder", + "reth-payload-primitives", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-prune-types 1.5.0", - "reth-revm 1.5.0", - "reth-stages", + "reth-revm", "reth-stages-api", - "reth-static-file", - "reth-tasks 1.5.0", - "reth-tracing", - "reth-trie 1.5.0", + "reth-tasks", + "reth-trie", "reth-trie-db", "reth-trie-parallel", - "reth-trie-sparse 1.5.0", - "revm 26.0.1", + "reth-trie-sparse", + "reth-trie-sparse-parallel", + "revm", "revm-primitives", "schnellru", + "smallvec", "thiserror 2.0.12", "tokio", "tracing", @@ -7757,8 +6996,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -7766,15 +7005,16 @@ dependencies = [ "futures", "itertools 0.14.0", "pin-project", - "reth-chainspec 1.5.0", - "reth-engine-primitives 1.5.0", - "reth-errors 1.5.0", - "reth-evm 1.5.0", - "reth-fs-util 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", - "reth-storage-api 1.5.0", + "reth-chainspec", + "reth-engine-primitives", + "reth-engine-tree", + "reth-errors", + "reth-evm", + "reth-fs-util", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", "serde", "serde_json", "tokio", @@ -7784,8 +7024,8 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7793,76 +7033,63 @@ dependencies = [ "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", - "reth-ethereum-primitives 1.5.0", + "reth-ethereum-primitives", "snap", "thiserror 2.0.12", ] [[package]] name = "reth-era-downloader" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "bytes", "eyre", "futures-util", "reqwest", - "reth-fs-util 1.5.0", + "reth-fs-util", "sha2 0.10.9", "tokio", ] [[package]] name = "reth-era-utils" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives", - "alloy-rlp", "eyre", "futures-util", "reth-db-api", "reth-era", "reth-era-downloader", - "reth-ethereum-primitives 1.5.0", "reth-etl", - "reth-fs-util 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-fs-util", + "reth-primitives-traits", "reth-provider", - "reth-stages-types 1.5.0", - "reth-storage-api 1.5.0", + "reth-stages-types", + "reth-storage-api", "tokio", "tracing", ] [[package]] name = "reth-errors" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "reth-consensus 1.5.0", - "reth-execution-errors 1.5.0", - "reth-storage-errors 1.5.0", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "reth-consensus 1.6.0", - "reth-execution-errors 1.6.0", - "reth-storage-errors 1.6.0", + "reth-consensus", + "reth-execution-errors", + "reth-storage-errors", "thiserror 2.0.12", ] [[package]] name = "reth-eth-wire" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7871,13 +7098,13 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs 1.5.0", + "reth-codecs", "reth-ecies", - "reth-eth-wire-types 1.5.0", - "reth-ethereum-forks 1.5.0", - "reth-metrics 1.5.0", - "reth-network-peers 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-eth-wire-types", + "reth-ethereum-forks", + "reth-metrics", + "reth-network-peers", + "reth-primitives-traits", "serde", "snap", "thiserror 2.0.12", @@ -7889,8 +7116,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7900,82 +7127,27 @@ dependencies = [ "alloy-rlp", "bytes", "derive_more", - "reth-chainspec 1.5.0", - "reth-codecs-derive 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-chainspec", + "reth-codecs-derive", + "reth-ethereum-primitives", + "reth-primitives-traits", "serde", "thiserror 2.0.12", ] -[[package]] -name = "reth-eth-wire-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-hardforks", - "alloy-primitives", - "alloy-rlp", - "bytes", - "derive_more", - "reth-chainspec 1.6.0", - "reth-codecs-derive 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "serde", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-ethereum-consensus" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-consensus-common 1.5.0", - "reth-execution-types 1.5.0", - "reth-primitives-traits 1.5.0", - "tracing", -] - [[package]] name = "reth-ethereum-engine-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "reth-engine-primitives 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "serde", - "sha2 0.10.9", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-ethereum-engine-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", - "reth-engine-primitives 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-engine-primitives", + "reth-ethereum-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "serde", "sha2 0.10.9", "thiserror 2.0.12", @@ -7983,21 +7155,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eip2124", - "alloy-hardforks", - "alloy-primitives", - "auto_impl", - "once_cell", - "rustc-hash 2.1.1", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -8007,70 +7166,27 @@ dependencies = [ "rustc-hash 2.1.1", ] -[[package]] -name = "reth-ethereum-payload-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "reth-basic-payload-builder 1.5.0", - "reth-chainspec 1.5.0", - "reth-errors 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", - "reth-evm-ethereum", - "reth-payload-builder 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-payload-validator 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", - "reth-storage-api 1.5.0", - "reth-transaction-pool 1.5.0", - "revm 26.0.1", - "tracing", -] - [[package]] name = "reth-ethereum-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", - "arbitrary", "modular-bitfield", - "reth-codecs 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-zstd-compressors 1.5.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-ethereum-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "reth-primitives-traits 1.6.0", - "reth-zstd-compressors 1.6.0", + "reth-codecs", + "reth-primitives-traits", + "reth-zstd-compressors", "serde", "serde_with", ] [[package]] name = "reth-etl" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "rayon", "reth-db-api", @@ -8079,130 +7195,82 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.12.3", + "alloy-evm", "alloy-primitives", "auto_impl", "derive_more", "futures-util", "metrics", - "reth-execution-errors 1.5.0", - "reth-execution-types 1.5.0", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", - "revm 26.0.1", -] - -[[package]] -name = "reth-evm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.15.0", - "alloy-primitives", - "auto_impl", - "derive_more", - "futures-util", - "reth-execution-errors 1.6.0", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "revm 27.1.0", + "reth-execution-errors", + "reth-execution-types", + "reth-metrics", + "reth-primitives-traits", + "reth-storage-api", + "reth-storage-errors", + "reth-trie-common", + "revm", ] [[package]] name = "reth-evm-ethereum" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.12.3", - "alloy-primitives", - "reth-chainspec 1.5.0", - "reth-ethereum-forks 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", - "reth-execution-types 1.5.0", - "reth-primitives-traits 1.5.0", - "revm 26.0.1", -] - -[[package]] -name = "reth-execution-errors" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-evm 0.12.3", + "alloy-evm", "alloy-primitives", - "alloy-rlp", - "nybbles", - "reth-storage-errors 1.5.0", - "thiserror 2.0.12", + "alloy-rpc-types-engine", + "reth-chainspec", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-primitives-traits", + "reth-storage-errors", + "revm", ] [[package]] name = "reth-execution-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "alloy-evm 0.15.0", + "alloy-evm", "alloy-primitives", "alloy-rlp", "nybbles", - "reth-storage-errors 1.6.0", + "reth-storage-errors", "thiserror 2.0.12", ] [[package]] name = "reth-execution-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.12.3", + "alloy-evm", "alloy-primitives", "derive_more", - "reth-ethereum-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-trie-common 1.5.0", - "revm 26.0.1", + "reth-ethereum-primitives", + "reth-primitives-traits", + "reth-trie-common", + "revm", "serde", "serde_with", ] -[[package]] -name = "reth-execution-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.15.0", - "alloy-primitives", - "derive_more", - "reth-ethereum-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie-common 1.6.0", - "revm 27.1.0", -] - [[package]] name = "reth-exex" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8212,23 +7280,23 @@ dependencies = [ "itertools 0.14.0", "metrics", "parking_lot", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", + "reth-chain-state", + "reth-chainspec", "reth-config", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", + "reth-ethereum-primitives", + "reth-evm", "reth-exex-types", - "reth-fs-util 1.5.0", - "reth-metrics 1.5.0", + "reth-fs-util", + "reth-metrics", "reth-node-api", "reth-node-core", - "reth-payload-builder 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.5.0", - "reth-revm 1.5.0", + "reth-prune-types", + "reth-revm", "reth-stages-api", - "reth-tasks 1.5.0", + "reth-tasks", "reth-tracing", "rmp-serde", "thiserror 2.0.12", @@ -8239,32 +7307,22 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives", - "reth-chain-state 1.5.0", - "reth-execution-types 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-chain-state", + "reth-execution-types", + "reth-primitives-traits", "serde", "serde_with", ] [[package]] name = "reth-fs-util" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-fs-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "serde", "serde_json", @@ -8273,8 +7331,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8282,33 +7340,32 @@ dependencies = [ "alloy-rpc-types-debug", "eyre", "futures", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", "pretty_assertions", - "reth-chainspec 1.5.0", - "reth-engine-primitives 1.5.0", - "reth-evm 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-engine-primitives", + "reth-evm", + "reth-primitives-traits", "reth-provider", - "reth-revm 1.5.0", + "reth-revm", "reth-rpc-api", "reth-tracing", - "reth-trie 1.5.0", - "revm-bytecode 5.0.0", - "revm-database 6.0.0", + "reth-trie", + "revm-bytecode", + "revm-database", "serde", "serde_json", ] [[package]] name = "reth-ipc" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "bytes", "futures", "futures-util", "interprocess", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", "pin-project", "serde_json", "thiserror 2.0.12", @@ -8321,8 +7378,8 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "bitflags 2.9.1", "byteorder", @@ -8338,8 +7395,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "bindgen 0.70.1", "cc", @@ -8347,8 +7404,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "futures", "metrics", @@ -8357,27 +7414,18 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "reth-metrics" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "metrics", - "metrics-derive", -] - [[package]] name = "reth-net-banlist" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-net-nat" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "futures-util", "if-addrs", @@ -8390,8 +7438,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8409,28 +7457,28 @@ dependencies = [ "pin-project", "rand 0.8.5", "rand 0.9.1", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", + "reth-chainspec", + "reth-consensus", "reth-discv4", "reth-discv5", "reth-dns-discovery", "reth-ecies", "reth-eth-wire", - "reth-eth-wire-types 1.5.0", - "reth-ethereum-forks 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-fs-util 1.5.0", - "reth-metrics 1.5.0", + "reth-eth-wire-types", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-fs-util", + "reth-metrics", "reth-net-banlist", "reth-network-api", "reth-network-p2p", - "reth-network-peers 1.5.0", + "reth-network-peers", "reth-network-types", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", "reth-tokio-util", - "reth-transaction-pool 1.5.0", + "reth-transaction-pool", "rustc-hash 2.1.1", "schnellru", "secp256k1 0.30.0", @@ -8445,19 +7493,21 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ + "alloy-consensus", "alloy-primitives", "alloy-rpc-types-admin", + "alloy-rpc-types-eth", "auto_impl", "derive_more", "enr", "futures", - "reth-eth-wire-types 1.5.0", - "reth-ethereum-forks 1.5.0", + "reth-eth-wire-types", + "reth-ethereum-forks", "reth-network-p2p", - "reth-network-peers 1.5.0", + "reth-network-peers", "reth-network-types", "reth-tokio-util", "serde", @@ -8468,8 +7518,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8477,22 +7527,21 @@ dependencies = [ "auto_impl", "derive_more", "futures", - "parking_lot", - "reth-consensus 1.5.0", - "reth-eth-wire-types 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-network-peers 1.5.0", + "reth-consensus", + "reth-eth-wire-types", + "reth-ethereum-primitives", + "reth-network-peers", "reth-network-types", - "reth-primitives-traits 1.5.0", - "reth-storage-errors 1.5.0", + "reth-primitives-traits", + "reth-storage-errors", "tokio", "tracing", ] [[package]] name = "reth-network-peers" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8504,28 +7553,15 @@ dependencies = [ "url", ] -[[package]] -name = "reth-network-peers" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "secp256k1 0.30.0", - "serde_with", - "thiserror 2.0.12", - "url", -] - [[package]] name = "reth-network-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eip2124", "humantime-serde", "reth-net-banlist", - "reth-network-peers 1.5.0", + "reth-network-peers", "serde", "serde_json", "tracing", @@ -8533,15 +7569,15 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "anyhow", "bincode", "derive_more", "lz4_flex", "memmap2", - "reth-fs-util 1.5.0", + "reth-fs-util", "serde", "thiserror 2.0.12", "tracing", @@ -8550,32 +7586,32 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-rpc-types-engine", "eyre", - "reth-basic-payload-builder 1.5.0", - "reth-consensus 1.5.0", + "reth-basic-payload-builder", + "reth-consensus", "reth-db-api", - "reth-engine-primitives 1.5.0", - "reth-evm 1.5.0", + "reth-engine-primitives", + "reth-evm", "reth-network-api", "reth-node-core", "reth-node-types", - "reth-payload-builder 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", "reth-provider", - "reth-tasks 1.5.0", + "reth-tasks", "reth-tokio-util", - "reth-transaction-pool 1.5.0", + "reth-transaction-pool", ] [[package]] name = "reth-node-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8587,35 +7623,37 @@ dependencies = [ "eyre", "fdlimit", "futures", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", "rayon", - "reth-basic-payload-builder 1.5.0", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", + "reth-basic-payload-builder", + "reth-chain-state", + "reth-chainspec", "reth-cli-util", "reth-config", - "reth-consensus 1.5.0", + "reth-consensus", "reth-consensus-debug-client", - "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", "reth-engine-local", + "reth-engine-primitives", "reth-engine-service", "reth-engine-tree", "reth-engine-util", - "reth-evm 1.5.0", + "reth-evm", "reth-exex", - "reth-fs-util 1.5.0", + "reth-fs-util", "reth-invalid-block-hooks", "reth-network", "reth-network-api", "reth-network-p2p", "reth-node-api", "reth-node-core", + "reth-node-ethstats", "reth-node-events", "reth-node-metrics", - "reth-payload-builder 1.5.0", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", "reth-prune", "reth-rpc", @@ -8623,13 +7661,13 @@ dependencies = [ "reth-rpc-builder", "reth-rpc-engine-api", "reth-rpc-eth-types", - "reth-rpc-layer 1.5.0", + "reth-rpc-layer 1.7.0", "reth-stages", "reth-static-file", - "reth-tasks 1.5.0", + "reth-tasks", "reth-tokio-util", "reth-tracing", - "reth-transaction-pool 1.5.0", + "reth-transaction-pool", "secp256k1 0.30.0", "serde_json", "tokio", @@ -8639,8 +7677,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8653,33 +7691,34 @@ dependencies = [ "futures", "humantime", "rand 0.9.1", - "reth-chainspec 1.5.0", + "reth-chainspec", "reth-cli-util", "reth-config", - "reth-consensus 1.5.0", + "reth-consensus", "reth-db", "reth-discv4", "reth-discv5", - "reth-engine-primitives 1.5.0", - "reth-ethereum-forks 1.5.0", + "reth-engine-local", + "reth-engine-primitives", + "reth-ethereum-forks", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-prune-types 1.5.0", + "reth-network-peers", + "reth-primitives-traits", + "reth-prune-types", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-stages-types 1.5.0", - "reth-storage-api 1.5.0", - "reth-storage-errors 1.5.0", + "reth-stages-types", + "reth-storage-api", + "reth-storage-errors", "reth-tracing", - "reth-transaction-pool 1.5.0", + "reth-transaction-pool", "secp256k1 0.30.0", "serde", "shellexpand", - "strum 0.27.1", + "strum", "thiserror 2.0.12", "toml", "tracing", @@ -8689,45 +7728,33 @@ dependencies = [ ] [[package]] -name = "reth-node-ethereum" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +name = "reth-node-ethstats" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "alloy-eips", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "eyre", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-engine-primitives 1.5.0", - "reth-ethereum-consensus", - "reth-ethereum-engine-primitives 1.5.0", - "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", - "reth-evm-ethereum", - "reth-network", - "reth-node-api", - "reth-node-builder", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-provider", - "reth-revm 1.5.0", - "reth-rpc", - "reth-rpc-api", - "reth-rpc-builder", - "reth-rpc-eth-types", - "reth-rpc-server-types", - "reth-tracing", - "reth-transaction-pool 1.5.0", - "reth-trie-db", - "revm 26.0.1", + "alloy-consensus", + "alloy-primitives", + "chrono", + "futures-util", + "reth-chain-state", + "reth-network-api", + "reth-primitives-traits", + "reth-storage-api", + "reth-transaction-pool", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tracing", + "url", ] [[package]] name = "reth-node-events" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8737,32 +7764,32 @@ dependencies = [ "futures", "humantime", "pin-project", - "reth-engine-primitives 1.5.0", + "reth-engine-primitives", "reth-network-api", - "reth-primitives-traits 1.5.0", - "reth-prune-types 1.5.0", + "reth-primitives-traits", + "reth-prune-types", "reth-stages", - "reth-static-file-types 1.5.0", - "reth-storage-api 1.5.0", + "reth-static-file-types", + "reth-storage-api", "tokio", "tracing", ] [[package]] name = "reth-node-metrics" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "eyre", "http", - "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-server", "metrics", "metrics-exporter-prometheus 0.16.2", "metrics-process", "metrics-util 0.19.1", "procfs", - "reth-metrics 1.5.0", - "reth-tasks 1.5.0", + "reth-metrics", + "reth-tasks", "tokio", "tower 0.5.2", "tracing", @@ -8770,21 +7797,20 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "reth-chainspec 1.5.0", + "reth-chainspec", "reth-db-api", - "reth-engine-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-trie-db", + "reth-engine-primitives", + "reth-payload-primitives", + "reth-primitives-traits", ] [[package]] name = "reth-optimism-chainspec" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8794,216 +7820,118 @@ dependencies = [ "alloy-primitives", "derive_more", "miniz_oxide", + "op-alloy-consensus 0.19.1", "op-alloy-rpc-types", - "paste", - "reth-chainspec 1.5.0", - "reth-ethereum-forks 1.5.0", - "reth-network-peers 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-chainspec", + "reth-ethereum-forks", + "reth-network-peers", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", "serde", "serde_json", - "tar-no-std", "thiserror 2.0.12", ] -[[package]] -name = "reth-optimism-chainspec" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-hardforks", - "alloy-primitives", - "derive_more", - "op-alloy-consensus 0.18.13", - "op-alloy-rpc-types", - "reth-chainspec 1.6.0", - "reth-ethereum-forks 1.6.0", - "reth-network-peers 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "serde_json", -] - -[[package]] -name = "reth-optimism-cli" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "clap", - "derive_more", - "eyre", - "futures-util", - "op-alloy-consensus 0.18.13", - "reth-chainspec 1.5.0", - "reth-cli", - "reth-cli-commands", - "reth-cli-runner", - "reth-consensus 1.5.0", - "reth-db", - "reth-db-api", - "reth-db-common", - "reth-downloaders", - "reth-execution-types 1.5.0", - "reth-fs-util 1.5.0", - "reth-node-builder", - "reth-node-core", - "reth-node-events", - "reth-node-metrics", - "reth-optimism-chainspec 1.5.0", - "reth-optimism-consensus 1.5.0", - "reth-optimism-evm 1.5.0", - "reth-optimism-node", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-provider", - "reth-prune", - "reth-stages", - "reth-static-file", - "reth-static-file-types 1.5.0", - "reth-tracing", - "serde", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "reth-optimism-consensus" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-trie", - "op-alloy-consensus 0.18.13", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-consensus-common 1.5.0", - "reth-execution-types 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", - "revm 26.0.1", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "reth-optimism-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-trie", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-consensus-common 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "revm 27.1.0", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-execution-types", + "reth-optimism-chainspec", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-storage-api", + "reth-storage-errors", + "reth-trie-common", + "revm", "thiserror 2.0.12", "tracing", ] [[package]] name = "reth-optimism-evm" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.12.3", - "alloy-op-evm 0.12.3", - "alloy-primitives", - "op-alloy-consensus 0.18.13", - "op-revm 7.0.1", - "reth-chainspec 1.5.0", - "reth-evm 1.5.0", - "reth-execution-errors 1.5.0", - "reth-execution-types 1.5.0", - "reth-optimism-chainspec 1.5.0", - "reth-optimism-consensus 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "revm 26.0.1", + "alloy-evm", + "alloy-op-evm", + "alloy-primitives", + "op-alloy-consensus 0.19.1", + "op-alloy-rpc-types-engine", + "op-revm", + "reth-chainspec", + "reth-evm", + "reth-execution-errors", + "reth-execution-types", + "reth-optimism-chainspec", + "reth-optimism-consensus", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-rpc-eth-api", + "reth-storage-errors", + "revm", "thiserror 2.0.12", ] [[package]] -name = "reth-optimism-evm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "reth-optimism-flashblocks" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", - "alloy-op-evm 0.15.0", - "alloy-primitives", - "op-alloy-consensus 0.18.13", - "op-revm 8.1.0", - "reth-chainspec 1.6.0", - "reth-evm 1.6.0", - "reth-execution-errors 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-consensus 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "revm 27.1.0", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-optimism-forks" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-op-hardforks", "alloy-primitives", - "once_cell", - "reth-ethereum-forks 1.5.0", + "alloy-rpc-types-engine", + "alloy-serde", + "brotli", + "eyre", + "futures-util", + "reth-chain-state", + "reth-errors", + "reth-evm", + "reth-execution-types", + "reth-optimism-evm", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-revm", + "reth-rpc-eth-types", + "reth-storage-api", + "reth-tasks", + "serde", + "serde_json", + "tokio", + "tokio-tungstenite", + "tracing", + "url", ] [[package]] name = "reth-optimism-forks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-op-hardforks", "alloy-primitives", "once_cell", - "reth-ethereum-forks 1.6.0", + "reth-ethereum-forks", ] [[package]] name = "reth-optimism-node" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -9011,85 +7939,45 @@ dependencies = [ "alloy-rpc-types-eth", "clap", "eyre", - "op-alloy-consensus 0.18.13", - "op-alloy-network", + "op-alloy-consensus 0.19.1", "op-alloy-rpc-types-engine", - "op-revm 7.0.1", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-evm 1.5.0", + "op-revm", + "reth-chainspec", + "reth-consensus", + "reth-engine-local", + "reth-evm", "reth-network", "reth-node-api", "reth-node-builder", "reth-node-core", - "reth-optimism-chainspec 1.5.0", - "reth-optimism-consensus 1.5.0", - "reth-optimism-evm 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-payload-builder 1.5.0", - "reth-optimism-primitives 1.5.0", + "reth-optimism-chainspec", + "reth-optimism-consensus", + "reth-optimism-evm", + "reth-optimism-forks", + "reth-optimism-payload-builder", + "reth-optimism-primitives", "reth-optimism-rpc", "reth-optimism-storage", - "reth-optimism-txpool 1.5.0", - "reth-payload-builder 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-optimism-txpool", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", "reth-rpc-api", "reth-rpc-engine-api", - "reth-rpc-eth-api", - "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool 1.5.0", - "reth-trie-common 1.5.0", - "reth-trie-db", - "revm 26.0.1", + "reth-transaction-pool", + "reth-trie-common", + "revm", "serde", + "tokio", + "url", ] [[package]] name = "reth-optimism-payload-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "derive_more", - "op-alloy-consensus 0.18.13", - "op-alloy-rpc-types-engine", - "reth-basic-payload-builder 1.5.0", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-evm 1.5.0", - "reth-execution-types 1.5.0", - "reth-optimism-evm 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-optimism-txpool 1.5.0", - "reth-payload-builder 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-payload-util 1.5.0", - "reth-payload-validator 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", - "reth-storage-api 1.5.0", - "reth-transaction-pool 1.5.0", - "revm 26.0.1", - "serde", - "sha2 0.10.9", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "reth-optimism-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9098,27 +7986,27 @@ dependencies = [ "alloy-rpc-types-debug", "alloy-rpc-types-engine", "derive_more", - "op-alloy-consensus 0.18.13", + "op-alloy-consensus 0.19.1", "op-alloy-rpc-types-engine", - "reth-basic-payload-builder 1.6.0", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-evm 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-optimism-txpool 1.6.0", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-payload-util 1.6.0", - "reth-payload-validator 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", - "reth-transaction-pool 1.6.0", - "revm 27.1.0", + "reth-basic-payload-builder", + "reth-chain-state", + "reth-chainspec", + "reth-evm", + "reth-execution-types", + "reth-optimism-evm", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-optimism-txpool", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-payload-util", + "reth-payload-validator", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", + "reth-transaction-pool", + "revm", "serde", "sha2 0.10.9", "thiserror 2.0.12", @@ -9127,41 +8015,27 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", - "arbitrary", "bytes", "modular-bitfield", - "op-alloy-consensus 0.18.13", - "reth-codecs 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-zstd-compressors 1.5.0", + "op-alloy-consensus 0.19.1", + "reth-codecs", + "reth-primitives-traits", + "reth-zstd-compressors", "serde", "serde_with", ] -[[package]] -name = "reth-optimism-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "op-alloy-consensus 0.18.13", - "reth-primitives-traits 1.6.0", -] - [[package]] name = "reth-optimism-rpc" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9176,41 +8050,39 @@ dependencies = [ "async-trait", "derive_more", "eyre", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics", - "op-alloy-consensus 0.18.13", + "op-alloy-consensus 0.19.1", "op-alloy-network", "op-alloy-rpc-jsonrpsee", "op-alloy-rpc-types", "op-alloy-rpc-types-engine", - "op-revm 7.0.1", - "parking_lot", + "op-revm", "reqwest", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-evm 1.5.0", - "reth-metrics 1.5.0", - "reth-network-api", + "reth-chainspec", + "reth-evm", + "reth-metrics", "reth-node-api", "reth-node-builder", - "reth-optimism-evm 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-payload-builder 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-optimism-txpool 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-optimism-evm", + "reth-optimism-flashblocks", + "reth-optimism-forks", + "reth-optimism-payload-builder", + "reth-optimism-primitives", + "reth-optimism-txpool", + "reth-primitives-traits", "reth-rpc", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "reth-transaction-pool 1.5.0", - "revm 26.0.1", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "revm", "serde_json", "thiserror 2.0.12", "tokio", @@ -9220,60 +8092,24 @@ dependencies = [ [[package]] name = "reth-optimism-storage" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives", - "reth-chainspec 1.5.0", + "reth-chainspec", "reth-db-api", "reth-node-api", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-optimism-primitives", + "reth-primitives-traits", "reth-provider", - "reth-storage-api 1.5.0", -] - -[[package]] -name = "reth-optimism-txpool" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-serde", - "c-kzg", - "derive_more", - "futures-util", - "metrics", - "op-alloy-consensus 0.18.13", - "op-alloy-flz", - "op-alloy-rpc-types", - "op-revm 7.0.1", - "parking_lot", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-metrics 1.5.0", - "reth-optimism-evm 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-transaction-pool 1.5.0", - "serde", - "thiserror 2.0.12", - "tokio", - "tracing", + "reth-storage-api", ] [[package]] name = "reth-optimism-txpool" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9286,20 +8122,20 @@ dependencies = [ "derive_more", "futures-util", "metrics", - "op-alloy-consensus 0.18.13", + "op-alloy-consensus 0.19.1", "op-alloy-flz", "op-alloy-rpc-types", - "op-revm 8.1.0", + "op-revm", "parking_lot", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-metrics 1.6.0", - "reth-optimism-evm 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-transaction-pool 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-metrics", + "reth-optimism-evm", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-storage-api", + "reth-transaction-pool", "serde", "thiserror 2.0.12", "tokio", @@ -9308,52 +8144,19 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rpc-types", - "futures-util", - "metrics", - "reth-chain-state 1.5.0", - "reth-ethereum-engine-primitives 1.5.0", - "reth-metrics 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-rpc-types", "futures-util", "metrics", - "reth-chain-state 1.6.0", - "reth-ethereum-engine-primitives 1.6.0", - "reth-metrics 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-builder-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "pin-project", - "reth-payload-primitives 1.5.0", + "reth-chain-state", + "reth-ethereum-engine-primitives", + "reth-metrics", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "tokio", "tokio-stream", "tracing", @@ -9361,11 +8164,11 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "pin-project", - "reth-payload-primitives 1.6.0", + "reth-payload-primitives", "tokio", "tokio-stream", "tracing", @@ -9373,100 +8176,47 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "op-alloy-rpc-types-engine", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-errors 1.5.0", - "reth-primitives-traits 1.5.0", - "serde", - "thiserror 2.0.12", - "tokio", -] - -[[package]] -name = "reth-payload-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", "op-alloy-rpc-types-engine", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-errors 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-primitives-traits", "serde", "thiserror 2.0.12", - "tokio", -] - -[[package]] -name = "reth-payload-util" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "reth-transaction-pool 1.5.0", + "tokio", ] [[package]] name = "reth-payload-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives", - "reth-transaction-pool 1.6.0", -] - -[[package]] -name = "reth-payload-validator" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types-engine", - "reth-primitives-traits 1.5.0", + "reth-transaction-pool", ] [[package]] name = "reth-payload-validator" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", - "reth-primitives-traits 1.6.0", -] - -[[package]] -name = "reth-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "c-kzg", - "once_cell", - "reth-ethereum-forks 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-static-file-types 1.5.0", + "reth-primitives-traits", ] [[package]] name = "reth-primitives-traits" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9475,48 +8225,18 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-trie", - "arbitrary", "auto_impl", "byteorder", "bytes", "derive_more", "modular-bitfield", "once_cell", - "op-alloy-consensus 0.18.13", - "proptest", - "proptest-arbitrary-interop", + "op-alloy-consensus 0.19.1", "rayon", - "reth-codecs 1.5.0", - "revm-bytecode 5.0.0", - "revm-primitives", - "revm-state 6.0.0", - "secp256k1 0.30.0", - "serde", - "serde_with", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-trie", - "auto_impl", - "bytes", - "derive_more", - "once_cell", - "op-alloy-consensus 0.18.13", - "reth-codecs 1.6.0", - "revm-bytecode 6.1.0", + "reth-codecs", + "revm-bytecode", "revm-primitives", - "revm-state 7.0.2", + "revm-state", "secp256k1 0.30.0", "serde", "serde_with", @@ -9525,8 +8245,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9539,39 +8259,36 @@ dependencies = [ "notify", "parking_lot", "rayon", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-codecs 1.5.0", + "reth-chain-state", + "reth-chainspec", + "reth-codecs", "reth-db", "reth-db-api", - "reth-errors 1.5.0", - "reth-ethereum-engine-primitives 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", - "reth-execution-types 1.5.0", - "reth-fs-util 1.5.0", - "reth-metrics 1.5.0", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-fs-util", + "reth-metrics", "reth-nippy-jar", "reth-node-types", - "reth-primitives-traits 1.5.0", - "reth-prune-types 1.5.0", - "reth-stages-types 1.5.0", - "reth-static-file-types 1.5.0", - "reth-storage-api 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie 1.5.0", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-static-file-types", + "reth-storage-api", + "reth-storage-errors", + "reth-trie", "reth-trie-db", - "revm-database 6.0.0", - "revm-state 6.0.0", - "strum 0.27.1", - "tokio", + "revm-database", + "strum", "tracing", ] [[package]] name = "reth-prune" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9579,16 +8296,16 @@ dependencies = [ "itertools 0.14.0", "metrics", "rayon", - "reth-chainspec 1.5.0", + "reth-chainspec", "reth-config", "reth-db-api", - "reth-errors 1.5.0", + "reth-errors", "reth-exex-types", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-metrics", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.5.0", - "reth-static-file-types 1.5.0", + "reth-prune-types", + "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", "thiserror 2.0.12", @@ -9598,67 +8315,44 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", - "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs 1.5.0", + "reth-codecs", "serde", "thiserror 2.0.12", ] -[[package]] -name = "reth-prune-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives", - "derive_more", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-revm" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-primitives", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie 1.5.0", - "revm 26.0.1", -] - [[package]] name = "reth-revm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie 1.6.0", - "revm 27.1.0", + "reth-primitives-traits", + "reth-storage-api", + "reth-storage-errors", + "reth-trie", + "revm", ] [[package]] name = "reth-rpc" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm 0.12.3", + "alloy-evm", "alloy-genesis", "alloy-network", "alloy-primitives", "alloy-rlp", + "alloy-rpc-client", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", @@ -9677,38 +8371,39 @@ dependencies = [ "http", "http-body", "hyper", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "itertools 0.14.0", + "jsonrpsee", + "jsonrpsee-types 0.26.0", "jsonwebtoken", "parking_lot", "pin-project", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-engine-primitives 1.5.0", - "reth-errors 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", + "reth-chain-state", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-engine-primitives", + "reth-errors", + "reth-evm", "reth-evm-ethereum", - "reth-execution-types 1.5.0", - "reth-metrics 1.5.0", + "reth-execution-types", + "reth-metrics", "reth-network-api", - "reth-network-peers 1.5.0", + "reth-network-peers", "reth-network-types", "reth-node-api", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", + "reth-primitives-traits", + "reth-revm", "reth-rpc-api", "reth-rpc-convert", "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "reth-transaction-pool 1.5.0", - "reth-trie-common 1.5.0", - "revm 26.0.1", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie-common", + "revm", "revm-inspectors", "revm-primitives", "serde", @@ -9724,8 +8419,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-genesis", @@ -9742,43 +8437,43 @@ dependencies = [ "alloy-rpc-types-trace", "alloy-rpc-types-txpool", "alloy-serde", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-chain-state 1.5.0", - "reth-engine-primitives 1.5.0", - "reth-network-peers 1.5.0", + "jsonrpsee", + "reth-chain-state", + "reth-engine-primitives", + "reth-network-peers", "reth-rpc-eth-api", - "reth-trie-common 1.5.0", + "reth-trie-common", ] [[package]] name = "reth-rpc-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-network", "alloy-provider", "http", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", "metrics", "pin-project", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-evm 1.5.0", + "reth-chain-state", + "reth-chainspec", + "reth-consensus", + "reth-evm", "reth-ipc", - "reth-metrics 1.5.0", + "reth-metrics", "reth-network-api", "reth-node-core", - "reth-primitives-traits 1.5.0", + "reth-primitives-traits", "reth-rpc", "reth-rpc-api", "reth-rpc-eth-api", "reth-rpc-eth-types", - "reth-rpc-layer 1.5.0", + "reth-rpc-layer 1.7.0", "reth-rpc-server-types", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "reth-transaction-pool 1.5.0", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", "serde", "thiserror 2.0.12", "tokio", @@ -9790,50 +8485,53 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-json-rpc", "alloy-network", "alloy-primitives", "alloy-rpc-types-eth", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "op-alloy-consensus 0.18.13", + "alloy-signer", + "jsonrpsee-types 0.26.0", + "op-alloy-consensus 0.19.1", + "op-alloy-network", "op-alloy-rpc-types", - "op-revm 7.0.1", - "reth-evm 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "revm-context 7.0.1", + "op-revm", + "reth-ethereum-primitives", + "reth-evm", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-storage-api", + "revm-context", "thiserror 2.0.12", ] [[package]] name = "reth-rpc-engine-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", "async-trait", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics", "parking_lot", - "reth-chainspec 1.5.0", - "reth-engine-primitives 1.5.0", - "reth-metrics 1.5.0", - "reth-payload-builder 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", + "reth-chainspec", + "reth-engine-primitives", + "reth-metrics", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "reth-rpc-api", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "reth-transaction-pool 1.5.0", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", "serde", "thiserror 2.0.12", "tokio", @@ -9842,12 +8540,13 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", + "alloy-evm", "alloy-json-rpc", "alloy-network", "alloy-primitives", @@ -9859,26 +8558,25 @@ dependencies = [ "auto_impl", "dyn-clone", "futures", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", + "jsonrpsee-types 0.26.0", "parking_lot", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-errors 1.5.0", - "reth-evm 1.5.0", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-evm", "reth-network-api", "reth-node-api", - "reth-payload-builder 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", + "reth-primitives-traits", + "reth-revm", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "reth-transaction-pool 1.5.0", - "reth-trie-common 1.5.0", - "revm 26.0.1", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie-common", + "revm", "revm-inspectors", "tokio", "tracing", @@ -9886,37 +8584,42 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-evm", + "alloy-network", "alloy-primitives", + "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-sol-types", + "alloy-transport", "derive_more", "futures", "itertools 0.14.0", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics", "rand 0.9.1", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-errors 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-evm 1.5.0", - "reth-execution-types 1.5.0", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", + "reqwest", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-metrics", + "reth-primitives-traits", + "reth-revm", "reth-rpc-convert", "reth-rpc-server-types", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "reth-transaction-pool 1.5.0", - "reth-trie 1.5.0", - "revm 26.0.1", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie", + "revm", "revm-inspectors", "schnellru", "serde", @@ -9933,7 +8636,7 @@ source = "git+https://github.com/paradigmxyz/reth.git?tag=v1.4.7#dc7cb6e6670b0da dependencies = [ "alloy-rpc-types-engine", "http", - "jsonrpsee-http-client 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-http-client 0.25.1", "pin-project", "tower 0.5.2", "tower-http", @@ -9942,12 +8645,12 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-rpc-types-engine", "http", - "jsonrpsee-http-client 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-http-client 0.26.0", "pin-project", "tower 0.5.2", "tower-http", @@ -9956,65 +8659,59 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-errors 1.5.0", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", + "reth-errors", "reth-network-api", "serde", - "strum 0.27.1", + "strum", ] [[package]] name = "reth-stages" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "bincode", - "blake3", "eyre", "futures-util", "itertools 0.14.0", "num-traits", "rayon", "reqwest", - "reth-chainspec 1.5.0", - "reth-codecs 1.5.0", + "reth-codecs", "reth-config", - "reth-consensus 1.5.0", + "reth-consensus", "reth-db", "reth-db-api", "reth-era", "reth-era-downloader", "reth-era-utils", - "reth-ethereum-primitives 1.5.0", "reth-etl", - "reth-evm 1.5.0", - "reth-execution-types 1.5.0", + "reth-evm", + "reth-execution-types", "reth-exex", - "reth-fs-util 1.5.0", + "reth-fs-util", "reth-network-p2p", - "reth-primitives-traits 1.5.0", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-prune-types 1.5.0", - "reth-revm 1.5.0", + "reth-prune-types", + "reth-revm", "reth-stages-api", - "reth-static-file-types 1.5.0", - "reth-storage-errors 1.5.0", - "reth-testing-utils", - "reth-trie 1.5.0", + "reth-static-file-types", + "reth-storage-errors", + "reth-trie", "reth-trie-db", - "serde", - "tempfile", "thiserror 2.0.12", "tokio", "tracing", @@ -10022,8 +8719,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives", @@ -10031,16 +8728,16 @@ dependencies = [ "auto_impl", "futures-util", "metrics", - "reth-consensus 1.5.0", - "reth-errors 1.5.0", - "reth-metrics 1.5.0", + "reth-consensus", + "reth-errors", + "reth-metrics", "reth-network-p2p", - "reth-primitives-traits 1.5.0", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-stages-types 1.5.0", + "reth-stages-types", "reth-static-file", - "reth-static-file-types 1.5.0", + "reth-static-file-types", "reth-tokio-util", "thiserror 2.0.12", "tokio", @@ -10049,152 +8746,91 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", - "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.5.0", - "reth-trie-common 1.5.0", + "reth-codecs", + "reth-trie-common", "serde", ] -[[package]] -name = "reth-stages-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives", - "reth-trie-common 1.6.0", -] - [[package]] name = "reth-static-file" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "parking_lot", "rayon", - "reth-codecs 1.5.0", + "reth-codecs", "reth-db-api", - "reth-primitives-traits 1.5.0", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.5.0", - "reth-stages-types 1.5.0", - "reth-static-file-types 1.5.0", - "reth-storage-errors 1.5.0", + "reth-prune-types", + "reth-stages-types", + "reth-static-file-types", + "reth-storage-errors", "reth-tokio-util", "tracing", ] [[package]] name = "reth-static-file-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-primitives", - "clap", - "derive_more", - "serde", - "strum 0.27.1", -] - -[[package]] -name = "reth-static-file-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "derive_more", "serde", - "strum 0.27.1", + "strum", ] [[package]] name = "reth-storage-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", - "reth-chainspec 1.5.0", + "reth-chainspec", "reth-db-api", - "reth-db-models 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-execution-types 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-prune-types 1.5.0", - "reth-stages-types 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", - "reth-trie-db", - "revm-database 6.0.0", -] - -[[package]] -name = "reth-storage-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec 1.6.0", - "reth-db-models 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", - "reth-stages-types 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "revm-database 7.0.2", -] - -[[package]] -name = "reth-storage-errors" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more", - "reth-primitives-traits 1.5.0", - "reth-prune-types 1.5.0", - "reth-static-file-types 1.5.0", - "revm-database-interface 6.0.0", - "thiserror 2.0.12", + "reth-db-models", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "revm-database", ] [[package]] name = "reth-storage-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "derive_more", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", - "reth-static-file-types 1.6.0", - "revm-database-interface 7.0.2", + "reth-primitives-traits", + "reth-prune-types", + "reth-static-file-types", + "revm-database-interface", "thiserror 2.0.12", ] [[package]] name = "reth-tasks" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "auto_impl", "dyn-clone", @@ -10202,49 +8838,17 @@ dependencies = [ "metrics", "pin-project", "rayon", - "reth-metrics 1.5.0", - "thiserror 2.0.12", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "reth-tasks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "auto_impl", - "dyn-clone", - "futures-util", - "metrics", - "reth-metrics 1.6.0", + "reth-metrics", "thiserror 2.0.12", "tokio", "tracing", "tracing-futures", ] -[[package]] -name = "reth-testing-utils" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "rand 0.8.5", - "rand 0.9.1", - "reth-ethereum-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "secp256k1 0.30.0", -] - [[package]] name = "reth-tokio-util" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "tokio", "tokio-stream", @@ -10253,8 +8857,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "clap", "eyre", @@ -10263,13 +8867,13 @@ dependencies = [ "tracing-appender", "tracing-journald", "tracing-logfmt", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] name = "reth-transaction-pool" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10281,59 +8885,24 @@ dependencies = [ "futures-util", "metrics", "parking_lot", - "paste", + "pin-project", "rand 0.9.1", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-eth-wire-types 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-execution-types 1.5.0", - "reth-fs-util 1.5.0", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "revm-interpreter 22.0.1", + "reth-chain-state", + "reth-chainspec", + "reth-eth-wire-types", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-fs-util", + "reth-metrics", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", + "revm-interpreter", "revm-primitives", "rustc-hash 2.1.1", "schnellru", "serde", - "smallvec", - "thiserror 2.0.12", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-transaction-pool" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "aquamarine", - "auto_impl", - "bitflags 2.9.1", - "futures-util", - "metrics", - "parking_lot", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-eth-wire-types 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-fs-util 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "revm-interpreter 23.0.2", - "revm-primitives", - "rustc-hash 2.1.1", - "schnellru", + "serde_json", "smallvec", "thiserror 2.0.12", "tokio", @@ -10343,8 +8912,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10354,44 +8923,21 @@ dependencies = [ "auto_impl", "itertools 0.14.0", "metrics", - "reth-execution-errors 1.5.0", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-stages-types 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", - "reth-trie-sparse 1.5.0", - "revm-database 6.0.0", - "tracing", - "triehash", -] - -[[package]] -name = "reth-trie" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "itertools 0.14.0", - "reth-execution-errors 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-stages-types 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "reth-trie-sparse 1.6.0", - "revm-database 7.0.2", + "reth-execution-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "reth-trie-sparse", + "revm-database", "tracing", ] [[package]] name = "reth-trie-common" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -10399,55 +8945,35 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "alloy-trie", - "arbitrary", "bytes", "derive_more", - "hash-db", "itertools 0.14.0", "nybbles", - "plain_hasher", "rayon", - "reth-codecs 1.5.0", - "reth-primitives-traits 1.5.0", - "revm-database 6.0.0", + "reth-codecs", + "reth-primitives-traits", + "revm-database", "serde", "serde_with", ] -[[package]] -name = "reth-trie-common" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "derive_more", - "itertools 0.14.0", - "nybbles", - "rayon", - "reth-primitives-traits 1.6.0", - "revm-database 7.0.2", -] - [[package]] name = "reth-trie-db" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "reth-db-api", - "reth-execution-errors 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-trie 1.5.0", + "reth-execution-errors", + "reth-primitives-traits", + "reth-trie", "tracing", ] [[package]] name = "reth-trie-parallel" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -10456,14 +8982,14 @@ dependencies = [ "metrics", "rayon", "reth-db-api", - "reth-execution-errors 1.5.0", - "reth-metrics 1.5.0", + "reth-execution-errors", + "reth-metrics", "reth-provider", - "reth-storage-errors 1.5.0", - "reth-trie 1.5.0", - "reth-trie-common 1.5.0", + "reth-storage-errors", + "reth-trie", + "reth-trie-common", "reth-trie-db", - "reth-trie-sparse 1.5.0", + "reth-trie-sparse", "thiserror 2.0.12", "tokio", "tracing", @@ -10471,113 +8997,75 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie", "auto_impl", "metrics", - "reth-execution-errors 1.5.0", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-trie-common 1.5.0", + "rayon", + "reth-execution-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-trie-common", "smallvec", "tracing", ] [[package]] -name = "reth-trie-sparse" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "reth-trie-sparse-parallel" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie", - "auto_impl", - "reth-execution-errors 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie-common 1.6.0", + "metrics", + "rayon", + "reth-execution-errors", + "reth-metrics", + "reth-trie-common", + "reth-trie-sparse", "smallvec", "tracing", ] [[package]] name = "reth-zstd-compressors" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "zstd", -] - -[[package]] -name = "reth-zstd-compressors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "26.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2a493c73054a0f6635bad6e840cdbef34838e6e6186974833c901dff7dd709" -dependencies = [ - "revm-bytecode 5.0.0", - "revm-context 7.0.1", - "revm-context-interface 7.0.1", - "revm-database 6.0.0", - "revm-database-interface 6.0.0", - "revm-handler 7.0.1", - "revm-inspector 7.0.1", - "revm-interpreter 22.0.1", - "revm-precompile 23.0.0", - "revm-primitives", - "revm-state 6.0.0", -] - -[[package]] -name = "revm" -version = "27.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6bf82101a1ad8a2b637363a37aef27f88b4efc8a6e24c72bf5f64923dc5532" -dependencies = [ - "revm-bytecode 6.1.0", - "revm-context 8.0.4", - "revm-context-interface 9.0.0", - "revm-database 7.0.2", - "revm-database-interface 7.0.2", - "revm-handler 8.1.0", - "revm-inspector 8.1.0", - "revm-interpreter 24.0.0", - "revm-precompile 25.0.0", - "revm-primitives", - "revm-state 7.0.2", -] - -[[package]] -name = "revm-bytecode" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b395ee2212d44fcde20e9425916fee685b5440c3f8e01fabae8b0f07a2fd7f08" -dependencies = [ - "bitvec", - "once_cell", - "phf", +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c278b6ee9bba9e25043e3fae648fdce632d1944d3ba16f5203069b43bddd57f" +dependencies = [ + "revm-bytecode", + "revm-context", + "revm-context-interface", + "revm-database", + "revm-database-interface", + "revm-handler", + "revm-inspector", + "revm-interpreter", + "revm-precompile", "revm-primitives", - "serde", + "revm-state", ] [[package]] name = "revm-bytecode" -version = "6.1.0" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6922f7f4fbc15ca61ea459711ff75281cc875648c797088c34e4e064de8b8a7c" +checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" dependencies = [ "bitvec", - "once_cell", "phf", "revm-primitives", "serde", @@ -10585,215 +9073,106 @@ dependencies = [ [[package]] name = "revm-context" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b97b69d05651509b809eb7215a6563dc64be76a941666c40aabe597ab544d38" -dependencies = [ - "cfg-if", - "derive-where", - "revm-bytecode 5.0.0", - "revm-context-interface 7.0.1", - "revm-database-interface 6.0.0", - "revm-primitives", - "revm-state 6.0.0", - "serde", -] - -[[package]] -name = "revm-context" -version = "8.0.4" +version = "9.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd508416a35a4d8a9feaf5ccd06ac6d6661cd31ee2dc0252f9f7316455d71f9" +checksum = "0fb02c5dab3b535aa5b18277b1d21c5117a25d42af717e6ce133df0ea56663e1" dependencies = [ + "bitvec", "cfg-if", "derive-where", - "revm-bytecode 6.1.0", - "revm-context-interface 9.0.0", - "revm-database-interface 7.0.2", - "revm-primitives", - "revm-state 7.0.2", - "serde", -] - -[[package]] -name = "revm-context-interface" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f8f4f06a1c43bf8e6148509aa06a6c4d28421541944842b9b11ea1a6e53468f" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface 6.0.0", + "revm-bytecode", + "revm-context-interface", + "revm-database-interface", "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", ] [[package]] name = "revm-context-interface" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a303a93102fceccec628265efd550ce49f2817b38ac3a492c53f7d524f18a1ca" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface 7.0.2", - "revm-primitives", - "revm-state 7.0.2", -] - -[[package]] -name = "revm-context-interface" -version = "9.0.0" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc90302642d21c8f93e0876e201f3c5f7913c4fcb66fb465b0fd7b707dfe1c79" +checksum = "6b8e9311d27cf75fbf819e7ba4ca05abee1ae02e44ff6a17301c7ab41091b259" dependencies = [ "alloy-eip2930", "alloy-eip7702", "auto_impl", "either", - "revm-database-interface 7.0.2", - "revm-primitives", - "revm-state 7.0.2", - "serde", -] - -[[package]] -name = "revm-database" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763eb5867a109a85f8e47f548b9d88c9143c0e443ec056742052f059fa32f4f1" -dependencies = [ - "alloy-eips", - "revm-bytecode 5.0.0", - "revm-database-interface 6.0.0", + "revm-database-interface", "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", ] [[package]] name = "revm-database" -version = "7.0.2" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61495e01f01c343dd90e5cb41f406c7081a360e3506acf1be0fc7880bfb04eb" +checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" dependencies = [ "alloy-eips", - "revm-bytecode 6.1.0", - "revm-database-interface 7.0.2", - "revm-primitives", - "revm-state 7.0.2", - "serde", -] - -[[package]] -name = "revm-database-interface" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5ecd19a5b75b862841113b9abdd864ad4b22e633810e11e6d620e8207e361d" -dependencies = [ - "auto_impl", + "revm-bytecode", + "revm-database-interface", "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", ] [[package]] name = "revm-database-interface" -version = "7.0.2" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20628d6cd62961a05f981230746c16854f903762d01937f13244716530bf98f" +checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" dependencies = [ "auto_impl", "either", "revm-primitives", - "revm-state 7.0.2", - "serde", -] - -[[package]] -name = "revm-handler" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b61f992beaa7a5fc3f5fcf79f1093624fa1557dc42d36baa42114c2d836b59" -dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode 5.0.0", - "revm-context 7.0.1", - "revm-context-interface 7.0.1", - "revm-database-interface 6.0.0", - "revm-interpreter 22.0.1", - "revm-precompile 23.0.0", - "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", ] [[package]] name = "revm-handler" -version = "8.1.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1529c8050e663be64010e80ec92bf480315d21b1f2dbf65540028653a621b27d" +checksum = "528d2d81cc918d311b8231c35330fac5fba8b69766ddc538833e2b5593ee016e" dependencies = [ "auto_impl", "derive-where", - "revm-bytecode 6.1.0", - "revm-context 8.0.4", - "revm-context-interface 9.0.0", - "revm-database-interface 7.0.2", - "revm-interpreter 24.0.0", - "revm-precompile 25.0.0", + "revm-bytecode", + "revm-context", + "revm-context-interface", + "revm-database-interface", + "revm-interpreter", + "revm-precompile", "revm-primitives", - "revm-state 7.0.2", + "revm-state", "serde", ] [[package]] name = "revm-inspector" -version = "7.0.1" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7e4400a109a2264f4bf290888ac6d02432b6d5d070492b9dcf134b0c7d51354" +checksum = "bf443b664075999a14916b50c5ae9e35a7d71186873b8f8302943d50a672e5e0" dependencies = [ "auto_impl", "either", - "revm-context 7.0.1", - "revm-database-interface 6.0.0", - "revm-handler 7.0.1", - "revm-interpreter 22.0.1", + "revm-context", + "revm-database-interface", + "revm-handler", + "revm-interpreter", "revm-primitives", - "revm-state 6.0.0", - "serde", - "serde_json", -] - -[[package]] -name = "revm-inspector" -version = "8.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78db140e332489094ef314eaeb0bd1849d6d01172c113ab0eb6ea8ab9372926" -dependencies = [ - "auto_impl", - "either", - "revm-context 8.0.4", - "revm-database-interface 7.0.2", - "revm-handler 8.1.0", - "revm-interpreter 24.0.0", - "revm-primitives", - "revm-state 7.0.2", + "revm-state", "serde", "serde_json", ] [[package]] name = "revm-inspectors" -version = "0.25.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aabdffc06bdb434d9163e2d63b6fae843559afd300ea3fbeb113b8a0d8ec728" +checksum = "8fdb678b03faa678a7007a7c761a78efa9ca9adcd9434ef3d1ad894aec6e43d1" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -10801,7 +9180,7 @@ dependencies = [ "alloy-sol-types", "anstyle", "colorchoice", - "revm 26.0.1", + "revm", "serde", "serde_json", "thiserror 2.0.12", @@ -10809,70 +9188,21 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "22.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2481ef059708772cec0ce6bc4c84b796a40111612efb73b01adf1caed7ff9ac" -dependencies = [ - "revm-bytecode 5.0.0", - "revm-context-interface 7.0.1", - "revm-primitives", - "serde", -] - -[[package]] -name = "revm-interpreter" -version = "23.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95c4a9a1662d10b689b66b536ddc2eb1e89f5debfcabc1a2d7b8417a2fa47cd" -dependencies = [ - "revm-bytecode 6.1.0", - "revm-context-interface 8.0.1", - "revm-primitives", -] - -[[package]] -name = "revm-interpreter" -version = "24.0.0" +version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff9d7d9d71e8a33740b277b602165b6e3d25fff091ba3d7b5a8d373bf55f28a7" +checksum = "53d6406b711fac73b4f13120f359ed8e65964380dd6182bd12c4c09ad0d4641f" dependencies = [ - "revm-bytecode 6.1.0", - "revm-context-interface 9.0.0", + "revm-bytecode", + "revm-context-interface", "revm-primitives", "serde", ] [[package]] name = "revm-precompile" -version = "23.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d581e78c8f132832bd00854fb5bf37efd95a52582003da35c25cd2cbfc63849" -dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "aurora-engine-modexp", - "blst", - "c-kzg", - "cfg-if", - "k256", - "libsecp256k1", - "once_cell", - "p256", - "revm-primitives", - "ripemd", - "rug", - "secp256k1 0.31.1", - "sha2 0.10.9", -] - -[[package]] -name = "revm-precompile" -version = "25.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cee3f336b83621294b4cfe84d817e3eef6f3d0fce00951973364cc7f860424d" +checksum = "25b57d4bd9e6b5fe469da5452a8a137bc2d030a3cd47c46908efc615bbc699da" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -10881,11 +9211,11 @@ dependencies = [ "ark-serialize 0.5.0", "arrayref", "aurora-engine-modexp", + "blst", "c-kzg", "cfg-if", "k256", "libsecp256k1", - "once_cell", "p256", "revm-primitives", "ripemd", @@ -10896,35 +9226,24 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "20.1.0" +version = "20.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66145d3dc61c0d6403f27fc0d18e0363bb3b7787e67970a05c71070092896599" +checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" dependencies = [ "alloy-primitives", "num_enum", + "once_cell", "serde", ] [[package]] name = "revm-state" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6274928dd78f907103740b10800d3c0db6caeca391e75a159c168a1e5c78f8" -dependencies = [ - "bitflags 2.9.1", - "revm-bytecode 5.0.0", - "revm-primitives", - "serde", -] - -[[package]] -name = "revm-state" -version = "7.0.2" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc830a0fd2600b91e371598e3d123480cd7bb473dd6def425a51213aa6c6d57" +checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ "bitflags 2.9.1", - "revm-bytecode 6.1.0", + "revm-bytecode", "revm-primitives", "serde", ] @@ -11051,13 +9370,19 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "jsonrpsee 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee", + "jsonrpsee-core 0.26.0", + "jsonrpsee-http-client 0.26.0", + "jsonrpsee-server", + "jsonrpsee-types 0.26.0", "metrics", "metrics-derive", "metrics-exporter-prometheus 0.16.2", "metrics-util 0.19.1", "moka", "op-alloy-consensus 0.17.2", + "op-alloy-network", + "op-alloy-rpc-jsonrpsee", "op-alloy-rpc-types-engine", "opentelemetry", "opentelemetry-otlp", @@ -11067,7 +9392,11 @@ dependencies = [ "predicates", "rand 0.9.1", "reqwest", - "reth-optimism-payload-builder 1.6.0", + "reth-optimism-node", + "reth-optimism-payload-builder", + "reth-optimism-rpc", + "reth-rpc-api", + "reth-rpc-eth-api", "reth-rpc-layer 1.4.7", "rustls", "serde", @@ -11083,7 +9412,7 @@ dependencies = [ "tower-http", "tracing", "tracing-opentelemetry", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "url", "vergen", "vergen-git2", @@ -11114,7 +9443,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11256b5fe8c68f56ac6f39ef0720e592f33d2367a4782740d9c9142e889c7fb4" dependencies = [ "alloy-rlp", - "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", @@ -11540,9 +9868,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "indexmap 2.10.0", "itoa", @@ -11619,7 +9947,7 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.104", @@ -11720,27 +10048,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signal-hook" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" -dependencies = [ - "libc", - "mio", - "signal-hook", -] - [[package]] name = "signal-hook-registry" version = "1.4.5" @@ -11811,7 +10118,6 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" dependencies = [ - "arbitrary", "serde", ] @@ -11898,35 +10204,13 @@ dependencies = [ "syn 2.0.104", ] -[[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.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" dependencies = [ - "strum_macros 0.27.1", -] - -[[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.104", + "strum_macros", ] [[package]] @@ -11972,9 +10256,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ac494e7266fcdd2ad80bf4375d55d27a117ea5c866c26d0e97fe5b3caeeb75" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" dependencies = [ "paste", "proc-macro2", @@ -12048,29 +10332,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" -[[package]] -name = "tar" -version = "0.4.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "tar-no-std" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15574aa79d3c04a12f3cb53ff976d5571e53b9d8e0bdbe4021df0a06473dd1c9" -dependencies = [ - "bitflags 2.9.1", - "log", - "memchr", - "num-traits", -] - [[package]] name = "tempfile" version = "3.20.0" @@ -12240,9 +10501,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -12339,6 +10600,7 @@ dependencies = [ "log", "native-tls", "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-native-tls", @@ -12537,7 +10799,7 @@ dependencies = [ "crossbeam-channel", "thiserror 1.0.69", "time", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12579,7 +10841,7 @@ checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" dependencies = [ "libc", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12602,7 +10864,7 @@ dependencies = [ "time", "tracing", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12619,7 +10881,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-log", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "web-time", ] @@ -12644,14 +10906,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "serde", "serde_json", "sharded-slab", @@ -12682,22 +10944,12 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bee2ea1551f90040ab0e34b6fb7f2fa3bad8acc925837ac654f2c78a13e3089" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.104", ] -[[package]] -name = "triehash" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" -dependencies = [ - "hash-db", - "rlp", -] - [[package]] name = "triomphe" version = "0.1.14" @@ -12790,29 +11042,6 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" -[[package]] -name = "unicode-truncate" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" -dependencies = [ - "itertools 0.13.0", - "unicode-segmentation", - "unicode-width 0.1.14", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" - [[package]] name = "unicode-xid" version = "0.2.6" @@ -12941,17 +11170,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "visibility" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "wait-timeout" version = "0.2.1" @@ -13137,14 +11355,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.1", + "webpki-roots 1.0.2", ] [[package]] name = "webpki-roots" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8782dd5a41a24eed3a4f40b606249b3e236ca61adf1f25ea4d45c73de122b502" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -13189,7 +11407,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 616e3657..8c592c7e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,9 @@ resolver = "3" members = [ "crates/rollup-boost", "crates/websocket-proxy", - "crates/flashblocks-rpc", + # Temoporary removed from workspace as node shifted to base-node rpc + # Will be enabled back once we pull changes back +# "crates/flashblocks-rpc", ] [workspace.dependencies] @@ -25,7 +27,11 @@ url = "2.2.0" sha2 = { version = "0.10", default-features = false } # Reth deps -reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.6.0" } +reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } # Alloy libraries alloy-rpc-types-engine = "1.0.23" @@ -39,10 +45,12 @@ alloy-rpc-types = "1.0.23" alloy-genesis = "1.0.23" alloy-rpc-client = "1.0.23" alloy-provider = "1.0.23" -op-alloy-network = "0.18.7" -op-alloy-rpc-types-engine = "0.18.7" -op-alloy-consensus = "0.18.7" -op-alloy-rpc-types = "0.18.7" +op-alloy-network = "0.19.0" +op-alloy-rpc-types-engine = "0.19.0" +op-alloy-consensus = "0.19.0" +op-alloy-rpc-types = "0.19.0" +op-alloy-rpc-jsonrpsee = { version = "0.19.0", features = ["client"] } + tokio-tungstenite = { version = "0.26.2", features = ["native-tls"] } testcontainers = "0.23" testcontainers-modules = { version = "0.11", features = ["redis"] } diff --git a/Dockerfile b/Dockerfile index 8e1c6340..ce53fdd2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ # # Based on https://depot.dev/blog/rust-dockerfile-best-practices # -FROM rust:1.87.0 AS base +FROM rust:1.88.0 AS base ARG FEATURES ARG RELEASE=true diff --git a/crates/flashblocks-rpc/Cargo.toml b/crates/flashblocks-rpc/Cargo.toml index 8af0aa8b..1d5b75c6 100644 --- a/crates/flashblocks-rpc/Cargo.toml +++ b/crates/flashblocks-rpc/Cargo.toml @@ -5,6 +5,7 @@ edition = "2024" license = "MIT" [dependencies] +# TODO: temorary disabled rollup-boost.workspace = true reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.0" } diff --git a/crates/flashblocks-rpc/src/metrics.rs b/crates/flashblocks-rpc/src/metrics.rs index 3ee68001..17800c23 100644 --- a/crates/flashblocks-rpc/src/metrics.rs +++ b/crates/flashblocks-rpc/src/metrics.rs @@ -25,8 +25,8 @@ pub struct Metrics { #[metric(describe = "Count of times flashblocks get_balance is called")] pub get_balance: Counter, - #[metric(describe = "Count of times flashblocks get_block_by_number is called")] - pub get_block_by_number: Counter, + #[metric(describe = "Count of times flashblocks block_by_number is called")] + pub block_by_number: Counter, #[metric(describe = "Number of flashblocks in a block")] pub flashblocks_in_block: Histogram, diff --git a/crates/flashblocks-rpc/src/tests/mod.rs b/crates/flashblocks-rpc/src/tests/mod.rs index cc4e99ed..157d6a50 100644 --- a/crates/flashblocks-rpc/src/tests/mod.rs +++ b/crates/flashblocks-rpc/src/tests/mod.rs @@ -228,7 +228,7 @@ mod tests { } #[tokio::test] - async fn test_get_block_by_number_pending() -> eyre::Result<()> { + async fn test_block_by_number_pending() -> eyre::Result<()> { reth_tracing::init_test_tracing(); let node = setup_node().await?; let provider = node.provider().await?; diff --git a/crates/rollup-boost/Cargo.toml b/crates/rollup-boost/Cargo.toml index 5f1bf069..559e3f1c 100644 --- a/crates/rollup-boost/Cargo.toml +++ b/crates/rollup-boost/Cargo.toml @@ -19,23 +19,30 @@ url.workspace = true sha2.workspace = true reth-optimism-payload-builder.workspace = true +reth-optimism-node.workspace = true +reth-optimism-rpc = { workspace = true, features = ["client"]} +reth-rpc-api = { workspace = true, features = ["client"]} +reth-rpc-eth-api.workspace = true + op-alloy-rpc-types-engine.workspace = true +op-alloy-rpc-jsonrpsee.workspace = true +op-alloy-network.workspace = true alloy-rpc-types-engine.workspace = true alloy-rpc-types-eth.workspace = true alloy-primitives.workspace = true alloy-serde.workspace = true +alloy-eips.workspace = true tokio-tungstenite.workspace = true metrics-derive.workspace = true testcontainers.workspace = true -# TODO: update to latest release when it is published -# jsonrpsee = { version = "0.25.1", features = ["server", "http-client", "macros"] } -jsonrpsee = { git = "https://github.com/paritytech/jsonrpsee", rev = "f04afa740e55db60dce20d9839758792f035ffff", features = [ - "server", - "http-client", - "macros", -] } +jsonrpsee = { version = "0.26.0", features = ["server", "http-client", "macros"] } +jsonrpsee-core = "0.26.0" +jsonrpsee-server = "0.26.0" +jsonrpsee-http-client = "0.26.0" +jsonrpsee-types = "0.26.0" + moka = { version = "0.12.10", features = ["future"] } http = "1.1.0" dotenvy = "0.15.7" @@ -69,7 +76,6 @@ tokio-util = { version = "0.7.13" } rand = "0.9.0" time = { version = "0.3.36", features = ["macros", "formatting", "parsing"] } op-alloy-consensus = "0.17.2" -alloy-eips = { version = "1.0.9", features = ["serde"] } alloy-consensus = { version = "1.0.9", features = ["serde"] } anyhow = "1.0" assert_cmd = "2.0.10" diff --git a/crates/rollup-boost/src/cli.rs b/crates/rollup-boost/src/cli.rs index 3eb4d3d6..cd7c7017 100644 --- a/crates/rollup-boost/src/cli.rs +++ b/crates/rollup-boost/src/cli.rs @@ -13,7 +13,7 @@ use tokio::signal::unix::{SignalKind, signal as unix_signal}; use tracing::{Level, info}; use crate::{ - BlockSelectionPolicy, Flashblocks, FlashblocksArgs, ProxyLayer, RollupBoostServer, RpcClient, + BlockSelectionPolicy, Flashblocks, FlashblocksArgs, RollupBoostServer, RpcClient, client::rpc::{BuilderArgs, L2ClientArgs}, debug_api::ExecutionMode, get_version, init_metrics, @@ -188,18 +188,7 @@ impl RollupBoostArgs { // Build and start the server info!("Starting server on :{}", self.rpc_port); - let http_middleware = - tower::ServiceBuilder::new() - .layer(probe_layer) - .layer(ProxyLayer::new( - l2_client_args.l2_url, - l2_auth_jwt, - l2_client_args.l2_timeout, - builder_args.builder_url, - builder_auth_jwt, - builder_args.builder_timeout, - )); - + let http_middleware = tower::ServiceBuilder::new().layer(probe_layer); let server = Server::builder() .set_http_middleware(http_middleware) .build(format!("{}:{}", self.rpc_host, self.rpc_port).parse::()?) diff --git a/crates/rollup-boost/src/client/rpc.rs b/crates/rollup-boost/src/client/rpc.rs index 6633e643..a70e70a4 100644 --- a/crates/rollup-boost/src/client/rpc.rs +++ b/crates/rollup-boost/src/client/rpc.rs @@ -1,14 +1,20 @@ -use crate::EngineApiExt; +use crate::AuthApiExt; use crate::client::auth::AuthLayer; use crate::payload::{NewPayload, OpExecutionPayloadEnvelope, PayloadSource, PayloadVersion}; -use crate::server::EngineApiClient; use crate::version::{CARGO_PKG_VERSION, VERGEN_GIT_SHA}; -use alloy_primitives::{B256, Bytes}; +use alloy_eips::BlockId; +use alloy_primitives::{Address, B256, BlockHash, Bytes, U64, U128, U256}; use alloy_rpc_types_engine::{ + ClientVersionV1, ExecutionPayloadBodiesV1, ExecutionPayloadEnvelopeV2, ExecutionPayloadInputV2, ExecutionPayloadV3, ForkchoiceState, ForkchoiceUpdated, JwtError, JwtSecret, PayloadId, PayloadStatus, }; -use alloy_rpc_types_eth::{Block, BlockNumberOrTag}; +use alloy_rpc_types_eth::erc4337::TransactionConditional; +use alloy_rpc_types_eth::state::StateOverride; +use alloy_rpc_types_eth::{ + BlockNumberOrTag, BlockOverrides, EIP1186AccountProofResponse, Filter, Log, SyncStatus, +}; +use alloy_serde::JsonStorageKey; use clap::{Parser, arg}; use http::{HeaderMap, Uri}; use jsonrpsee::core::async_trait; @@ -16,12 +22,18 @@ use jsonrpsee::core::middleware::layer::RpcLogger; use jsonrpsee::http_client::transport::HttpBackend; use jsonrpsee::http_client::{HttpClient, HttpClientBuilder, RpcService}; use jsonrpsee::types::ErrorObjectOwned; +use op_alloy_network::Optimism; use op_alloy_rpc_types_engine::{ OpExecutionPayloadEnvelopeV3, OpExecutionPayloadEnvelopeV4, OpExecutionPayloadV4, - OpPayloadAttributes, + OpPayloadAttributes, ProtocolVersion, SuperchainSignal, }; use opentelemetry::trace::SpanKind; use paste::paste; +use reth_optimism_node::OpEngineTypes; +use reth_optimism_rpc::OpEngineApiClient; +use reth_rpc_api::eth::L2EthApiExtClient; +use reth_rpc_api::{EngineEthApiClient, MinerApiClient}; +use reth_rpc_eth_api::{RpcBlock, RpcReceipt, RpcTxReq}; use std::path::PathBuf; use std::time::Duration; use thiserror::Error; @@ -104,11 +116,11 @@ impl From for ErrorObjectOwned { #[derive(Clone)] pub struct RpcClient { /// Handles requests to the authenticated Engine API (requires JWT authentication) - auth_client: RpcClientService, + pub auth_client: RpcClientService, /// Uri of the RPC server for authenticated Engine API calls - auth_rpc: Uri, + pub auth_rpc: Uri, /// The source of the payload - payload_source: PayloadSource, + pub payload_source: PayloadSource, } impl RpcClient { @@ -122,7 +134,6 @@ impl RpcClient { let version = format!("{CARGO_PKG_VERSION}-{VERGEN_GIT_SHA}"); let mut headers = HeaderMap::new(); headers.insert("User-Agent", version.parse().unwrap()); - let auth_layer = AuthLayer::new(auth_rpc_jwt_secret); let auth_client = HttpClientBuilder::new() .set_http_middleware(tower::ServiceBuilder::new().layer(auth_layer)) @@ -155,11 +166,13 @@ impl RpcClient { payload_attributes: Option, ) -> ClientResult { info!("Sending fork_choice_updated_v3 to {}", self.payload_source); - let res = self - .auth_client - .fork_choice_updated_v3(fork_choice_state, payload_attributes.clone()) - .await - .set_code()?; + let res = >::fork_choice_updated_v3( + &self.auth_client, + fork_choice_state, + payload_attributes, + ) + .await + .set_code()?; if let Some(payload_id) = res.payload_id { tracing::Span::current().record("payload_id", payload_id.to_string()); @@ -195,11 +208,14 @@ impl RpcClient { ) -> ClientResult { tracing::Span::current().record("payload_id", payload_id.to_string()); info!("Sending get_payload_v3 to {}", self.payload_source); - Ok(self - .auth_client - .get_payload_v3(payload_id) + Ok( + >::get_payload_v3( + &self.auth_client, + payload_id, + ) .await - .set_code()?) + .set_code()?, + ) } #[instrument( @@ -221,11 +237,14 @@ impl RpcClient { ) -> ClientResult { info!("Sending new_payload_v3 to {}", self.payload_source); - let res = self - .auth_client - .new_payload_v3(payload, versioned_hashes, parent_beacon_block_root) - .await - .set_code()?; + let res = >::new_payload_v3( + &self.auth_client, + payload, + versioned_hashes, + parent_beacon_block_root, + ) + .await + .set_code()?; if res.is_invalid() { return Err(RpcClientError::InvalidPayload(res.status.to_string()).set_code()); @@ -249,11 +268,14 @@ impl RpcClient { payload_id: PayloadId, ) -> ClientResult { info!("Sending get_payload_v4 to {}", self.payload_source); - Ok(self - .auth_client - .get_payload_v4(payload_id) + Ok( + >::get_payload_v4( + &self.auth_client, + payload_id, + ) .await - .set_code()?) + .set_code()?, + ) } pub async fn get_payload( @@ -291,16 +313,15 @@ impl RpcClient { ) -> ClientResult { info!("Sending new_payload_v4 to {}", self.payload_source); - let res = self - .auth_client - .new_payload_v4( - payload, - versioned_hashes, - parent_beacon_block_root, - execution_requests, - ) - .await - .set_code()?; + let res = >::new_payload_v4( + &self.auth_client, + payload, + versioned_hashes, + parent_beacon_block_root, + execution_requests.into(), + ) + .await + .set_code()?; if res.is_invalid() { return Err(RpcClientError::InvalidPayload(res.status.to_string()).set_code()); @@ -331,21 +352,343 @@ impl RpcClient { } } - pub async fn get_block_by_number( + pub async fn block_number(&self) -> ClientResult { + Ok(, + RpcBlock, + RpcReceipt, + >>::block_number(&self.auth_client) + .await + .set_code()?) + } + + pub async fn chain_id(&self) -> ClientResult> { + Ok(, + RpcBlock, + RpcReceipt, + >>::chain_id(&self.auth_client) + .await + .set_code()?) + } + + pub async fn block_by_number( &self, number: BlockNumberOrTag, full: bool, - ) -> ClientResult { + ) -> ClientResult>> { + Ok(, + RpcBlock, + RpcReceipt, + >>::block_by_number(&self.auth_client, number, full) + .await + .set_code()?) + } + + pub async fn send_raw_transaction(&self, bytes: Bytes) -> ClientResult { + Ok(, + RpcBlock, + RpcReceipt, + >>::send_raw_transaction(&self.auth_client, bytes) + .await + .set_code()?) + } + + pub async fn send_raw_transaction_conditional( + &self, + bytes: Bytes, + condition: TransactionConditional, + ) -> ClientResult { Ok(self .auth_client - .get_block_by_number(number, full) + .send_raw_transaction_conditional(bytes, condition) .await .set_code()?) } + + pub async fn syncing(&self) -> ClientResult { + Ok(, + RpcBlock, + RpcReceipt, + >>::syncing(&self.auth_client) + .await + .set_code()?) + } + + pub async fn set_extra(&self, record: Bytes) -> ClientResult { + Ok( + ::set_extra(&self.auth_client, record) + .await + .set_code()?, + ) + } + + pub async fn set_gas_price(&self, gas_price: U128) -> ClientResult { + Ok( + ::set_gas_price(&self.auth_client, gas_price) + .await + .set_code()?, + ) + } + + pub async fn set_gas_limit(&self, gas_limit: U128) -> ClientResult { + Ok( + ::set_gas_limit(&self.auth_client, gas_limit) + .await + .set_code()?, + ) + } + + pub async fn set_max_da_size(&self, max_da_size: U64, max_da_gas: U64) -> ClientResult { + Ok( + ::set_max_da_size( + &self.auth_client, + max_da_size, + max_da_gas, + ) + .await + .set_code()?, + ) + } + + pub async fn get_payload_v2( + &self, + payload_id: PayloadId, + ) -> ClientResult { + Ok( + >::get_payload_v2( + &self.auth_client, + payload_id, + ) + .await + .set_code()?, + ) + } + + pub async fn fork_choice_updated_v1( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> ClientResult { + Ok( + >::fork_choice_updated_v1( + &self.auth_client, + fork_choice_state, + payload_attributes, + ) + .await + .set_code()?, + ) + } + pub async fn fork_choice_updated_v2( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> ClientResult { + Ok( + >::fork_choice_updated_v2( + &self.auth_client, + fork_choice_state, + payload_attributes, + ) + .await + .set_code()?, + ) + } + + pub async fn new_payload_v2( + &self, + payload: ExecutionPayloadInputV2, + ) -> ClientResult { + Ok( + >::new_payload_v2( + &self.auth_client, + payload, + ) + .await + .set_code()?, + ) + } + + pub async fn get_payload_bodies_by_hash_v1( + &self, + block_hashes: Vec, + ) -> ClientResult { + Ok( + >::get_payload_bodies_by_hash_v1( + &self.auth_client, + block_hashes, + ) + .await + .set_code()?, + ) + } + + pub async fn get_payload_bodies_by_range_v1( + &self, + start: U64, + count: U64, + ) -> ClientResult { + Ok( + >::get_payload_bodies_by_range_v1( + &self.auth_client, + start, + count, + ) + .await + .set_code()?, + ) + } + + pub async fn signal_superchain_v1( + &self, + signal: SuperchainSignal, + ) -> ClientResult { + Ok( + >::signal_superchain_v1( + &self.auth_client, + signal, + ) + .await + .set_code()?, + ) + } + + pub async fn get_client_version_v1( + &self, + client_version: ClientVersionV1, + ) -> ClientResult> { + Ok( + >::get_client_version_v1( + &self.auth_client, + client_version, + ) + .await + .set_code()?, + ) + } + + pub async fn exchange_capabilities( + &self, + capabilities: Vec, + ) -> ClientResult> { + Ok( + >::exchange_capabilities( + &self.auth_client, + capabilities, + ) + .await + .set_code()?, + ) + } + + pub async fn call( + &self, + request: RpcTxReq, + block_id: Option, + state_overrides: Option, + block_overrides: Option>, + ) -> ClientResult { + Ok(, + RpcBlock, + RpcReceipt, + >>::call( + &self.auth_client, + request, + block_id, + state_overrides, + block_overrides, + ) + .await + .set_code()?) + } + + pub async fn get_code( + &self, + address: Address, + block_id: Option, + ) -> ClientResult { + Ok(, + RpcBlock, + RpcReceipt, + >>::get_code(&self.auth_client, address, block_id) + .await + .set_code()?) + } + + pub async fn block_by_hash( + &self, + hash: B256, + full: bool, + ) -> ClientResult>> { + Ok(, + RpcBlock, + RpcReceipt, + >>::block_by_hash(&self.auth_client, hash, full) + .await + .set_code()?) + } + + pub async fn block_receipts( + &self, + block_id: BlockId, + ) -> ClientResult>>> { + Ok(, + RpcBlock, + RpcReceipt, + >>::block_receipts(&self.auth_client, block_id) + .await + .set_code()?) + } + + pub async fn transaction_receipt( + &self, + hash: B256, + ) -> ClientResult>> { + Ok(, + RpcBlock, + RpcReceipt, + >>::transaction_receipt(&self.auth_client, hash) + .await + .set_code()?) + } + + pub async fn logs(&self, filter: Filter) -> ClientResult> { + Ok(, + RpcBlock, + RpcReceipt, + >>::logs(&self.auth_client, filter) + .await + .set_code()?) + } + + pub async fn get_proof( + &self, + address: Address, + keys: Vec, + block_number: Option, + ) -> ClientResult { + Ok(, + RpcBlock, + RpcReceipt, + >>::get_proof(&self.auth_client, address, keys, block_number) + .await + .set_code()?) + } } #[async_trait] -impl EngineApiExt for RpcClient { +impl AuthApiExt for RpcClient { async fn fork_choice_updated_v3( &self, fork_choice_state: ForkchoiceState, @@ -367,12 +710,165 @@ impl EngineApiExt for RpcClient { self.get_payload(payload_id, version).await } - async fn get_block_by_number( + async fn send_raw_transaction(&self, bytes: Bytes) -> ClientResult { + self.send_raw_transaction(bytes).await + } + + async fn send_raw_transaction_conditional( + &self, + bytes: Bytes, + condition: TransactionConditional, + ) -> ClientResult { + self.send_raw_transaction_conditional(bytes, condition) + .await + } + + async fn syncing(&self) -> ClientResult { + self.syncing().await + } + + async fn chain_id(&self) -> ClientResult> { + self.chain_id().await + } + + async fn block_number(&self) -> ClientResult { + self.block_number().await + } + + async fn block_by_number( &self, number: BlockNumberOrTag, full: bool, - ) -> ClientResult { - self.get_block_by_number(number, full).await + ) -> ClientResult>> { + self.block_by_number(number, full).await + } + + async fn set_extra(&self, record: Bytes) -> ClientResult { + self.set_extra(record).await + } + + async fn set_gas_price(&self, gas_price: U128) -> ClientResult { + self.set_gas_price(gas_price).await + } + + async fn set_gas_limit(&self, gas_limit: U128) -> ClientResult { + self.set_gas_limit(gas_limit).await + } + + async fn set_max_da_size(&self, max_da_size: U64, max_da_gas: U64) -> ClientResult { + self.set_max_da_size(max_da_size, max_da_gas).await + } + + async fn get_payload_v2( + &self, + payload_id: PayloadId, + ) -> ClientResult { + self.get_payload_v2(payload_id).await + } + + async fn fork_choice_updated_v1( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> ClientResult { + self.fork_choice_updated_v1(fork_choice_state, payload_attributes) + .await + } + + async fn fork_choice_updated_v2( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> ClientResult { + self.fork_choice_updated_v2(fork_choice_state, payload_attributes) + .await + } + + async fn new_payload_v2( + &self, + payload: ExecutionPayloadInputV2, + ) -> ClientResult { + self.new_payload_v2(payload).await + } + + async fn get_payload_bodies_by_hash_v1( + &self, + block_hashes: Vec, + ) -> ClientResult { + self.get_payload_bodies_by_hash_v1(block_hashes).await + } + + async fn get_payload_bodies_by_range_v1( + &self, + start: U64, + count: U64, + ) -> ClientResult { + self.get_payload_bodies_by_range_v1(start, count).await + } + + async fn signal_superchain_v1( + &self, + signal: SuperchainSignal, + ) -> ClientResult { + self.signal_superchain_v1(signal).await + } + + async fn get_client_version_v1( + &self, + client_version: ClientVersionV1, + ) -> ClientResult> { + self.get_client_version_v1(client_version).await + } + + async fn exchange_capabilities(&self, capabilities: Vec) -> ClientResult> { + self.exchange_capabilities(capabilities).await + } + + async fn call( + &self, + request: RpcTxReq, + block_id: Option, + state_overrides: Option, + block_overrides: Option>, + ) -> ClientResult { + self.call(request, block_id, state_overrides, block_overrides) + .await + } + + async fn get_code(&self, address: Address, block_id: Option) -> ClientResult { + self.get_code(address, block_id).await + } + + async fn block_by_hash( + &self, + hash: B256, + full: bool, + ) -> ClientResult>> { + self.block_by_hash(hash, full).await + } + + async fn block_receipts( + &self, + block_id: BlockId, + ) -> ClientResult>>> { + self.block_receipts(block_id).await + } + + async fn transaction_receipt(&self, hash: B256) -> ClientResult>> { + self.transaction_receipt(hash).await + } + + async fn logs(&self, filter: Filter) -> ClientResult> { + self.logs(filter).await + } + + async fn get_proof( + &self, + address: Address, + keys: Vec, + block_number: Option, + ) -> ClientResult { + self.get_proof(address, keys, block_number).await } } diff --git a/crates/rollup-boost/src/engine_api.rs b/crates/rollup-boost/src/engine_api.rs index 29d6d90e..cb2949e7 100644 --- a/crates/rollup-boost/src/engine_api.rs +++ b/crates/rollup-boost/src/engine_api.rs @@ -1,12 +1,24 @@ -use alloy_rpc_types_engine::{ForkchoiceState, ForkchoiceUpdated, PayloadId, PayloadStatus}; -use alloy_rpc_types_eth::{Block, BlockNumberOrTag}; +use alloy_eips::BlockId; +use alloy_primitives::{Address, B256, BlockHash, Bytes, U64, U128, U256}; +use alloy_rpc_types_engine::{ + ClientVersionV1, ExecutionPayloadBodiesV1, ExecutionPayloadEnvelopeV2, ExecutionPayloadInputV2, + ForkchoiceState, ForkchoiceUpdated, PayloadId, PayloadStatus, +}; +use alloy_rpc_types_eth::state::StateOverride; +use alloy_rpc_types_eth::{ + BlockNumberOrTag, BlockOverrides, EIP1186AccountProofResponse, Filter, Log, SyncStatus, + erc4337::TransactionConditional, +}; +use alloy_serde::JsonStorageKey; use jsonrpsee::core::async_trait; -use op_alloy_rpc_types_engine::OpPayloadAttributes; +use op_alloy_network::Optimism; +use op_alloy_rpc_types_engine::{OpPayloadAttributes, ProtocolVersion, SuperchainSignal}; +use reth_rpc_eth_api::{RpcBlock, RpcReceipt, RpcTxReq}; use crate::{ClientResult, NewPayload, OpExecutionPayloadEnvelope, PayloadVersion}; #[async_trait] -pub trait EngineApiExt: Send + Sync + 'static { +pub trait AuthApiExt: Send + Sync + 'static { async fn fork_choice_updated_v3( &self, fork_choice_state: ForkchoiceState, @@ -21,9 +33,123 @@ pub trait EngineApiExt: Send + Sync + 'static { version: PayloadVersion, ) -> ClientResult; - async fn get_block_by_number( + /// Proxy to eth_sendRawTransaction, sent to builder and l2 + async fn send_raw_transaction(&self, bytes: Bytes) -> ClientResult; + + /// Proxy to eth_sendRawTransactionConditional, sent to builder and l2 + async fn send_raw_transaction_conditional( + &self, + bytes: Bytes, + condition: TransactionConditional, + ) -> ClientResult; + + /// Proxy to eth_syncing, sent to l2 + async fn syncing(&self) -> ClientResult; + + /// Proxy to eth_chainId, sent to l2 + async fn chain_id(&self) -> ClientResult>; + + /// Proxy to eth_blockNumber, sent to l2 + async fn block_number(&self) -> ClientResult; + + /// Proxy to eth_getBlockByNumber, sent to l2 + async fn block_by_number( &self, number: BlockNumberOrTag, full: bool, - ) -> ClientResult; + ) -> ClientResult>>; + + /// Proxy to miner_setExtra, sent to builder and l2 + async fn set_extra(&self, record: Bytes) -> ClientResult; + + /// Proxy to miner_setGasPrice, sent to builder and l2 + async fn set_gas_price(&self, gas_price: U128) -> ClientResult; + + /// Proxy to miner_setGasLimit, sent to builder and l2 + async fn set_gas_limit(&self, gas_limit: U128) -> ClientResult; + + /// Proxy to miner_setMaxDASize, sent to builder and l2 + async fn set_max_da_size(&self, max_tx_size: U64, max_block_size: U64) -> ClientResult; + + /// Proxy to engine_getPayloadV2, sent to l2 + async fn get_payload_v2( + &self, + payload_id: PayloadId, + ) -> ClientResult; + + /// Proxy to engine_forkChoiceUpdatedV1, sent to l2 + async fn fork_choice_updated_v1( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> ClientResult; + + /// Proxy to engine_forkChoiceUpdatedV2, sent to l2 + async fn fork_choice_updated_v2( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> ClientResult; + + /// Proxy to engine_newPayloadV2, sent to l2 + async fn new_payload_v2(&self, payload: ExecutionPayloadInputV2) + -> ClientResult; + + /// Proxy to engine_getPayloadBodiesByHashV1, sent to l2 + async fn get_payload_bodies_by_hash_v1( + &self, + block_hashes: Vec, + ) -> ClientResult; + + /// Proxy to engine_getPayloadBodiesByRangeV1, sent to l2 + async fn get_payload_bodies_by_range_v1( + &self, + start: U64, + count: U64, + ) -> ClientResult; + + /// Proxy to engine_signalSuperchainV1, sent to l2 + async fn signal_superchain_v1(&self, signal: SuperchainSignal) + -> ClientResult; + + /// Proxy to engine_getClientVersionV1, sent to l2 + async fn get_client_version_v1( + &self, + client_version: ClientVersionV1, + ) -> ClientResult>; + + /// Proxy to engine_exchangeCapabilities, sent to l2 + async fn exchange_capabilities(&self, capabilities: Vec) -> ClientResult>; + + async fn call( + &self, + request: RpcTxReq, + block_id: Option, + state_overrides: Option, + block_overrides: Option>, + ) -> ClientResult; + + async fn get_code(&self, address: Address, block_id: Option) -> ClientResult; + + async fn block_by_hash( + &self, + hash: B256, + full: bool, + ) -> ClientResult>>; + + async fn block_receipts( + &self, + block_id: BlockId, + ) -> ClientResult>>>; + + async fn transaction_receipt(&self, hash: B256) -> ClientResult>>; + + async fn logs(&self, filter: Filter) -> ClientResult>; + + async fn get_proof( + &self, + address: Address, + keys: Vec, + block_number: Option, + ) -> ClientResult; } diff --git a/crates/rollup-boost/src/flashblocks/service.rs b/crates/rollup-boost/src/flashblocks/service.rs index 4d693c95..57842d81 100644 --- a/crates/rollup-boost/src/flashblocks/service.rs +++ b/crates/rollup-boost/src/flashblocks/service.rs @@ -4,21 +4,30 @@ use super::primitives::{ }; use crate::flashblocks::metrics::FlashblocksServiceMetrics; use crate::{ - ClientResult, EngineApiExt, NewPayload, OpExecutionPayloadEnvelope, PayloadVersion, RpcClient, + AuthApiExt, ClientResult, NewPayload, OpExecutionPayloadEnvelope, PayloadVersion, RpcClient, }; -use alloy_primitives::U256; +use alloy_eips::BlockId; +use alloy_primitives::{Address, B256, BlockHash, Bytes, U64, U128, U256}; use alloy_rpc_types_engine::{ - BlobsBundleV1, ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3, + BlobsBundleV1, ClientVersionV1, ExecutionPayloadBodiesV1, ExecutionPayloadEnvelopeV2, + ExecutionPayloadInputV2, ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3, }; use alloy_rpc_types_engine::{ForkchoiceState, ForkchoiceUpdated, PayloadId, PayloadStatus}; -use alloy_rpc_types_eth::{Block, BlockNumberOrTag}; +use alloy_rpc_types_eth::erc4337::TransactionConditional; +use alloy_rpc_types_eth::state::StateOverride; +use alloy_rpc_types_eth::{ + BlockNumberOrTag, BlockOverrides, EIP1186AccountProofResponse, Filter, Log, SyncStatus, +}; +use alloy_serde::JsonStorageKey; use core::net::SocketAddr; use jsonrpsee::core::async_trait; +use op_alloy_network::Optimism; use op_alloy_rpc_types_engine::{ OpExecutionPayloadEnvelopeV3, OpExecutionPayloadEnvelopeV4, OpExecutionPayloadV4, - OpPayloadAttributes, + OpPayloadAttributes, ProtocolVersion, SuperchainSignal, }; use reth_optimism_payload_builder::payload_id_optimism; +use reth_rpc_eth_api::{RpcBlock, RpcReceipt, RpcTxReq}; use serde::{Deserialize, Serialize}; use std::io; use std::sync::Arc; @@ -317,7 +326,7 @@ impl FlashblocksService { } #[async_trait] -impl EngineApiExt for FlashblocksService { +impl AuthApiExt for FlashblocksService { async fn fork_choice_updated_v3( &self, fork_choice_state: ForkchoiceState, @@ -387,12 +396,175 @@ impl EngineApiExt for FlashblocksService { } } - async fn get_block_by_number( + async fn block_number(&self) -> ClientResult { + self.client.block_number().await + } + + async fn chain_id(&self) -> ClientResult> { + self.client.chain_id().await + } + + async fn block_by_number( &self, number: BlockNumberOrTag, full: bool, - ) -> ClientResult { - self.client.get_block_by_number(number, full).await + ) -> ClientResult>> { + self.client.block_by_number(number, full).await + } + + async fn send_raw_transaction(&self, bytes: Bytes) -> ClientResult { + self.client.send_raw_transaction(bytes).await + } + + async fn send_raw_transaction_conditional( + &self, + bytes: Bytes, + condition: TransactionConditional, + ) -> ClientResult { + self.client + .send_raw_transaction_conditional(bytes, condition) + .await + } + + async fn syncing(&self) -> ClientResult { + self.client.syncing().await + } + + async fn set_extra(&self, record: Bytes) -> ClientResult { + self.client.set_extra(record).await + } + + async fn set_gas_price(&self, gas_price: U128) -> ClientResult { + self.client.set_gas_price(gas_price).await + } + + async fn set_gas_limit(&self, gas_limit: U128) -> ClientResult { + self.client.set_gas_limit(gas_limit).await + } + + async fn set_max_da_size(&self, max_tx_size: U64, max_block_size: U64) -> ClientResult { + self.client + .set_max_da_size(max_tx_size, max_block_size) + .await + } + + async fn get_payload_v2( + &self, + payload_id: PayloadId, + ) -> ClientResult { + self.client.get_payload_v2(payload_id).await + } + + async fn fork_choice_updated_v1( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> ClientResult { + self.client + .fork_choice_updated_v1(fork_choice_state, payload_attributes) + .await + } + + async fn fork_choice_updated_v2( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> ClientResult { + self.client + .fork_choice_updated_v2(fork_choice_state, payload_attributes) + .await + } + + async fn new_payload_v2( + &self, + payload: ExecutionPayloadInputV2, + ) -> ClientResult { + self.client.new_payload_v2(payload).await + } + + async fn get_payload_bodies_by_hash_v1( + &self, + block_hashes: Vec, + ) -> ClientResult { + self.client + .get_payload_bodies_by_hash_v1(block_hashes) + .await + } + + async fn get_payload_bodies_by_range_v1( + &self, + start: U64, + count: U64, + ) -> ClientResult { + self.client + .get_payload_bodies_by_range_v1(start, count) + .await + } + + async fn signal_superchain_v1( + &self, + signal: SuperchainSignal, + ) -> ClientResult { + self.client.signal_superchain_v1(signal).await + } + + async fn get_client_version_v1( + &self, + client_version: ClientVersionV1, + ) -> ClientResult> { + self.client.get_client_version_v1(client_version).await + } + + async fn exchange_capabilities(&self, capabilities: Vec) -> ClientResult> { + self.client.exchange_capabilities(capabilities).await + } + + async fn call( + &self, + request: RpcTxReq, + block_id: Option, + state_overrides: Option, + block_overrides: Option>, + ) -> ClientResult { + self.client + .call(request, block_id, state_overrides, block_overrides) + .await + } + + async fn get_code(&self, address: Address, block_id: Option) -> ClientResult { + self.client.get_code(address, block_id).await + } + + async fn block_by_hash( + &self, + hash: B256, + full: bool, + ) -> ClientResult>> { + self.client.block_by_hash(hash, full).await + } + + async fn block_receipts( + &self, + block_id: BlockId, + ) -> ClientResult>>> { + self.client.block_receipts(block_id).await + } + + async fn transaction_receipt(&self, hash: B256) -> ClientResult>> { + self.client.transaction_receipt(hash).await + } + + async fn logs(&self, filter: Filter) -> ClientResult> { + self.client.logs(filter).await + } + + async fn get_proof( + &self, + address: Address, + keys: Vec, + block_number: Option, + ) -> ClientResult { + self.client.get_proof(address, keys, block_number).await } } diff --git a/crates/rollup-boost/src/health.rs b/crates/rollup-boost/src/health.rs index fed2e27c..d6c3cb65 100644 --- a/crates/rollup-boost/src/health.rs +++ b/crates/rollup-boost/src/health.rs @@ -11,12 +11,12 @@ use tokio::{ }; use tracing::warn; -use crate::{EngineApiExt, ExecutionMode, Health, Probes}; +use crate::{AuthApiExt, ExecutionMode, Health, Probes}; pub struct HealthHandle { pub probes: Arc, pub execution_mode: Arc>, - pub builder_client: Arc, + pub builder_client: Arc, pub health_check_interval: Duration, pub max_unsafe_interval: u64, } @@ -26,7 +26,7 @@ impl HealthHandle { pub fn new( probes: Arc, execution_mode: Arc>, - builder_client: Arc, + builder_client: Arc, health_check_interval: Duration, max_unsafe_interval: u64, ) -> Self { @@ -48,10 +48,18 @@ impl HealthHandle { loop { let latest_unsafe = match self .builder_client - .get_block_by_number(BlockNumberOrTag::Latest, false) + .block_by_number(BlockNumberOrTag::Latest, false) .await { - Ok(block) => block, + Ok(Some(block)) => block, + Ok(None) => { + warn!(target: "rollup_boost::health", "Failed to get unsafe block from builder client: Latest block not found"); + if self.execution_mode.lock().is_enabled() { + self.probes.set_health(Health::PartialContent); + } + sleep_until(Instant::now() + self.health_check_interval).await; + continue; + } Err(e) => { warn!(target: "rollup_boost::health", "Failed to get unsafe block from builder client: {} - updating health status", e); if self.execution_mode.lock().is_enabled() { diff --git a/crates/rollup-boost/src/lib.rs b/crates/rollup-boost/src/lib.rs index 5d79271e..d5d61407 100644 --- a/crates/rollup-boost/src/lib.rs +++ b/crates/rollup-boost/src/lib.rs @@ -12,9 +12,6 @@ pub use debug_api::*; mod metrics; pub use metrics::*; -mod proxy; -pub use proxy::*; - mod server; pub use server::*; diff --git a/crates/rollup-boost/src/proxy.rs b/crates/rollup-boost/src/proxy.rs deleted file mode 100644 index 4853907f..00000000 --- a/crates/rollup-boost/src/proxy.rs +++ /dev/null @@ -1,760 +0,0 @@ -use crate::client::http::HttpClient; -use crate::payload::PayloadSource; -use crate::{Request, Response, from_buffered_request, into_buffered_request}; -use alloy_rpc_types_engine::JwtSecret; -use http::Uri; -use http_body_util::BodyExt as _; -use jsonrpsee::core::BoxError; -use jsonrpsee::server::HttpBody; -use std::task::{Context, Poll}; -use std::{future::Future, pin::Pin}; -use tower::{Layer, Service}; -use tracing::info; - -const ENGINE_METHOD: &str = "engine_"; - -/// Requests that should be forwarded to both the builder and default execution client -const FORWARD_REQUESTS: [&str; 6] = [ - "eth_sendRawTransaction", - "eth_sendRawTransactionConditional", - "miner_setExtra", - "miner_setGasPrice", - "miner_setGasLimit", - "miner_setMaxDASize", -]; - -#[derive(Debug, Clone)] -pub struct ProxyLayer { - l2_auth_rpc: Uri, - l2_auth_secret: JwtSecret, - l2_timeout: u64, - builder_auth_rpc: Uri, - builder_auth_secret: JwtSecret, - builder_timeout: u64, -} - -impl ProxyLayer { - pub fn new( - l2_auth_rpc: Uri, - l2_auth_secret: JwtSecret, - l2_timeout: u64, - builder_auth_rpc: Uri, - builder_auth_secret: JwtSecret, - builder_timeout: u64, - ) -> Self { - ProxyLayer { - l2_auth_rpc, - l2_auth_secret, - l2_timeout, - builder_auth_rpc, - builder_auth_secret, - builder_timeout, - } - } -} - -impl Layer for ProxyLayer { - type Service = ProxyService; - - fn layer(&self, inner: S) -> Self::Service { - let l2_client = HttpClient::new( - self.l2_auth_rpc.clone(), - self.l2_auth_secret, - PayloadSource::L2, - self.l2_timeout, - ); - - let builder_client = HttpClient::new( - self.builder_auth_rpc.clone(), - self.builder_auth_secret, - PayloadSource::Builder, - self.builder_timeout, - ); - - ProxyService { - inner, - l2_client, - builder_client, - } - } -} - -#[derive(Clone)] -pub struct ProxyService { - inner: S, - l2_client: HttpClient, - builder_client: HttpClient, -} - -// Consider using `RpcServiceT` when https://github.com/paritytech/jsonrpsee/pull/1521 is merged -impl Service for ProxyService -where - S: Service + Send + Sync + Clone + 'static, - S::Response: 'static, - S::Error: Into + 'static, - S::Future: Send + 'static, -{ - type Response = Response; - type Error = BoxError; - type Future = - Pin> + Send + 'static>>; - - fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { - self.inner.poll_ready(cx).map_err(Into::into) - } - - fn call(&mut self, req: Request) -> Self::Future { - #[derive(serde::Deserialize, Debug)] - struct RpcRequest<'a> { - #[serde(borrow)] - method: &'a str, - } - - // See https://github.com/tower-rs/tower/blob/abb375d08cf0ba34c1fe76f66f1aba3dc4341013/tower-service/src/lib.rs#L276 - // for an explanation of this pattern - let mut service = self.clone(); - service.inner = std::mem::replace(&mut self.inner, service.inner); - - let fut = async move { - let buffered = into_buffered_request(req).await?; - let body_bytes = buffered.clone().collect().await?.to_bytes(); - - // Deserialize the bytes to find the method - let method = serde_json::from_slice::(&body_bytes)? - .method - .to_string(); - - // If the request is an Engine API method, call the inner RollupBoostServer - if method.starts_with(ENGINE_METHOD) { - info!(target: "proxy::call", message = "proxying request to rollup-boost server", ?method); - return service - .inner - .call(from_buffered_request(buffered)) - .await - .map_err(|e| e.into()); - } - - if FORWARD_REQUESTS.contains(&method.as_str()) { - // If the request should be forwarded, send to both the - // default execution client and the builder - let method_clone = method.clone(); - let buffered_clone = buffered.clone(); - let mut builder_client = service.builder_client.clone(); - - // Fire and forget the builder request - tokio::spawn(async move { - let _ = builder_client.forward(buffered_clone, method_clone).await; - }); - } - - // Return the response from the L2 client - service - .l2_client - .forward(buffered, method) - .await - .map(|res| res.map(HttpBody::new)) - }; - - Box::pin(fut) - } -} - -#[cfg(test)] -mod tests { - use crate::probe::ProbeLayer; - - use super::*; - use alloy_primitives::{B256, Bytes, U64, U128, hex}; - use alloy_rpc_types_engine::JwtSecret; - use alloy_rpc_types_eth::erc4337::TransactionConditional; - use http::StatusCode; - use http_body_util::{BodyExt, Full}; - use hyper::service::service_fn; - use hyper_util::client::legacy::Client; - use hyper_util::client::legacy::connect::HttpConnector; - use hyper_util::rt::{TokioExecutor, TokioIo}; - use jsonrpsee::server::Server; - use jsonrpsee::types::{ErrorCode, ErrorObject}; - use jsonrpsee::{ - RpcModule, - core::{ClientError, client::ClientT}, - http_client::HttpClient, - rpc_params, - server::{ServerBuilder, ServerHandle}, - }; - use serde_json::json; - use std::{ - net::{IpAddr, SocketAddr}, - str::FromStr, - sync::Arc, - }; - use tokio::net::TcpListener; - use tokio::task::JoinHandle; - - const PORT: u32 = 8552; - const ADDR: &str = "127.0.0.1"; - const PROXY_PORT: u32 = 8553; - - struct TestHarness { - builder: MockHttpServer, - l2: MockHttpServer, - server_handle: ServerHandle, - proxy_client: HttpClient, - } - - impl Drop for TestHarness { - fn drop(&mut self) { - self.server_handle.stop().unwrap(); - } - } - - impl TestHarness { - async fn new() -> eyre::Result { - let builder = MockHttpServer::serve().await?; - let l2 = MockHttpServer::serve().await?; - let middleware = tower::ServiceBuilder::new().layer(ProxyLayer::new( - format!("http://{}:{}", l2.addr.ip(), l2.addr.port()).parse::()?, - JwtSecret::random(), - 1, - format!("http://{}:{}", builder.addr.ip(), builder.addr.port()).parse::()?, - JwtSecret::random(), - 1, - )); - - let temp_listener = TcpListener::bind("127.0.0.1:0").await?; - let server_addr = temp_listener.local_addr()?; - drop(temp_listener); - - let server = Server::builder() - .set_http_middleware(middleware.clone()) - .build(server_addr) - .await?; - - let server_addr = server.local_addr()?; - let proxy_client: HttpClient = HttpClient::builder().build(format!( - "http://{}:{}", - server_addr.ip(), - server_addr.port() - ))?; - - let server_handle = server.start(RpcModule::new(())); - - Ok(Self { - builder, - l2, - server_handle, - proxy_client, - }) - } - } - - struct MockHttpServer { - addr: SocketAddr, - requests: Arc>>, - join_handle: JoinHandle<()>, - } - - impl Drop for MockHttpServer { - fn drop(&mut self) { - self.join_handle.abort(); - } - } - - impl MockHttpServer { - async fn serve() -> eyre::Result { - let listener = TcpListener::bind("127.0.0.1:0").await?; - let addr = listener.local_addr()?; - let requests = Arc::new(tokio::sync::Mutex::new(vec![])); - - let requests_clone = requests.clone(); - let handle = tokio::spawn(async move { - loop { - match listener.accept().await { - Ok((stream, _)) => { - let io = TokioIo::new(stream); - let requests = requests_clone.clone(); - - tokio::spawn(async move { - if let Err(err) = hyper::server::conn::http1::Builder::new() - .serve_connection( - io, - service_fn(move |req| { - Self::handle_request(req, requests.clone()) - }), - ) - .await - { - eprintln!("Error serving connection: {}", err); - } - }); - } - Err(e) => eprintln!("Error accepting connection: {}", e), - } - } - }); - - Ok(Self { - addr, - requests, - join_handle: handle, - }) - } - - async fn handle_request( - req: hyper::Request, - requests: Arc>>, - ) -> Result, hyper::Error> { - let body_bytes = match req.into_body().collect().await { - Ok(buf) => buf.to_bytes(), - Err(_) => { - let error_response = json!({ - "jsonrpc": "2.0", - "error": { "code": -32700, "message": "Failed to read request body" }, - "id": null - }); - return Ok(hyper::Response::new(error_response.to_string())); - } - }; - - let request_body: serde_json::Value = match serde_json::from_slice(&body_bytes) { - Ok(json) => json, - Err(_) => { - let error_response = json!({ - "jsonrpc": "2.0", - "error": { "code": -32700, "message": "Invalid JSON format" }, - "id": null - }); - return Ok(hyper::Response::new(error_response.to_string())); - } - }; - - // spawn and await so that the requests will eventually be processed - // even after the request is cancelled - let request_body_clone = request_body.clone(); - tokio::spawn(async move { - requests.lock().await.push(request_body_clone); - }) - .await - .unwrap(); - - let method = request_body["method"].as_str().unwrap_or_default(); - - let response = match method { - "eth_sendRawTransaction" | "eth_sendRawTransactionConditional" => json!({ - "jsonrpc": "2.0", - "result": format!("{}", B256::from([1; 32])), - "id": request_body["id"] - }), - "miner_setMaxDASize" | "miner_setGasLimit" | "miner_setGasPrice" - | "miner_setExtra" => { - json!({ - "jsonrpc": "2.0", - "result": true, - "id": request_body["id"] - }) - } - "mock_forwardedMethod" => { - json!({ - "jsonrpc": "2.0", - "result": "forwarded response", - "id": request_body["id"] - }) - } - _ => { - let error_response = json!({ - "jsonrpc": "2.0", - "error": { "code": -32601, "message": "Method not found" }, - "id": request_body["id"] - }); - return Ok(hyper::Response::new(error_response.to_string())); - } - }; - - Ok(hyper::Response::new(response.to_string())) - } - } - - #[cfg(test)] - #[ctor::ctor] - fn crypto_ring_init() { - rustls::crypto::ring::default_provider() - .install_default() - .unwrap(); - } - - #[tokio::test] - async fn test_proxy_service() { - proxy_success().await; - proxy_failure().await; - does_not_proxy_engine_method().await; - health_check().await; - } - - async fn proxy_success() { - let response = send_request("greet_melkor").await; - assert!(response.is_ok()); - assert_eq!(response.unwrap(), "You are the dark lord"); - } - - async fn proxy_failure() { - let response = send_request("non_existent_method").await; - assert!(response.is_err()); - let expected_error = ErrorObject::from(ErrorCode::MethodNotFound).into_owned(); - assert!(matches!( - response.unwrap_err(), - ClientError::Call(e) if e == expected_error - )); - } - - async fn does_not_proxy_engine_method() { - let response = send_request("engine_method").await; - assert!(response.is_ok()); - assert_eq!(response.unwrap(), "engine response"); - } - - async fn health_check() { - let proxy_server = spawn_proxy_server().await; - // Create a new HTTP client - let client: Client> = - Client::builder(TokioExecutor::new()).build_http(); - - // Test the health check endpoint - let health_check_url = format!("http://{ADDR}:{PORT}/healthz"); - let health_response = client.get(health_check_url.parse::().unwrap()).await; - assert!(health_response.is_ok()); - let status = health_response.unwrap().status(); - assert_eq!(status, StatusCode::OK); - - proxy_server.stop().unwrap(); - proxy_server.stopped().await; - } - - async fn send_request(method: &str) -> Result { - let server = spawn_server().await; - let proxy_server = spawn_proxy_server().await; - let proxy_client = HttpClient::builder() - .build(format!("http://{ADDR}:{PORT}")) - .unwrap(); - - let response = proxy_client - .request::(method, rpc_params![]) - .await; - - server.stop().unwrap(); - server.stopped().await; - proxy_server.stop().unwrap(); - proxy_server.stopped().await; - - response - } - - async fn spawn_server() -> ServerHandle { - let server = ServerBuilder::default() - .build( - format!("{ADDR}:{PROXY_PORT}") - .parse::() - .unwrap(), - ) - .await - .unwrap(); - - // Create a mock rpc module - let mut module = RpcModule::new(()); - module - .register_method("greet_melkor", |_, _, _| "You are the dark lord") - .unwrap(); - - server.start(module) - } - - /// Spawn a new RPC server with a proxy layer. - async fn spawn_proxy_server() -> ServerHandle { - let addr = format!("{ADDR}:{PORT}"); - - let jwt = JwtSecret::random(); - let l2_auth_uri = format!( - "http://{}", - SocketAddr::new(IpAddr::from_str(ADDR).unwrap(), PROXY_PORT as u16) - ) - .parse::() - .unwrap(); - - let (probe_layer, _) = ProbeLayer::new(); - let proxy_layer = ProxyLayer::new(l2_auth_uri.clone(), jwt, 1, l2_auth_uri, jwt, 1); - - // Create a layered server - let server = ServerBuilder::default() - .set_http_middleware( - tower::ServiceBuilder::new() - .layer(probe_layer) - .layer(proxy_layer), - ) - .build(addr.parse::().unwrap()) - .await - .unwrap(); - - // Create a mock rpc module - let mut module = RpcModule::new(()); - module - .register_method("engine_method", |_, _, _| "engine response") - .unwrap(); - module - .register_method( - "eth_sendRawTransaction", - |_, _, _| "raw transaction response", - ) - .unwrap(); - module - .register_method("non_existent_method", |_, _, _| "no proxy response") - .unwrap(); - - server.start(module) - } - - #[tokio::test] - async fn test_forward_set_max_da_size() -> eyre::Result<()> { - tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; - let test_harness = TestHarness::new().await?; - - let max_tx_size = U64::MAX; - let max_block_size = U64::MAX; - - test_harness - .proxy_client - .request::("miner_setMaxDASize", (max_tx_size, max_block_size)) - .await?; - - tokio::time::sleep(tokio::time::Duration::from_secs(2)).await; - - let expected_method = "miner_setMaxDASize"; - let expected_tx_size = json!(max_tx_size); - let expected_block_size = json!(max_block_size); - - // Assert the builder received the correct payload - let builder = &test_harness.builder; - let builder_requests = builder.requests.lock().await; - let builder_req = builder_requests.first().unwrap(); - assert_eq!(builder_requests.len(), 1); - assert_eq!(builder_req["method"], expected_method); - assert_eq!(builder_req["params"][0], expected_tx_size); - assert_eq!(builder_req["params"][1], expected_block_size); - - // Assert the l2 received the correct payload - let l2 = &test_harness.l2; - let l2_requests = l2.requests.lock().await; - let l2_req = l2_requests.first().unwrap(); - assert_eq!(l2_requests.len(), 1); - assert_eq!(l2_req["method"], expected_method); - assert_eq!(l2_req["params"][0], expected_tx_size); - assert_eq!(builder_req["params"][1], expected_block_size); - - Ok(()) - } - - #[tokio::test] - async fn test_forward_eth_send_raw_transaction() -> eyre::Result<()> { - tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; - let test_harness = TestHarness::new().await?; - - let expected_tx: Bytes = hex!("1234").into(); - let expected_method = "eth_sendRawTransaction"; - - test_harness - .proxy_client - .request::(expected_method, (expected_tx.clone(),)) - .await?; - - let expected_tx = json!(expected_tx); - - // Assert the builder received the correct payload - let builder = &test_harness.builder; - let builder_requests = builder.requests.lock().await; - let builder_req = builder_requests.first().unwrap(); - assert_eq!(builder_requests.len(), 1); - assert_eq!(builder_req["method"], expected_method); - assert_eq!(builder_req["params"][0], expected_tx); - - // Assert the l2 received the correct payload - let l2 = &test_harness.l2; - let l2_requests = l2.requests.lock().await; - let l2_req = l2_requests.first().unwrap(); - assert_eq!(l2_requests.len(), 1); - assert_eq!(l2_req["method"], expected_method); - assert_eq!(l2_req["params"][0], expected_tx); - - Ok(()) - } - - #[tokio::test] - async fn test_forward_eth_send_raw_transaction_conditional() -> eyre::Result<()> { - tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; - let test_harness = TestHarness::new().await?; - - let expected_tx: Bytes = hex!("1234").into(); - let expected_method = "eth_sendRawTransactionConditional"; - let transact_conditionals = TransactionConditional::default(); - test_harness - .proxy_client - .request::( - expected_method, - (expected_tx.clone(), transact_conditionals.clone()), - ) - .await?; - - let expected_tx = json!(expected_tx); - let expected_conditionals = json!(transact_conditionals); - // Assert the builder received the correct payload - let builder = &test_harness.builder; - let builder_requests = builder.requests.lock().await; - let builder_req = builder_requests.first().unwrap(); - assert_eq!(builder_requests.len(), 1); - assert_eq!(builder_req["method"], expected_method); - assert_eq!(builder_req["params"][0], expected_tx); - assert_eq!(builder_req["params"][1], expected_conditionals); - - // Assert the l2 received the correct payload - let l2 = &test_harness.l2; - let l2_requests = l2.requests.lock().await; - let l2_req = l2_requests.first().unwrap(); - assert_eq!(l2_requests.len(), 1); - assert_eq!(l2_req["method"], expected_method); - assert_eq!(l2_req["params"][0], expected_tx); - assert_eq!(l2_req["params"][1], expected_conditionals); - - Ok(()) - } - - #[tokio::test] - async fn test_forward_miner_set_extra() -> eyre::Result<()> { - tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; - let test_harness = TestHarness::new().await?; - - let extra = Bytes::default(); - let expected_method = "miner_setExtra"; - - test_harness - .proxy_client - .request::(expected_method, (extra.clone(),)) - .await?; - - let expected_extra = json!(extra); - - // Assert the builder received the correct payload - let builder = &test_harness.builder; - let builder_requests = builder.requests.lock().await; - let builder_req = builder_requests.first().unwrap(); - assert_eq!(builder_requests.len(), 1); - assert_eq!(builder_req["method"], expected_method); - assert_eq!(builder_req["params"][0], expected_extra); - - // Assert the l2 received the correct payload - let l2 = &test_harness.l2; - let l2_requests = l2.requests.lock().await; - let l2_req = l2_requests.first().unwrap(); - assert_eq!(l2_requests.len(), 1); - assert_eq!(l2_req["method"], expected_method); - assert_eq!(l2_req["params"][0], expected_extra); - - Ok(()) - } - - #[tokio::test] - async fn test_forward_miner_set_gas_price() -> eyre::Result<()> { - let test_harness = TestHarness::new().await?; - - let gas_price = U128::ZERO; - let expected_method = "miner_setGasPrice"; - - test_harness - .proxy_client - .request::(expected_method, (gas_price,)) - .await?; - - let expected_price = json!(gas_price); - tokio::time::sleep(tokio::time::Duration::from_secs(3)).await; - - // Assert the builder received the correct payload - let builder = &test_harness.builder; - let builder_requests = builder.requests.lock().await; - let builder_req = builder_requests.first().unwrap(); - assert_eq!(builder_requests.len(), 1); - assert_eq!(builder_req["method"], expected_method); - assert_eq!(builder_req["params"][0], expected_price); - - // Assert the l2 received the correct payload - let l2 = &test_harness.l2; - let l2_requests = l2.requests.lock().await; - let l2_req = l2_requests.first().unwrap(); - assert_eq!(l2_requests.len(), 1); - assert_eq!(l2_req["method"], expected_method); - assert_eq!(l2_req["params"][0], expected_price); - - Ok(()) - } - - #[tokio::test] - async fn test_forward_miner_set_gas_limit() -> eyre::Result<()> { - let test_harness = TestHarness::new().await?; - - let gas_limit = U128::ZERO; - let expected_method = "miner_setGasLimit"; - - test_harness - .proxy_client - .request::(expected_method, (gas_limit,)) - .await?; - - let expected_price = json!(gas_limit); - - tokio::time::sleep(tokio::time::Duration::from_secs(2)).await; - - // Assert the builder received the correct payload - let builder = &test_harness.builder; - let builder_requests = builder.requests.lock().await; - let builder_req = builder_requests.first().unwrap(); - assert_eq!(builder_requests.len(), 1); - assert_eq!(builder_req["method"], expected_method); - assert_eq!(builder_req["params"][0], expected_price); - - // Assert the l2 received the correct payload - let l2 = &test_harness.l2; - let l2_requests = l2.requests.lock().await; - let l2_req = l2_requests.first().unwrap(); - assert_eq!(l2_requests.len(), 1); - assert_eq!(l2_req["method"], expected_method); - assert_eq!(l2_req["params"][0], expected_price); - - Ok(()) - } - - #[tokio::test] - async fn test_direct_forward_mock_request() -> eyre::Result<()> { - tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; - let test_harness = TestHarness::new().await?; - - let mock_data = U128::ZERO; - let expected_method = "mock_forwardedMethod"; - - test_harness - .proxy_client - .request::(expected_method, (mock_data,)) - .await?; - - let expected_price = json!(mock_data); - - // Assert the builder has not received the payload - let builder = &test_harness.builder; - let builder_requests = builder.requests.lock().await; - assert_eq!(builder_requests.len(), 0); - - // Assert the l2 auth received the correct payload - let l2 = &test_harness.l2; - let l2_requests = l2.requests.lock().await; - let l2_req = l2_requests.first().unwrap(); - assert_eq!(l2_requests.len(), 1); - assert_eq!(l2_req["method"], expected_method); - assert_eq!(l2_req["params"][0], expected_price); - - Ok(()) - } -} diff --git a/crates/rollup-boost/src/server.rs b/crates/rollup-boost/src/server.rs index d6f315a2..d5a2940a 100644 --- a/crates/rollup-boost/src/server.rs +++ b/crates/rollup-boost/src/server.rs @@ -1,5 +1,5 @@ use crate::debug_api::ExecutionMode; -use crate::{BlockSelectionPolicy, EngineApiExt}; +use crate::{AuthApiExt, BlockSelectionPolicy}; use crate::{ client::rpc::RpcClient, debug_api::DebugServer, @@ -10,29 +10,40 @@ use crate::{ }, probe::{Health, Probes}, }; -use alloy_primitives::{B256, Bytes, bytes}; +use alloy_eips::BlockId; +use alloy_primitives::{Address, B256, BlockHash, Bytes, U64, U128, U256, bytes}; use alloy_rpc_types_engine::{ - ExecutionPayload, ExecutionPayloadV3, ForkchoiceState, ForkchoiceUpdated, PayloadId, + ClientVersionV1, ExecutionPayload, ExecutionPayloadBodiesV1, ExecutionPayloadEnvelopeV2, + ExecutionPayloadInputV2, ExecutionPayloadV3, ForkchoiceState, ForkchoiceUpdated, PayloadId, PayloadStatus, }; -use alloy_rpc_types_eth::{Block, BlockNumberOrTag}; -use http_body_util::{BodyExt, Full}; +use alloy_rpc_types_eth::erc4337::TransactionConditional; +use alloy_rpc_types_eth::state::StateOverride; +use alloy_rpc_types_eth::{ + BlockNumberOrTag, BlockOverrides, EIP1186AccountProofResponse, Filter, Log, SyncStatus, +}; +use alloy_serde::JsonStorageKey; +use http_body_util::Full; use jsonrpsee::RpcModule; -use jsonrpsee::core::BoxError; use jsonrpsee::core::{RegisterMethodError, RpcResult, async_trait}; -use jsonrpsee::proc_macros::rpc; -use jsonrpsee::server::HttpBody; use jsonrpsee::server::HttpRequest; use jsonrpsee::server::HttpResponse; use jsonrpsee::types::ErrorObject; use jsonrpsee::types::error::INVALID_REQUEST_CODE; use metrics::counter; +use op_alloy_network::Optimism; use op_alloy_rpc_types_engine::{ OpExecutionPayloadEnvelopeV3, OpExecutionPayloadEnvelopeV4, OpExecutionPayloadV4, - OpPayloadAttributes, + OpPayloadAttributes, ProtocolVersion, SuperchainSignal, }; use opentelemetry::trace::SpanKind; use parking_lot::Mutex; +use reth_optimism_node::OpEngineTypes; +use reth_optimism_payload_builder::OpPayloadTypes; +use reth_optimism_rpc::OpEngineApiServer; +use reth_optimism_rpc::miner::MinerApiExtServer; +use reth_rpc_api::{EngineEthApiServer, L2EthApiExtServer, MinerApiServer}; +use reth_rpc_eth_api::{RpcBlock, RpcReceipt, RpcTxReq}; use std::sync::Arc; use std::time::Duration; use tokio::task::JoinHandle; @@ -44,7 +55,7 @@ pub type BufferedRequest = http::Request>; pub type BufferedResponse = http::Response>; #[derive(Clone)] -pub struct RollupBoostServer { +pub struct RollupBoostServer { pub l2_client: Arc, pub builder_client: Arc, pub payload_trace_context: Arc, @@ -55,7 +66,7 @@ pub struct RollupBoostServer { impl RollupBoostServer where - T: EngineApiExt, + T: AuthApiExt, { pub fn new( l2_client: RpcClient, @@ -269,13 +280,18 @@ where impl TryInto> for RollupBoostServer where - T: EngineApiExt, + T: AuthApiExt + Clone, { type Error = RegisterMethodError; fn try_into(self) -> Result, Self::Error> { let mut module: RpcModule<()> = RpcModule::new(()); - module.merge(EngineApiServer::into_rpc(self))?; + // TODO: get rid of clones + module.merge(OpEngineApiServer::into_rpc(self.clone()))?; + module.merge(EngineEthApiServer::into_rpc(self.clone()))?; + module.merge(MinerApiServer::into_rpc(self.clone()))?; + module.merge(MinerApiExtServer::into_rpc(self.clone()))?; + module.merge(L2EthApiExtServer::into_rpc(self))?; for method in module.method_names() { info!(?method, "method registered"); @@ -285,53 +301,85 @@ where } } -#[rpc(server, client)] -pub trait EngineApi { - #[method(name = "engine_forkchoiceUpdatedV3")] - async fn fork_choice_updated_v3( - &self, - fork_choice_state: ForkchoiceState, - payload_attributes: Option, - ) -> RpcResult; - - #[method(name = "engine_getPayloadV3")] - async fn get_payload_v3( - &self, - payload_id: PayloadId, - ) -> RpcResult; +#[async_trait] +impl OpEngineApiServer> for RollupBoostServer +where + T: AuthApiExt, +{ + async fn new_payload_v2(&self, payload: ExecutionPayloadInputV2) -> RpcResult { + Ok(self.l2_client.new_payload_v2(payload).await?) + } - #[method(name = "engine_newPayloadV3")] + #[instrument( + skip_all, + err, + fields( + otel.kind = ?SpanKind::Server, + ) + )] async fn new_payload_v3( &self, payload: ExecutionPayloadV3, versioned_hashes: Vec, parent_beacon_block_root: B256, - ) -> RpcResult; + ) -> RpcResult { + info!("received new_payload_v3"); - #[method(name = "engine_getPayloadV4")] - async fn get_payload_v4( - &self, - payload_id: PayloadId, - ) -> RpcResult; + self.new_payload(NewPayload::V3(NewPayloadV3 { + payload, + versioned_hashes, + parent_beacon_block_root, + })) + .await + } - #[method(name = "engine_newPayloadV4")] + #[instrument( + skip_all, + err, + fields( + otel.kind = ?SpanKind::Server, + ) + )] async fn new_payload_v4( &self, payload: OpExecutionPayloadV4, versioned_hashes: Vec, parent_beacon_block_root: B256, - execution_requests: Vec, - ) -> RpcResult; + execution_requests: alloy_eips::eip7685::Requests, + ) -> RpcResult { + info!("received new_payload_v4"); - #[method(name = "eth_getBlockByNumber")] - async fn get_block_by_number(&self, number: BlockNumberOrTag, full: bool) -> RpcResult; -} + self.new_payload(NewPayload::V4(NewPayloadV4 { + payload, + versioned_hashes, + parent_beacon_block_root, + execution_requests: execution_requests.to_vec(), + })) + .await + } + + async fn fork_choice_updated_v1( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> RpcResult { + Ok(self + .l2_client + .fork_choice_updated_v1(fork_choice_state, payload_attributes) + .await?) + } + + async fn fork_choice_updated_v2( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> RpcResult { + Ok(self + .l2_client + .fork_choice_updated_v2(fork_choice_state, payload_attributes) + .await?) + } -#[async_trait] -impl EngineApiServer for RollupBoostServer -where - T: EngineApiExt, -{ #[instrument( skip_all, err, @@ -428,6 +476,10 @@ where } } + async fn get_payload_v2(&self, payload_id: PayloadId) -> RpcResult { + Ok(self.l2_client.get_payload_v2(payload_id).await?) + } + #[instrument( skip_all, err, @@ -457,29 +509,6 @@ where } } - #[instrument( - skip_all, - err, - fields( - otel.kind = ?SpanKind::Server, - ) - )] - async fn new_payload_v3( - &self, - payload: ExecutionPayloadV3, - versioned_hashes: Vec, - parent_beacon_block_root: B256, - ) -> RpcResult { - info!("received new_payload_v3"); - - self.new_payload(NewPayload::V3(NewPayloadV3 { - payload, - versioned_hashes, - parent_beacon_block_root, - })) - .await - } - #[instrument( skip_all, err, @@ -507,45 +536,241 @@ where } } - #[instrument( - skip_all, - err, - fields( - otel.kind = ?SpanKind::Server, - ) - )] - async fn new_payload_v4( + async fn get_payload_bodies_by_hash_v1( &self, - payload: OpExecutionPayloadV4, - versioned_hashes: Vec, - parent_beacon_block_root: B256, - execution_requests: Vec, - ) -> RpcResult { - info!("received new_payload_v4"); + block_hashes: Vec, + ) -> RpcResult { + Ok(self + .l2_client + .get_payload_bodies_by_hash_v1(block_hashes) + .await?) + } - self.new_payload(NewPayload::V4(NewPayloadV4 { - payload, - versioned_hashes, - parent_beacon_block_root, - execution_requests, - })) - .await + async fn get_payload_bodies_by_range_v1( + &self, + start: U64, + count: U64, + ) -> RpcResult { + Ok(self + .l2_client + .get_payload_bodies_by_range_v1(start, count) + .await?) + } + + async fn signal_superchain_v1(&self, signal: SuperchainSignal) -> RpcResult { + Ok(self.l2_client.signal_superchain_v1(signal).await?) + } + + async fn get_client_version_v1( + &self, + client_version: ClientVersionV1, + ) -> RpcResult> { + Ok(self.l2_client.get_client_version_v1(client_version).await?) } - async fn get_block_by_number(&self, number: BlockNumberOrTag, full: bool) -> RpcResult { - Ok(self.l2_client.get_block_by_number(number, full).await?) + async fn exchange_capabilities(&self, capabilities: Vec) -> RpcResult> { + Ok(self.l2_client.exchange_capabilities(capabilities).await?) } } -pub async fn into_buffered_request(req: HttpRequest) -> Result { - let (parts, body) = req.into_parts(); - let bytes = body.collect().await?.to_bytes(); - let full = Full::::from(bytes.clone()); - Ok(http::Request::from_parts(parts, full)) +#[async_trait] +impl EngineEthApiServer, RpcBlock, RpcReceipt> + for RollupBoostServer +where + T: AuthApiExt, +{ + fn syncing(&self) -> RpcResult { + Ok(tokio::task::block_in_place(|| { + tokio::runtime::Handle::current().block_on(async { self.l2_client.syncing().await }) + })?) + } + + async fn chain_id(&self) -> RpcResult> { + Ok(self.l2_client.chain_id().await?) + } + + fn block_number(&self) -> RpcResult { + Ok(tokio::task::block_in_place(|| { + tokio::runtime::Handle::current() + .block_on(async { self.l2_client.block_number().await }) + })?) + } + + async fn call( + &self, + request: RpcTxReq, + block_id: Option, + state_overrides: Option, + block_overrides: Option>, + ) -> RpcResult { + Ok(self + .l2_client + .call(request, block_id, state_overrides, block_overrides) + .await?) + } + + async fn get_code(&self, address: Address, block_id: Option) -> RpcResult { + Ok(self.l2_client.get_code(address, block_id).await?) + } + + async fn block_by_hash(&self, hash: B256, full: bool) -> RpcResult>> { + Ok(self.l2_client.block_by_hash(hash, full).await?) + } + + async fn block_by_number( + &self, + number: BlockNumberOrTag, + full: bool, + ) -> RpcResult>> { + Ok(self.l2_client.block_by_number(number, full).await?) + } + + async fn block_receipts( + &self, + block_id: BlockId, + ) -> RpcResult>>> { + Ok(self.l2_client.block_receipts(block_id).await?) + } + + async fn send_raw_transaction(&self, bytes: Bytes) -> RpcResult { + { + let builder_client = self.builder_client.clone(); + let bytes = bytes.clone(); + tokio::spawn(async move { + let res = builder_client.send_raw_transaction(bytes).await; + if let Err(e) = res { + error!("failed to proxy eth_sendRawTransaction to builder: {}", e); + } + }); + } + Ok(self.l2_client.send_raw_transaction(bytes).await?) + } + + async fn transaction_receipt(&self, hash: B256) -> RpcResult>> { + Ok(self.l2_client.transaction_receipt(hash).await?) + } + + async fn logs(&self, filter: Filter) -> RpcResult> { + Ok(self.l2_client.logs(filter).await?) + } + + async fn get_proof( + &self, + address: Address, + keys: Vec, + block_number: Option, + ) -> RpcResult { + Ok(self + .l2_client + .get_proof(address, keys, block_number) + .await?) + } } -pub fn from_buffered_request(req: BufferedRequest) -> HttpRequest { - req.map(HttpBody::new) +#[async_trait] +impl L2EthApiExtServer for RollupBoostServer +where + T: AuthApiExt, +{ + async fn send_raw_transaction_conditional( + &self, + bytes: Bytes, + condition: TransactionConditional, + ) -> RpcResult { + { + let builder_client = self.builder_client.clone(); + let bytes = bytes.clone(); + let condition = condition.clone(); + tokio::spawn(async move { + let res = builder_client + .send_raw_transaction_conditional(bytes, condition) + .await; + if let Err(e) = res { + error!( + "failed to proxy eth_sendRawTransactionConditional to builder: {}", + e + ); + } + }); + } + Ok(self + .l2_client + .send_raw_transaction_conditional(bytes, condition) + .await?) + } +} + +#[async_trait] +impl MinerApiServer for RollupBoostServer +where + T: AuthApiExt, +{ + fn set_extra(&self, record: Bytes) -> RpcResult { + { + let builder_client = self.builder_client.clone(); + let record = record.clone(); + tokio::spawn(async move { + let res = builder_client.set_extra(record).await; + if let Err(e) = res { + error!("failed to proxy miner_setExtra to builder: {}", e); + } + }); + } + Ok(tokio::task::block_in_place(|| { + tokio::runtime::Handle::current() + .block_on(async { self.l2_client.set_extra(record).await }) + })?) + } + + fn set_gas_price(&self, gas_price: U128) -> RpcResult { + let builder_client = self.builder_client.clone(); + tokio::spawn(async move { + let res = builder_client.set_gas_price(gas_price).await; + if let Err(e) = res { + error!("failed to proxy miner_setGasPrice to builder: {}", e); + } + }); + Ok(tokio::task::block_in_place(|| { + tokio::runtime::Handle::current() + .block_on(async { self.l2_client.set_gas_price(gas_price).await }) + })?) + } + + fn set_gas_limit(&self, gas_limit: U128) -> RpcResult { + let builder_client = self.builder_client.clone(); + tokio::spawn(async move { + let res = builder_client.set_gas_limit(gas_limit).await; + if let Err(e) = res { + error!("failed to proxy miner_setGasLimit to builder: {}", e); + } + }); + Ok(tokio::task::block_in_place(|| { + tokio::runtime::Handle::current() + .block_on(async { self.l2_client.set_gas_limit(gas_limit).await }) + })?) + } +} + +#[async_trait] +impl MinerApiExtServer for RollupBoostServer +where + T: AuthApiExt, +{ + async fn set_max_da_size(&self, max_tx_size: U64, max_block_size: U64) -> RpcResult { + let builder_client = self.builder_client.clone(); + tokio::spawn(async move { + let res = builder_client + .set_max_da_size(max_tx_size, max_block_size) + .await; + if let Err(e) = res { + error!("failed to proxy miner_setMaxDaSize to builder: {}", e); + } + }); + Ok(self + .l2_client + .set_max_da_size(max_tx_size, max_block_size) + .await?) + } } #[cfg(test)] @@ -553,7 +778,6 @@ pub fn from_buffered_request(req: BufferedRequest) -> HttpRequest { pub mod tests { use super::*; use crate::probe::ProbeLayer; - use crate::proxy::ProxyLayer; use alloy_primitives::hex; use alloy_primitives::{FixedBytes, U256}; use alloy_rpc_types_engine::JwtSecret; @@ -563,8 +787,10 @@ pub mod tests { use http::{StatusCode, Uri}; use jsonrpsee::RpcModule; use jsonrpsee::http_client::HttpClient; + use jsonrpsee::server::{Server, ServerBuilder, ServerHandle}; use parking_lot::Mutex; + use reth_optimism_rpc::OpEngineApiClient; use std::net::SocketAddr; use std::str::FromStr; use std::sync::Arc; @@ -679,17 +905,7 @@ pub mod tests { let module: RpcModule<()> = rollup_boost.try_into().unwrap(); - let http_middleware = - tower::ServiceBuilder::new() - .layer(probe_layer) - .layer(ProxyLayer::new( - l2_auth_rpc, - jwt_secret, - 1, - builder_auth_rpc, - jwt_secret, - 1, - )); + let http_middleware = tower::ServiceBuilder::new().layer(probe_layer); let server = Server::builder() .set_http_middleware(http_middleware) @@ -750,10 +966,14 @@ pub mod tests { safe_block_hash: FixedBytes::random(), finalized_block_hash: FixedBytes::random(), }; - let fcu_response = test_harness - .rpc_client - .fork_choice_updated_v3(fcu, None) + let fcu_response = + as OpEngineApiClient>::fork_choice_updated_v3( + &test_harness.rpc_client, + fcu, + None, + ) .await; + assert!(fcu_response.is_ok()); let fcu_requests = test_harness.l2_mock.fcu_requests.clone(); { @@ -769,9 +989,9 @@ pub mod tests { } // test new_payload_v3 success - let new_payload_response = test_harness - .rpc_client - .new_payload_v3( + let new_payload_response = + as OpEngineApiClient>::new_payload_v3( + &test_harness.rpc_client, test_harness .l2_mock .get_payload_response @@ -809,9 +1029,11 @@ pub mod tests { } // test get_payload_v3 success - let get_payload_response = test_harness - .rpc_client - .get_payload_v3(PayloadId::new([0, 0, 0, 0, 0, 0, 0, 1])) + let get_payload_response = + as OpEngineApiClient>::get_payload_v3( + &test_harness.rpc_client, + PayloadId::new([0, 0, 0, 0, 0, 0, 0, 1]), + ) .await; assert!(get_payload_response.is_ok()); let get_payload_requests = test_harness.l2_mock.get_payload_requests.clone(); @@ -853,9 +1075,11 @@ pub mod tests { let test_harness = TestHarness::new(Some(l2_mock), None).await; // test get_payload_v3 return l2 payload if builder payload is invalid - let get_payload_response = test_harness - .rpc_client - .get_payload_v3(PayloadId::new([0, 0, 0, 0, 0, 0, 0, 0])) + let get_payload_response = + as OpEngineApiClient>::get_payload_v3( + &test_harness.rpc_client, + PayloadId::new([0, 0, 0, 0, 0, 0, 0, 0]), + ) .await; assert!(get_payload_response.is_ok()); assert_eq!(get_payload_response.unwrap().block_value, U256::from(10)); @@ -931,9 +1155,12 @@ pub mod tests { safe_block_hash: FixedBytes::random(), finalized_block_hash: FixedBytes::random(), }; - let fcu_response = test_harness - .rpc_client - .fork_choice_updated_v3(fcu, None) + let fcu_response = + as OpEngineApiClient>::fork_choice_updated_v3( + &test_harness.rpc_client, + fcu, + Option::::None, + ) .await; assert!(fcu_response.is_ok()); @@ -947,7 +1174,11 @@ pub mod tests { } // Test getPayload call - let get_res = test_harness.rpc_client.get_payload_v3(same_id).await; + let get_res = as OpEngineApiClient>::get_payload_v3( + &test_harness.rpc_client, + same_id, + ) + .await; assert!(get_res.is_ok()); // wait for builder to observe the getPayload call @@ -1004,26 +1235,42 @@ pub mod tests { gas_limit: Some(1000000), ..Default::default() }; - let fcu_response = test_harness - .rpc_client - .fork_choice_updated_v3(fcu, Some(payload_attributes.clone())) + let fcu_response = + as OpEngineApiClient>::fork_choice_updated_v3( + &test_harness.rpc_client, + fcu, + Some(payload_attributes.clone()), + ) .await; assert!(fcu_response.is_ok()); // no tx pool is false so should return the builder payload - let get_payload_response = test_harness.rpc_client.get_payload_v3(payload_id).await; + let get_payload_response = + as OpEngineApiClient>::get_payload_v3( + &test_harness.rpc_client, + payload_id, + ) + .await; assert!(get_payload_response.is_ok()); assert_eq!(get_payload_response.unwrap().block_value, U256::from(15)); payload_attributes.no_tx_pool = Some(true); - let fcu_response = test_harness - .rpc_client - .fork_choice_updated_v3(fcu, Some(payload_attributes)) + let fcu_response = + as OpEngineApiClient>::fork_choice_updated_v3( + &test_harness.rpc_client, + fcu, + Some(payload_attributes), + ) .await; assert!(fcu_response.is_ok()); // no tx pool is true so should return the l2 payload - let get_payload_response = test_harness.rpc_client.get_payload_v3(payload_id).await; + let get_payload_response = + as OpEngineApiClient>::get_payload_v3( + &test_harness.rpc_client, + payload_id, + ) + .await; assert!(get_payload_response.is_ok()); assert_eq!(get_payload_response.unwrap().block_value, U256::from(10)); @@ -1048,9 +1295,12 @@ pub mod tests { safe_block_hash: FixedBytes::random(), finalized_block_hash: FixedBytes::random(), }; - let fcu_response = test_harness - .rpc_client - .fork_choice_updated_v3(fcu, None) + let fcu_response = + as OpEngineApiClient>::fork_choice_updated_v3( + &test_harness.rpc_client, + fcu, + Option::::None, + ) .await; assert!(fcu_response.is_err()); @@ -1058,9 +1308,12 @@ pub mod tests { gas_limit: Some(1000000), ..Default::default() }; - let fcu_response = test_harness - .rpc_client - .fork_choice_updated_v3(fcu, Some(payload_attributes)) + let fcu_response = + as OpEngineApiClient>::fork_choice_updated_v3( + &test_harness.rpc_client, + fcu, + Some(payload_attributes), + ) .await; assert!(fcu_response.is_err()); } diff --git a/crates/rollup-boost/src/tests/common/mod.rs b/crates/rollup-boost/src/tests/common/mod.rs index 7d6f2a13..3df3875f 100644 --- a/crates/rollup-boost/src/tests/common/mod.rs +++ b/crates/rollup-boost/src/tests/common/mod.rs @@ -1,9 +1,10 @@ #![allow(dead_code)] use crate::DebugClient; use crate::{AuthLayer, AuthService}; -use crate::{EngineApiClient, OpExecutionPayloadEnvelope, PayloadVersion}; use crate::{NewPayload, PayloadSource}; +use crate::{OpExecutionPayloadEnvelope, PayloadVersion}; use alloy_eips::Encodable2718; +use alloy_eips::eip7685::Requests; use alloy_primitives::{B256, Bytes, TxKind, U256, address, hex}; use alloy_rpc_types_engine::{ExecutionPayload, JwtSecret}; use alloy_rpc_types_engine::{ @@ -23,6 +24,8 @@ use op_alloy_consensus::TxDeposit; use op_alloy_rpc_types_engine::OpPayloadAttributes; use parking_lot::Mutex; use proxy::{BuilderProxyHandler, start_proxy_server}; +use reth_optimism_node::OpEngineTypes; +use reth_optimism_rpc::OpEngineApiClient; use serde_json::Value; use services::op_reth::{AUTH_RPC_PORT, OpRethConfig, OpRethImage, OpRethMehods, P2P_PORT}; use services::rollup_boost::{RollupBoost, RollupBoostConfig}; @@ -100,29 +103,37 @@ impl EngineApi { ) -> eyre::Result { match version { PayloadVersion::V3 => Ok(OpExecutionPayloadEnvelope::V3( - EngineApiClient::get_payload_v3(&self.engine_api_client, payload_id).await?, + OpEngineApiClient::::get_payload_v3( + &self.engine_api_client, + payload_id, + ) + .await?, )), PayloadVersion::V4 => Ok(OpExecutionPayloadEnvelope::V4( - EngineApiClient::get_payload_v4(&self.engine_api_client, payload_id).await?, + OpEngineApiClient::::get_payload_v4( + &self.engine_api_client, + payload_id, + ) + .await?, )), } } pub async fn new_payload(&self, payload: NewPayload) -> eyre::Result { match payload { - NewPayload::V3(new_payload) => Ok(EngineApiClient::new_payload_v3( + NewPayload::V3(new_payload) => Ok(OpEngineApiClient::::new_payload_v3( &self.engine_api_client, new_payload.payload, new_payload.versioned_hashes, new_payload.parent_beacon_block_root, ) .await?), - NewPayload::V4(new_payload) => Ok(EngineApiClient::new_payload_v4( + NewPayload::V4(new_payload) => Ok(OpEngineApiClient::::new_payload_v4( &self.engine_api_client, new_payload.payload, new_payload.versioned_hashes, new_payload.parent_beacon_block_root, - new_payload.execution_requests, + Requests::from(new_payload.execution_requests), ) .await?), } @@ -134,7 +145,7 @@ impl EngineApi { new_head: B256, payload_attributes: Option, ) -> eyre::Result { - Ok(EngineApiClient::fork_choice_updated_v3( + Ok(OpEngineApiClient::::fork_choice_updated_v3( &self.engine_api_client, ForkchoiceState { head_block_hash: new_head, @@ -147,7 +158,7 @@ impl EngineApi { } pub async fn latest(&self) -> eyre::Result> { - Ok(BlockApiClient::get_block_by_number( + Ok(BlockApiClient::block_by_number( &self.engine_api_client, BlockNumberOrTag::Latest, false, @@ -166,7 +177,7 @@ impl EngineApi { #[rpc(client, namespace = "eth")] pub trait BlockApi { #[method(name = "getBlockByNumber")] - async fn get_block_by_number( + async fn block_by_number( &self, block_number: BlockNumberOrTag, include_txs: bool,