From e6b1e08dc419d0b8063531458371445f01637fa1 Mon Sep 17 00:00:00 2001 From: sledro Date: Fri, 5 Sep 2025 03:27:45 +0100 Subject: [PATCH 01/54] Update dependencies to point to the lightlink-network/reth repository and bump various package versions in Cargo.lock and Cargo.toml. This includes changes to the reth workspace dependencies to use the new branch for gasless features. --- Cargo.lock | 2246 +++++++++++++++++++++++++++------------------------- Cargo.toml | 118 +-- 2 files changed, 1229 insertions(+), 1135 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7675e1d3a..3d4a129fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "992a9d0732a0e0e1a34d61a6553ad28f761c9049bb46572d3916f172348d2cb7" +checksum = "2e2a5d689ccd182f1d138a61f081841b905034e0089f5278f6c200f2bcdab00a" dependencies = [ "alloy-consensus", "alloy-contract", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.2.7" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a379c0d821498c996ceb9e7519fc2dab8286c35a203c1fb95f80ecd66e07cf2f" +checksum = "ef8ff73a143281cb77c32006b04af9c047a6b8fe5860e85a88ad325328965355" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35f021a55afd68ff2364ccfddaa364fc9a38a72200cdc74fcfb8dc3231d38f2c" +checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -159,9 +159,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0ecca7a71b1f88e63d19e2d9397ce56949d3dd3484fd73c73d0077dc5c93d4" +checksum = "81443e3b8dccfeac7cd511aced15928c97ff253f4177acbb97de97178e543f6c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -174,9 +174,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd26132cbfa6e5f191a01f7b9725eaa0680a953be1fd005d588b0e9422c16456" +checksum = "de217ab604f1bcfa2e3b0aff86d50812d5931d47522f9f0a949cc263ec2d108e" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -270,9 +270,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7473a19f02b25f8e1e8c69d35f02c07245694d11bd91bfe00e9190ac106b3838" +checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -288,7 +288,9 @@ dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_with", "sha2 0.10.9", + "thiserror 2.0.16", ] [[package]] @@ -313,9 +315,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.18.3" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4d88e267e4b599e944e1d32fbbfeaf4b8ea414e54da27306ede37c0798684d" +checksum = "7808e88376405c92315b4d752d9b207f25328e04b31d13e9b1c73f9236486f63" dependencies = [ "alloy-consensus", "alloy-eips", @@ -333,9 +335,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b2c29f25098bfa4cd3d9ec7806e1506716931e188c7c0843284123831c2cf1" +checksum = "33ba1cbc25a07e0142e8875fcbe80e1fdb02be8160ae186b90f4b9a69a72ed2b" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -385,9 +387,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4d1f49fdf9780b60e52c20ffcc1e352d8d27885cc8890620eb584978265dd9" +checksum = "f8882ec8e4542cfd02aadc6dccbe90caa73038f60016d936734eb6ced53d2167" dependencies = [ "alloy-primitives 1.3.1", "alloy-sol-types 1.3.1", @@ -400,9 +402,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2991c432e149babfd996194f8f558f85d7326ac4cf52c55732d32078ff0282d4" +checksum = "51d6d87d588bda509881a7a66ae77c86514bd1193ac30fbff0e0f24db95eb5a5" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -426,9 +428,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d540d962ddbc3e95153bafe56ccefeb16dfbffa52c5f7bdd66cd29ec8f52259" +checksum = "5b14fa9ba5774e0b30ae6a04176d998211d516c8af69c9c530af7c6c42a8c508" dependencies = [ "alloy-consensus", "alloy-eips", @@ -462,7 +464,7 @@ checksum = "ead219a54943c27b0bb568401cbfa6afe04398b97a76fd33b29745d0c0f35b43" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-op-hardforks", "alloy-primitives 1.3.1", "auto_impl", @@ -495,7 +497,7 @@ dependencies = [ "derive_more", "foldhash", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.0", "itoa", "k256", "keccak-asm", @@ -524,7 +526,7 @@ dependencies = [ "foldhash", "getrandom 0.3.3", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.0", "itoa", "k256", "keccak-asm", @@ -541,9 +543,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e96d8084a1cf96be2df6219ac407275ac20c1136fa01f911535eb489aa006e8" +checksum = "475a5141313c3665b75d818be97d5fa3eb5e0abb7e832e9767edd94746db28e3" dependencies = [ "alloy-chains", "alloy-consensus", @@ -585,9 +587,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a682f14e10c3f4489c57b64ed457801b3e7ffc5091b6a35883d0e5960b9b894" +checksum = "f97c18795ce1ce8151c5539ce1e4200940389674173f677c7455f79bfb00e5df" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -629,9 +631,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194ff51cd1d2e65c66b98425e0ca7eb559ca1a579725834c986d84faf8e224c0" +checksum = "25289674cd8c58fcca2568b5350423cb0dd7bca8c596c5e2869bfe4c5c57ed14" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -655,9 +657,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d4fe522f6fc749c8afce721bdc8f73b715d317c3c02fcb9b51f7a143e4401dd" +checksum = "39676beaa50db545cf15447fc94ec5513b64e85a48357a0625b9a04aef08a910" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-engine", @@ -668,9 +670,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30f218456a0a70a234ed52c181f04e6c98b6810c25273cf5280d32dd2cbdc876" +checksum = "65acc9264342069decb617aa344847f55180ba3aeab1c8d1db062d0619881029" dependencies = [ "alloy-genesis", "alloy-primitives 1.3.1", @@ -680,9 +682,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6af88d9714b499675164cac2fa2baadb3554579ab3ea8bc0d7b0c0de4f9d692" +checksum = "a9c8cad42fa936000be72ab80fcd97386a6a226c35c2989212756da9e76c1521" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -692,9 +694,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "124b742619519d5932e586631f11050028b29c30e3e195f2bb04228c886253d6" +checksum = "01bac57c987c93773787619e20f89167db74d460a2d1d40f591d94fb7c22c379" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -703,9 +705,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd39ff755554e506ae0f6a8e8251f8633bd7512cce0d7d1a7cfd689797e0daa5" +checksum = "8d3c0e6cc87a8be5582d08f929f96db25843f44cb636a0985a4a6bf02609c02f" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -713,6 +715,7 @@ dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_json", "serde_with", "thiserror 2.0.16", "tree_hash", @@ -721,20 +724,21 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c6a6c8ae298c2739706ee3cd996c220b0ea406e6841a4e4290c7336edd5f811" +checksum = "c2fe118e6c152d54cb4549b9835fb87d38b12754bb121375183ee3ec84bd0849" dependencies = [ "alloy-primitives 1.3.1", "derive_more", "serde", + "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1a77a23d609bca2e4a60f992dde5f987475cb064da355fa4dbd7cda2e1bb48" +checksum = "72a41624eb84bc743e414198bf10eb48b611a5554d6a9fd6205f7384d57dfd7f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -752,9 +756,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781d4d5020bea8f020e164f5593101c2e2f790d66d04a0727839d03bc4411ed7" +checksum = "1cd1e1b4dcdf13eaa96343e5c0dafc2d2e8ce5d20b90347169d46a1df0dec210" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -774,9 +778,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f742708f7ea7c3dc6067e7d87b6635c0817cf142b7c72cb8e8e3e07371aa3a" +checksum = "01620baa48d3f49fc908c781eb91ded71f3226e719bb6404697c2851cac4e098" dependencies = [ "alloy-consensus", "alloy-eips", @@ -789,9 +793,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719e5eb9c15e21dab3dee2cac53505500e5e701f25d556734279c5f02154022a" +checksum = "1bc33d9d0e0b3cfe9c2e82a1a427c9ed516fcfebe764f0adf7ceb8107f702dd1" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -803,9 +807,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c751233a6067ccc8a4cbd469e0fd34e0d9475fd118959dbc777ae3af31bba7" +checksum = "d4fa9e9b3e613425d2a2ee1a322bdad5f1cedf835406fd4b59538822500b44bc" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -815,9 +819,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30be84f45d4f687b00efaba1e6290cbf53ccc8f6b8fbb54e4c2f9d2a0474ce95" +checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", @@ -827,9 +831,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8c24b883fe56395db64afcd665fca32dcdef670a59e5338de6892c2e38d7e9" +checksum = "10ab1b8d4649bf7d0db8ab04e31658a6cc20364d920795484d886c35bed3bab4" dependencies = [ "alloy-primitives 1.3.1", "async-trait", @@ -842,9 +846,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05724615fd2ec3417f5cd07cab908300cbb3aae5badc1b805ca70c555b26775f" +checksum = "7bdeec36c8d9823102b571b3eab8b323e053dc19c12da14a9687bd474129bf2a" dependencies = [ "alloy-consensus", "alloy-network", @@ -893,7 +897,7 @@ dependencies = [ "alloy-sol-macro-input 0.8.25", "const-hex", "heck", - "indexmap 2.10.0", + "indexmap 2.11.0", "proc-macro-error2", "proc-macro2", "quote", @@ -912,7 +916,7 @@ dependencies = [ "alloy-sol-macro-input 1.3.1", "const-hex", "heck", - "indexmap 2.10.0", + "indexmap 2.11.0", "proc-macro-error2", "proc-macro2", "quote", @@ -1002,9 +1006,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b7f8b6c540b55e858f958d3a92223494cf83c4fb43ff9b26491edbeb3a3b71" +checksum = "dce5129146a76ca6139a19832c75ad408857a56bcd18cd2c684183b8eacd78d8" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -1026,9 +1030,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260e9584dfd7998760d7dfe1856c6f8f346462b9e7837287d7eddfb3922ef275" +checksum = "e2379d998f46d422ec8ef2b61603bc28cda931e5e267aea1ebe71f62da61d101" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -1041,9 +1045,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9491a1d81e97ae9d919da49e1c63dec4729c994e2715933968b8f780aa18793e" +checksum = "041aa5db2e907692a9a93a0a908057665c03e59364e1fbbeed613511a0159289" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -1061,9 +1065,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d056ef079553e1f18834d6ef4c2793e4d51ac742021b2be5039dd623fe1354f0" +checksum = "c6d44395e6793566e9c89bd82297cc4b0566655c1e78a1d69362640814784cc6" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1099,12 +1103,12 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e29436068f836727d4e7c819ae6bf6f9c9e19a32e96fc23e814709a277f23a" +checksum = "3b5becb9c269a7d05a2f28d549f86df5a5dbc923e2667eff84fdecac8cda534c" dependencies = [ "alloy-primitives 1.3.1", - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", @@ -1556,18 +1560,15 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.27" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" +checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23" dependencies = [ - "brotli", - "flate2", + "compression-codecs", + "compression-core", "futures-core", - "memchr", "pin-project-lite", "tokio", - "zstd", - "zstd-safe", ] [[package]] @@ -1873,7 +1874,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1896,7 +1897,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1947,18 +1948,18 @@ checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" [[package]] name = "bitfield" -version = "0.19.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db1bcd90f88eabbf0cadbfb87a45bceeaebcd3b4bc9e43da379cd2ef0162590d" +checksum = "62a3a774b2fcac1b726922b921ebba5e9fe36ad37659c822cf8ff2c1e0819892" dependencies = [ "bitfield-macros", ] [[package]] name = "bitfield-macros" -version = "0.19.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3787a07661997bfc05dd3431e379c0188573f78857080cf682e1393ab8e4d64c" +checksum = "52511b09931f7d5fe3a14f23adefbc23e5725b184013e96c8419febb61f14734" dependencies = [ "proc-macro2", "quote", @@ -1973,9 +1974,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" dependencies = [ "serde", ] @@ -2038,11 +2039,11 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c340fe0f0b267787095cbe35240c6786ff19da63ec7b69367ba338eace8169b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_interner", "boa_macros", "boa_string", - "indexmap 2.10.0", + "indexmap 2.11.0", "num-bigint", "rustc-hash 2.1.1", ] @@ -2054,7 +2055,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f620c3f06f51e65c0504ddf04978be1b814ac6586f0b45f6019801ab5efd37f9" dependencies = [ "arrayvec", - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_ast", "boa_gc", "boa_interner", @@ -2068,7 +2069,7 @@ dependencies = [ "fast-float2", "hashbrown 0.15.5", "icu_normalizer 1.5.0", - "indexmap 2.10.0", + "indexmap 2.11.0", "intrusive-collections", "itertools 0.13.0", "num-bigint", @@ -2114,7 +2115,7 @@ dependencies = [ "boa_gc", "boa_macros", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.0", "once_cell", "phf", "rustc-hash 2.1.1", @@ -2139,7 +2140,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cc142dac798cdc6e2dbccfddeb50f36d2523bb977a976e19bdb3ae19b740804" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_ast", "boa_interner", "boa_macros", @@ -2331,9 +2332,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.11" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" dependencies = [ "serde", ] @@ -2397,7 +2398,7 @@ checksum = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" dependencies = [ "clap", "heck", - "indexmap 2.10.0", + "indexmap 2.11.0", "log", "proc-macro2", "quote", @@ -2458,7 +2459,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -2484,9 +2485,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", "clap_derive", @@ -2494,9 +2495,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -2506,9 +2507,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck", "proc-macro2", @@ -2537,7 +2538,7 @@ version = "0.3.0" source = "git+https://github.com/automata-network/coco-provider-sdk#3a832b8cf5e88ef71649ab56e4efd67067b26b7c" dependencies = [ "bincode", - "bitfield 0.19.1", + "bitfield 0.19.2", "cbindgen", "iocuddle", "libc", @@ -2568,11 +2569,11 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.4" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" +checksum = "3f8e18d0dca9578507f13f9803add0df13362b02c501c1c17734f0dbb52eaf0b" dependencies = [ - "crossterm", + "crossterm 0.29.0", "unicode-segmentation", "unicode-width 0.2.0", ] @@ -2591,6 +2592,26 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "compression-codecs" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "485abf41ac0c8047c07c87c72c8fb3eb5197f6e9d7ded615dfd1a00ae00a0f64" +dependencies = [ + "brotli", + "compression-core", + "flate2", + "memchr", + "zstd", + "zstd-safe", +] + +[[package]] +name = "compression-core" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" + [[package]] name = "concat-kdf" version = "0.1.0" @@ -2771,7 +2792,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "crossterm_winapi", "mio", "parking_lot", @@ -2781,6 +2802,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.9.4", + "crossterm_winapi", + "document-features", + "parking_lot", + "rustix 1.0.8", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -2877,8 +2912,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]] @@ -2895,13 +2940,39 @@ dependencies = [ "syn 2.0.106", ] +[[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.106", +] + [[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.106", +] + +[[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.106", ] @@ -3020,9 +3091,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -3076,7 +3147,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.106", @@ -3169,7 +3240,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -3244,6 +3315,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -3538,7 +3618,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.106", @@ -3637,14 +3717,14 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3698,9 +3778,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -3833,9 +3913,9 @@ checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" [[package]] name = "generator" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" +checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" dependencies = [ "cc", "cfg-if", @@ -3880,7 +3960,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.3+wasi-0.2.4", "wasm-bindgen", ] @@ -3906,7 +3986,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "libc", "libgit2-sys", "log", @@ -3967,12 +4047,12 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.5" +version = "1.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66d61197a68f6323b9afa616cf83d55d69191e1bf364d4eb7d35ae18defe776" +checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3998,7 +4078,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.10.0", + "indexmap 2.11.0", "slab", "tokio", "tokio-util", @@ -4611,9 +4691,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -4698,9 +4778,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "arbitrary", "equivalent", @@ -4720,7 +4800,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "inotify-sys", "libc", ] @@ -4750,7 +4830,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a" dependencies = [ - "darling", + "darling 0.20.11", "indoc", "proc-macro2", "quote", @@ -4783,11 +4863,11 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cfg-if", "libc", ] @@ -4898,9 +4978,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -4908,9 +4988,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -5348,7 +5428,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "libc", "redox_syscall 0.5.17", ] @@ -5451,6 +5531,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +[[package]] +name = "litrs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" + [[package]] name = "lock_api" version = "0.4.13" @@ -5464,9 +5550,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "loom" @@ -5478,7 +5564,7 @@ dependencies = [ "generator", "scoped-tls", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -5562,11 +5648,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]] @@ -5599,9 +5685,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -5648,7 +5734,7 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.10.0", + "indexmap 2.11.0", "ipnet", "metrics", "metrics-util 0.19.1", @@ -5669,7 +5755,7 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.10.0", + "indexmap 2.11.0", "ipnet", "metrics", "metrics-util 0.20.0", @@ -5705,7 +5791,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.0", "metrics", "ordered-float", "quanta", @@ -5929,7 +6015,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "fsevent-sys", "inotify", "kqueue", @@ -5958,12 +6044,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]] @@ -6120,7 +6205,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] @@ -6319,51 +6404,51 @@ dependencies = [ "parking_lot", "rand 0.9.2", "reth", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-cli", "reth-cli-commands", "reth-cli-util", "reth-db", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-exex", "reth-ipc", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-ethereum", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-optimism-cli", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-optimism-node", - "reth-optimism-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-optimism-rpc", - "reth-optimism-txpool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-txpool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-primitives", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-eth-types", "reth-rpc-layer", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-testing-utils", "reth-tracing-otlp", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "rlimit", "rollup-boost", @@ -6385,7 +6470,7 @@ dependencies = [ "tokio-util", "tower 0.5.2", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "ureq", "url", "uuid", @@ -6428,7 +6513,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cfg-if", "foreign-types", "libc", @@ -6649,12 +6734,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" @@ -6744,7 +6823,7 @@ checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" dependencies = [ "parse-display-derive", "regex", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] @@ -6756,7 +6835,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "regex-syntax 0.8.5", + "regex-syntax", "structmeta", "syn 2.0.106", ] @@ -6788,9 +6867,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" @@ -6974,9 +7053,9 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec 0.11.4", ] @@ -7082,7 +7161,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "chrono", "flate2", "hex", @@ -7096,7 +7175,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "chrono", "hex", ] @@ -7109,13 +7188,13 @@ checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.2", + "bitflags 2.9.4", "lazy_static", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax", "rusty-fork", "tempfile", "unarray", @@ -7171,7 +7250,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "memchr", "unicase", ] @@ -7208,9 +7287,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", @@ -7219,7 +7298,7 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2 0.5.10", + "socket2 0.6.0", "thiserror 2.0.16", "tokio", "tracing", @@ -7228,9 +7307,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", @@ -7249,16 +7328,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 0.5.10", + "socket2 0.6.0", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -7378,10 +7457,10 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cassowary", "compact_str", - "crossterm", + "crossterm 0.28.1", "indoc", "instability", "itertools 0.13.0", @@ -7399,7 +7478,7 @@ version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] @@ -7443,7 +7522,7 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] @@ -7490,47 +7569,32 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.1.10" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" 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" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "regress" @@ -7600,22 +7664,22 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-rpc-types", "aquamarine", "clap", "eyre", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-cli-runner", "reth-cli-util", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db", "reth-ethereum-cli", "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network", "reth-network-api", "reth-node-api", @@ -7623,22 +7687,22 @@ dependencies = [ "reth-node-core", "reth-node-ethereum", "reth-node-metrics", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-primitives", "reth-provider", "reth-ress-protocol", "reth-ress-provider", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tracing", ] @@ -7670,7 +7734,7 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7678,15 +7742,15 @@ dependencies = [ "futures-core", "futures-util", "metrics", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tracing", ] @@ -7720,7 +7784,7 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7732,14 +7796,14 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.9.2", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-database", "revm-state", "serde", @@ -7771,27 +7835,27 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-genesis", "alloy-primitives 1.3.1", "alloy-trie", "auto_impl", "derive_more", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde_json", ] [[package]] name = "reth-cli" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-genesis", "clap", @@ -7805,7 +7869,7 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "ahash", "alloy-chains", @@ -7816,7 +7880,7 @@ dependencies = [ "backon", "clap", "comfy-table", - "crossterm", + "crossterm 0.28.1", "eyre", "fdlimit", "futures", @@ -7825,13 +7889,13 @@ dependencies = [ "lz4", "ratatui", "reqwest", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db", "reth-db-api", "reth-db-common", @@ -7844,26 +7908,26 @@ dependencies = [ "reth-era-utils", "reth-eth-wire", "reth-etl", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-exex", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", "reth-prune", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-stages", "reth-static-file", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-trie-db", "secp256k1 0.30.0", "serde", @@ -7878,9 +7942,9 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tracing", ] @@ -7888,7 +7952,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -7896,7 +7960,7 @@ dependencies = [ "eyre", "libc", "rand 0.8.5", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "secp256k1 0.30.0", "serde", "thiserror 2.0.16", @@ -7924,7 +7988,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7935,8 +7999,8 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs-derive 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-zstd-compressors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs-derive 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-zstd-compressors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "visibility", ] @@ -7955,7 +8019,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "convert_case", "proc-macro2", @@ -7966,13 +8030,13 @@ dependencies = [ [[package]] name = "reth-config" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "eyre", "humantime-serde", "reth-network-types", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "toml", "url", @@ -7994,13 +8058,13 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "auto_impl", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "thiserror 2.0.16", ] @@ -8019,19 +8083,19 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] name = "reth-consensus-debug-client" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8045,7 +8109,7 @@ dependencies = [ "futures", "reqwest", "reth-node-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tracing", "ringbuffer", "serde", @@ -8056,7 +8120,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "derive_more", @@ -8065,12 +8129,12 @@ dependencies = [ "page_size", "parking_lot", "reth-db-api", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-libmdbx", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-nippy-jar", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tracing", "rustc-hash 2.1.1", "strum 0.27.2", @@ -8082,7 +8146,7 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -8094,15 +8158,15 @@ dependencies = [ "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-db-models 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-db-models 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "roaring", "serde", ] @@ -8110,26 +8174,26 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-genesis", "alloy-primitives 1.3.1", "boyer-moore-magiclen", "eyre", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-config", "reth-db-api", "reth-etl", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-node-types", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-trie-db", "serde", "serde_json", @@ -8150,22 +8214,22 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", ] [[package]] name = "reth-discv4" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8175,10 +8239,10 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "rand 0.8.5", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-net-banlist", "reth-net-nat", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "schnellru", "secp256k1 0.30.0", "serde", @@ -8191,7 +8255,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8202,10 +8266,10 @@ dependencies = [ "itertools 0.14.0", "metrics", "rand 0.9.2", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "secp256k1 0.30.0", "thiserror 2.0.16", "tokio", @@ -8215,7 +8279,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "data-encoding", @@ -8223,8 +8287,8 @@ dependencies = [ "hickory-resolver", "linked_hash_set", "parking_lot", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", "schnellru", "secp256k1 0.30.0", @@ -8239,7 +8303,7 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8252,16 +8316,16 @@ dependencies = [ "pin-project", "rayon", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db", "reth-db-api", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-testing-utils", "tempfile", "thiserror 2.0.16", @@ -8274,7 +8338,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "aes", "alloy-primitives 1.3.1", @@ -8290,7 +8354,7 @@ dependencies = [ "hmac", "pin-project", "rand 0.8.5", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "secp256k1 0.30.0", "sha2 0.10.9", "sha3", @@ -8305,7 +8369,7 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8313,14 +8377,14 @@ dependencies = [ "eyre", "futures-util", "op-alloy-rpc-types-engine", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tokio-stream", "tracing", @@ -8354,7 +8418,7 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8362,15 +8426,15 @@ dependencies = [ "alloy-rpc-types-engine", "auto_impl", "futures", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "thiserror 2.0.16", "tokio", @@ -8379,34 +8443,34 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "futures", "pin-project", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-engine-tree", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-p2p", "reth-node-types", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", "reth-prune", "reth-stages-api", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "thiserror 2.0.16", ] [[package]] name = "reth-engine-tree" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", @@ -8416,32 +8480,32 @@ dependencies = [ "mini-moka", "parking_lot", "rayon", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-p2p", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", "reth-prune", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-stages", "reth-stages-api", "reth-static-file", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tracing", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-trie-db", "reth-trie-parallel", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie-sparse 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-trie-sparse-parallel", "revm 28.0.1", "revm-primitives", @@ -8454,7 +8518,7 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8462,16 +8526,16 @@ dependencies = [ "futures", "itertools 0.14.0", "pin-project", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-engine-tree", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "serde_json", "tokio", @@ -8482,7 +8546,7 @@ dependencies = [ [[package]] name = "reth-era" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8490,7 +8554,7 @@ dependencies = [ "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "snap", "thiserror 2.0.16", ] @@ -8498,14 +8562,14 @@ dependencies = [ [[package]] name = "reth-era-downloader" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "bytes", "eyre", "futures-util", "reqwest", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "sha2 0.10.9", "tokio", ] @@ -8513,7 +8577,7 @@ dependencies = [ [[package]] name = "reth-era-utils" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8523,13 +8587,13 @@ dependencies = [ "reth-db-api", "reth-era", "reth-era-downloader", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-etl", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tracing", ] @@ -8548,18 +8612,18 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "thiserror 2.0.16", ] [[package]] name = "reth-eth-wire" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-chains", "alloy-primitives 1.3.1", @@ -8568,13 +8632,13 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-ecies", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-eth-wire-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "snap", "thiserror 2.0.16", @@ -8608,7 +8672,7 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8618,10 +8682,10 @@ dependencies = [ "alloy-rlp", "bytes", "derive_more", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-codecs-derive 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-codecs-derive 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "thiserror 2.0.16", ] @@ -8629,11 +8693,11 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "clap", "eyre", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-cli", "reth-cli-commands", "reth-cli-runner", @@ -8650,16 +8714,16 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tracing", ] @@ -8684,16 +8748,16 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "sha2 0.10.9", "thiserror 2.0.16", @@ -8715,7 +8779,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -8728,26 +8792,26 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-evm-ethereum", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-validator 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-validator 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "tracing", ] @@ -8770,7 +8834,7 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8778,9 +8842,9 @@ dependencies = [ "alloy-rlp", "arbitrary", "modular-bitfield", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-zstd-compressors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-zstd-compressors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "serde_with", ] @@ -8788,7 +8852,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "rayon", "reth-db-api", @@ -8819,43 +8883,43 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-primitives 1.3.1", "auto_impl", "derive_more", "futures-util", "metrics", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", ] [[package]] name = "reth-evm-ethereum" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", ] @@ -8875,13 +8939,13 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-primitives 1.3.1", "alloy-rlp", "nybbles", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "thiserror 2.0.16", ] @@ -8904,16 +8968,16 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-primitives 1.3.1", "derive_more", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "serde", "serde_with", @@ -8922,7 +8986,7 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8932,23 +8996,23 @@ dependencies = [ "itertools 0.14.0", "metrics", "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-config", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-exex-types", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-node-api", "reth-node-core", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-stages-api", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tracing", "rmp-serde", "thiserror 2.0.16", @@ -8960,13 +9024,13 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "serde_with", ] @@ -8984,17 +9048,30 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "serde", "serde_json", "thiserror 2.0.16", ] +[[package]] +name = "reth-gas-station" +version = "0.0.1" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +dependencies = [ + "alloy-primitives 1.3.1", + "alloy-rlp", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "revm-database", + "thiserror 2.0.16", +] + [[package]] name = "reth-invalid-block-hooks" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9004,15 +9081,15 @@ dependencies = [ "futures", "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc-api", "reth-tracing", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-bytecode", "revm-database", "serde", @@ -9022,7 +9099,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "bytes", "futures", @@ -9042,13 +9119,13 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "byteorder", "dashmap 6.1.0", "derive_more", - "indexmap 2.10.0", + "indexmap 2.11.0", "parking_lot", "reth-mdbx-sys", "smallvec", @@ -9059,7 +9136,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "bindgen 0.70.1", "cc", @@ -9077,7 +9154,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "futures", "metrics", @@ -9089,7 +9166,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", ] @@ -9097,7 +9174,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "futures-util", "if-addrs", @@ -9111,7 +9188,7 @@ dependencies = [ [[package]] name = "reth-network" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9129,28 +9206,28 @@ dependencies = [ "pin-project", "rand 0.8.5", "rand 0.9.2", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-discv4", "reth-discv5", "reth-dns-discovery", "reth-ecies", "reth-eth-wire", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-eth-wire-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-net-banlist", "reth-network-api", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-types", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "rustc-hash 2.1.1", "schnellru", "secp256k1 0.30.0", @@ -9166,7 +9243,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9176,10 +9253,10 @@ dependencies = [ "derive_more", "enr", "futures", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-eth-wire-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-types", "reth-tokio-util", "serde", @@ -9191,7 +9268,7 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9200,13 +9277,13 @@ dependencies = [ "derive_more", "futures", "parking_lot", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-eth-wire-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-types", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tracing", ] @@ -9227,7 +9304,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -9242,12 +9319,12 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eip2124", "humantime-serde", "reth-net-banlist", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "serde_json", "tracing", @@ -9256,14 +9333,14 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "anyhow", "bincode", "derive_more", "lz4_flex", "memmap2", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "thiserror 2.0.16", "tracing", @@ -9273,31 +9350,31 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-rpc-types-engine", "eyre", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db-api", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-api", "reth-node-core", "reth-node-types", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] name = "reth-node-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9311,25 +9388,25 @@ dependencies = [ "futures", "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "rayon", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-cli-util", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-consensus-debug-client", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", "reth-engine-local", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-engine-service", "reth-engine-tree", "reth-engine-util", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-exex", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-invalid-block-hooks", "reth-network", "reth-network-api", @@ -9339,8 +9416,8 @@ dependencies = [ "reth-node-ethstats", "reth-node-events", "reth-node-metrics", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", "reth-prune", "reth-rpc", @@ -9351,10 +9428,10 @@ dependencies = [ "reth-rpc-layer", "reth-stages", "reth-static-file", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", "reth-tracing", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "secp256k1 0.30.0", "serde_json", "tokio", @@ -9365,7 +9442,7 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9378,30 +9455,30 @@ dependencies = [ "futures", "humantime", "rand 0.9.2", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-cli-util", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db", "reth-discv4", "reth-discv5", "reth-engine-local", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tracing", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "secp256k1 0.30.0", "serde", "shellexpand", @@ -9417,29 +9494,29 @@ dependencies = [ [[package]] name = "reth-node-ethereum" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-network", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "eyre", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-engine-local", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-ethereum-consensus", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-evm-ethereum", "reth-network", "reth-node-api", "reth-node-builder", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", @@ -9447,7 +9524,7 @@ dependencies = [ "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "tokio", ] @@ -9455,17 +9532,17 @@ dependencies = [ [[package]] name = "reth-node-ethstats" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "chrono", "futures-util", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "serde_json", "thiserror 2.0.16", @@ -9479,7 +9556,7 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9489,13 +9566,13 @@ dependencies = [ "futures", "humantime", "pin-project", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-stages", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tracing", ] @@ -9503,7 +9580,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "eyre", "http", @@ -9513,8 +9590,8 @@ dependencies = [ "metrics-process", "metrics-util 0.19.1", "procfs", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tikv-jemalloc-ctl", "tokio", "tower 0.5.2", @@ -9524,13 +9601,13 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db-api", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] @@ -9559,7 +9636,7 @@ dependencies = [ [[package]] name = "reth-optimism-chainspec" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-chains", "alloy-consensus", @@ -9572,12 +9649,12 @@ dependencies = [ "op-alloy-consensus", "op-alloy-rpc-types", "paste", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "serde_json", "tar-no-std", @@ -9587,7 +9664,7 @@ dependencies = [ [[package]] name = "reth-optimism-cli" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9598,32 +9675,32 @@ dependencies = [ "eyre", "futures-util", "op-alloy-consensus", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-cli", "reth-cli-commands", "reth-cli-runner", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-optimism-node", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", "reth-prune", "reth-stages", "reth-static-file", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tracing", "serde", "tokio", @@ -9659,23 +9736,23 @@ dependencies = [ [[package]] name = "reth-optimism-consensus" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", "alloy-trie", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "thiserror 2.0.16", "tracing", @@ -9709,27 +9786,27 @@ dependencies = [ [[package]] name = "reth-optimism-evm" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-op-evm 0.18.3", "alloy-primitives 1.3.1", "op-alloy-consensus", "op-alloy-rpc-types-engine", "op-revm 9.0.1", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc-eth-api", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "thiserror 2.0.16", ] @@ -9748,18 +9825,18 @@ dependencies = [ [[package]] name = "reth-optimism-forks" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-op-hardforks", "alloy-primitives 1.3.1", "once_cell", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] name = "reth-optimism-node" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9770,32 +9847,32 @@ dependencies = [ "op-alloy-consensus", "op-alloy-rpc-types-engine", "op-revm 9.0.1", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-engine-local", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network", "reth-node-api", "reth-node-builder", "reth-node-core", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-optimism-rpc", "reth-optimism-storage", - "reth-optimism-txpool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-txpool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "serde", "tokio", @@ -9843,7 +9920,7 @@ dependencies = [ [[package]] name = "reth-optimism-payload-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9854,24 +9931,25 @@ dependencies = [ "derive_more", "op-alloy-consensus", "op-alloy-rpc-types-engine", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-txpool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-validator 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-gas-station", + "reth-optimism-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-txpool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-validator 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "serde", "sha2 0.10.9", @@ -9895,7 +9973,7 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9905,9 +9983,9 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-zstd-compressors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-zstd-compressors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "serde_with", ] @@ -9915,7 +9993,7 @@ dependencies = [ [[package]] name = "reth-optimism-rpc" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9941,26 +10019,26 @@ dependencies = [ "op-alloy-rpc-types-engine", "op-revm 9.0.1", "reqwest", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-node-api", "reth-node-builder", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-txpool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-txpool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "serde_json", "thiserror 2.0.16", @@ -9972,17 +10050,17 @@ dependencies = [ [[package]] name = "reth-optimism-storage" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db-api", "reth-node-api", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] @@ -10024,7 +10102,7 @@ dependencies = [ [[package]] name = "reth-optimism-txpool" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10042,15 +10120,15 @@ dependencies = [ "op-alloy-rpc-types", "op-revm 9.0.1", "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "thiserror 2.0.16", "tokio", @@ -10080,19 +10158,19 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "alloy-rpc-types", "futures-util", "metrics", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tokio-stream", "tracing", @@ -10113,10 +10191,10 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "pin-project", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tokio-stream", "tracing", @@ -10144,17 +10222,17 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", "op-alloy-rpc-types-engine", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "thiserror 2.0.16", "tokio", @@ -10173,11 +10251,11 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] @@ -10193,25 +10271,25 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] name = "reth-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "c-kzg", "once_cell", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] @@ -10244,7 +10322,7 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10264,7 +10342,7 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-bytecode", "revm-primitives", "revm-state", @@ -10277,7 +10355,7 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10290,27 +10368,27 @@ dependencies = [ "notify", "parking_lot", "rayon", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db", "reth-db-api", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-nippy-jar", "reth-node-types", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-trie-db", "revm-database", "revm-state", @@ -10322,7 +10400,7 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10330,16 +10408,16 @@ dependencies = [ "itertools 0.14.0", "metrics", "rayon", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-config", "reth-db-api", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-exex-types", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", "rustc-hash 2.1.1", "thiserror 2.0.16", @@ -10360,13 +10438,13 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "thiserror 2.0.16", ] @@ -10374,17 +10452,17 @@ dependencies = [ [[package]] name = "reth-ress-protocol" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "alloy-rlp", "futures", "reth-eth-wire", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network", "reth-network-api", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", "tokio-stream", "tracing", @@ -10393,25 +10471,25 @@ dependencies = [ [[package]] name = "reth-ress-provider" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "eyre", "futures", "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-node-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-ress-protocol", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "schnellru", "tokio", "tracing", @@ -10433,25 +10511,25 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", ] [[package]] name = "reth-rpc" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-genesis", "alloy-network", "alloy-primitives 1.3.1", @@ -10480,31 +10558,31 @@ dependencies = [ "jsonwebtoken", "parking_lot", "pin-project", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-evm-ethereum", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-api", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-types", "reth-node-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "revm-inspectors", "revm-primitives", @@ -10522,7 +10600,7 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-genesis", @@ -10540,17 +10618,17 @@ dependencies = [ "alloy-rpc-types-txpool", "alloy-serde", "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-network-peers 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc-eth-api", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", ] [[package]] name = "reth-rpc-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-network", "alloy-provider", @@ -10558,24 +10636,24 @@ dependencies = [ "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics", "pin-project", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-ipc", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-api", "reth-node-core", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc", "reth-rpc-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-layer", "reth-rpc-server-types", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "thiserror 2.0.16", "tokio", @@ -10588,7 +10666,7 @@ dependencies = [ [[package]] name = "reth-rpc-convert" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-json-rpc", @@ -10601,11 +10679,11 @@ dependencies = [ "op-alloy-network", "op-alloy-rpc-types", "op-revm 9.0.1", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-context 9.0.1", "thiserror 2.0.16", ] @@ -10613,7 +10691,7 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10623,17 +10701,17 @@ dependencies = [ "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics", "parking_lot", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-engine-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-builder-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc-api", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", "thiserror 2.0.16", "tokio", @@ -10643,12 +10721,12 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-json-rpc", "alloy-network", "alloy-primitives 1.3.1", @@ -10663,21 +10741,21 @@ dependencies = [ "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)", "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-api", "reth-node-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "revm-inspectors", "tokio", @@ -10687,11 +10765,11 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm 0.18.4", "alloy-network", "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -10703,21 +10781,21 @@ dependencies = [ "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics", "rand 0.9.2", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-rpc-convert", "reth-rpc-server-types", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-transaction-pool 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm 28.0.1", "revm-inspectors", "schnellru", @@ -10731,7 +10809,7 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-rpc-types-engine", "http", @@ -10745,14 +10823,14 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-api", "serde", "strum 0.27.2", @@ -10761,7 +10839,7 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10773,32 +10851,32 @@ dependencies = [ "num-traits", "rayon", "reqwest", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db", "reth-db-api", "reth-era", "reth-era-downloader", "reth-era-utils", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-etl", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-exex", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-p2p", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", "reth-prune", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-revm 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-stages-api", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-testing-utils", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-trie-db", "tempfile", "thiserror 2.0.16", @@ -10809,7 +10887,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10817,16 +10895,16 @@ dependencies = [ "auto_impl", "futures-util", "metrics", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-network-p2p", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", "reth-prune", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-static-file", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", "thiserror 2.0.16", "tokio", @@ -10845,33 +10923,33 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "serde", ] [[package]] name = "reth-static-file" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "parking_lot", "rayon", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-tokio-util", "tracing", ] @@ -10890,7 +10968,7 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "clap", @@ -10924,23 +11002,23 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db-api", - "reth-db-models 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-db-models 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-database", ] @@ -10963,15 +11041,15 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rlp", "derive_more", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-prune-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-static-file-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-database-interface", "thiserror 2.0.16", ] @@ -10995,7 +11073,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "auto_impl", "dyn-clone", @@ -11003,7 +11081,7 @@ dependencies = [ "metrics", "pin-project", "rayon", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "thiserror 2.0.16", "tokio", "tracing", @@ -11013,7 +11091,7 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11021,15 +11099,15 @@ dependencies = [ "alloy-primitives 1.3.1", "rand 0.8.5", "rand 0.9.2", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "secp256k1 0.30.0", ] [[package]] name = "reth-tokio-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "tokio", "tokio-stream", @@ -11039,7 +11117,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "clap", "eyre", @@ -11048,13 +11126,13 @@ dependencies = [ "tracing-appender", "tracing-journald", "tracing-logfmt", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] name = "reth-tracing-otlp" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "opentelemetry 0.29.1", "opentelemetry-otlp 0.29.0", @@ -11062,7 +11140,7 @@ dependencies = [ "opentelemetry_sdk 0.29.0", "tracing", "tracing-opentelemetry 0.30.0", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -11076,7 +11154,7 @@ dependencies = [ "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.2", + "bitflags 2.9.4", "futures-util", "metrics", "parking_lot", @@ -11104,7 +11182,7 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11112,23 +11190,25 @@ dependencies = [ "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.2", + "bitflags 2.9.4", "futures-util", "metrics", "parking_lot", "paste", "pin-project", "rand 0.9.2", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-eth-wire-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-ethereum-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-execution-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-fs-util 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-gas-station", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-optimism-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-api 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-interpreter 23.0.2", "revm-primitives", "rustc-hash 2.1.1", @@ -11167,7 +11247,7 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11177,13 +11257,13 @@ dependencies = [ "auto_impl", "itertools 0.14.0", "metrics", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-stages-types 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-sparse 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-database", "tracing", "triehash", @@ -11209,7 +11289,7 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -11225,8 +11305,8 @@ dependencies = [ "nybbles", "plain_hasher", "rayon", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "revm-database", "serde", "serde_with", @@ -11235,20 +11315,20 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "reth-db-api", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tracing", ] [[package]] name = "reth-trie-parallel" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -11257,14 +11337,14 @@ dependencies = [ "metrics", "rayon", "reth-db-api", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-provider", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-trie-db", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie-sparse 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "thiserror 2.0.16", "tokio", "tracing", @@ -11289,7 +11369,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -11297,10 +11377,10 @@ dependencies = [ "auto_impl", "metrics", "rayon", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "smallvec", "tracing", ] @@ -11308,17 +11388,17 @@ dependencies = [ [[package]] name = "reth-trie-sparse-parallel" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", "alloy-trie", "metrics", "rayon", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-metrics 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-common 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", + "reth-trie-sparse 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "smallvec", "tracing", ] @@ -11334,7 +11414,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" dependencies = [ "zstd", ] @@ -11361,8 +11441,7 @@ dependencies = [ [[package]] name = "revm" version = "28.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee5d3f7d031e90ab47c7488061bdc4875abc4e9dcea6c18f5dee09732d0436fb" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "revm-bytecode", "revm-context 9.0.1", @@ -11380,8 +11459,7 @@ dependencies = [ [[package]] name = "revm-bytecode" version = "6.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d800e6c2119457ded5b0af71634eb2468040bf97de468eee5a730272a106da0" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "bitvec", "phf", @@ -11408,8 +11486,7 @@ dependencies = [ [[package]] name = "revm-context" version = "9.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c63485b4d1b0e67f342f9a8c0e9f78b6b5f1750863a39bdf6ceabdbaaf4aed1" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "bitvec", "cfg-if", @@ -11457,8 +11534,7 @@ dependencies = [ [[package]] name = "revm-context-interface" version = "10.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "550cb8b9465e00bdb0a384922b69f864c5bcc228bed19c8ecbfa69fff2256382" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -11473,8 +11549,7 @@ dependencies = [ [[package]] name = "revm-database" version = "7.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40000c7d917c865f6c232a78581b78e70c43f52db17282bd1b52d4f0565bc8a2" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "alloy-eips", "revm-bytecode", @@ -11487,8 +11562,7 @@ dependencies = [ [[package]] name = "revm-database-interface" version = "7.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ccea7a168cba1196b1e57dd3e22c36047208c135f600f8e58cbe7d49957dba" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "auto_impl", "either", @@ -11519,8 +11593,7 @@ dependencies = [ [[package]] name = "revm-handler" version = "9.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb09d07e6799823ce5a344f1604236b53fe1a92bacd7122c0b16286f92254c2" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "auto_impl", "derive-where", @@ -11556,8 +11629,7 @@ dependencies = [ [[package]] name = "revm-inspector" version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2770c0d7e9f4f23660dc0b8b954b7a1eee8989ec97f936ebce366c78b6d7b915" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "auto_impl", "either", @@ -11573,9 +11645,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.28.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d3f54151c26870f50a3d7e8688e30a0f3578dd57bc69450caa1df11a7713906" +checksum = "364d0b3c46727dc810a9ddc40799805e85236424a1a9ddec3909c734e03f0657" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -11618,8 +11690,7 @@ dependencies = [ [[package]] name = "revm-interpreter" version = "25.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c938c0d4d617c285203cad8aba1cefeec383fcff2fdf94a4469f588ab979b5" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "revm-bytecode", "revm-context-interface 10.0.1", @@ -11656,8 +11727,7 @@ dependencies = [ [[package]] name = "revm-precompile" version = "26.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7bb5e8b92891c5ac9dd8dae157bd1d90aab01973ad4f99d4135d507facc3e7" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -11682,8 +11752,7 @@ dependencies = [ [[package]] name = "revm-primitives" version = "20.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ "alloy-primitives 1.3.1", "num_enum", @@ -11694,10 +11763,9 @@ dependencies = [ [[package]] name = "revm-state" version = "7.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d7f39ea56df3bfbb3c81c99b1f028d26f205b6004156baffbf1a4f84b46cfa" +source = "git+https://github.com/lightlink-network/revm?branch=feat%2Fgasless-2#f15d0e0df4e272e0948e97a3f509e9ce214611db" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "revm-bytecode", "revm-primitives", "serde", @@ -11805,7 +11873,7 @@ dependencies = [ [[package]] name = "rollup-boost" version = "0.1.0" -source = "git+http://github.com/flashbots/rollup-boost?branch=main#81c0699aeb29d2d0b443e25c1075bafcb1db3705" +source = "git+http://github.com/flashbots/rollup-boost?branch=main#0ce4158bc32f8405458c506ca38ad5d54aa81949" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-engine", @@ -11846,7 +11914,7 @@ dependencies = [ "tower-http", "tracing", "tracing-opentelemetry 0.29.0", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "url", "vergen", "vergen-git2", @@ -11860,9 +11928,9 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "rug" -version = "1.27.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4207e8d668e5b8eb574bda8322088ccd0d7782d3d03c7e8d562e82ed82bdcbc3" +checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" dependencies = [ "az", "gmp-mpfr-sys", @@ -11964,7 +12032,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.4.15", @@ -11977,7 +12045,7 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.9.4", @@ -12227,7 +12295,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -12240,7 +12308,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -12340,7 +12408,7 @@ version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.0", "itoa", "memchr", "ryu", @@ -12399,7 +12467,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.10.0", + "indexmap 2.11.0", "schemars 0.9.0", "schemars 1.0.4", "serde", @@ -12415,7 +12483,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.106", @@ -12427,7 +12495,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.0", "itoa", "ryu", "serde", @@ -12883,7 +12951,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -12927,7 +12995,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac9ee8b664c9f1740cd813fea422116f8ba29997bb7c878d1940424889802897" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "log", "num-traits", ] @@ -12978,7 +13046,7 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -13149,12 +13217,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", - "itoa", "js-sys", "libc", "num-conv", @@ -13167,15 +13234,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -13364,7 +13431,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.0", "serde", "serde_spanned", "toml_datetime", @@ -13437,7 +13504,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.10.0", + "indexmap 2.11.0", "pin-project-lite", "slab", "sync_wrapper", @@ -13456,7 +13523,7 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.9.2", + "bitflags 2.9.4", "bytes", "futures-core", "futures-util", @@ -13512,7 +13579,7 @@ dependencies = [ "crossbeam-channel", "thiserror 1.0.69", "time", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -13554,7 +13621,7 @@ checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" dependencies = [ "libc", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -13577,7 +13644,7 @@ dependencies = [ "time", "tracing", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -13594,7 +13661,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-log", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "web-time", ] @@ -13612,7 +13679,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-log", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "web-time", ] @@ -13637,14 +13704,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", @@ -13675,7 +13742,7 @@ 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.106", @@ -13893,9 +13960,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -13929,9 +13996,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "getrandom 0.3.3", "js-sys", @@ -14046,30 +14113,31 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.3+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", @@ -14081,9 +14149,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ "cfg-if", "js-sys", @@ -14094,9 +14162,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -14104,9 +14172,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", @@ -14117,9 +14185,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] @@ -14139,9 +14207,9 @@ dependencies = [ [[package]] name = "wasmtimer" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d49b5d6c64e8558d9b1b065014426f35c18de636895d24893dbbd329743446" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" dependencies = [ "futures", "js-sys", @@ -14153,9 +14221,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -14285,7 +14353,7 @@ dependencies = [ "windows-collections", "windows-core 0.61.2", "windows-future", - "windows-link", + "windows-link 0.1.3", "windows-numerics", ] @@ -14331,7 +14399,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement 0.60.0", "windows-interface 0.59.1", - "windows-link", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] @@ -14343,7 +14411,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", - "windows-link", + "windows-link 0.1.3", "windows-threading", ] @@ -14419,6 +14487,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-numerics" version = "0.2.0" @@ -14426,7 +14500,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core 0.61.2", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -14435,7 +14509,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] @@ -14464,7 +14538,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -14483,7 +14557,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -14531,6 +14605,15 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -14583,7 +14666,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -14600,7 +14683,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -14785,9 +14868,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -14803,13 +14886,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.2", -] +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" [[package]] name = "write16" @@ -15074,9 +15154,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index e89709bc0..2d1e4d125 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,63 +40,63 @@ codegen-units = 1 incremental = false [workspace.dependencies] -reth = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-chain-state = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-cli = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-db-common = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628", features = [ +reth = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-chain-state = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-cli = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-cli-commands = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-cli-util = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-db = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-db-common = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-errors = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-payload-builder = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-node-api = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-rpc-engine-api = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-node-ethereum = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-trie = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-trie-parallel = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-basic-payload-builder = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-node-core = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-primitives = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-primitives-traits = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-provider = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2", features = [ "test-utils", ] } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-storage-api = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-evm = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-exex = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-payload-util = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-node-builder = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-ipc = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } +reth-chainspec = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-storage-api = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-rpc-api = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-evm = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-evm-ethereum = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-execution-errors = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-exex = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-tasks = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-metrics = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-trie-db = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-payload-primitives = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-transaction-pool = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-execution-types = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-revm = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-payload-builder-primitives = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-payload-util = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-rpc-layer = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-network-peers = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-testing-utils = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-node-builder = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-rpc-eth-types = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-tracing-otlp = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-ipc = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } # reth optimism -reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628", features = [ +reth-optimism-primitives = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-consensus = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-cli = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-forks = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-evm = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-node = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-payload-builder = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-chainspec = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-txpool = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2" } +reth-optimism-rpc = { git = "https://github.com/lightlink-network/reth", branch = "feat/gasless-2", features = [ "client", ] } @@ -104,6 +104,7 @@ revm = { version = "28.0.1", features = [ "std", "secp256k1", "optional_balance_check", + "optional_gasless", ], default-features = false } revm-inspectors = { version = "0.28.0", default-features = false } op-revm = { version = "9.0.1", default-features = false } @@ -185,3 +186,16 @@ time = { version = "0.3.36", features = ["macros", "formatting", "parsing"] } vergen = "9.0.4" vergen-git2 = "1.0.5" opentelemetry = { version = "0.29.1", features = ["trace"] } + +[patch.crates-io] +revm = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2", default-features = false, features = ["optional_gasless"] } +revm-primitives = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2" } +revm-interpreter = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2"} +revm-handler = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2" } +revm-context = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2"} +revm-context-interface = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2"} +revm-state = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2"} +revm-database = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2"} +revm-database-interface = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2"} +revm-bytecode = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2"} +revm-inspector = { git = "https://github.com/lightlink-network/revm", branch = "feat/gasless-2"} From 8c72681939edad31ef0ce06e8638e8c5c3aa79b0 Mon Sep 17 00:00:00 2001 From: sledro Date: Fri, 5 Sep 2025 03:28:14 +0100 Subject: [PATCH 02/54] Refactor fee calculation to exclude gasless transactions Updated the fee calculation logic in the OpPayloadBuilderCtx implementation to skip adding fees for gasless transactions by introducing a check using the is_gasless function. This change ensures that only valid transactions contribute to the total fees. --- crates/op-rbuilder/src/builders/context.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index 4fac34c80..075ffa104 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -20,7 +20,7 @@ use reth_optimism_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; use reth_optimism_forks::OpHardforks; use reth_optimism_node::OpPayloadBuilderAttributes; use reth_optimism_payload_builder::{config::OpDAConfig, error::OpPayloadBuilderError}; -use reth_optimism_primitives::{OpReceipt, OpTransactionSigned}; +use reth_optimism_primitives::{OpReceipt, OpTransactionSigned, is_gasless}; use reth_optimism_txpool::{ conditional::MaybeConditionalTransaction, estimated_da_size::DataAvailabilitySized, @@ -522,11 +522,13 @@ impl OpPayloadBuilderCtx { // commit changes evm.db_mut().commit(state); - // update add to total fees - let miner_fee = tx - .effective_tip_per_gas(base_fee) - .expect("fee is always valid; execution succeeded"); - info.total_fees += U256::from(miner_fee) * U256::from(gas_used); + if !is_gasless(&*tx) { + // update add to total fees + let miner_fee = tx + .effective_tip_per_gas(base_fee) + .expect("fee is always valid; execution succeeded"); + info.total_fees += U256::from(miner_fee) * U256::from(gas_used); + } // append sender and transaction to the respective lists info.executed_senders.push(tx.signer()); From d0f1aadc4eacafd41b0fb63ce530bf29858434b1 Mon Sep 17 00:00:00 2001 From: Ash Kunda <18058966+akundaz@users.noreply.github.com> Date: Fri, 5 Sep 2025 08:11:26 -0400 Subject: [PATCH 03/54] feat: address gas limiter (#253) * cli args * core impl * metrics * use the gas limiter * don't use optional gas limiter uses an "inner" struct to handle checking if it's enabled or not * cleanup stale addresses only every 100 blocks * unit tests * integration test --- Cargo.toml | 1 + crates/op-rbuilder/Cargo.toml | 4 +- crates/op-rbuilder/src/args/op.rs | 7 +- crates/op-rbuilder/src/builders/context.rs | 13 + .../src/builders/flashblocks/payload.rs | 8 + crates/op-rbuilder/src/builders/mod.rs | 8 + .../src/builders/standard/payload.rs | 8 + crates/op-rbuilder/src/gas_limiter/args.rs | 28 +++ crates/op-rbuilder/src/gas_limiter/error.rs | 13 + crates/op-rbuilder/src/gas_limiter/metrics.rs | 43 ++++ crates/op-rbuilder/src/gas_limiter/mod.rs | 223 ++++++++++++++++++ crates/op-rbuilder/src/lib.rs | 1 + .../op-rbuilder/src/tests/framework/utils.rs | 2 + crates/op-rbuilder/src/tests/gas_limiter.rs | 121 ++++++++++ crates/op-rbuilder/src/tests/mod.rs | 3 + 15 files changed, 479 insertions(+), 4 deletions(-) create mode 100644 crates/op-rbuilder/src/gas_limiter/args.rs create mode 100644 crates/op-rbuilder/src/gas_limiter/error.rs create mode 100644 crates/op-rbuilder/src/gas_limiter/metrics.rs create mode 100644 crates/op-rbuilder/src/gas_limiter/mod.rs create mode 100644 crates/op-rbuilder/src/tests/gas_limiter.rs diff --git a/Cargo.toml b/Cargo.toml index e89709bc0..e838901d9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -175,6 +175,7 @@ warp = "0.3.7" flate2 = "1.0.35" prometheus = "0.13.4" ctor = "0.2" +dashmap = "6.1" lazy_static = "1.4.0" tikv-jemallocator = { version = "0.6" } diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index a2bf891e3..8c1c3b281 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -104,6 +104,7 @@ parking_lot.workspace = true url.workspace = true anyhow = "1" opentelemetry = { workspace = true, optional = true } +dashmap.workspace = true tower = "0.5" futures = "0.3" @@ -124,7 +125,6 @@ ureq = "2.10" rollup-boost = { git = "http://github.com/flashbots/rollup-boost", branch = "main" } -dashmap = { version = "6.1", optional = true } nanoid = { version = "0.4", optional = true } reth-ipc = { workspace = true, optional = true } tar = { version = "0.4", optional = true } @@ -146,7 +146,6 @@ alloy-provider = { workspace = true, default-features = true, features = [ ] } tempfile = "3.8" macros = { path = "src/tests/framework/macros" } -dashmap = { version = "6.1" } nanoid = { version = "0.4" } reth-ipc = { workspace = true } reth-node-builder = { workspace = true, features = ["test-utils"] } @@ -175,7 +174,6 @@ min-debug-logs = ["tracing/release_max_level_debug"] min-trace-logs = ["tracing/release_max_level_trace"] testing = [ - "dashmap", "nanoid", "reth-ipc", "reth-node-builder/test-utils", diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 9c1d1fc20..8b3bd5bdf 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -4,7 +4,10 @@ //! clap [Args](clap::Args) for optimism rollup configuration -use crate::{flashtestations::args::FlashtestationsArgs, tx_signer::Signer}; +use crate::{ + flashtestations::args::FlashtestationsArgs, gas_limiter::args::GasLimiterArgs, + tx_signer::Signer, +}; use anyhow::{Result, anyhow}; use clap::Parser; use reth_optimism_cli::commands::Commands; @@ -60,6 +63,8 @@ pub struct OpRbuilderArgs { pub telemetry: TelemetryArgs, #[command(flatten)] pub flashtestations: FlashtestationsArgs, + #[command(flatten)] + pub gas_limiter: GasLimiterArgs, } impl Default for OpRbuilderArgs { diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index 4fac34c80..7863d441a 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -40,6 +40,7 @@ use tokio_util::sync::CancellationToken; use tracing::{debug, info, trace, warn}; use crate::{ + gas_limiter::AddressGasLimiter, metrics::OpRBuilderMetrics, primitives::reth::{ExecutionInfo, TxnExecutionResult}, traits::PayloadTxsBounds, @@ -72,6 +73,8 @@ pub struct OpPayloadBuilderCtx { pub extra_ctx: ExtraCtx, /// Max gas that can be used by a transaction. pub max_gas_per_txn: Option, + /// Rate limiting based on gas. This is an optional feature. + pub address_gas_limiter: AddressGasLimiter, } impl OpPayloadBuilderCtx { @@ -505,6 +508,16 @@ impl OpPayloadBuilderCtx { } } + if self + .address_gas_limiter + .consume_gas(tx.signer(), gas_used) + .is_err() + { + log_txn(TxnExecutionResult::MaxGasUsageExceeded); + best_txs.mark_invalid(tx.signer(), tx.nonce()); + continue; + } + info.cumulative_gas_used += gas_used; // record tx da size info.cumulative_da_bytes_used += tx_da_size; diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 04d366275..3110e1c6d 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -6,6 +6,7 @@ use crate::{ flashblocks::{best_txs::BestFlashblocksTxs, config::FlashBlocksConfigExt}, generator::{BlockCell, BuildArguments}, }, + gas_limiter::AddressGasLimiter, metrics::OpRBuilderMetrics, primitives::reth::ExecutionInfo, traits::{ClientBounds, PoolBounds}, @@ -118,6 +119,8 @@ pub struct OpPayloadBuilder { /// Builder events handle to send BuiltPayload events pub payload_builder_handle: Arc>>>, + /// Rate limiting based on gas. This is an optional feature. + pub address_gas_limiter: AddressGasLimiter, } impl OpPayloadBuilder { @@ -134,6 +137,7 @@ impl OpPayloadBuilder { ) -> eyre::Result { let metrics = Arc::new(OpRBuilderMetrics::default()); let ws_pub = WebSocketPublisher::new(config.specific.ws_addr, Arc::clone(&metrics))?.into(); + let address_gas_limiter = AddressGasLimiter::new(config.gas_limiter_config.clone()); Ok(Self { evm_config, pool, @@ -143,6 +147,7 @@ impl OpPayloadBuilder { metrics, builder_tx, payload_builder_handle, + address_gas_limiter, }) } } @@ -260,11 +265,14 @@ where target_flashblock_count: self.config.flashblocks_per_block(), }, max_gas_per_txn: self.config.max_gas_per_txn, + address_gas_limiter: self.address_gas_limiter.clone(), }; let state_provider = self.client.state_by_block_hash(ctx.parent().hash())?; let db = StateProviderDatabase::new(&state_provider); + self.address_gas_limiter.refresh(ctx.block_number()); + // 1. execute the pre steps and seal an early block with that let sequencer_tx_start_time = Instant::now(); let mut state = State::builder() diff --git a/crates/op-rbuilder/src/builders/mod.rs b/crates/op-rbuilder/src/builders/mod.rs index 92dc8394c..575e5bf4f 100644 --- a/crates/op-rbuilder/src/builders/mod.rs +++ b/crates/op-rbuilder/src/builders/mod.rs @@ -10,6 +10,7 @@ use reth_optimism_payload_builder::config::OpDAConfig; use crate::{ args::OpRbuilderArgs, flashtestations::args::FlashtestationsArgs, + gas_limiter::args::GasLimiterArgs, traits::{NodeBounds, PoolBounds}, tx_signer::Signer, }; @@ -114,6 +115,9 @@ pub struct BuilderConfig { pub specific: Specific, /// Maximum gas a transaction can use before being excluded. pub max_gas_per_txn: Option, + + /// Address gas limiter stuff + pub gas_limiter_config: GasLimiterArgs, } impl core::fmt::Debug for BuilderConfig { @@ -132,6 +136,8 @@ impl core::fmt::Debug for BuilderConfig { .field("block_time_leeway", &self.block_time_leeway) .field("da_config", &self.da_config) .field("specific", &self.specific) + .field("max_gas_per_txn", &self.max_gas_per_txn) + .field("gas_limiter_config", &self.gas_limiter_config) .finish() } } @@ -148,6 +154,7 @@ impl Default for BuilderConfig { specific: S::default(), sampling_ratio: 100, max_gas_per_txn: None, + gas_limiter_config: GasLimiterArgs::default(), } } } @@ -168,6 +175,7 @@ where da_config: Default::default(), sampling_ratio: args.telemetry.sampling_ratio, max_gas_per_txn: args.max_gas_per_txn, + gas_limiter_config: args.gas_limiter.clone(), specific: S::try_from(args)?, }) } diff --git a/crates/op-rbuilder/src/builders/standard/payload.rs b/crates/op-rbuilder/src/builders/standard/payload.rs index 295302ec4..c61fc32e8 100644 --- a/crates/op-rbuilder/src/builders/standard/payload.rs +++ b/crates/op-rbuilder/src/builders/standard/payload.rs @@ -1,6 +1,7 @@ use crate::{ builders::{BuilderConfig, generator::BuildArguments}, flashtestations::service::spawn_flashtestations_service, + gas_limiter::AddressGasLimiter, metrics::OpRBuilderMetrics, primitives::reth::ExecutionInfo, traits::{ClientBounds, NodeBounds, PayloadTxsBounds, PoolBounds}, @@ -99,6 +100,8 @@ pub struct StandardOpPayloadBuilder { pub best_transactions: Txs, /// The metrics for the builder pub metrics: Arc, + /// Rate limiting based on gas. This is an optional feature. + pub address_gas_limiter: AddressGasLimiter, } impl StandardOpPayloadBuilder { @@ -109,6 +112,7 @@ impl StandardOpPayloadBuilder { client: Client, config: BuilderConfig<()>, ) -> Self { + let address_gas_limiter = AddressGasLimiter::new(config.gas_limiter_config.clone()); Self { pool, client, @@ -116,6 +120,7 @@ impl StandardOpPayloadBuilder { evm_config, best_transactions: (), metrics: Default::default(), + address_gas_limiter, } } } @@ -276,10 +281,13 @@ where metrics: self.metrics.clone(), extra_ctx: Default::default(), max_gas_per_txn: self.config.max_gas_per_txn, + address_gas_limiter: self.address_gas_limiter.clone(), }; let builder = OpBuilder::new(best); + self.address_gas_limiter.refresh(ctx.block_number()); + let state_provider = self.client.state_by_block_hash(ctx.parent().hash())?; let db = StateProviderDatabase::new(state_provider); let metrics = ctx.metrics.clone(); diff --git a/crates/op-rbuilder/src/gas_limiter/args.rs b/crates/op-rbuilder/src/gas_limiter/args.rs new file mode 100644 index 000000000..ec7f8008b --- /dev/null +++ b/crates/op-rbuilder/src/gas_limiter/args.rs @@ -0,0 +1,28 @@ +use clap::Args; + +#[derive(Debug, Clone, Default, PartialEq, Eq, Args)] +pub struct GasLimiterArgs { + /// Enable address-based gas rate limiting + #[arg(long = "gas-limiter.enabled", env)] + pub gas_limiter_enabled: bool, + + /// Maximum gas per address in token bucket. Defaults to 10 million gas. + #[arg( + long = "gas-limiter.max-gas-per-address", + env, + default_value = "10000000" + )] + pub max_gas_per_address: u64, + + /// Gas refill rate per block. Defaults to 1 million gas per block. + #[arg( + long = "gas-limiter.refill-rate-per-block", + env, + default_value = "1000000" + )] + pub refill_rate_per_block: u64, + + /// How many blocks to wait before cleaning up stale buckets for addresses. + #[arg(long = "gas-limiter.cleanup-interval", env, default_value = "100")] + pub cleanup_interval: u64, +} diff --git a/crates/op-rbuilder/src/gas_limiter/error.rs b/crates/op-rbuilder/src/gas_limiter/error.rs new file mode 100644 index 000000000..a85b7f77c --- /dev/null +++ b/crates/op-rbuilder/src/gas_limiter/error.rs @@ -0,0 +1,13 @@ +use alloy_primitives::Address; + +#[derive(Debug, thiserror::Error)] +pub enum GasLimitError { + #[error( + "Address {address} exceeded gas limit: {requested} gwei requested, {available} gwei available" + )] + AddressLimitExceeded { + address: Address, + requested: u64, + available: u64, + }, +} diff --git a/crates/op-rbuilder/src/gas_limiter/metrics.rs b/crates/op-rbuilder/src/gas_limiter/metrics.rs new file mode 100644 index 000000000..e009b221f --- /dev/null +++ b/crates/op-rbuilder/src/gas_limiter/metrics.rs @@ -0,0 +1,43 @@ +use std::time::Duration; + +use metrics::{Counter, Gauge, Histogram}; +use reth_metrics::Metrics; + +use crate::gas_limiter::error::GasLimitError; + +#[derive(Metrics, Clone)] +#[metrics(scope = "op_rbuilder.gas_limiter")] +pub struct GasLimiterMetrics { + /// Transactions rejected by gas limits Labeled by reason: "per_address", + /// "global", "burst" + pub rejections: Counter, + + /// Time spent in rate limiting logic + pub check_time: Histogram, + + /// Number of addresses with active budgets + pub active_address_count: Gauge, + + /// Time to refill buckets + pub refresh_duration: Histogram, +} + +impl GasLimiterMetrics { + pub fn record_gas_check(&self, check_result: &Result, duration: Duration) { + if let Ok(created_new_bucket) = check_result { + if *created_new_bucket { + self.active_address_count.increment(1); + } + } else { + self.rejections.increment(1); + } + + self.check_time.record(duration); + } + + pub fn record_refresh(&self, removed_addresses: usize, duration: Duration) { + self.active_address_count + .decrement(removed_addresses as f64); + self.refresh_duration.record(duration); + } +} diff --git a/crates/op-rbuilder/src/gas_limiter/mod.rs b/crates/op-rbuilder/src/gas_limiter/mod.rs new file mode 100644 index 000000000..327a6749d --- /dev/null +++ b/crates/op-rbuilder/src/gas_limiter/mod.rs @@ -0,0 +1,223 @@ +use std::{cmp::min, sync::Arc, time::Instant}; + +use alloy_primitives::Address; +use dashmap::DashMap; + +use crate::gas_limiter::{args::GasLimiterArgs, error::GasLimitError, metrics::GasLimiterMetrics}; + +pub mod args; +pub mod error; +mod metrics; + +#[derive(Debug, Clone)] +pub struct AddressGasLimiter { + inner: Option, +} + +#[derive(Debug, Clone)] +struct AddressGasLimiterInner { + config: GasLimiterArgs, + // We don't need an Arc> here, we can get away with RefCell, but + // the reth PayloadBuilder trait needs this to be Send + Sync + address_buckets: Arc>, + metrics: GasLimiterMetrics, +} + +#[derive(Debug, Clone)] +struct TokenBucket { + capacity: u64, + available: u64, +} + +impl AddressGasLimiter { + pub fn new(config: GasLimiterArgs) -> Self { + Self { + inner: AddressGasLimiterInner::try_new(config), + } + } + + /// Check if there's enough gas for this address and consume it. Returns + /// Ok(()) if there's enough otherwise returns an error. + pub fn consume_gas(&self, address: Address, gas_requested: u64) -> Result<(), GasLimitError> { + if let Some(inner) = &self.inner { + inner.consume_gas(address, gas_requested) + } else { + Ok(()) + } + } + + /// Should be called upon each new block. Refills buckets/Garbage collection + pub fn refresh(&self, block_number: u64) { + if let Some(inner) = self.inner.as_ref() { + inner.refresh(block_number) + } + } +} + +impl AddressGasLimiterInner { + fn try_new(config: GasLimiterArgs) -> Option { + if !config.gas_limiter_enabled { + return None; + } + + Some(Self { + config, + address_buckets: Default::default(), + metrics: Default::default(), + }) + } + + fn consume_gas_inner( + &self, + address: Address, + gas_requested: u64, + ) -> Result { + let mut created_new_bucket = false; + let mut bucket = self + .address_buckets + .entry(address) + // if we don't find a bucket we need to initialize a new one + .or_insert_with(|| { + created_new_bucket = true; + TokenBucket::new(self.config.max_gas_per_address) + }); + + if gas_requested > bucket.available { + return Err(GasLimitError::AddressLimitExceeded { + address, + requested: gas_requested, + available: bucket.available, + }); + } + + bucket.available -= gas_requested; + + Ok(created_new_bucket) + } + + fn consume_gas(&self, address: Address, gas_requested: u64) -> Result<(), GasLimitError> { + let start = Instant::now(); + let result = self.consume_gas_inner(address, gas_requested); + + self.metrics.record_gas_check(&result, start.elapsed()); + + result.map(|_| ()) + } + + fn refresh_inner(&self, block_number: u64) -> usize { + let active_addresses = self.address_buckets.len(); + + self.address_buckets.iter_mut().for_each(|mut bucket| { + bucket.available = min( + bucket.capacity, + bucket.available + self.config.refill_rate_per_block, + ) + }); + + // Only clean up stale buckets every `cleanup_interval` blocks + if block_number % self.config.cleanup_interval == 0 { + self.address_buckets + .retain(|_, bucket| bucket.available <= bucket.capacity); + } + + active_addresses - self.address_buckets.len() + } + + fn refresh(&self, block_number: u64) { + let start = Instant::now(); + let removed_addresses = self.refresh_inner(block_number); + + self.metrics + .record_refresh(removed_addresses, start.elapsed()); + } +} + +impl TokenBucket { + fn new(capacity: u64) -> Self { + Self { + capacity, + available: capacity, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use alloy_primitives::Address; + + fn create_test_config(max_gas: u64, refill_rate: u64, cleanup_interval: u64) -> GasLimiterArgs { + GasLimiterArgs { + gas_limiter_enabled: true, + max_gas_per_address: max_gas, + refill_rate_per_block: refill_rate, + cleanup_interval, + } + } + + fn test_address() -> Address { + Address::from([1u8; 20]) + } + + #[test] + fn test_basic_refill() { + let config = create_test_config(1000, 200, 10); + let limiter = AddressGasLimiter::new(config); + + // Consume all gas + assert!(limiter.consume_gas(test_address(), 1000).is_ok()); + assert!(limiter.consume_gas(test_address(), 1).is_err()); + + // Refill and check available gas increased + limiter.refresh(1); + assert!(limiter.consume_gas(test_address(), 200).is_ok()); + assert!(limiter.consume_gas(test_address(), 1).is_err()); + } + + #[test] + fn test_over_capacity_request() { + let config = create_test_config(1000, 100, 10); + let limiter = AddressGasLimiter::new(config); + + // Request more than capacity should fail + let result = limiter.consume_gas(test_address(), 1500); + assert!(result.is_err()); + + if let Err(GasLimitError::AddressLimitExceeded { available, .. }) = result { + assert_eq!(available, 1000); + } + + // Bucket should still be full after failed request + assert!(limiter.consume_gas(test_address(), 1000).is_ok()); + } + + #[test] + fn test_multiple_users() { + // Simulate more realistic scenario + let config = create_test_config(10_000_000, 1_000_000, 100); // 10M max, 1M refill + let limiter = AddressGasLimiter::new(config); + + let searcher1 = Address::from([0x1; 20]); + let searcher2 = Address::from([0x2; 20]); + let attacker = Address::from([0x3; 20]); + + // Normal searchers use reasonable amounts + assert!(limiter.consume_gas(searcher1, 500_000).is_ok()); + assert!(limiter.consume_gas(searcher2, 750_000).is_ok()); + + // Attacker tries to consume massive amounts + assert!(limiter.consume_gas(attacker, 15_000_000).is_err()); // Should fail - over capacity + assert!(limiter.consume_gas(attacker, 5_000_000).is_ok()); // Should succeed - within capacity + + // Attacker tries to consume more + assert!(limiter.consume_gas(attacker, 6_000_000).is_err()); // Should fail - would exceed remaining + + // New block - refill + limiter.refresh(1); + + // Everyone should get some gas back + assert!(limiter.consume_gas(searcher1, 1_000_000).is_ok()); // Had 9.5M + 1M refill, now 9.5M + assert!(limiter.consume_gas(searcher2, 1_000_000).is_ok()); // Had 9.25M + 1M refill, now 9.25M + assert!(limiter.consume_gas(attacker, 1_000_000).is_ok()); // Had 5M + 1M refill, now 5M + } +} diff --git a/crates/op-rbuilder/src/lib.rs b/crates/op-rbuilder/src/lib.rs index 9449e98c3..7817ba2d0 100644 --- a/crates/op-rbuilder/src/lib.rs +++ b/crates/op-rbuilder/src/lib.rs @@ -1,6 +1,7 @@ pub mod args; pub mod builders; pub mod flashtestations; +pub mod gas_limiter; pub mod launcher; pub mod metrics; mod monitor_tx_pool; diff --git a/crates/op-rbuilder/src/tests/framework/utils.rs b/crates/op-rbuilder/src/tests/framework/utils.rs index 705a8d988..2cb5f51b3 100644 --- a/crates/op-rbuilder/src/tests/framework/utils.rs +++ b/crates/op-rbuilder/src/tests/framework/utils.rs @@ -34,6 +34,8 @@ impl TransactionBuilderExt for TransactionBuilder { self.with_create().with_input(hex!("60006000fd").into()) // PUSH1 0x00 PUSH1 0x00 REVERT } + // This transaction is big in the sense that it uses a lot of gas. The exact + // amount it uses is 86220 gas. fn random_big_transaction(self) -> Self { // PUSH13 0x63ffffffff60005260046000f3 PUSH1 0x00 MSTORE PUSH1 0x02 PUSH1 0x0d PUSH1 0x13 PUSH1 0x00 CREATE2 self.with_create() diff --git a/crates/op-rbuilder/src/tests/gas_limiter.rs b/crates/op-rbuilder/src/tests/gas_limiter.rs new file mode 100644 index 000000000..00dfb0353 --- /dev/null +++ b/crates/op-rbuilder/src/tests/gas_limiter.rs @@ -0,0 +1,121 @@ +use crate::{ + args::OpRbuilderArgs, + gas_limiter::args::GasLimiterArgs, + tests::{ChainDriverExt, LocalInstance, TransactionBuilderExt}, +}; +use macros::rb_test; +use std::collections::HashSet; +use tracing::info; + +/// Integration test for the gas limiter functionality. +/// Tests that gas limits are properly enforced during actual block building +/// and transaction execution. +#[rb_test(args = OpRbuilderArgs { + gas_limiter: GasLimiterArgs { + gas_limiter_enabled: true, + max_gas_per_address: 200000, // 200k gas per address - low for testing + refill_rate_per_block: 100000, // 100k gas refill per block + cleanup_interval: 100, + }, + ..Default::default() +})] +async fn gas_limiter_blocks_excessive_usage(rbuilder: LocalInstance) -> eyre::Result<()> { + let driver = rbuilder.driver().await?; + + // Fund some accounts for testing + let funded_accounts = driver + .fund_accounts(2, 10_000_000_000_000_000_000u128) + .await?; // 10 ETH each + + // These transactions should not be throttled + let tx1 = driver + .create_transaction() + .with_signer(funded_accounts[0]) + .random_valid_transfer() + .send() + .await?; + + let tx2 = driver + .create_transaction() + .with_signer(funded_accounts[1]) + .random_valid_transfer() + .send() + .await?; + + // Build block and verify inclusion + let block = driver.build_new_block_with_current_timestamp(None).await?; + let tx_hashes: HashSet<_> = block.transactions.hashes().collect(); + + assert!(tx_hashes.contains(tx1.tx_hash()), "tx1 should be included"); + assert!(tx_hashes.contains(tx2.tx_hash()), "tx2 should be included"); + + // Send multiple big transactions from the same address - these should hit the gas limiter + let mut sent_txs = Vec::new(); + for i in 0..5 { + let big_tx = driver + .create_transaction() + .with_signer(funded_accounts[0]) + .random_big_transaction() + .send() + .await?; + sent_txs.push(*big_tx.tx_hash()); + info!( + "Sent big transaction {} from address {}", + i + 1, + funded_accounts[0].address + ); + } + + // Meanwhile, the other address should not be throttled + let legit_tx = driver + .create_transaction() + .with_signer(funded_accounts[1]) + .random_big_transaction() + .send() + .await?; + + let block = driver.build_new_block_with_current_timestamp(None).await?; + let tx_hashes: HashSet<_> = block.transactions.hashes().collect(); + + let included_count = sent_txs.iter().filter(|tx| tx_hashes.contains(*tx)).count(); + + // With gas limiting, we shouldn't get all 5 big transactions from the same + // address. We do this imprecise count because we haven't built a way of + // sending a tx that uses an exact amount of gas. + assert!( + included_count < 5, + "Gas limiter should have rejected some transactions, included: {}/5", + included_count + ); + assert!( + included_count > 0, + "Gas limiter should have allowed at least one transaction" + ); + + assert!( + tx_hashes.contains(legit_tx.tx_hash()), + "Transaction from different address should be included" + ); + + // After building new blocks, the limited address should get more capacity + for _ in 0..3 { + let _block = driver.build_new_block_with_current_timestamp(None).await?; + } + + let tx_after_refill = driver + .create_transaction() + .with_signer(funded_accounts[0]) + .random_valid_transfer() + .send() + .await?; + + let refill_block = driver.build_new_block_with_current_timestamp(None).await?; + let refill_tx_hashes: HashSet<_> = refill_block.transactions.hashes().collect(); + + assert!( + refill_tx_hashes.contains(tx_after_refill.tx_hash()), + "Transaction should succeed after refill" + ); + + Ok(()) +} diff --git a/crates/op-rbuilder/src/tests/mod.rs b/crates/op-rbuilder/src/tests/mod.rs index ecdda8bb2..f32eccb61 100644 --- a/crates/op-rbuilder/src/tests/mod.rs +++ b/crates/op-rbuilder/src/tests/mod.rs @@ -8,6 +8,9 @@ mod flashblocks; #[cfg(test)] mod data_availability; +#[cfg(test)] +mod gas_limiter; + #[cfg(test)] mod ordering; From 3e1e288d3eb31d5a3ef50f5f5621d7ffc8f8ac39 Mon Sep 17 00:00:00 2001 From: sledro Date: Mon, 8 Sep 2025 16:26:03 +0100 Subject: [PATCH 04/54] add ll worksflow to build & push image --- .github/CODEOWNERS | 4 - .github/pull_request_template.md | 15 -- .github/workflows/build_and_publish.yml | 90 ++++++++ .github/workflows/checks_docker.yaml | 32 --- .github/workflows/docker_build.yaml | 88 ------- .github/workflows/op_rbuilder_checks.yaml | 76 ------- .github/workflows/op_rbuilder_release.yaml | 215 ------------------ .../workflows/tdx_quote_provider_checks.yaml | 67 ------ .../workflows/tdx_quote_provider_release.yaml | 141 ------------ 9 files changed, 90 insertions(+), 638 deletions(-) delete mode 100644 .github/CODEOWNERS delete mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/build_and_publish.yml delete mode 100644 .github/workflows/checks_docker.yaml delete mode 100644 .github/workflows/docker_build.yaml delete mode 100644 .github/workflows/op_rbuilder_checks.yaml delete mode 100644 .github/workflows/op_rbuilder_release.yaml delete mode 100644 .github/workflows/tdx_quote_provider_checks.yaml delete mode 100644 .github/workflows/tdx_quote_provider_release.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index f14bd443b..000000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,4 +0,0 @@ -# These owners will be the default owners for everything in -# the repo. Unless a later match takes precedence, -# they will be requested for review when someone opens a pull request. -* @SozinM @avalonche @karim-agha diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index d6f705027..000000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,15 +0,0 @@ -## 📝 Summary - - - -## 💡 Motivation and Context - - - ---- - -## ✅ I have completed the following steps: - -* [ ] Run `make lint` -* [ ] Run `make test` -* [ ] Added tests (if applicable) diff --git a/.github/workflows/build_and_publish.yml b/.github/workflows/build_and_publish.yml new file mode 100644 index 000000000..121659f26 --- /dev/null +++ b/.github/workflows/build_and_publish.yml @@ -0,0 +1,90 @@ +name: Test, Build Image & Push to ECR + +on: + push: + branches: + - lightlink # Trigger the workflow on pushes to the main branch + tags: + - "**" # Trigger the workflow on tags including hierarchical tags like v1.0/beta + pull_request: + types: [opened, synchronize] # Trigger the workflow when a PR is opened or updated + +env: + RELEASE_REVISION: ${{ github.sha }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: ${{ secrets.AWS_REGION }} + ECR_REPOSITORY: op-rbuilder + +jobs: + # test: + # name: Run Go Tests + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + + # - name: Set up Go + # uses: actions/setup-go@v5 + # with: + # go-version: 1.22.0 + + # - name: Test + # run: go test -v ./... + + release: + # needs: test + name: Build Image & Push to ECR + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.sha }} + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ env.AWS_REGION }} + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Docker cache layers + uses: actions/cache@v4 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-single-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-single-buildx + + - name: Get the version tag or short SHA + id: get-tag + run: | + if [[ "${{ github.ref }}" == refs/tags/* ]]; then + echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + else + echo "version=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT + fi + + - name: Push Image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ steps.get-tag.outputs.version }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new + build-args: | + RBUILDER_BIN=op-rbuilder + VERSION=${{ steps.get-tag.outputs.version }} + - name: Move cache + run: | + rm -rf /tmp/.buildx-cache + mv /tmp/.buildx-cache-new /tmp/.buildx-cache diff --git a/.github/workflows/checks_docker.yaml b/.github/workflows/checks_docker.yaml deleted file mode 100644 index bb0a6b9b8..000000000 --- a/.github/workflows/checks_docker.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: Docker Build Check - -on: - workflow_dispatch: - pull_request: - merge_group: - push: - branches: [main] - -jobs: - build-docker: - name: Build Docker image - runs-on: warp-ubuntu-latest-x64-32x - - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - - name: Docker QEMU - uses: docker/setup-qemu-action@v3 - - - name: Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Docker Build - uses: docker/build-push-action@v5 - with: - cache-from: type=gha - cache-to: type=gha,mode=max - platforms: linux/amd64 - context: . - push: false diff --git a/.github/workflows/docker_build.yaml b/.github/workflows/docker_build.yaml deleted file mode 100644 index 1e619ca3b..000000000 --- a/.github/workflows/docker_build.yaml +++ /dev/null @@ -1,88 +0,0 @@ -name: Docker Build Release - -on: - workflow_dispatch: - schedule: - - cron: "0 1 * * *" - -jobs: - extract-version: - name: Extract version - runs-on: warp-ubuntu-latest-x64-16x - outputs: - VERSION: ${{ steps.extract_version.outputs.VERSION }} - steps: - - name: Extract version - id: extract_version - run: | - if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - VERSION="${GITHUB_REF#refs/tags/}" - else - VERSION="$(echo ${GITHUB_SHA} | cut -c1-7)" - fi - echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - - echo "| | |" >> $GITHUB_STEP_SUMMARY - echo "| ------------------- | ---------------------- |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF_TYPE\` | \`${GITHUB_REF_TYPE}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF_NAME\` | \`${GITHUB_REF_NAME}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF\` | \`${GITHUB_REF}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_SHA\` | \`${GITHUB_SHA}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`VERSION\` | \`${VERSION}\` |" >> $GITHUB_STEP_SUMMARY - - build-docker: - name: Build and publish Docker image - needs: extract-version - runs-on: ${{ matrix.configs.runner }} - env: - VERSION: ${{ needs.extract-version.outputs.VERSION }} - permissions: - contents: read - packages: write - strategy: - matrix: - configs: - - target: linux/amd64 - runner: warp-ubuntu-latest-x64-16x - - target: linux/arm64 - runner: warp-ubuntu-latest-arm64-16x - steps: - - name: checkout sources - uses: actions/checkout@v4 - - - name: docker qemu - uses: docker/setup-qemu-action@v3 - - - name: docker buildx - uses: docker/setup-buildx-action@v3 - - - name: docker metadata - uses: docker/metadata-action@v5 - id: meta - with: - images: ghcr.io/${{ github.repository }} - labels: org.opencontainers.image.source=${{ github.repositoryUrl }} - tags: | - type=sha - type=schedule,pattern=nightly - - - name: docker login - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: docker build and push op-rbuilder - uses: docker/build-push-action@v5 - with: - cache-from: type=gha - cache-to: type=gha,mode=max - file: Dockerfile - context: . - labels: ${{ steps.meta.outputs.labels }} - platforms: ${{ matrix.configs.target }} - push: true - tags: ${{ steps.meta.outputs.tags }} - build-args: | - RBUILDER_BIN=op-rbuilder diff --git a/.github/workflows/op_rbuilder_checks.yaml b/.github/workflows/op_rbuilder_checks.yaml deleted file mode 100644 index b30b8fd8a..000000000 --- a/.github/workflows/op_rbuilder_checks.yaml +++ /dev/null @@ -1,76 +0,0 @@ -name: "[op-rbuilder] Checks" - -on: - workflow_dispatch: - pull_request: - merge_group: - push: - branches: [main] - -env: - CARGO_TERM_COLOR: always - -jobs: - lint_and_test: - name: Lint and test - runs-on: warp-ubuntu-latest-x64-32x - env: - # Set features for the Makefile - FEATURES: ${{ matrix.features }} - strategy: - matrix: - toolchain: - - nightly - features: - - "" - - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - # https://github.com/dtolnay/rust-toolchain - - name: Setup rust toolchain - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ matrix.toolchain }} - components: "rustfmt,clippy" - - # https://github.com/swatinem/rust-cache - - name: Run Swatinem/rust-cache@v2 - if: ${{ !env.ACT }} - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - # https://github.com/Mozilla-Actions/sccache-action - - name: Run sccache-action - if: ${{ !env.ACT }} - uses: mozilla-actions/sccache-action@v0.0.9 - - - name: Set sccache env vars - if: ${{ !env.ACT }} - run: | - echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV - echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV - - - name: Install Foundry toolchain - uses: foundry-rs/foundry-toolchain@v1 - with: - version: nightly - - - name: Install native dependencies - run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev clang libclang-dev llvm build-essential pkg-config libtss2-dev - - - name: Compile tester - run: make tester - - - name: Compile op-rbuilder - run: cargo build -p op-rbuilder --bin op-rbuilder - - - name: Lint - run: make lint - - - name: Test - run: make test - env: - TESTS_TEMP_DIR: ${{ github.workspace }} diff --git a/.github/workflows/op_rbuilder_release.yaml b/.github/workflows/op_rbuilder_release.yaml deleted file mode 100644 index f61358d69..000000000 --- a/.github/workflows/op_rbuilder_release.yaml +++ /dev/null @@ -1,215 +0,0 @@ -name: "[op-rbuilder] Release" - -on: - push: - tags: - - "op-rbuilder/v*" - workflow_dispatch: - inputs: - draft-release: - default: false - description: "Draft Release" - required: false - type: boolean - build-docker: - default: false - description: "Build Docker" - required: false - type: boolean - build-binary: - default: true - description: "Build Binary" - required: false - type: boolean - features: - default: "" - description: "Binary Compilation Features" - options: - - "" - - "redact-sensitive" - - "flashblocks" - required: false - type: choice - -jobs: - extract-version: - name: Extract version - runs-on: warp-ubuntu-latest-x64-16x - outputs: - VERSION: ${{ steps.extract_version.outputs.VERSION }} - steps: - - name: Extract version - id: extract_version - run: | - if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - VERSION="${GITHUB_REF#refs/tags/op-rbuilder/}" - else - VERSION="$(echo ${GITHUB_SHA} | cut -c1-7)" - fi - echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - - echo "| | |" >> $GITHUB_STEP_SUMMARY - echo "| ------------------- | ---------------------- |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF_TYPE\` | \`${GITHUB_REF_TYPE}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF_NAME\` | \`${GITHUB_REF_NAME}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF\` | \`${GITHUB_REF}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_SHA\` | \`${GITHUB_SHA}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`VERSION\` | \`${VERSION}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`FEATURES\` | \`${{ github.event.inputs.features || 'none' }}\` |" >> $GITHUB_STEP_SUMMARY - - build-binary: - name: Build binary - needs: extract-version - if: ${{ github.event.inputs.build-binary == 'true' || github.event_name == 'push'}} # when manually triggered or version tagged - runs-on: ${{ matrix.configs.runner }} - container: - image: ubuntu:22.04 - permissions: - contents: write - packages: write - strategy: - matrix: - configs: - - target: x86_64-unknown-linux-gnu - runner: warp-ubuntu-latest-x64-32x - - target: aarch64-unknown-linux-gnu - runner: warp-ubuntu-latest-arm64-32x - # Paused until docker is pre-installed https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md - # - target: aarch64-apple-darwin - # runner: warp-macos-14-arm64-6x - features: - - ${{ github.event.inputs.features || '' }} - - steps: - - name: Install dependencies - run: | - apt-get update - apt-get install -y \ - build-essential \ - curl \ - git \ - libclang-dev \ - libssl-dev \ - pkg-config \ - protobuf-compiler - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - - - uses: actions/checkout@v4 # must install git before checkout and set safe.directory after checkout because of container - - - name: Build op-rbuilder binary - run: | - git config --global --add safe.directory "$(pwd)" - . $HOME/.cargo/env - cargo build --release --features=${{ matrix.features }} --target ${{ matrix.configs.target }} --package op-rbuilder - - - name: Upload op-rbuilder artifact - uses: actions/upload-artifact@v4 - with: - name: op-rbuilder-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}${{ matrix.features && '-' }}${{ matrix.features }} - path: target/${{ matrix.configs.target }}/release/op-rbuilder - - draft-release: - name: Draft release - if: ${{ github.event.inputs.draft-release == 'true' || github.event_name == 'push'}} # when manually triggered or version tagged - needs: [extract-version, build-binary] - runs-on: warp-ubuntu-latest-x64-16x - env: - VERSION: op-rbuilder/${{ needs.extract-version.outputs.VERSION }} - permissions: - contents: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - merge-multiple: true - path: artifacts - - - name: Record artifacts checksums - working-directory: artifacts - run: | - find ./ || true - for file in *; do sha256sum "$file" >> sha256sums.txt; done; - cat sha256sums.txt - - - name: Create release draft - uses: softprops/action-gh-release@v2.0.5 - id: create-release-draft - with: - draft: true - files: artifacts/* - generate_release_notes: true - name: ${{ env.VERSION }} - tag_name: ${{ env.VERSION }} - - - name: Write Github Step Summary - run: | - echo "---" - echo "### Release Draft: ${{ env.VERSION }}" >> $GITHUB_STEP_SUMMARY - echo "${{ steps.create-release-draft.outputs.url }}" >> $GITHUB_STEP_SUMMARY - - build-docker: - if: ${{ github.event.inputs.build-docker == 'true' }} - name: Build and publish Docker image - needs: extract-version - runs-on: ${{ matrix.configs.runner }} - env: - VERSION: ${{ needs.extract-version.outputs.VERSION }} - permissions: - contents: read - packages: write - strategy: - matrix: - configs: - - target: linux/amd64 - runner: warp-ubuntu-latest-x64-16x - - target: linux/arm64 - runner: warp-ubuntu-latest-arm64-16x - steps: - - name: checkout sources - uses: actions/checkout@v4 - - - name: docker qemu - uses: docker/setup-qemu-action@v3 - - - name: docker buildx - uses: docker/setup-buildx-action@v3 - - - name: docker metadata - uses: docker/metadata-action@v5 - id: meta - with: - images: ghcr.io/${{ github.repository }} - labels: org.opencontainers.image.source=${{ github.repositoryUrl }} - tags: | - type=sha - type=semver,pattern={{version}},value=${{ env.VERSION }} - type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }} - type=semver,pattern={{major}},value=${{ env.VERSION }} - - # Push latest tag for full version only, not for prerelease versions (i.e. not for v1.2.3-rc1) - type=raw,value=latest,enable=${{ !contains(env.VERSION, '-') }} - - - name: docker login - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: docker build and push op-rbuilder - uses: docker/build-push-action@v5 - with: - cache-from: type=gha - cache-to: type=gha,mode=max - file: Dockerfile - context: . - labels: ${{ steps.meta.outputs.labels }} - platforms: ${{ matrix.configs.target }} - push: true - tags: ${{ steps.meta.outputs.tags }} - build-args: | - FEATURES=${{ github.event.inputs.features || '' }} - RBUILDER_BIN=op-rbuilder diff --git a/.github/workflows/tdx_quote_provider_checks.yaml b/.github/workflows/tdx_quote_provider_checks.yaml deleted file mode 100644 index 48f83bda0..000000000 --- a/.github/workflows/tdx_quote_provider_checks.yaml +++ /dev/null @@ -1,67 +0,0 @@ -name: "[tdx-quote-provider] Checks" - -on: - push: - branches: [main] - pull_request: - -env: - CARGO_TERM_COLOR: always - -jobs: - check: - name: Check - runs-on: warp-ubuntu-latest-x64-16x - defaults: - run: - working-directory: "./crates/tdx-quote-provider" - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: stable - components: rustfmt - - - name: Install native dependencies - run: sudo apt-get update && sudo apt-get install -y libtss2-dev - - - name: Cache dependencies - uses: Swatinem/rust-cache@v2 - - - name: Run build - run: cargo build - - - name: Check formatting - run: cargo fmt --all -- --check - - - name: Run clippy - run: cargo clippy -- -D warnings - - - name: Run tests - run: cargo test --all-features - - - name: Check for common mistakes - run: cargo check - - docker: - name: Docker Build - runs-on: warp-ubuntu-latest-x64-16x - defaults: - run: - working-directory: "./crates/tdx-quote-provider" - steps: - - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: false - cache-from: type=gha - cache-to: type=gha,mode=max diff --git a/.github/workflows/tdx_quote_provider_release.yaml b/.github/workflows/tdx_quote_provider_release.yaml deleted file mode 100644 index 419749faa..000000000 --- a/.github/workflows/tdx_quote_provider_release.yaml +++ /dev/null @@ -1,141 +0,0 @@ -name: "[tdx-quote-provider] Release" - -on: - push: - tags: - - "tdx-quote-provider/v*" - workflow_dispatch: - inputs: - draft-release: - default: false - description: "Draft Release" - required: false - type: boolean - features: - default: "" - description: "Binary Compilation Features" - options: - - "" - required: false - type: choice - -jobs: - extract-version: - name: Extract version - runs-on: warp-ubuntu-latest-x64-16x - outputs: - VERSION: ${{ steps.extract_version.outputs.VERSION }} - steps: - - name: Extract version - id: extract_version - run: | - if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - VERSION="${GITHUB_REF#refs/tags/tdx-quote-provider/}" - else - VERSION="$(echo ${GITHUB_SHA} | cut -c1-7)" - fi - echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - - echo "| | |" >> $GITHUB_STEP_SUMMARY - echo "| ------------------- | ---------------------- |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF_TYPE\` | \`${GITHUB_REF_TYPE}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF_NAME\` | \`${GITHUB_REF_NAME}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF\` | \`${GITHUB_REF}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_SHA\` | \`${GITHUB_SHA}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`VERSION\` | \`${VERSION}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`FEATURES\` | \`${{ github.event.inputs.features || 'none' }}\` |" >> $GITHUB_STEP_SUMMARY - - build-binary: - name: Build binary - needs: extract-version - runs-on: ${{ matrix.configs.runner }} - container: - image: ubuntu:22.04 - permissions: - contents: write - packages: write - strategy: - matrix: - configs: - - target: x86_64-unknown-linux-gnu - runner: warp-ubuntu-latest-x64-32x - - target: aarch64-unknown-linux-gnu - runner: warp-ubuntu-latest-arm64-32x - # Paused until docker is pre-installed https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md - # - target: aarch64-apple-darwin - # runner: warp-macos-14-arm64-6x - features: - - ${{ github.event.inputs.features || '' }} - - steps: - - name: Install dependencies - run: | - apt-get update - apt-get install -y \ - build-essential \ - curl \ - git \ - libclang-dev \ - libssl-dev \ - libtss2-dev \ - pkg-config \ - protobuf-compiler - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - - - uses: actions/checkout@v4 # must install git before checkout and set safe.directory after checkout because of container - - - name: Build tdx-quote-provider binary - run: | - git config --global --add safe.directory "$(pwd)" - . $HOME/.cargo/env - cargo build --release --features=${{ matrix.features }} --target ${{ matrix.configs.target }} --package tdx-quote-provider - mkdir -p artifacts - mv target/${{ matrix.configs.target }}/release/tdx-quote-provider artifacts/tdx-quote-provider-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}${{ matrix.features && '-' }}${{ matrix.features }} - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: tdx-quote-provider-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}${{ matrix.features && '-' }}${{ matrix.features }} - path: artifacts - - draft-release: - name: Draft release - if: ${{ github.event.inputs.draft-release == 'true' || github.event_name == 'push'}} # when manually triggered or version tagged - needs: [extract-version, build-binary] - runs-on: warp-ubuntu-latest-x64-16x - env: - VERSION: op-${{ needs.extract-version.outputs.VERSION }} - permissions: - contents: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - merge-multiple: true - path: artifacts - - - name: Record artifacts checksums - working-directory: artifacts - run: | - find ./ || true - for file in *; do sha256sum "$file" >> sha256sums.txt; done; - cat sha256sums.txt - - - name: Create release draft - uses: softprops/action-gh-release@v2.0.5 - id: create-release-draft - with: - draft: true - files: artifacts/* - generate_release_notes: true - name: ${{ env.VERSION }} - tag_name: ${{ env.VERSION }} - - - name: Write Github Step Summary - run: | - echo "---" - echo "### Release Draft: ${{ env.VERSION }}" >> $GITHUB_STEP_SUMMARY - echo "${{ steps.create-release-draft.outputs.url }}" >> $GITHUB_STEP_SUMMARY From 6abfa98101968b481ccf15822c194675a32841f2 Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 9 Sep 2025 09:10:01 +0200 Subject: [PATCH 05/54] chore: release op-rbuilder 0.2.1 (#255) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7675e1d3a..6677f5679 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6270,7 +6270,7 @@ dependencies = [ [[package]] name = "op-rbuilder" -version = "0.2.0" +version = "0.2.1" dependencies = [ "alloy-consensus", "alloy-contract", diff --git a/Cargo.toml b/Cargo.toml index e838901d9..9a9866135 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "0.2.0" +version = "0.2.1" edition = "2024" rust-version = "1.86" license = "MIT OR Apache-2.0" From 0db3a0c14012293044a4bae49d87d2bb642ad0bc Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 9 Sep 2025 20:22:49 +0100 Subject: [PATCH 06/54] Add Docker build workflow for image release This commit introduces a new GitHub Actions workflow to automate the building and publishing of Docker images. The workflow triggers on pushes to the main branch and on tags, extracting the version from the Git reference. It supports multi-platform builds for both amd64 and arm64 architectures, ensuring efficient image management and deployment. --- .github/workflows/docker_build.yml | 92 ++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 .github/workflows/docker_build.yml diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml new file mode 100644 index 000000000..ac4a48536 --- /dev/null +++ b/.github/workflows/docker_build.yml @@ -0,0 +1,92 @@ +name: Docker Build Release + +on: + push: + branches: + - lightlink # Trigger the workflow on pushes to the main branch + tags: + - "**" # Trigger the workflow on tags including hierarchical tags like v1.0/beta + pull_request: + types: [opened, synchronize] # Trigger the workflow when a PR is opened or updated + +jobs: + extract-version: + name: Extract version + runs-on: warp-ubuntu-latest-x64-16x + outputs: + VERSION: ${{ steps.extract_version.outputs.VERSION }} + steps: + - name: Extract version + id: extract_version + run: | + if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then + VERSION="${GITHUB_REF#refs/tags/}" + else + VERSION="$(echo ${GITHUB_SHA} | cut -c1-7)" + fi + echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT + + echo "| | |" >> $GITHUB_STEP_SUMMARY + echo "| ------------------- | ---------------------- |" >> $GITHUB_STEP_SUMMARY + echo "| \`GITHUB_REF_TYPE\` | \`${GITHUB_REF_TYPE}\` |" >> $GITHUB_STEP_SUMMARY + echo "| \`GITHUB_REF_NAME\` | \`${GITHUB_REF_NAME}\` |" >> $GITHUB_STEP_SUMMARY + echo "| \`GITHUB_REF\` | \`${GITHUB_REF}\` |" >> $GITHUB_STEP_SUMMARY + echo "| \`GITHUB_SHA\` | \`${GITHUB_SHA}\` |" >> $GITHUB_STEP_SUMMARY + echo "| \`VERSION\` | \`${VERSION}\` |" >> $GITHUB_STEP_SUMMARY + + build-docker: + name: Build and publish Docker image + needs: extract-version + runs-on: ${{ matrix.configs.runner }} + env: + VERSION: ${{ needs.extract-version.outputs.VERSION }} + permissions: + contents: read + packages: write + strategy: + matrix: + configs: + - target: linux/amd64 + runner: warp-ubuntu-latest-x64-16x + - target: linux/arm64 + runner: warp-ubuntu-latest-arm64-16x + steps: + - name: checkout sources + uses: actions/checkout@v4 + + - name: docker qemu + uses: docker/setup-qemu-action@v3 + + - name: docker buildx + uses: docker/setup-buildx-action@v3 + + - name: docker metadata + uses: docker/metadata-action@v5 + id: meta + with: + images: ghcr.io/${{ github.repository }} + labels: org.opencontainers.image.source=${{ github.repositoryUrl }} + tags: | + type=sha + type=schedule,pattern=nightly + + - name: docker login + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: docker build and push op-rbuilder + uses: docker/build-push-action@v5 + with: + cache-from: type=gha + cache-to: type=gha,mode=max + file: Dockerfile + context: . + labels: ${{ steps.meta.outputs.labels }} + platforms: ${{ matrix.configs.target }} + push: true + tags: ${{ steps.meta.outputs.tags }} + build-args: | + RBUILDER_BIN=op-rbuilder From 42954796b6e1316268cd05f7720283cebad46363 Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 9 Sep 2025 20:38:13 +0100 Subject: [PATCH 07/54] Update Docker build workflow to use ubuntu-latest runner --- .github/workflows/docker_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index ac4a48536..120508f46 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -12,7 +12,7 @@ on: jobs: extract-version: name: Extract version - runs-on: warp-ubuntu-latest-x64-16x + runs-on: ubuntu-latest outputs: VERSION: ${{ steps.extract_version.outputs.VERSION }} steps: From e5999e32f0c3bcc0af6b957c463dc202edadb109 Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 9 Sep 2025 20:41:37 +0100 Subject: [PATCH 08/54] Refactor Docker build workflow to simplify runner configuration by using ubuntu-latest for all targets --- .github/workflows/docker_build.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 120508f46..63be92c2c 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -47,9 +47,7 @@ jobs: matrix: configs: - target: linux/amd64 - runner: warp-ubuntu-latest-x64-16x - - target: linux/arm64 - runner: warp-ubuntu-latest-arm64-16x + runner: ubuntu-latest steps: - name: checkout sources uses: actions/checkout@v4 From 6750f4c8838af8a32380d9071a075650feaf9061 Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 9 Sep 2025 21:01:58 +0100 Subject: [PATCH 09/54] Update dependencies in Cargo.lock to latest versions, including indexmap (2.11.1), chrono (0.4.42), rustix (1.1.2), and others. Adjusted various package sources to point to the latest commits in the lightlink-network/reth repository for gasless features. --- Cargo.lock | 379 ++++++++++++++++++++++++++--------------------------- 1 file changed, 186 insertions(+), 193 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3d4a129fc..b1444dc25 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -497,7 +497,7 @@ dependencies = [ "derive_more", "foldhash", "hashbrown 0.15.5", - "indexmap 2.11.0", + "indexmap 2.11.1", "itoa", "k256", "keccak-asm", @@ -526,7 +526,7 @@ dependencies = [ "foldhash", "getrandom 0.3.3", "hashbrown 0.15.5", - "indexmap 2.11.0", + "indexmap 2.11.1", "itoa", "k256", "keccak-asm", @@ -897,7 +897,7 @@ dependencies = [ "alloy-sol-macro-input 0.8.25", "const-hex", "heck", - "indexmap 2.11.0", + "indexmap 2.11.1", "proc-macro-error2", "proc-macro2", "quote", @@ -916,7 +916,7 @@ dependencies = [ "alloy-sol-macro-input 1.3.1", "const-hex", "heck", - "indexmap 2.11.0", + "indexmap 2.11.1", "proc-macro-error2", "proc-macro2", "quote", @@ -1114,12 +1114,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -2043,7 +2037,7 @@ dependencies = [ "boa_interner", "boa_macros", "boa_string", - "indexmap 2.11.0", + "indexmap 2.11.1", "num-bigint", "rustc-hash 2.1.1", ] @@ -2069,7 +2063,7 @@ dependencies = [ "fast-float2", "hashbrown 0.15.5", "icu_normalizer 1.5.0", - "indexmap 2.11.0", + "indexmap 2.11.1", "intrusive-collections", "itertools 0.13.0", "num-bigint", @@ -2115,7 +2109,7 @@ dependencies = [ "boa_gc", "boa_macros", "hashbrown 0.15.5", - "indexmap 2.11.0", + "indexmap 2.11.1", "once_cell", "phf", "rustc-hash 2.1.1", @@ -2398,7 +2392,7 @@ checksum = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" dependencies = [ "clap", "heck", - "indexmap 2.11.0", + "indexmap 2.11.1", "log", "proc-macro2", "quote", @@ -2449,17 +2443,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.1.3", + "windows-link 0.2.0", ] [[package]] @@ -2812,7 +2805,7 @@ dependencies = [ "crossterm_winapi", "document-features", "parking_lot", - "rustix 1.0.8", + "rustix 1.1.2", "winapi", ] @@ -3534,12 +3527,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -3960,7 +3953,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.3+wasi-0.2.4", + "wasi 0.14.4+wasi-0.2.4", "wasm-bindgen", ] @@ -4078,7 +4071,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.11.0", + "indexmap 2.11.1", "slab", "tokio", "tokio-util", @@ -4778,9 +4771,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "arbitrary", "equivalent", @@ -5515,9 +5508,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -5734,7 +5727,7 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.11.0", + "indexmap 2.11.1", "ipnet", "metrics", "metrics-util 0.19.1", @@ -5755,7 +5748,7 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.11.0", + "indexmap 2.11.1", "ipnet", "metrics", "metrics-util 0.20.0", @@ -5791,7 +5784,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.5", - "indexmap 2.11.0", + "indexmap 2.11.1", "metrics", "ordered-float", "quanta", @@ -6186,9 +6179,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" +checksum = "f0418987d1aaed324d95b4beffc93635e19be965ed5d63ec07a35980fe3b71a4" dependencies = [ "alloy-rlp", "arbitrary", @@ -7474,9 +7467,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.5.0" +version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ "bitflags 2.9.4", ] @@ -7664,7 +7657,7 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-rpc-types", "aquamarine", @@ -7734,7 +7727,7 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7784,7 +7777,7 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7835,7 +7828,7 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7855,7 +7848,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-genesis", "clap", @@ -7869,7 +7862,7 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "ahash", "alloy-chains", @@ -7942,7 +7935,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "reth-tasks 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "tokio", @@ -7952,7 +7945,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -7988,7 +7981,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8019,7 +8012,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "convert_case", "proc-macro2", @@ -8030,7 +8023,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "eyre", "humantime-serde", @@ -8058,7 +8051,7 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8083,7 +8076,7 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8095,7 +8088,7 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8120,7 +8113,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "derive_more", @@ -8146,7 +8139,7 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -8174,7 +8167,7 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -8214,7 +8207,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -8229,7 +8222,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8255,7 +8248,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8279,7 +8272,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "data-encoding", @@ -8303,7 +8296,7 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8338,7 +8331,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "aes", "alloy-primitives 1.3.1", @@ -8369,7 +8362,7 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8418,7 +8411,7 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8443,7 +8436,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "futures", "pin-project", @@ -8466,7 +8459,7 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8518,7 +8511,7 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8546,7 +8539,7 @@ dependencies = [ [[package]] name = "reth-era" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8562,7 +8555,7 @@ dependencies = [ [[package]] name = "reth-era-downloader" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "bytes", @@ -8577,7 +8570,7 @@ dependencies = [ [[package]] name = "reth-era-utils" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8612,7 +8605,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "reth-consensus 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-execution-errors 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", @@ -8623,7 +8616,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-chains", "alloy-primitives 1.3.1", @@ -8672,7 +8665,7 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8693,7 +8686,7 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "clap", "eyre", @@ -8714,7 +8707,7 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8748,7 +8741,7 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -8779,7 +8772,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -8792,7 +8785,7 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8834,7 +8827,7 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8852,7 +8845,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "rayon", "reth-db-api", @@ -8883,7 +8876,7 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8906,7 +8899,7 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8939,7 +8932,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-evm 0.18.4", "alloy-primitives 1.3.1", @@ -8968,7 +8961,7 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8986,7 +8979,7 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9024,7 +9017,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -9048,7 +9041,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "serde", "serde_json", @@ -9058,7 +9051,7 @@ dependencies = [ [[package]] name = "reth-gas-station" version = "0.0.1" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -9071,7 +9064,7 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9099,7 +9092,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "bytes", "futures", @@ -9119,13 +9112,13 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "bitflags 2.9.4", "byteorder", "dashmap 6.1.0", "derive_more", - "indexmap 2.11.0", + "indexmap 2.11.1", "parking_lot", "reth-mdbx-sys", "smallvec", @@ -9136,7 +9129,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "bindgen 0.70.1", "cc", @@ -9154,7 +9147,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "futures", "metrics", @@ -9166,7 +9159,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", ] @@ -9174,7 +9167,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "futures-util", "if-addrs", @@ -9188,7 +9181,7 @@ dependencies = [ [[package]] name = "reth-network" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9243,7 +9236,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9268,7 +9261,7 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9304,7 +9297,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -9319,7 +9312,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -9333,7 +9326,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "anyhow", "bincode", @@ -9350,7 +9343,7 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -9374,7 +9367,7 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9442,7 +9435,7 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9494,7 +9487,7 @@ dependencies = [ [[package]] name = "reth-node-ethereum" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-network", @@ -9532,7 +9525,7 @@ dependencies = [ [[package]] name = "reth-node-ethstats" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9556,7 +9549,7 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9580,7 +9573,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "eyre", "http", @@ -9601,7 +9594,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "reth-chainspec 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", "reth-db-api", @@ -9636,7 +9629,7 @@ dependencies = [ [[package]] name = "reth-optimism-chainspec" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-chains", "alloy-consensus", @@ -9664,7 +9657,7 @@ dependencies = [ [[package]] name = "reth-optimism-cli" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9736,7 +9729,7 @@ dependencies = [ [[package]] name = "reth-optimism-consensus" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9786,7 +9779,7 @@ dependencies = [ [[package]] name = "reth-optimism-evm" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9825,7 +9818,7 @@ dependencies = [ [[package]] name = "reth-optimism-forks" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-op-hardforks", "alloy-primitives 1.3.1", @@ -9836,7 +9829,7 @@ dependencies = [ [[package]] name = "reth-optimism-node" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9920,7 +9913,7 @@ dependencies = [ [[package]] name = "reth-optimism-payload-builder" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9973,7 +9966,7 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9993,7 +9986,7 @@ dependencies = [ [[package]] name = "reth-optimism-rpc" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10050,7 +10043,7 @@ dependencies = [ [[package]] name = "reth-optimism-storage" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -10102,7 +10095,7 @@ dependencies = [ [[package]] name = "reth-optimism-txpool" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10158,7 +10151,7 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -10191,7 +10184,7 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "pin-project", "reth-payload-primitives 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", @@ -10222,7 +10215,7 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10251,7 +10244,7 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -10271,7 +10264,7 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -10281,7 +10274,7 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "c-kzg", @@ -10322,7 +10315,7 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10355,7 +10348,7 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10400,7 +10393,7 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10438,7 +10431,7 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", @@ -10452,7 +10445,7 @@ dependencies = [ [[package]] name = "reth-ress-protocol" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -10471,7 +10464,7 @@ dependencies = [ [[package]] name = "reth-ress-provider" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -10511,7 +10504,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "reth-primitives-traits 1.6.0 (git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2)", @@ -10524,7 +10517,7 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -10600,7 +10593,7 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-genesis", @@ -10628,7 +10621,7 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-network", "alloy-provider", @@ -10666,7 +10659,7 @@ dependencies = [ [[package]] name = "reth-rpc-convert" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-json-rpc", @@ -10691,7 +10684,7 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10721,7 +10714,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -10765,7 +10758,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10809,7 +10802,7 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-rpc-types-engine", "http", @@ -10823,7 +10816,7 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10839,7 +10832,7 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10887,7 +10880,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10923,7 +10916,7 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", @@ -10937,7 +10930,7 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "parking_lot", @@ -10968,7 +10961,7 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "clap", @@ -11002,7 +10995,7 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11041,7 +11034,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -11073,7 +11066,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "auto_impl", "dyn-clone", @@ -11091,7 +11084,7 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11107,7 +11100,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "tokio", "tokio-stream", @@ -11117,7 +11110,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "clap", "eyre", @@ -11132,7 +11125,7 @@ dependencies = [ [[package]] name = "reth-tracing-otlp" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "opentelemetry 0.29.1", "opentelemetry-otlp 0.29.0", @@ -11182,7 +11175,7 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11247,7 +11240,7 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11289,7 +11282,7 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -11315,7 +11308,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "reth-db-api", @@ -11328,7 +11321,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -11369,7 +11362,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -11388,7 +11381,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse-parallel" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -11414,7 +11407,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.6.0" -source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#82fa84b3f7e28a9588bc70dc442d613754bc3412" +source = "git+https://github.com/lightlink-network/reth?branch=feat%2Fgasless-2#4592186446759ac8cff6c8de5356e02610be35f2" dependencies = [ "zstd", ] @@ -12041,15 +12034,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.60.2", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.0", ] [[package]] @@ -12077,7 +12070,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", + "security-framework 3.4.0", ] [[package]] @@ -12114,7 +12107,7 @@ dependencies = [ "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 3.3.0", + "security-framework 3.4.0", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", @@ -12179,11 +12172,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -12304,9 +12297,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" dependencies = [ "bitflags 2.9.4", "core-foundation 0.10.1", @@ -12317,9 +12310,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -12408,7 +12401,7 @@ version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.11.1", "itoa", "memchr", "ryu", @@ -12467,7 +12460,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.0", + "indexmap 2.11.1", "schemars 0.9.0", "schemars 1.0.4", "serde", @@ -12495,7 +12488,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.11.1", "itoa", "ryu", "serde", @@ -13051,15 +13044,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.8", - "windows-sys 0.60.2", + "rustix 1.1.2", + "windows-sys 0.61.0", ] [[package]] @@ -13431,7 +13424,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.11.1", "serde", "serde_spanned", "toml_datetime", @@ -13504,7 +13497,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.11.0", + "indexmap 2.11.1", "pin-project-lite", "slab", "sync_wrapper", @@ -14113,9 +14106,9 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.3+wasi-0.2.4" +version = "0.14.4+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" dependencies = [ "wit-bindgen", ] @@ -14311,11 +14304,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -14887,9 +14880,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.45.0" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "write16" @@ -14961,7 +14954,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "rustix 1.0.8", + "rustix 1.1.2", ] [[package]] @@ -15020,18 +15013,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", From 8b19955b594fc2e8da46f98cec32f2e867783370 Mon Sep 17 00:00:00 2001 From: Julio <30329843+julio4@users.noreply.github.com> Date: Thu, 11 Sep 2025 19:57:40 +0200 Subject: [PATCH 10/54] feat: add commit message and author in version metrics (#236) --- crates/op-rbuilder/build.rs | 23 ++++++++++++++++++++--- crates/op-rbuilder/src/metrics.rs | 18 ++++++++++++++++-- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/crates/op-rbuilder/build.rs b/crates/op-rbuilder/build.rs index 3e8c774f9..205e8fa76 100644 --- a/crates/op-rbuilder/build.rs +++ b/crates/op-rbuilder/build.rs @@ -43,6 +43,9 @@ fn main() -> Result<(), Box> { .describe(false, true, None) .dirty(true) .sha(false) + .commit_author_name(true) + .commit_author_email(true) + .commit_message(true) .build()?; emitter.add_instructions(&git_builder)?; @@ -51,6 +54,16 @@ fn main() -> Result<(), Box> { let sha = env::var("VERGEN_GIT_SHA")?; let sha_short = &sha[0..7]; + // Set short SHA + println!("cargo:rustc-env=VERGEN_GIT_SHA_SHORT={}", &sha[..8]); + + let author_name = env::var("VERGEN_GIT_COMMIT_AUTHOR_NAME")?; + let author_email = env::var("VERGEN_GIT_COMMIT_AUTHOR_EMAIL")?; + let author_full = format!("{} <{}>", author_name, author_email); + + // Set author full name + println!("cargo:rustc-env=VERGEN_GIT_COMMIT_AUTHOR={}", author_full); + let is_dirty = env::var("VERGEN_GIT_DIRTY")? == "true"; // > git describe --always --tags // if not on a tag: v0.2.0-beta.3-82-g1939939b @@ -59,9 +72,6 @@ fn main() -> Result<(), Box> { let version_suffix = if is_dirty || not_on_tag { "-dev" } else { "" }; println!("cargo:rustc-env=OP_RBUILDER_VERSION_SUFFIX={version_suffix}"); - // Set short SHA - println!("cargo:rustc-env=VERGEN_GIT_SHA_SHORT={}", &sha[..8]); - // Set the build profile let out_dir = env::var("OUT_DIR").unwrap(); let profile = out_dir.rsplit(std::path::MAIN_SEPARATOR).nth(3).unwrap(); @@ -86,6 +96,7 @@ fn main() -> Result<(), Box> { // - The build datetime // - The build features // - The build profile + // - The latest commit message and author // // Example: // @@ -95,6 +106,7 @@ fn main() -> Result<(), Box> { // Build Timestamp: 2023-05-19T01:47:19.815651705Z // Build Features: jemalloc // Build Profile: maxperf + // Latest Commit: 'message' by John Doe // ``` println!("cargo:rustc-env=OP_RBUILDER_LONG_VERSION_0=Version: {pkg_version}{version_suffix}"); println!("cargo:rustc-env=OP_RBUILDER_LONG_VERSION_1=Commit SHA: {sha}"); @@ -107,6 +119,11 @@ fn main() -> Result<(), Box> { env::var("VERGEN_CARGO_FEATURES")? ); println!("cargo:rustc-env=OP_RBUILDER_LONG_VERSION_4=Build Profile: {profile}"); + println!( + "cargo:rustc-env=OP_RBUILDER_LONG_VERSION_5=Latest Commit: '{}' by {}", + env::var("VERGEN_GIT_COMMIT_MESSAGE")?.trim_end(), + author_full + ); // The version information for op-rbuilder formatted for P2P (devp2p). // - The latest version from Cargo.toml diff --git a/crates/op-rbuilder/src/metrics.rs b/crates/op-rbuilder/src/metrics.rs index 79658f765..df13bd1da 100644 --- a/crates/op-rbuilder/src/metrics.rs +++ b/crates/op-rbuilder/src/metrics.rs @@ -21,6 +21,10 @@ pub const VERGEN_CARGO_TARGET_TRIPLE: &str = env!("VERGEN_CARGO_TARGET_TRIPLE"); /// The build features. pub const VERGEN_CARGO_FEATURES: &str = env!("VERGEN_CARGO_FEATURES"); +/// The latest commit message and author name and email. +pub const VERGEN_GIT_AUTHOR: &str = env!("VERGEN_GIT_COMMIT_AUTHOR"); +pub const VERGEN_GIT_COMMIT_MESSAGE: &str = env!("VERGEN_GIT_COMMIT_MESSAGE"); + /// The build profile name. pub const BUILD_PROFILE_NAME: &str = env!("OP_RBUILDER_BUILD_PROFILE"); @@ -38,6 +42,8 @@ pub const LONG_VERSION: &str = concat!( env!("OP_RBUILDER_LONG_VERSION_3"), "\n", env!("OP_RBUILDER_LONG_VERSION_4"), + "\n", + env!("OP_RBUILDER_LONG_VERSION_5"), ); pub const VERSION: VersionInfo = VersionInfo { @@ -47,6 +53,8 @@ pub const VERSION: VersionInfo = VersionInfo { git_sha: VERGEN_GIT_SHA, target_triple: VERGEN_CARGO_TARGET_TRIPLE, build_profile: BUILD_PROFILE_NAME, + commit_author: VERGEN_GIT_AUTHOR, + commit_message: VERGEN_GIT_COMMIT_MESSAGE, }; /// op-rbuilder metrics @@ -198,18 +206,24 @@ pub struct VersionInfo { pub target_triple: &'static str, /// The build profile (e.g., debug or release). pub build_profile: &'static str, + /// The author of the latest commit. + pub commit_author: &'static str, + /// The message of the latest commit. + pub commit_message: &'static str, } impl VersionInfo { - /// This exposes reth's version information over prometheus. + /// This exposes op-rbuilder's version information over prometheus. pub fn register_version_metrics(&self) { - let labels: [(&str, &str); 6] = [ + let labels: [(&str, &str); 8] = [ ("version", self.version), ("build_timestamp", self.build_timestamp), ("cargo_features", self.cargo_features), ("git_sha", self.git_sha), ("target_triple", self.target_triple), ("build_profile", self.build_profile), + ("commit_author", self.commit_author), + ("commit_message", self.commit_message), ]; let gauge = gauge!("builder_info", &labels); From 7403f951a3a3f165f4db5860016d5dc4a83a4487 Mon Sep 17 00:00:00 2001 From: Julio <30329843+julio4@users.noreply.github.com> Date: Thu, 11 Sep 2025 19:59:42 +0200 Subject: [PATCH 11/54] fix: gracefull cancellation on payload build failure (#239) --- .../src/builders/flashblocks/payload.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 3110e1c6d..3fc6fca26 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -389,11 +389,11 @@ where .best_transactions_with_attributes(ctx.best_transaction_attributes()), )); // This channel coordinates flashblock building - let (fb_cancel_token_rx, mut fb_cancel_token_tx) = + let (fb_cancel_token_tx, mut fb_cancel_token_rx) = mpsc::channel((self.config.flashblocks_per_block() + 1) as usize); self.spawn_timer_task( block_cancel.clone(), - fb_cancel_token_rx, + fb_cancel_token_tx, first_flashblock_offset, ); // Process flashblocks in a blocking loop @@ -413,7 +413,7 @@ where // Cancellation of this token means that we need to stop building flashblock. // If channel return None it means that we built all flashblock or parent_token got cancelled let fb_cancel_token = - tokio::task::block_in_place(|| fb_cancel_token_tx.blocking_recv()).flatten(); + tokio::task::block_in_place(|| fb_cancel_token_rx.blocking_recv()).flatten(); match fb_cancel_token { Some(cancel_token) => { @@ -528,6 +528,8 @@ where // Track invalid/bad block ctx.metrics.invalid_blocks_count.increment(1); error!(target: "payload_builder", "Failed to build block {}, flashblock {}: {}", ctx.block_number(), ctx.flashblock_index(), err); + // Signal cancellation of the block building job + block_cancel.cancel(); // Return the error return Err(err); } @@ -667,7 +669,7 @@ where pub fn spawn_timer_task( &self, block_cancel: CancellationToken, - flashblock_cancel_token_rx: Sender>, + fb_cancel_token_tx: Sender>, first_flashblock_offset: Duration, ) { let interval = self.config.specific.interval; @@ -678,7 +680,7 @@ where let mut timer = tokio::time::interval(first_flashblock_offset); timer.tick().await; let child_token = block_cancel.child_token(); - flashblock_cancel_token_rx + fb_cancel_token_tx .send(Some(child_token.clone())) .await?; timer.tick().await; @@ -691,7 +693,7 @@ where // Initiate fb job let child_token = block_cancel.child_token(); debug!(target: "payload_builder", "Sending child cancel token to execution loop"); - flashblock_cancel_token_rx + fb_cancel_token_tx .send(Some(child_token.clone())) .await?; timer.tick().await; From abff43f81a02ec68acb955f9c9094404150e5334 Mon Sep 17 00:00:00 2001 From: Ash Kunda <18058966+akundaz@users.noreply.github.com> Date: Thu, 11 Sep 2025 22:05:35 -0400 Subject: [PATCH 12/54] fix: flashblock contraints in bundle api (#259) * refactor BundleOpts to use with_ methods to set * print logs during tests * fix connecting to flashblocks ws url * fix propagating bundle params for flashblocks check * refactor flashblock ws listener in tests * test setting min=max flashblock param --- .../src/builders/flashblocks/best_txs.rs | 1 + crates/op-rbuilder/src/tests/flashblocks.rs | 390 +++++------------- .../src/tests/framework/instance.rs | 109 ++++- .../src/tests/framework/macros/src/lib.rs | 14 +- crates/op-rbuilder/src/tests/framework/txs.rs | 48 ++- .../op-rbuilder/src/tests/framework/utils.rs | 13 +- crates/op-rbuilder/src/tests/revert.rs | 144 ++++--- crates/op-rbuilder/src/tx.rs | 4 +- 8 files changed, 352 insertions(+), 371 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs b/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs index e8d73bad5..b2108aa79 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs @@ -74,6 +74,7 @@ where if self.current_flashblock_number > max { debug!( target: "payload_builder", + tx_hash = ?tx.hash(), sender = ?tx.sender(), nonce = tx.nonce(), current_flashblock = self.current_flashblock_number, diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index cd17f8aeb..d492d5c11 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -1,11 +1,6 @@ use alloy_provider::Provider; -use futures::StreamExt; use macros::rb_test; -use parking_lot::Mutex; -use std::{sync::Arc, time::Duration}; -use tokio::task::JoinHandle; -use tokio_tungstenite::{connect_async, tungstenite::Message}; -use tokio_util::sync::CancellationToken; +use std::time::Duration; use crate::{ args::{FlashblocksArgs, OpRbuilderArgs}, @@ -26,30 +21,7 @@ use crate::{ })] async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { let driver = rbuilder.driver().await?; - - // Create a struct to hold received messages - let received_messages = Arc::new(Mutex::new(Vec::new())); - let messages_clone = received_messages.clone(); - let cancellation_token = CancellationToken::new(); - let flashblocks_ws_url = rbuilder.flashblocks_ws_url(); - - // Spawn WebSocket listener task - let cancellation_token_clone = cancellation_token.clone(); - let ws_handle: JoinHandle> = tokio::spawn(async move { - let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; - let (_, mut read) = ws_stream.split(); - - loop { - tokio::select! { - _ = cancellation_token_clone.cancelled() => { - break Ok(()); - } - Some(Ok(Message::Text(text))) = read.next() => { - messages_clone.lock().push(text); - } - } - } - }); + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); // We align out block timestamps with current unix timestamp for _ in 0..10 { @@ -66,18 +38,10 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { tokio::time::sleep(std::time::Duration::from_secs(1)).await; } - cancellation_token.cancel(); - assert!(ws_handle.await.is_ok(), "WebSocket listener task failed"); - - assert!( - !received_messages - .lock() - .iter() - .any(|msg| msg.contains("Building flashblock")), - "No messages received from WebSocket" - ); + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(110, flashblocks.len()); - Ok(()) + flashblocks_listener.stop().await } #[rb_test(flashblocks, args = OpRbuilderArgs { @@ -94,30 +58,7 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { })] async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { let driver = rbuilder.driver().await?; - - // Create a struct to hold received messages - let received_messages = Arc::new(Mutex::new(Vec::new())); - let messages_clone = received_messages.clone(); - let cancellation_token = CancellationToken::new(); - let flashblocks_ws_url = rbuilder.flashblocks_ws_url(); - - // Spawn WebSocket listener task - let cancellation_token_clone = cancellation_token.clone(); - let ws_handle: JoinHandle> = tokio::spawn(async move { - let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; - let (_, mut read) = ws_stream.split(); - - loop { - tokio::select! { - _ = cancellation_token_clone.cancelled() => { - break Ok(()); - } - Some(Ok(Message::Text(text))) = read.next() => { - messages_clone.lock().push(text); - } - } - } - }); + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); // We align out block timestamps with current unix timestamp for _ in 0..10 { @@ -134,18 +75,10 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { tokio::time::sleep(std::time::Duration::from_secs(1)).await; } - cancellation_token.cancel(); - assert!(ws_handle.await.is_ok(), "WebSocket listener task failed"); + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(60, flashblocks.len()); - assert!( - !received_messages - .lock() - .iter() - .any(|msg| msg.contains("Building flashblock")), - "No messages received from WebSocket" - ); - - Ok(()) + flashblocks_listener.stop().await } #[rb_test(flashblocks, args = OpRbuilderArgs { @@ -162,30 +95,7 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { })] async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { let driver = rbuilder.driver().await?; - - // Create a struct to hold received messages - let received_messages = Arc::new(Mutex::new(Vec::new())); - let messages_clone = received_messages.clone(); - let cancellation_token = CancellationToken::new(); - let flashblocks_ws_url = rbuilder.flashblocks_ws_url(); - - // Spawn WebSocket listener task - let cancellation_token_clone = cancellation_token.clone(); - let ws_handle: JoinHandle> = tokio::spawn(async move { - let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; - let (_, mut read) = ws_stream.split(); - - loop { - tokio::select! { - _ = cancellation_token_clone.cancelled() => { - break Ok(()); - } - Some(Ok(Message::Text(text))) = read.next() => { - messages_clone.lock().push(text); - } - } - } - }); + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); // We align out block timestamps with current unix timestamp for _ in 0..10 { @@ -202,18 +112,10 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { tokio::time::sleep(std::time::Duration::from_secs(1)).await; } - cancellation_token.cancel(); - assert!(ws_handle.await.is_ok(), "WebSocket listener task failed"); - - assert!( - !received_messages - .lock() - .iter() - .any(|msg| msg.contains("Building flashblock")), - "No messages received from WebSocket" - ); + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(60, flashblocks.len()); - Ok(()) + flashblocks_listener.stop().await } #[rb_test(flashblocks, args = OpRbuilderArgs { @@ -230,30 +132,7 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { })] async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { let driver = rbuilder.driver().await?; - - // Create a struct to hold received messages - let received_messages = Arc::new(Mutex::new(Vec::new())); - let messages_clone = received_messages.clone(); - let cancellation_token = CancellationToken::new(); - let flashblocks_ws_url = rbuilder.flashblocks_ws_url(); - - // Spawn WebSocket listener task - let cancellation_token_clone = cancellation_token.clone(); - let ws_handle: JoinHandle> = tokio::spawn(async move { - let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; - let (_, mut read) = ws_stream.split(); - - loop { - tokio::select! { - _ = cancellation_token_clone.cancelled() => { - break Ok(()); - } - Some(Ok(Message::Text(text))) = read.next() => { - messages_clone.lock().push(text); - } - } - } - }); + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); // We align out block timestamps with current unix timestamp for _ in 0..10 { @@ -270,18 +149,10 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { tokio::time::sleep(std::time::Duration::from_secs(1)).await; } - cancellation_token.cancel(); - assert!(ws_handle.await.is_ok(), "WebSocket listener task failed"); + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(110, flashblocks.len()); - assert!( - !received_messages - .lock() - .iter() - .any(|msg| msg.contains("Building flashblock")), - "No messages received from WebSocket" - ); - - Ok(()) + flashblocks_listener.stop().await } #[rb_test(flashblocks, args = OpRbuilderArgs { @@ -298,30 +169,7 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { })] async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> { let driver = rbuilder.driver().await?; - - // Create a struct to hold received messages - let received_messages = Arc::new(Mutex::new(Vec::new())); - let messages_clone = received_messages.clone(); - let cancellation_token = CancellationToken::new(); - let flashblocks_ws_url = rbuilder.flashblocks_ws_url(); - - // Spawn WebSocket listener task - let cancellation_token_clone = cancellation_token.clone(); - let ws_handle: JoinHandle> = tokio::spawn(async move { - let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; - let (_, mut read) = ws_stream.split(); - - loop { - tokio::select! { - _ = cancellation_token_clone.cancelled() => { - break Ok(()); - } - Some(Ok(Message::Text(text))) = read.next() => { - messages_clone.lock().push(text); - } - } - } - }); + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); // We align out block timestamps with current unix timestamp for i in 0..9 { @@ -340,18 +188,10 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> tokio::time::sleep(std::time::Duration::from_secs(1)).await; } - cancellation_token.cancel(); - assert!(ws_handle.await.is_ok(), "WebSocket listener task failed"); - - assert!( - !received_messages - .lock() - .iter() - .any(|msg| msg.contains("Building flashblock")), - "No messages received from WebSocket" - ); + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(34, flashblocks.len()); - Ok(()) + flashblocks_listener.stop().await } #[rb_test(flashblocks, args = OpRbuilderArgs { @@ -368,30 +208,7 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> })] async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<()> { let driver = rbuilder.driver().await?; - - // Create a struct to hold received messages - let received_messages = Arc::new(Mutex::new(Vec::new())); - let messages_clone = received_messages.clone(); - let cancellation_token = CancellationToken::new(); - let flashblocks_ws_url = rbuilder.flashblocks_ws_url(); - - // Spawn WebSocket listener task - let cancellation_token_clone = cancellation_token.clone(); - let ws_handle: JoinHandle> = tokio::spawn(async move { - let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; - let (_, mut read) = ws_stream.split(); - - loop { - tokio::select! { - _ = cancellation_token_clone.cancelled() => { - break Ok(()); - } - Some(Ok(Message::Text(text))) = read.next() => { - messages_clone.lock().push(text); - } - } - } - }); + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); for _ in 0..5 { // send a valid transaction @@ -406,18 +223,11 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() .await?; // We could only produce block with deposits + builder tx because of short time frame assert_eq!(block.transactions.len(), 2); - cancellation_token.cancel(); - assert!(ws_handle.await.is_ok(), "WebSocket listener task failed"); - assert!( - !received_messages - .lock() - .iter() - .any(|msg| msg.contains("Building flashblock")), - "No messages received from WebSocket" - ); + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(1, flashblocks.len()); - Ok(()) + flashblocks_listener.stop().await } #[rb_test(flashblocks, args = OpRbuilderArgs { @@ -435,30 +245,7 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() })] async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result<()> { let driver = rbuilder.driver().await?; - - // Create a struct to hold received messages - let received_messages = Arc::new(Mutex::new(Vec::new())); - let messages_clone = received_messages.clone(); - let cancellation_token = CancellationToken::new(); - let flashblocks_ws_url = rbuilder.flashblocks_ws_url(); - - // Spawn WebSocket listener task - let cancellation_token_clone = cancellation_token.clone(); - let ws_handle: JoinHandle> = tokio::spawn(async move { - let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; - let (_, mut read) = ws_stream.split(); - - loop { - tokio::select! { - _ = cancellation_token_clone.cancelled() => { - break Ok(()); - } - Some(Ok(Message::Text(text))) = read.next() => { - messages_clone.lock().push(text); - } - } - } - }); + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); // Create two transactions and set their tips so that while ordinarily // tx2 would come before tx1 because its tip is bigger, now tx1 comes @@ -466,10 +253,7 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< let tx1 = driver .create_transaction() .random_valid_transfer() - .with_bundle(BundleOpts { - flashblock_number_min: Some(0), - ..Default::default() - }) + .with_bundle(BundleOpts::default().with_flashblock_number_min(0)) .with_max_priority_fee_per_gas(0) .send() .await?; @@ -477,42 +261,32 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< let tx2 = driver .create_transaction() .random_valid_transfer() - .with_bundle(BundleOpts { - flashblock_number_min: Some(3), - ..Default::default() - }) + .with_bundle(BundleOpts::default().with_flashblock_number_min(3)) .with_max_priority_fee_per_gas(10) .send() .await?; - let block1 = driver.build_new_block_with_current_timestamp(None).await?; + let _block1 = driver.build_new_block_with_current_timestamp(None).await?; // Check that tx1 comes before tx2 let tx1_hash = *tx1.tx_hash(); let tx2_hash = *tx2.tx_hash(); - let mut tx1_pos = None; - let mut tx2_pos = None; - - for (i, item) in block1.transactions.hashes().into_iter().enumerate() { - if item == tx1_hash { - tx1_pos = Some(i); - } - if item == tx2_hash { - tx2_pos = Some(i); - } - } + let tx1_pos = flashblocks_listener + .find_transaction_flashblock(&tx1_hash) + .unwrap(); + let tx2_pos = flashblocks_listener + .find_transaction_flashblock(&tx2_hash) + .unwrap(); - assert!(tx1_pos.is_some(), "tx {tx1_hash:?} not found"); - assert!(tx2_pos.is_some(), "tx {tx2_hash:?} not found"); assert!( - tx1_pos.unwrap() < tx2_pos.unwrap(), + tx1_pos < tx2_pos, "tx {tx1_hash:?} does not come before {tx2_hash:?}" ); - cancellation_token.cancel(); - assert!(ws_handle.await.is_ok(), "WebSocket listener task failed"); + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(6, flashblocks.len()); - Ok(()) + flashblocks_listener.stop().await } #[rb_test(flashblocks, args = OpRbuilderArgs { @@ -530,30 +304,7 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< })] async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result<()> { let driver = rbuilder.driver().await?; - - // Create a struct to hold received messages - let received_messages = Arc::new(Mutex::new(Vec::new())); - let messages_clone = received_messages.clone(); - let cancellation_token = CancellationToken::new(); - let flashblocks_ws_url = rbuilder.flashblocks_ws_url(); - - // Spawn WebSocket listener task - let cancellation_token_clone = cancellation_token.clone(); - let ws_handle: JoinHandle> = tokio::spawn(async move { - let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; - let (_, mut read) = ws_stream.split(); - - loop { - tokio::select! { - _ = cancellation_token_clone.cancelled() => { - break Ok(()); - } - Some(Ok(Message::Text(text))) = read.next() => { - messages_clone.lock().push(text); - } - } - } - }); + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); // Since we cannot directly trigger flashblock creation in tests, we // instead fill up the gas of flashblocks so that our tx with the @@ -575,18 +326,65 @@ async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result< let tx1 = driver .create_transaction() .random_valid_transfer() - .with_bundle(BundleOpts { - flashblock_number_max: Some(1), - ..Default::default() - }) + .with_bundle(BundleOpts::default().with_flashblock_number_max(1)) .send() .await?; let block = driver.build_new_block_with_current_timestamp(None).await?; assert!(!block.includes(tx1.tx_hash())); + assert!( + flashblocks_listener + .find_transaction_flashblock(tx1.tx_hash()) + .is_none() + ); + + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(6, flashblocks.len()); + + flashblocks_listener.stop().await +} + +#[rb_test(flashblocks, args = OpRbuilderArgs { + chain_block_time: 1000, + enable_revert_protection: true, + flashblocks: FlashblocksArgs { + enabled: true, + flashblocks_port: 1239, + flashblocks_addr: "127.0.0.1".into(), + flashblocks_block_time: 200, + flashblocks_leeway_time: 100, + flashblocks_fixed: false, + }, + ..Default::default() +})] +async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Result<()> { + let driver = rbuilder.driver().await?; + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); + + let tx1 = driver + .create_transaction() + .random_valid_transfer() + .with_bundle( + BundleOpts::default() + .with_flashblock_number_max(2) + .with_flashblock_number_min(2), + ) + .send() + .await?; + + let _block = driver.build_new_block_with_current_timestamp(None).await?; + + // It ends up in the flashblock with index 3. Flashblock number and index + // are different. + assert_eq!( + 2 + 1, + flashblocks_listener + .find_transaction_flashblock(tx1.tx_hash()) + .unwrap() + ); - cancellation_token.cancel(); - assert!(ws_handle.await.is_ok(), "WebSocket listener task failed"); + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(6, flashblocks.len()); - Ok(()) + flashblocks_listener.stop().await } diff --git a/crates/op-rbuilder/src/tests/framework/instance.rs b/crates/op-rbuilder/src/tests/framework/instance.rs index 45bf5e62e..34f5f506f 100644 --- a/crates/op-rbuilder/src/tests/framework/instance.rs +++ b/crates/op-rbuilder/src/tests/framework/instance.rs @@ -10,6 +10,7 @@ use crate::{ tx::FBPooledTransaction, tx_signer::Signer, }; +use alloy_primitives::B256; use alloy_provider::{Identity, ProviderBuilder, RootProvider}; use clap::Parser; use core::{ @@ -20,10 +21,11 @@ use core::{ task::{Context, Poll}, time::Duration, }; -use futures::FutureExt; +use futures::{FutureExt, StreamExt}; use moka::future::Cache; use nanoid::nanoid; use op_alloy_network::Optimism; +use parking_lot::Mutex; use reth::{ args::{DatadirArgs, NetworkArgs, RpcServerArgs}, core::exit::NodeExitFuture, @@ -38,8 +40,12 @@ use reth_optimism_node::{ }; use reth_optimism_rpc::OpEthApiBuilder; use reth_transaction_pool::{AllTransactionsEvents, TransactionPool}; +use rollup_boost::FlashblocksPayloadV1; use std::sync::{Arc, LazyLock}; -use tokio::sync::oneshot; +use tokio::{sync::oneshot, task::JoinHandle}; +use tokio_tungstenite::{connect_async, tungstenite::Message}; +use tokio_util::sync::CancellationToken; +use tracing::warn; /// Represents a type that emulates a local in-process instance of the OP builder node. /// This node uses IPC as the communication channel for the RPC server Engine API. @@ -225,6 +231,10 @@ impl LocalInstance { format!("ws://{ipaddr}:{port}/") } + pub fn spawn_flashblocks_listener(&self) -> FlashblocksListener { + FlashblocksListener::new(self.flashblocks_ws_url()) + } + pub fn rpc_ipc(&self) -> &str { &self.config.rpc.ipcpath } @@ -345,3 +355,98 @@ fn pool_component(args: &OpRbuilderArgs) -> OpPoolBuilder { rollup_args.supervisor_safety_level, ) } + +/// A utility for listening to flashblocks WebSocket messages during tests. +/// +/// This provides a reusable way to capture and inspect flashblocks that are produced +/// during test execution, eliminating the need for duplicate WebSocket listening code. +pub struct FlashblocksListener { + pub flashblocks: Arc>>, + pub cancellation_token: CancellationToken, + pub handle: JoinHandle>, +} + +impl FlashblocksListener { + /// Create a new flashblocks listener that connects to the given WebSocket URL. + /// + /// The listener will automatically parse incoming messages as FlashblocksPayloadV1. + fn new(flashblocks_ws_url: String) -> Self { + let flashblocks = Arc::new(Mutex::new(Vec::new())); + let cancellation_token = CancellationToken::new(); + + let flashblocks_clone = flashblocks.clone(); + let cancellation_token_clone = cancellation_token.clone(); + + let handle = tokio::spawn(async move { + let (ws_stream, _) = connect_async(flashblocks_ws_url).await?; + let (_, mut read) = ws_stream.split(); + + loop { + tokio::select! { + _ = cancellation_token_clone.cancelled() => { + break Ok(()); + } + Some(Ok(Message::Text(text))) = read.next() => { + let fb = serde_json::from_str(&text).unwrap(); + warn!("GOT FB: {fb:#?}"); + flashblocks_clone.lock().push(fb); + } + } + } + }); + + Self { + flashblocks, + cancellation_token, + handle, + } + } + + /// Get a snapshot of all received flashblocks + pub fn get_flashblocks(&self) -> Vec { + self.flashblocks.lock().clone() + } + + /// Find a flashblock by index + pub fn find_flashblock(&self, index: u64) -> Option { + self.flashblocks + .lock() + .iter() + .find(|fb| fb.index == index) + .cloned() + } + + /// Check if any flashblock contains the given transaction hash + pub fn contains_transaction(&self, tx_hash: &B256) -> bool { + let tx_hash_str = format!("{:#x}", tx_hash); + self.flashblocks.lock().iter().any(|fb| { + if let Some(receipts) = fb.metadata.get("receipts") { + if let Some(receipts_obj) = receipts.as_object() { + return receipts_obj.contains_key(&tx_hash_str); + } + } + false + }) + } + + /// Find which flashblock index contains the given transaction hash + pub fn find_transaction_flashblock(&self, tx_hash: &B256) -> Option { + let tx_hash_str = format!("{:#x}", tx_hash); + self.flashblocks.lock().iter().find_map(|fb| { + if let Some(receipts) = fb.metadata.get("receipts") { + if let Some(receipts_obj) = receipts.as_object() { + if receipts_obj.contains_key(&tx_hash_str) { + return Some(fb.index); + } + } + } + None + }) + } + + /// Stop the listener and wait for it to complete + pub async fn stop(self) -> eyre::Result<()> { + self.cancellation_token.cancel(); + self.handle.await? + } +} diff --git a/crates/op-rbuilder/src/tests/framework/macros/src/lib.rs b/crates/op-rbuilder/src/tests/framework/macros/src/lib.rs index 64cb940ab..daa88c7e7 100644 --- a/crates/op-rbuilder/src/tests/framework/macros/src/lib.rs +++ b/crates/op-rbuilder/src/tests/framework/macros/src/lib.rs @@ -28,7 +28,7 @@ const BUILDER_VARIANTS: &[VariantInfo] = &[ { let mut args = #args; args.flashblocks.enabled = true; - args.flashblocks.flashblocks_port = 0; + args.flashblocks.flashblocks_port = crate::tests::get_available_port(); args } } @@ -38,7 +38,7 @@ const BUILDER_VARIANTS: &[VariantInfo] = &[ { let mut args = crate::args::OpRbuilderArgs::default(); args.flashblocks.enabled = true; - args.flashblocks.flashblocks_port = 0; + args.flashblocks.flashblocks_port = crate::tests::get_available_port(); args } } @@ -231,6 +231,16 @@ pub fn rb_test(args: TokenStream, input: TokenStream) -> TokenStream { generated_functions.push(quote! { #test_attribute async fn #test_name() -> eyre::Result<()> { + let subscriber = tracing_subscriber::fmt() + .with_env_filter(std::env::var("RUST_LOG") + .unwrap_or_else(|_| "info".to_string())) + .with_file(true) + .with_line_number(true) + .with_test_writer() + .finish(); + let _guard = tracing::subscriber::set_global_default(subscriber); + tracing::info!("{} start", stringify!(#test_name)); + let instance = #instance_init; #original_name(instance).await } diff --git a/crates/op-rbuilder/src/tests/framework/txs.rs b/crates/op-rbuilder/src/tests/framework/txs.rs index 24a1748d6..7c91892ad 100644 --- a/crates/op-rbuilder/src/tests/framework/txs.rs +++ b/crates/op-rbuilder/src/tests/framework/txs.rs @@ -25,12 +25,44 @@ use super::FUNDED_PRIVATE_KEYS; #[derive(Clone, Copy, Default)] pub struct BundleOpts { - pub block_number_min: Option, - pub block_number_max: Option, - pub flashblock_number_min: Option, - pub flashblock_number_max: Option, - pub min_timestamp: Option, - pub max_timestamp: Option, + block_number_min: Option, + block_number_max: Option, + flashblock_number_min: Option, + flashblock_number_max: Option, + min_timestamp: Option, + max_timestamp: Option, +} + +impl BundleOpts { + pub fn with_block_number_min(mut self, block_number_min: u64) -> Self { + self.block_number_min = Some(block_number_min); + self + } + + pub fn with_block_number_max(mut self, block_number_max: u64) -> Self { + self.block_number_max = Some(block_number_max); + self + } + + pub fn with_flashblock_number_min(mut self, flashblock_number_min: u64) -> Self { + self.flashblock_number_min = Some(flashblock_number_min); + self + } + + pub fn with_flashblock_number_max(mut self, flashblock_number_max: u64) -> Self { + self.flashblock_number_max = Some(flashblock_number_max); + self + } + + pub fn with_min_timestamp(mut self, min_timestamp: u64) -> Self { + self.min_timestamp = Some(min_timestamp); + self + } + + pub fn with_max_timestamp(mut self, max_timestamp: u64) -> Self { + self.max_timestamp = Some(max_timestamp); + self + } } #[derive(Clone)] @@ -197,8 +229,8 @@ impl TransactionBuilder { }, block_number_min: bundle_opts.block_number_min, block_number_max: bundle_opts.block_number_max, - flashblock_number_min: bundle_opts.block_number_min, - flashblock_number_max: bundle_opts.block_number_max, + flashblock_number_min: bundle_opts.flashblock_number_min, + flashblock_number_max: bundle_opts.flashblock_number_max, min_timestamp: bundle_opts.min_timestamp, max_timestamp: bundle_opts.max_timestamp, }; diff --git a/crates/op-rbuilder/src/tests/framework/utils.rs b/crates/op-rbuilder/src/tests/framework/utils.rs index 2cb5f51b3..a71361d2e 100644 --- a/crates/op-rbuilder/src/tests/framework/utils.rs +++ b/crates/op-rbuilder/src/tests/framework/utils.rs @@ -15,7 +15,7 @@ use reth_db::{ }; use reth_node_core::{args::DatadirArgs, dirs::DataDirPath, node_config::NodeConfig}; use reth_optimism_chainspec::OpChainSpec; -use std::sync::Arc; +use std::{net::TcpListener, sync::Arc}; use super::{FUNDED_PRIVATE_KEYS, TransactionBuilder}; @@ -228,3 +228,14 @@ pub fn create_test_db(config: NodeConfig) -> Arc u16 { + TcpListener::bind("127.0.0.1:0") + .expect("Failed to bind to random port") + .local_addr() + .expect("Failed to get local address") + .port() +} diff --git a/crates/op-rbuilder/src/tests/revert.rs b/crates/op-rbuilder/src/tests/revert.rs index 8037f996c..76e1c5b9b 100644 --- a/crates/op-rbuilder/src/tests/revert.rs +++ b/crates/op-rbuilder/src/tests/revert.rs @@ -31,10 +31,9 @@ async fn monitor_transaction_gc(rbuilder: LocalInstance) -> eyre::Result<()> { .create_transaction() .random_reverting_transaction() .with_signer(accounts[i].clone()) - .with_bundle(BundleOpts { - block_number_max: Some(latest_block_number + i as u64 + 1), - ..Default::default() - }) + .with_bundle( + BundleOpts::default().with_block_number_max(latest_block_number + i as u64 + 1), + ) .send() .await?; pending_txn.push(txn); @@ -141,10 +140,7 @@ async fn bundle(rbuilder: LocalInstance) -> eyre::Result<()> { .includes(valid_bundle.tx_hash()) ); - let bundle_opts = BundleOpts { - block_number_max: Some(4), - ..Default::default() - }; + let bundle_opts = BundleOpts::default().with_block_number_max(4); let reverted_bundle = driver .create_transaction() @@ -183,10 +179,7 @@ async fn bundle_min_block_number(rbuilder: LocalInstance) -> eyre::Result<()> { .create_transaction() .with_revert() // the transaction reverts but it is included in the block .with_reverted_hash() - .with_bundle(BundleOpts { - block_number_min: Some(2), - ..Default::default() - }) + .with_bundle(BundleOpts::default().with_block_number_min(2)) .send() .await?; @@ -201,11 +194,11 @@ async fn bundle_min_block_number(rbuilder: LocalInstance) -> eyre::Result<()> { .create_transaction() .with_revert() .with_reverted_hash() - .with_bundle(BundleOpts { - block_number_max: Some(4), - block_number_min: Some(4), - ..Default::default() - }) + .with_bundle( + BundleOpts::default() + .with_block_number_max(4) + .with_block_number_min(4), + ) .send() .await?; @@ -232,10 +225,7 @@ async fn bundle_min_timestamp(rbuilder: LocalInstance) -> eyre::Result<()> { .create_transaction() .with_revert() // the transaction reverts but it is included in the block .with_reverted_hash() - .with_bundle(BundleOpts { - min_timestamp: Some(initial_timestamp + 2), - ..Default::default() - }) + .with_bundle(BundleOpts::default().with_min_timestamp(initial_timestamp + 2)) .send() .await?; @@ -261,84 +251,121 @@ async fn bundle_range_limits(rbuilder: LocalInstance) -> eyre::Result<()> { async fn send_bundle( driver: &ChainDriver, - block_number_max: Option, - block_number_min: Option, + bundle: BundleOpts, ) -> eyre::Result> { - driver - .create_transaction() - .with_bundle(BundleOpts { - block_number_max, - block_number_min, - ..Default::default() - }) - .send() - .await + driver.create_transaction().with_bundle(bundle).send().await } // Max block cannot be a past block - assert!(send_bundle(&driver, Some(1), None).await.is_err()); + assert!( + send_bundle(&driver, BundleOpts::default().with_block_number_max(1)) + .await + .is_err() + ); // Bundles are valid if their max block in in between the current block and the max block range let current_block = 2; let next_valid_block = current_block + 1; for i in next_valid_block..next_valid_block + MAX_BLOCK_RANGE_BLOCKS { - assert!(send_bundle(&driver, Some(i), None).await.is_ok()); + assert!( + send_bundle(&driver, BundleOpts::default().with_block_number_max(i)) + .await + .is_ok() + ); } // A bundle with a block out of range is invalid assert!( send_bundle( &driver, - Some(next_valid_block + MAX_BLOCK_RANGE_BLOCKS + 1), - None + BundleOpts::default() + .with_block_number_max(next_valid_block + MAX_BLOCK_RANGE_BLOCKS + 1) ) .await .is_err() ); // A bundle with a min block number higher than the max block is invalid - assert!(send_bundle(&driver, Some(1), Some(2)).await.is_err()); + assert!( + send_bundle( + &driver, + BundleOpts::default() + .with_block_number_max(1) + .with_block_number_min(2) + ) + .await + .is_err() + ); // A bundle with a min block number lower or equal to the current block is valid assert!( - send_bundle(&driver, Some(next_valid_block), Some(current_block)) - .await - .is_ok() + send_bundle( + &driver, + BundleOpts::default() + .with_block_number_max(next_valid_block) + .with_block_number_min(current_block) + ) + .await + .is_ok() ); assert!( - send_bundle(&driver, Some(next_valid_block), Some(0)) - .await - .is_ok() + send_bundle( + &driver, + BundleOpts::default().with_block_number_max(next_valid_block) + ) + .await + .is_ok() ); // A bundle with a min block equal to max block is valid assert!( - send_bundle(&driver, Some(next_valid_block), Some(next_valid_block)) - .await - .is_ok() + send_bundle( + &driver, + BundleOpts::default() + .with_block_number_max(next_valid_block) + .with_block_number_min(next_valid_block) + ) + .await + .is_ok() ); // Test min-only cases (no max specified) // A bundle with only min block that's within the default range is valid let default_max = current_block + MAX_BLOCK_RANGE_BLOCKS; assert!( - send_bundle(&driver, None, Some(current_block)) - .await - .is_ok() + send_bundle( + &driver, + BundleOpts::default().with_block_number_min(current_block) + ) + .await + .is_ok() ); assert!( - send_bundle(&driver, None, Some(default_max - 1)) - .await - .is_ok() + send_bundle( + &driver, + BundleOpts::default().with_block_number_min(default_max - 1) + ) + .await + .is_ok() + ); + assert!( + send_bundle( + &driver, + BundleOpts::default().with_block_number_min(default_max) + ) + .await + .is_ok() ); - assert!(send_bundle(&driver, None, Some(default_max)).await.is_ok()); // A bundle with only min block that exceeds the default max range is invalid assert!( - send_bundle(&driver, None, Some(default_max + 1)) - .await - .is_err() + send_bundle( + &driver, + BundleOpts::default().with_block_number_min(default_max + 1) + ) + .await + .is_err() ); Ok(()) @@ -387,10 +414,7 @@ async fn check_transaction_receipt_status_message(rbuilder: LocalInstance) -> ey let reverting_tx = driver .create_transaction() .random_reverting_transaction() - .with_bundle(BundleOpts { - block_number_max: Some(3), - ..Default::default() - }) + .with_bundle(BundleOpts::default().with_block_number_max(3)) .send() .await?; let tx_hash = reverting_tx.tx_hash(); diff --git a/crates/op-rbuilder/src/tx.rs b/crates/op-rbuilder/src/tx.rs index 7626fff1d..64f7e43f5 100644 --- a/crates/op-rbuilder/src/tx.rs +++ b/crates/op-rbuilder/src/tx.rs @@ -293,8 +293,8 @@ impl MaybeConditionalTransaction for FBPooledTransaction { FBPooledTransaction { inner: self.inner.with_conditional(conditional), reverted_hashes: self.reverted_hashes, - flashblock_number_min: None, - flashblock_number_max: None, + flashblock_number_min: self.flashblock_number_min, + flashblock_number_max: self.flashblock_number_max, } } } From e863882855674c12dcf971aaab5a5025d1075b7c Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Fri, 12 Sep 2025 17:03:19 +0500 Subject: [PATCH 13/54] bump reth to 1.7.0 (#258) * bump reth * Add comm * Fix the problem --- Cargo.lock | 3383 ++++++----------- Cargo.toml | 134 +- crates/op-rbuilder/Cargo.toml | 3 +- .../src/tests/framework/instance.rs | 2 +- 4 files changed, 1259 insertions(+), 2263 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6677f5679..bf13c8563 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35f021a55afd68ff2364ccfddaa364fc9a38a72200cdc74fcfb8dc3231d38f2c" +checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -159,9 +159,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0ecca7a71b1f88e63d19e2d9397ce56949d3dd3484fd73c73d0077dc5c93d4" +checksum = "81443e3b8dccfeac7cd511aced15928c97ff253f4177acbb97de97178e543f6c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -174,9 +174,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd26132cbfa6e5f191a01f7b9725eaa0680a953be1fd005d588b0e9422c16456" +checksum = "de217ab604f1bcfa2e3b0aff86d50812d5931d47522f9f0a949cc263ec2d108e" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -270,9 +270,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7473a19f02b25f8e1e8c69d35f02c07245694d11bd91bfe00e9190ac106b3838" +checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -288,34 +288,16 @@ dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_with", "sha2 0.10.9", -] - -[[package]] -name = "alloy-evm" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28de0dd1bbb0634ef7c3715e8e60176b77b82f8b6b15b2e35fe64cf6640f6550" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks", - "alloy-primitives 1.3.1", - "alloy-rpc-types-eth", - "alloy-sol-types 1.3.1", - "auto_impl", - "derive_more", - "op-alloy-consensus", - "op-revm 8.1.0", - "revm 27.1.0", "thiserror 2.0.16", ] [[package]] name = "alloy-evm" -version = "0.18.3" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4d88e267e4b599e944e1d32fbbfeaf4b8ea414e54da27306ede37c0798684d" +checksum = "0dbe7c66c859b658d879b22e8aaa19546dab726b0639f4649a424ada3d99349e" dependencies = [ "alloy-consensus", "alloy-eips", @@ -326,16 +308,16 @@ dependencies = [ "auto_impl", "derive_more", "op-alloy-consensus", - "op-revm 9.0.1", - "revm 28.0.1", + "op-revm", + "revm", "thiserror 2.0.16", ] [[package]] name = "alloy-genesis" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b2c29f25098bfa4cd3d9ec7806e1506716931e188c7c0843284123831c2cf1" +checksum = "33ba1cbc25a07e0142e8875fcbe80e1fdb02be8160ae186b90f4b9a69a72ed2b" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -347,9 +329,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.2.13" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165210652f71dfc094b051602bafd691f506c54050a174b1cba18fb5ef706a3" +checksum = "31c8616642b176f21e98e2740e27d28917b5d30d8612450cafff21772d4926bc" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -385,9 +367,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4d1f49fdf9780b60e52c20ffcc1e352d8d27885cc8890620eb584978265dd9" +checksum = "f8882ec8e4542cfd02aadc6dccbe90caa73038f60016d936734eb6ced53d2167" dependencies = [ "alloy-primitives 1.3.1", "alloy-sol-types 1.3.1", @@ -400,9 +382,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2991c432e149babfd996194f8f558f85d7326ac4cf52c55732d32078ff0282d4" +checksum = "51d6d87d588bda509881a7a66ae77c86514bd1193ac30fbff0e0f24db95eb5a5" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -426,9 +408,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d540d962ddbc3e95153bafe56ccefeb16dfbffa52c5f7bdd66cd29ec8f52259" +checksum = "5b14fa9ba5774e0b30ae6a04176d998211d516c8af69c9c530af7c6c42a8c508" dependencies = [ "alloy-consensus", "alloy-eips", @@ -439,43 +421,26 @@ dependencies = [ [[package]] name = "alloy-op-evm" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0afe768962308a08b42fddef8a4296324f140b5a8dd0d4360038229885ce9434" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.15.0", - "alloy-op-hardforks", - "alloy-primitives 1.3.1", - "auto_impl", - "op-alloy-consensus", - "op-revm 8.1.0", - "revm 27.1.0", -] - -[[package]] -name = "alloy-op-evm" -version = "0.18.3" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ead219a54943c27b0bb568401cbfa6afe04398b97a76fd33b29745d0c0f35b43" +checksum = "ed9b726869a13d5d958f2f78fbef7ce522689c4d40d613c16239f5e286fbeb1a" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm", "alloy-op-hardforks", "alloy-primitives 1.3.1", "auto_impl", "op-alloy-consensus", - "op-revm 9.0.1", - "revm 28.0.1", + "op-revm", + "revm", ] [[package]] name = "alloy-op-hardforks" -version = "0.2.13" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3417f4187eaf7f7fb0d7556f0197bca26f0b23c4bb3aca0c9d566dc1c5d727a2" +checksum = "07953246c78130f119855393ba0235d22539c60b6a627f737cdf0ae692f042f6" dependencies = [ "alloy-chains", "alloy-hardforks", @@ -541,9 +506,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e96d8084a1cf96be2df6219ac407275ac20c1136fa01f911535eb489aa006e8" +checksum = "475a5141313c3665b75d818be97d5fa3eb5e0abb7e832e9767edd94746db28e3" dependencies = [ "alloy-chains", "alloy-consensus", @@ -585,9 +550,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a682f14e10c3f4489c57b64ed457801b3e7ffc5091b6a35883d0e5960b9b894" +checksum = "f97c18795ce1ce8151c5539ce1e4200940389674173f677c7455f79bfb00e5df" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -629,9 +594,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194ff51cd1d2e65c66b98425e0ca7eb559ca1a579725834c986d84faf8e224c0" +checksum = "25289674cd8c58fcca2568b5350423cb0dd7bca8c596c5e2869bfe4c5c57ed14" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -655,9 +620,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d4fe522f6fc749c8afce721bdc8f73b715d317c3c02fcb9b51f7a143e4401dd" +checksum = "39676beaa50db545cf15447fc94ec5513b64e85a48357a0625b9a04aef08a910" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-engine", @@ -668,9 +633,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30f218456a0a70a234ed52c181f04e6c98b6810c25273cf5280d32dd2cbdc876" +checksum = "65acc9264342069decb617aa344847f55180ba3aeab1c8d1db062d0619881029" dependencies = [ "alloy-genesis", "alloy-primitives 1.3.1", @@ -680,9 +645,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6af88d9714b499675164cac2fa2baadb3554579ab3ea8bc0d7b0c0de4f9d692" +checksum = "a9c8cad42fa936000be72ab80fcd97386a6a226c35c2989212756da9e76c1521" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -692,9 +657,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "124b742619519d5932e586631f11050028b29c30e3e195f2bb04228c886253d6" +checksum = "01bac57c987c93773787619e20f89167db74d460a2d1d40f591d94fb7c22c379" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -703,9 +668,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd39ff755554e506ae0f6a8e8251f8633bd7512cce0d7d1a7cfd689797e0daa5" +checksum = "8d3c0e6cc87a8be5582d08f929f96db25843f44cb636a0985a4a6bf02609c02f" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -713,6 +678,7 @@ dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_json", "serde_with", "thiserror 2.0.16", "tree_hash", @@ -721,20 +687,21 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c6a6c8ae298c2739706ee3cd996c220b0ea406e6841a4e4290c7336edd5f811" +checksum = "c2fe118e6c152d54cb4549b9835fb87d38b12754bb121375183ee3ec84bd0849" dependencies = [ "alloy-primitives 1.3.1", "derive_more", "serde", + "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1a77a23d609bca2e4a60f992dde5f987475cb064da355fa4dbd7cda2e1bb48" +checksum = "72a41624eb84bc743e414198bf10eb48b611a5554d6a9fd6205f7384d57dfd7f" dependencies = [ "alloy-consensus", "alloy-eips", @@ -752,9 +719,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781d4d5020bea8f020e164f5593101c2e2f790d66d04a0727839d03bc4411ed7" +checksum = "1cd1e1b4dcdf13eaa96343e5c0dafc2d2e8ce5d20b90347169d46a1df0dec210" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -774,9 +741,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f742708f7ea7c3dc6067e7d87b6635c0817cf142b7c72cb8e8e3e07371aa3a" +checksum = "01620baa48d3f49fc908c781eb91ded71f3226e719bb6404697c2851cac4e098" dependencies = [ "alloy-consensus", "alloy-eips", @@ -789,9 +756,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719e5eb9c15e21dab3dee2cac53505500e5e701f25d556734279c5f02154022a" +checksum = "1bc33d9d0e0b3cfe9c2e82a1a427c9ed516fcfebe764f0adf7ceb8107f702dd1" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -803,9 +770,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c751233a6067ccc8a4cbd469e0fd34e0d9475fd118959dbc777ae3af31bba7" +checksum = "d4fa9e9b3e613425d2a2ee1a322bdad5f1cedf835406fd4b59538822500b44bc" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -815,9 +782,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30be84f45d4f687b00efaba1e6290cbf53ccc8f6b8fbb54e4c2f9d2a0474ce95" +checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", @@ -827,9 +794,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8c24b883fe56395db64afcd665fca32dcdef670a59e5338de6892c2e38d7e9" +checksum = "10ab1b8d4649bf7d0db8ab04e31658a6cc20364d920795484d886c35bed3bab4" dependencies = [ "alloy-primitives 1.3.1", "async-trait", @@ -842,9 +809,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05724615fd2ec3417f5cd07cab908300cbb3aae5badc1b805ca70c555b26775f" +checksum = "7bdeec36c8d9823102b571b3eab8b323e053dc19c12da14a9687bd474129bf2a" dependencies = [ "alloy-consensus", "alloy-network", @@ -1002,9 +969,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b7f8b6c540b55e858f958d3a92223494cf83c4fb43ff9b26491edbeb3a3b71" +checksum = "dce5129146a76ca6139a19832c75ad408857a56bcd18cd2c684183b8eacd78d8" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -1026,9 +993,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260e9584dfd7998760d7dfe1856c6f8f346462b9e7837287d7eddfb3922ef275" +checksum = "e2379d998f46d422ec8ef2b61603bc28cda931e5e267aea1ebe71f62da61d101" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -1041,9 +1008,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9491a1d81e97ae9d919da49e1c63dec4729c994e2715933968b8f780aa18793e" +checksum = "041aa5db2e907692a9a93a0a908057665c03e59364e1fbbeed613511a0159289" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -1061,9 +1028,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d056ef079553e1f18834d6ef4c2793e4d51ac742021b2be5039dd623fe1354f0" +checksum = "c6d44395e6793566e9c89bd82297cc4b0566655c1e78a1d69362640814784cc6" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1099,12 +1066,12 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e29436068f836727d4e7c819ae6bf6f9c9e19a32e96fc23e814709a277f23a" +checksum = "3b5becb9c269a7d05a2f28d549f86df5a5dbc923e2667eff84fdecac8cda534c" dependencies = [ "alloy-primitives 1.3.1", - "darling", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", @@ -2877,8 +2844,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]] @@ -2895,13 +2872,39 @@ dependencies = [ "syn 2.0.106", ] +[[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.106", +] + [[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.106", +] + +[[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.106", ] @@ -3076,7 +3079,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.106", @@ -3538,7 +3541,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.106", @@ -4750,7 +4753,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a" dependencies = [ - "darling", + "darling 0.20.11", "indoc", "proc-macro2", "quote", @@ -4918,48 +4921,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", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", "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", "pin-project", "rustls", "rustls-pki-types", @@ -4975,9 +4964,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693c93cbb7db25f4108ed121304b671a36002c2db67dff2ee4391a688c738547" +checksum = "316c96719901f05d1137f19ba598b5fe9c9bc39f4335f67f6be8613921946480" dependencies = [ "async-trait", "bytes", @@ -4986,7 +4975,7 @@ dependencies = [ "http", "http-body", "http-body-util", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types", "parking_lot", "pin-project", "rand 0.9.2", @@ -5001,65 +4990,19 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "jsonrpsee-core" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "parking_lot", - "pin-project", - "rand 0.9.2", - "rustc-hash 2.1.1", - "serde", - "serde_json", - "thiserror 2.0.16", - "tokio", - "tower 0.5.2", - "tracing", -] - [[package]] name = "jsonrpsee-http-client" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6962d2bd295f75e97dd328891e58fce166894b974c1f7ce2e7597f02eeceb791" -dependencies = [ - "base64 0.22.1", - "http-body", - "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)", - "rustls", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror 2.0.16", - "tokio", - "tower 0.5.2", - "url", -] - -[[package]] -name = "jsonrpsee-http-client" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +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", + "jsonrpsee-types", "rustls", "rustls-platform-verifier", "serde", @@ -5072,21 +5015,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.106", -] - -[[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", @@ -5097,35 +5028,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.16", - "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", @@ -5133,8 +5038,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", + "jsonrpsee-types", "pin-project", "route-recognizer", "serde", @@ -5150,20 +5055,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66df7256371c45621b3b7d2fb23aea923d577616b9c0e9c0b950a6ea5c2be0ca" -dependencies = [ - "http", - "serde", - "serde_json", - "thiserror 2.0.16", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +checksum = "bc88ff4688e43cc3fa9883a8a95c6fa27aa2e76c96e610b737b6554d650d7fd5" dependencies = [ "http", "serde", @@ -5173,26 +5067,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", + "jsonrpsee-types", "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", + "jsonrpsee-types", "tower 0.5.2", "url", ] @@ -6178,9 +6072,9 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "op-alloy-consensus" -version = "0.18.14" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c88d2940558fd69f8f07b3cbd7bb3c02fc7d31159c1a7ba9deede50e7881024" +checksum = "d9ade20c592484ba1ea538006e0454284174447a3adf9bb59fa99ed512f95493" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6204,9 +6098,9 @@ checksum = "a79f352fc3893dcd670172e615afef993a41798a1d3fc0db88a3e60ef2e70ecc" [[package]] name = "op-alloy-network" -version = "0.18.14" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7071d7c3457d02aa0d35799cb8fbd93eabd51a21d100dcf411f4fcab6fdd2ea5" +checksum = "84741a798124ceb43979d70db654039937a00979b1341fa8bfdc48473bbd52bf" dependencies = [ "alloy-consensus", "alloy-network", @@ -6220,19 +6114,19 @@ dependencies = [ [[package]] name = "op-alloy-rpc-jsonrpsee" -version = "0.18.14" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fc8be822ca7d4be006c69779853fa27e747cff4456a1c2ef521a68ac26432" +checksum = "aa85f170bf8f914a7619e1447918781a8c5bd1041bb6629940b851e865487156" dependencies = [ "alloy-primitives 1.3.1", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", ] [[package]] name = "op-alloy-rpc-types" -version = "0.18.14" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f22201e53e8cbb67a053e88b534b4e7f02265c5406994bf35978482a9ad0ae26" +checksum = "9076d4fcb8e260cec8ad01cd155200c0dbb562e62adb553af245914f30854e29" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6249,9 +6143,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.18.14" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4f977b51e9e177e69a4d241ab7c4b439df9a3a5a998c000ae01be724de271" +checksum = "d4256b1eda5766a9fa7de5874e54515994500bef632afda41e940aed015f9455" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6277,7 +6171,7 @@ dependencies = [ "alloy-eips", "alloy-json-rpc", "alloy-network", - "alloy-op-evm 0.18.3", + "alloy-op-evm", "alloy-primitives 1.3.1", "alloy-provider", "alloy-rpc-client", @@ -6302,9 +6196,9 @@ dependencies = [ "futures-util", "hex", "http", - "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", + "jsonrpsee-types", "macros", "metrics", "moka", @@ -6314,57 +6208,57 @@ dependencies = [ "op-alloy-network", "op-alloy-rpc-types", "op-alloy-rpc-types-engine", - "op-revm 9.0.1", + "op-revm", "opentelemetry 0.29.1", "parking_lot", "rand 0.9.2", "reth", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder", + "reth-chain-state", + "reth-chainspec", "reth-cli", "reth-cli-commands", "reth-cli-util", "reth-db", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm", + "reth-execution-types", "reth-exex", "reth-ipc", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics", + "reth-network-peers", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-ethereum", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-chainspec", "reth-optimism-cli", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-consensus", + "reth-optimism-evm", + "reth-optimism-forks", "reth-optimism-node", - "reth-optimism-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-payload-builder", + "reth-optimism-primitives", "reth-optimism-rpc", - "reth-optimism-txpool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-txpool", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-payload-util", "reth-primitives", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-provider", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-eth-types", "reth-rpc-layer", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api", + "reth-tasks", "reth-testing-utils", "reth-tracing-otlp", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-transaction-pool", + "reth-trie", + "revm", "rlimit", "rollup-boost", "secp256k1 0.30.0", @@ -6395,24 +6289,12 @@ dependencies = [ [[package]] name = "op-revm" -version = "8.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce1dc7533f4e5716c55cd3d62488c6200cb4dfda96e0c75a7e484652464343b" -dependencies = [ - "auto_impl", - "once_cell", - "revm 27.1.0", - "serde", -] - -[[package]] -name = "op-revm" -version = "9.0.1" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6889cdfed74c6c924a54b2357982fce232e06473c6bb73b9a0c71a9151bfabd" +checksum = "5ba21d705bbbfc947a423cba466d75e4af0c7d43ee89ba0a0f1cfa04963cede9" dependencies = [ "auto_impl", - "revm 28.0.1", + "revm", "serde", ] @@ -7599,23 +7481,23 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-rpc-types", "aquamarine", "clap", "eyre", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-cli-runner", "reth-cli-util", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", + "reth-consensus-common", "reth-db", "reth-ethereum-cli", "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", + "reth-evm", "reth-network", "reth-network-api", "reth-node-api", @@ -7623,54 +7505,30 @@ dependencies = [ "reth-node-core", "reth-node-ethereum", "reth-node-metrics", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder", + "reth-payload-primitives", "reth-primitives", "reth-provider", "reth-ress-protocol", "reth-ress-provider", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks", "reth-tokio-util", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "tokio", - "tracing", -] - -[[package]] -name = "reth-basic-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.3.1", - "futures-core", - "futures-util", - "metrics", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", + "reth-transaction-pool", "tokio", "tracing", ] [[package]] name = "reth-basic-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7678,49 +7536,23 @@ dependencies = [ "futures-core", "futures-util", "metrics", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "tokio", - "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 1.3.1", - "derive_more", - "metrics", - "parking_lot", - "pin-project", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm-database", + "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", - "tokio-stream", "tracing", ] [[package]] name = "reth-chain-state" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7732,14 +7564,14 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.9.2", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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", @@ -7750,48 +7582,28 @@ dependencies = [ [[package]] name = "reth-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-evm 0.15.0", - "alloy-genesis", - "alloy-primitives 1.3.1", - "alloy-trie", - "auto_impl", - "derive_more", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde_json", -] - -[[package]] -name = "reth-chainspec" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.18.3", + "alloy-evm", "alloy-genesis", "alloy-primitives 1.3.1", "alloy-trie", "auto_impl", "derive_more", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks", + "reth-network-peers", + "reth-primitives-traits", "serde_json", ] [[package]] name = "reth-cli" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-genesis", "clap", @@ -7804,10 +7616,9 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "ahash", "alloy-chains", "alloy-consensus", "alloy-eips", @@ -7821,17 +7632,18 @@ dependencies = [ "fdlimit", "futures", "human_bytes", + "humantime", "itertools 0.14.0", "lz4", "ratatui", "reqwest", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", "reth-db", "reth-db-api", "reth-db-common", @@ -7844,26 +7656,27 @@ dependencies = [ "reth-era-utils", "reth-eth-wire", "reth-etl", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm", "reth-exex", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm", "reth-stages", "reth-static-file", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types", + "reth-trie", + "reth-trie-common", "reth-trie-db", "secp256k1 0.30.0", "serde", @@ -7873,22 +7686,23 @@ dependencies = [ "tokio-stream", "toml", "tracing", + "zstd", ] [[package]] name = "reth-cli-runner" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks", "tokio", "tracing", ] [[package]] name = "reth-cli-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -7896,7 +7710,7 @@ dependencies = [ "eyre", "libc", "rand 0.8.5", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", "secp256k1 0.30.0", "serde", "thiserror 2.0.16", @@ -7905,26 +7719,8 @@ dependencies = [ [[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 1.3.1", - "alloy-trie", - "bytes", - "modular-bitfield", - "op-alloy-consensus", - "reth-codecs-derive 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-zstd-compressors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde", -] - -[[package]] -name = "reth-codecs" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7935,27 +7731,16 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs-derive 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-zstd-compressors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs-derive", + "reth-zstd-compressors", "serde", "visibility", ] [[package]] name = "reth-codecs-derive" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "convert_case", "proc-macro2", @@ -7965,14 +7750,14 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types", + "reth-stages-types", "serde", "toml", "url", @@ -7980,58 +7765,33 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-primitives 1.3.1", - "auto_impl", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "auto_impl", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-types", + "reth-primitives-traits", "thiserror 2.0.16", ] [[package]] name = "reth-consensus-common" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", -] - -[[package]] -name = "reth-consensus-common" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-consensus", + "reth-primitives-traits", ] [[package]] name = "reth-consensus-debug-client" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8045,7 +7805,7 @@ dependencies = [ "futures", "reqwest", "reth-node-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-tracing", "ringbuffer", "serde", @@ -8055,8 +7815,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "derive_more", @@ -8065,12 +7825,12 @@ dependencies = [ "page_size", "parking_lot", "reth-db-api", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", "reth-libmdbx", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics", "reth-nippy-jar", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types", + "reth-storage-errors", "reth-tracing", "rustc-hash 2.1.1", "strum 0.27.2", @@ -8081,8 +7841,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -8094,42 +7854,42 @@ dependencies = [ "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-db-models 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", + "reth-db-models", + "reth-ethereum-primitives", + "reth-optimism-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.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-genesis", "alloy-primitives 1.3.1", "boyer-moore-magiclen", "eyre", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-codecs", "reth-config", "reth-db-api", "reth-etl", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors", + "reth-fs-util", "reth-node-types", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-provider", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-stages-types", + "reth-static-file-types", + "reth-trie", "reth-trie-db", "serde", "serde_json", @@ -8139,33 +7899,23 @@ dependencies = [ [[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 1.3.1", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", -] - -[[package]] -name = "reth-db-models" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", + "reth-primitives-traits", "serde", ] [[package]] name = "reth-discv4" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8175,10 +7925,10 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "rand 0.8.5", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks", "reth-net-banlist", "reth-net-nat", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", "schnellru", "secp256k1 0.30.0", "serde", @@ -8190,8 +7940,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8202,10 +7952,10 @@ dependencies = [ "itertools 0.14.0", "metrics", "rand 0.9.2", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-ethereum-forks", + "reth-metrics", + "reth-network-peers", "secp256k1 0.30.0", "thiserror 2.0.16", "tokio", @@ -8214,8 +7964,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "data-encoding", @@ -8223,8 +7973,8 @@ dependencies = [ "hickory-resolver", "linked_hash_set", "parking_lot", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks", + "reth-network-peers", "reth-tokio-util", "schnellru", "secp256k1 0.30.0", @@ -8238,8 +7988,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8252,16 +8002,16 @@ dependencies = [ "pin-project", "rayon", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", "reth-db", "reth-db-api", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", + "reth-metrics", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", "reth-testing-utils", "tempfile", "thiserror 2.0.16", @@ -8273,8 +8023,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "aes", "alloy-primitives 1.3.1", @@ -8290,7 +8040,7 @@ dependencies = [ "hmac", "pin-project", "rand 0.8.5", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", "secp256k1 0.30.0", "sha2 0.10.9", "sha3", @@ -8304,8 +8054,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8313,14 +8063,14 @@ dependencies = [ "eyre", "futures-util", "op-alloy-rpc-types-engine", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-engine-primitives", + "reth-ethereum-engine-primitives", + "reth-optimism-chainspec", + "reth-payload-builder", + "reth-payload-primitives", "reth-provider", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool", "tokio", "tokio-stream", "tracing", @@ -8328,33 +8078,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.3.1", - "alloy-rpc-types-engine", - "auto_impl", - "futures", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde", - "thiserror 2.0.16", - "tokio", -] - -[[package]] -name = "reth-engine-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8362,15 +8087,15 @@ dependencies = [ "alloy-rpc-types-engine", "auto_impl", "futures", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.16", "tokio", @@ -8378,35 +8103,35 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "futures", "pin-project", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-consensus", + "reth-engine-primitives", "reth-engine-tree", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", + "reth-evm", "reth-network-p2p", "reth-node-types", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder", "reth-provider", "reth-prune", "reth-stages-api", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks", "thiserror 2.0.16", ] [[package]] name = "reth-engine-tree" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm", "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", @@ -8416,36 +8141,38 @@ dependencies = [ "mini-moka", "parking_lot", "rayon", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-chainspec", + "reth-consensus", "reth-db", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-metrics", "reth-network-p2p", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder", + "reth-payload-primitives", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types", + "reth-revm", "reth-stages", "reth-stages-api", "reth-static-file", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks", "reth-tracing", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie", "reth-trie-db", "reth-trie-parallel", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie-sparse", "reth-trie-sparse-parallel", - "revm 28.0.1", + "revm", "revm-primitives", "schnellru", + "smallvec", "thiserror 2.0.16", "tokio", "tracing", @@ -8453,8 +8180,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8462,16 +8189,16 @@ dependencies = [ "futures", "itertools 0.14.0", "pin-project", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-engine-primitives", "reth-engine-tree", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-errors", + "reth-evm", + "reth-fs-util", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", "serde", "serde_json", "tokio", @@ -8481,8 +8208,8 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8490,76 +8217,63 @@ dependencies = [ "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", "snap", "thiserror 2.0.16", ] [[package]] name = "reth-era-downloader" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "bytes", "eyre", "futures-util", "reqwest", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", "sha2 0.10.9", "tokio", ] [[package]] name = "reth-era-utils" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", - "alloy-rlp", "eyre", "futures-util", "reth-db-api", "reth-era", "reth-era-downloader", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", "reth-etl", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", + "reth-primitives-traits", "reth-provider", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-stages-types", + "reth-storage-api", "tokio", "tracing", ] [[package]] name = "reth-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", + "reth-execution-errors", + "reth-storage-errors", "thiserror 2.0.16", ] [[package]] name = "reth-eth-wire" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-chains", "alloy-primitives 1.3.1", @@ -8568,13 +8282,13 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", "reth-ecies", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-eth-wire-types", + "reth-ethereum-forks", + "reth-metrics", + "reth-network-peers", + "reth-primitives-traits", "serde", "snap", "thiserror 2.0.16", @@ -8586,29 +8300,8 @@ dependencies = [ [[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 1.3.1", - "alloy-rlp", - "bytes", - "derive_more", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-codecs-derive 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-eth-wire-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8618,22 +8311,22 @@ dependencies = [ "alloy-rlp", "bytes", "derive_more", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-codecs-derive 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-codecs-derive", + "reth-ethereum-primitives", + "reth-primitives-traits", "serde", "thiserror 2.0.16", ] [[package]] name = "reth-ethereum-cli" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "clap", "eyre", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-cli", "reth-cli-commands", "reth-cli-runner", @@ -8649,51 +8342,33 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-execution-types", + "reth-primitives-traits", "tracing", ] [[package]] name = "reth-ethereum-engine-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eips", - "alloy-primitives 1.3.1", - "alloy-rlp", - "alloy-rpc-types-engine", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde", - "sha2 0.10.9", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-ethereum-engine-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives", + "reth-ethereum-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "serde", "sha2 0.10.9", "thiserror 2.0.16", @@ -8701,21 +8376,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eip2124", - "alloy-hardforks", - "alloy-primitives 1.3.1", - "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?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -8727,50 +8389,37 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", + "alloy-rlp", "alloy-rpc-types-engine", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder", + "reth-chainspec", + "reth-consensus-common", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", "reth-evm-ethereum", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-validator 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-payload-validator", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", + "reth-transaction-pool", + "revm", "tracing", ] [[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 1.3.1", - "alloy-rlp", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-zstd-compressors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde", - "serde_with", -] - -[[package]] -name = "reth-ethereum-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8778,17 +8427,17 @@ dependencies = [ "alloy-rlp", "arbitrary", "modular-bitfield", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-zstd-compressors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", + "reth-primitives-traits", + "reth-zstd-compressors", "serde", "serde_with", ] [[package]] name = "reth-etl" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "rayon", "reth-db-api", @@ -8797,132 +8446,82 @@ dependencies = [ [[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 1.3.1", - "auto_impl", - "derive_more", - "futures-util", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm 27.1.0", -] - -[[package]] -name = "reth-evm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm", "alloy-primitives 1.3.1", "auto_impl", "derive_more", "futures-util", "metrics", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "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.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", -] - -[[package]] -name = "reth-execution-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-evm 0.15.0", - "alloy-primitives 1.3.1", - "alloy-rlp", - "nybbles", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "thiserror 2.0.16", + "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?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "alloy-evm 0.18.3", + "alloy-evm", "alloy-primitives 1.3.1", "alloy-rlp", "nybbles", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-errors", "thiserror 2.0.16", ] [[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 1.3.1", - "derive_more", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm 27.1.0", -] - -[[package]] -name = "reth-execution-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm", "alloy-primitives 1.3.1", "derive_more", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-ethereum-primitives", + "reth-primitives-traits", + "reth-trie-common", + "revm", "serde", "serde_with", ] [[package]] name = "reth-exex" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8932,23 +8531,23 @@ dependencies = [ "itertools 0.14.0", "metrics", "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-chainspec", "reth-config", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", + "reth-evm", "reth-exex-types", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", + "reth-metrics", "reth-node-api", "reth-node-core", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types", + "reth-revm", "reth-stages-api", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks", "reth-tracing", "rmp-serde", "thiserror 2.0.16", @@ -8959,32 +8558,22 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-execution-types", + "reth-primitives-traits", "serde", "serde_with", ] [[package]] name = "reth-fs-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "serde", - "serde_json", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-fs-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "serde", "serde_json", @@ -8993,8 +8582,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9002,17 +8591,16 @@ 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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives", + "reth-evm", + "reth-primitives-traits", "reth-provider", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm", "reth-rpc-api", "reth-tracing", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie", "revm-bytecode", "revm-database", "serde", @@ -9021,14 +8609,14 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.16", @@ -9041,8 +8629,8 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "bitflags 2.9.2", "byteorder", @@ -9058,8 +8646,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "bindgen 0.70.1", "cc", @@ -9067,17 +8655,8 @@ dependencies = [ [[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-metrics" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "futures", "metrics", @@ -9088,16 +8667,16 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", ] [[package]] name = "reth-net-nat" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "futures-util", "if-addrs", @@ -9110,8 +8689,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9129,28 +8708,28 @@ dependencies = [ "pin-project", "rand 0.8.5", "rand 0.9.2", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-consensus", "reth-discv4", "reth-discv5", "reth-dns-discovery", "reth-ecies", "reth-eth-wire", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", "reth-network-types", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", "reth-tokio-util", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool", "rustc-hash 2.1.1", "schnellru", "secp256k1 0.30.0", @@ -9165,8 +8744,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9176,10 +8755,10 @@ dependencies = [ "derive_more", "enr", "futures", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-eth-wire-types", + "reth-ethereum-forks", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", "reth-network-types", "reth-tokio-util", "serde", @@ -9190,8 +8769,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9200,34 +8779,21 @@ dependencies = [ "derive_more", "futures", "parking_lot", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", + "reth-eth-wire-types", + "reth-ethereum-primitives", + "reth-network-peers", "reth-network-types", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", + "reth-storage-errors", "tokio", "tracing", ] [[package]] name = "reth-network-peers" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives 1.3.1", - "alloy-rlp", - "secp256k1 0.30.0", - "serde_with", - "thiserror 2.0.16", - "url", -] - -[[package]] -name = "reth-network-peers" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -9241,13 +8807,13 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", "serde", "serde_json", "tracing", @@ -9255,15 +8821,15 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", "serde", "thiserror 2.0.16", "tracing", @@ -9272,32 +8838,32 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder", + "reth-consensus", "reth-db-api", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives", + "reth-evm", "reth-network-api", "reth-node-core", "reth-node-types", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", "reth-provider", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks", "reth-tokio-util", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool", ] [[package]] name = "reth-node-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9309,27 +8875,27 @@ dependencies = [ "eyre", "fdlimit", "futures", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee", "rayon", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-basic-payload-builder", + "reth-chain-state", + "reth-chainspec", "reth-cli-util", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", "reth-consensus-debug-client", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", "reth-engine-local", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives", "reth-engine-service", "reth-engine-tree", "reth-engine-util", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm", "reth-exex", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", "reth-invalid-block-hooks", "reth-network", "reth-network-api", @@ -9339,8 +8905,8 @@ dependencies = [ "reth-node-ethstats", "reth-node-events", "reth-node-metrics", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", "reth-prune", "reth-rpc", @@ -9351,10 +8917,10 @@ dependencies = [ "reth-rpc-layer", "reth-stages", "reth-static-file", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-tasks", "reth-tokio-util", "reth-tracing", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool", "secp256k1 0.30.0", "serde_json", "tokio", @@ -9364,8 +8930,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9378,30 +8944,30 @@ dependencies = [ "futures", "humantime", "rand 0.9.2", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-cli-util", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", "reth-db", "reth-discv4", "reth-discv5", "reth-engine-local", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives", + "reth-ethereum-forks", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", + "reth-primitives-traits", + "reth-prune-types", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-stages-types", + "reth-storage-api", + "reth-storage-errors", "reth-tracing", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-transaction-pool", "secp256k1 0.30.0", "serde", "shellexpand", @@ -9416,30 +8982,30 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-network", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "eyre", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-engine-local", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives", "reth-ethereum-consensus", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-engine-primitives", "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", + "reth-evm", "reth-evm-ethereum", "reth-network", "reth-node-api", "reth-node-builder", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-primitives", + "reth-primitives-traits", "reth-provider", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", @@ -9447,25 +9013,25 @@ dependencies = [ "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-transaction-pool", + "revm", "tokio", ] [[package]] name = "reth-node-ethstats" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "chrono", "futures-util", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", "reth-network-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", + "reth-storage-api", + "reth-transaction-pool", "serde", "serde_json", "thiserror 2.0.16", @@ -9478,8 +9044,8 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9489,32 +9055,32 @@ dependencies = [ "futures", "humantime", "pin-project", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-engine-primitives", "reth-network-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", + "reth-prune-types", "reth-stages", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types", + "reth-storage-api", "tokio", "tracing", ] [[package]] name = "reth-node-metrics" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics", + "reth-tasks", "tikv-jemalloc-ctl", "tokio", "tower 0.5.2", @@ -9523,43 +9089,20 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-db-api", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", -] - -[[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 1.3.1", - "derive_more", - "op-alloy-consensus", - "op-alloy-rpc-types", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde_json", + "reth-engine-primitives", + "reth-payload-primitives", + "reth-primitives-traits", ] [[package]] name = "reth-optimism-chainspec" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-chains", "alloy-consensus", @@ -9572,12 +9115,12 @@ dependencies = [ "op-alloy-consensus", "op-alloy-rpc-types", "paste", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-ethereum-forks", + "reth-network-peers", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", "serde", "serde_json", "tar-no-std", @@ -9586,8 +9129,8 @@ dependencies = [ [[package]] name = "reth-optimism-cli" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9598,32 +9141,32 @@ dependencies = [ "eyre", "futures-util", "op-alloy-consensus", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-cli", "reth-cli-commands", "reth-cli-runner", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-types", + "reth-fs-util", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-chainspec", + "reth-optimism-consensus", + "reth-optimism-evm", "reth-optimism-node", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-primitives", + "reth-primitives-traits", "reth-provider", "reth-prune", "reth-stages", "reth-static-file", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types", "reth-tracing", "serde", "tokio", @@ -9633,133 +9176,103 @@ dependencies = [ [[package]] name = "reth-optimism-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.3.1", - "alloy-trie", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-consensus-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm 27.1.0", - "thiserror 2.0.16", - "tracing", -] - -[[package]] -name = "reth-optimism-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", "alloy-trie", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "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.16", "tracing", ] [[package]] name = "reth-optimism-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-op-evm 0.15.0", - "alloy-primitives 1.3.1", - "op-alloy-consensus", - "op-revm 8.1.0", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm 27.1.0", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-optimism-evm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", - "alloy-op-evm 0.18.3", + "alloy-evm", + "alloy-op-evm", "alloy-primitives 1.3.1", "op-alloy-consensus", "op-alloy-rpc-types-engine", - "op-revm 9.0.1", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-storage-errors", + "revm", "thiserror 2.0.16", ] [[package]] -name = "reth-optimism-forks" -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-op-hardforks", + "alloy-eips", "alloy-primitives 1.3.1", - "once_cell", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.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?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-op-hardforks", "alloy-primitives 1.3.1", "once_cell", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks", ] [[package]] name = "reth-optimism-node" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9769,81 +9282,43 @@ dependencies = [ "eyre", "op-alloy-consensus", "op-alloy-rpc-types-engine", - "op-revm 9.0.1", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "op-revm", + "reth-chainspec", + "reth-consensus", "reth-engine-local", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm", "reth-network", "reth-node-api", "reth-node-builder", "reth-node-core", - "reth-optimism-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-txpool", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-transaction-pool", + "reth-trie-common", + "revm", "serde", "tokio", + "url", ] [[package]] name = "reth-optimism-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives 1.3.1", - "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "derive_more", - "op-alloy-consensus", - "op-alloy-rpc-types-engine", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-txpool 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-util 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-validator 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm 27.1.0", - "serde", - "sha2 0.10.9", - "thiserror 2.0.16", - "tracing", -] - -[[package]] -name = "reth-optimism-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9854,25 +9329,25 @@ dependencies = [ "derive_more", "op-alloy-consensus", "op-alloy-rpc-types-engine", - "reth-basic-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-txpool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-validator 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "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.16", @@ -9881,21 +9356,8 @@ dependencies = [ [[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 1.3.1", - "alloy-rlp", - "op-alloy-consensus", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", -] - -[[package]] -name = "reth-optimism-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9905,17 +9367,17 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-zstd-compressors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", + "reth-primitives-traits", + "reth-zstd-compressors", "serde", "serde_with", ] [[package]] name = "reth-optimism-rpc" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9930,38 +9392,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", + "jsonrpsee-types", "metrics", "op-alloy-consensus", "op-alloy-network", "op-alloy-rpc-jsonrpsee", "op-alloy-rpc-types", "op-alloy-rpc-types-engine", - "op-revm 9.0.1", + "op-revm", "reqwest", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-evm", + "reth-metrics", "reth-node-api", "reth-node-builder", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-txpool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "revm", "serde_json", "thiserror 2.0.16", "tokio", @@ -9971,60 +9434,24 @@ dependencies = [ [[package]] name = "reth-optimism-storage" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-db-api", "reth-node-api", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-optimism-primitives", + "reth-primitives-traits", "reth-provider", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", -] - -[[package]] -name = "reth-optimism-txpool" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives 1.3.1", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-serde", - "c-kzg", - "derive_more", - "futures-util", - "metrics", - "op-alloy-consensus", - "op-alloy-flz", - "op-alloy-rpc-types", - "op-revm 8.1.0", - "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde", - "thiserror 2.0.16", - "tokio", - "tracing", + "reth-storage-api", ] [[package]] name = "reth-optimism-txpool" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10040,17 +9467,17 @@ dependencies = [ "op-alloy-consensus", "op-alloy-flz", "op-alloy-rpc-types", - "op-revm 9.0.1", + "op-revm", "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.16", "tokio", @@ -10059,52 +9486,20 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types", - "futures-util", - "metrics", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "alloy-rpc-types", "futures-util", "metrics", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-builder-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "pin-project", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", + "reth-chain-state", + "reth-ethereum-engine-primitives", + "reth-metrics", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "tokio", "tokio-stream", "tracing", @@ -10112,11 +9507,11 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-payload-primitives", "tokio", "tokio-stream", "tracing", @@ -10124,37 +9519,18 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eips", - "alloy-primitives 1.3.1", - "alloy-rpc-types-engine", - "auto_impl", - "op-alloy-rpc-types-engine", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "serde", - "thiserror 2.0.16", - "tokio", -] - -[[package]] -name = "reth-payload-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", "op-alloy-rpc-types-engine", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-primitives-traits", "serde", "thiserror 2.0.16", "tokio", @@ -10162,89 +9538,42 @@ dependencies = [ [[package]] name = "reth-payload-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-primitives 1.3.1", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", -] - -[[package]] -name = "reth-payload-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", -] - -[[package]] -name = "reth-payload-validator" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types-engine", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", + "reth-transaction-pool", ] [[package]] name = "reth-payload-validator" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", ] [[package]] name = "reth-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "c-kzg", "once_cell", - "reth-ethereum-forks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-primitives-traits", + "reth-static-file-types", ] [[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 1.3.1", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-trie", - "auto_impl", - "bytes", - "derive_more", - "once_cell", - "op-alloy-consensus", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm-bytecode", - "revm-primitives", - "revm-state", - "secp256k1 0.30.0", - "serde", - "serde_with", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10264,7 +9593,7 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", "revm-bytecode", "revm-primitives", "revm-state", @@ -10276,8 +9605,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10290,27 +9619,27 @@ dependencies = [ "notify", "parking_lot", "rayon", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-chainspec", + "reth-codecs", "reth-db", "reth-db-api", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-errors", + "reth-ethereum-engine-primitives", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-fs-util", + "reth-metrics", "reth-nippy-jar", "reth-node-types", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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", "revm-state", @@ -10321,8 +9650,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10330,16 +9659,16 @@ dependencies = [ "itertools 0.14.0", "metrics", "rayon", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-config", "reth-db-api", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-errors", "reth-exex-types", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types", + "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", "thiserror 2.0.16", @@ -10349,42 +9678,32 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives 1.3.1", - "derive_more", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-prune-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", "serde", "thiserror 2.0.16", ] [[package]] name = "reth-ress-protocol" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "alloy-rlp", "futures", "reth-eth-wire", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", "reth-network", "reth-network-api", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-errors", "tokio", "tokio-stream", "tracing", @@ -10392,26 +9711,26 @@ dependencies = [ [[package]] name = "reth-ress-provider" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "eyre", "futures", "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", "reth-node-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-ress-protocol", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-revm", + "reth-storage-api", + "reth-tasks", "reth-tokio-util", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie", "schnellru", "tokio", "tracing", @@ -10419,43 +9738,31 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives 1.3.1", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm 27.1.0", -] - -[[package]] -name = "reth-revm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-primitives-traits", + "reth-storage-api", + "reth-storage-errors", + "reth-trie", + "revm", ] [[package]] name = "reth-rpc" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.18.3", + "alloy-evm", "alloy-genesis", "alloy-network", "alloy-primitives 1.3.1", "alloy-rlp", + "alloy-rpc-client", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", @@ -10475,37 +9782,38 @@ dependencies = [ "http-body", "hyper", "itertools 0.14.0", - "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", "jsonwebtoken", "parking_lot", "pin-project", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-engine-primitives", + "reth-errors", + "reth-evm", "reth-evm-ethereum", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-types", + "reth-metrics", "reth-network-api", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-network-peers", "reth-network-types", "reth-node-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie-common", + "revm", "revm-inspectors", "revm-primitives", "serde", @@ -10521,8 +9829,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-genesis", @@ -10539,43 +9847,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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-network-peers 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "jsonrpsee", + "reth-chain-state", + "reth-engine-primitives", + "reth-network-peers", "reth-rpc-eth-api", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie-common", ] [[package]] name = "reth-rpc-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-chainspec", + "reth-consensus", + "reth-evm", "reth-ipc", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics", "reth-network-api", "reth-node-core", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-rpc", "reth-rpc-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-layer", "reth-rpc-server-types", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", "serde", "thiserror 2.0.16", "tokio", @@ -10587,8 +9895,8 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-json-rpc", @@ -10596,44 +9904,44 @@ dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-signer", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types", "op-alloy-consensus", "op-alloy-network", "op-alloy-rpc-types", - "op-revm 9.0.1", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-optimism-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm-context 9.0.1", + "op-revm", + "reth-ethereum-primitives", + "reth-evm", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-storage-api", + "revm-context", "thiserror 2.0.16", ] [[package]] name = "reth-rpc-engine-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "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", + "jsonrpsee-types", "metrics", "parking_lot", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-engine-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-builder-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-payload-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", "serde", "thiserror 2.0.16", "tokio", @@ -10642,13 +9950,13 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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.18.3", + "alloy-evm", "alloy-json-rpc", "alloy-network", "alloy-primitives 1.3.1", @@ -10660,25 +9968,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", "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-evm", "reth-network-api", "reth-node-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", + "reth-revm", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie-common", + "revm", "revm-inspectors", "tokio", "tracing", @@ -10686,39 +9994,42 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.18.3", + "alloy-evm", "alloy-network", "alloy-primitives 1.3.1", + "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-sol-types 1.3.1", + "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", + "jsonrpsee-types", "metrics", "rand 0.9.2", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-transaction-pool 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm 28.0.1", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie", + "revm", "revm-inspectors", "schnellru", "serde", @@ -10730,12 +10041,12 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +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", "pin-project", "tower 0.5.2", "tower-http", @@ -10744,15 +10055,15 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "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.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "jsonrpsee-core", + "jsonrpsee-types", + "reth-errors", "reth-network-api", "serde", "strum 0.27.2", @@ -10760,8 +10071,8 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10773,32 +10084,32 @@ dependencies = [ "num-traits", "rayon", "reqwest", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", + "reth-codecs", "reth-config", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", "reth-db", "reth-db-api", "reth-era", "reth-era-downloader", "reth-era-utils", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", "reth-etl", - "reth-evm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-evm", + "reth-execution-types", "reth-exex", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-fs-util", "reth-network-p2p", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-revm 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-prune-types", + "reth-revm", "reth-stages-api", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types", + "reth-storage-errors", "reth-testing-utils", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie", "reth-trie-db", "tempfile", "thiserror 2.0.16", @@ -10808,8 +10119,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10817,16 +10128,16 @@ dependencies = [ "auto_impl", "futures-util", "metrics", - "reth-consensus 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-consensus", + "reth-errors", + "reth-metrics", "reth-network-p2p", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-stages-types", "reth-static-file", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-static-file-types", "reth-tokio-util", "thiserror 2.0.16", "tokio", @@ -10835,62 +10146,42 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives 1.3.1", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", -] - -[[package]] -name = "reth-stages-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", + "reth-trie-common", "serde", ] [[package]] name = "reth-static-file" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "parking_lot", "rayon", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", "reth-db-api", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives 1.3.1", - "derive_more", - "serde", - "strum 0.27.2", -] - -[[package]] -name = "reth-static-file-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "clap", @@ -10901,101 +10192,47 @@ dependencies = [ [[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 1.3.1", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-db-models 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm-database", -] - -[[package]] -name = "reth-storage-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-chainspec", "reth-db-api", - "reth-db-models 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "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" -dependencies = [ - "alloy-eips", - "alloy-primitives 1.3.1", - "alloy-rlp", - "derive_more", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm-database-interface", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-storage-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rlp", "derive_more", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-prune-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-static-file-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-primitives-traits", + "reth-prune-types", + "reth-static-file-types", "revm-database-interface", "thiserror 2.0.16", ] [[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 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "thiserror 2.0.16", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "reth-tasks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "auto_impl", "dyn-clone", @@ -11003,7 +10240,7 @@ dependencies = [ "metrics", "pin-project", "rayon", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-metrics", "thiserror 2.0.16", "tokio", "tracing", @@ -11012,8 +10249,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11021,15 +10258,15 @@ dependencies = [ "alloy-primitives 1.3.1", "rand 0.8.5", "rand 0.9.2", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-ethereum-primitives", + "reth-primitives-traits", "secp256k1 0.30.0", ] [[package]] name = "reth-tokio-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "tokio", "tokio-stream", @@ -11038,8 +10275,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "clap", "eyre", @@ -11053,8 +10290,8 @@ dependencies = [ [[package]] name = "reth-tracing-otlp" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "opentelemetry 0.29.1", "opentelemetry-otlp 0.29.0", @@ -11067,44 +10304,8 @@ dependencies = [ [[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 1.3.1", - "alloy-rlp", - "aquamarine", - "auto_impl", - "bitflags 2.9.2", - "futures-util", - "metrics", - "parking_lot", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm-interpreter 23.0.2", - "revm-primitives", - "rustc-hash 2.1.1", - "schnellru", - "smallvec", - "thiserror 2.0.16", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-transaction-pool" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11119,17 +10320,17 @@ dependencies = [ "paste", "pin-project", "rand 0.9.2", - "reth-chain-state 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-chainspec 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-eth-wire-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-ethereum-primitives 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-execution-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-fs-util 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-api 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-tasks 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "revm-interpreter 23.0.2", + "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", @@ -11144,30 +10345,8 @@ dependencies = [ [[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 1.3.1", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "itertools 0.14.0", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm-database", - "tracing", -] - -[[package]] -name = "reth-trie" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11177,13 +10356,13 @@ dependencies = [ "auto_impl", "itertools 0.14.0", "metrics", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-stages-types 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "reth-trie-sparse", "revm-database", "tracing", "triehash", @@ -11191,25 +10370,8 @@ dependencies = [ [[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 1.3.1", - "alloy-rlp", - "alloy-trie", - "derive_more", - "itertools 0.14.0", - "nybbles", - "rayon", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "revm-database", -] - -[[package]] -name = "reth-trie-common" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -11225,8 +10387,8 @@ dependencies = [ "nybbles", "plain_hasher", "rayon", - "reth-codecs 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-codecs", + "reth-primitives-traits", "revm-database", "serde", "serde_with", @@ -11234,21 +10396,21 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "reth-db-api", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors", + "reth-primitives-traits", + "reth-trie", "tracing", ] [[package]] name = "reth-trie-parallel" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -11257,14 +10419,14 @@ dependencies = [ "metrics", "rayon", "reth-db-api", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors", + "reth-metrics", "reth-provider", - "reth-storage-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-storage-errors", + "reth-trie", + "reth-trie-common", "reth-trie-db", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-trie-sparse", "thiserror 2.0.16", "tokio", "tracing", @@ -11272,24 +10434,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives 1.3.1", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", - "smallvec", - "tracing", -] - -[[package]] -name = "reth-trie-sparse" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -11297,91 +10443,64 @@ dependencies = [ "auto_impl", "metrics", "rayon", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-primitives-traits 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-trie-common", "smallvec", "tracing", ] [[package]] name = "reth-trie-sparse-parallel" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", "alloy-trie", "metrics", "rayon", - "reth-execution-errors 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-metrics 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-common 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", - "reth-trie-sparse 1.6.0 (git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628)", + "reth-execution-errors", + "reth-metrics", + "reth-trie-common", + "reth-trie-sparse", "smallvec", "tracing", ] [[package]] name = "reth-zstd-compressors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "zstd", -] - -[[package]] -name = "reth-zstd-compressors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=0fa93840e8f48f97c68ea888dab86b2c7cf49628#0fa93840e8f48f97c68ea888dab86b2c7cf49628" +version = "1.7.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "27.1.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6bf82101a1ad8a2b637363a37aef27f88b4efc8a6e24c72bf5f64923dc5532" +checksum = "0c278b6ee9bba9e25043e3fae648fdce632d1944d3ba16f5203069b43bddd57f" dependencies = [ "revm-bytecode", - "revm-context 8.0.4", - "revm-context-interface 9.0.0", + "revm-context", + "revm-context-interface", "revm-database", "revm-database-interface", - "revm-handler 8.1.0", - "revm-inspector 8.1.0", - "revm-interpreter 24.0.0", - "revm-precompile 25.0.0", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm" -version = "28.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee5d3f7d031e90ab47c7488061bdc4875abc4e9dcea6c18f5dee09732d0436fb" -dependencies = [ - "revm-bytecode", - "revm-context 9.0.1", - "revm-context-interface 10.0.1", - "revm-database", - "revm-database-interface", - "revm-handler 9.0.1", - "revm-inspector 9.1.0", - "revm-interpreter 25.0.1", - "revm-precompile 26.0.1", + "revm-handler", + "revm-inspector", + "revm-interpreter", + "revm-precompile", "revm-primitives", "revm-state", ] [[package]] name = "revm-bytecode" -version = "6.2.1" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d800e6c2119457ded5b0af71634eb2468040bf97de468eee5a730272a106da0" +checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" dependencies = [ "bitvec", "phf", @@ -11391,63 +10510,15 @@ dependencies = [ [[package]] name = "revm-context" -version = "8.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd508416a35a4d8a9feaf5ccd06ac6d6661cd31ee2dc0252f9f7316455d71f9" -dependencies = [ - "cfg-if", - "derive-where", - "revm-bytecode", - "revm-context-interface 9.0.0", - "revm-database-interface", - "revm-primitives", - "revm-state", - "serde", -] - -[[package]] -name = "revm-context" -version = "9.0.1" +version = "9.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c63485b4d1b0e67f342f9a8c0e9f78b6b5f1750863a39bdf6ceabdbaaf4aed1" +checksum = "0fb02c5dab3b535aa5b18277b1d21c5117a25d42af717e6ce133df0ea56663e1" dependencies = [ "bitvec", "cfg-if", "derive-where", "revm-bytecode", - "revm-context-interface 10.0.1", - "revm-database-interface", - "revm-primitives", - "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", - "revm-primitives", - "revm-state", - "serde", -] - -[[package]] -name = "revm-context-interface" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc90302642d21c8f93e0876e201f3c5f7913c4fcb66fb465b0fd7b707dfe1c79" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", + "revm-context-interface", "revm-database-interface", "revm-primitives", "revm-state", @@ -11456,9 +10527,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "10.0.1" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "550cb8b9465e00bdb0a384922b69f864c5bcc228bed19c8ecbfa69fff2256382" +checksum = "6b8e9311d27cf75fbf819e7ba4ca05abee1ae02e44ff6a17301c7ab41091b259" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -11472,9 +10543,9 @@ dependencies = [ [[package]] name = "revm-database" -version = "7.0.4" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40000c7d917c865f6c232a78581b78e70c43f52db17282bd1b52d4f0565bc8a2" +checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" dependencies = [ "alloy-eips", "revm-bytecode", @@ -11486,9 +10557,9 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "7.0.4" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ccea7a168cba1196b1e57dd3e22c36047208c135f600f8e58cbe7d49957dba" +checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" dependencies = [ "auto_impl", "either", @@ -11499,37 +10570,18 @@ dependencies = [ [[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", - "revm-context 8.0.4", - "revm-context-interface 9.0.0", + "revm-context", + "revm-context-interface", "revm-database-interface", - "revm-interpreter 24.0.0", - "revm-precompile 25.0.0", - "revm-primitives", - "revm-state", - "serde", -] - -[[package]] -name = "revm-handler" -version = "9.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb09d07e6799823ce5a344f1604236b53fe1a92bacd7122c0b16286f92254c2" -dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode", - "revm-context 9.0.1", - "revm-context-interface 10.0.1", - "revm-database-interface", - "revm-interpreter 25.0.1", - "revm-precompile 26.0.1", + "revm-interpreter", + "revm-precompile", "revm-primitives", "revm-state", "serde", @@ -11537,34 +10589,16 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "8.1.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78db140e332489094ef314eaeb0bd1849d6d01172c113ab0eb6ea8ab9372926" +checksum = "bf443b664075999a14916b50c5ae9e35a7d71186873b8f8302943d50a672e5e0" dependencies = [ "auto_impl", "either", - "revm-context 8.0.4", + "revm-context", "revm-database-interface", - "revm-handler 8.1.0", - "revm-interpreter 24.0.0", - "revm-primitives", - "revm-state", - "serde", - "serde_json", -] - -[[package]] -name = "revm-inspector" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2770c0d7e9f4f23660dc0b8b954b7a1eee8989ec97f936ebce366c78b6d7b915" -dependencies = [ - "auto_impl", - "either", - "revm-context 9.0.1", - "revm-database-interface", - "revm-handler 9.0.1", - "revm-interpreter 25.0.1", + "revm-handler", + "revm-interpreter", "revm-primitives", "revm-state", "serde", @@ -11573,9 +10607,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.28.1" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d3f54151c26870f50a3d7e8688e30a0f3578dd57bc69450caa1df11a7713906" +checksum = "8fdb678b03faa678a7007a7c761a78efa9ca9adcd9434ef3d1ad894aec6e43d1" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -11585,7 +10619,7 @@ dependencies = [ "boa_engine", "boa_gc", "colorchoice", - "revm 28.0.1", + "revm", "serde", "serde_json", "thiserror 2.0.16", @@ -11593,71 +10627,21 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "23.0.2" +version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95c4a9a1662d10b689b66b536ddc2eb1e89f5debfcabc1a2d7b8417a2fa47cd" +checksum = "53d6406b711fac73b4f13120f359ed8e65964380dd6182bd12c4c09ad0d4641f" dependencies = [ "revm-bytecode", - "revm-context-interface 8.0.1", + "revm-context-interface", "revm-primitives", "serde", ] -[[package]] -name = "revm-interpreter" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff9d7d9d71e8a33740b277b602165b6e3d25fff091ba3d7b5a8d373bf55f28a7" -dependencies = [ - "revm-bytecode", - "revm-context-interface 9.0.0", - "revm-primitives", - "serde", -] - -[[package]] -name = "revm-interpreter" -version = "25.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c938c0d4d617c285203cad8aba1cefeec383fcff2fdf94a4469f588ab979b5" -dependencies = [ - "revm-bytecode", - "revm-context-interface 10.0.1", - "revm-primitives", - "serde", -] - -[[package]] -name = "revm-precompile" -version = "25.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cee3f336b83621294b4cfe84d817e3eef6f3d0fce00951973364cc7f860424d" -dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "arrayref", - "aurora-engine-modexp", - "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 = "26.0.1" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7bb5e8b92891c5ac9dd8dae157bd1d90aab01973ad4f99d4135d507facc3e7" +checksum = "25b57d4bd9e6b5fe469da5452a8a137bc2d030a3cd47c46908efc615bbc699da" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -11693,9 +10677,9 @@ dependencies = [ [[package]] name = "revm-state" -version = "7.0.4" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d7f39ea56df3bfbb3c81c99b1f028d26f205b6004156baffbf1a4f84b46cfa" +checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ "bitflags 2.9.2", "revm-bytecode", @@ -11805,8 +10789,9 @@ dependencies = [ [[package]] name = "rollup-boost" version = "0.1.0" -source = "git+http://github.com/flashbots/rollup-boost?branch=main#81c0699aeb29d2d0b443e25c1075bafcb1db3705" +source = "git+http://github.com/flashbots/rollup-boost?rev=0c1fb4ce7e00f0afc350f5bf7573b19da6d485ec#0c1fb4ce7e00f0afc350f5bf7573b19da6d485ec" dependencies = [ + "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -11820,19 +10805,29 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "jsonrpsee 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee", + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-server", + "jsonrpsee-types", "metrics", "metrics-derive", "metrics-exporter-prometheus 0.16.2", "metrics-util 0.19.1", "moka", + "op-alloy-network", + "op-alloy-rpc-jsonrpsee", "op-alloy-rpc-types-engine", "opentelemetry 0.28.0", "opentelemetry-otlp 0.28.0", "opentelemetry_sdk 0.28.0", "parking_lot", "paste", - "reth-optimism-payload-builder 1.6.0 (git+https://github.com/paradigmxyz/reth?tag=v1.6.0)", + "reth-optimism-node", + "reth-optimism-payload-builder", + "reth-optimism-rpc", + "reth-rpc-api", + "reth-rpc-eth-api", "rustls", "serde", "serde_json", @@ -12415,7 +11410,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.106", @@ -13675,7 +12670,7 @@ 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.106", diff --git a/Cargo.toml b/Cargo.toml index 9a9866135..c85cd383d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,73 +40,73 @@ codegen-units = 1 incremental = false [workspace.dependencies] -reth = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-chain-state = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-cli = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-db-common = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628", features = [ +reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-chain-state = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-cli-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0", features = [ "test-utils", ] } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-storage-api = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-evm = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-exex = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-payload-util = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-node-builder = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-ipc = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-storage-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-payload-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-node-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-ipc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } # reth optimism -reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628" } -reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", rev = "0fa93840e8f48f97c68ea888dab86b2c7cf49628", features = [ +reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-evm = { 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-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0", features = [ "client", ] } -revm = { version = "28.0.1", features = [ +revm = { version = "29.0.0", features = [ "std", "secp256k1", "optional_balance_check", ], default-features = false } -revm-inspectors = { version = "0.28.0", default-features = false } -op-revm = { version = "9.0.1", default-features = false } +revm-inspectors = { version = "0.29.0", default-features = false } +op-revm = { version = "10.0.0", default-features = false } ethereum_ssz_derive = "0.9.0" ethereum_ssz = "0.9.0" @@ -114,9 +114,9 @@ ethereum_ssz = "0.9.0" alloy-primitives = { version = "1.3.1", default-features = false } alloy-rlp = "0.3.10" alloy-chains = "0.2.5" -alloy-contract = { version = "1.0.23" } -alloy-evm = { version = "0.18.2", default-features = false } -alloy-provider = { version = "1.0.23", features = [ +alloy-contract = { version = "1.0.30" } +alloy-evm = { version = "0.20.1", default-features = false } +alloy-provider = { version = "1.0.30", features = [ "ipc", "pubsub", "txpool-api", @@ -143,12 +143,12 @@ alloy-genesis = { version = "1.0.23" } alloy-trie = { version = "0.9.0" } # optimism -alloy-op-evm = { version = "0.18", default-features = false } -op-alloy-rpc-types = { version = "0.18.12", default-features = false } -op-alloy-rpc-types-engine = { version = "0.18.12", default-features = false } -op-alloy-rpc-jsonrpsee = { version = "0.18.12", default-features = false } -op-alloy-network = { version = "0.18.12", default-features = false } -op-alloy-consensus = { version = "0.18.12", default-features = false } +alloy-op-evm = { version = "0.20.1", default-features = false } +op-alloy-rpc-types = { version = "0.19.0", default-features = false } +op-alloy-rpc-types-engine = { version = "0.19.0", default-features = false } +op-alloy-rpc-jsonrpsee = { version = "0.19.0", default-features = false } +op-alloy-network = { version = "0.19.0", default-features = false } +op-alloy-consensus = { version = "0.19.0", default-features = false } op-alloy-flz = { version = "0.13.1", default-features = false } async-trait = { version = "0.1.83" } @@ -156,9 +156,9 @@ clap = { version = "4.4.3", features = ["derive", "env", "string"] } clap_builder = { version = "4.5.19" } thiserror = { version = "1.0.64" } eyre = { version = "0.6.12" } -jsonrpsee = { version = "0.25.1" } -jsonrpsee-types = { version = "0.25.1" } -jsonrpsee-core = { version = "0.25.1" } +jsonrpsee = { version = "0.26.0" } +jsonrpsee-types = { version = "0.26.0" } +jsonrpsee-core = { version = "0.26.0" } parking_lot = { version = "0.12.3" } tokio = { version = "1.40.0" } auto_impl = { version = "1.2.0" } diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index 8c1c3b281..a7c22586c 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -123,7 +123,8 @@ sha3 = "0.10" hex = "0.4" ureq = "2.10" -rollup-boost = { git = "http://github.com/flashbots/rollup-boost", branch = "main" } +# TODO: change to rev from main once https://github.com/flashbots/rollup-boost/pull/401 is merged +rollup-boost = { git = "http://github.com/flashbots/rollup-boost", rev = "0c1fb4ce7e00f0afc350f5bf7573b19da6d485ec" } nanoid = { version = "0.4", optional = true } reth-ipc = { workspace = true, optional = true } diff --git a/crates/op-rbuilder/src/tests/framework/instance.rs b/crates/op-rbuilder/src/tests/framework/instance.rs index 34f5f506f..041136c17 100644 --- a/crates/op-rbuilder/src/tests/framework/instance.rs +++ b/crates/op-rbuilder/src/tests/framework/instance.rs @@ -66,7 +66,7 @@ impl LocalInstance { /// This method does not prefund any accounts, so before sending any transactions /// make sure that sender accounts are funded. pub async fn new(args: OpRbuilderArgs) -> eyre::Result { - Self::new_with_config::

(args, default_node_config()).await + Box::pin(Self::new_with_config::

(args, default_node_config())).await } /// Creates a new local instance of the OP builder node with the given arguments, From 5640d8c7fb6f5722648c4cada09e99f9e78d12d1 Mon Sep 17 00:00:00 2001 From: Anton Date: Fri, 12 Sep 2025 15:25:26 +0200 Subject: [PATCH 14/54] release: 0.2.2 (#261) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf13c8563..61c14bc5a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6164,7 +6164,7 @@ dependencies = [ [[package]] name = "op-rbuilder" -version = "0.2.1" +version = "0.2.2" dependencies = [ "alloy-consensus", "alloy-contract", diff --git a/Cargo.toml b/Cargo.toml index c85cd383d..3930d3c78 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "0.2.1" +version = "0.2.2" edition = "2024" rust-version = "1.86" license = "MIT OR Apache-2.0" From fed74d10512e6abb0e71e891233b623932d8102f Mon Sep 17 00:00:00 2001 From: cody-wang-cb Date: Mon, 15 Sep 2025 20:30:24 -0400 Subject: [PATCH 15/54] flag to determine if calculating state root (#241) * calculate state root * fix tests * add no state root test * check no tx pool instead * comments * optimize * fix lint * use no tx pool * add condition --- crates/op-rbuilder/src/args/op.rs | 8 ++ .../src/builders/flashblocks/config.rs | 7 ++ .../src/builders/flashblocks/payload.rs | 81 +++++++++++-------- crates/op-rbuilder/src/tests/flashblocks.rs | 53 ++++++++++++ 4 files changed, 117 insertions(+), 32 deletions(-) diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 8b3bd5bdf..760249b5a 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -147,6 +147,14 @@ pub struct FlashblocksArgs { env = "FLASHBLOCK_LEEWAY_TIME" )] pub flashblocks_leeway_time: u64, + + /// Should we calculate state root for each flashblock + #[arg( + long = "flashblocks.calculate-state-root", + default_value = "true", + env = "FLASHBLOCKS_CALCULATE_STATE_ROOT" + )] + pub flashblocks_calculate_state_root: bool, } impl Default for FlashblocksArgs { diff --git a/crates/op-rbuilder/src/builders/flashblocks/config.rs b/crates/op-rbuilder/src/builders/flashblocks/config.rs index 702566beb..64c526843 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/config.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/config.rs @@ -28,6 +28,9 @@ pub struct FlashblocksConfig { /// Disables dynamic flashblocks number adjustment based on FCU arrival time pub fixed: bool, + + /// Should we calculate state root for each flashblock + pub calculate_state_root: bool, } impl Default for FlashblocksConfig { @@ -37,6 +40,7 @@ impl Default for FlashblocksConfig { interval: Duration::from_millis(250), leeway_time: Duration::from_millis(50), fixed: false, + calculate_state_root: true, } } } @@ -56,11 +60,14 @@ impl TryFrom for FlashblocksConfig { let fixed = args.flashblocks.flashblocks_fixed; + let calculate_state_root = args.flashblocks.flashblocks_calculate_state_root; + Ok(Self { ws_addr, interval, leeway_time, fixed, + calculate_state_root, }) } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 3fc6fca26..5e0f45e6e 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -37,6 +37,7 @@ use reth_provider::{ use reth_revm::{ State, database::StateProviderDatabase, db::states::bundle_state::BundleRetention, }; +use reth_trie::{HashedPostState, updates::TrieUpdates}; use revm::Database; use rollup_boost::{ ExecutionPayloadBaseV1, ExecutionPayloadFlashblockDeltaV1, FlashblocksPayloadV1, @@ -222,6 +223,7 @@ where let chain_spec = self.client.chain_spec(); let timestamp = config.attributes.timestamp(); + let calculate_state_root = self.config.specific.calculate_state_root; let block_env_attributes = OpNextBlockEnvAttributes { timestamp, suggested_fee_recipient: config.attributes.suggested_fee_recipient(), @@ -299,18 +301,25 @@ where ctx.add_builder_tx(&mut info, &mut state, builder_tx_gas, message.clone()); } - let (payload, fb_payload) = build_block(&mut state, &ctx, &mut info)?; + let (payload, fb_payload) = build_block( + &mut state, + &ctx, + &mut info, + calculate_state_root || ctx.attributes().no_tx_pool, // need to calculate state root for CL sync + )?; best_payload.set(payload.clone()); self.send_payload_to_engine(payload); - - let flashblock_byte_size = self - .ws_pub - .publish(&fb_payload) - .map_err(PayloadBuilderError::other)?; - ctx.metrics - .flashblock_byte_size_histogram - .record(flashblock_byte_size as f64); + // not emitting flashblock if no_tx_pool in FCU, it's just syncing + if !ctx.attributes().no_tx_pool { + let flashblock_byte_size = self + .ws_pub + .publish(&fb_payload) + .map_err(PayloadBuilderError::other)?; + ctx.metrics + .flashblock_byte_size_histogram + .record(flashblock_byte_size as f64); + } info!( target: "payload_builder", @@ -513,7 +522,8 @@ where }; let total_block_built_duration = Instant::now(); - let build_result = build_block(&mut state, &ctx, &mut info); + let build_result = + build_block(&mut state, &ctx, &mut info, calculate_state_root); let total_block_built_duration = total_block_built_duration.elapsed(); ctx.metrics .total_block_built_duration @@ -823,6 +833,7 @@ fn build_block( state: &mut State, ctx: &OpPayloadBuilderCtx, info: &mut ExecutionInfo, + calculate_state_root: bool, ) -> Result<(OpBuiltPayload, FlashblocksPayloadV1), PayloadBuilderError> where DB: Database + AsRef

, @@ -867,28 +878,34 @@ where // TODO: maybe recreate state with bundle in here // // calculate the state root let state_root_start_time = Instant::now(); - let state_provider = state.database.as_ref(); - let hashed_state = state_provider.hashed_post_state(execution_outcome.state()); - let (state_root, trie_output) = { - state - .database - .as_ref() - .state_root_with_updates(hashed_state.clone()) - .inspect_err(|err| { - warn!(target: "payload_builder", - parent_header=%ctx.parent().hash(), - %err, - "failed to calculate state root for payload" - ); - })? - }; - let state_root_calculation_time = state_root_start_time.elapsed(); - ctx.metrics - .state_root_calculation_duration - .record(state_root_calculation_time); - ctx.metrics - .state_root_calculation_gauge - .set(state_root_calculation_time); + let mut state_root = B256::ZERO; + let mut trie_output = TrieUpdates::default(); + let mut hashed_state = HashedPostState::default(); + + if calculate_state_root { + let state_provider = state.database.as_ref(); + hashed_state = state_provider.hashed_post_state(execution_outcome.state()); + (state_root, trie_output) = { + state + .database + .as_ref() + .state_root_with_updates(hashed_state.clone()) + .inspect_err(|err| { + warn!(target: "payload_builder", + parent_header=%ctx.parent().hash(), + %err, + "failed to calculate state root for payload" + ); + })? + }; + let state_root_calculation_time = state_root_start_time.elapsed(); + ctx.metrics + .state_root_calculation_duration + .record(state_root_calculation_time); + ctx.metrics + .state_root_calculation_gauge + .set(state_root_calculation_time); + } let mut requests_hash = None; let withdrawals_root = if ctx diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index d492d5c11..eca81b4dc 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -16,6 +16,7 @@ use crate::{ flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -53,6 +54,7 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -90,6 +92,7 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 50, flashblocks_fixed: true, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -127,6 +130,7 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 50, flashblocks_fixed: true, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -164,6 +168,7 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -203,6 +208,7 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> flashblocks_block_time: 200, flashblocks_leeway_time: 0, flashblocks_fixed: false, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -240,6 +246,7 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -299,6 +306,7 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -354,6 +362,7 @@ async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, + flashblocks_calculate_state_root: true, }, ..Default::default() })] @@ -388,3 +397,47 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res flashblocks_listener.stop().await } + +#[rb_test(flashblocks, args = OpRbuilderArgs { + chain_block_time: 1000, + flashblocks: FlashblocksArgs { + enabled: true, + flashblocks_port: 1239, + flashblocks_addr: "127.0.0.1".into(), + flashblocks_block_time: 200, + flashblocks_leeway_time: 100, + flashblocks_fixed: false, + flashblocks_calculate_state_root: false, + }, + ..Default::default() +})] +async fn test_flashblocks_no_state_root_calculation(rbuilder: LocalInstance) -> eyre::Result<()> { + use alloy_primitives::B256; + + let driver = rbuilder.driver().await?; + + // Send a transaction to ensure block has some activity + let _tx = driver + .create_transaction() + .random_valid_transfer() + .send() + .await?; + + // Build a block with current timestamp (not historical) and calculate_state_root: false + let block = driver.build_new_block_with_current_timestamp(None).await?; + + // Verify that flashblocks are still produced (block should have transactions) + assert!( + block.transactions.len() > 2, + "Block should contain transactions" + ); // deposit + builder tx + user tx + + // Verify that state root is not calculated (should be zero) + assert_eq!( + block.header.state_root, + B256::ZERO, + "State root should be zero when calculate_state_root is false" + ); + + Ok(()) +} From 265ebc2477bc340e658cf9132890a368bdda14f8 Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 16 Sep 2025 14:28:01 +0200 Subject: [PATCH 16/54] Fix release artifacts (#262) * fix: do not merge separate artifacts * fix: checksum files only * fix: flatten the artifacts --- .github/workflows/op_rbuilder_release.yaml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/op_rbuilder_release.yaml b/.github/workflows/op_rbuilder_release.yaml index f61358d69..827609d06 100644 --- a/.github/workflows/op_rbuilder_release.yaml +++ b/.github/workflows/op_rbuilder_release.yaml @@ -122,16 +122,23 @@ jobs: uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: - merge-multiple: true + merge-multiple: false path: artifacts - name: Record artifacts checksums working-directory: artifacts run: | + for dir in $( find . -type d -name "op-rbuilder-*" -printf "%f\n" ); do + mv ./$dir ./$dir.bak + mv ./$dir.bak/op-rbuilder ./$dir + rm -r ./$dir.bak + done find ./ || true - for file in *; do sha256sum "$file" >> sha256sums.txt; done; + for file in $( find ./ -type f ); do + sha256sum "$file" >> sha256sums.txt + done; cat sha256sums.txt - name: Create release draft From 192d8b4ba1392566dda0ecf791952850cf050f47 Mon Sep 17 00:00:00 2001 From: noot <36753753+noot@users.noreply.github.com> Date: Tue, 16 Sep 2025 13:00:45 -0400 Subject: [PATCH 17/54] refactor: add `unreachable_pub` warning and autofix warnings (#263) --- Cargo.toml | 3 ++ crates/op-rbuilder/Cargo.toml | 3 ++ crates/op-rbuilder/src/args/playground.rs | 6 +-- crates/op-rbuilder/src/builders/builder_tx.rs | 2 +- crates/op-rbuilder/src/builders/context.rs | 50 +++++++++---------- .../src/builders/flashblocks/best_txs.rs | 8 +-- .../src/builders/flashblocks/config.rs | 2 +- .../src/builders/flashblocks/payload.rs | 20 ++++---- .../src/builders/flashblocks/wspub.rs | 6 +-- crates/op-rbuilder/src/builders/generator.rs | 28 +++++------ .../src/builders/standard/payload.rs | 8 +-- crates/op-rbuilder/src/gas_limiter/metrics.rs | 10 ++-- crates/op-rbuilder/src/monitor_tx_pool.rs | 2 +- 13 files changed, 79 insertions(+), 69 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3930d3c78..384058422 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,6 +39,9 @@ lto = "fat" codegen-units = 1 incremental = false +[workspace.lints.rust] +unreachable_pub = "warn" + [workspace.dependencies] reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } reth-chain-state = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index a7c22586c..3d31df46e 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -8,6 +8,9 @@ homepage.workspace = true repository.workspace = true default-run = "op-rbuilder" +[lints] +workspace = true + [dependencies] reth.workspace = true reth-optimism-node.workspace = true diff --git a/crates/op-rbuilder/src/args/playground.rs b/crates/op-rbuilder/src/args/playground.rs index c4cf2470a..3ef24c1d0 100644 --- a/crates/op-rbuilder/src/args/playground.rs +++ b/crates/op-rbuilder/src/args/playground.rs @@ -50,7 +50,7 @@ use url::{Host, Url}; use super::Cli; -pub struct PlaygroundOptions { +pub(super) struct PlaygroundOptions { /// Sets node.chain in NodeCommand pub chain: Arc, @@ -78,7 +78,7 @@ pub struct PlaygroundOptions { impl PlaygroundOptions { /// Creates a new `PlaygroundOptions` instance with the specified genesis path. - pub fn new(path: &Path) -> Result { + pub(super) fn new(path: &Path) -> Result { if !path.exists() { return Err(eyre!( "Playground data directory {} does not exist", @@ -112,7 +112,7 @@ impl PlaygroundOptions { }) } - pub fn apply(self, cli: Cli) -> Cli { + pub(super) fn apply(self, cli: Cli) -> Cli { let mut cli = cli; let Commands::Node(ref mut node) = cli.command else { // playground defaults are only relevant if running the node commands. diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index 3dcb89848..80c73c832 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -12,7 +12,7 @@ pub trait BuilderTx { // Scaffolding for how to construct the end of block builder transaction // This will be the regular end of block transaction without the TEE key #[derive(Clone)] -pub struct StandardBuilderTx { +pub(super) struct StandardBuilderTx { #[allow(dead_code)] pub signer: Option, } diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index 7863d441a..8129b9f5b 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -50,7 +50,7 @@ use crate::{ /// Container type that holds all necessities to build a new payload. #[derive(Debug)] -pub struct OpPayloadBuilderCtx { +pub(super) struct OpPayloadBuilderCtx { /// The type that knows how to perform system calls and configure the evm. pub evm_config: OpEvmConfig, /// The DA config for the payload builder @@ -79,41 +79,41 @@ pub struct OpPayloadBuilderCtx { impl OpPayloadBuilderCtx { /// Returns the parent block the payload will be build on. - pub fn parent(&self) -> &SealedHeader { + pub(super) fn parent(&self) -> &SealedHeader { &self.config.parent_header } /// Returns the builder attributes. - pub const fn attributes(&self) -> &OpPayloadBuilderAttributes { + pub(super) const fn attributes(&self) -> &OpPayloadBuilderAttributes { &self.config.attributes } /// Returns the withdrawals if shanghai is active. - pub fn withdrawals(&self) -> Option<&Withdrawals> { + pub(super) fn withdrawals(&self) -> Option<&Withdrawals> { self.chain_spec .is_shanghai_active_at_timestamp(self.attributes().timestamp()) .then(|| &self.attributes().payload_attributes.withdrawals) } /// Returns the block gas limit to target. - pub fn block_gas_limit(&self) -> u64 { + pub(super) fn block_gas_limit(&self) -> u64 { self.attributes() .gas_limit .unwrap_or(self.evm_env.block_env.gas_limit) } /// Returns the block number for the block. - pub fn block_number(&self) -> u64 { + pub(super) fn block_number(&self) -> u64 { as_u64_saturated!(self.evm_env.block_env.number) } /// Returns the current base fee - pub fn base_fee(&self) -> u64 { + pub(super) fn base_fee(&self) -> u64 { self.evm_env.block_env.basefee } /// Returns the current blob gas price. - pub fn get_blob_gasprice(&self) -> Option { + pub(super) fn get_blob_gasprice(&self) -> Option { self.evm_env .block_env .blob_gasprice() @@ -123,7 +123,7 @@ impl OpPayloadBuilderCtx { /// Returns the blob fields for the header. /// /// This will always return `Some(0)` after ecotone. - pub fn blob_fields(&self) -> (Option, Option) { + pub(super) fn blob_fields(&self) -> (Option, Option) { // OP doesn't support blobs/EIP-4844. // https://specs.optimism.io/protocol/exec-engine.html#ecotone-disable-blob-transactions // Need [Some] or [None] based on hardfork to match block hash. @@ -137,7 +137,7 @@ impl OpPayloadBuilderCtx { /// Returns the extra data for the block. /// /// After holocene this extracts the extradata from the paylpad - pub fn extra_data(&self) -> Result { + pub(super) fn extra_data(&self) -> Result { if self.is_holocene_active() { self.attributes() .get_holocene_extra_data( @@ -152,52 +152,52 @@ impl OpPayloadBuilderCtx { } /// Returns the current fee settings for transactions from the mempool - pub fn best_transaction_attributes(&self) -> BestTransactionsAttributes { + pub(super) fn best_transaction_attributes(&self) -> BestTransactionsAttributes { BestTransactionsAttributes::new(self.base_fee(), self.get_blob_gasprice()) } /// Returns the unique id for this payload job. - pub fn payload_id(&self) -> PayloadId { + pub(super) fn payload_id(&self) -> PayloadId { self.attributes().payload_id() } /// Returns true if regolith is active for the payload. - pub fn is_regolith_active(&self) -> bool { + pub(super) fn is_regolith_active(&self) -> bool { self.chain_spec .is_regolith_active_at_timestamp(self.attributes().timestamp()) } /// Returns true if ecotone is active for the payload. - pub fn is_ecotone_active(&self) -> bool { + pub(super) fn is_ecotone_active(&self) -> bool { self.chain_spec .is_ecotone_active_at_timestamp(self.attributes().timestamp()) } /// Returns true if canyon is active for the payload. - pub fn is_canyon_active(&self) -> bool { + pub(super) fn is_canyon_active(&self) -> bool { self.chain_spec .is_canyon_active_at_timestamp(self.attributes().timestamp()) } /// Returns true if holocene is active for the payload. - pub fn is_holocene_active(&self) -> bool { + pub(super) fn is_holocene_active(&self) -> bool { self.chain_spec .is_holocene_active_at_timestamp(self.attributes().timestamp()) } /// Returns true if isthmus is active for the payload. - pub fn is_isthmus_active(&self) -> bool { + pub(super) fn is_isthmus_active(&self) -> bool { self.chain_spec .is_isthmus_active_at_timestamp(self.attributes().timestamp()) } /// Returns the chain id - pub fn chain_id(&self) -> u64 { + pub(super) fn chain_id(&self) -> u64 { self.chain_spec.chain_id() } /// Returns the builder signer - pub fn builder_signer(&self) -> Option { + pub(super) fn builder_signer(&self) -> Option { self.builder_signer } } @@ -236,7 +236,7 @@ impl OpPayloadBuilderCtx { } /// Executes all sequencer transactions that are included in the payload attributes. - pub fn execute_sequencer_transactions( + pub(super) fn execute_sequencer_transactions( &self, state: &mut State, ) -> Result, PayloadBuilderError> @@ -325,7 +325,7 @@ impl OpPayloadBuilderCtx { /// Executes the given best transactions and updates the execution info. /// /// Returns `Ok(Some(())` if the job was cancelled. - pub fn execute_best_transactions( + pub(super) fn execute_best_transactions( &self, info: &mut ExecutionInfo, state: &mut State, @@ -567,7 +567,7 @@ impl OpPayloadBuilderCtx { Ok(None) } - pub fn add_builder_tx( + pub(super) fn add_builder_tx( &self, info: &mut ExecutionInfo, state: &mut State, @@ -628,7 +628,7 @@ impl OpPayloadBuilderCtx { /// Calculates EIP 2718 builder transaction size // TODO: this function could be improved, ideally we shouldn't take mut ref to db and maybe // it's possible to do this without db at all - pub fn estimate_builder_tx_da_size( + pub(super) fn estimate_builder_tx_da_size( &self, state: &mut State, builder_tx_gas: u64, @@ -656,7 +656,7 @@ impl OpPayloadBuilderCtx { } } -pub fn estimate_gas_for_builder_tx(input: Vec) -> u64 { +pub(super) fn estimate_gas_for_builder_tx(input: Vec) -> u64 { // Count zero and non-zero bytes let (zero_bytes, nonzero_bytes) = input.iter().fold((0, 0), |(zeros, nonzeros), &byte| { if byte == 0 { @@ -678,7 +678,7 @@ pub fn estimate_gas_for_builder_tx(input: Vec) -> u64 { } /// Creates signed builder tx to Address::ZERO and specified message as input -pub fn signed_builder_tx( +pub(super) fn signed_builder_tx( state: &mut State, builder_tx_gas: u64, message: Vec, diff --git a/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs b/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs index b2108aa79..3d4021c7d 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs @@ -6,7 +6,7 @@ use tracing::debug; use crate::tx::MaybeFlashblockFilter; -pub struct BestFlashblocksTxs +pub(super) struct BestFlashblocksTxs where T: PoolTransaction, I: PayloadTransactions, @@ -23,7 +23,7 @@ where T: PoolTransaction, I: PayloadTransactions, { - pub fn new(inner: I) -> Self { + pub(super) fn new(inner: I) -> Self { Self { inner, current_flashblock_number: 0, @@ -33,13 +33,13 @@ where /// Replaces current iterator with new one. We use it on new flashblock building, to refresh /// priority boundaries - pub fn refresh_iterator(&mut self, inner: I, current_flashblock_number: u64) { + pub(super) fn refresh_iterator(&mut self, inner: I, current_flashblock_number: u64) { self.inner = inner; self.current_flashblock_number = current_flashblock_number; } /// Remove transaction from next iteration and it already in the state - pub fn mark_commited(&mut self, txs: Vec) { + pub(super) fn mark_commited(&mut self, txs: Vec) { self.commited_transactions.extend(txs); } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/config.rs b/crates/op-rbuilder/src/builders/flashblocks/config.rs index 64c526843..c852a3547 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/config.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/config.rs @@ -72,7 +72,7 @@ impl TryFrom for FlashblocksConfig { } } -pub trait FlashBlocksConfigExt { +pub(super) trait FlashBlocksConfigExt { fn flashblocks_per_block(&self) -> u64; } diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 5e0f45e6e..df3b12aa5 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -71,36 +71,36 @@ struct FlashblocksExtraCtx { impl OpPayloadBuilderCtx { /// Returns the current flashblock index - pub fn flashblock_index(&self) -> u64 { + pub(crate) fn flashblock_index(&self) -> u64 { self.extra_ctx.flashblock_index } /// Returns the target flashblock count - pub fn target_flashblock_count(&self) -> u64 { + pub(crate) fn target_flashblock_count(&self) -> u64 { self.extra_ctx.target_flashblock_count } /// Increments the flashblock index - pub fn increment_flashblock_index(&mut self) -> u64 { + pub(crate) fn increment_flashblock_index(&mut self) -> u64 { self.extra_ctx.flashblock_index += 1; self.extra_ctx.flashblock_index } /// Sets the target flashblock count - pub fn set_target_flashblock_count(&mut self, target_flashblock_count: u64) -> u64 { + pub(crate) fn set_target_flashblock_count(&mut self, target_flashblock_count: u64) -> u64 { self.extra_ctx.target_flashblock_count = target_flashblock_count; self.extra_ctx.target_flashblock_count } /// Returns if the flashblock is the last one - pub fn is_last_flashblock(&self) -> bool { + pub(crate) fn is_last_flashblock(&self) -> bool { self.flashblock_index() == self.target_flashblock_count() - 1 } } /// Optimism's payload builder #[derive(Debug, Clone)] -pub struct OpPayloadBuilder { +pub(super) struct OpPayloadBuilder { /// The type responsible for creating the evm. pub evm_config: OpEvmConfig, /// The transaction pool @@ -126,7 +126,7 @@ pub struct OpPayloadBuilder { impl OpPayloadBuilder { /// `OpPayloadBuilder` constructor. - pub fn new( + pub(super) fn new( evm_config: OpEvmConfig, pool: Pool, client: Client, @@ -656,7 +656,7 @@ where } /// Sends built payload via payload builder handle broadcast channel to the engine - pub fn send_payload_to_engine(&self, payload: OpBuiltPayload) { + pub(super) fn send_payload_to_engine(&self, payload: OpBuiltPayload) { // Send built payload as created one match self.payload_builder_handle.get() { Some(handle) => { @@ -676,7 +676,7 @@ where /// Spawn task that will send new flashblock level cancel token in steady intervals (first interval /// may vary if --flashblocks.dynamic enabled) - pub fn spawn_timer_task( + pub(super) fn spawn_timer_task( &self, block_cancel: CancellationToken, fb_cancel_token_tx: Sender>, @@ -723,7 +723,7 @@ where /// Calculate number of flashblocks. /// If dynamic is enabled this function will take time drift into the account. - pub fn calculate_flashblocks(&self, timestamp: u64) -> (u64, Duration) { + pub(super) fn calculate_flashblocks(&self, timestamp: u64) -> (u64, Duration) { if self.config.specific.fixed { return ( self.config.flashblocks_per_block(), diff --git a/crates/op-rbuilder/src/builders/flashblocks/wspub.rs b/crates/op-rbuilder/src/builders/flashblocks/wspub.rs index cf8c485c8..944edb911 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/wspub.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/wspub.rs @@ -28,7 +28,7 @@ use crate::metrics::OpRBuilderMetrics; /// updates about new flashblocks. It maintains a count of sent messages and active subscriptions. /// /// This is modelled as a `futures::Sink` that can be used to send `FlashblocksPayloadV1` messages. -pub struct WebSocketPublisher { +pub(super) struct WebSocketPublisher { sent: Arc, subs: Arc, term: watch::Sender, @@ -36,7 +36,7 @@ pub struct WebSocketPublisher { } impl WebSocketPublisher { - pub fn new(addr: SocketAddr, metrics: Arc) -> io::Result { + pub(super) fn new(addr: SocketAddr, metrics: Arc) -> io::Result { let (pipe, _) = broadcast::channel(100); let (term, _) = watch::channel(false); @@ -61,7 +61,7 @@ impl WebSocketPublisher { }) } - pub fn publish(&self, payload: &FlashblocksPayloadV1) -> io::Result { + pub(super) fn publish(&self, payload: &FlashblocksPayloadV1) -> io::Result { // Serialize the payload to a UTF-8 string // serialize only once, then just copy around only a pointer // to the serialized data for each subscription. diff --git a/crates/op-rbuilder/src/builders/generator.rs b/crates/op-rbuilder/src/builders/generator.rs index c77930835..be9bd89fe 100644 --- a/crates/op-rbuilder/src/builders/generator.rs +++ b/crates/op-rbuilder/src/builders/generator.rs @@ -34,7 +34,7 @@ use tracing::info; /// /// Generic parameters `Pool` and `Client` represent the transaction pool and /// Ethereum client types. -pub trait PayloadBuilder: Send + Sync + Clone { +pub(super) trait PayloadBuilder: Send + Sync + Clone { /// The payload attributes type to accept for building. type Attributes: PayloadBuilderAttributes; /// The type of the built payload. @@ -61,7 +61,7 @@ pub trait PayloadBuilder: Send + Sync + Clone { /// The generator type that creates new jobs that builds empty blocks. #[derive(Debug)] -pub struct BlockPayloadJobGenerator { +pub(super) struct BlockPayloadJobGenerator { /// The client that can interact with the chain. client: Client, /// How to spawn building tasks @@ -87,7 +87,7 @@ pub struct BlockPayloadJobGenerator { impl BlockPayloadJobGenerator { /// Creates a new [EmptyBlockPayloadJobGenerator] with the given config and custom /// [PayloadBuilder] - pub fn with_builder( + pub(super) fn with_builder( client: Client, executor: Tasks, config: BasicPayloadJobGeneratorConfig, @@ -238,7 +238,7 @@ use std::{ }; /// A [PayloadJob] that builds empty blocks. -pub struct BlockPayloadJob +pub(super) struct BlockPayloadJob where Builder: PayloadBuilder, { @@ -296,7 +296,7 @@ where } } -pub struct BuildArguments { +pub(super) struct BuildArguments { /// Previously cached disk reads pub cached_reads: CachedReads, /// How to configure the payload. @@ -313,7 +313,7 @@ where Builder::Attributes: Unpin + Clone, Builder::BuiltPayload: Unpin + Clone, { - pub fn spawn_build_job(&mut self) { + pub(super) fn spawn_build_job(&mut self) { let builder = self.builder.clone(); let payload_config = self.config.clone(); let cell = self.cell.clone(); @@ -367,12 +367,12 @@ where } // A future that resolves when a payload becomes available in the BlockCell -pub struct ResolvePayload { +pub(super) struct ResolvePayload { future: WaitForValue, } impl ResolvePayload { - pub fn new(future: WaitForValue) -> Self { + pub(super) fn new(future: WaitForValue) -> Self { Self { future } } } @@ -389,39 +389,39 @@ impl Future for ResolvePayload { } #[derive(Clone)] -pub struct BlockCell { +pub(super) struct BlockCell { inner: Arc>>, notify: Arc, } impl BlockCell { - pub fn new() -> Self { + pub(super) fn new() -> Self { Self { inner: Arc::new(Mutex::new(None)), notify: Arc::new(Notify::new()), } } - pub fn set(&self, value: T) { + pub(super) fn set(&self, value: T) { let mut inner = self.inner.lock().unwrap(); *inner = Some(value); self.notify.notify_one(); } - pub fn get(&self) -> Option { + pub(super) fn get(&self) -> Option { let inner = self.inner.lock().unwrap(); inner.clone() } // Return a future that resolves when value is set - pub fn wait_for_value(&self) -> WaitForValue { + pub(super) fn wait_for_value(&self) -> WaitForValue { WaitForValue { cell: self.clone() } } } #[derive(Clone)] // Future that resolves when a value is set in BlockCell -pub struct WaitForValue { +pub(super) struct WaitForValue { cell: BlockCell, } diff --git a/crates/op-rbuilder/src/builders/standard/payload.rs b/crates/op-rbuilder/src/builders/standard/payload.rs index c61fc32e8..daebf7ddf 100644 --- a/crates/op-rbuilder/src/builders/standard/payload.rs +++ b/crates/op-rbuilder/src/builders/standard/payload.rs @@ -336,7 +336,7 @@ where /// And finally /// 5. build the block: compute all roots (txs, state) #[derive(derive_more::Debug)] -pub struct OpBuilder<'a, Txs> { +pub(super) struct OpBuilder<'a, Txs> { /// Yields the best transaction to include if transactions from the mempool are allowed. best: Box Txs + 'a>, } @@ -351,14 +351,14 @@ impl<'a, Txs> OpBuilder<'a, Txs> { /// Holds the state after execution #[derive(Debug)] -pub struct ExecutedPayload { +pub(super) struct ExecutedPayload { /// Tracked execution info pub info: ExecutionInfo, } impl OpBuilder<'_, Txs> { /// Executes the payload and returns the outcome. - pub fn execute( + pub(super) fn execute( self, state: &mut State, ctx: &OpPayloadBuilderCtx, @@ -466,7 +466,7 @@ impl OpBuilder<'_, Txs> { } /// Builds the payload on top of the state. - pub fn build( + pub(super) fn build( self, mut state: State, ctx: OpPayloadBuilderCtx, diff --git a/crates/op-rbuilder/src/gas_limiter/metrics.rs b/crates/op-rbuilder/src/gas_limiter/metrics.rs index e009b221f..f78986570 100644 --- a/crates/op-rbuilder/src/gas_limiter/metrics.rs +++ b/crates/op-rbuilder/src/gas_limiter/metrics.rs @@ -7,7 +7,7 @@ use crate::gas_limiter::error::GasLimitError; #[derive(Metrics, Clone)] #[metrics(scope = "op_rbuilder.gas_limiter")] -pub struct GasLimiterMetrics { +pub(super) struct GasLimiterMetrics { /// Transactions rejected by gas limits Labeled by reason: "per_address", /// "global", "burst" pub rejections: Counter, @@ -23,7 +23,11 @@ pub struct GasLimiterMetrics { } impl GasLimiterMetrics { - pub fn record_gas_check(&self, check_result: &Result, duration: Duration) { + pub(super) fn record_gas_check( + &self, + check_result: &Result, + duration: Duration, + ) { if let Ok(created_new_bucket) = check_result { if *created_new_bucket { self.active_address_count.increment(1); @@ -35,7 +39,7 @@ impl GasLimiterMetrics { self.check_time.record(duration); } - pub fn record_refresh(&self, removed_addresses: usize, duration: Duration) { + pub(super) fn record_refresh(&self, removed_addresses: usize, duration: Duration) { self.active_address_count .decrement(removed_addresses as f64); self.refresh_duration.record(duration); diff --git a/crates/op-rbuilder/src/monitor_tx_pool.rs b/crates/op-rbuilder/src/monitor_tx_pool.rs index 4554c5e60..a9cbbae68 100644 --- a/crates/op-rbuilder/src/monitor_tx_pool.rs +++ b/crates/op-rbuilder/src/monitor_tx_pool.rs @@ -5,7 +5,7 @@ use moka::future::Cache; use reth_transaction_pool::{AllTransactionsEvents, FullTransactionEvent}; use tracing::info; -pub async fn monitor_tx_pool( +pub(crate) async fn monitor_tx_pool( mut new_transactions: AllTransactionsEvents, reverted_cache: Cache, ) { From 6b1752f5b752263c3f3b40480511f641011dcfe1 Mon Sep 17 00:00:00 2001 From: shana Date: Wed, 17 Sep 2025 10:21:29 -0700 Subject: [PATCH 18/54] Refactor payload builder to accept generic builder tx (#217) * Refactor payload builder to accept generic builder tx * Update crates/op-rbuilder/src/builders/builder_tx.rs Co-authored-by: Solar Mithril * Update crates/op-rbuilder/src/builders/builder_tx.rs Co-authored-by: Solar Mithril * Update crates/op-rbuilder/src/builders/flashblocks/service.rs Co-authored-by: Solar Mithril * Update crates/op-rbuilder/src/builders/builder_tx.rs Co-authored-by: Solar Mithril * fix lint * fix tests --------- Co-authored-by: Solar Mithril --- Cargo.lock | 1 + crates/op-rbuilder/Cargo.toml | 1 + crates/op-rbuilder/build.rs | 4 +- crates/op-rbuilder/src/builders/builder_tx.rs | 173 +++++++++++++-- crates/op-rbuilder/src/builders/context.rs | 202 ++---------------- .../src/builders/flashblocks/builder_tx.rs | 156 ++++++++++++++ .../src/builders/flashblocks/mod.rs | 4 +- .../src/builders/flashblocks/payload.rs | 108 ++++++---- .../src/builders/flashblocks/service.rs | 46 ++-- crates/op-rbuilder/src/builders/mod.rs | 3 +- .../src/builders/standard/builder_tx.rs | 146 +++++++++++++ .../op-rbuilder/src/builders/standard/mod.rs | 16 +- .../src/builders/standard/payload.rs | 161 ++++++-------- .../src/builders/standard/service.rs | 96 +++++++++ .../src/flashtestations/service.rs | 42 ++-- crates/op-rbuilder/src/tests/flashblocks.rs | 17 +- .../src/tests/framework/instance.rs | 4 +- 17 files changed, 767 insertions(+), 413 deletions(-) create mode 100644 crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs create mode 100644 crates/op-rbuilder/src/builders/standard/builder_tx.rs create mode 100644 crates/op-rbuilder/src/builders/standard/service.rs diff --git a/Cargo.lock b/Cargo.lock index 61c14bc5a..9f7a6369f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6169,6 +6169,7 @@ dependencies = [ "alloy-consensus", "alloy-contract", "alloy-eips", + "alloy-evm", "alloy-json-rpc", "alloy-network", "alloy-op-evm", diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index 3d31df46e..f91559def 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -62,6 +62,7 @@ alloy-primitives.workspace = true alloy-consensus.workspace = true alloy-contract.workspace = true alloy-eips.workspace = true +alloy-evm.workspace = true alloy-rpc-types-beacon.workspace = true alloy-rpc-types-engine.workspace = true alloy-transport-http.workspace = true diff --git a/crates/op-rbuilder/build.rs b/crates/op-rbuilder/build.rs index 205e8fa76..97acc1fef 100644 --- a/crates/op-rbuilder/build.rs +++ b/crates/op-rbuilder/build.rs @@ -59,10 +59,10 @@ fn main() -> Result<(), Box> { let author_name = env::var("VERGEN_GIT_COMMIT_AUTHOR_NAME")?; let author_email = env::var("VERGEN_GIT_COMMIT_AUTHOR_EMAIL")?; - let author_full = format!("{} <{}>", author_name, author_email); + let author_full = format!("{author_name} <{author_email}>"); // Set author full name - println!("cargo:rustc-env=VERGEN_GIT_COMMIT_AUTHOR={}", author_full); + println!("cargo:rustc-env=VERGEN_GIT_COMMIT_AUTHOR={author_full}"); let is_dirty = env::var("VERGEN_GIT_DIRTY")? == "true"; // > git describe --always --tags diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index 80c73c832..8ff168b14 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -1,32 +1,169 @@ +use alloy_evm::Database; +use alloy_primitives::{ + Address, + map::foldhash::{HashSet, HashSetExt}, +}; +use core::fmt::Debug; +use op_revm::OpTransactionError; +use reth_evm::{ConfigureEvm, Evm, eth::receipt_builder::ReceiptBuilderCtx}; +use reth_node_api::PayloadBuilderError; use reth_optimism_primitives::OpTransactionSigned; use reth_primitives::Recovered; +use reth_provider::{ProviderError, StateProvider}; +use reth_revm::{ + State, database::StateProviderDatabase, db::states::bundle_state::BundleRetention, +}; +use revm::{ + DatabaseCommit, + context::result::{EVMError, ResultAndState}, +}; +use tracing::warn; -use crate::tx_signer::Signer; +use crate::{builders::context::OpPayloadBuilderCtx, primitives::reth::ExecutionInfo}; -pub trait BuilderTx { - fn estimated_builder_tx_gas(&self) -> u64; - fn estimated_builder_tx_da_size(&self) -> Option; - fn signed_builder_tx(&self) -> Result, secp256k1::Error>; +#[derive(Debug, Clone)] +pub struct BuilderTransactionCtx { + pub gas_used: u64, + pub da_size: u64, + pub signed_tx: Recovered, } -// Scaffolding for how to construct the end of block builder transaction -// This will be the regular end of block transaction without the TEE key -#[derive(Clone)] -pub(super) struct StandardBuilderTx { - #[allow(dead_code)] - pub signer: Option, +/// Possible error variants during construction of builder txs. +#[derive(Debug, thiserror::Error)] +pub enum BuilderTransactionError { + /// Builder account load fails to get builder nonce + #[error("failed to load account {0}")] + AccountLoadFailed(Address), + /// Signature signing fails + #[error("failed to sign transaction: {0}")] + SigningError(secp256k1::Error), + /// Unrecoverable error during evm execution. + #[error("evm execution error {0}")] + EvmExecutionError(Box), + /// Any other builder transaction errors. + #[error(transparent)] + Other(Box), } -impl BuilderTx for StandardBuilderTx { - fn estimated_builder_tx_gas(&self) -> u64 { - todo!() +impl From for BuilderTransactionError { + fn from(error: secp256k1::Error) -> Self { + BuilderTransactionError::SigningError(error) } +} + +impl From> for BuilderTransactionError { + fn from(error: EVMError) -> Self { + BuilderTransactionError::EvmExecutionError(Box::new(error)) + } +} - fn estimated_builder_tx_da_size(&self) -> Option { - todo!() +impl From for PayloadBuilderError { + fn from(error: BuilderTransactionError) -> Self { + match error { + BuilderTransactionError::EvmExecutionError(e) => { + PayloadBuilderError::EvmExecutionError(e) + } + _ => PayloadBuilderError::Other(Box::new(error)), + } } +} + +pub trait BuilderTransactions: Debug { + fn simulate_builder_txs( + &self, + state_provider: impl StateProvider + Clone, + info: &mut ExecutionInfo, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + ) -> Result, BuilderTransactionError>; + + fn add_builder_txs( + &self, + state_provider: impl StateProvider + Clone, + info: &mut ExecutionInfo, + builder_ctx: &OpPayloadBuilderCtx, + db: &mut State, + ) -> Result, BuilderTransactionError> { + { + let mut evm = builder_ctx + .evm_config + .evm_with_env(&mut *db, builder_ctx.evm_env.clone()); + + let mut invalid: HashSet

= HashSet::new(); + + let builder_txs = + self.simulate_builder_txs(state_provider, info, builder_ctx, evm.db_mut())?; + for builder_tx in builder_txs.iter() { + if invalid.contains(&builder_tx.signed_tx.signer()) { + warn!(target: "payload_builder", tx_hash = ?builder_tx.signed_tx.tx_hash(), "builder signer invalid as previous builder tx reverted"); + continue; + } + + let ResultAndState { result, state } = evm + .transact(&builder_tx.signed_tx) + .map_err(|err| BuilderTransactionError::EvmExecutionError(Box::new(err)))?; + + if !result.is_success() { + warn!(target: "payload_builder", tx_hash = ?builder_tx.signed_tx.tx_hash(), "builder tx reverted"); + invalid.insert(builder_tx.signed_tx.signer()); + continue; + } + + // Add gas used by the transaction to cumulative gas used, before creating the receipt + let gas_used = result.gas_used(); + info.cumulative_gas_used += gas_used; + + let ctx = ReceiptBuilderCtx { + tx: builder_tx.signed_tx.inner(), + evm: &evm, + result, + state: &state, + cumulative_gas_used: info.cumulative_gas_used, + }; + info.receipts.push(builder_ctx.build_receipt(ctx, None)); + + // Commit changes + evm.db_mut().commit(state); + + // Append sender and transaction to the respective lists + info.executed_senders.push(builder_tx.signed_tx.signer()); + info.executed_transactions + .push(builder_tx.signed_tx.clone().into_inner()); + } + + // Release the db reference by dropping evm + drop(evm); + + Ok(builder_txs) + } + } + + fn simulate_builder_txs_state( + &self, + state_provider: impl StateProvider + Clone, + builder_txs: Vec<&BuilderTransactionCtx>, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + ) -> Result>, BuilderTransactionError> { + let state = StateProviderDatabase::new(state_provider.clone()); + let mut simulation_state = State::builder() + .with_database(state) + .with_bundle_prestate(db.bundle_state.clone()) + .with_bundle_update() + .build(); + let mut evm = ctx + .evm_config + .evm_with_env(&mut simulation_state, ctx.evm_env.clone()); + + for builder_tx in builder_txs { + let ResultAndState { state, .. } = evm + .transact(&builder_tx.signed_tx) + .map_err(|err| BuilderTransactionError::EvmExecutionError(Box::new(err)))?; + + evm.db_mut().commit(state); + evm.db_mut().merge_transitions(BundleRetention::Reverts); + } - fn signed_builder_tx(&self) -> Result, secp256k1::Error> { - todo!() + Ok(simulation_state) } } diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index 8129b9f5b..95cb85793 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -1,12 +1,11 @@ -use alloy_consensus::{ - Eip658Value, Transaction, TxEip1559, conditional::BlockConditionalAttributes, -}; -use alloy_eips::{Encodable2718, Typed2718, eip7623::TOTAL_COST_FLOOR_PER_TOKEN}; +use alloy_consensus::{Eip658Value, Transaction, conditional::BlockConditionalAttributes}; +use alloy_eips::Typed2718; +use alloy_evm::Database; use alloy_op_evm::block::receipt_builder::OpReceiptBuilder; -use alloy_primitives::{Address, Bytes, TxKind, U256}; +use alloy_primitives::{Bytes, U256}; use alloy_rpc_types_eth::Withdrawals; use core::fmt::Debug; -use op_alloy_consensus::{OpDepositReceipt, OpTypedTransaction}; +use op_alloy_consensus::OpDepositReceipt; use op_revm::OpSpecId; use reth::payload::PayloadBuilderAttributes; use reth_basic_payload_builder::PayloadConfig; @@ -27,17 +26,14 @@ use reth_optimism_txpool::{ interop::{MaybeInteropTransaction, is_valid_interop}, }; use reth_payload_builder::PayloadId; -use reth_primitives::{Recovered, SealedHeader}; +use reth_primitives::SealedHeader; use reth_primitives_traits::{InMemorySize, SignedTransaction}; -use reth_provider::ProviderError; use reth_revm::{State, context::Block}; use reth_transaction_pool::{BestTransactionsAttributes, PoolTransaction}; -use revm::{ - Database, DatabaseCommit, context::result::ResultAndState, interpreter::as_u64_saturated, -}; +use revm::{DatabaseCommit, context::result::ResultAndState, interpreter::as_u64_saturated}; use std::{sync::Arc, time::Instant}; use tokio_util::sync::CancellationToken; -use tracing::{debug, info, trace, warn}; +use tracing::{debug, info, trace}; use crate::{ gas_limiter::AddressGasLimiter, @@ -50,7 +46,7 @@ use crate::{ /// Container type that holds all necessities to build a new payload. #[derive(Debug)] -pub(super) struct OpPayloadBuilderCtx { +pub struct OpPayloadBuilderCtx { /// The type that knows how to perform system calls and configure the evm. pub evm_config: OpEvmConfig, /// The DA config for the payload builder @@ -195,16 +191,11 @@ impl OpPayloadBuilderCtx { pub(super) fn chain_id(&self) -> u64 { self.chain_spec.chain_id() } - - /// Returns the builder signer - pub(super) fn builder_signer(&self) -> Option { - self.builder_signer - } } impl OpPayloadBuilderCtx { /// Constructs a receipt for the given transaction. - fn build_receipt( + pub fn build_receipt( &self, ctx: ReceiptBuilderCtx<'_, OpTransactionSigned, E>, deposit_nonce: Option, @@ -236,18 +227,13 @@ impl OpPayloadBuilderCtx { } /// Executes all sequencer transactions that are included in the payload attributes. - pub(super) fn execute_sequencer_transactions( + pub(super) fn execute_sequencer_transactions( &self, - state: &mut State, - ) -> Result, PayloadBuilderError> - where - DB: Database + std::fmt::Debug, - { + db: &mut State, + ) -> Result, PayloadBuilderError> { let mut info = ExecutionInfo::with_capacity(self.attributes().transactions.len()); - let mut evm = self - .evm_config - .evm_with_env(&mut *state, self.evm_env.clone()); + let mut evm = self.evm_config.evm_with_env(&mut *db, self.evm_env.clone()); for sequencer_tx in &self.attributes().transactions { // A sequencer's block should never contain blob transactions. @@ -325,17 +311,14 @@ impl OpPayloadBuilderCtx { /// Executes the given best transactions and updates the execution info. /// /// Returns `Ok(Some(())` if the job was cancelled. - pub(super) fn execute_best_transactions( + pub(super) fn execute_best_transactions( &self, info: &mut ExecutionInfo, - state: &mut State, + db: &mut State, best_txs: &mut impl PayloadTxsBounds, block_gas_limit: u64, block_da_limit: Option, - ) -> Result, PayloadBuilderError> - where - DB: Database + std::fmt::Debug, - { + ) -> Result, PayloadBuilderError> { let execute_txs_start_time = Instant::now(); let mut num_txs_considered = 0; let mut num_txs_simulated = 0; @@ -344,9 +327,7 @@ impl OpPayloadBuilderCtx { let mut num_bundles_reverted = 0; let base_fee = self.base_fee(); let tx_da_limit = self.da_config.max_da_tx_size(); - let mut evm = self - .evm_config - .evm_with_env(&mut *state, self.evm_env.clone()); + let mut evm = self.evm_config.evm_with_env(&mut *db, self.evm_env.clone()); info!( target: "payload_builder", @@ -566,151 +547,4 @@ impl OpPayloadBuilderCtx { ); Ok(None) } - - pub(super) fn add_builder_tx( - &self, - info: &mut ExecutionInfo, - state: &mut State, - builder_tx_gas: u64, - message: Vec, - ) -> Option<()> - where - DB: Database + std::fmt::Debug, - { - self.builder_signer() - .map(|signer| { - let base_fee = self.base_fee(); - let chain_id = self.chain_id(); - // Create and sign the transaction - let builder_tx = - signed_builder_tx(state, builder_tx_gas, message, signer, base_fee, chain_id)?; - - let mut evm = self - .evm_config - .evm_with_env(&mut *state, self.evm_env.clone()); - - let ResultAndState { - result, - state: new_state, - } = evm - .transact(&builder_tx) - .map_err(|err| PayloadBuilderError::EvmExecutionError(Box::new(err)))?; - - // Add gas used by the transaction to cumulative gas used, before creating the receipt - info.cumulative_gas_used += result.gas_used(); - - let ctx = ReceiptBuilderCtx { - tx: builder_tx.inner(), - evm: &evm, - result, - state: &new_state, - cumulative_gas_used: info.cumulative_gas_used, - }; - info.receipts.push(self.build_receipt(ctx, None)); - - // Release the db reference by dropping evm - drop(evm); - // Commit changes - state.commit(new_state); - - // Append sender and transaction to the respective lists - info.executed_senders.push(builder_tx.signer()); - info.executed_transactions.push(builder_tx.into_inner()); - Ok(()) - }) - .transpose() - .unwrap_or_else(|err: PayloadBuilderError| { - warn!(target: "payload_builder", %err, "Failed to add builder transaction"); - None - }) - } - - /// Calculates EIP 2718 builder transaction size - // TODO: this function could be improved, ideally we shouldn't take mut ref to db and maybe - // it's possible to do this without db at all - pub(super) fn estimate_builder_tx_da_size( - &self, - state: &mut State, - builder_tx_gas: u64, - message: Vec, - ) -> Option - where - DB: Database, - { - self.builder_signer() - .map(|signer| { - let base_fee = self.base_fee(); - let chain_id = self.chain_id(); - // Create and sign the transaction - let builder_tx = - signed_builder_tx(state, builder_tx_gas, message, signer, base_fee, chain_id)?; - Ok(op_alloy_flz::tx_estimated_size_fjord_bytes( - builder_tx.encoded_2718().as_slice(), - )) - }) - .transpose() - .unwrap_or_else(|err: PayloadBuilderError| { - warn!(target: "payload_builder", %err, "Failed to add builder transaction"); - None - }) - } -} - -pub(super) fn estimate_gas_for_builder_tx(input: Vec) -> u64 { - // Count zero and non-zero bytes - let (zero_bytes, nonzero_bytes) = input.iter().fold((0, 0), |(zeros, nonzeros), &byte| { - if byte == 0 { - (zeros + 1, nonzeros) - } else { - (zeros, nonzeros + 1) - } - }); - - // Calculate gas cost (4 gas per zero byte, 16 gas per non-zero byte) - let zero_cost = zero_bytes * 4; - let nonzero_cost = nonzero_bytes * 16; - - // Tx gas should be not less than floor gas https://eips.ethereum.org/EIPS/eip-7623 - let tokens_in_calldata = zero_bytes + nonzero_bytes * 4; - let floor_gas = 21_000 + tokens_in_calldata * TOTAL_COST_FLOOR_PER_TOKEN; - - std::cmp::max(zero_cost + nonzero_cost + 21_000, floor_gas) -} - -/// Creates signed builder tx to Address::ZERO and specified message as input -pub(super) fn signed_builder_tx( - state: &mut State, - builder_tx_gas: u64, - message: Vec, - signer: Signer, - base_fee: u64, - chain_id: u64, -) -> Result, PayloadBuilderError> -where - DB: Database, -{ - // Create message with block number for the builder to sign - let nonce = state - .load_cache_account(signer.address) - .map(|acc| acc.account_info().unwrap_or_default().nonce) - .map_err(|_| { - PayloadBuilderError::other(OpPayloadBuilderError::AccountLoadFailed(signer.address)) - })?; - - // Create the EIP-1559 transaction - let tx = OpTypedTransaction::Eip1559(TxEip1559 { - chain_id, - nonce, - gas_limit: builder_tx_gas, - max_fee_per_gas: base_fee.into(), - max_priority_fee_per_gas: 0, - to: TxKind::Call(Address::ZERO), - // Include the message as part of the transaction data - input: message.into(), - ..Default::default() - }); - // Sign the transaction - let builder_tx = signer.sign_tx(tx).map_err(PayloadBuilderError::other)?; - - Ok(builder_tx) } diff --git a/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs b/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs new file mode 100644 index 000000000..be29e6aaa --- /dev/null +++ b/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs @@ -0,0 +1,156 @@ +use alloy_consensus::TxEip1559; +use alloy_eips::{Encodable2718, eip7623::TOTAL_COST_FLOOR_PER_TOKEN}; +use alloy_evm::Database; +use alloy_primitives::{Address, TxKind}; +use core::fmt::Debug; +use op_alloy_consensus::OpTypedTransaction; +use reth_optimism_primitives::OpTransactionSigned; +use reth_primitives::Recovered; +use reth_provider::StateProvider; +use reth_revm::State; + +use crate::{ + builders::{ + BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions, + context::OpPayloadBuilderCtx, flashblocks::payload::FlashblocksExtraCtx, + }, + flashtestations::service::FlashtestationsBuilderTx, + primitives::reth::ExecutionInfo, + tx_signer::Signer, +}; + +// This will be the end of block transaction of a regular block +#[derive(Debug, Clone)] +pub(super) struct FlashblocksBuilderTx { + pub signer: Option, + pub flashtestations_builder_tx: Option, +} + +impl FlashblocksBuilderTx { + pub(super) fn new( + signer: Option, + flashtestations_builder_tx: Option, + ) -> Self { + Self { + signer, + flashtestations_builder_tx, + } + } + + pub(super) fn simulate_builder_tx( + &self, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + ) -> Result, BuilderTransactionError> { + match self.signer { + Some(signer) => { + let message: Vec = format!("Block Number: {}", ctx.block_number()).into_bytes(); + let gas_used = self.estimate_builder_tx_gas(&message); + let signed_tx = self.signed_builder_tx(ctx, db, signer, gas_used, message)?; + let da_size = op_alloy_flz::tx_estimated_size_fjord_bytes( + signed_tx.encoded_2718().as_slice(), + ); + Ok(Some(BuilderTransactionCtx { + gas_used, + da_size, + signed_tx, + })) + } + None => Ok(None), + } + } + + fn estimate_builder_tx_gas(&self, input: &[u8]) -> u64 { + // Count zero and non-zero bytes + let (zero_bytes, nonzero_bytes) = input.iter().fold((0, 0), |(zeros, nonzeros), &byte| { + if byte == 0 { + (zeros + 1, nonzeros) + } else { + (zeros, nonzeros + 1) + } + }); + + // Calculate gas cost (4 gas per zero byte, 16 gas per non-zero byte) + let zero_cost = zero_bytes * 4; + let nonzero_cost = nonzero_bytes * 16; + + // Tx gas should be not less than floor gas https://eips.ethereum.org/EIPS/eip-7623 + let tokens_in_calldata = zero_bytes + nonzero_bytes * 4; + let floor_gas = 21_000 + tokens_in_calldata * TOTAL_COST_FLOOR_PER_TOKEN; + + std::cmp::max(zero_cost + nonzero_cost + 21_000, floor_gas) + } + + fn signed_builder_tx( + &self, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + signer: Signer, + gas_used: u64, + message: Vec, + ) -> Result, BuilderTransactionError> { + let nonce = db + .load_cache_account(signer.address) + .map(|acc| acc.account_info().unwrap_or_default().nonce) + .map_err(|_| BuilderTransactionError::AccountLoadFailed(signer.address))?; + + // Create the EIP-1559 transaction + let tx = OpTypedTransaction::Eip1559(TxEip1559 { + chain_id: ctx.chain_id(), + nonce, + gas_limit: gas_used, + max_fee_per_gas: ctx.base_fee().into(), + max_priority_fee_per_gas: 0, + to: TxKind::Call(Address::ZERO), + // Include the message as part of the transaction data + input: message.into(), + ..Default::default() + }); + // Sign the transaction + let builder_tx = signer + .sign_tx(tx) + .map_err(BuilderTransactionError::SigningError)?; + + Ok(builder_tx) + } +} + +impl BuilderTransactions for FlashblocksBuilderTx { + fn simulate_builder_txs( + &self, + state_provider: impl StateProvider + Clone, + info: &mut ExecutionInfo, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + ) -> Result, BuilderTransactionError> { + let mut builder_txs = Vec::::new(); + + if ctx.is_first_flashblock() { + let flashblocks_builder_tx = self.simulate_builder_tx(ctx, db)?; + builder_txs.extend(flashblocks_builder_tx.clone()); + } + + if ctx.is_last_flashblock() { + let flashblocks_builder_tx = self.simulate_builder_tx(ctx, db)?; + builder_txs.extend(flashblocks_builder_tx.clone()); + if let Some(flashtestations_builder_tx) = &self.flashtestations_builder_tx { + // We only include flashtestations txs in the last flashblock + + let mut simulation_state = self.simulate_builder_txs_state::( + state_provider.clone(), + flashblocks_builder_tx.iter().collect(), + ctx, + db, + )?; + let flashtestations_builder_txs = flashtestations_builder_tx.simulate_builder_txs( + state_provider, + info, + ctx, + &mut simulation_state, + )?; + builder_txs.extend(flashtestations_builder_txs); + } + } + Ok(builder_txs) + } +} diff --git a/crates/op-rbuilder/src/builders/flashblocks/mod.rs b/crates/op-rbuilder/src/builders/flashblocks/mod.rs index da20a0615..10503fa5d 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/mod.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/mod.rs @@ -3,9 +3,9 @@ use crate::traits::{NodeBounds, PoolBounds}; use config::FlashblocksConfig; use service::FlashblocksServiceBuilder; -mod config; -//mod context; mod best_txs; +mod builder_tx; +mod config; mod payload; mod service; mod wspub; diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index df3b12aa5..ede6daf88 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -1,10 +1,11 @@ use super::{config::FlashblocksConfig, wspub::WebSocketPublisher}; use crate::{ builders::{ - BuilderConfig, BuilderTx, - context::{OpPayloadBuilderCtx, estimate_gas_for_builder_tx}, + BuilderConfig, + builder_tx::BuilderTransactions, + context::OpPayloadBuilderCtx, flashblocks::{best_txs::BestFlashblocksTxs, config::FlashBlocksConfigExt}, - generator::{BlockCell, BuildArguments}, + generator::{BlockCell, BuildArguments, PayloadBuilder}, }, gas_limiter::AddressGasLimiter, metrics::OpRBuilderMetrics, @@ -62,7 +63,7 @@ struct ExtraExecutionInfo { } #[derive(Debug, Default)] -struct FlashblocksExtraCtx { +pub struct FlashblocksExtraCtx { /// Current flashblock index pub flashblock_index: u64, /// Target flashblock count @@ -92,15 +93,20 @@ impl OpPayloadBuilderCtx { self.extra_ctx.target_flashblock_count } + /// Returns if the flashblock is the first fallback block + pub(crate) fn is_first_flashblock(&self) -> bool { + self.flashblock_index() == 0 + } + /// Returns if the flashblock is the last one pub(crate) fn is_last_flashblock(&self) -> bool { - self.flashblock_index() == self.target_flashblock_count() - 1 + self.flashblock_index() == self.target_flashblock_count() } } /// Optimism's payload builder #[derive(Debug, Clone)] -pub(super) struct OpPayloadBuilder { +pub(super) struct OpPayloadBuilder { /// The type responsible for creating the evm. pub evm_config: OpEvmConfig, /// The transaction pool @@ -115,8 +121,7 @@ pub(super) struct OpPayloadBuilder { /// The metrics for the builder pub metrics: Arc, /// The end of builder transaction type - #[allow(dead_code)] - pub builder_tx: BT, + pub builder_tx: BuilderTx, /// Builder events handle to send BuiltPayload events pub payload_builder_handle: Arc>>>, @@ -124,14 +129,14 @@ pub(super) struct OpPayloadBuilder { pub address_gas_limiter: AddressGasLimiter, } -impl OpPayloadBuilder { +impl OpPayloadBuilder { /// `OpPayloadBuilder` constructor. pub(super) fn new( evm_config: OpEvmConfig, pool: Pool, client: Client, config: BuilderConfig, - builder_tx: BT, + builder_tx: BuilderTx, payload_builder_handle: Arc< OnceLock>>, >, @@ -153,12 +158,12 @@ impl OpPayloadBuilder { } } -impl reth_basic_payload_builder::PayloadBuilder - for OpPayloadBuilder +impl reth_basic_payload_builder::PayloadBuilder + for OpPayloadBuilder where Pool: Clone + Send + Sync, Client: Clone + Send + Sync, - BT: Clone + Send + Sync, + BuilderTx: Clone + Send + Sync, { type Attributes = OpPayloadBuilderAttributes; type BuiltPayload = OpBuiltPayload; @@ -181,11 +186,11 @@ where } } -impl OpPayloadBuilder +impl OpPayloadBuilder where Pool: PoolBounds, Client: ClientBounds, - BT: BuilderTx, + BuilderTx: BuilderTransactions, { /// Constructs an Optimism payload from the transactions sent via the /// Payload attributes by the sequencer. If the `no_tx_pool` argument is passed in @@ -282,24 +287,22 @@ where .with_bundle_update() .build(); - // We subtract gas limit and da limit for builder transaction from the whole limit - let message = format!("Block Number: {}", ctx.block_number()).into_bytes(); - let builder_tx_gas = ctx - .builder_signer() - .map_or(0, |_| estimate_gas_for_builder_tx(message.clone())); - let builder_tx_da_size = ctx - .estimate_builder_tx_da_size(&mut state, builder_tx_gas, message.clone()) - .unwrap_or(0); - let mut info = execute_pre_steps(&mut state, &ctx)?; let sequencer_tx_time = sequencer_tx_start_time.elapsed(); ctx.metrics.sequencer_tx_duration.record(sequencer_tx_time); ctx.metrics.sequencer_tx_gauge.set(sequencer_tx_time); - // If we have payload with txpool we add first builder tx right after deposits - if !ctx.attributes().no_tx_pool { - ctx.add_builder_tx(&mut info, &mut state, builder_tx_gas, message.clone()); - } + // We add first builder tx right after deposits + let builder_txs = if ctx.attributes().no_tx_pool { + vec![] + } else { + self.builder_tx + .add_builder_txs(&state_provider, &mut info, &ctx, &mut state)? + }; + + // We subtract gas limit and da limit for builder transaction from the whole limit + let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); + let builder_tx_da_size: u64 = builder_txs.iter().fold(0, |acc, tx| acc + tx.da_size); let (payload, fb_payload) = build_block( &mut state, @@ -426,15 +429,17 @@ where match fb_cancel_token { Some(cancel_token) => { + // fallback block is index 0, so we need to increment here + ctx.increment_flashblock_index(); // We use fb_cancel_token inside context so we could exit from // execute_best_transaction without cancelling parent token ctx.cancel = cancel_token; // TODO: remove this - if ctx.flashblock_index() >= ctx.target_flashblock_count() { + if ctx.flashblock_index() > ctx.target_flashblock_count() { info!( target: "payload_builder", target = ctx.target_flashblock_count(), - flashblock_count = ctx.flashblock_index(), + flashblock_index = ctx.flashblock_index(), block_number = ctx.block_number(), "Skipping flashblock reached target", ); @@ -444,7 +449,7 @@ where info!( target: "payload_builder", block_number = ctx.block_number(), - flashblock_count = ctx.flashblock_index(), + flashblock_index = ctx.flashblock_index(), target_gas = total_gas_per_batch, gas_used = info.cumulative_gas_used, target_da = total_da_per_batch.unwrap_or(0), @@ -452,13 +457,21 @@ where "Building flashblock", ); let flashblock_build_start_time = Instant::now(); - // If it is the last flashblock, we need to account for the builder tx - if ctx.is_last_flashblock() { - total_gas_per_batch = total_gas_per_batch.saturating_sub(builder_tx_gas); - // saturating sub just in case, we will log an error if da_limit too small for builder_tx_da_size - if let Some(da_limit) = total_da_per_batch.as_mut() { - *da_limit = da_limit.saturating_sub(builder_tx_da_size); - } + + let builder_txs = self.builder_tx.simulate_builder_txs( + &state_provider, + &mut info, + &ctx, + &mut state, + )?; + let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); + let builder_tx_da_size: u64 = + builder_txs.iter().fold(0, |acc, tx| acc + tx.da_size); + + total_gas_per_batch = total_gas_per_batch.saturating_sub(builder_tx_gas); + // saturating sub just in case, we will log an error if da_limit too small for builder_tx_da_size + if let Some(da_limit) = total_da_per_batch.as_mut() { + *da_limit = da_limit.saturating_sub(builder_tx_da_size); } let best_txs_start_time = Instant::now(); @@ -516,10 +529,12 @@ where .payload_tx_simulation_gauge .set(payload_tx_simulation_time); - // If it is the last flashblocks, add the builder txn to the block if enabled - if ctx.is_last_flashblock() { - ctx.add_builder_tx(&mut info, &mut state, builder_tx_gas, message.clone()); - }; + self.builder_tx.add_builder_txs( + &state_provider, + &mut info, + &ctx, + &mut state, + )?; let total_block_built_duration = Instant::now(); let build_result = @@ -544,7 +559,7 @@ where return Err(err); } Ok((new_payload, mut fb_payload)) => { - fb_payload.index = ctx.increment_flashblock_index(); // fallback block is index 0, so we need to increment here + fb_payload.index = ctx.flashblock_index(); fb_payload.base = None; // We check that child_job got cancelled before sending flashblock. @@ -599,7 +614,7 @@ where info!( target: "payload_builder", message = "Flashblock built", - flashblock_count = ctx.flashblock_index(), + flashblock_index = ctx.flashblock_index(), current_gas = info.cumulative_gas_used, current_da = info.cumulative_da_bytes_used, target_flashblocks = flashblocks_per_block, @@ -783,12 +798,11 @@ where } } -impl crate::builders::generator::PayloadBuilder - for OpPayloadBuilder +impl PayloadBuilder for OpPayloadBuilder where Pool: PoolBounds, Client: ClientBounds, - BT: BuilderTx + Clone + Send + Sync, + BuilderTx: BuilderTransactions + Clone + Send + Sync, { type Attributes = OpPayloadBuilderAttributes; type BuiltPayload = OpBuiltPayload; diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index ceea02f1b..a8b4d3ba2 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -1,10 +1,12 @@ use super::{FlashblocksConfig, payload::OpPayloadBuilder}; use crate::{ builders::{ - BuilderConfig, BuilderTx, builder_tx::StandardBuilderTx, + BuilderConfig, + builder_tx::BuilderTransactions, + flashblocks::{builder_tx::FlashblocksBuilderTx, payload::FlashblocksExtraCtx}, generator::BlockPayloadJobGenerator, }, - flashtestations::service::spawn_flashtestations_service, + flashtestations::service::bootstrap_flashtestations, traits::{NodeBounds, PoolBounds}, }; use reth_basic_payload_builder::BasicPayloadJobGeneratorConfig; @@ -18,16 +20,16 @@ use std::sync::Arc; pub struct FlashblocksServiceBuilder(pub BuilderConfig); impl FlashblocksServiceBuilder { - fn spawn_payload_builder_service( + fn spawn_payload_builder_service( self, ctx: &BuilderContext, pool: Pool, - builder_tx: BT, + builder_tx: BuilderTx, ) -> eyre::Result::Payload>> where Node: NodeBounds, Pool: PoolBounds, - BT: BuilderTx + Unpin + Clone + Send + Sync + 'static, + BuilderTx: BuilderTransactions + Unpin + Clone + Send + Sync + 'static, { let once_lock = Arc::new(std::sync::OnceLock::new()); @@ -78,30 +80,22 @@ where pool: Pool, _: OpEvmConfig, ) -> eyre::Result::Payload>> { - tracing::debug!("Spawning flashblocks payload builder service"); let signer = self.0.builder_signer; - if self.0.flashtestations_config.flashtestations_enabled { - let flashtestations_service = match spawn_flashtestations_service( - self.0.flashtestations_config.clone(), - ctx, - ) - .await - { - Ok(service) => service, + let flashtestations_builder_tx = if self.0.flashtestations_config.flashtestations_enabled { + match bootstrap_flashtestations(self.0.flashtestations_config.clone(), ctx).await { + Ok(builder_tx) => Some(builder_tx), Err(e) => { - tracing::warn!(error = %e, "Failed to spawn flashtestations service, falling back to standard builder tx"); - return self.spawn_payload_builder_service( - ctx, - pool, - StandardBuilderTx { signer }, - ); + tracing::warn!(error = %e, "Failed to bootstrap flashtestations, builder will not include flashtestations txs"); + None } - }; - - if self.0.flashtestations_config.enable_block_proofs { - return self.spawn_payload_builder_service(ctx, pool, flashtestations_service); } - } - self.spawn_payload_builder_service(ctx, pool, StandardBuilderTx { signer }) + } else { + None + }; + self.spawn_payload_builder_service( + ctx, + pool, + FlashblocksBuilderTx::new(signer, flashtestations_builder_tx), + ) } } diff --git a/crates/op-rbuilder/src/builders/mod.rs b/crates/op-rbuilder/src/builders/mod.rs index 575e5bf4f..8dcde8eb5 100644 --- a/crates/op-rbuilder/src/builders/mod.rs +++ b/crates/op-rbuilder/src/builders/mod.rs @@ -21,7 +21,8 @@ mod flashblocks; mod generator; mod standard; -pub use builder_tx::BuilderTx; +pub use builder_tx::{BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions}; +pub use context::OpPayloadBuilderCtx; pub use flashblocks::FlashblocksBuilder; pub use standard::StandardBuilder; diff --git a/crates/op-rbuilder/src/builders/standard/builder_tx.rs b/crates/op-rbuilder/src/builders/standard/builder_tx.rs new file mode 100644 index 000000000..23c39f3c8 --- /dev/null +++ b/crates/op-rbuilder/src/builders/standard/builder_tx.rs @@ -0,0 +1,146 @@ +use alloy_consensus::TxEip1559; +use alloy_eips::{Encodable2718, eip7623::TOTAL_COST_FLOOR_PER_TOKEN}; +use alloy_evm::Database; +use alloy_primitives::{Address, TxKind}; +use core::fmt::Debug; +use op_alloy_consensus::OpTypedTransaction; +use reth_optimism_primitives::OpTransactionSigned; +use reth_primitives::Recovered; +use reth_provider::StateProvider; +use reth_revm::State; + +use crate::{ + builders::{ + BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions, + context::OpPayloadBuilderCtx, + }, + flashtestations::service::FlashtestationsBuilderTx, + primitives::reth::ExecutionInfo, + tx_signer::Signer, +}; + +// This will be the end of block transaction of a regular block +#[derive(Debug, Clone)] +pub(super) struct StandardBuilderTx { + pub signer: Option, + pub flashtestations_builder_tx: Option, +} + +impl StandardBuilderTx { + pub(super) fn new( + signer: Option, + flashtestations_builder_tx: Option, + ) -> Self { + Self { + signer, + flashtestations_builder_tx, + } + } + + pub(super) fn simulate_builder_tx( + &self, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + ) -> Result, BuilderTransactionError> { + match self.signer { + Some(signer) => { + let message: Vec = format!("Block Number: {}", ctx.block_number()).into_bytes(); + let gas_used = self.estimate_builder_tx_gas(&message); + let signed_tx = self.signed_builder_tx(ctx, db, signer, gas_used, message)?; + let da_size = op_alloy_flz::tx_estimated_size_fjord_bytes( + signed_tx.encoded_2718().as_slice(), + ); + Ok(Some(BuilderTransactionCtx { + gas_used, + da_size, + signed_tx, + })) + } + None => Ok(None), + } + } + + fn estimate_builder_tx_gas(&self, input: &[u8]) -> u64 { + // Count zero and non-zero bytes + let (zero_bytes, nonzero_bytes) = input.iter().fold((0, 0), |(zeros, nonzeros), &byte| { + if byte == 0 { + (zeros + 1, nonzeros) + } else { + (zeros, nonzeros + 1) + } + }); + + // Calculate gas cost (4 gas per zero byte, 16 gas per non-zero byte) + let zero_cost = zero_bytes * 4; + let nonzero_cost = nonzero_bytes * 16; + + // Tx gas should be not less than floor gas https://eips.ethereum.org/EIPS/eip-7623 + let tokens_in_calldata = zero_bytes + nonzero_bytes * 4; + let floor_gas = 21_000 + tokens_in_calldata * TOTAL_COST_FLOOR_PER_TOKEN; + + std::cmp::max(zero_cost + nonzero_cost + 21_000, floor_gas) + } + + fn signed_builder_tx( + &self, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + signer: Signer, + gas_used: u64, + message: Vec, + ) -> Result, BuilderTransactionError> { + let nonce = db + .load_cache_account(signer.address) + .map(|acc| acc.account_info().unwrap_or_default().nonce) + .map_err(|_| BuilderTransactionError::AccountLoadFailed(signer.address))?; + + // Create the EIP-1559 transaction + let tx = OpTypedTransaction::Eip1559(TxEip1559 { + chain_id: ctx.chain_id(), + nonce, + gas_limit: gas_used, + max_fee_per_gas: ctx.base_fee().into(), + max_priority_fee_per_gas: 0, + to: TxKind::Call(Address::ZERO), + // Include the message as part of the transaction data + input: message.into(), + ..Default::default() + }); + // Sign the transaction + let builder_tx = signer + .sign_tx(tx) + .map_err(BuilderTransactionError::SigningError)?; + + Ok(builder_tx) + } +} + +impl BuilderTransactions for StandardBuilderTx { + fn simulate_builder_txs( + &self, + state_provider: impl StateProvider + Clone, + info: &mut ExecutionInfo, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + ) -> Result, BuilderTransactionError> { + let mut builder_txs = Vec::::new(); + let standard_builder_tx = self.simulate_builder_tx(ctx, db)?; + builder_txs.extend(standard_builder_tx.clone()); + if let Some(flashtestations_builder_tx) = &self.flashtestations_builder_tx { + let mut simulation_state = self.simulate_builder_txs_state::<()>( + state_provider.clone(), + standard_builder_tx.iter().collect(), + ctx, + db, + )?; + let flashtestations_builder_txs = flashtestations_builder_tx.simulate_builder_txs( + state_provider, + info, + ctx, + &mut simulation_state, + )?; + builder_txs.extend(flashtestations_builder_txs); + } + Ok(builder_txs) + } +} diff --git a/crates/op-rbuilder/src/builders/standard/mod.rs b/crates/op-rbuilder/src/builders/standard/mod.rs index 98e9b44f7..e26bbc6cc 100644 --- a/crates/op-rbuilder/src/builders/standard/mod.rs +++ b/crates/op-rbuilder/src/builders/standard/mod.rs @@ -1,11 +1,13 @@ -use payload::StandardPayloadBuilderBuilder; -use reth_node_builder::components::BasicPayloadServiceBuilder; - -use crate::traits::{NodeBounds, PoolBounds}; +use crate::{ + builders::standard::service::StandardServiceBuilder, + traits::{NodeBounds, PoolBounds}, +}; use super::BuilderConfig; +mod builder_tx; mod payload; +mod service; /// Block building strategy that builds blocks using the standard approach by /// producing blocks every chain block time. @@ -15,7 +17,7 @@ impl super::PayloadBuilder for StandardBuilder { type Config = (); type ServiceBuilder - = BasicPayloadServiceBuilder + = StandardServiceBuilder where Node: NodeBounds, Pool: PoolBounds; @@ -27,8 +29,6 @@ impl super::PayloadBuilder for StandardBuilder { Node: NodeBounds, Pool: PoolBounds, { - Ok(BasicPayloadServiceBuilder::new( - StandardPayloadBuilderBuilder(config), - )) + Ok(StandardServiceBuilder(config)) } } diff --git a/crates/op-rbuilder/src/builders/standard/payload.rs b/crates/op-rbuilder/src/builders/standard/payload.rs index daebf7ddf..52acef4b7 100644 --- a/crates/op-rbuilder/src/builders/standard/payload.rs +++ b/crates/op-rbuilder/src/builders/standard/payload.rs @@ -1,22 +1,22 @@ +use super::super::context::OpPayloadBuilderCtx; use crate::{ - builders::{BuilderConfig, generator::BuildArguments}, - flashtestations::service::spawn_flashtestations_service, + builders::{BuilderConfig, BuilderTransactions, generator::BuildArguments}, gas_limiter::AddressGasLimiter, metrics::OpRBuilderMetrics, primitives::reth::ExecutionInfo, - traits::{ClientBounds, NodeBounds, PayloadTxsBounds, PoolBounds}, + traits::{ClientBounds, PayloadTxsBounds, PoolBounds}, }; use alloy_consensus::{ BlockBody, EMPTY_OMMER_ROOT_HASH, Header, constants::EMPTY_WITHDRAWALS, proofs, }; use alloy_eips::{eip7685::EMPTY_REQUESTS_HASH, merge::BEACON_NONCE}; +use alloy_evm::Database; use alloy_primitives::U256; use reth::payload::PayloadBuilderAttributes; use reth_basic_payload_builder::{BuildOutcome, BuildOutcomeKind, MissingPayloadBehaviour}; use reth_chain_state::{ExecutedBlock, ExecutedBlockWithTrieUpdates, ExecutedTrieUpdates}; use reth_evm::{ConfigureEvm, execute::BlockBuilder}; use reth_node_api::{Block, PayloadBuilderError}; -use reth_node_builder::{BuilderContext, components::PayloadBuilderBuilder}; use reth_optimism_consensus::{calculate_receipt_root_no_memo_optimism, isthmus}; use reth_optimism_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; use reth_optimism_forks::OpHardforks; @@ -24,69 +24,20 @@ use reth_optimism_node::{OpBuiltPayload, OpPayloadBuilderAttributes}; use reth_optimism_primitives::{OpPrimitives, OpTransactionSigned}; use reth_payload_util::{BestPayloadTransactions, NoopPayloadTransactions, PayloadTransactions}; use reth_primitives::RecoveredBlock; -use reth_provider::{ - ExecutionOutcome, HashedPostStateProvider, ProviderError, StateRootProvider, - StorageRootProvider, -}; +use reth_provider::{ExecutionOutcome, StateProvider}; use reth_revm::{ State, database::StateProviderDatabase, db::states::bundle_state::BundleRetention, }; use reth_transaction_pool::{ BestTransactions, BestTransactionsAttributes, PoolTransaction, TransactionPool, }; -use revm::Database; use std::{sync::Arc, time::Instant}; use tokio_util::sync::CancellationToken; use tracing::{error, info, warn}; -use super::super::context::{OpPayloadBuilderCtx, estimate_gas_for_builder_tx}; - -pub struct StandardPayloadBuilderBuilder(pub BuilderConfig<()>); - -impl PayloadBuilderBuilder for StandardPayloadBuilderBuilder -where - Node: NodeBounds, - Pool: PoolBounds, -{ - type PayloadBuilder = StandardOpPayloadBuilder; - - async fn build_payload_builder( - self, - ctx: &BuilderContext, - pool: Pool, - _evm_config: OpEvmConfig, - ) -> eyre::Result { - if self.0.flashtestations_config.flashtestations_enabled { - match spawn_flashtestations_service(self.0.flashtestations_config.clone(), ctx).await { - Ok(service) => service, - Err(e) => { - tracing::warn!(error = %e, "Failed to spawn flashtestations service, falling back to standard builder tx"); - return Ok(StandardOpPayloadBuilder::new( - OpEvmConfig::optimism(ctx.chain_spec()), - pool, - ctx.provider().clone(), - self.0.clone(), - )); - } - }; - - if self.0.flashtestations_config.enable_block_proofs { - // TODO: flashtestations end of block transaction - } - } - - Ok(StandardOpPayloadBuilder::new( - OpEvmConfig::optimism(ctx.chain_spec()), - pool, - ctx.provider().clone(), - self.0.clone(), - )) - } -} - /// Optimism's payload builder #[derive(Debug, Clone)] -pub struct StandardOpPayloadBuilder { +pub(super) struct StandardOpPayloadBuilder { /// The type responsible for creating the evm. pub evm_config: OpEvmConfig, /// The transaction pool @@ -102,15 +53,18 @@ pub struct StandardOpPayloadBuilder { pub metrics: Arc, /// Rate limiting based on gas. This is an optional feature. pub address_gas_limiter: AddressGasLimiter, + /// The type responsible for creating the builder transactions + pub builder_tx: BuilderTx, } -impl StandardOpPayloadBuilder { +impl StandardOpPayloadBuilder { /// `OpPayloadBuilder` constructor. - pub fn new( + pub(super) fn new( evm_config: OpEvmConfig, pool: Pool, client: Client, config: BuilderConfig<()>, + builder_tx: BuilderTx, ) -> Self { let address_gas_limiter = AddressGasLimiter::new(config.gas_limiter_config.clone()); Self { @@ -121,12 +75,15 @@ impl StandardOpPayloadBuilder { best_transactions: (), metrics: Default::default(), address_gas_limiter, + builder_tx, } } } /// A type that returns a the [`PayloadTransactions`] that should be included in the pool. -pub trait OpPayloadTransactions: Clone + Send + Sync + Unpin + 'static { +pub(super) trait OpPayloadTransactions: + Clone + Send + Sync + Unpin + 'static +{ /// Returns an iterator that yields the transaction in the order they should get included in the /// new payload. fn best_transactions>( @@ -151,11 +108,12 @@ impl OpPayloadTransactions for () { } } -impl reth_basic_payload_builder::PayloadBuilder - for StandardOpPayloadBuilder +impl reth_basic_payload_builder::PayloadBuilder + for StandardOpPayloadBuilder where Pool: PoolBounds, Client: ClientBounds, + BuilderTx: BuilderTransactions + Clone + Send + Sync, Txs: OpPayloadTransactions, { type Attributes = OpPayloadBuilderAttributes; @@ -214,10 +172,11 @@ where } } -impl StandardOpPayloadBuilder +impl StandardOpPayloadBuilder where Pool: PoolBounds, Client: ClientBounds, + BuilderTx: BuilderTransactions + Clone, { /// Constructs an Optimism payload from the transactions sent via the /// Payload attributes by the sequencer. If the `no_tx_pool` argument is passed in @@ -289,22 +248,21 @@ where self.address_gas_limiter.refresh(ctx.block_number()); let state_provider = self.client.state_by_block_hash(ctx.parent().hash())?; - let db = StateProviderDatabase::new(state_provider); + let db = StateProviderDatabase::new(&state_provider); let metrics = ctx.metrics.clone(); - if ctx.attributes().no_tx_pool { let state = State::builder() .with_database(db) .with_bundle_update() .build(); - builder.build(state, ctx) + builder.build(state, &state_provider, ctx, self.builder_tx.clone()) } else { // sequencer mode we can reuse cachedreads from previous runs let state = State::builder() .with_database(cached_reads.as_db_mut(db)) .with_bundle_update() .build(); - builder.build(state, ctx) + builder.build(state, &state_provider, ctx, self.builder_tx.clone()) } .map(|out| { let total_block_building_time = block_build_start_time.elapsed(); @@ -358,28 +316,29 @@ pub(super) struct ExecutedPayload { impl OpBuilder<'_, Txs> { /// Executes the payload and returns the outcome. - pub(super) fn execute( + pub(crate) fn execute( self, - state: &mut State, + state_provider: impl StateProvider, + db: &mut State, ctx: &OpPayloadBuilderCtx, + builder_tx: BuilderTx, ) -> Result, PayloadBuilderError> where - DB: Database + AsRef

+ std::fmt::Debug, - P: StorageRootProvider, + BuilderTx: BuilderTransactions, { let Self { best } = self; info!(target: "payload_builder", id=%ctx.payload_id(), parent_header = ?ctx.parent().hash(), parent_number = ctx.parent().number, "building new payload"); // 1. apply pre-execution changes ctx.evm_config - .builder_for_next_block(state, ctx.parent(), ctx.block_env_attributes.clone()) + .builder_for_next_block(db, ctx.parent(), ctx.block_env_attributes.clone()) .map_err(PayloadBuilderError::other)? .apply_pre_execution_changes()?; let sequencer_tx_start_time = Instant::now(); // 3. execute sequencer transactions - let mut info = ctx.execute_sequencer_transactions(state)?; + let mut info = ctx.execute_sequencer_transactions(db)?; let sequencer_tx_time = sequencer_tx_start_time.elapsed(); ctx.metrics.sequencer_tx_duration.record(sequencer_tx_time); @@ -388,17 +347,16 @@ impl OpBuilder<'_, Txs> { // 4. if mem pool transactions are requested we execute them // gas reserved for builder tx - let message = format!("Block Number: {}", ctx.block_number()) - .as_bytes() - .to_vec(); - let builder_tx_gas = ctx - .builder_signer() - .map_or(0, |_| estimate_gas_for_builder_tx(message.clone())); - let block_gas_limit = ctx.block_gas_limit() - builder_tx_gas; + let builder_txs = builder_tx.simulate_builder_txs(&state_provider, &mut info, ctx, db)?; + let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); + let block_gas_limit = ctx.block_gas_limit().saturating_sub(builder_tx_gas); + if block_gas_limit == 0 { + error!( + "Builder tx gas subtraction resulted in block gas limit to be 0. No transactions would be included" + ); + } // Save some space in the block_da_limit for builder tx - let builder_tx_da_size = ctx - .estimate_builder_tx_da_size(state, builder_tx_gas, message.clone()) - .unwrap_or(0); + let builder_tx_da_size = builder_txs.iter().fold(0, |acc, tx| acc + tx.da_size); let block_da_limit = ctx .da_config .max_da_block_size() @@ -424,7 +382,7 @@ impl OpBuilder<'_, Txs> { if ctx .execute_best_transactions( &mut info, - state, + db, &mut best_txs, block_gas_limit, block_da_limit, @@ -436,13 +394,13 @@ impl OpBuilder<'_, Txs> { } // Add builder tx to the block - ctx.add_builder_tx(&mut info, state, builder_tx_gas, message); + builder_tx.add_builder_txs(&state_provider, &mut info, ctx, db)?; let state_merge_start_time = Instant::now(); // merge all transitions into bundle state, this would apply the withdrawal balance changes // and 4788 contract call - state.merge_transitions(BundleRetention::Reverts); + db.merge_transitions(BundleRetention::Reverts); let state_transition_merge_time = state_merge_start_time.elapsed(); ctx.metrics @@ -466,24 +424,32 @@ impl OpBuilder<'_, Txs> { } /// Builds the payload on top of the state. - pub(super) fn build( + pub(super) fn build( self, - mut state: State, + state: impl Database, + state_provider: impl StateProvider, ctx: OpPayloadBuilderCtx, + builder_tx: BuilderTx, ) -> Result, PayloadBuilderError> where - DB: Database + AsRef

+ std::fmt::Debug, - P: StateRootProvider + HashedPostStateProvider + StorageRootProvider, + BuilderTx: BuilderTransactions, { - let ExecutedPayload { info } = match self.execute(&mut state, &ctx)? { - BuildOutcomeKind::Better { payload } | BuildOutcomeKind::Freeze(payload) => payload, - BuildOutcomeKind::Cancelled => return Ok(BuildOutcomeKind::Cancelled), - BuildOutcomeKind::Aborted { fees } => return Ok(BuildOutcomeKind::Aborted { fees }), - }; + let mut db = State::builder() + .with_database(state) + .with_bundle_update() + .build(); + let ExecutedPayload { info } = + match self.execute(&state_provider, &mut db, &ctx, builder_tx)? { + BuildOutcomeKind::Better { payload } | BuildOutcomeKind::Freeze(payload) => payload, + BuildOutcomeKind::Cancelled => return Ok(BuildOutcomeKind::Cancelled), + BuildOutcomeKind::Aborted { fees } => { + return Ok(BuildOutcomeKind::Aborted { fees }); + } + }; let block_number = ctx.block_number(); let execution_outcome = ExecutionOutcome::new( - state.take_bundle(), + db.take_bundle(), vec![info.receipts], block_number, Vec::new(), @@ -504,12 +470,9 @@ impl OpBuilder<'_, Txs> { // calculate the state root let state_root_start_time = Instant::now(); - let state_provider = state.database.as_ref(); let hashed_state = state_provider.hashed_post_state(execution_outcome.state()); let (state_root, trie_output) = { - state - .database - .as_ref() + state_provider .state_root_with_updates(hashed_state.clone()) .inspect_err(|err| { warn!(target: "payload_builder", @@ -533,7 +496,7 @@ impl OpBuilder<'_, Txs> { // `l2tol1-message-passer` ( Some( - isthmus::withdrawals_root(execution_outcome.state(), state.database.as_ref()) + isthmus::withdrawals_root(execution_outcome.state(), state_provider) .map_err(PayloadBuilderError::other)?, ), Some(EMPTY_REQUESTS_HASH), diff --git a/crates/op-rbuilder/src/builders/standard/service.rs b/crates/op-rbuilder/src/builders/standard/service.rs new file mode 100644 index 000000000..c713b69cb --- /dev/null +++ b/crates/op-rbuilder/src/builders/standard/service.rs @@ -0,0 +1,96 @@ +use reth_basic_payload_builder::{BasicPayloadJobGenerator, BasicPayloadJobGeneratorConfig}; +use reth_node_api::NodeTypes; +use reth_node_builder::{BuilderContext, components::PayloadServiceBuilder}; +use reth_optimism_evm::OpEvmConfig; +use reth_payload_builder::{PayloadBuilderHandle, PayloadBuilderService}; +use reth_provider::CanonStateSubscriptions; + +use crate::{ + builders::{ + BuilderConfig, BuilderTransactions, + standard::{builder_tx::StandardBuilderTx, payload::StandardOpPayloadBuilder}, + }, + flashtestations::service::bootstrap_flashtestations, + traits::{NodeBounds, PoolBounds}, +}; + +pub struct StandardServiceBuilder(pub BuilderConfig<()>); + +impl StandardServiceBuilder { + pub fn spawn_payload_builder_service( + self, + evm_config: OpEvmConfig, + ctx: &BuilderContext, + pool: Pool, + builder_tx: BuilderTx, + ) -> eyre::Result::Payload>> + where + Node: NodeBounds, + Pool: PoolBounds, + BuilderTx: BuilderTransactions + Unpin + Clone + Send + Sync + 'static, + { + let payload_builder = StandardOpPayloadBuilder::new( + evm_config, + pool, + ctx.provider().clone(), + self.0.clone(), + builder_tx, + ); + + let conf = ctx.config().builder.clone(); + + let payload_job_config = BasicPayloadJobGeneratorConfig::default() + .interval(conf.interval) + .deadline(conf.deadline) + .max_payload_tasks(conf.max_payload_tasks); + + let payload_generator = BasicPayloadJobGenerator::with_builder( + ctx.provider().clone(), + ctx.task_executor().clone(), + payload_job_config, + payload_builder, + ); + let (payload_service, payload_service_handle) = + PayloadBuilderService::new(payload_generator, ctx.provider().canonical_state_stream()); + + ctx.task_executor() + .spawn_critical("payload builder service", Box::pin(payload_service)); + + Ok(payload_service_handle) + } +} + +impl PayloadServiceBuilder for StandardServiceBuilder +where + Node: NodeBounds, + Pool: PoolBounds, +{ + async fn spawn_payload_builder_service( + self, + ctx: &BuilderContext, + pool: Pool, + evm_config: OpEvmConfig, + ) -> eyre::Result::Payload>> { + let signer = self.0.builder_signer; + let flashtestations_builder_tx = if self.0.flashtestations_config.flashtestations_enabled { + match bootstrap_flashtestations::(self.0.flashtestations_config.clone(), ctx) + .await + { + Ok(builder_tx) => Some(builder_tx), + Err(e) => { + tracing::warn!(error = %e, "Failed to bootstrap flashtestations, builderb will not include flashtestations txs"); + None + } + } + } else { + None + }; + + self.spawn_payload_builder_service( + evm_config, + ctx, + pool, + StandardBuilderTx::new(signer, flashtestations_builder_tx), + ) + } +} diff --git a/crates/op-rbuilder/src/flashtestations/service.rs b/crates/op-rbuilder/src/flashtestations/service.rs index 411ef4bfc..ffcd22767 100644 --- a/crates/op-rbuilder/src/flashtestations/service.rs +++ b/crates/op-rbuilder/src/flashtestations/service.rs @@ -2,12 +2,17 @@ use std::sync::Arc; use alloy_primitives::U256; use reth_node_builder::BuilderContext; -use reth_optimism_primitives::OpTransactionSigned; -use reth_primitives::Recovered; +use reth_provider::StateProvider; +use reth_revm::State; +use revm::Database; +use std::fmt::Debug; use tracing::{info, warn}; use crate::{ - builders::BuilderTx, + builders::{ + BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions, OpPayloadBuilderCtx, + }, + primitives::reth::ExecutionInfo, traits::NodeBounds, tx_signer::{Signer, generate_ethereum_keypair}, }; @@ -21,7 +26,7 @@ use super::{ #[derive(Clone)] pub struct FlashtestationsService { // Attestation provider generating attestations - attestation_provider: Arc>, + attestation_provider: Arc>, // Handles the onchain attestation and TEE block building proofs tx_manager: TxManager, // TEE service generated key @@ -86,24 +91,25 @@ impl FlashtestationsService { } } -impl BuilderTx for FlashtestationsService { - fn estimated_builder_tx_gas(&self) -> u64 { - todo!() - } - - fn estimated_builder_tx_da_size(&self) -> Option { - todo!() - } - - fn signed_builder_tx(&self) -> Result, secp256k1::Error> { - todo!() +#[derive(Debug, Clone)] +pub struct FlashtestationsBuilderTx {} + +impl BuilderTransactions for FlashtestationsBuilderTx { + fn simulate_builder_txs( + &self, + _state_provider: impl StateProvider + Clone, + _info: &mut ExecutionInfo, + _ctx: &OpPayloadBuilderCtx, + _db: &mut State, + ) -> Result, BuilderTransactionError> { + Ok(vec![]) } } -pub async fn spawn_flashtestations_service( +pub async fn bootstrap_flashtestations( args: FlashtestationsArgs, ctx: &BuilderContext, -) -> eyre::Result +) -> eyre::Result where Node: NodeBounds, { @@ -131,7 +137,7 @@ where }, ); - Ok(flashtestations_service) + Ok(FlashtestationsBuilderTx {}) } #[cfg(test)] diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index eca81b4dc..d9789457d 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -189,7 +189,12 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> let block = driver .build_new_block_with_current_timestamp(Some(Duration::from_millis(i * 100))) .await?; - assert_eq!(block.transactions.len(), 8, "Got: {:?}", block.transactions); // 5 normal txn + deposit + 2 builder txn + assert_eq!( + block.transactions.len(), + 8, + "Got: {:#?}", + block.transactions + ); // 5 normal txn + deposit + 2 builder txn tokio::time::sleep(std::time::Duration::from_secs(1)).await; } @@ -383,17 +388,17 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res let _block = driver.build_new_block_with_current_timestamp(None).await?; - // It ends up in the flashblock with index 3. Flashblock number and index - // are different. + // It ends up in the 2nd flashblock assert_eq!( - 2 + 1, + 2, flashblocks_listener .find_transaction_flashblock(tx1.tx_hash()) - .unwrap() + .unwrap(), + "Transaction should be in the 2nd flashblock" ); let flashblocks = flashblocks_listener.get_flashblocks(); - assert_eq!(6, flashblocks.len()); + assert_eq!(6, flashblocks.len(), "Flashblocks length should be 6"); flashblocks_listener.stop().await } diff --git a/crates/op-rbuilder/src/tests/framework/instance.rs b/crates/op-rbuilder/src/tests/framework/instance.rs index 041136c17..7a9ba14b4 100644 --- a/crates/op-rbuilder/src/tests/framework/instance.rs +++ b/crates/op-rbuilder/src/tests/framework/instance.rs @@ -418,7 +418,7 @@ impl FlashblocksListener { /// Check if any flashblock contains the given transaction hash pub fn contains_transaction(&self, tx_hash: &B256) -> bool { - let tx_hash_str = format!("{:#x}", tx_hash); + let tx_hash_str = format!("{tx_hash:#x}"); self.flashblocks.lock().iter().any(|fb| { if let Some(receipts) = fb.metadata.get("receipts") { if let Some(receipts_obj) = receipts.as_object() { @@ -431,7 +431,7 @@ impl FlashblocksListener { /// Find which flashblock index contains the given transaction hash pub fn find_transaction_flashblock(&self, tx_hash: &B256) -> Option { - let tx_hash_str = format!("{:#x}", tx_hash); + let tx_hash_str = format!("{tx_hash:#x}"); self.flashblocks.lock().iter().find_map(|fb| { if let Some(receipts) = fb.metadata.get("receipts") { if let Some(receipts_obj) = receipts.as_object() { From c92a924839dbab5d6860770567ea070cb1ebb591 Mon Sep 17 00:00:00 2001 From: noot <36753753+noot@users.noreply.github.com> Date: Wed, 17 Sep 2025 17:22:38 -0400 Subject: [PATCH 19/54] refactor: clean up and improve flashblocks `build_payload` (#260) --- .../src/builders/flashblocks/best_txs.rs | 20 +- .../src/builders/flashblocks/payload.rs | 574 ++++++++++-------- crates/op-rbuilder/src/builders/generator.rs | 8 +- 3 files changed, 325 insertions(+), 277 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs b/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs index 3d4021c7d..2f36c96dc 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/best_txs.rs @@ -1,7 +1,7 @@ use alloy_primitives::{Address, TxHash}; use reth_payload_util::PayloadTransactions; -use reth_transaction_pool::PoolTransaction; -use std::collections::HashSet; +use reth_transaction_pool::{PoolTransaction, ValidPoolTransaction}; +use std::{collections::HashSet, sync::Arc}; use tracing::debug; use crate::tx::MaybeFlashblockFilter; @@ -9,9 +9,9 @@ use crate::tx::MaybeFlashblockFilter; pub(super) struct BestFlashblocksTxs where T: PoolTransaction, - I: PayloadTransactions, + I: Iterator>>, { - inner: I, + inner: reth_payload_util::BestPayloadTransactions, current_flashblock_number: u64, // Transactions that were already commited to the state. Using them again would cause NonceTooLow // so we skip them @@ -21,9 +21,9 @@ where impl BestFlashblocksTxs where T: PoolTransaction, - I: PayloadTransactions, + I: Iterator>>, { - pub(super) fn new(inner: I) -> Self { + pub(super) fn new(inner: reth_payload_util::BestPayloadTransactions) -> Self { Self { inner, current_flashblock_number: 0, @@ -33,7 +33,11 @@ where /// Replaces current iterator with new one. We use it on new flashblock building, to refresh /// priority boundaries - pub(super) fn refresh_iterator(&mut self, inner: I, current_flashblock_number: u64) { + pub(super) fn refresh_iterator( + &mut self, + inner: reth_payload_util::BestPayloadTransactions, + current_flashblock_number: u64, + ) { self.inner = inner; self.current_flashblock_number = current_flashblock_number; } @@ -47,7 +51,7 @@ where impl PayloadTransactions for BestFlashblocksTxs where T: PoolTransaction + MaybeFlashblockFilter, - I: PayloadTransactions, + I: Iterator>>, { type Transaction = T; diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index ede6daf88..05228f829 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -38,6 +38,7 @@ use reth_provider::{ use reth_revm::{ State, database::StateProviderDatabase, db::states::bundle_state::BundleRetention, }; +use reth_transaction_pool::TransactionPool; use reth_trie::{HashedPostState, updates::TrieUpdates}; use revm::Database; use rollup_boost::{ @@ -49,13 +50,23 @@ use std::{ sync::{Arc, OnceLock}, time::Instant, }; -use tokio::sync::{ - mpsc, - mpsc::{Sender, error::SendError}, -}; +use tokio::sync::mpsc; use tokio_util::sync::CancellationToken; use tracing::{debug, error, info, metadata::Level, span, warn}; +type NextBestFlashblocksTxs = BestFlashblocksTxs< + ::Transaction, + Box< + dyn reth_transaction_pool::BestTransactions< + Item = Arc< + reth_transaction_pool::ValidPoolTransaction< + ::Transaction, + >, + >, + >, + >, +>; + #[derive(Debug, Default)] struct ExtraExecutionInfo { /// Index of the last consumed flashblock @@ -65,9 +76,19 @@ struct ExtraExecutionInfo { #[derive(Debug, Default)] pub struct FlashblocksExtraCtx { /// Current flashblock index - pub flashblock_index: u64, - /// Target flashblock count - pub target_flashblock_count: u64, + flashblock_index: u64, + /// Target flashblock count per block + target_flashblock_count: u64, + /// Total gas left for the current flashblock + target_gas_for_batch: u64, + /// Total DA bytes left for the current flashblock + total_da_per_batch: Option, + /// Gas limit per flashblock + gas_per_batch: u64, + /// DA bytes limit per flashblock + da_per_batch: Option, + /// Whether to calculate the state root for each flashblock + calculate_state_root: bool, } impl OpPayloadBuilderCtx { @@ -190,7 +211,7 @@ impl OpPayloadBuilder where Pool: PoolBounds, Client: ClientBounds, - BuilderTx: BuilderTransactions, + BuilderTx: BuilderTransactions + Send + Sync, { /// Constructs an Optimism payload from the transactions sent via the /// Payload attributes by the sequencer. If the `no_tx_pool` argument is passed in @@ -200,7 +221,7 @@ where /// Given build arguments including an Optimism client, transaction pool, /// and configuration, this function creates a transaction payload. Returns /// a result indicating success with the payload or an error in case of failure. - fn build_payload( + async fn build_payload( &self, args: BuildArguments, OpBuiltPayload>, best_payload: BlockCell, @@ -270,6 +291,11 @@ where extra_ctx: FlashblocksExtraCtx { flashblock_index: 0, target_flashblock_count: self.config.flashblocks_per_block(), + target_gas_for_batch: 0, + total_da_per_batch: None, + gas_per_batch: 0, + da_per_batch: None, + calculate_state_root, }, max_gas_per_txn: self.config.max_gas_per_txn, address_gas_limiter: self.address_gas_limiter.clone(), @@ -373,7 +399,7 @@ where .first_flashblock_time_offset .record(first_flashblock_offset.as_millis() as f64); let gas_per_batch = ctx.block_gas_limit() / ctx.target_flashblock_count(); - let mut total_gas_per_batch = gas_per_batch; + let target_gas_for_batch = gas_per_batch; let da_per_batch = ctx .da_config .max_da_block_size() @@ -390,24 +416,59 @@ where let mut total_da_per_batch = da_per_batch; // Account for already included builder tx - total_gas_per_batch = total_gas_per_batch.saturating_sub(builder_tx_gas); + ctx.extra_ctx.target_gas_for_batch = target_gas_for_batch.saturating_sub(builder_tx_gas); if let Some(da_limit) = total_da_per_batch.as_mut() { *da_limit = da_limit.saturating_sub(builder_tx_da_size); } + ctx.extra_ctx.total_da_per_batch = total_da_per_batch; + ctx.extra_ctx.gas_per_batch = gas_per_batch; + ctx.extra_ctx.da_per_batch = da_per_batch; // Create best_transaction iterator let mut best_txs = BestFlashblocksTxs::new(BestPayloadTransactions::new( self.pool .best_transactions_with_attributes(ctx.best_transaction_attributes()), )); - // This channel coordinates flashblock building - let (fb_cancel_token_tx, mut fb_cancel_token_rx) = - mpsc::channel((self.config.flashblocks_per_block() + 1) as usize); - self.spawn_timer_task( - block_cancel.clone(), - fb_cancel_token_tx, - first_flashblock_offset, - ); + let interval = self.config.specific.interval; + let (tx, mut rx) = mpsc::channel((self.config.flashblocks_per_block() + 1) as usize); + let mut fb_cancel = block_cancel.child_token(); + ctx.cancel = fb_cancel.clone(); + + tokio::spawn({ + let block_cancel = block_cancel.clone(); + + async move { + let mut timer = tokio::time::interval_at( + tokio::time::Instant::now() + .checked_add(first_flashblock_offset) + .expect("can add flashblock offset to current time"), + interval, + ); + + loop { + tokio::select! { + _ = timer.tick() => { + // cancel current payload building job + fb_cancel.cancel(); + fb_cancel = block_cancel.child_token(); + // this will tick at first_flashblock_offset, + // starting the second flashblock + if tx.send(fb_cancel.clone()).await.is_err() { + // receiver channel was dropped, return. + // this will only happen if the `build_payload` function returns, + // due to payload building error or the main cancellation token being + // cancelled. + return; + } + } + _ = block_cancel.cancelled() => { + return; + } + } + } + } + }); + // Process flashblocks in a blocking loop loop { let fb_span = if span.is_none() { @@ -421,208 +482,35 @@ where }; let _entered = fb_span.enter(); - // We get token from time loop. Token from this channel means that we need to start build flashblock - // Cancellation of this token means that we need to stop building flashblock. - // If channel return None it means that we built all flashblock or parent_token got cancelled - let fb_cancel_token = - tokio::task::block_in_place(|| fb_cancel_token_rx.blocking_recv()).flatten(); - - match fb_cancel_token { - Some(cancel_token) => { - // fallback block is index 0, so we need to increment here - ctx.increment_flashblock_index(); - // We use fb_cancel_token inside context so we could exit from - // execute_best_transaction without cancelling parent token - ctx.cancel = cancel_token; - // TODO: remove this - if ctx.flashblock_index() > ctx.target_flashblock_count() { - info!( - target: "payload_builder", - target = ctx.target_flashblock_count(), - flashblock_index = ctx.flashblock_index(), - block_number = ctx.block_number(), - "Skipping flashblock reached target", - ); - continue; - } - // Continue with flashblock building - info!( + // build first flashblock immediately + match self.build_next_flashblock( + &mut ctx, + &mut info, + &mut state, + &state_provider, + &mut best_txs, + &block_cancel, + &best_payload, + &fb_span, + ) { + Ok(()) => {} + Err(err) => { + error!( target: "payload_builder", - block_number = ctx.block_number(), - flashblock_index = ctx.flashblock_index(), - target_gas = total_gas_per_batch, - gas_used = info.cumulative_gas_used, - target_da = total_da_per_batch.unwrap_or(0), - da_used = info.cumulative_da_bytes_used, - "Building flashblock", - ); - let flashblock_build_start_time = Instant::now(); - - let builder_txs = self.builder_tx.simulate_builder_txs( - &state_provider, - &mut info, - &ctx, - &mut state, - )?; - let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); - let builder_tx_da_size: u64 = - builder_txs.iter().fold(0, |acc, tx| acc + tx.da_size); - - total_gas_per_batch = total_gas_per_batch.saturating_sub(builder_tx_gas); - // saturating sub just in case, we will log an error if da_limit too small for builder_tx_da_size - if let Some(da_limit) = total_da_per_batch.as_mut() { - *da_limit = da_limit.saturating_sub(builder_tx_da_size); - } - - let best_txs_start_time = Instant::now(); - best_txs.refresh_iterator( - BestPayloadTransactions::new( - self.pool.best_transactions_with_attributes( - ctx.best_transaction_attributes(), - ), - ), + "Failed to build flashblock {}, flashblock {}: {}", + ctx.block_number(), ctx.flashblock_index(), + err ); - let transaction_pool_fetch_time = best_txs_start_time.elapsed(); - ctx.metrics - .transaction_pool_fetch_duration - .record(transaction_pool_fetch_time); - ctx.metrics - .transaction_pool_fetch_gauge - .set(transaction_pool_fetch_time); - - let tx_execution_start_time = Instant::now(); - ctx.execute_best_transactions( - &mut info, - &mut state, - &mut best_txs, - total_gas_per_batch.min(ctx.block_gas_limit()), - total_da_per_batch, - )?; - // Extract last transactions - let new_transactions = info.executed_transactions - [info.extra.last_flashblock_index..] - .to_vec() - .iter() - .map(|tx| tx.tx_hash()) - .collect::>(); - best_txs.mark_commited(new_transactions); - - // We got block cancelled, we won't need anything from the block at this point - // Caution: this assume that block cancel token only cancelled when new FCU is received - if block_cancel.is_cancelled() { - self.record_flashblocks_metrics( - &ctx, - &info, - flashblocks_per_block, - &span, - "Payload building complete, channel closed or job cancelled", - ); - return Ok(()); - } - - let payload_tx_simulation_time = tx_execution_start_time.elapsed(); - ctx.metrics - .payload_tx_simulation_duration - .record(payload_tx_simulation_time); - ctx.metrics - .payload_tx_simulation_gauge - .set(payload_tx_simulation_time); - - self.builder_tx.add_builder_txs( - &state_provider, - &mut info, - &ctx, - &mut state, - )?; - - let total_block_built_duration = Instant::now(); - let build_result = - build_block(&mut state, &ctx, &mut info, calculate_state_root); - let total_block_built_duration = total_block_built_duration.elapsed(); - ctx.metrics - .total_block_built_duration - .record(total_block_built_duration); - ctx.metrics - .total_block_built_gauge - .set(total_block_built_duration); - - // Handle build errors with match pattern - match build_result { - Err(err) => { - // Track invalid/bad block - ctx.metrics.invalid_blocks_count.increment(1); - error!(target: "payload_builder", "Failed to build block {}, flashblock {}: {}", ctx.block_number(), ctx.flashblock_index(), err); - // Signal cancellation of the block building job - block_cancel.cancel(); - // Return the error - return Err(err); - } - Ok((new_payload, mut fb_payload)) => { - fb_payload.index = ctx.flashblock_index(); - fb_payload.base = None; - - // We check that child_job got cancelled before sending flashblock. - // This will ensure consistent timing between flashblocks. - tokio::task::block_in_place(|| { - tokio::runtime::Handle::current() - .block_on(async { ctx.cancel.cancelled().await }); - }); - - // If main token got canceled in here that means we received get_payload and we should drop everything and now update best_payload - // To ensure that we will return same blocks as rollup-boost (to leverage caches) - if block_cancel.is_cancelled() { - self.record_flashblocks_metrics( - &ctx, - &info, - flashblocks_per_block, - &span, - "Payload building complete, channel closed or job cancelled", - ); - return Ok(()); - } - let flashblock_byte_size = self - .ws_pub - .publish(&fb_payload) - .map_err(PayloadBuilderError::other)?; - - // Record flashblock build duration - ctx.metrics - .flashblock_build_duration - .record(flashblock_build_start_time.elapsed()); - ctx.metrics - .flashblock_byte_size_histogram - .record(flashblock_byte_size as f64); - ctx.metrics - .flashblock_num_tx_histogram - .record(info.executed_transactions.len() as f64); - - best_payload.set(new_payload.clone()); - self.send_payload_to_engine(new_payload); - // Update bundle_state for next iteration - total_gas_per_batch += gas_per_batch; - if let Some(da_limit) = da_per_batch { - if let Some(da) = total_da_per_batch.as_mut() { - *da += da_limit; - } else { - error!( - "Builder end up in faulty invariant, if da_per_batch is set then total_da_per_batch must be set" - ); - } - } - - info!( - target: "payload_builder", - message = "Flashblock built", - flashblock_index = ctx.flashblock_index(), - current_gas = info.cumulative_gas_used, - current_da = info.cumulative_da_bytes_used, - target_flashblocks = flashblocks_per_block, - ); - } - } + return Err(err); } - None => { + } + + tokio::select! { + Some(fb_cancel) = rx.recv() => { + ctx.cancel = fb_cancel; + }, + _ = block_cancel.cancelled() => { self.record_flashblocks_metrics( &ctx, &info, @@ -636,6 +524,206 @@ where } } + #[allow(clippy::too_many_arguments)] + fn build_next_flashblock< + DB: Database + std::fmt::Debug + AsRef

, + P: StateRootProvider + HashedPostStateProvider + StorageRootProvider, + >( + &self, + ctx: &mut OpPayloadBuilderCtx, + info: &mut ExecutionInfo, + state: &mut State, + state_provider: impl reth::providers::StateProvider + Clone, + best_txs: &mut NextBestFlashblocksTxs, + block_cancel: &CancellationToken, + best_payload: &BlockCell, + span: &tracing::Span, + ) -> Result<(), PayloadBuilderError> { + // fallback block is index 0, so we need to increment here + ctx.increment_flashblock_index(); + + // TODO: remove this + if ctx.flashblock_index() > ctx.target_flashblock_count() { + info!( + target: "payload_builder", + target = ctx.target_flashblock_count(), + flashblock_index = ctx.flashblock_index(), + block_number = ctx.block_number(), + "Skipping flashblock reached target", + ); + return Ok(()); + }; + + // Continue with flashblock building + let mut target_gas_for_batch = ctx.extra_ctx.target_gas_for_batch; + let mut total_da_per_batch = ctx.extra_ctx.total_da_per_batch; + + info!( + target: "payload_builder", + block_number = ctx.block_number(), + flashblock_index = ctx.flashblock_index(), + target_gas = target_gas_for_batch, + gas_used = info.cumulative_gas_used, + target_da = total_da_per_batch.unwrap_or(0), + da_used = info.cumulative_da_bytes_used, + "Building flashblock", + ); + let flashblock_build_start_time = Instant::now(); + + let builder_txs = + self.builder_tx + .simulate_builder_txs(&state_provider, info, ctx, state)?; + + let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); + let builder_tx_da_size: u64 = builder_txs.iter().fold(0, |acc, tx| acc + tx.da_size); + target_gas_for_batch = target_gas_for_batch.saturating_sub(builder_tx_gas); + + // saturating sub just in case, we will log an error if da_limit too small for builder_tx_da_size + if let Some(da_limit) = total_da_per_batch.as_mut() { + *da_limit = da_limit.saturating_sub(builder_tx_da_size); + } + + let best_txs_start_time = Instant::now(); + best_txs.refresh_iterator( + BestPayloadTransactions::new( + self.pool + .best_transactions_with_attributes(ctx.best_transaction_attributes()), + ), + ctx.flashblock_index(), + ); + let transaction_pool_fetch_time = best_txs_start_time.elapsed(); + ctx.metrics + .transaction_pool_fetch_duration + .record(transaction_pool_fetch_time); + ctx.metrics + .transaction_pool_fetch_gauge + .set(transaction_pool_fetch_time); + + let tx_execution_start_time = Instant::now(); + ctx.execute_best_transactions( + info, + state, + best_txs, + target_gas_for_batch.min(ctx.block_gas_limit()), + total_da_per_batch, + )?; + // Extract last transactions + let new_transactions = info.executed_transactions[info.extra.last_flashblock_index..] + .to_vec() + .iter() + .map(|tx| tx.tx_hash()) + .collect::>(); + best_txs.mark_commited(new_transactions); + + // We got block cancelled, we won't need anything from the block at this point + // Caution: this assume that block cancel token only cancelled when new FCU is received + if block_cancel.is_cancelled() { + self.record_flashblocks_metrics( + ctx, + info, + ctx.target_flashblock_count(), + span, + "Payload building complete, channel closed or job cancelled", + ); + return Ok(()); + } + + let payload_tx_simulation_time = tx_execution_start_time.elapsed(); + ctx.metrics + .payload_tx_simulation_duration + .record(payload_tx_simulation_time); + ctx.metrics + .payload_tx_simulation_gauge + .set(payload_tx_simulation_time); + + self.builder_tx + .add_builder_txs(&state_provider, info, ctx, state)?; + + let total_block_built_duration = Instant::now(); + let build_result = build_block( + state, + ctx, + info, + ctx.extra_ctx.calculate_state_root || ctx.attributes().no_tx_pool, + ); + let total_block_built_duration = total_block_built_duration.elapsed(); + ctx.metrics + .total_block_built_duration + .record(total_block_built_duration); + ctx.metrics + .total_block_built_gauge + .set(total_block_built_duration); + + // Handle build errors with match pattern + match build_result { + Err(err) => { + // Track invalid/bad block + ctx.metrics.invalid_blocks_count.increment(1); + error!(target: "payload_builder", "Failed to build block {}, flashblock {}: {}", ctx.block_number(), ctx.flashblock_index(), err); + // Return the error + return Err(err); + } + Ok((new_payload, mut fb_payload)) => { + fb_payload.index = ctx.flashblock_index(); + fb_payload.base = None; + + // If main token got canceled in here that means we received get_payload and we should drop everything and now update best_payload + // To ensure that we will return same blocks as rollup-boost (to leverage caches) + if block_cancel.is_cancelled() { + self.record_flashblocks_metrics( + ctx, + info, + ctx.target_flashblock_count(), + span, + "Payload building complete, channel closed or job cancelled", + ); + return Ok(()); + } + let flashblock_byte_size = self + .ws_pub + .publish(&fb_payload) + .map_err(PayloadBuilderError::other)?; + + // Record flashblock build duration + ctx.metrics + .flashblock_build_duration + .record(flashblock_build_start_time.elapsed()); + ctx.metrics + .flashblock_byte_size_histogram + .record(flashblock_byte_size as f64); + ctx.metrics + .flashblock_num_tx_histogram + .record(info.executed_transactions.len() as f64); + + best_payload.set(new_payload.clone()); + self.send_payload_to_engine(new_payload); + // Update bundle_state for next iteration + if let Some(da_limit) = ctx.extra_ctx.da_per_batch { + if let Some(da) = total_da_per_batch.as_mut() { + *da += da_limit; + } else { + error!( + "Builder end up in faulty invariant, if da_per_batch is set then total_da_per_batch must be set" + ); + } + } + + ctx.extra_ctx.target_gas_for_batch += ctx.extra_ctx.gas_per_batch; + ctx.extra_ctx.total_da_per_batch = total_da_per_batch; + + info!( + target: "payload_builder", + message = "Flashblock built", + flashblock_index = ctx.flashblock_index(), + current_gas = info.cumulative_gas_used, + current_da = info.cumulative_da_bytes_used, + target_flashblocks = ctx.target_flashblock_count(), + ); + } + } + Ok(()) + } + /// Do some logging and metric recording when we stop build flashblocks fn record_flashblocks_metrics( &self, @@ -689,53 +777,6 @@ where } } - /// Spawn task that will send new flashblock level cancel token in steady intervals (first interval - /// may vary if --flashblocks.dynamic enabled) - pub(super) fn spawn_timer_task( - &self, - block_cancel: CancellationToken, - fb_cancel_token_tx: Sender>, - first_flashblock_offset: Duration, - ) { - let interval = self.config.specific.interval; - tokio::spawn(async move { - let cancelled: Option>>> = block_cancel - .run_until_cancelled(async { - // Create first fb interval already started - let mut timer = tokio::time::interval(first_flashblock_offset); - timer.tick().await; - let child_token = block_cancel.child_token(); - fb_cancel_token_tx - .send(Some(child_token.clone())) - .await?; - timer.tick().await; - // Time to build flashblock has ended so we cancel the token - child_token.cancel(); - // We would start using regular intervals from here on - let mut timer = tokio::time::interval(interval); - timer.tick().await; - loop { - // Initiate fb job - let child_token = block_cancel.child_token(); - debug!(target: "payload_builder", "Sending child cancel token to execution loop"); - fb_cancel_token_tx - .send(Some(child_token.clone())) - .await?; - timer.tick().await; - debug!(target: "payload_builder", "Cancelling child token to complete flashblock"); - // Cancel job once time is up - child_token.cancel(); - } - }) - .await; - if let Some(Err(err)) = cancelled { - error!(target: "payload_builder", "Timer task encountered error: {err}"); - } else { - info!(target: "payload_builder", "Building job cancelled, stopping payload building"); - } - }); - } - /// Calculate number of flashblocks. /// If dynamic is enabled this function will take time drift into the account. pub(super) fn calculate_flashblocks(&self, timestamp: u64) -> (u64, Duration) { @@ -798,6 +839,7 @@ where } } +#[async_trait::async_trait] impl PayloadBuilder for OpPayloadBuilder where Pool: PoolBounds, @@ -807,12 +849,12 @@ where type Attributes = OpPayloadBuilderAttributes; type BuiltPayload = OpBuiltPayload; - fn try_build( + async fn try_build( &self, args: BuildArguments, best_payload: BlockCell, ) -> Result<(), PayloadBuilderError> { - self.build_payload(args, best_payload) + self.build_payload(args, best_payload).await } } diff --git a/crates/op-rbuilder/src/builders/generator.rs b/crates/op-rbuilder/src/builders/generator.rs index be9bd89fe..3408751c8 100644 --- a/crates/op-rbuilder/src/builders/generator.rs +++ b/crates/op-rbuilder/src/builders/generator.rs @@ -34,6 +34,7 @@ use tracing::info; /// /// Generic parameters `Pool` and `Client` represent the transaction pool and /// Ethereum client types. +#[async_trait::async_trait] pub(super) trait PayloadBuilder: Send + Sync + Clone { /// The payload attributes type to accept for building. type Attributes: PayloadBuilderAttributes; @@ -52,7 +53,7 @@ pub(super) trait PayloadBuilder: Send + Sync + Clone { /// # Returns /// /// A `Result` indicating the build outcome or an error. - fn try_build( + async fn try_build( &self, args: BuildArguments, best_payload: BlockCell, @@ -329,7 +330,7 @@ where cancel, }; - let result = builder.try_build(args, cell); + let result = builder.try_build(args, cell).await; let _ = tx.send(result); })); } @@ -605,6 +606,7 @@ mod tests { Cancelled, } + #[async_trait::async_trait] impl PayloadBuilder for MockBuilder where N: OpPayloadPrimitives, @@ -612,7 +614,7 @@ mod tests { type Attributes = OpPayloadBuilderAttributes; type BuiltPayload = MockPayload; - fn try_build( + async fn try_build( &self, args: BuildArguments, _best_payload: BlockCell, From fa9924e2fff889862b968e76cacf9f284f9f6e37 Mon Sep 17 00:00:00 2001 From: Ash Kunda <18058966+akundaz@users.noreply.github.com> Date: Wed, 17 Sep 2025 18:05:08 -0400 Subject: [PATCH 20/54] fix: check per-address gas limit before checking if the tx reverted (#266) --- crates/op-rbuilder/src/builders/context.rs | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index 95cb85793..9604ced71 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -460,6 +460,21 @@ impl OpPayloadBuilderCtx { .record(tx_simulation_start_time.elapsed()); self.metrics.tx_byte_size.record(tx.inner().size() as f64); num_txs_simulated += 1; + + // Run the per-address gas limiting before checking if the tx has + // reverted or not, as this is a check against maliciously searchers + // sending txs that are expensive to compute but always revert. + let gas_used = result.gas_used(); + if self + .address_gas_limiter + .consume_gas(tx.signer(), gas_used) + .is_err() + { + log_txn(TxnExecutionResult::MaxGasUsageExceeded); + best_txs.mark_invalid(tx.signer(), tx.nonce()); + continue; + } + if result.is_success() { log_txn(TxnExecutionResult::Success); num_txs_simulated_success += 1; @@ -480,7 +495,6 @@ impl OpPayloadBuilderCtx { // add gas used by the transaction to cumulative gas used, before creating the // receipt - let gas_used = result.gas_used(); if let Some(max_gas_per_txn) = self.max_gas_per_txn { if gas_used > max_gas_per_txn { log_txn(TxnExecutionResult::MaxGasUsageExceeded); @@ -489,16 +503,6 @@ impl OpPayloadBuilderCtx { } } - if self - .address_gas_limiter - .consume_gas(tx.signer(), gas_used) - .is_err() - { - log_txn(TxnExecutionResult::MaxGasUsageExceeded); - best_txs.mark_invalid(tx.signer(), tx.nonce()); - continue; - } - info.cumulative_gas_used += gas_used; // record tx da size info.cumulative_da_bytes_used += tx_da_size; From e1893d78ca0ceb36b886e902137c07a1c091c652 Mon Sep 17 00:00:00 2001 From: shana Date: Fri, 19 Sep 2025 13:40:45 -0700 Subject: [PATCH 21/54] Add support for flashblocks number contract builder tx (#256) * Refactor payload builder to accept generic builder tx * Update crates/op-rbuilder/src/builders/builder_tx.rs Co-authored-by: Solar Mithril * Update crates/op-rbuilder/src/builders/builder_tx.rs Co-authored-by: Solar Mithril * Update crates/op-rbuilder/src/builders/builder_tx.rs Co-authored-by: Solar Mithril * Add support for flashblocks number contract builder tx * add docs * add builder tx to fallback block * fallback to legacy builder tx * allow top or bottom of block builder tx --------- Co-authored-by: Solar Mithril --- README.md | 16 + crates/op-rbuilder/src/args/op.rs | 11 + crates/op-rbuilder/src/builders/builder_tx.rs | 147 +++++++- .../src/builders/flashblocks/builder_tx.rs | 324 ++++++++++++++---- .../src/builders/flashblocks/config.rs | 12 + .../src/builders/flashblocks/payload.rs | 39 ++- .../src/builders/flashblocks/service.rs | 30 +- .../src/builders/standard/builder_tx.rs | 94 +---- .../src/builders/standard/payload.rs | 5 +- .../src/flashtestations/service.rs | 1 + crates/op-rbuilder/src/tests/flashblocks.rs | 10 + 11 files changed, 504 insertions(+), 185 deletions(-) diff --git a/README.md b/README.md index 105db0739..333e19720 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,22 @@ cargo run -p op-rbuilder --bin op-rbuilder -- node \ --flashblocks.addr 127.0.0.1 # address to bind the ws that provides flashblocks ``` +#### Flashblocks Number Contract + +To enable builder tranctions to the [flashblocks number contract](https://github.com/Uniswap/flashblocks_number_contract) for contracts to integrate with flashblocks onchain, specify the address in the CLI args: + +```bash +cargo run -p op-rbuilder --bin op-rbuilder -- node \ + --chain /path/to/chain-config.json \ + --http \ + --authrpc.port 9551 \ + --authrpc.jwtsecret /path/to/jwt.hex \ + --flashblocks.enabled \ + --flashblocks.number-contract-address 0xFlashblocksNumberAddress +``` + +This will increment the flashblock number before the start of every flashblock and replace the builder tx at the end of the block. + ### Flashtestations To run op-rbuilder with flashtestations: diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 760249b5a..bd860f155 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -8,6 +8,7 @@ use crate::{ flashtestations::args::FlashtestationsArgs, gas_limiter::args::GasLimiterArgs, tx_signer::Signer, }; +use alloy_primitives::Address; use anyhow::{Result, anyhow}; use clap::Parser; use reth_optimism_cli::commands::Commands; @@ -155,6 +156,16 @@ pub struct FlashblocksArgs { env = "FLASHBLOCKS_CALCULATE_STATE_ROOT" )] pub flashblocks_calculate_state_root: bool, + + /// Flashblocks number contract address + /// + /// This is the address of the contract that will be used to increment the flashblock number. + /// If set a builder tx will be added to the start of every flashblock instead of the regular builder tx. + #[arg( + long = "flashblocks.number-contract-address", + env = "FLASHBLOCK_NUMBER_CONTRACT_ADDRESS" + )] + pub flashblocks_number_contract_address: Option

, } impl Default for FlashblocksArgs { diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index 8ff168b14..b79200d4e 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -1,9 +1,12 @@ +use alloy_consensus::TxEip1559; +use alloy_eips::{Encodable2718, eip7623::TOTAL_COST_FLOOR_PER_TOKEN}; use alloy_evm::Database; use alloy_primitives::{ - Address, + Address, TxKind, map::foldhash::{HashSet, HashSetExt}, }; use core::fmt::Debug; +use op_alloy_consensus::OpTypedTransaction; use op_revm::OpTransactionError; use reth_evm::{ConfigureEvm, Evm, eth::receipt_builder::ReceiptBuilderCtx}; use reth_node_api::PayloadBuilderError; @@ -19,13 +22,15 @@ use revm::{ }; use tracing::warn; -use crate::{builders::context::OpPayloadBuilderCtx, primitives::reth::ExecutionInfo}; +use crate::{ + builders::context::OpPayloadBuilderCtx, primitives::reth::ExecutionInfo, tx_signer::Signer, +}; #[derive(Debug, Clone)] pub struct BuilderTransactionCtx { pub gas_used: u64, pub da_size: u64, - pub signed_tx: Recovered, + pub signed_tx: Option>, } /// Possible error variants during construction of builder txs. @@ -75,6 +80,7 @@ pub trait BuilderTransactions: Debug { info: &mut ExecutionInfo, ctx: &OpPayloadBuilderCtx, db: &mut State, + top_of_block: bool, ) -> Result, BuilderTransactionError>; fn add_builder_txs( @@ -83,6 +89,7 @@ pub trait BuilderTransactions: Debug { info: &mut ExecutionInfo, builder_ctx: &OpPayloadBuilderCtx, db: &mut State, + top_of_block: bool, ) -> Result, BuilderTransactionError> { { let mut evm = builder_ctx @@ -91,21 +98,30 @@ pub trait BuilderTransactions: Debug { let mut invalid: HashSet
= HashSet::new(); - let builder_txs = - self.simulate_builder_txs(state_provider, info, builder_ctx, evm.db_mut())?; + let builder_txs = self.simulate_builder_txs( + state_provider, + info, + builder_ctx, + evm.db_mut(), + top_of_block, + )?; for builder_tx in builder_txs.iter() { - if invalid.contains(&builder_tx.signed_tx.signer()) { - warn!(target: "payload_builder", tx_hash = ?builder_tx.signed_tx.tx_hash(), "builder signer invalid as previous builder tx reverted"); + let signed_tx = match builder_tx.signed_tx.clone() { + Some(tx) => tx, + None => continue, + }; + if invalid.contains(&signed_tx.signer()) { + warn!(target: "payload_builder", tx_hash = ?signed_tx.tx_hash(), "builder signer invalid as previous builder tx reverted"); continue; } let ResultAndState { result, state } = evm - .transact(&builder_tx.signed_tx) + .transact(&signed_tx) .map_err(|err| BuilderTransactionError::EvmExecutionError(Box::new(err)))?; if !result.is_success() { - warn!(target: "payload_builder", tx_hash = ?builder_tx.signed_tx.tx_hash(), "builder tx reverted"); - invalid.insert(builder_tx.signed_tx.signer()); + warn!(target: "payload_builder", tx_hash = ?signed_tx.tx_hash(), "builder tx reverted"); + invalid.insert(signed_tx.signer()); continue; } @@ -114,7 +130,7 @@ pub trait BuilderTransactions: Debug { info.cumulative_gas_used += gas_used; let ctx = ReceiptBuilderCtx { - tx: builder_tx.signed_tx.inner(), + tx: signed_tx.inner(), evm: &evm, result, state: &state, @@ -126,9 +142,9 @@ pub trait BuilderTransactions: Debug { evm.db_mut().commit(state); // Append sender and transaction to the respective lists - info.executed_senders.push(builder_tx.signed_tx.signer()); + info.executed_senders.push(signed_tx.signer()); info.executed_transactions - .push(builder_tx.signed_tx.clone().into_inner()); + .push(signed_tx.clone().into_inner()); } // Release the db reference by dropping evm @@ -148,7 +164,7 @@ pub trait BuilderTransactions: Debug { let state = StateProviderDatabase::new(state_provider.clone()); let mut simulation_state = State::builder() .with_database(state) - .with_bundle_prestate(db.bundle_state.clone()) + .with_cached_prestate(db.cache.clone()) .with_bundle_update() .build(); let mut evm = ctx @@ -156,8 +172,12 @@ pub trait BuilderTransactions: Debug { .evm_with_env(&mut simulation_state, ctx.evm_env.clone()); for builder_tx in builder_txs { + let signed_tx = match builder_tx.signed_tx.clone() { + Some(tx) => tx, + None => continue, + }; let ResultAndState { state, .. } = evm - .transact(&builder_tx.signed_tx) + .transact(&signed_tx) .map_err(|err| BuilderTransactionError::EvmExecutionError(Box::new(err)))?; evm.db_mut().commit(state); @@ -167,3 +187,100 @@ pub trait BuilderTransactions: Debug { Ok(simulation_state) } } + +#[derive(Debug, Clone)] +pub(super) struct BuilderTxBase { + pub signer: Option, +} + +impl BuilderTxBase { + pub(super) fn new(signer: Option) -> Self { + Self { signer } + } + + pub(super) fn simulate_builder_tx( + &self, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + ) -> Result, BuilderTransactionError> { + match self.signer { + Some(signer) => { + let message: Vec = format!("Block Number: {}", ctx.block_number()).into_bytes(); + let gas_used = self.estimate_builder_tx_gas(&message); + let signed_tx = self.signed_builder_tx(ctx, db, signer, gas_used, message)?; + let da_size = op_alloy_flz::tx_estimated_size_fjord_bytes( + signed_tx.encoded_2718().as_slice(), + ); + Ok(Some(BuilderTransactionCtx { + gas_used, + da_size, + signed_tx: Some(signed_tx), + })) + } + None => Ok(None), + } + } + + fn estimate_builder_tx_gas(&self, input: &[u8]) -> u64 { + // Count zero and non-zero bytes + let (zero_bytes, nonzero_bytes) = input.iter().fold((0, 0), |(zeros, nonzeros), &byte| { + if byte == 0 { + (zeros + 1, nonzeros) + } else { + (zeros, nonzeros + 1) + } + }); + + // Calculate gas cost (4 gas per zero byte, 16 gas per non-zero byte) + let zero_cost = zero_bytes * 4; + let nonzero_cost = nonzero_bytes * 16; + + // Tx gas should be not less than floor gas https://eips.ethereum.org/EIPS/eip-7623 + let tokens_in_calldata = zero_bytes + nonzero_bytes * 4; + let floor_gas = 21_000 + tokens_in_calldata * TOTAL_COST_FLOOR_PER_TOKEN; + + std::cmp::max(zero_cost + nonzero_cost + 21_000, floor_gas) + } + + fn signed_builder_tx( + &self, + ctx: &OpPayloadBuilderCtx, + db: &mut State, + signer: Signer, + gas_used: u64, + message: Vec, + ) -> Result, BuilderTransactionError> { + let nonce = db + .load_cache_account(signer.address) + .map(|acc| acc.account_info().unwrap_or_default().nonce) + .map_err(|_| BuilderTransactionError::AccountLoadFailed(signer.address))?; + + // Create the EIP-1559 transaction + let tx = OpTypedTransaction::Eip1559(TxEip1559 { + chain_id: ctx.chain_id(), + nonce, + gas_limit: gas_used, + max_fee_per_gas: ctx.base_fee().into(), + max_priority_fee_per_gas: 0, + to: TxKind::Call(Address::ZERO), + // Include the message as part of the transaction data + input: message.into(), + ..Default::default() + }); + // Sign the transaction + let builder_tx = signer + .sign_tx(tx) + .map_err(BuilderTransactionError::SigningError)?; + + Ok(builder_tx) + } +} + +pub(super) fn get_nonce( + db: &mut State, + address: Address, +) -> Result { + db.load_cache_account(address) + .map(|acc| acc.account_info().unwrap_or_default().nonce) + .map_err(|_| BuilderTransactionError::AccountLoadFailed(address)) +} diff --git a/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs b/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs index be29e6aaa..3445bb2e5 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs @@ -1,28 +1,98 @@ use alloy_consensus::TxEip1559; -use alloy_eips::{Encodable2718, eip7623::TOTAL_COST_FLOOR_PER_TOKEN}; -use alloy_evm::Database; -use alloy_primitives::{Address, TxKind}; +use alloy_eips::Encodable2718; +use alloy_evm::{Database, Evm}; +use alloy_op_evm::OpEvm; +use alloy_primitives::{Address, Bytes, TxKind, U256}; +use alloy_sol_types::{SolCall, SolError, sol}; use core::fmt::Debug; use op_alloy_consensus::OpTypedTransaction; +use op_revm::OpHaltReason; +use reth_evm::{ConfigureEvm, precompiles::PrecompilesMap}; use reth_optimism_primitives::OpTransactionSigned; use reth_primitives::Recovered; use reth_provider::StateProvider; -use reth_revm::State; +use reth_revm::{State, database::StateProviderDatabase}; +use revm::{ + context::result::{ExecutionResult, ResultAndState}, + inspector::NoOpInspector, +}; +use tracing::warn; use crate::{ builders::{ BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions, - context::OpPayloadBuilderCtx, flashblocks::payload::FlashblocksExtraCtx, + builder_tx::{BuilderTxBase, get_nonce}, + context::OpPayloadBuilderCtx, + flashblocks::payload::FlashblocksExtraCtx, }, flashtestations::service::FlashtestationsBuilderTx, primitives::reth::ExecutionInfo, tx_signer::Signer, }; +sol!( + // From https://github.com/Uniswap/flashblocks_number_contract/blob/main/src/FlashblockNumber.sol + #[sol(rpc, abi)] + interface IFlashblockNumber { + function incrementFlashblockNumber() external; + } + + // @notice Emitted when flashblock index is incremented + // @param newFlashblockIndex The new flashblock index (0-indexed within each L2 block) + event FlashblockIncremented(uint256 newFlashblockIndex); + + /// ----------------------------------------------------------------------- + /// Errors + /// ----------------------------------------------------------------------- + error NonBuilderAddress(address addr); + error MismatchedFlashblockNumber(uint256 expectedFlashblockNumber, uint256 actualFlashblockNumber); +); + +#[derive(Debug, thiserror::Error)] +pub(super) enum FlashblockNumberError { + #[error("non builder address: {0}")] + NonBuilderAddress(Address), + #[error("mismatched flashblock number: expected {0}, actual {1}")] + MismatchedFlashblockNumber(U256, U256), + #[error("unknown revert: {0}")] + Unknown(String), + #[error("halt: {0:?}")] + Halt(OpHaltReason), +} + +impl From for FlashblockNumberError { + fn from(value: Bytes) -> Self { + // Empty revert + if value.is_empty() { + return FlashblockNumberError::Unknown( + "Transaction reverted without reason".to_string(), + ); + } + + // Try to decode each custom error type + if let Ok(NonBuilderAddress { addr }) = NonBuilderAddress::abi_decode(&value) { + return FlashblockNumberError::NonBuilderAddress(addr); + } + + if let Ok(MismatchedFlashblockNumber { + expectedFlashblockNumber, + actualFlashblockNumber, + }) = MismatchedFlashblockNumber::abi_decode(&value) + { + return FlashblockNumberError::MismatchedFlashblockNumber( + expectedFlashblockNumber, + actualFlashblockNumber, + ); + } + + FlashblockNumberError::Unknown(hex::encode(value)) + } +} + // This will be the end of block transaction of a regular block #[derive(Debug, Clone)] pub(super) struct FlashblocksBuilderTx { - pub signer: Option, + pub base_builder_tx: BuilderTxBase, pub flashtestations_builder_tx: Option, } @@ -31,126 +101,242 @@ impl FlashblocksBuilderTx { signer: Option, flashtestations_builder_tx: Option, ) -> Self { + let base_builder_tx = BuilderTxBase::new(signer); Self { - signer, + base_builder_tx, flashtestations_builder_tx, } } +} - pub(super) fn simulate_builder_tx( +impl BuilderTransactions for FlashblocksBuilderTx { + fn simulate_builder_txs( &self, - ctx: &OpPayloadBuilderCtx, + state_provider: impl StateProvider + Clone, + info: &mut ExecutionInfo, + ctx: &OpPayloadBuilderCtx, db: &mut State, - ) -> Result, BuilderTransactionError> { - match self.signer { - Some(signer) => { - let message: Vec = format!("Block Number: {}", ctx.block_number()).into_bytes(); - let gas_used = self.estimate_builder_tx_gas(&message); - let signed_tx = self.signed_builder_tx(ctx, db, signer, gas_used, message)?; - let da_size = op_alloy_flz::tx_estimated_size_fjord_bytes( - signed_tx.encoded_2718().as_slice(), - ); - Ok(Some(BuilderTransactionCtx { - gas_used, - da_size, - signed_tx, - })) + top_of_block: bool, + ) -> Result, BuilderTransactionError> { + let mut builder_txs = Vec::::new(); + + if ctx.is_first_flashblock() { + let flashblocks_builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; + builder_txs.extend(flashblocks_builder_tx.clone()); + } + + if ctx.is_last_flashblock() { + let flashblocks_builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; + if let Some(tx) = flashblocks_builder_tx.clone() { + if top_of_block { + // don't commit the builder if top of block, we only return the gas used to reserve gas for the builder tx + builder_txs.push(BuilderTransactionCtx { + gas_used: tx.gas_used, + da_size: tx.da_size, + signed_tx: None, + }); + } else { + builder_txs.push(tx); + } + } + if let Some(flashtestations_builder_tx) = &self.flashtestations_builder_tx { + // We only include flashtestations txs in the last flashblock + let mut simulation_state = self.simulate_builder_txs_state::( + state_provider.clone(), + flashblocks_builder_tx.iter().collect(), + ctx, + db, + )?; + let flashtestations_builder_txs = flashtestations_builder_tx.simulate_builder_txs( + state_provider, + info, + ctx, + &mut simulation_state, + top_of_block, + )?; + builder_txs.extend(flashtestations_builder_txs); } - None => Ok(None), } + Ok(builder_txs) } +} - fn estimate_builder_tx_gas(&self, input: &[u8]) -> u64 { - // Count zero and non-zero bytes - let (zero_bytes, nonzero_bytes) = input.iter().fold((0, 0), |(zeros, nonzeros), &byte| { - if byte == 0 { - (zeros + 1, nonzeros) - } else { - (zeros, nonzeros + 1) - } - }); +// This will be the end of block transaction of a regular block +#[derive(Debug, Clone)] +pub(super) struct FlashblocksNumberBuilderTx { + pub signer: Option, + pub flashblock_number_address: Address, + pub base_builder_tx: BuilderTxBase, + pub flashtestations_builder_tx: Option, +} - // Calculate gas cost (4 gas per zero byte, 16 gas per non-zero byte) - let zero_cost = zero_bytes * 4; - let nonzero_cost = nonzero_bytes * 16; +impl FlashblocksNumberBuilderTx { + pub(super) fn new( + signer: Option, + flashblock_number_address: Address, + flashtestations_builder_tx: Option, + ) -> Self { + let base_builder_tx = BuilderTxBase::new(signer); + Self { + signer, + flashblock_number_address, + base_builder_tx, + flashtestations_builder_tx, + } + } - // Tx gas should be not less than floor gas https://eips.ethereum.org/EIPS/eip-7623 - let tokens_in_calldata = zero_bytes + nonzero_bytes * 4; - let floor_gas = 21_000 + tokens_in_calldata * TOTAL_COST_FLOOR_PER_TOKEN; + fn estimate_flashblock_number_tx_gas( + &self, + ctx: &OpPayloadBuilderCtx, + evm: &mut OpEvm< + State>, + NoOpInspector, + PrecompilesMap, + >, + signer: &Signer, + nonce: u64, + ) -> Result { + let tx = self.signed_flashblock_number_tx(ctx, ctx.block_gas_limit(), nonce, signer)?; + let ResultAndState { result, .. } = match evm.transact(&tx) { + Ok(res) => res, + Err(err) => { + return Err(BuilderTransactionError::EvmExecutionError(Box::new(err))); + } + }; - std::cmp::max(zero_cost + nonzero_cost + 21_000, floor_gas) + match result { + ExecutionResult::Success { gas_used, .. } => Ok(gas_used), + ExecutionResult::Revert { output, .. } => Err(BuilderTransactionError::Other( + Box::new(FlashblockNumberError::from(output)), + )), + ExecutionResult::Halt { reason, .. } => Err(BuilderTransactionError::Other(Box::new( + FlashblockNumberError::Halt(reason), + ))), + } } - fn signed_builder_tx( + fn signed_flashblock_number_tx( &self, - ctx: &OpPayloadBuilderCtx, - db: &mut State, - signer: Signer, - gas_used: u64, - message: Vec, - ) -> Result, BuilderTransactionError> { - let nonce = db - .load_cache_account(signer.address) - .map(|acc| acc.account_info().unwrap_or_default().nonce) - .map_err(|_| BuilderTransactionError::AccountLoadFailed(signer.address))?; - + ctx: &OpPayloadBuilderCtx, + gas_limit: u64, + nonce: u64, + signer: &Signer, + ) -> Result, secp256k1::Error> { + let calldata = IFlashblockNumber::incrementFlashblockNumberCall {}.abi_encode(); // Create the EIP-1559 transaction let tx = OpTypedTransaction::Eip1559(TxEip1559 { chain_id: ctx.chain_id(), nonce, - gas_limit: gas_used, + gas_limit, max_fee_per_gas: ctx.base_fee().into(), max_priority_fee_per_gas: 0, - to: TxKind::Call(Address::ZERO), - // Include the message as part of the transaction data - input: message.into(), + to: TxKind::Call(self.flashblock_number_address), + input: calldata.into(), ..Default::default() }); - // Sign the transaction - let builder_tx = signer - .sign_tx(tx) - .map_err(BuilderTransactionError::SigningError)?; - - Ok(builder_tx) + signer.sign_tx(tx) } } -impl BuilderTransactions for FlashblocksBuilderTx { +impl BuilderTransactions for FlashblocksNumberBuilderTx { fn simulate_builder_txs( &self, state_provider: impl StateProvider + Clone, info: &mut ExecutionInfo, ctx: &OpPayloadBuilderCtx, db: &mut State, + top_of_block: bool, ) -> Result, BuilderTransactionError> { let mut builder_txs = Vec::::new(); + let state = StateProviderDatabase::new(state_provider.clone()); + let simulation_state = State::builder() + .with_database(state) + .with_cached_prestate(db.cache.clone()) + .with_bundle_update() + .build(); if ctx.is_first_flashblock() { - let flashblocks_builder_tx = self.simulate_builder_tx(ctx, db)?; + let flashblocks_builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; builder_txs.extend(flashblocks_builder_tx.clone()); + } else { + // we increment the flashblock number for the next flashblock so we don't increment in the last flashblock + if let Some(signer) = &self.signer { + let mut evm = ctx + .evm_config + .evm_with_env(simulation_state, ctx.evm_env.clone()); + evm.modify_cfg(|cfg| { + cfg.disable_balance_check = true; + }); + + let nonce = get_nonce(evm.db_mut(), signer.address)?; + + let tx = match self.estimate_flashblock_number_tx_gas(ctx, &mut evm, signer, nonce) + { + Ok(gas_used) => { + // Due to EIP-150, 63/64 of available gas is forwarded to external calls so need to add a buffer + let flashblocks_tx = self.signed_flashblock_number_tx( + ctx, + gas_used * 64 / 63, + nonce, + signer, + )?; + + let da_size = op_alloy_flz::tx_estimated_size_fjord_bytes( + flashblocks_tx.encoded_2718().as_slice(), + ); + Some(BuilderTransactionCtx { + gas_used, + da_size, + signed_tx: if top_of_block { + Some(flashblocks_tx) + } else { + None + }, // number tx at top of flashblock + }) + } + Err(e) => { + warn!(target: "builder_tx", error = ?e, "Flashblocks number contract tx simulation failed, defaulting to fallback builder tx"); + let builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; + if let Some(tx) = &builder_tx + && top_of_block + { + // don't commit the builder if top of block, we only return the gas used to reserve gas for the builder tx + Some(BuilderTransactionCtx { + gas_used: tx.gas_used, + da_size: tx.da_size, + signed_tx: None, + }) + } else { + builder_tx + } + } + }; + + builder_txs.extend(tx); + } } if ctx.is_last_flashblock() { - let flashblocks_builder_tx = self.simulate_builder_tx(ctx, db)?; - builder_txs.extend(flashblocks_builder_tx.clone()); if let Some(flashtestations_builder_tx) = &self.flashtestations_builder_tx { - // We only include flashtestations txs in the last flashblock - + let flashblocks_builder_txs = builder_txs.clone(); let mut simulation_state = self.simulate_builder_txs_state::( state_provider.clone(), - flashblocks_builder_tx.iter().collect(), + flashblocks_builder_txs.iter().collect(), ctx, db, )?; + // We only include flashtestations txs in the last flashblock let flashtestations_builder_txs = flashtestations_builder_tx.simulate_builder_txs( state_provider, info, ctx, &mut simulation_state, + top_of_block, )?; builder_txs.extend(flashtestations_builder_txs); } } + Ok(builder_txs) } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/config.rs b/crates/op-rbuilder/src/builders/flashblocks/config.rs index c852a3547..f2dca7759 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/config.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/config.rs @@ -1,3 +1,5 @@ +use alloy_primitives::Address; + use crate::{args::OpRbuilderArgs, builders::BuilderConfig}; use core::{ net::{Ipv4Addr, SocketAddr}, @@ -31,6 +33,11 @@ pub struct FlashblocksConfig { /// Should we calculate state root for each flashblock pub calculate_state_root: bool, + + /// The address of the flashblocks number contract. + /// + /// If set a builder tx will be added to the start of every flashblock instead of the regular builder tx. + pub flashblocks_number_contract_address: Option
, } impl Default for FlashblocksConfig { @@ -41,6 +48,7 @@ impl Default for FlashblocksConfig { leeway_time: Duration::from_millis(50), fixed: false, calculate_state_root: true, + flashblocks_number_contract_address: None, } } } @@ -62,12 +70,16 @@ impl TryFrom for FlashblocksConfig { let calculate_state_root = args.flashblocks.flashblocks_calculate_state_root; + let flashblocks_number_contract_address = + args.flashblocks.flashblocks_number_contract_address; + Ok(Self { ws_addr, interval, leeway_time, fixed, calculate_state_root, + flashblocks_number_contract_address, }) } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 05228f829..ae11a6da6 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -322,8 +322,19 @@ where let builder_txs = if ctx.attributes().no_tx_pool { vec![] } else { - self.builder_tx - .add_builder_txs(&state_provider, &mut info, &ctx, &mut state)? + match self.builder_tx.add_builder_txs( + &state_provider, + &mut info, + &ctx, + &mut state, + true, + ) { + Ok(builder_txs) => builder_txs, + Err(e) => { + error!(target: "payload_builder", "Error adding builder txs to fallback block: {}", e); + vec![] + } + } }; // We subtract gas limit and da limit for builder transaction from the whole limit @@ -571,8 +582,16 @@ where let flashblock_build_start_time = Instant::now(); let builder_txs = - self.builder_tx - .simulate_builder_txs(&state_provider, info, ctx, state)?; + match self + .builder_tx + .add_builder_txs(&state_provider, info, ctx, state, true) + { + Ok(builder_txs) => builder_txs, + Err(e) => { + error!(target: "payload_builder", "Error simulating builder txs: {}", e); + vec![] + } + }; let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); let builder_tx_da_size: u64 = builder_txs.iter().fold(0, |acc, tx| acc + tx.da_size); @@ -636,8 +655,16 @@ where .payload_tx_simulation_gauge .set(payload_tx_simulation_time); - self.builder_tx - .add_builder_txs(&state_provider, info, ctx, state)?; + match self + .builder_tx + .add_builder_txs(&state_provider, info, ctx, state, false) + { + Ok(builder_txs) => builder_txs, + Err(e) => { + error!(target: "payload_builder", "Error simulating builder txs: {}", e); + vec![] + } + }; let total_block_built_duration = Instant::now(); let build_result = build_block( diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index a8b4d3ba2..46ee8ae88 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -3,7 +3,10 @@ use crate::{ builders::{ BuilderConfig, builder_tx::BuilderTransactions, - flashblocks::{builder_tx::FlashblocksBuilderTx, payload::FlashblocksExtraCtx}, + flashblocks::{ + builder_tx::{FlashblocksBuilderTx, FlashblocksNumberBuilderTx}, + payload::FlashblocksExtraCtx, + }, generator::BlockPayloadJobGenerator, }, flashtestations::service::bootstrap_flashtestations, @@ -92,10 +95,25 @@ where } else { None }; - self.spawn_payload_builder_service( - ctx, - pool, - FlashblocksBuilderTx::new(signer, flashtestations_builder_tx), - ) + + if let Some(flashblocks_number_contract_address) = + self.0.specific.flashblocks_number_contract_address + { + self.spawn_payload_builder_service( + ctx, + pool, + FlashblocksNumberBuilderTx::new( + signer, + flashblocks_number_contract_address, + flashtestations_builder_tx, + ), + ) + } else { + self.spawn_payload_builder_service( + ctx, + pool, + FlashblocksBuilderTx::new(signer, flashtestations_builder_tx), + ) + } } } diff --git a/crates/op-rbuilder/src/builders/standard/builder_tx.rs b/crates/op-rbuilder/src/builders/standard/builder_tx.rs index 23c39f3c8..c4d154f63 100644 --- a/crates/op-rbuilder/src/builders/standard/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/standard/builder_tx.rs @@ -1,18 +1,12 @@ -use alloy_consensus::TxEip1559; -use alloy_eips::{Encodable2718, eip7623::TOTAL_COST_FLOOR_PER_TOKEN}; use alloy_evm::Database; -use alloy_primitives::{Address, TxKind}; use core::fmt::Debug; -use op_alloy_consensus::OpTypedTransaction; -use reth_optimism_primitives::OpTransactionSigned; -use reth_primitives::Recovered; use reth_provider::StateProvider; use reth_revm::State; use crate::{ builders::{ BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions, - context::OpPayloadBuilderCtx, + builder_tx::BuilderTxBase, context::OpPayloadBuilderCtx, }, flashtestations::service::FlashtestationsBuilderTx, primitives::reth::ExecutionInfo, @@ -22,7 +16,7 @@ use crate::{ // This will be the end of block transaction of a regular block #[derive(Debug, Clone)] pub(super) struct StandardBuilderTx { - pub signer: Option, + pub base_builder_tx: BuilderTxBase, pub flashtestations_builder_tx: Option, } @@ -31,88 +25,12 @@ impl StandardBuilderTx { signer: Option, flashtestations_builder_tx: Option, ) -> Self { + let base_builder_tx = BuilderTxBase::new(signer); Self { - signer, + base_builder_tx, flashtestations_builder_tx, } } - - pub(super) fn simulate_builder_tx( - &self, - ctx: &OpPayloadBuilderCtx, - db: &mut State, - ) -> Result, BuilderTransactionError> { - match self.signer { - Some(signer) => { - let message: Vec = format!("Block Number: {}", ctx.block_number()).into_bytes(); - let gas_used = self.estimate_builder_tx_gas(&message); - let signed_tx = self.signed_builder_tx(ctx, db, signer, gas_used, message)?; - let da_size = op_alloy_flz::tx_estimated_size_fjord_bytes( - signed_tx.encoded_2718().as_slice(), - ); - Ok(Some(BuilderTransactionCtx { - gas_used, - da_size, - signed_tx, - })) - } - None => Ok(None), - } - } - - fn estimate_builder_tx_gas(&self, input: &[u8]) -> u64 { - // Count zero and non-zero bytes - let (zero_bytes, nonzero_bytes) = input.iter().fold((0, 0), |(zeros, nonzeros), &byte| { - if byte == 0 { - (zeros + 1, nonzeros) - } else { - (zeros, nonzeros + 1) - } - }); - - // Calculate gas cost (4 gas per zero byte, 16 gas per non-zero byte) - let zero_cost = zero_bytes * 4; - let nonzero_cost = nonzero_bytes * 16; - - // Tx gas should be not less than floor gas https://eips.ethereum.org/EIPS/eip-7623 - let tokens_in_calldata = zero_bytes + nonzero_bytes * 4; - let floor_gas = 21_000 + tokens_in_calldata * TOTAL_COST_FLOOR_PER_TOKEN; - - std::cmp::max(zero_cost + nonzero_cost + 21_000, floor_gas) - } - - fn signed_builder_tx( - &self, - ctx: &OpPayloadBuilderCtx, - db: &mut State, - signer: Signer, - gas_used: u64, - message: Vec, - ) -> Result, BuilderTransactionError> { - let nonce = db - .load_cache_account(signer.address) - .map(|acc| acc.account_info().unwrap_or_default().nonce) - .map_err(|_| BuilderTransactionError::AccountLoadFailed(signer.address))?; - - // Create the EIP-1559 transaction - let tx = OpTypedTransaction::Eip1559(TxEip1559 { - chain_id: ctx.chain_id(), - nonce, - gas_limit: gas_used, - max_fee_per_gas: ctx.base_fee().into(), - max_priority_fee_per_gas: 0, - to: TxKind::Call(Address::ZERO), - // Include the message as part of the transaction data - input: message.into(), - ..Default::default() - }); - // Sign the transaction - let builder_tx = signer - .sign_tx(tx) - .map_err(BuilderTransactionError::SigningError)?; - - Ok(builder_tx) - } } impl BuilderTransactions for StandardBuilderTx { @@ -122,9 +40,10 @@ impl BuilderTransactions for StandardBuilderTx { info: &mut ExecutionInfo, ctx: &OpPayloadBuilderCtx, db: &mut State, + top_of_block: bool, ) -> Result, BuilderTransactionError> { let mut builder_txs = Vec::::new(); - let standard_builder_tx = self.simulate_builder_tx(ctx, db)?; + let standard_builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; builder_txs.extend(standard_builder_tx.clone()); if let Some(flashtestations_builder_tx) = &self.flashtestations_builder_tx { let mut simulation_state = self.simulate_builder_txs_state::<()>( @@ -138,6 +57,7 @@ impl BuilderTransactions for StandardBuilderTx { info, ctx, &mut simulation_state, + top_of_block, )?; builder_txs.extend(flashtestations_builder_txs); } diff --git a/crates/op-rbuilder/src/builders/standard/payload.rs b/crates/op-rbuilder/src/builders/standard/payload.rs index 52acef4b7..c510a8ba9 100644 --- a/crates/op-rbuilder/src/builders/standard/payload.rs +++ b/crates/op-rbuilder/src/builders/standard/payload.rs @@ -347,7 +347,8 @@ impl OpBuilder<'_, Txs> { // 4. if mem pool transactions are requested we execute them // gas reserved for builder tx - let builder_txs = builder_tx.simulate_builder_txs(&state_provider, &mut info, ctx, db)?; + let builder_txs = + builder_tx.simulate_builder_txs(&state_provider, &mut info, ctx, db, true)?; let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); let block_gas_limit = ctx.block_gas_limit().saturating_sub(builder_tx_gas); if block_gas_limit == 0 { @@ -394,7 +395,7 @@ impl OpBuilder<'_, Txs> { } // Add builder tx to the block - builder_tx.add_builder_txs(&state_provider, &mut info, ctx, db)?; + builder_tx.add_builder_txs(&state_provider, &mut info, ctx, db, false)?; let state_merge_start_time = Instant::now(); diff --git a/crates/op-rbuilder/src/flashtestations/service.rs b/crates/op-rbuilder/src/flashtestations/service.rs index ffcd22767..71dbca86c 100644 --- a/crates/op-rbuilder/src/flashtestations/service.rs +++ b/crates/op-rbuilder/src/flashtestations/service.rs @@ -101,6 +101,7 @@ impl BuilderTransactions for Flashtestation _info: &mut ExecutionInfo, _ctx: &OpPayloadBuilderCtx, _db: &mut State, + _top_of_block: bool, ) -> Result, BuilderTransactionError> { Ok(vec![]) } diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index d9789457d..8204af75f 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -17,6 +17,7 @@ use crate::{ flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -55,6 +56,7 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -93,6 +95,7 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_leeway_time: 50, flashblocks_fixed: true, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -131,6 +134,7 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_leeway_time: 50, flashblocks_fixed: true, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -169,6 +173,7 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -214,6 +219,7 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> flashblocks_leeway_time: 0, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -252,6 +258,7 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -312,6 +319,7 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -368,6 +376,7 @@ async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_number_contract_address: None, }, ..Default::default() })] @@ -413,6 +422,7 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: false, + flashblocks_number_contract_address: None, }, ..Default::default() })] From 6267095f51bfe5c40da655f8faa40f360413c7f1 Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 22 Sep 2025 10:23:19 +0200 Subject: [PATCH 22/54] release: 0.2.3 (#270) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9f7a6369f..76556a7cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6164,7 +6164,7 @@ dependencies = [ [[package]] name = "op-rbuilder" -version = "0.2.2" +version = "0.2.3" dependencies = [ "alloy-consensus", "alloy-contract", diff --git a/Cargo.toml b/Cargo.toml index 384058422..d212e68a5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "0.2.2" +version = "0.2.3" edition = "2024" rust-version = "1.86" license = "MIT OR Apache-2.0" From e14e845809314a001ef6c5deeead6764c19ed9fd Mon Sep 17 00:00:00 2001 From: sledro Date: Wed, 24 Sep 2025 02:15:16 +0100 Subject: [PATCH 23/54] Remove ENTRYPOINT from Dockerfile for rbuilder runtime --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5e9258c07..a90bba2d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -78,5 +78,3 @@ FROM gcr.io/distroless/cc-debian12 AS rbuilder-runtime ARG RBUILDER_BIN WORKDIR /app COPY --from=rbuilder /app/target/release/${RBUILDER_BIN} /app/rbuilder -ENTRYPOINT ["/app/rbuilder"] - From 4779a8be868fdacfc1890e8962a5d9f3004cf8f2 Mon Sep 17 00:00:00 2001 From: sledro Date: Thu, 25 Sep 2025 02:28:12 +0100 Subject: [PATCH 24/54] Add DockerfileOp for rbuilder build process and update workflow to use it This commit introduces a new DockerfileOp to streamline the build process for the rbuilder application using cargo-chef. Additionally, the GitHub Actions workflow has been updated to reference the new DockerfileOp instead of the previous Dockerfile, ensuring consistency in the build pipeline. --- .github/workflows/docker_build.yml | 2 +- DockerfileOp | 45 ++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 DockerfileOp diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 63be92c2c..7426c01f8 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -80,7 +80,7 @@ jobs: with: cache-from: type=gha cache-to: type=gha,mode=max - file: Dockerfile + file: DockerfileOp context: . labels: ${{ steps.meta.outputs.labels }} platforms: ${{ matrix.configs.target }} diff --git a/DockerfileOp b/DockerfileOp new file mode 100644 index 000000000..806200bcc --- /dev/null +++ b/DockerfileOp @@ -0,0 +1,45 @@ +FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef +WORKDIR /app + +LABEL org.opencontainers.image.source=https://github.com/flashbots/op-rbuilder +LABEL org.opencontainers.image.licenses="MIT OR Apache-2.0" + +RUN apt-get update && apt-get -y upgrade && apt-get install -y libclang-dev pkg-config libtss2-dev + +FROM chef AS planner +COPY . . +RUN cargo chef prepare --recipe-path recipe.json + +FROM chef AS builder +COPY --from=planner /app/recipe.json recipe.json + +ARG BUILD_PROFILE=release +ENV BUILD_PROFILE=$BUILD_PROFILE + +ARG RUSTFLAGS="" +ENV RUSTFLAGS="$RUSTFLAGS" + +ARG FEATURES="" +ARG RBUILDER_BIN="op-rbuilder" + +RUN cargo chef cook --profile $BUILD_PROFILE --recipe-path recipe.json + +COPY . . +RUN cargo build --profile $BUILD_PROFILE --bin $RBUILDER_BIN --package $RBUILDER_BIN --features="$FEATURES" + +RUN ls -la /app/target/$BUILD_PROFILE/$RBUILDER_BIN +RUN cp /app/target/$BUILD_PROFILE/$RBUILDER_BIN /app/op-rbuilder + +FROM ubuntu:22.04 AS runtime + +RUN apt-get update && \ + apt-get install -y ca-certificates libssl-dev pkg-config strace && \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /app +COPY --from=builder /app/op-rbuilder /usr/local/bin/op-rbuilder +RUN chmod +x /usr/local/bin/op-rbuilder +COPY LICENSE-* ./ + +EXPOSE 30303 30303/udp 9001 8545 8546 7545 8551 +ENTRYPOINT ["/usr/local/bin/op-rbuilder"] From f0aafb0179ed5b746b1a8f7cc4b3a2b2e37b5d7a Mon Sep 17 00:00:00 2001 From: sledro Date: Thu, 25 Sep 2025 15:01:56 +0100 Subject: [PATCH 25/54] Update DockerfileOp to use official Rust image and install cargo-chef This commit modifies the DockerfileOp to use the official Rust 1.88 image instead of a custom image. Additionally, it installs cargo-chef to streamline the build process for the rbuilder application. --- DockerfileOp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/DockerfileOp b/DockerfileOp index 806200bcc..deebd0064 100644 --- a/DockerfileOp +++ b/DockerfileOp @@ -1,4 +1,4 @@ -FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef +FROM rust:1.88 AS chef WORKDIR /app LABEL org.opencontainers.image.source=https://github.com/flashbots/op-rbuilder @@ -6,6 +6,8 @@ LABEL org.opencontainers.image.licenses="MIT OR Apache-2.0" RUN apt-get update && apt-get -y upgrade && apt-get install -y libclang-dev pkg-config libtss2-dev +RUN cargo install cargo-chef --locked + FROM chef AS planner COPY . . RUN cargo chef prepare --recipe-path recipe.json From 3228ab3644d83c9e002d7ef9163faea414812c11 Mon Sep 17 00:00:00 2001 From: sledro Date: Thu, 25 Sep 2025 15:40:42 +0100 Subject: [PATCH 26/54] Remove obsolete build_and_publish workflow and update docker_build workflow to support multi-platform builds for linux/arm64. --- .github/workflows/build_and_publish.yml | 90 ------------------------- .github/workflows/docker_build.yml | 2 + 2 files changed, 2 insertions(+), 90 deletions(-) delete mode 100644 .github/workflows/build_and_publish.yml diff --git a/.github/workflows/build_and_publish.yml b/.github/workflows/build_and_publish.yml deleted file mode 100644 index 121659f26..000000000 --- a/.github/workflows/build_and_publish.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: Test, Build Image & Push to ECR - -on: - push: - branches: - - lightlink # Trigger the workflow on pushes to the main branch - tags: - - "**" # Trigger the workflow on tags including hierarchical tags like v1.0/beta - pull_request: - types: [opened, synchronize] # Trigger the workflow when a PR is opened or updated - -env: - RELEASE_REVISION: ${{ github.sha }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: ${{ secrets.AWS_REGION }} - ECR_REPOSITORY: op-rbuilder - -jobs: - # test: - # name: Run Go Tests - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - - # - name: Set up Go - # uses: actions/setup-go@v5 - # with: - # go-version: 1.22.0 - - # - name: Test - # run: go test -v ./... - - release: - # needs: test - name: Build Image & Push to ECR - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.sha }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ env.AWS_REGION }} - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v2 - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v3 - - - name: Docker cache layers - uses: actions/cache@v4 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-single-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-single-buildx - - - name: Get the version tag or short SHA - id: get-tag - run: | - if [[ "${{ github.ref }}" == refs/tags/* ]]; then - echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT - else - echo "version=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT - fi - - - name: Push Image - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ steps.get-tag.outputs.version }} - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache-new - build-args: | - RBUILDER_BIN=op-rbuilder - VERSION=${{ steps.get-tag.outputs.version }} - - name: Move cache - run: | - rm -rf /tmp/.buildx-cache - mv /tmp/.buildx-cache-new /tmp/.buildx-cache diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 7426c01f8..fef419137 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -48,6 +48,8 @@ jobs: configs: - target: linux/amd64 runner: ubuntu-latest + - target: linux/arm64 + runner: ubuntu-latest steps: - name: checkout sources uses: actions/checkout@v4 From 95b420a6e9a91f61fd265801967dcf88e37cfb96 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Thu, 25 Sep 2025 21:41:57 +0500 Subject: [PATCH 27/54] Bump reth to 1.8.1 (#274) * bump to 1.8.1 * bump rollup-boost v * bump tracing --- Cargo.lock | 1010 ++++++++++++++++++--------------- Cargo.toml | 164 +++--- crates/op-rbuilder/Cargo.toml | 3 +- 3 files changed, 638 insertions(+), 539 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76556a7cd..187a34ea2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" +checksum = "6bf3c28aa7a5765042739f964e335408e434819b96fdda97f12eb1beb46dead0" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -153,15 +153,16 @@ dependencies = [ "rand 0.8.5", "secp256k1 0.30.0", "serde", + "serde_json", "serde_with", "thiserror 2.0.16", ] [[package]] name = "alloy-consensus-any" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81443e3b8dccfeac7cd511aced15928c97ff253f4177acbb97de97178e543f6c" +checksum = "bbfda7b14f1664b6c23d7f38bca2b73c460f2497cf93dd1589753890cb0da158" dependencies = [ "alloy-consensus", "alloy-eips", @@ -174,9 +175,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de217ab604f1bcfa2e3b0aff86d50812d5931d47522f9f0a949cc263ec2d108e" +checksum = "6cb079f711129dd32d6c3a0581013c927eb30d32e929d606cd8c0fe1022ec041" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -270,9 +271,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" +checksum = "72e57928382e5c7890ef90ded9f814d85a1c3db79ceb4a3c5079f1be4cadeeb4" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -295,9 +296,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.20.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dbe7c66c859b658d879b22e8aaa19546dab726b0639f4649a424ada3d99349e" +checksum = "48e536feefca2ba96c75798ac75a31046e8adfcefecdb6653803361045cc65b9" dependencies = [ "alloy-consensus", "alloy-eips", @@ -315,9 +316,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ba1cbc25a07e0142e8875fcbe80e1fdb02be8160ae186b90f4b9a69a72ed2b" +checksum = "ca3419410cdd67fb7d5d016d9d16cf3ea8cc365fcbcf15d086afdd02eaef17e4" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -329,9 +330,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.3.1" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c8616642b176f21e98e2740e27d28917b5d30d8612450cafff21772d4926bc" +checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -367,9 +368,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8882ec8e4542cfd02aadc6dccbe90caa73038f60016d936734eb6ced53d2167" +checksum = "17248e392e79658b1faca7946bfe59825b891c3f6e382044499d99c57ba36a89" dependencies = [ "alloy-primitives 1.3.1", "alloy-sol-types 1.3.1", @@ -382,9 +383,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d6d87d588bda509881a7a66ae77c86514bd1193ac30fbff0e0f24db95eb5a5" +checksum = "fe43d21867dc0dcf71aacffc891ae75fd587154f0d907ceb7340fc5f0271276d" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -408,9 +409,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b14fa9ba5774e0b30ae6a04176d998211d516c8af69c9c530af7c6c42a8c508" +checksum = "67f3b37447082a47289f26e26c0686ac6407710fdd4e818043d9b6d37f2ab55c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -421,9 +422,9 @@ dependencies = [ [[package]] name = "alloy-op-evm" -version = "0.20.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9b726869a13d5d958f2f78fbef7ce522689c4d40d613c16239f5e286fbeb1a" +checksum = "19f09c7785a3f2df462e4bb898e8b682b43de488d9d44bf2e5264e0bba44af21" dependencies = [ "alloy-consensus", "alloy-eips", @@ -438,12 +439,13 @@ dependencies = [ [[package]] name = "alloy-op-hardforks" -version = "0.3.1" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07953246c78130f119855393ba0235d22539c60b6a627f737cdf0ae692f042f6" +checksum = "599c1d7dfbccb66603cb93fde00980d12848d32fe5e814f50562104a92df6487" dependencies = [ "alloy-chains", "alloy-hardforks", + "alloy-primitives 1.3.1", "auto_impl", ] @@ -506,9 +508,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475a5141313c3665b75d818be97d5fa3eb5e0abb7e832e9767edd94746db28e3" +checksum = "1b6377212f3e659173b939e8d3ec3292e246cb532eafd5a4f91e57fdb104b43c" dependencies = [ "alloy-chains", "alloy-consensus", @@ -550,9 +552,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f97c18795ce1ce8151c5539ce1e4200940389674173f677c7455f79bfb00e5df" +checksum = "d27b4f1ac3a0388065f933f957f80e03d06c47ce6a4389ac8cb9f72c30d8d823" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -594,9 +596,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25289674cd8c58fcca2568b5350423cb0dd7bca8c596c5e2869bfe4c5c57ed14" +checksum = "3b80c8cafc1735ce6776bccc25f0c3b7583074897b8ec4f3a129e4d25e09d65c" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -620,9 +622,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39676beaa50db545cf15447fc94ec5513b64e85a48357a0625b9a04aef08a910" +checksum = "3bc0818982bb868acc877f2623ad1fc8f2a4b244074919212bfe476fcadca6d3" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-engine", @@ -633,9 +635,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65acc9264342069decb617aa344847f55180ba3aeab1c8d1db062d0619881029" +checksum = "9359aabfc2ae906ea9f904c6cf6a63d12fc6510e655a64c38aa601a739602e84" dependencies = [ "alloy-genesis", "alloy-primitives 1.3.1", @@ -645,9 +647,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c8cad42fa936000be72ab80fcd97386a6a226c35c2989212756da9e76c1521" +checksum = "410403528db87ab4618e7f517b0f54e493c8a17bb61102cbccbb7a35e8719b5b" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -657,9 +659,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01bac57c987c93773787619e20f89167db74d460a2d1d40f591d94fb7c22c379" +checksum = "af8448a1eb2c81115fc8d9d50da24156c9ce8fca78a19a997184dcd81f99c229" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -668,9 +670,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3c0e6cc87a8be5582d08f929f96db25843f44cb636a0985a4a6bf02609c02f" +checksum = "9c20f653a4c1ab8289470e8eed55fe4f11354865b730685bb70b69a375524b27" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -687,9 +689,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2fe118e6c152d54cb4549b9835fb87d38b12754bb121375183ee3ec84bd0849" +checksum = "8fb22d465e02c015648138bc0d46951d267827551fc85922b60f58caa6a0e9c9" dependencies = [ "alloy-primitives 1.3.1", "derive_more", @@ -699,9 +701,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a41624eb84bc743e414198bf10eb48b611a5554d6a9fd6205f7384d57dfd7f" +checksum = "4b968beee2ada53ef150fd90fbd2b7a3e5bcb66650e4d01757ff769c8af3d5ee" dependencies = [ "alloy-consensus", "alloy-eips", @@ -719,9 +721,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd1e1b4dcdf13eaa96343e5c0dafc2d2e8ce5d20b90347169d46a1df0dec210" +checksum = "cd7c1bc07b6c9222c4ad822da3cea0fbbfcbe2876cf5d4780e147a0da6fe2862" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -741,9 +743,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01620baa48d3f49fc908c781eb91ded71f3226e719bb6404697c2851cac4e098" +checksum = "ad56da776d84940f075f6cdb27c95c17f5d8947ed89947d61b686247ec4e2200" dependencies = [ "alloy-consensus", "alloy-eips", @@ -756,9 +758,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc33d9d0e0b3cfe9c2e82a1a427c9ed516fcfebe764f0adf7ceb8107f702dd1" +checksum = "7e54b3f616d9f30e11bc73e685f71da6f1682da5a3c2ca5206ec47f1d3bc96c7" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -770,9 +772,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fa9e9b3e613425d2a2ee1a322bdad5f1cedf835406fd4b59538822500b44bc" +checksum = "15fc6b7b9465393a5b3fd38aba979f44438f172d9d0e6de732243c17d4246060" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -782,9 +784,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" +checksum = "8603b89af4ba0acb94465319e506b8c0b40a5daf563046bedd58d26c98dbd62c" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", @@ -794,9 +796,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10ab1b8d4649bf7d0db8ab04e31658a6cc20364d920795484d886c35bed3bab4" +checksum = "78ddbea0531837cc7784ae6669b4a66918e6fb34c2daa2a7a888549dd565151c" dependencies = [ "alloy-primitives 1.3.1", "async-trait", @@ -809,9 +811,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bdeec36c8d9823102b571b3eab8b323e053dc19c12da14a9687bd474129bf2a" +checksum = "3497f79c8a818f736d8de1c157a1ec66c0ce1da3fbb2f54c005097798282e59b" dependencies = [ "alloy-consensus", "alloy-network", @@ -969,9 +971,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce5129146a76ca6139a19832c75ad408857a56bcd18cd2c684183b8eacd78d8" +checksum = "d259738315db0a2460581e22a1ca73ff02ef44687b43c0dad0834999090b3e7e" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -993,9 +995,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2379d998f46d422ec8ef2b61603bc28cda931e5e267aea1ebe71f62da61d101" +checksum = "c6332f6d470e465bf00f9306743ff172f54b83e7e31edfe28f1444c085ccb0e4" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -1008,9 +1010,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "041aa5db2e907692a9a93a0a908057665c03e59364e1fbbeed613511a0159289" +checksum = "865c13b9ce32b1a5227ac0f796faa9c08416aa4ea4e22b3a61a21ef110bda5ad" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -1028,9 +1030,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6d44395e6793566e9c89bd82297cc4b0566655c1e78a1d69362640814784cc6" +checksum = "da655a5099cc037cad636425cec389320a694b6ec0302472a74f71b3637d842d" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1066,9 +1068,9 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b5becb9c269a7d05a2f28d549f86df5a5dbc923e2667eff84fdecac8cda534c" +checksum = "2765badc6f621e1fc26aa70c520315866f0db6b8bd6bf3c560920d4fb33b08de" dependencies = [ "alloy-primitives 1.3.1", "darling 0.21.3", @@ -2282,9 +2284,9 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.1" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7318cfa722931cb5fe0838b98d3ce5621e75f6a6408abc21721d80de9223f2e4" +checksum = "137a2a2878ed823ef1bd73e5441e245602aae5360022113b8ad259ca4b5b8727" dependencies = [ "arbitrary", "blst", @@ -2959,7 +2961,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.106", + "syn 1.0.109", ] [[package]] @@ -4919,6 +4921,20 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonrpsee" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "jsonrpsee-core 0.25.1", + "jsonrpsee-http-client 0.25.1", + "jsonrpsee-proc-macros 0.25.1", + "jsonrpsee-server 0.25.1", + "jsonrpsee-types 0.25.1", + "tokio", + "tracing", +] + [[package]] name = "jsonrpsee" version = "0.26.0" @@ -4926,11 +4942,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3f48dc3e6b8bd21e15436c1ddd0bc22a6a54e8ec46fedd6adf3425f396ec6a" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-http-client 0.26.0", + "jsonrpsee-proc-macros 0.26.0", + "jsonrpsee-server 0.26.0", + "jsonrpsee-types 0.26.0", "jsonrpsee-wasm-client", "jsonrpsee-ws-client", "tokio", @@ -4948,7 +4964,7 @@ dependencies = [ "futures-util", "gloo-net", "http", - "jsonrpsee-core", + "jsonrpsee-core 0.26.0", "pin-project", "rustls", "rustls-pki-types", @@ -4962,6 +4978,30 @@ dependencies = [ "url", ] +[[package]] +name = "jsonrpsee-core" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "jsonrpsee-types 0.25.1", + "parking_lot", + "pin-project", + "rand 0.9.2", + "rustc-hash 2.1.1", + "serde", + "serde_json", + "thiserror 2.0.16", + "tokio", + "tower 0.5.2", + "tracing", +] + [[package]] name = "jsonrpsee-core" version = "0.26.0" @@ -4975,7 +5015,7 @@ dependencies = [ "http", "http-body", "http-body-util", - "jsonrpsee-types", + "jsonrpsee-types 0.26.0", "parking_lot", "pin-project", "rand 0.9.2", @@ -4990,6 +5030,28 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "jsonrpsee-http-client" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "base64 0.22.1", + "http-body", + "hyper", + "hyper-rustls", + "hyper-util", + "jsonrpsee-core 0.25.1", + "jsonrpsee-types 0.25.1", + "rustls", + "rustls-platform-verifier", + "serde", + "serde_json", + "thiserror 2.0.16", + "tokio", + "tower 0.5.2", + "url", +] + [[package]] name = "jsonrpsee-http-client" version = "0.26.0" @@ -5001,8 +5063,8 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "rustls", "rustls-platform-verifier", "serde", @@ -5013,6 +5075,18 @@ dependencies = [ "url", ] +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "heck", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "jsonrpsee-proc-macros" version = "0.26.0" @@ -5026,6 +5100,32 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "jsonrpsee-server" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "jsonrpsee-core 0.25.1", + "jsonrpsee-types 0.25.1", + "pin-project", + "route-recognizer", + "serde", + "serde_json", + "soketto", + "thiserror 2.0.16", + "tokio", + "tokio-stream", + "tokio-util", + "tower 0.5.2", + "tracing", +] + [[package]] name = "jsonrpsee-server" version = "0.26.0" @@ -5038,8 +5138,8 @@ dependencies = [ "http-body-util", "hyper", "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "pin-project", "route-recognizer", "serde", @@ -5053,6 +5153,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "jsonrpsee-types" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "http", + "serde", + "serde_json", + "thiserror 2.0.16", +] + [[package]] name = "jsonrpsee-types" version = "0.26.0" @@ -5072,8 +5183,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7902885de4779f711a95d82c8da2d7e5f9f3a7c7cfa44d51c067fd1c29d72a3c" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "tower 0.5.2", ] @@ -5085,8 +5196,8 @@ checksum = "9b6fceceeb05301cc4c065ab3bd2fa990d41ff4eb44e4ca1b30fa99c057c3e79" dependencies = [ "http", "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "tower 0.5.2", "url", ] @@ -5372,7 +5483,7 @@ dependencies = [ "generator", "scoped-tls", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -5456,11 +5567,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]] @@ -5852,12 +5963,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]] @@ -6072,9 +6182,9 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "op-alloy-consensus" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ade20c592484ba1ea538006e0454284174447a3adf9bb59fa99ed512f95493" +checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6098,9 +6208,9 @@ checksum = "a79f352fc3893dcd670172e615afef993a41798a1d3fc0db88a3e60ef2e70ecc" [[package]] name = "op-alloy-network" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84741a798124ceb43979d70db654039937a00979b1341fa8bfdc48473bbd52bf" +checksum = "f80108e3b36901200a4c5df1db1ee9ef6ce685b59ea79d7be1713c845e3765da" dependencies = [ "alloy-consensus", "alloy-network", @@ -6114,19 +6224,19 @@ dependencies = [ [[package]] name = "op-alloy-rpc-jsonrpsee" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa85f170bf8f914a7619e1447918781a8c5bd1041bb6629940b851e865487156" +checksum = "e8eb878fc5ea95adb5abe55fb97475b3eb0dcc77dfcd6f61bd626a68ae0bdba1" dependencies = [ "alloy-primitives 1.3.1", - "jsonrpsee", + "jsonrpsee 0.26.0", ] [[package]] name = "op-alloy-rpc-types" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9076d4fcb8e260cec8ad01cd155200c0dbb562e62adb553af245914f30854e29" +checksum = "753d6f6b03beca1ba9cbd344c05fee075a2ce715ee9d61981c10b9c764a824a2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6143,9 +6253,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4256b1eda5766a9fa7de5874e54515994500bef632afda41e940aed015f9455" +checksum = "14e50c94013a1d036a529df259151991dbbd6cf8dc215e3b68b784f95eec60e6" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6197,9 +6307,9 @@ dependencies = [ "futures-util", "hex", "http", - "jsonrpsee", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee 0.26.0", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "macros", "metrics", "moka", @@ -6280,7 +6390,7 @@ dependencies = [ "tokio-util", "tower 0.5.2", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "ureq", "url", "uuid", @@ -6290,9 +6400,9 @@ dependencies = [ [[package]] name = "op-revm" -version = "10.0.0" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba21d705bbbfc947a423cba466d75e4af0c7d43ee89ba0a0f1cfa04963cede9" +checksum = "f9ba4f4693811e73449193c8bd656d3978f265871916882e6a51a487e4f96217" dependencies = [ "auto_impl", "revm", @@ -6532,12 +6642,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" @@ -6627,7 +6731,7 @@ checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" dependencies = [ "parse-display-derive", "regex", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] @@ -6639,7 +6743,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "regex-syntax 0.8.5", + "regex-syntax", "structmeta", "syn 2.0.106", ] @@ -6998,7 +7102,7 @@ dependencies = [ "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax", "rusty-fork", "tempfile", "unarray", @@ -7379,17 +7483,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]] @@ -7400,15 +7495,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" @@ -7482,8 +7571,8 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-rpc-types", "aquamarine", @@ -7528,8 +7617,8 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7552,8 +7641,8 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7583,8 +7672,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7603,8 +7692,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-genesis", "clap", @@ -7617,8 +7706,8 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7692,8 +7781,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "reth-tasks", "tokio", @@ -7702,8 +7791,8 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -7720,8 +7809,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7740,8 +7829,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "convert_case", "proc-macro2", @@ -7751,8 +7840,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "eyre", "humantime-serde", @@ -7766,8 +7855,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -7779,8 +7868,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7791,8 +7880,8 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7800,6 +7889,7 @@ dependencies = [ "alloy-primitives 1.3.1", "alloy-provider", "alloy-rpc-types-engine", + "alloy-transport", "auto_impl", "derive_more", "eyre", @@ -7816,8 +7906,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "derive_more", @@ -7842,8 +7932,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7870,8 +7960,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7900,8 +7990,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -7915,8 +8005,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -7941,8 +8031,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -7965,8 +8055,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "data-encoding", @@ -7989,8 +8079,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8024,8 +8114,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "aes", "alloy-primitives 1.3.1", @@ -8055,8 +8145,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8079,8 +8169,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8104,8 +8194,8 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "futures", "pin-project", @@ -8127,8 +8217,8 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8181,8 +8271,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8209,8 +8299,8 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8225,8 +8315,8 @@ dependencies = [ [[package]] name = "reth-era-downloader" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "bytes", @@ -8240,8 +8330,8 @@ dependencies = [ [[package]] name = "reth-era-utils" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8262,8 +8352,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -8273,8 +8363,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", "alloy-primitives 1.3.1", @@ -8301,8 +8391,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8322,8 +8412,8 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "clap", "eyre", @@ -8337,14 +8427,15 @@ dependencies = [ "reth-node-core", "reth-node-ethereum", "reth-node-metrics", + "reth-rpc-server-types", "reth-tracing", "tracing", ] [[package]] name = "reth-ethereum-consensus" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8359,8 +8450,8 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -8377,8 +8468,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -8390,8 +8481,8 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8419,13 +8510,15 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", "arbitrary", "modular-bitfield", "reth-codecs", @@ -8437,8 +8530,8 @@ dependencies = [ [[package]] name = "reth-etl" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "rayon", "reth-db-api", @@ -8447,8 +8540,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8470,8 +8563,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8490,8 +8583,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-evm", "alloy-primitives 1.3.1", @@ -8503,8 +8596,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8521,8 +8614,8 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8559,8 +8652,8 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -8573,8 +8666,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "serde", "serde_json", @@ -8583,8 +8676,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8592,7 +8685,7 @@ dependencies = [ "alloy-rpc-types-debug", "eyre", "futures", - "jsonrpsee", + "jsonrpsee 0.26.0", "pretty_assertions", "reth-engine-primitives", "reth-evm", @@ -8610,14 +8703,14 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "bytes", "futures", "futures-util", "interprocess", - "jsonrpsee", + "jsonrpsee 0.26.0", "pin-project", "serde_json", "thiserror 2.0.16", @@ -8630,14 +8723,13 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "bitflags 2.9.2", "byteorder", "dashmap 6.1.0", "derive_more", - "indexmap 2.10.0", "parking_lot", "reth-mdbx-sys", "smallvec", @@ -8647,8 +8739,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "bindgen 0.70.1", "cc", @@ -8656,8 +8748,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "futures", "metrics", @@ -8668,16 +8760,16 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", ] [[package]] name = "reth-net-nat" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "futures-util", "if-addrs", @@ -8690,8 +8782,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8745,8 +8837,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8770,8 +8862,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8793,8 +8885,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8808,8 +8900,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -8822,8 +8914,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "anyhow", "bincode", @@ -8839,8 +8931,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -8863,8 +8955,8 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8876,7 +8968,7 @@ dependencies = [ "eyre", "fdlimit", "futures", - "jsonrpsee", + "jsonrpsee 0.26.0", "rayon", "reth-basic-payload-builder", "reth-chain-state", @@ -8931,8 +9023,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8983,8 +9075,8 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-network", @@ -9021,8 +9113,8 @@ dependencies = [ [[package]] name = "reth-node-ethstats" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9045,8 +9137,8 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9069,12 +9161,12 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "eyre", "http", - "jsonrpsee-server", + "jsonrpsee-server 0.26.0", "metrics", "metrics-exporter-prometheus 0.16.2", "metrics-process", @@ -9090,8 +9182,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "reth-chainspec", "reth-db-api", @@ -9102,8 +9194,8 @@ dependencies = [ [[package]] name = "reth-optimism-chainspec" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", "alloy-consensus", @@ -9130,8 +9222,8 @@ dependencies = [ [[package]] name = "reth-optimism-cli" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9165,6 +9257,7 @@ dependencies = [ "reth-primitives-traits", "reth-provider", "reth-prune", + "reth-rpc-server-types", "reth-stages", "reth-static-file", "reth-static-file-types", @@ -9177,8 +9270,8 @@ dependencies = [ [[package]] name = "reth-optimism-consensus" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9202,8 +9295,8 @@ dependencies = [ [[package]] name = "reth-optimism-evm" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9230,9 +9323,10 @@ dependencies = [ [[package]] name = "reth-optimism-flashblocks" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ + "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", @@ -9244,13 +9338,16 @@ dependencies = [ "reth-errors", "reth-evm", "reth-execution-types", + "reth-node-api", "reth-optimism-evm", + "reth-optimism-payload-builder", "reth-optimism-primitives", "reth-primitives-traits", "reth-revm", "reth-rpc-eth-types", "reth-storage-api", "reth-tasks", + "ringbuffer", "serde", "serde_json", "tokio", @@ -9261,8 +9358,8 @@ dependencies = [ [[package]] name = "reth-optimism-forks" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-op-hardforks", "alloy-primitives 1.3.1", @@ -9272,8 +9369,8 @@ dependencies = [ [[package]] name = "reth-optimism-node" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9318,8 +9415,8 @@ dependencies = [ [[package]] name = "reth-optimism-payload-builder" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9357,8 +9454,8 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9377,8 +9474,8 @@ dependencies = [ [[package]] name = "reth-optimism-rpc" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9393,9 +9490,10 @@ dependencies = [ "async-trait", "derive_more", "eyre", - "jsonrpsee", - "jsonrpsee-core", - "jsonrpsee-types", + "futures", + "jsonrpsee 0.26.0", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics", "op-alloy-consensus", "op-alloy-network", @@ -9404,6 +9502,7 @@ dependencies = [ "op-alloy-rpc-types-engine", "op-revm", "reqwest", + "reth-chain-state", "reth-chainspec", "reth-evm", "reth-metrics", @@ -9418,6 +9517,7 @@ dependencies = [ "reth-primitives-traits", "reth-rpc", "reth-rpc-api", + "reth-rpc-convert", "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", @@ -9429,30 +9529,25 @@ dependencies = [ "serde_json", "thiserror 2.0.16", "tokio", + "tokio-stream", "tower 0.5.2", "tracing", ] [[package]] name = "reth-optimism-storage" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", - "reth-chainspec", - "reth-db-api", - "reth-node-api", "reth-optimism-primitives", - "reth-primitives-traits", - "reth-provider", "reth-storage-api", ] [[package]] name = "reth-optimism-txpool" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9487,8 +9582,8 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9508,8 +9603,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "pin-project", "reth-payload-primitives", @@ -9520,13 +9615,14 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", + "either", "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", @@ -9539,8 +9635,8 @@ dependencies = [ [[package]] name = "reth-payload-util" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9549,8 +9645,8 @@ dependencies = [ [[package]] name = "reth-payload-validator" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -9559,8 +9655,8 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "c-kzg", @@ -9573,8 +9669,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9606,8 +9702,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9651,8 +9747,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9679,8 +9775,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", @@ -9693,8 +9789,8 @@ dependencies = [ [[package]] name = "reth-ress-protocol" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9712,8 +9808,8 @@ dependencies = [ [[package]] name = "reth-ress-provider" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9739,8 +9835,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "reth-primitives-traits", @@ -9752,8 +9848,8 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -9778,13 +9874,14 @@ dependencies = [ "alloy-signer-local", "async-trait", "derive_more", + "dyn-clone", "futures", "http", "http-body", "hyper", "itertools 0.14.0", - "jsonrpsee", - "jsonrpsee-types", + "jsonrpsee 0.26.0", + "jsonrpsee-types 0.26.0", "jsonwebtoken", "parking_lot", "pin-project", @@ -9830,8 +9927,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-genesis", @@ -9848,7 +9945,7 @@ dependencies = [ "alloy-rpc-types-trace", "alloy-rpc-types-txpool", "alloy-serde", - "jsonrpsee", + "jsonrpsee 0.26.0", "reth-chain-state", "reth-engine-primitives", "reth-network-peers", @@ -9858,13 +9955,14 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-network", "alloy-provider", + "dyn-clone", "http", - "jsonrpsee", + "jsonrpsee 0.26.0", "metrics", "pin-project", "reth-chain-state", @@ -9896,8 +9994,8 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-json-rpc", @@ -9905,7 +10003,9 @@ dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-signer", - "jsonrpsee-types", + "auto_impl", + "dyn-clone", + "jsonrpsee-types 0.26.0", "op-alloy-consensus", "op-alloy-network", "op-alloy-rpc-types", @@ -9921,15 +10021,15 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "async-trait", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics", "parking_lot", "reth-chainspec", @@ -9951,8 +10051,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -9969,8 +10069,8 @@ dependencies = [ "auto_impl", "dyn-clone", "futures", - "jsonrpsee", - "jsonrpsee-types", + "jsonrpsee 0.26.0", + "jsonrpsee-types 0.26.0", "parking_lot", "reth-chain-state", "reth-chainspec", @@ -9995,8 +10095,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10010,8 +10110,8 @@ dependencies = [ "derive_more", "futures", "itertools 0.14.0", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics", "rand 0.9.2", "reqwest", @@ -10042,12 +10142,12 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-rpc-types-engine", "http", - "jsonrpsee-http-client", + "jsonrpsee-http-client 0.26.0", "pin-project", "tower 0.5.2", "tower-http", @@ -10056,14 +10156,14 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "reth-errors", "reth-network-api", "serde", @@ -10072,8 +10172,8 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10120,8 +10220,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10147,8 +10247,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", @@ -10161,8 +10261,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "parking_lot", @@ -10181,8 +10281,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "clap", @@ -10193,8 +10293,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10216,8 +10316,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10232,8 +10332,8 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "auto_impl", "dyn-clone", @@ -10250,8 +10350,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10266,8 +10366,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "tokio", "tokio-stream", @@ -10276,8 +10376,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "clap", "eyre", @@ -10286,13 +10386,13 @@ dependencies = [ "tracing-appender", "tracing-journald", "tracing-logfmt", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] name = "reth-tracing-otlp" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "opentelemetry 0.29.1", "opentelemetry-otlp 0.29.0", @@ -10300,13 +10400,13 @@ dependencies = [ "opentelemetry_sdk 0.29.0", "tracing", "tracing-opentelemetry 0.30.0", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] name = "reth-transaction-pool" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10346,8 +10446,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10371,8 +10471,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -10397,8 +10497,8 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "reth-db-api", @@ -10410,8 +10510,8 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -10435,8 +10535,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -10454,8 +10554,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse-parallel" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -10472,17 +10572,17 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.7.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" +version = "1.8.1" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "29.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c278b6ee9bba9e25043e3fae648fdce632d1944d3ba16f5203069b43bddd57f" +checksum = "718d90dce5f07e115d0e66450b1b8aa29694c1cf3f89ebddaddccc2ccbd2f13e" dependencies = [ "revm-bytecode", "revm-context", @@ -10511,9 +10611,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "9.0.2" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fb02c5dab3b535aa5b18277b1d21c5117a25d42af717e6ce133df0ea56663e1" +checksum = "5a20c98e7008591a6f012550c2a00aa36cba8c14cc88eb88dec32eb9102554b4" dependencies = [ "bitvec", "cfg-if", @@ -10528,9 +10628,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "10.1.0" +version = "10.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8e9311d27cf75fbf819e7ba4ca05abee1ae02e44ff6a17301c7ab41091b259" +checksum = "b50d241ed1ce647b94caf174fcd0239b7651318b2c4c06b825b59b973dfb8495" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -10571,9 +10671,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "10.0.0" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528d2d81cc918d311b8231c35330fac5fba8b69766ddc538833e2b5593ee016e" +checksum = "550331ea85c1d257686e672081576172fe3d5a10526248b663bbf54f1bef226a" dependencies = [ "auto_impl", "derive-where", @@ -10590,9 +10690,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "10.0.0" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf443b664075999a14916b50c5ae9e35a7d71186873b8f8302943d50a672e5e0" +checksum = "7c0a6e9ccc2ae006f5bed8bd80cd6f8d3832cd55c5e861b9402fdd556098512f" dependencies = [ "auto_impl", "either", @@ -10608,9 +10708,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.29.2" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fdb678b03faa678a7007a7c761a78efa9ca9adcd9434ef3d1ad894aec6e43d1" +checksum = "e9b329afcc0f9fd5adfa2c6349a7435a8558e82bcae203142103a9a95e2a63b6" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -10628,9 +10728,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "25.0.2" +version = "25.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d6406b711fac73b4f13120f359ed8e65964380dd6182bd12c4c09ad0d4641f" +checksum = "06575dc51b1d8f5091daa12a435733a90b4a132dca7ccee0666c7db3851bc30c" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -10790,14 +10890,14 @@ dependencies = [ [[package]] name = "rollup-boost" version = "0.1.0" -source = "git+http://github.com/flashbots/rollup-boost?rev=0c1fb4ce7e00f0afc350f5bf7573b19da6d485ec#0c1fb4ce7e00f0afc350f5bf7573b19da6d485ec" +source = "git+http://github.com/flashbots/rollup-boost?rev=b86af43969557bee18f17ec1d6bcd3e984f910b2#b86af43969557bee18f17ec1d6bcd3e984f910b2" dependencies = [ - "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", "clap", + "dashmap 6.1.0", "dotenvy", "eyre", "futures", @@ -10806,29 +10906,19 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "jsonrpsee", - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-server", - "jsonrpsee-types", + "jsonrpsee 0.25.1", "metrics", "metrics-derive", "metrics-exporter-prometheus 0.16.2", "metrics-util 0.19.1", "moka", - "op-alloy-network", - "op-alloy-rpc-jsonrpsee", "op-alloy-rpc-types-engine", "opentelemetry 0.28.0", "opentelemetry-otlp 0.28.0", "opentelemetry_sdk 0.28.0", "parking_lot", "paste", - "reth-optimism-node", "reth-optimism-payload-builder", - "reth-optimism-rpc", - "reth-rpc-api", - "reth-rpc-eth-api", "rustls", "serde", "serde_json", @@ -10842,7 +10932,7 @@ dependencies = [ "tower-http", "tracing", "tracing-opentelemetry 0.29.0", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "url", "vergen", "vergen-git2", @@ -11294,10 +11384,11 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" dependencies = [ + "serde_core", "serde_derive", ] @@ -11319,11 +11410,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", @@ -11974,7 +12074,7 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12508,7 +12608,7 @@ dependencies = [ "crossbeam-channel", "thiserror 1.0.69", "time", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12550,7 +12650,7 @@ checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" dependencies = [ "libc", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12573,7 +12673,7 @@ dependencies = [ "time", "tracing", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12590,7 +12690,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-log", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "web-time", ] @@ -12608,7 +12708,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-log", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "web-time", ] @@ -12633,14 +12733,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", diff --git a/Cargo.toml b/Cargo.toml index d212e68a5..e391ca2be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,73 +43,73 @@ incremental = false unreachable_pub = "warn" [workspace.dependencies] -reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-chain-state = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0", features = [ +reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-chain-state = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-cli-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1", features = [ "test-utils", ] } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-storage-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-payload-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-node-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-ipc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-storage-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-payload-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-node-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-ipc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } # reth optimism -reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-optimism-evm = { 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-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" } -reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0", features = [ +reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1", features = [ "client", ] } -revm = { version = "29.0.0", features = [ +revm = { version = "29.0.1", features = [ "std", "secp256k1", "optional_balance_check", ], default-features = false } -revm-inspectors = { version = "0.29.0", default-features = false } -op-revm = { version = "10.0.0", default-features = false } +revm-inspectors = { version = "0.30.0", default-features = false } +op-revm = { version = "10.1.0", default-features = false } ethereum_ssz_derive = "0.9.0" ethereum_ssz = "0.9.0" @@ -117,41 +117,41 @@ ethereum_ssz = "0.9.0" alloy-primitives = { version = "1.3.1", default-features = false } alloy-rlp = "0.3.10" alloy-chains = "0.2.5" -alloy-contract = { version = "1.0.30" } -alloy-evm = { version = "0.20.1", default-features = false } -alloy-provider = { version = "1.0.30", features = [ +alloy-contract = { version = "1.0.35" } +alloy-evm = { version = "0.21.0", default-features = false } +alloy-provider = { version = "1.0.35", features = [ "ipc", "pubsub", "txpool-api", "engine-api", ] } -alloy-pubsub = { version = "1.0.23" } -alloy-eips = { version = "1.0.23" } -alloy-rpc-types = { version = "1.0.23" } -alloy-json-rpc = { version = "1.0.23" } -alloy-transport-http = { version = "1.0.23" } -alloy-network = { version = "1.0.23" } -alloy-network-primitives = { version = "1.0.23" } -alloy-transport = { version = "1.0.23" } -alloy-node-bindings = { version = "1.0.23" } -alloy-consensus = { version = "1.0.23", features = ["kzg"] } -alloy-serde = { version = "1.0.23" } +alloy-pubsub = { version = "1.0.35" } +alloy-eips = { version = "1.0.35" } +alloy-rpc-types = { version = "1.0.35" } +alloy-json-rpc = { version = "1.0.35" } +alloy-transport-http = { version = "1.0.35" } +alloy-network = { version = "1.0.35" } +alloy-network-primitives = { version = "1.0.35" } +alloy-transport = { version = "1.0.35" } +alloy-node-bindings = { version = "1.0.35" } +alloy-consensus = { version = "1.0.35", features = ["kzg"] } +alloy-serde = { version = "1.0.35" } alloy-sol-types = { version = "1.2.1", features = ["json"] } -alloy-rpc-types-beacon = { version = "1.0.23", features = ["ssz"] } -alloy-rpc-types-engine = { version = "1.0.23", features = ["ssz"] } -alloy-rpc-types-eth = { version = "1.0.23" } -alloy-signer-local = { version = "1.0.23" } -alloy-rpc-client = { version = "1.0.23" } -alloy-genesis = { version = "1.0.23" } -alloy-trie = { version = "0.9.0" } +alloy-rpc-types-beacon = { version = "1.0.35", features = ["ssz"] } +alloy-rpc-types-engine = { version = "1.0.35", features = ["ssz"] } +alloy-rpc-types-eth = { version = "1.0.35" } +alloy-signer-local = { version = "1.0.35" } +alloy-rpc-client = { version = "1.0.35" } +alloy-genesis = { version = "1.0.35" } +alloy-trie = { version = "0.9.1" } # optimism -alloy-op-evm = { version = "0.20.1", default-features = false } -op-alloy-rpc-types = { version = "0.19.0", default-features = false } -op-alloy-rpc-types-engine = { version = "0.19.0", default-features = false } -op-alloy-rpc-jsonrpsee = { version = "0.19.0", default-features = false } -op-alloy-network = { version = "0.19.0", default-features = false } -op-alloy-consensus = { version = "0.19.0", default-features = false } +alloy-op-evm = { version = "0.21.0", default-features = false } +op-alloy-rpc-types = { version = "0.20.0", default-features = false } +op-alloy-rpc-types-engine = { version = "0.20.0", default-features = false } +op-alloy-rpc-jsonrpsee = { version = "0.20.0", default-features = false } +op-alloy-network = { version = "0.20.0", default-features = false } +op-alloy-consensus = { version = "0.20.0", default-features = false } op-alloy-flz = { version = "0.13.1", default-features = false } async-trait = { version = "0.1.83" } diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index f91559def..0a60a2b33 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -127,8 +127,7 @@ sha3 = "0.10" hex = "0.4" ureq = "2.10" -# TODO: change to rev from main once https://github.com/flashbots/rollup-boost/pull/401 is merged -rollup-boost = { git = "http://github.com/flashbots/rollup-boost", rev = "0c1fb4ce7e00f0afc350f5bf7573b19da6d485ec" } +rollup-boost = { git = "http://github.com/flashbots/rollup-boost", rev = "b86af43969557bee18f17ec1d6bcd3e984f910b2" } nanoid = { version = "0.4", optional = true } reth-ipc = { workspace = true, optional = true } From 36260c66b6e3e5b863795dee846ba38d9f71a52d Mon Sep 17 00:00:00 2001 From: Julio <30329843+julio4@users.noreply.github.com> Date: Fri, 26 Sep 2025 02:13:39 +0900 Subject: [PATCH 28/54] feat: overwrite reth default cache directory (#238) * feat: overwrite reth default cache directory * doc: logs path --- Cargo.lock | 1 + README.md | 6 ++++++ crates/op-rbuilder/Cargo.toml | 1 + crates/op-rbuilder/src/args/mod.rs | 5 +++++ 4 files changed, 13 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 187a34ea2..a5db08507 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6302,6 +6302,7 @@ dependencies = [ "ctor", "dashmap 6.1.0", "derive_more", + "dirs-next", "eyre", "futures", "futures-util", diff --git a/README.md b/README.md index 333e19720..85abb2bf6 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,12 @@ To enable metrics, set the `--metrics` flag like in [reth](https://reth.rs/run/m To see the full list of op-rbuilder metrics, see [`src/metrics.rs`](./crates/op-rbuilder/src/metrics.rs). +Default `debug` level trace logs can be found at: + +- `~/.cache/op-rbuilder/logs` on Linux +- `~/Library/Caches/op-rbuilder/logs` on macOS +- `%localAppData%/op-rbuilder/logs` on Windows + ## Integration Testing op-rbuilder has an integration test framework that runs the builder against mock engine api payloads and ensures that the builder produces valid blocks. diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index 0a60a2b33..5a8ea9417 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -136,6 +136,7 @@ ctor = { version = "0.4.2", optional = true } rlimit = { version = "0.10", optional = true } macros = { path = "src/tests/framework/macros", optional = true } testcontainers = "0.24.0" +dirs-next = "2.0.0" [target.'cfg(unix)'.dependencies] tikv-jemallocator = { version = "0.6", optional = true } diff --git a/crates/op-rbuilder/src/args/mod.rs b/crates/op-rbuilder/src/args/mod.rs index 4188e39cc..a89f3790e 100644 --- a/crates/op-rbuilder/src/args/mod.rs +++ b/crates/op-rbuilder/src/args/mod.rs @@ -78,12 +78,17 @@ impl CliExt for Cli { /// Parses commands and overrides versions fn set_version() -> Self { + let logs_dir = dirs_next::cache_dir() + .map(|root| root.join("op-rbuilder/logs")) + .unwrap() + .into_os_string(); let matches = Cli::command() .version(SHORT_VERSION) .long_version(LONG_VERSION) .about("Block builder designed for the Optimism stack") .author("Flashbots") .name("op-rbuilder") + .mut_arg("log_file_directory", |arg| arg.default_value(logs_dir)) .get_matches(); Cli::from_arg_matches(&matches).expect("Parsing args") } From 83f9ceefc060558dc0fed1a4d6c7732811c1390d Mon Sep 17 00:00:00 2001 From: shana Date: Thu, 25 Sep 2025 11:13:09 -0700 Subject: [PATCH 29/54] Add remote quote provider arg for flashtestations (#276) --- Cargo.lock | 1 + crates/op-rbuilder/Cargo.toml | 1 + .../op-rbuilder/src/flashtestations/args.rs | 23 ++++++++++++------- .../src/flashtestations/attestation.rs | 23 ++++++++++--------- .../src/flashtestations/service.rs | 5 ++-- crates/op-rbuilder/src/tx_signer.rs | 18 +++++++++++++++ 6 files changed, 50 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a5db08507..686a988d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6311,6 +6311,7 @@ dependencies = [ "jsonrpsee 0.26.0", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", + "k256", "macros", "metrics", "moka", diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index 5a8ea9417..f1fe8d1db 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -126,6 +126,7 @@ http = "1.0" sha3 = "0.10" hex = "0.4" ureq = "2.10" +k256 = "0.13.4" rollup-boost = { git = "http://github.com/flashbots/rollup-boost", rev = "b86af43969557bee18f17ec1d6bcd3e984f910b2" } diff --git a/crates/op-rbuilder/src/flashtestations/args.rs b/crates/op-rbuilder/src/flashtestations/args.rs index cc4f36463..3e8266399 100644 --- a/crates/op-rbuilder/src/flashtestations/args.rs +++ b/crates/op-rbuilder/src/flashtestations/args.rs @@ -23,17 +23,24 @@ pub struct FlashtestationsArgs { )] pub debug: bool, - // Debug url for attestations - #[arg(long = "flashtestations.debug-url", env = "FLASHTESTATIONS_DEBUG_URL")] - pub debug_url: Option, + // Debug static key for the tee key. DO NOT USE IN PRODUCTION + #[arg( + long = "flashtestations.debug-tee-key-seed", + env = "FLASHTESTATIONS_DEBUG_TEE_KEY_SEED", + default_value = "debug" + )] + pub debug_tee_key_seed: String, - /// The rpc url to post the onchain attestation requests to + // Remote url for attestations #[arg( - long = "flashtestations.rpc-url", - env = "FLASHTESTATIONS_RPC_URL", - default_value = "http://localhost:8545" + long = "flashtestations.quote-provider", + env = "FLASHTESTATIONS_QUOTE_PROVIDER" )] - pub rpc_url: String, + pub quote_provider: Option, + + /// The rpc url to post the onchain attestation requests to + #[arg(long = "flashtestations.rpc-url", env = "FLASHTESTATIONS_RPC_URL")] + pub rpc_url: Option, /// Funding key for the TEE key #[arg( diff --git a/crates/op-rbuilder/src/flashtestations/attestation.rs b/crates/op-rbuilder/src/flashtestations/attestation.rs index e52f588ad..534dfcb15 100644 --- a/crates/op-rbuilder/src/flashtestations/attestation.rs +++ b/crates/op-rbuilder/src/flashtestations/attestation.rs @@ -9,8 +9,8 @@ const DEBUG_QUOTE_SERVICE_URL: &str = "http://ns31695324.ip-141-94-163.eu:10080/ pub struct AttestationConfig { /// If true, uses the debug HTTP service instead of real TDX hardware pub debug: bool, - /// The URL of the debug HTTP service - pub debug_url: Option, + /// The URL of the quote provider + pub quote_provider: Option, } /// Trait for attestation providers @@ -18,18 +18,18 @@ pub trait AttestationProvider { fn get_attestation(&self, report_data: [u8; 64]) -> eyre::Result>; } -/// Debug HTTP service attestation provider -pub struct DebugAttestationProvider { +/// Remote attestation provider +pub struct RemoteAttestationProvider { service_url: String, } -impl DebugAttestationProvider { +impl RemoteAttestationProvider { pub fn new(service_url: String) -> Self { Self { service_url } } } -impl AttestationProvider for DebugAttestationProvider { +impl AttestationProvider for RemoteAttestationProvider { fn get_attestation(&self, report_data: [u8; 64]) -> eyre::Result> { let report_data_hex = hex::encode(report_data); let url = format!("{}/{}", self.service_url, report_data_hex); @@ -51,15 +51,16 @@ pub fn get_attestation_provider( config: AttestationConfig, ) -> Box { if config.debug { - Box::new(DebugAttestationProvider::new( + Box::new(RemoteAttestationProvider::new( config - .debug_url + .quote_provider .unwrap_or(DEBUG_QUOTE_SERVICE_URL.to_string()), )) } else { - // TODO: replace with real attestation provider - Box::new(DebugAttestationProvider::new( - DEBUG_QUOTE_SERVICE_URL.to_string(), + Box::new(RemoteAttestationProvider::new( + config + .quote_provider + .expect("remote quote provider must be specified when not in debug mode"), )) } } diff --git a/crates/op-rbuilder/src/flashtestations/service.rs b/crates/op-rbuilder/src/flashtestations/service.rs index 71dbca86c..40f126521 100644 --- a/crates/op-rbuilder/src/flashtestations/service.rs +++ b/crates/op-rbuilder/src/flashtestations/service.rs @@ -47,14 +47,15 @@ impl FlashtestationsService { let attestation_provider = Arc::new(get_attestation_provider(AttestationConfig { debug: args.debug, - debug_url: args.debug_url, + quote_provider: args.quote_provider, })); let tx_manager = TxManager::new( tee_service_signer, args.funding_key .expect("funding key required when flashtestations enabled"), - args.rpc_url, + args.rpc_url + .expect("external rpc url required when flashtestations enabled"), args.registry_address .expect("registry address required when flashtestations enabled"), args.builder_policy_address diff --git a/crates/op-rbuilder/src/tx_signer.rs b/crates/op-rbuilder/src/tx_signer.rs index 71ef7a4b5..dd97aed41 100644 --- a/crates/op-rbuilder/src/tx_signer.rs +++ b/crates/op-rbuilder/src/tx_signer.rs @@ -2,6 +2,7 @@ use std::str::FromStr; use alloy_consensus::SignableTransaction; use alloy_primitives::{Address, B256, Signature, U256}; +use k256::sha2::Sha256; use op_alloy_consensus::OpTypedTransaction; use reth_optimism_primitives::OpTransactionSigned; use reth_primitives::Recovered; @@ -100,6 +101,23 @@ pub fn public_key_to_address(public_key: &PublicKey) -> Address { Address::from_slice(&hash[12..32]) } +// Generate a key deterministically from a seed for debug and testing +// Do not use in production +pub fn generate_key_from_seed(seed: &str) -> (SecretKey, PublicKey, Address) { + // Hash the seed + let mut hasher = Sha256::new(); + hasher.update(seed.as_bytes()); + let hash = hasher.finalize(); + + // Create signing key + let secp = Secp256k1::new(); + let private_key = SecretKey::from_slice(&hash).expect("Failed to create private key"); + let public_key = PublicKey::from_secret_key(&secp, &private_key); + let address = public_key_to_address(&public_key); + + (private_key, public_key, address) +} + #[cfg(test)] mod test { use super::*; From 60e837e60a8d76bfc50a38bd18b200b4e4eaa11d Mon Sep 17 00:00:00 2001 From: sledro Date: Fri, 26 Sep 2025 14:54:35 +0100 Subject: [PATCH 30/54] Enhance Docker build workflow with multi-platform support, metadata extraction, and security scanning This update modifies the Docker build workflow to include support for the 'main' branch and version tags. It introduces a new metadata extraction step, allowing for dynamic tag generation and improved image labeling. Additionally, a security scan step using Trivy has been added to ensure image safety, along with a test step to validate the built image. The workflow now supports manual triggering with input parameters for features and image pushing. --- .github/workflows/docker_build.yml | 215 +++++++++++++++++++++-------- 1 file changed, 159 insertions(+), 56 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index fef419137..f4b4a90c5 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -3,90 +3,193 @@ name: Docker Build Release on: push: branches: - - lightlink # Trigger the workflow on pushes to the main branch + - lightlink + - main tags: - - "**" # Trigger the workflow on tags including hierarchical tags like v1.0/beta + - "v*" pull_request: - types: [opened, synchronize] # Trigger the workflow when a PR is opened or updated + types: [opened, synchronize] + workflow_dispatch: + inputs: + features: + description: "Rust features to enable" + required: false + default: "" + push_image: + description: "Push image to registry" + type: boolean + default: false + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} jobs: - extract-version: - name: Extract version + extract-metadata: + name: Extract metadata runs-on: ubuntu-latest outputs: - VERSION: ${{ steps.extract_version.outputs.VERSION }} + version: ${{ steps.meta.outputs.version }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + primary-tag: ${{ steps.primary-tag.outputs.tag }} + should-push: ${{ steps.push-decision.outputs.should-push }} steps: - - name: Extract version - id: extract_version + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=sha,prefix={{branch}}-,format=short + type=sha,prefix=sha-,format=short + type=raw,value=latest,enable={{is_default_branch}} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=raw,value={{branch}},enable=${{ github.event_name != 'pull_request' }} + type=raw,value=commit-{{sha}},format=short + labels: | + org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} + org.opencontainers.image.revision=${{ github.sha }} + org.opencontainers.image.created={{date 'iso8601'}} + + - name: Get primary tag + id: primary-tag + run: | + # Get the first tag from metadata, with fallback + primary_tag=$(echo '${{ steps.meta.outputs.tags }}' | head -n1) + + # If no tags generated, create a fallback based on event type + if [ -z "$primary_tag" ]; then + case "${{ github.event_name }}" in + "pull_request") + primary_tag="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:pr-${{ github.event.number }}" + ;; + "push") + branch_name=$(echo "${{ github.ref_name }}" | sed 's/[^a-zA-Z0-9._-]/-/g') + primary_tag="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${branch_name}-${{ github.sha }}" + ;; + *) + primary_tag="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}" + ;; + esac + fi + + echo "tag=$primary_tag" >> $GITHUB_OUTPUT + echo "Using primary tag: $primary_tag" + + - name: Decide whether to push + id: push-decision run: | - if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - VERSION="${GITHUB_REF#refs/tags/}" + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + should_push="false" + elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then + should_push="${{ inputs.push_image }}" else - VERSION="$(echo ${GITHUB_SHA} | cut -c1-7)" + should_push="true" fi - echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - - echo "| | |" >> $GITHUB_STEP_SUMMARY - echo "| ------------------- | ---------------------- |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF_TYPE\` | \`${GITHUB_REF_TYPE}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF_NAME\` | \`${GITHUB_REF_NAME}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_REF\` | \`${GITHUB_REF}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`GITHUB_SHA\` | \`${GITHUB_SHA}\` |" >> $GITHUB_STEP_SUMMARY - echo "| \`VERSION\` | \`${VERSION}\` |" >> $GITHUB_STEP_SUMMARY - - build-docker: - name: Build and publish Docker image - needs: extract-version - runs-on: ${{ matrix.configs.runner }} - env: - VERSION: ${{ needs.extract-version.outputs.VERSION }} + echo "should-push=${should_push}" >> $GITHUB_OUTPUT + + - name: Show generated tags (debug) + run: | + echo "All generated tags:" + echo '${{ steps.meta.outputs.tags }}' + echo "" + echo "Primary tag: ${{ steps.primary-tag.outputs.tag }}" + echo "Should push: ${{ steps.push-decision.outputs.should-push }}" + + lint-dockerfile: + name: Lint Dockerfile + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Lint Dockerfile + uses: hadolint/hadolint-action@v3.1.0 + with: + dockerfile: DockerfileOp + failure-threshold: warning + + build-and-push: + name: Build and push Docker image + needs: [extract-metadata, lint-dockerfile] + runs-on: ubuntu-latest + timeout-minutes: 120 permissions: contents: read packages: write - strategy: - matrix: - configs: - - target: linux/amd64 - runner: ubuntu-latest - - target: linux/arm64 - runner: ubuntu-latest + env: + SHOULD_PUSH: ${{ needs.extract-metadata.outputs.should-push }} steps: - - name: checkout sources + - name: Checkout uses: actions/checkout@v4 - - name: docker qemu + - name: Set up QEMU uses: docker/setup-qemu-action@v3 - - name: docker buildx + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: docker metadata - uses: docker/metadata-action@v5 - id: meta - with: - images: ghcr.io/${{ github.repository }} - labels: org.opencontainers.image.source=${{ github.repositoryUrl }} - tags: | - type=sha - type=schedule,pattern=nightly - - - name: docker login + - name: Log in to Container Registry + if: env.SHOULD_PUSH == 'true' uses: docker/login-action@v3 with: - registry: ghcr.io + registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: docker build and push op-rbuilder + - name: Build and push Docker image + id: build uses: docker/build-push-action@v5 with: + context: . + file: DockerfileOp + platforms: linux/amd64,linux/arm64 + push: ${{ env.SHOULD_PUSH == 'true' }} + tags: ${{ needs.extract-metadata.outputs.tags }} + labels: ${{ needs.extract-metadata.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - file: DockerfileOp - context: . - labels: ${{ steps.meta.outputs.labels }} - platforms: ${{ matrix.configs.target }} - push: true - tags: ${{ steps.meta.outputs.tags }} build-args: | RBUILDER_BIN=op-rbuilder + FEATURES=${{ inputs.features || '' }} + + security-scan: + name: Security scan + needs: [build-and-push, extract-metadata] + if: needs.extract-metadata.outputs.should-push == 'true' + runs-on: ubuntu-latest + permissions: + contents: read + security-events: write + steps: + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: ${{ needs.extract-metadata.outputs.primary-tag }} + format: "sarif" + output: "trivy-results.sarif" + + - name: Upload Trivy scan results + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: "trivy-results.sarif" + + test-image: + name: Test Docker image + needs: [build-and-push, extract-metadata] + if: needs.extract-metadata.outputs.should-push == 'true' + runs-on: ubuntu-latest + steps: + - name: Test image + run: | + docker run --rm ${{ needs.extract-metadata.outputs.primary-tag }} --version From 6f36fd9bd8a48d3b5835879fe5e165bed42703dd Mon Sep 17 00:00:00 2001 From: sledro Date: Fri, 26 Sep 2025 14:56:47 +0100 Subject: [PATCH 31/54] Refactor DockerfileOp to optimize package installation and streamline build commands This update enhances the DockerfileOp by consolidating package installation commands to reduce image size and improve build efficiency. It also combines build steps for better readability and performance, ensuring a cleaner build process for the rbuilder application. --- DockerfileOp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/DockerfileOp b/DockerfileOp index deebd0064..a615f0252 100644 --- a/DockerfileOp +++ b/DockerfileOp @@ -4,9 +4,14 @@ WORKDIR /app LABEL org.opencontainers.image.source=https://github.com/flashbots/op-rbuilder LABEL org.opencontainers.image.licenses="MIT OR Apache-2.0" -RUN apt-get update && apt-get -y upgrade && apt-get install -y libclang-dev pkg-config libtss2-dev - -RUN cargo install cargo-chef --locked +RUN apt-get update && \ + apt-get -y upgrade && \ + apt-get install -y --no-install-recommends \ + libclang-dev \ + pkg-config \ + libtss2-dev && \ + rm -rf /var/lib/apt/lists/* && \ + cargo install cargo-chef --locked FROM chef AS planner COPY . . @@ -27,15 +32,18 @@ ARG RBUILDER_BIN="op-rbuilder" RUN cargo chef cook --profile $BUILD_PROFILE --recipe-path recipe.json COPY . . -RUN cargo build --profile $BUILD_PROFILE --bin $RBUILDER_BIN --package $RBUILDER_BIN --features="$FEATURES" - -RUN ls -la /app/target/$BUILD_PROFILE/$RBUILDER_BIN -RUN cp /app/target/$BUILD_PROFILE/$RBUILDER_BIN /app/op-rbuilder +RUN cargo build --profile $BUILD_PROFILE --bin $RBUILDER_BIN --package $RBUILDER_BIN --features="$FEATURES" && \ + ls -la /app/target/$BUILD_PROFILE/$RBUILDER_BIN && \ + cp /app/target/$BUILD_PROFILE/$RBUILDER_BIN /app/op-rbuilder FROM ubuntu:22.04 AS runtime RUN apt-get update && \ - apt-get install -y ca-certificates libssl-dev pkg-config strace && \ + apt-get install -y --no-install-recommends \ + ca-certificates \ + libssl-dev \ + pkg-config \ + strace && \ rm -rf /var/lib/apt/lists/* WORKDIR /app From 05ef6f644f8b215da0f8cd6745f73b2ecbf1b3a1 Mon Sep 17 00:00:00 2001 From: sledro Date: Fri, 26 Sep 2025 14:58:36 +0100 Subject: [PATCH 32/54] Add ignore rule for DL3008 in Docker build workflow This update adds an ignore rule for the DL3008 warning in the docker_build workflow, allowing for more flexibility in the DockerfileOp without compromising the build process integrity. --- .github/workflows/docker_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index f4b4a90c5..272bda7c7 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -118,6 +118,7 @@ jobs: with: dockerfile: DockerfileOp failure-threshold: warning + ignore: DL3008 build-and-push: name: Build and push Docker image From 19c3ef9a9f03c4febaa6c3c10919f6249bc59489 Mon Sep 17 00:00:00 2001 From: sledro Date: Fri, 26 Sep 2025 15:00:57 +0100 Subject: [PATCH 33/54] Refactor Docker build workflow to streamline tag generation and remove unnecessary entries This update simplifies the tag generation process in the docker_build workflow by removing redundant tag types and enhancing clarity in the configuration. It maintains the integrity of the build process while improving overall readability. --- .github/workflows/docker_build.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 272bda7c7..d76ac4b52 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -48,14 +48,11 @@ jobs: tags: | type=ref,event=branch type=ref,event=pr - type=sha,prefix={{branch}}-,format=short type=sha,prefix=sha-,format=short type=raw,value=latest,enable={{is_default_branch}} type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} - type=raw,value={{branch}},enable=${{ github.event_name != 'pull_request' }} - type=raw,value=commit-{{sha}},format=short labels: | org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} org.opencontainers.image.revision=${{ github.sha }} From af00d1f5709789bdb6d770822acd69541149e5a4 Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 29 Sep 2025 12:03:00 +0200 Subject: [PATCH 34/54] release: 0.2.4 (#278) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 686a988d6..a6b1489ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6274,7 +6274,7 @@ dependencies = [ [[package]] name = "op-rbuilder" -version = "0.2.3" +version = "0.2.4" dependencies = [ "alloy-consensus", "alloy-contract", diff --git a/Cargo.toml b/Cargo.toml index e391ca2be..87f68ee81 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "0.2.3" +version = "0.2.4" edition = "2024" rust-version = "1.86" license = "MIT OR Apache-2.0" From 220878f84f5d459ff2fc5e887ddfed3cd9eb7dd5 Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 29 Sep 2025 13:54:54 +0200 Subject: [PATCH 35/54] ci: automatically build containers on release (#279) --- .github/workflows/op_rbuilder_release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/op_rbuilder_release.yaml b/.github/workflows/op_rbuilder_release.yaml index 827609d06..7a16c95ed 100644 --- a/.github/workflows/op_rbuilder_release.yaml +++ b/.github/workflows/op_rbuilder_release.yaml @@ -158,7 +158,7 @@ jobs: echo "${{ steps.create-release-draft.outputs.url }}" >> $GITHUB_STEP_SUMMARY build-docker: - if: ${{ github.event.inputs.build-docker == 'true' }} + if: ${{ (github.ref_type == 'tag') || (github.event.inputs.build-docker == 'true') }} name: Build and publish Docker image needs: extract-version runs-on: ${{ matrix.configs.runner }} From eded2ddc26a383a29f9a051fa894776d72f57203 Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 30 Sep 2025 00:59:31 +0100 Subject: [PATCH 36/54] Remove timeout setting from Docker build workflow to enhance flexibility in build duration --- .github/workflows/docker_build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index d76ac4b52..d57981038 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -121,7 +121,6 @@ jobs: name: Build and push Docker image needs: [extract-metadata, lint-dockerfile] runs-on: ubuntu-latest - timeout-minutes: 120 permissions: contents: read packages: write From 80fb078afb9a6fa9e43537728151f0f56932e110 Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 30 Sep 2025 00:59:38 +0100 Subject: [PATCH 37/54] Update Docker build workflow to use 'Large' runner for metadata extraction job --- .github/workflows/docker_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index d57981038..f8223ffe3 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -27,7 +27,7 @@ env: jobs: extract-metadata: name: Extract metadata - runs-on: ubuntu-latest + runs-on: Large outputs: version: ${{ steps.meta.outputs.version }} tags: ${{ steps.meta.outputs.tags }} From d58e01b3881f803647a49c9dd92dcbd689662248 Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 30 Sep 2025 01:16:05 +0100 Subject: [PATCH 38/54] Optimize Rust compilation settings in DockerfileOp and update GitHub Actions workflow to specify a more powerful runner and set a timeout for the build process. --- .github/workflows/docker_build.yml | 6 ++++-- DockerfileOp | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index f8223ffe3..78a8f6246 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -27,7 +27,8 @@ env: jobs: extract-metadata: name: Extract metadata - runs-on: Large + runs-on: + labels: Large outputs: version: ${{ steps.meta.outputs.version }} tags: ${{ steps.meta.outputs.tags }} @@ -120,7 +121,8 @@ jobs: build-and-push: name: Build and push Docker image needs: [extract-metadata, lint-dockerfile] - runs-on: ubuntu-latest + runs-on: ubuntu-latest-8-cores + timeout-minutes: 60 permissions: contents: read packages: write diff --git a/DockerfileOp b/DockerfileOp index a615f0252..0674e8e82 100644 --- a/DockerfileOp +++ b/DockerfileOp @@ -29,6 +29,11 @@ ENV RUSTFLAGS="$RUSTFLAGS" ARG FEATURES="" ARG RBUILDER_BIN="op-rbuilder" +# Optimize Rust compilation for CI +ENV CARGO_BUILD_JOBS=0 +ENV CARGO_INCREMENTAL=0 +ENV RUST_BACKTRACE=1 + RUN cargo chef cook --profile $BUILD_PROFILE --recipe-path recipe.json COPY . . From 94639abad5d427c661eea8a952894484330974dd Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 30 Sep 2025 01:22:05 +0100 Subject: [PATCH 39/54] Update Docker build workflow to use 'Large' runner for all jobs, enhancing performance and consistency across the pipeline. --- .github/workflows/docker_build.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 78a8f6246..e6e88dad5 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -106,7 +106,8 @@ jobs: lint-dockerfile: name: Lint Dockerfile - runs-on: ubuntu-latest + runs-on: + labels: Large steps: - name: Checkout uses: actions/checkout@v4 @@ -121,8 +122,8 @@ jobs: build-and-push: name: Build and push Docker image needs: [extract-metadata, lint-dockerfile] - runs-on: ubuntu-latest-8-cores - timeout-minutes: 60 + runs-on: + labels: Large permissions: contents: read packages: write @@ -166,7 +167,8 @@ jobs: name: Security scan needs: [build-and-push, extract-metadata] if: needs.extract-metadata.outputs.should-push == 'true' - runs-on: ubuntu-latest + runs-on: + labels: Large permissions: contents: read security-events: write @@ -187,7 +189,8 @@ jobs: name: Test Docker image needs: [build-and-push, extract-metadata] if: needs.extract-metadata.outputs.should-push == 'true' - runs-on: ubuntu-latest + runs-on: + labels: Large steps: - name: Test image run: | From c86a2408e450f897fab4c7bb8dd4a4d22f9093ee Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 30 Sep 2025 01:27:27 +0100 Subject: [PATCH 40/54] Enhance DockerfileOp for improved Rust compilation by configuring a faster linker for high-core builds and optimizing build jobs for a 16-core CI runner. This update aims to boost performance and efficiency during the build process. --- DockerfileOp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/DockerfileOp b/DockerfileOp index 0674e8e82..d3fd04590 100644 --- a/DockerfileOp +++ b/DockerfileOp @@ -29,15 +29,22 @@ ENV RUSTFLAGS="$RUSTFLAGS" ARG FEATURES="" ARG RBUILDER_BIN="op-rbuilder" -# Optimize Rust compilation for CI -ENV CARGO_BUILD_JOBS=0 +# Optimize Rust compilation for 16-core CI runner ENV CARGO_INCREMENTAL=0 ENV RUST_BACKTRACE=1 +ENV CARGO_NET_GIT_FETCH_WITH_CLI=true + +# Use faster linker and configure for high-core builds +ARG TARGETARCH +RUN if [ "$TARGETARCH" = "amd64" ]; then \ + apt-get update && apt-get install -y --no-install-recommends lld && rm -rf /var/lib/apt/lists/* && \ + echo '[target.x86_64-unknown-linux-gnu]\nrustflags = ["-C", "link-arg=-fuse-ld=lld"]' >> /usr/local/cargo/config.toml; \ + fi RUN cargo chef cook --profile $BUILD_PROFILE --recipe-path recipe.json COPY . . -RUN cargo build --profile $BUILD_PROFILE --bin $RBUILDER_BIN --package $RBUILDER_BIN --features="$FEATURES" && \ +RUN CARGO_BUILD_JOBS=16 cargo build --profile $BUILD_PROFILE --bin $RBUILDER_BIN --package $RBUILDER_BIN --features="$FEATURES" && \ ls -la /app/target/$BUILD_PROFILE/$RBUILDER_BIN && \ cp /app/target/$BUILD_PROFILE/$RBUILDER_BIN /app/op-rbuilder From c855d07d10b9e2f7053bb28498190e54245d5816 Mon Sep 17 00:00:00 2001 From: sledro Date: Tue, 30 Sep 2025 03:14:40 +0100 Subject: [PATCH 41/54] Update Docker build workflow to always push images for all event types, simplifying the push decision logic. This change enhances the workflow's consistency and ensures that images are pushed regardless of the triggering event. --- .github/workflows/docker_build.yml | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index e6e88dad5..cbf7c9fde 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -15,10 +15,6 @@ on: description: "Rust features to enable" required: false default: "" - push_image: - description: "Push image to registry" - type: boolean - default: false env: REGISTRY: ghcr.io @@ -87,13 +83,15 @@ jobs: - name: Decide whether to push id: push-decision run: | - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - should_push="false" - elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then - should_push="${{ inputs.push_image }}" - else - should_push="true" - fi + # Always push images for all event types + echo "Event name: ${{ github.event_name }}" + echo "Ref: ${{ github.ref }}" + echo "Event type: ${{ github.ref_type }}" + + should_push="true" + echo "Always pushing images - configured to push for all events" + + echo "Final decision: should_push=${should_push}" echo "should-push=${should_push}" >> $GITHUB_OUTPUT - name: Show generated tags (debug) @@ -154,7 +152,7 @@ jobs: context: . file: DockerfileOp platforms: linux/amd64,linux/arm64 - push: ${{ env.SHOULD_PUSH == 'true' }} + push: ${{ needs.extract-metadata.outputs.should-push == 'true' }} tags: ${{ needs.extract-metadata.outputs.tags }} labels: ${{ needs.extract-metadata.outputs.labels }} cache-from: type=gha @@ -163,6 +161,13 @@ jobs: RBUILDER_BIN=op-rbuilder FEATURES=${{ inputs.features || '' }} + - name: Show build results (debug) + run: | + echo "Push decision: ${{ needs.extract-metadata.outputs.should-push }}" + echo "Push boolean: ${{ needs.extract-metadata.outputs.should-push == 'true' }}" + echo "Build digest: ${{ steps.build.outputs.digest }}" + echo "Build metadata: ${{ steps.build.outputs.metadata }}" + security-scan: name: Security scan needs: [build-and-push, extract-metadata] From f7086347e083a8e6d589ce8aa527e4b68d9ec3a9 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Tue, 30 Sep 2025 21:11:31 +0500 Subject: [PATCH 42/54] Fix readme (#271) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 85abb2bf6..599f360c4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # op-rbuilder -[![CI status](https://github.com/flashbots/op-rbuilder/actions/workflows/checks.yaml/badge.svg)](https://github.com/flashbots/op-rbuilder/actions) +[![CI status](https://github.com/flashbots/op-rbuilder/actions/workflows/op_rbuilder_checks.yaml/badge.svg)](https://github.com/flashbots/op-rbuilder/actions) `op-rbuilder` is a Rust-based block builder designed to build blocks for the Optimism stack. From 4cd0be6b7483c06b6baa56bb20d6864a9028a29a Mon Sep 17 00:00:00 2001 From: Ash Kunda <18058966+akundaz@users.noreply.github.com> Date: Tue, 30 Sep 2025 12:23:26 -0400 Subject: [PATCH 43/54] add metrics to track gas used by reverting txs (#273) --- crates/op-rbuilder/src/builders/context.rs | 16 ++++++---------- crates/op-rbuilder/src/metrics.rs | 13 +++++++++---- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index 9604ced71..b49c697f9 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -325,6 +325,7 @@ impl OpPayloadBuilderCtx { let mut num_txs_simulated_success = 0; let mut num_txs_simulated_fail = 0; let mut num_bundles_reverted = 0; + let mut reverted_gas_used = 0; let base_fee = self.base_fee(); let tx_da_limit = self.da_config.max_da_tx_size(); let mut evm = self.evm_config.evm_with_env(&mut *db, self.evm_env.clone()); @@ -337,15 +338,6 @@ impl OpPayloadBuilderCtx { block_gas_limit = ?block_gas_limit, ); - // Remove once we merge Reth 1.4.4 - // Fixed in https://github.com/paradigmxyz/reth/pull/16514 - self.metrics - .da_block_size_limit - .set(block_da_limit.map_or(-1.0, |v| v as f64)); - self.metrics - .da_tx_size_limit - .set(tx_da_limit.map_or(-1.0, |v| v as f64)); - let block_attr = BlockConditionalAttributes { number: self.block_number(), timestamp: self.attributes().timestamp(), @@ -451,7 +443,7 @@ impl OpPayloadBuilderCtx { } // this is an error that we should treat as fatal for this attempt log_txn(TxnExecutionResult::EvmError); - return Err(PayloadBuilderError::EvmExecutionError(Box::new(err))); + return Err(PayloadBuilderError::evm(err)); } }; @@ -478,8 +470,11 @@ impl OpPayloadBuilderCtx { if result.is_success() { log_txn(TxnExecutionResult::Success); num_txs_simulated_success += 1; + self.metrics.successful_tx_gas_used.record(gas_used as f64); } else { num_txs_simulated_fail += 1; + reverted_gas_used += gas_used as i32; + self.metrics.reverted_tx_gas_used.record(gas_used as f64); if is_bundle_tx { num_bundles_reverted += 1; } @@ -539,6 +534,7 @@ impl OpPayloadBuilderCtx { num_txs_simulated_success, num_txs_simulated_fail, num_bundles_reverted, + reverted_gas_used, ); debug!( diff --git a/crates/op-rbuilder/src/metrics.rs b/crates/op-rbuilder/src/metrics.rs index df13bd1da..dd43d9580 100644 --- a/crates/op-rbuilder/src/metrics.rs +++ b/crates/op-rbuilder/src/metrics.rs @@ -123,14 +123,16 @@ pub struct OpRBuilderMetrics { pub payload_num_tx_simulated_fail: Histogram, /// Latest number of transactions in the payload that failed simulation pub payload_num_tx_simulated_fail_gauge: Gauge, + /// Histogram of gas used by successful transactions + pub successful_tx_gas_used: Histogram, + /// Histogram of gas used by reverted transactions + pub reverted_tx_gas_used: Histogram, + /// Gas used by reverted transactions in the latest block + pub payload_reverted_tx_gas_used: Gauge, /// Histogram of tx simulation duration pub tx_simulation_duration: Histogram, /// Byte size of transactions pub tx_byte_size: Histogram, - /// Da block size limit - pub da_block_size_limit: Gauge, - /// Da tx size limit - pub da_tx_size_limit: Gauge, /// How much less flashblocks we issue to be on time with block construction pub reduced_flashblocks_number: Histogram, /// How much less flashblocks we issued in reality, comparing to calculated number for block @@ -152,6 +154,7 @@ pub struct OpRBuilderMetrics { } impl OpRBuilderMetrics { + #[expect(clippy::too_many_arguments)] pub fn set_payload_builder_metrics( &self, payload_tx_simulation_time: impl IntoF64 + Copy, @@ -160,6 +163,7 @@ impl OpRBuilderMetrics { num_txs_simulated_success: impl IntoF64 + Copy, num_txs_simulated_fail: impl IntoF64 + Copy, num_bundles_reverted: impl IntoF64, + reverted_gas_used: impl IntoF64, ) { self.payload_tx_simulation_duration .record(payload_tx_simulation_time); @@ -178,6 +182,7 @@ impl OpRBuilderMetrics { self.payload_num_tx_simulated_fail_gauge .set(num_txs_simulated_fail); self.bundles_reverted.record(num_bundles_reverted); + self.payload_reverted_tx_gas_used.set(reverted_gas_used); } } From 445c10802fe2c7558712876a096ed7eca002bdc3 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Thu, 2 Oct 2025 06:22:38 +0500 Subject: [PATCH 44/54] Add reproducible builds (#233) * Add makefile command to create reproducible build * Remove unnecessary "unknown" target vendor * Docker + CI for reproducible builds * Only build non-reproducible target on new PRs * Unknown target is needed * Fetch git history for correct source date epoch * Force __TIME__ and __DATE_ * Run reproducibility verification every three days * Review changes --------- Co-authored-by: Alex Hulbert --- .github/workflows/checks_docker.yaml | 3 ++ .github/workflows/docker_build.yaml | 14 ++++++- .github/workflows/op_rbuilder_release.yaml | 10 ++++- .../op_rbuilder_reproducible_verify.yaml | 37 +++++++++++++++++++ Dockerfile | 23 ++++++++++++ Makefile | 29 +++++++++++++++ 6 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/op_rbuilder_reproducible_verify.yaml diff --git a/.github/workflows/checks_docker.yaml b/.github/workflows/checks_docker.yaml index bb0a6b9b8..212afe6dc 100644 --- a/.github/workflows/checks_docker.yaml +++ b/.github/workflows/checks_docker.yaml @@ -15,6 +15,8 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Docker QEMU uses: docker/setup-qemu-action@v3 @@ -29,4 +31,5 @@ jobs: cache-to: type=gha,mode=max platforms: linux/amd64 context: . + target: rbuilder-runtime push: false diff --git a/.github/workflows/docker_build.yaml b/.github/workflows/docker_build.yaml index 1e619ca3b..1f3a24c48 100644 --- a/.github/workflows/docker_build.yaml +++ b/.github/workflows/docker_build.yaml @@ -46,9 +46,18 @@ jobs: runner: warp-ubuntu-latest-x64-16x - target: linux/arm64 runner: warp-ubuntu-latest-arm64-16x + docker_target: + - name: regular + target: rbuilder-runtime + tag_suffix: "" + - name: reproducible + target: rbuilder-reproducible-runtime + tag_suffix: "-reproducible" steps: - name: checkout sources uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: docker qemu uses: docker/setup-qemu-action@v3 @@ -83,6 +92,9 @@ jobs: labels: ${{ steps.meta.outputs.labels }} platforms: ${{ matrix.configs.target }} push: true - tags: ${{ steps.meta.outputs.tags }} + target: ${{ matrix.docker_target.target }} + tags: | + ghcr.io/${{ github.repository }}/op-rbuilder:latest${{ matrix.docker_target.tag_suffix }} + ghcr.io/${{ github.repository }}/op-rbuilder:sha-${{ env.VERSION }}${{ matrix.docker_target.tag_suffix }} build-args: | RBUILDER_BIN=op-rbuilder diff --git a/.github/workflows/op_rbuilder_release.yaml b/.github/workflows/op_rbuilder_release.yaml index 7a16c95ed..6795b5166 100644 --- a/.github/workflows/op_rbuilder_release.yaml +++ b/.github/workflows/op_rbuilder_release.yaml @@ -100,8 +100,14 @@ jobs: run: | git config --global --add safe.directory "$(pwd)" . $HOME/.cargo/env - cargo build --release --features=${{ matrix.features }} --target ${{ matrix.configs.target }} --package op-rbuilder - + SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ + RUSTFLAGS="--C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata='' --remap-path-prefix=$(pwd)=." \ + CARGO_INCREMENTAL=0 \ + LC_ALL=C \ + TZ=UTC \ + CFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ + CXXFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ + cargo build --release --features=${{ matrix.features }} --locked --target ${{ matrix.configs.target }} --package op-rbuilder - name: Upload op-rbuilder artifact uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/op_rbuilder_reproducible_verify.yaml b/.github/workflows/op_rbuilder_reproducible_verify.yaml new file mode 100644 index 000000000..a59a86bae --- /dev/null +++ b/.github/workflows/op_rbuilder_reproducible_verify.yaml @@ -0,0 +1,37 @@ +name: Verify Reproducible Build + +on: + workflow_dispatch: + schedule: + - cron: "0 2 */3 * *" + +jobs: + verify: + name: "[op-rbuilder] Verify reproducible builds" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Build twice and compare + run: | + export REPRO_FLAGS="--C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata='' --remap-path-prefix=$(pwd)=." + export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) + + RUSTFLAGS="$REPRO_FLAGS" CARGO_INCREMENTAL=0 LC_ALL=C TZ=UTC \ + CFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" CXXFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ + cargo build --release --locked -p op-rbuilder --target x86_64-unknown-linux-gnu + mv target/x86_64-unknown-linux-gnu/release/op-rbuilder build1 + + cargo clean + + RUSTFLAGS="$REPRO_FLAGS" CARGO_INCREMENTAL=0 LC_ALL=C TZ=UTC \ + CFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" CXXFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ + cargo build --release --locked -p op-rbuilder --target x86_64-unknown-linux-gnu + mv target/x86_64-unknown-linux-gnu/release/op-rbuilder build2 + + if cmp -s build1 build2; then + echo "✅ Builds are reproducible" + else + echo "❌ Builds differ" + exit 1 + fi diff --git a/Dockerfile b/Dockerfile index 5e9258c07..e35493215 100644 --- a/Dockerfile +++ b/Dockerfile @@ -73,6 +73,23 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=$SCCACHE_DIR,sharing=locked \ cargo build --release --features="$FEATURES" --package=${RBUILDER_BIN} +# +# Reproducible builder container (deterministic source-date-epoch, no caching, no incremental builds) +# +FROM base AS rbuilder-reproducible +ARG RBUILDER_BIN +ARG FEATURES +WORKDIR /app +COPY . . +RUN SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ + RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata='' --remap-path-prefix=/app=." \ + CARGO_INCREMENTAL=0 \ + LC_ALL=C \ + TZ=UTC \ + CFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ + CXXFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ + cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} --target x86_64-unknown-linux-gnu + # Runtime container for rbuilder FROM gcr.io/distroless/cc-debian12 AS rbuilder-runtime ARG RBUILDER_BIN @@ -80,3 +97,9 @@ WORKDIR /app COPY --from=rbuilder /app/target/release/${RBUILDER_BIN} /app/rbuilder ENTRYPOINT ["/app/rbuilder"] +# Reproducible runtime container for rbuilder +FROM gcr.io/distroless/cc-debian12 AS rbuilder-reproducible-runtime +ARG RBUILDER_BIN +WORKDIR /app +COPY --from=rbuilder-reproducible /app/target/x86_64-unknown-linux-gnu/release/${RBUILDER_BIN} /app/rbuilder +ENTRYPOINT ["/app/rbuilder"] diff --git a/Makefile b/Makefile index 62625a939..0eb0c4ad6 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,26 @@ GIT_TAG ?= $(shell git describe --tags --abbrev=0) FEATURES ?= +# Environment variables for reproducible builds +# Initialize RUSTFLAGS +RUST_BUILD_FLAGS = +# Enable static linking to ensure reproducibility across builds +RUST_BUILD_FLAGS += --C target-feature=+crt-static +# Set the linker to use static libgcc to ensure reproducibility across builds +RUST_BUILD_FLAGS += -C link-arg=-static-libgcc +# Remove build ID from the binary to ensure reproducibility across builds +RUST_BUILD_FLAGS += -C link-arg=-Wl,--build-id=none +# Remove metadata hash from symbol names to ensure reproducible builds +RUST_BUILD_FLAGS += -C metadata='' +# Set timestamp from last git commit for reproducible builds +SOURCE_DATE ?= $(shell git log -1 --pretty=%ct) +# Disable incremental compilation to avoid non-deterministic artifacts +CARGO_INCREMENTAL_VAL = 0 +# Set C locale for consistent string handling and sorting +LOCALE_VAL = C +# Set UTC timezone for consistent time handling across builds +TZ_VAL = UTC + ##@ Help .PHONY: help @@ -31,6 +51,15 @@ build: ## Build (debug version) op-rbuilder: ## Build op-rbuilder (debug version) cargo build -p op-rbuilder --bin op-rbuilder --features "$(FEATURES)" +.PHONY: build-reproducible +build-reproducible: ## Build the reth binary into `target` directory with reproducible builds + SOURCE_DATE_EPOCH=$(SOURCE_DATE) \ + RUSTFLAGS="${RUST_BUILD_FLAGS} --remap-path-prefix $$(pwd)=." \ + CARGO_INCREMENTAL=${CARGO_INCREMENTAL_VAL} \ + LC_ALL=${LOCALE_VAL} \ + TZ=${TZ_VAL} \ + cargo build -p op-rbuilder --bin op-rbuilder --features "$(FEATURES)" --profile "release" --locked --features "$(FEATURES)" --target x86_64-unknown-linux-gnu + .PHONY: tdx-quote-provider tdx-quote-provider: ## Build tdx-quote-provider (debug version) cargo build -p tdx-quote-provider --bin tdx-quote-provider --features "$(FEATURES)" From 1da7c001051d469f9a59783dc11428686f3dce64 Mon Sep 17 00:00:00 2001 From: shana Date: Fri, 3 Oct 2025 10:40:47 -0700 Subject: [PATCH 45/54] Add flashblocks number integration tests (#277) * Add flashblocks number integration tests * comments * comments --- crates/op-rbuilder/src/builders/builder_tx.rs | 69 +- .../src/builders/flashblocks/builder_tx.rs | 144 ++-- .../src/builders/flashblocks/payload.rs | 21 +- .../src/builders/standard/builder_tx.rs | 2 - .../src/builders/standard/payload.rs | 3 +- .../src/flashtestations/service.rs | 1 - .../src/primitives/reth/execution.rs | 18 +- crates/op-rbuilder/src/tests/flashblocks.rs | 255 ++++++- .../contracts/BlockBuilderPolicy.json | 687 ++++++++++++++++++ .../contracts/FlashblocksNumberContract.json | 450 ++++++++++++ .../contracts/FlashtestationRegistry.json | 641 ++++++++++++++++ .../MockAutomataDcapAttestationFee.json | 86 +++ .../framework/artifacts/quote-output.bin | Bin 0 -> 597 bytes .../tests/framework/artifacts/test-quote.bin | Bin 0 -> 5006 bytes .../src/tests/framework/contracts.rs | 43 ++ .../op-rbuilder/src/tests/framework/driver.rs | 4 +- .../src/tests/framework/instance.rs | 13 +- crates/op-rbuilder/src/tests/framework/mod.rs | 10 +- crates/op-rbuilder/src/tests/framework/txs.rs | 19 +- .../op-rbuilder/src/tests/framework/utils.rs | 130 +++- 20 files changed, 2383 insertions(+), 213 deletions(-) create mode 100644 crates/op-rbuilder/src/tests/framework/artifacts/contracts/BlockBuilderPolicy.json create mode 100644 crates/op-rbuilder/src/tests/framework/artifacts/contracts/FlashblocksNumberContract.json create mode 100644 crates/op-rbuilder/src/tests/framework/artifacts/contracts/FlashtestationRegistry.json create mode 100644 crates/op-rbuilder/src/tests/framework/artifacts/contracts/MockAutomataDcapAttestationFee.json create mode 100644 crates/op-rbuilder/src/tests/framework/artifacts/quote-output.bin create mode 100644 crates/op-rbuilder/src/tests/framework/artifacts/test-quote.bin create mode 100644 crates/op-rbuilder/src/tests/framework/contracts.rs diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index b79200d4e..a8ba3bd80 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -2,7 +2,7 @@ use alloy_consensus::TxEip1559; use alloy_eips::{Encodable2718, eip7623::TOTAL_COST_FLOOR_PER_TOKEN}; use alloy_evm::Database; use alloy_primitives::{ - Address, TxKind, + Address, B256, Log, TxKind, map::foldhash::{HashSet, HashSetExt}, }; use core::fmt::Debug; @@ -30,7 +30,22 @@ use crate::{ pub struct BuilderTransactionCtx { pub gas_used: u64, pub da_size: u64, - pub signed_tx: Option>, + pub signed_tx: Recovered, + // whether the transaction should be a top of block or + // bottom of block transaction + pub is_top_of_block: bool, +} + +impl BuilderTransactionCtx { + pub fn set_top_of_block(mut self) -> Self { + self.is_top_of_block = true; + self + } + + pub fn set_bottom_of_block(mut self) -> Self { + self.is_top_of_block = false; + self + } } /// Possible error variants during construction of builder txs. @@ -80,7 +95,6 @@ pub trait BuilderTransactions: Debug { info: &mut ExecutionInfo, ctx: &OpPayloadBuilderCtx, db: &mut State, - top_of_block: bool, ) -> Result, BuilderTransactionError>; fn add_builder_txs( @@ -98,30 +112,26 @@ pub trait BuilderTransactions: Debug { let mut invalid: HashSet
= HashSet::new(); - let builder_txs = self.simulate_builder_txs( - state_provider, - info, - builder_ctx, - evm.db_mut(), - top_of_block, - )?; + let builder_txs = + self.simulate_builder_txs(state_provider, info, builder_ctx, evm.db_mut())?; for builder_tx in builder_txs.iter() { - let signed_tx = match builder_tx.signed_tx.clone() { - Some(tx) => tx, - None => continue, - }; - if invalid.contains(&signed_tx.signer()) { - warn!(target: "payload_builder", tx_hash = ?signed_tx.tx_hash(), "builder signer invalid as previous builder tx reverted"); + if builder_tx.is_top_of_block != top_of_block { + // don't commit tx if the buidler tx is not being added in the intended + // position in the block + continue; + } + if invalid.contains(&builder_tx.signed_tx.signer()) { + warn!(target: "payload_builder", tx_hash = ?builder_tx.signed_tx.tx_hash(), "builder signer invalid as previous builder tx reverted"); continue; } let ResultAndState { result, state } = evm - .transact(&signed_tx) + .transact(&builder_tx.signed_tx) .map_err(|err| BuilderTransactionError::EvmExecutionError(Box::new(err)))?; if !result.is_success() { - warn!(target: "payload_builder", tx_hash = ?signed_tx.tx_hash(), "builder tx reverted"); - invalid.insert(signed_tx.signer()); + warn!(target: "payload_builder", tx_hash = ?builder_tx.signed_tx.tx_hash(), "builder tx reverted"); + invalid.insert(builder_tx.signed_tx.signer()); continue; } @@ -130,7 +140,7 @@ pub trait BuilderTransactions: Debug { info.cumulative_gas_used += gas_used; let ctx = ReceiptBuilderCtx { - tx: signed_tx.inner(), + tx: builder_tx.signed_tx.inner(), evm: &evm, result, state: &state, @@ -142,9 +152,9 @@ pub trait BuilderTransactions: Debug { evm.db_mut().commit(state); // Append sender and transaction to the respective lists - info.executed_senders.push(signed_tx.signer()); + info.executed_senders.push(builder_tx.signed_tx.signer()); info.executed_transactions - .push(signed_tx.clone().into_inner()); + .push(builder_tx.signed_tx.clone().into_inner()); } // Release the db reference by dropping evm @@ -172,12 +182,8 @@ pub trait BuilderTransactions: Debug { .evm_with_env(&mut simulation_state, ctx.evm_env.clone()); for builder_tx in builder_txs { - let signed_tx = match builder_tx.signed_tx.clone() { - Some(tx) => tx, - None => continue, - }; let ResultAndState { state, .. } = evm - .transact(&signed_tx) + .transact(&builder_tx.signed_tx) .map_err(|err| BuilderTransactionError::EvmExecutionError(Box::new(err)))?; evm.db_mut().commit(state); @@ -214,7 +220,8 @@ impl BuilderTxBase { Ok(Some(BuilderTransactionCtx { gas_used, da_size, - signed_tx: Some(signed_tx), + signed_tx, + is_top_of_block: false, })) } None => Ok(None), @@ -276,7 +283,7 @@ impl BuilderTxBase { } } -pub(super) fn get_nonce( +pub(crate) fn get_nonce( db: &mut State, address: Address, ) -> Result { @@ -284,3 +291,7 @@ pub(super) fn get_nonce( .map(|acc| acc.account_info().unwrap_or_default().nonce) .map_err(|_| BuilderTransactionError::AccountLoadFailed(address)) } + +pub(crate) fn log_exists(logs: &[Log], topic: &B256) -> bool { + logs.iter().any(|log| log.topics().first() == Some(topic)) +} diff --git a/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs b/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs index 3445bb2e5..7588dd4e3 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/builder_tx.rs @@ -2,8 +2,8 @@ use alloy_consensus::TxEip1559; use alloy_eips::Encodable2718; use alloy_evm::{Database, Evm}; use alloy_op_evm::OpEvm; -use alloy_primitives::{Address, Bytes, TxKind, U256}; -use alloy_sol_types::{SolCall, SolError, sol}; +use alloy_primitives::{Address, B256, TxKind}; +use alloy_sol_types::{Error, SolCall, SolEvent, SolInterface, sol}; use core::fmt::Debug; use op_alloy_consensus::OpTypedTransaction; use op_revm::OpHaltReason; @@ -21,7 +21,7 @@ use tracing::warn; use crate::{ builders::{ BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions, - builder_tx::{BuilderTxBase, get_nonce}, + builder_tx::{BuilderTxBase, get_nonce, log_exists}, context::OpPayloadBuilderCtx, flashblocks::payload::FlashblocksExtraCtx, }, @@ -33,62 +33,34 @@ use crate::{ sol!( // From https://github.com/Uniswap/flashblocks_number_contract/blob/main/src/FlashblockNumber.sol #[sol(rpc, abi)] + #[derive(Debug)] interface IFlashblockNumber { function incrementFlashblockNumber() external; - } - // @notice Emitted when flashblock index is incremented - // @param newFlashblockIndex The new flashblock index (0-indexed within each L2 block) - event FlashblockIncremented(uint256 newFlashblockIndex); + // @notice Emitted when flashblock index is incremented + // @param newFlashblockIndex The new flashblock index (0-indexed within each L2 block) + event FlashblockIncremented(uint256 newFlashblockIndex); - /// ----------------------------------------------------------------------- - /// Errors - /// ----------------------------------------------------------------------- - error NonBuilderAddress(address addr); - error MismatchedFlashblockNumber(uint256 expectedFlashblockNumber, uint256 actualFlashblockNumber); + /// ----------------------------------------------------------------------- + /// Errors + /// ----------------------------------------------------------------------- + error NonBuilderAddress(address addr); + error MismatchedFlashblockNumber(uint256 expectedFlashblockNumber, uint256 actualFlashblockNumber); + } ); #[derive(Debug, thiserror::Error)] pub(super) enum FlashblockNumberError { - #[error("non builder address: {0}")] - NonBuilderAddress(Address), - #[error("mismatched flashblock number: expected {0}, actual {1}")] - MismatchedFlashblockNumber(U256, U256), - #[error("unknown revert: {0}")] - Unknown(String), + #[error("flashblocks number contract tx reverted: {0:?}")] + Revert(IFlashblockNumber::IFlashblockNumberErrors), + #[error("contract may be invalid, mismatch in log emitted: expected {0:?}")] + LogMismatch(B256), + #[error("unknown revert: {0} err: {1}")] + Unknown(String, Error), #[error("halt: {0:?}")] Halt(OpHaltReason), } -impl From for FlashblockNumberError { - fn from(value: Bytes) -> Self { - // Empty revert - if value.is_empty() { - return FlashblockNumberError::Unknown( - "Transaction reverted without reason".to_string(), - ); - } - - // Try to decode each custom error type - if let Ok(NonBuilderAddress { addr }) = NonBuilderAddress::abi_decode(&value) { - return FlashblockNumberError::NonBuilderAddress(addr); - } - - if let Ok(MismatchedFlashblockNumber { - expectedFlashblockNumber, - actualFlashblockNumber, - }) = MismatchedFlashblockNumber::abi_decode(&value) - { - return FlashblockNumberError::MismatchedFlashblockNumber( - expectedFlashblockNumber, - actualFlashblockNumber, - ); - } - - FlashblockNumberError::Unknown(hex::encode(value)) - } -} - // This will be the end of block transaction of a regular block #[derive(Debug, Clone)] pub(super) struct FlashblocksBuilderTx { @@ -116,7 +88,6 @@ impl BuilderTransactions for FlashblocksBuilderTx { info: &mut ExecutionInfo, ctx: &OpPayloadBuilderCtx, db: &mut State, - top_of_block: bool, ) -> Result, BuilderTransactionError> { let mut builder_txs = Vec::::new(); @@ -126,24 +97,14 @@ impl BuilderTransactions for FlashblocksBuilderTx { } if ctx.is_last_flashblock() { - let flashblocks_builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; - if let Some(tx) = flashblocks_builder_tx.clone() { - if top_of_block { - // don't commit the builder if top of block, we only return the gas used to reserve gas for the builder tx - builder_txs.push(BuilderTransactionCtx { - gas_used: tx.gas_used, - da_size: tx.da_size, - signed_tx: None, - }); - } else { - builder_txs.push(tx); - } - } + let base_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; + builder_txs.extend(base_tx.clone()); + if let Some(flashtestations_builder_tx) = &self.flashtestations_builder_tx { // We only include flashtestations txs in the last flashblock let mut simulation_state = self.simulate_builder_txs_state::( state_provider.clone(), - flashblocks_builder_tx.iter().collect(), + base_tx.iter().collect(), ctx, db, )?; @@ -152,7 +113,6 @@ impl BuilderTransactions for FlashblocksBuilderTx { info, ctx, &mut simulation_state, - top_of_block, )?; builder_txs.extend(flashtestations_builder_txs); } @@ -205,10 +165,27 @@ impl FlashblocksNumberBuilderTx { }; match result { - ExecutionResult::Success { gas_used, .. } => Ok(gas_used), - ExecutionResult::Revert { output, .. } => Err(BuilderTransactionError::Other( - Box::new(FlashblockNumberError::from(output)), - )), + ExecutionResult::Success { gas_used, logs, .. } => { + if log_exists( + &logs, + &IFlashblockNumber::FlashblockIncremented::SIGNATURE_HASH, + ) { + Ok(gas_used) + } else { + Err(BuilderTransactionError::Other(Box::new( + FlashblockNumberError::LogMismatch( + IFlashblockNumber::FlashblockIncremented::SIGNATURE_HASH, + ), + ))) + } + } + ExecutionResult::Revert { output, .. } => { + Err(BuilderTransactionError::Other(Box::new( + IFlashblockNumber::IFlashblockNumberErrors::abi_decode(&output) + .map(FlashblockNumberError::Revert) + .unwrap_or_else(|e| FlashblockNumberError::Unknown(hex::encode(output), e)), + ))) + } ExecutionResult::Halt { reason, .. } => Err(BuilderTransactionError::Other(Box::new( FlashblockNumberError::Halt(reason), ))), @@ -245,7 +222,6 @@ impl BuilderTransactions for FlashblocksNumberBuilderTx { info: &mut ExecutionInfo, ctx: &OpPayloadBuilderCtx, db: &mut State, - top_of_block: bool, ) -> Result, BuilderTransactionError> { let mut builder_txs = Vec::::new(); let state = StateProviderDatabase::new(state_provider.clone()); @@ -256,8 +232,8 @@ impl BuilderTransactions for FlashblocksNumberBuilderTx { .build(); if ctx.is_first_flashblock() { - let flashblocks_builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; - builder_txs.extend(flashblocks_builder_tx.clone()); + // fallback block builder tx + builder_txs.extend(self.base_builder_tx.simulate_builder_tx(ctx, db)?); } else { // we increment the flashblock number for the next flashblock so we don't increment in the last flashblock if let Some(signer) = &self.signer { @@ -274,7 +250,7 @@ impl BuilderTransactions for FlashblocksNumberBuilderTx { { Ok(gas_used) => { // Due to EIP-150, 63/64 of available gas is forwarded to external calls so need to add a buffer - let flashblocks_tx = self.signed_flashblock_number_tx( + let signed_tx = self.signed_flashblock_number_tx( ctx, gas_used * 64 / 63, nonce, @@ -282,33 +258,20 @@ impl BuilderTransactions for FlashblocksNumberBuilderTx { )?; let da_size = op_alloy_flz::tx_estimated_size_fjord_bytes( - flashblocks_tx.encoded_2718().as_slice(), + signed_tx.encoded_2718().as_slice(), ); Some(BuilderTransactionCtx { gas_used, da_size, - signed_tx: if top_of_block { - Some(flashblocks_tx) - } else { - None - }, // number tx at top of flashblock + signed_tx, + is_top_of_block: true, // number tx at top of flashblock }) } Err(e) => { warn!(target: "builder_tx", error = ?e, "Flashblocks number contract tx simulation failed, defaulting to fallback builder tx"); - let builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; - if let Some(tx) = &builder_tx - && top_of_block - { - // don't commit the builder if top of block, we only return the gas used to reserve gas for the builder tx - Some(BuilderTransactionCtx { - gas_used: tx.gas_used, - da_size: tx.da_size, - signed_tx: None, - }) - } else { - builder_tx - } + self.base_builder_tx + .simulate_builder_tx(ctx, db)? + .map(|tx| tx.set_top_of_block()) } }; @@ -331,7 +294,6 @@ impl BuilderTransactions for FlashblocksNumberBuilderTx { info, ctx, &mut simulation_state, - top_of_block, )?; builder_txs.extend(flashtestations_builder_txs); } diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index ae11a6da6..6a46e4c76 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -82,7 +82,7 @@ pub struct FlashblocksExtraCtx { /// Total gas left for the current flashblock target_gas_for_batch: u64, /// Total DA bytes left for the current flashblock - total_da_per_batch: Option, + target_da_for_batch: Option, /// Gas limit per flashblock gas_per_batch: u64, /// DA bytes limit per flashblock @@ -292,7 +292,7 @@ where flashblock_index: 0, target_flashblock_count: self.config.flashblocks_per_block(), target_gas_for_batch: 0, - total_da_per_batch: None, + target_da_for_batch: None, gas_per_batch: 0, da_per_batch: None, calculate_state_root, @@ -327,7 +327,7 @@ where &mut info, &ctx, &mut state, - true, + false, ) { Ok(builder_txs) => builder_txs, Err(e) => { @@ -431,7 +431,7 @@ where if let Some(da_limit) = total_da_per_batch.as_mut() { *da_limit = da_limit.saturating_sub(builder_tx_da_size); } - ctx.extra_ctx.total_da_per_batch = total_da_per_batch; + ctx.extra_ctx.target_da_for_batch = total_da_per_batch; ctx.extra_ctx.gas_per_batch = gas_per_batch; ctx.extra_ctx.da_per_batch = da_per_batch; @@ -567,7 +567,7 @@ where // Continue with flashblock building let mut target_gas_for_batch = ctx.extra_ctx.target_gas_for_batch; - let mut total_da_per_batch = ctx.extra_ctx.total_da_per_batch; + let mut target_da_per_batch = ctx.extra_ctx.target_da_for_batch; info!( target: "payload_builder", @@ -575,8 +575,9 @@ where flashblock_index = ctx.flashblock_index(), target_gas = target_gas_for_batch, gas_used = info.cumulative_gas_used, - target_da = total_da_per_batch.unwrap_or(0), + target_da = target_da_per_batch, da_used = info.cumulative_da_bytes_used, + block_gas_used = ctx.block_gas_limit(), "Building flashblock", ); let flashblock_build_start_time = Instant::now(); @@ -598,7 +599,7 @@ where target_gas_for_batch = target_gas_for_batch.saturating_sub(builder_tx_gas); // saturating sub just in case, we will log an error if da_limit too small for builder_tx_da_size - if let Some(da_limit) = total_da_per_batch.as_mut() { + if let Some(da_limit) = target_da_per_batch.as_mut() { *da_limit = da_limit.saturating_sub(builder_tx_da_size); } @@ -624,7 +625,7 @@ where state, best_txs, target_gas_for_batch.min(ctx.block_gas_limit()), - total_da_per_batch, + target_da_per_batch, )?; // Extract last transactions let new_transactions = info.executed_transactions[info.extra.last_flashblock_index..] @@ -726,7 +727,7 @@ where self.send_payload_to_engine(new_payload); // Update bundle_state for next iteration if let Some(da_limit) = ctx.extra_ctx.da_per_batch { - if let Some(da) = total_da_per_batch.as_mut() { + if let Some(da) = target_da_per_batch.as_mut() { *da += da_limit; } else { error!( @@ -736,7 +737,7 @@ where } ctx.extra_ctx.target_gas_for_batch += ctx.extra_ctx.gas_per_batch; - ctx.extra_ctx.total_da_per_batch = total_da_per_batch; + ctx.extra_ctx.target_da_for_batch = target_da_per_batch; info!( target: "payload_builder", diff --git a/crates/op-rbuilder/src/builders/standard/builder_tx.rs b/crates/op-rbuilder/src/builders/standard/builder_tx.rs index c4d154f63..c19f627d4 100644 --- a/crates/op-rbuilder/src/builders/standard/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/standard/builder_tx.rs @@ -40,7 +40,6 @@ impl BuilderTransactions for StandardBuilderTx { info: &mut ExecutionInfo, ctx: &OpPayloadBuilderCtx, db: &mut State, - top_of_block: bool, ) -> Result, BuilderTransactionError> { let mut builder_txs = Vec::::new(); let standard_builder_tx = self.base_builder_tx.simulate_builder_tx(ctx, db)?; @@ -57,7 +56,6 @@ impl BuilderTransactions for StandardBuilderTx { info, ctx, &mut simulation_state, - top_of_block, )?; builder_txs.extend(flashtestations_builder_txs); } diff --git a/crates/op-rbuilder/src/builders/standard/payload.rs b/crates/op-rbuilder/src/builders/standard/payload.rs index c510a8ba9..0c0e5de07 100644 --- a/crates/op-rbuilder/src/builders/standard/payload.rs +++ b/crates/op-rbuilder/src/builders/standard/payload.rs @@ -347,8 +347,7 @@ impl OpBuilder<'_, Txs> { // 4. if mem pool transactions are requested we execute them // gas reserved for builder tx - let builder_txs = - builder_tx.simulate_builder_txs(&state_provider, &mut info, ctx, db, true)?; + let builder_txs = builder_tx.add_builder_txs(&state_provider, &mut info, ctx, db, true)?; let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); let block_gas_limit = ctx.block_gas_limit().saturating_sub(builder_tx_gas); if block_gas_limit == 0 { diff --git a/crates/op-rbuilder/src/flashtestations/service.rs b/crates/op-rbuilder/src/flashtestations/service.rs index 40f126521..bd93a777c 100644 --- a/crates/op-rbuilder/src/flashtestations/service.rs +++ b/crates/op-rbuilder/src/flashtestations/service.rs @@ -102,7 +102,6 @@ impl BuilderTransactions for Flashtestation _info: &mut ExecutionInfo, _ctx: &OpPayloadBuilderCtx, _db: &mut State, - _top_of_block: bool, ) -> Result, BuilderTransactionError> { Ok(vec![]) } diff --git a/crates/op-rbuilder/src/primitives/reth/execution.rs b/crates/op-rbuilder/src/primitives/reth/execution.rs index 45acf963f..b2591c212 100644 --- a/crates/op-rbuilder/src/primitives/reth/execution.rs +++ b/crates/op-rbuilder/src/primitives/reth/execution.rs @@ -8,8 +8,10 @@ use reth_optimism_primitives::{OpReceipt, OpTransactionSigned}; #[derive(Debug, Display)] pub enum TxnExecutionResult { TransactionDALimitExceeded, - BlockDALimitExceeded, - TransactionGasLimitExceeded, + #[display("BlockDALimitExceeded: total_da_used={_0} tx_da_size={_1} block_da_limit={_2}")] + BlockDALimitExceeded(u64, u64, u64), + #[display("TransactionGasLimitExceeded: total_gas_used={_0} tx_gas_limit={_1}")] + TransactionGasLimitExceeded(u64, u64, u64), SequencerTransaction, NonceTooLow, InteropFailed, @@ -75,11 +77,19 @@ impl ExecutionInfo { if block_data_limit .is_some_and(|da_limit| self.cumulative_da_bytes_used + tx_da_size > da_limit) { - return Err(TxnExecutionResult::BlockDALimitExceeded); + return Err(TxnExecutionResult::BlockDALimitExceeded( + self.cumulative_da_bytes_used, + tx_da_size, + block_data_limit.unwrap_or_default(), + )); } if self.cumulative_gas_used + tx_gas_limit > block_gas_limit { - return Err(TxnExecutionResult::TransactionGasLimitExceeded); + return Err(TxnExecutionResult::TransactionGasLimitExceeded( + self.cumulative_gas_used, + tx_gas_limit, + block_gas_limit, + )); } Ok(()) } diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index 8204af75f..f3e46dae5 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -1,12 +1,25 @@ +use alloy_consensus::Transaction; +use alloy_eips::Decodable2718; +use alloy_primitives::{Address, TxHash, U256, address, b128, b256}; use alloy_provider::Provider; +use alloy_sol_types::SolCall; use macros::rb_test; +use op_alloy_consensus::OpTxEnvelope; use std::time::Duration; use crate::{ args::{FlashblocksArgs, OpRbuilderArgs}, - tests::{BlockTransactionsExt, BundleOpts, LocalInstance, TransactionBuilderExt}, + tests::{ + BUILDER_PRIVATE_KEY, BlockTransactionsExt, BundleOpts, ChainDriver, ChainDriverExt, + FUNDED_PRIVATE_KEY, LocalInstance, ONE_ETH, TransactionBuilderExt, + flashblocks_number_contract::FlashblocksNumber, + }, + tx_signer::Signer, }; +// If the order of deployment from the signer changes the address will change +const FLASHBLOCKS_NUMBER_ADDRESS: Address = address!("5fbdb2315678afecb367f032d93f642f64180aa3"); + #[rb_test(flashblocks, args = OpRbuilderArgs { chain_block_time: 2000, flashblocks: FlashblocksArgs { @@ -16,8 +29,7 @@ use crate::{ flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -55,8 +67,7 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -94,8 +105,7 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 50, flashblocks_fixed: true, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -133,8 +143,7 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 50, flashblocks_fixed: true, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -172,8 +181,7 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -217,9 +225,7 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> flashblocks_addr: "127.0.0.1".into(), flashblocks_block_time: 200, flashblocks_leeway_time: 0, - flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -255,10 +261,7 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() flashblocks_port: 1239, flashblocks_addr: "127.0.0.1".into(), flashblocks_block_time: 200, - flashblocks_leeway_time: 100, - flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -316,10 +319,7 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_port: 1239, flashblocks_addr: "127.0.0.1".into(), flashblocks_block_time: 200, - flashblocks_leeway_time: 100, - flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -375,8 +375,7 @@ async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -422,7 +421,7 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: false, - flashblocks_number_contract_address: None, + ..Default::default() }, ..Default::default() })] @@ -456,3 +455,209 @@ async fn test_flashblocks_no_state_root_calculation(rbuilder: LocalInstance) -> Ok(()) } + +#[rb_test(flashblocks, args = OpRbuilderArgs { + chain_block_time: 1000, + enable_revert_protection: true, + flashblocks: FlashblocksArgs { + flashblocks_number_contract_address: Some(FLASHBLOCKS_NUMBER_ADDRESS), + ..Default::default() + }, + ..Default::default() +})] +async fn test_flashblocks_number_contract_builder_tx(rbuilder: LocalInstance) -> eyre::Result<()> { + let driver = rbuilder.driver().await?; + let flashblocks_listener = rbuilder.spawn_flashblocks_listener(); + let provider = rbuilder.provider().await?; + + // Deploy flashblocks number contract which will be in flashblocks 1 + let deploy_tx = driver + .create_transaction() + .deploy_flashblock_number_contract() + .with_bundle(BundleOpts::default()) + .send() + .await?; + + // Create valid transactions for flashblocks 2-4 + let user_transactions = create_flashblock_transactions(&driver, 2..5).await?; + + // Build block with deploy tx in first flashblock, and a random valid transfer in every other flashblock + let block = driver.build_new_block_with_current_timestamp(None).await?; + + // Verify contract deployment + let receipt = provider + .get_transaction_receipt(*deploy_tx.tx_hash()) + .await? + .expect("flashblock number contract deployment not mined"); + let contract_address = receipt + .inner + .contract_address + .expect("contract receipt does not contain flashblock number contract address"); + assert_eq!( + contract_address, FLASHBLOCKS_NUMBER_ADDRESS, + "Flashblocks number contract address mismatch" + ); + + // Verify first block structure + assert_eq!(block.transactions.len(), 10); + let txs = block + .transactions + .as_transactions() + .expect("transactions not in block"); + + // Verify builder txs (should be regular since builder tx is not registered yet) + verify_builder_txs( + &txs, + &[1, 2, 4, 6, 8], + Some(Address::ZERO), + "Should have regular builder tx", + ); + + // Verify deploy tx position + assert_eq!( + txs[3].inner.inner.tx_hash(), + *deploy_tx.tx_hash(), + "Deploy tx not in correct position" + ); + + // Verify user transactions + verify_user_tx_hashes(&txs, &[5, 7, 9], &user_transactions); + + // Initialize contract + let init_tx = driver + .create_transaction() + .init_flashblock_number_contract(true) + .with_to(contract_address) + .with_bundle(BundleOpts::default()) + .send() + .await?; + + // Mine initialization + driver.build_new_block_with_current_timestamp(None).await?; + provider + .get_transaction_receipt(*init_tx.tx_hash()) + .await? + .expect("init tx not mined"); + + // Create user transactions for flashblocks 1 - 5 + let user_transactions = create_flashblock_transactions(&driver, 1..5).await?; + + // Build second block after initialization which will call the flashblock number contract + // with builder registered + let block = driver.build_new_block_with_current_timestamp(None).await?; + assert_eq!(block.transactions.len(), 10); + let txs = block + .transactions + .as_transactions() + .expect("transactions not in block"); + + // Fallback block should have regular builder tx after deposit tx + assert_eq!( + txs[1].to(), + Some(Address::ZERO), + "Fallback block should have regular builder tx" + ); + + // Other builder txs should call the contract + verify_builder_txs( + &txs, + &[2, 4, 6, 8], + Some(contract_address), + "Should call flashblocks contract", + ); + + // Verify user transactions, 3 blocks in total built + verify_user_tx_hashes(&txs, &[3, 5, 7, 9], &user_transactions); + + // Verify flashblock number incremented correctly + let contract = FlashblocksNumber::new(contract_address, provider.clone()); + let current_number = contract.getFlashblockNumber().call().await?; + assert_eq!( + current_number, + U256::from(7), + "Flashblock number not incremented correctly" + ); + + // Verify flashblocks + let flashblocks = flashblocks_listener.get_flashblocks(); + assert_eq!(flashblocks.len(), 15); + + // Verify builder tx in each flashblock + for (i, flashblock) in flashblocks.iter().enumerate() { + // In fallback blocks, builder tx is the 2nd tx (index 1) + // In regular flashblocks, builder tx is the 1st tx (index 0) + let is_fallback = i % 5 == 0; + let tx_index = if is_fallback { 1 } else { 0 }; + + let tx_bytes = flashblock.diff.transactions.get(tx_index).expect(&format!( + "Flashblock {} should have tx at index {}", + i, tx_index + )); + let tx = OpTxEnvelope::decode_2718(&mut tx_bytes.as_ref()) + .expect("failed to decode transaction"); + + let expected_to = if i < 7 || i == 10 { + Some(Address::ZERO) + } else { + Some(contract_address) + }; + + assert_eq!( + tx.to(), + expected_to, + "Flashblock {} builder tx (at index {}) should have to = {:?}", + i, + tx_index, + expected_to + ); + } + + flashblocks_listener.stop().await?; + Ok(()) +} + +// Helper to create transactions for flashblocks +async fn create_flashblock_transactions( + driver: &ChainDriver, + range: std::ops::Range, +) -> eyre::Result> { + let mut txs = Vec::new(); + for i in range { + let tx = driver + .create_transaction() + .random_valid_transfer() + .with_bundle(BundleOpts::default().with_flashblock_number_min(i)) + .send() + .await?; + txs.push(*tx.tx_hash()); + } + Ok(txs) +} + +// Helper to verify builder transactions +fn verify_builder_txs( + block_txs: &[impl Transaction], + indices: &[usize], + expected_to: Option
, + msg: &str, +) { + for &idx in indices { + assert_eq!(block_txs[idx].to(), expected_to, "{} at index {}", msg, idx); + } +} + +// Helper to verify transaction matches +fn verify_user_tx_hashes( + block_txs: &[impl AsRef], + indices: &[usize], + expected_txs: &[TxHash], +) { + for (i, &idx) in indices.iter().enumerate() { + assert_eq!( + *block_txs[idx].as_ref().tx_hash(), + expected_txs[i], + "Transaction at index {} doesn't match", + idx + ); + } +} diff --git a/crates/op-rbuilder/src/tests/framework/artifacts/contracts/BlockBuilderPolicy.json b/crates/op-rbuilder/src/tests/framework/artifacts/contracts/BlockBuilderPolicy.json new file mode 100644 index 000000000..6d95e8330 --- /dev/null +++ b/crates/op-rbuilder/src/tests/framework/artifacts/contracts/BlockBuilderPolicy.json @@ -0,0 +1,687 @@ +{ + "abi": [ + { + "type": "function", + "name": "UPGRADE_INTERFACE_VERSION", + "inputs": [], + "outputs": [ + { "name": "", "type": "string", "internalType": "string" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "VERIFY_BLOCK_BUILDER_PROOF_TYPEHASH", + "inputs": [], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "addWorkloadToPolicy", + "inputs": [ + { + "name": "workloadId", + "type": "bytes32", + "internalType": "WorkloadId" + }, + { + "name": "commitHash", + "type": "string", + "internalType": "string" + }, + { + "name": "sourceLocators", + "type": "string[]", + "internalType": "string[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "computeStructHash", + "inputs": [ + { "name": "version", "type": "uint8", "internalType": "uint8" }, + { + "name": "blockContentHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "domainSeparator", + "inputs": [], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "eip712Domain", + "inputs": [], + "outputs": [ + { + "name": "fields", + "type": "bytes1", + "internalType": "bytes1" + }, + { "name": "name", "type": "string", "internalType": "string" }, + { + "name": "version", + "type": "string", + "internalType": "string" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "verifyingContract", + "type": "address", + "internalType": "address" + }, + { + "name": "salt", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "extensions", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getHashedTypeDataV4", + "inputs": [ + { + "name": "structHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getWorkloadMetadata", + "inputs": [ + { + "name": "workloadId", + "type": "bytes32", + "internalType": "WorkloadId" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct IBlockBuilderPolicy.WorkloadMetadata", + "components": [ + { + "name": "commitHash", + "type": "string", + "internalType": "string" + }, + { + "name": "sourceLocators", + "type": "string[]", + "internalType": "string[]" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_initialOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "_registry", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isAllowedPolicy", + "inputs": [ + { + "name": "teeAddress", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { "name": "allowed", "type": "bool", "internalType": "bool" }, + { "name": "", "type": "bytes32", "internalType": "WorkloadId" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "nonces", + "inputs": [ + { + "name": "teeAddress", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "permitNonce", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { "name": "", "type": "address", "internalType": "address" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "permitVerifyBlockBuilderProof", + "inputs": [ + { "name": "version", "type": "uint8", "internalType": "uint8" }, + { + "name": "blockContentHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "nonce", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "eip712Sig", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "proxiableUUID", + "inputs": [], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "registry", + "inputs": [], + "outputs": [ + { "name": "", "type": "address", "internalType": "address" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "removeWorkloadFromPolicy", + "inputs": [ + { + "name": "workloadId", + "type": "bytes32", + "internalType": "WorkloadId" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgradeToAndCall", + "inputs": [ + { + "name": "newImplementation", + "type": "address", + "internalType": "address" + }, + { "name": "data", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "verifyBlockBuilderProof", + "inputs": [ + { "name": "version", "type": "uint8", "internalType": "uint8" }, + { + "name": "blockContentHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "workloadIdForTDRegistration", + "inputs": [ + { + "name": "registration", + "type": "tuple", + "internalType": "struct IFlashtestationRegistry.RegisteredTEE", + "components": [ + { + "name": "isValid", + "type": "bool", + "internalType": "bool" + }, + { + "name": "rawQuote", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "parsedReportBody", + "type": "tuple", + "internalType": "struct TD10ReportBody", + "components": [ + { + "name": "teeTcbSvn", + "type": "bytes16", + "internalType": "bytes16" + }, + { + "name": "mrSeam", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "mrsignerSeam", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "seamAttributes", + "type": "bytes8", + "internalType": "bytes8" + }, + { + "name": "tdAttributes", + "type": "bytes8", + "internalType": "bytes8" + }, + { + "name": "xFAM", + "type": "bytes8", + "internalType": "bytes8" + }, + { + "name": "mrTd", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "mrConfigId", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "mrOwner", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "mrOwnerConfig", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "rtMr0", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "rtMr1", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "rtMr2", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "rtMr3", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "reportData", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "extendedRegistrationData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "quoteHash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + } + ], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "WorkloadId" } + ], + "stateMutability": "pure" + }, + { + "type": "event", + "name": "BlockBuilderProofVerified", + "inputs": [ + { + "name": "caller", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "workloadId", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + }, + { + "name": "blockContentHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "commitHash", + "type": "string", + "indexed": false, + "internalType": "string" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "EIP712DomainChanged", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RegistrySet", + "inputs": [ + { + "name": "registry", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Upgraded", + "inputs": [ + { + "name": "implementation", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WorkloadAddedToPolicy", + "inputs": [ + { + "name": "workloadId", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "WorkloadRemovedFromPolicy", + "inputs": [ + { + "name": "workloadId", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AddressEmptyCode", + "inputs": [ + { + "name": "target", + "type": "address", + "internalType": "address" + } + ] + }, + { "type": "error", "name": "ECDSAInvalidSignature", "inputs": [] }, + { + "type": "error", + "name": "ECDSAInvalidSignatureLength", + "inputs": [ + { + "name": "length", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "ECDSAInvalidSignatureS", + "inputs": [ + { "name": "s", "type": "bytes32", "internalType": "bytes32" } + ] + }, + { + "type": "error", + "name": "ERC1967InvalidImplementation", + "inputs": [ + { + "name": "implementation", + "type": "address", + "internalType": "address" + } + ] + }, + { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, + { "type": "error", "name": "EmptyCommitHash", "inputs": [] }, + { "type": "error", "name": "EmptySourceLocators", "inputs": [] }, + { "type": "error", "name": "FailedCall", "inputs": [] }, + { "type": "error", "name": "InvalidInitialization", "inputs": [] }, + { + "type": "error", + "name": "InvalidNonce", + "inputs": [ + { + "name": "expected", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "provided", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "type": "error", "name": "InvalidRegistry", "inputs": [] }, + { "type": "error", "name": "NotInitializing", "inputs": [] }, + { + "type": "error", + "name": "OwnableInvalidOwner", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "OwnableUnauthorizedAccount", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "UUPSUnauthorizedCallContext", + "inputs": [] + }, + { + "type": "error", + "name": "UUPSUnsupportedProxiableUUID", + "inputs": [ + { "name": "slot", "type": "bytes32", "internalType": "bytes32" } + ] + }, + { + "type": "error", + "name": "UnauthorizedBlockBuilder", + "inputs": [ + { + "name": "caller", + "type": "address", + "internalType": "address" + } + ] + }, + { "type": "error", "name": "WorkloadAlreadyInPolicy", "inputs": [] }, + { "type": "error", "name": "WorkloadNotInPolicy", "inputs": [] } + ], + "bytecode": { + "object": "0x60a0806040523460295730608052613263908161002e8239608051818181610a3801526110790152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80632dd8abfe14611e4c578063485cc955146116b05780634d37fc7a146113365780634f1ef286146110105780634f3a415a14610ab057806352d1902d146109f35780635c40e542146109095780636931164e146108cd578063715018a6146107f3578063730169231461079b5780637b1039991461074a5780637dec71a9146106f95780637ecebe001461069657806384b0196e146104f15780638da5cb5b14610481578063abd45d21146102fc578063ad3cb1cc1461027b578063b33d59da14610237578063d2753561146101e8578063f2fde38b1461019f5763f698da2514610100575f80fd5b3461019b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b57602061013861310e565b610140613178565b60405190838201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261019060c082612063565b519020604051908152f35b5f80fd5b3461019b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b576101e66101d9611feb565b6101e1612d2c565b612b6a565b005b3461019b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b576040610229610224611feb565b6127d1565b825191151582526020820152f35b3461019b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b576101e6610271611fad565b6024359033612c57565b3461019b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b576102f86040516102ba604082612063565b600581527f352e302e30000000000000000000000000000000000000000000000000000000602082015260405191829160208352602083019061215f565b0390f35b3461019b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b576060602060405161033b81612047565b82815201526004355f525f60205260405f2060016040519161035c83612047565b61036581612695565b835201805461037381612349565b916103816040519384612063565b81835260208301905f5260205f205f915b838310610464576103c1868660208201908152604051928392602084525160406020850152606084019061215f565b9051907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838203016040840152815180825260208201916020808360051b8301019401925f915b8383106104155786860387f35b919395509193602080610452837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08660019603018752895161215f565b97019301930190928695949293610408565b60016020819261047385612695565b815201920192019190610392565b3461019b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b57602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b3461019b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10054158061066d575b1561060f576105b36105586124b1565b6105606125c2565b60206105c1604051926105738385612063565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e087019061215f565b90858203604087015261215f565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b8281106105f857505050500390f35b8351855286955093810193928101926001016105e9565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610548565b3461019b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b5773ffffffffffffffffffffffffffffffffffffffff6106e2611feb565b165f526002602052602060405f2054604051908152f35b3461019b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b576020610742610735611fad565b6044359060243590612463565b604051908152f35b3461019b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461019b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b5760206040517f93b3c192de39a93da71b94fb9fadb8e913f752a2e9ea950a33266a81fcbf2ffc8152f35b3461019b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b57610829612d2c565b5f73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461019b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b5760206107426004356123c6565b3461019b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b57600435610943612d2c565b805f525f60205261095760405f20546122f8565b156109cb57805f525f602052600160405f2061097281612377565b018054905f8155816109a6575b827f56c387a9be1bf0e0e4f852c577a225db98e8253ad401d1b4ea73926f27d6af095f80a2005b5f5260205f20908101905b8181101561097f57806109c5600192612377565b016109b1565b7f22faf042000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461019b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610a885760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461019b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b5760043560243567ffffffffffffffff811161019b57610b02903690600401611fbd565b919060443567ffffffffffffffff811161019b573660238201121561019b5780600401359167ffffffffffffffff831161019b5760248360051b8301019036821161019b57610b4f612d2c565b8515610fe8578315610fc057845f525f602052610b6f60405f20546122f8565b610f9857610b8b9060405196610b8488612047565b36916120de565b8552610b9683612349565b92610ba46040519485612063565b83526024820191602084015b828410610f57575050505060208301908152815f525f60205260405f20925192835167ffffffffffffffff8111610e2057610beb82546122f8565b601f8111610f27575b506020601f8211600114610e85579080610c469260019596975f92610e7a575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b81555b019051805190680100000000000000008211610e20578254828455808310610e4d575b50602001915f5260205f20915f905b828210610ca957847fcbb92e241e191fed6d0b0da0a918c7dcf595e77d868e2e3bf9e6b0b91589c7ad5f80a2005b805180519067ffffffffffffffff8211610e2057610cc786546122f8565b601f8111610de5575b50602090601f8311600114610d3f5792610d25836001959460209487965f92610d345750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b87555b01940191019092610c7b565b015190508b80610c14565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0831691875f52815f20925f5b818110610dcd5750936020936001969387969383889510610d96575b505050811b018755610d28565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558a8080610d89565b92936020600181928786015181550195019301610d6d565b610e1090875f5260205f20601f850160051c81019160208610610e16575b601f0160051c0190612361565b87610cd0565b9091508190610e03565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b835f528260205f2091820191015b818110610e685750610c6c565b80610e74600192612377565b01610e5b565b015190508780610c14565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821695835f52815f20965f5b818110610f0f5750916001959697918487959410610ed8575b505050811b018155610c49565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055868080610ecb565b83830151895560019098019760209384019301610eb2565b610f5190835f5260205f20601f840160051c81019160208510610e1657601f0160051c0190612361565b85610bf4565b833567ffffffffffffffff811161019b5782013660438201121561019b57602091610f8d839236906044602482013591016120de565b815201930192610bb0565b7f72477348000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f6890d9d4000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f8423f262000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b57611042611feb565b60243567ffffffffffffffff811161019b57611062903690600401612114565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168030149081156112f4575b50610a88576110b1612d2c565b73ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f91816112c0575b5061113157837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8592036112955750813b1561126a57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115611239575f808360206101e695519101845af43d15611231573d91611215836120a4565b926112236040519485612063565b83523d5f602085013e6131bd565b6060916131bd565b50503461124257005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116112ec575b816112dc60209383612063565b8101031261019b57519085611100565b3d91506112cf565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415836110a4565b3461019b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b5760043567ffffffffffffffff811161019b5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc823603011261019b57604051906113b08261200e565b8060040135801515810361019b578252602481013567ffffffffffffffff811161019b576113e49060043691840101612114565b6020830152604481013567ffffffffffffffff811161019b5781016101e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc823603011261019b57604051906114398261202a565b60048101357fffffffffffffffffffffffffffffffff000000000000000000000000000000008116810361019b578252602481013567ffffffffffffffff811161019b5761148d9060043691840101612114565b6020830152604481013567ffffffffffffffff811161019b576114b69060043691840101612114565b60408301526114c760648201612132565b60608301526114d860848201612132565b60808301526114e960a48201612132565b60a083015260c481013567ffffffffffffffff811161019b576115129060043691840101612114565b60c083015260e481013567ffffffffffffffff811161019b5761153b9060043691840101612114565b60e083015261010481013567ffffffffffffffff811161019b576115659060043691840101612114565b61010083015261012481013567ffffffffffffffff811161019b576115909060043691840101612114565b61012083015261014481013567ffffffffffffffff811161019b576115bb9060043691840101612114565b61014083015261016481013567ffffffffffffffff811161019b576115e69060043691840101612114565b61016083015261018481013567ffffffffffffffff811161019b576116119060043691840101612114565b6101808301526101a481013567ffffffffffffffff811161019b5761163c9060043691840101612114565b6101a08301526101c48101359067ffffffffffffffff821161019b5760046116679236920101612114565b6101c0820152604083015260648101359167ffffffffffffffff831161019b5760846107429261169f60209560043691840101612114565b6060840152013560808201526121a2565b3461019b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b576116e7611feb565b60243573ffffffffffffffffffffffffffffffffffffffff811680910361019b577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159267ffffffffffffffff821680159081611e44575b6001149081611e3a575b159081611e31575b50611e0957818460017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006117c19516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055611db4575b506117b9613028565b6101e1613028565b6117c9613028565b6040918251926117d98185612063565b601284527f426c6f636b4275696c646572506f6c696379000000000000000000000000000060208501528051936118108286612063565b600185527f31000000000000000000000000000000000000000000000000000000000000006020860152611842613028565b61184a613028565b80519067ffffffffffffffff8211610e20576118867fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102546122f8565b601f8111611d47575b50602090601f8311600114611c67576118dc92915f9183610e7a5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102555b835167ffffffffffffffff8111610e205761193a7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103546122f8565b601f8111611bfa575b50602094601f8211600114611b1c576119939293949582915f92611b115750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100555f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101558215611ae957827fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015551917f27fe5f0c1c3b1ed427cc63d0f05759ffdecf9aec9e18d31ef366fc8a6cb5dc3b5f80a2611a5857005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2917fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005560018152a1005b7f11a1e697000000000000000000000000000000000000000000000000000000005f5260045ffd5b015190508680610c14565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216957fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f52805f20915f5b888110611be257508360019596979810611bab575b505050811b017fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103556119b6565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055858080611b7e565b91926020600181928685015181550194019201611b69565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f52611c61907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f840160051c81019160208510610e1657601f0160051c0190612361565b85611943565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08316917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f52815f20925f5b818110611d2f5750908460019594939210611cf8575b505050811b017fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102556118ff565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055868080611ccb565b92936020600181928786015181550195019301611cb5565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f52611dae907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f850160051c81019160208610610e1657601f0160051c0190612361565b8661188f565b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055846117b0565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501585611759565b303b159150611751565b859150611747565b3461019b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019b57611e83611fad565b602435604435916064359267ffffffffffffffff841161019b57611ed7611ed1611eb4611ee0963690600401611fbd565b9190611ec9611ec4868989612463565b6123c6565b9236916120de565b90612d98565b90959195612dd2565b73ffffffffffffffffffffffffffffffffffffffff841690815f52600260205260405f2054808203611f7f5750505f52600260205260405f20928354937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8514611f525760016101e695019055612c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f06427aeb000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b6004359060ff8216820361019b57565b9181601f8401121561019b5782359167ffffffffffffffff831161019b576020838186019501011161019b57565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361019b57565b60a0810190811067ffffffffffffffff821117610e2057604052565b6101e0810190811067ffffffffffffffff821117610e2057604052565b6040810190811067ffffffffffffffff821117610e2057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e2057604052565b67ffffffffffffffff8111610e2057601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926120ea826120a4565b916120f86040519384612063565b82948184528183011161019b578281602093845f960137010152565b9080601f8301121561019b5781602061212f933591016120de565b90565b35907fffffffffffffffff0000000000000000000000000000000000000000000000008216820361019b57565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6040015160c081015190610140810151610160820151916101808101516101a082015160e08301519060a08401517fffffffffffffffff0000000000000000000000000000000000000000000000001678030000000000000000000000000000000000000000000000001893608001517fffffffff2fffffff00000000000000000000000000000000000000000000000016926040519687966020880199805160208192018c5e880160208101915f83528051926020849201905e016020015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e01917fffffffffffffffff0000000000000000000000000000000000000000000000001682526008820152037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0810182526010016122f29082612063565b51902090565b90600182811c9216801561233f575b602083101461231257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691612307565b67ffffffffffffffff8111610e205760051b60200190565b81811061236c575050565b5f8155600101612361565b61238181546122f8565b908161238b575050565b81601f5f931160011461239d5750555b565b818352602083206123b991601f0160051c810190600101612361565b8082528160208120915555565b6042906123d161310e565b6123d9613178565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261242a60c082612063565b51902090604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b916040519160ff60208401947f93b3c192de39a93da71b94fb9fadb8e913f752a2e9ea950a33266a81fcbf2ffc865216604084015260608301526080820152608081526122f260a082612063565b604051905f827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10254916124e3836122f8565b80835292600181169081156125855750600114612507575b61239b92500383612063565b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061256957505090602061239b928201016124fb565b6020919350806001915483858901015201910190918492612551565b6020925061239b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b8201016124fb565b604051905f827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10354916125f4836122f8565b808352926001811690811561258557506001146126175761239b92500383612063565b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061267957505090602061239b928201016124fb565b6020919350806001915483858901015201910190918492612661565b9060405191825f8254926126a8846122f8565b808452936001811690811561271157506001146126cd575b5061239b92500383612063565b90505f9291925260205f20905f915b8183106126f557505090602061239b928201015f6126c0565b60209193508060019154838589010152019101909184926126dc565b6020935061239b9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f6126c0565b5190811515820361019b57565b81601f8201121561019b57805190612775826120a4565b926127836040519485612063565b8284526020838301011161019b57815f9260208093018386015e8301015290565b51907fffffffffffffffff0000000000000000000000000000000000000000000000008216820361019b57565b5f73ffffffffffffffffffffffffffffffffffffffff602481600154169360405194859384927f727310620000000000000000000000000000000000000000000000000000000084521660048301525afa908115612b5f575f9161286c575b5080511561286557612841906121a2565b805f525f60205261285560405f20546122f8565b61286057505f905f90565b600191565b505f905f90565b90503d805f833e61287d8183612063565b81019060408183031261019b5761289381612751565b5060208101519067ffffffffffffffff821161019b57019060a08282031261019b57604051916128c28361200e565b6128cb81612751565b8352602081015167ffffffffffffffff811161019b57826128ed91830161275e565b6020840152604081015167ffffffffffffffff811161019b5781016101e08184031261019b57604051906129208261202a565b80517fffffffffffffffffffffffffffffffff000000000000000000000000000000008116810361019b578252602081015167ffffffffffffffff811161019b578461296d91830161275e565b6020830152604081015167ffffffffffffffff811161019b578461299291830161275e565b60408301526129a3606082016127a4565b60608301526129b4608082016127a4565b60808301526129c560a082016127a4565b60a083015260c081015167ffffffffffffffff811161019b57846129ea91830161275e565b60c083015260e081015167ffffffffffffffff811161019b5784612a0f91830161275e565b60e083015261010081015167ffffffffffffffff811161019b5784612a3591830161275e565b61010083015261012081015167ffffffffffffffff811161019b5784612a5c91830161275e565b61012083015261014081015167ffffffffffffffff811161019b5784612a8391830161275e565b61014083015261016081015167ffffffffffffffff811161019b5784612aaa91830161275e565b61016083015261018081015167ffffffffffffffff811161019b5784612ad191830161275e565b6101808301526101a081015167ffffffffffffffff811161019b5784612af891830161275e565b6101a08301526101c08101519067ffffffffffffffff821161019b57612b209185910161275e565b6101c08201526040840152606081015167ffffffffffffffff811161019b57608092612b4d91830161275e565b6060840152015160808201525f612830565b6040513d5f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff168015612c2b5773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b91612c6183612eaa565b929015612cea57827f3fa039a23466a52e08acb25376ac7d81de184fa6549ffffb2fc920c47cb623ed949260ff612ce59373ffffffffffffffffffffffffffffffffffffffff965f525f602052612cba60405f20612695565b936040519788971687526020870152166040850152606084015260a0608084015260a083019061215f565b0390a1565b73ffffffffffffffffffffffffffffffffffffffff847f4c547670000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054163303612d6c57565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b8151919060418303612dc857612dc19250602082015190606060408401519301515f1a9061307f565b9192909190565b50505f9160029190565b6004811015612e7d5780612de4575050565b60018103612e14577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b60028103612e4857507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b600314612e525750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff600154166040517fa8af4ff500000000000000000000000000000000000000000000000000000000815260408160248173ffffffffffffffffffffffffffffffffffffffff8716958660048301525afa908115612b5f575f905f92612fe7575b5015612fde57815f52600360205260405f209160405193612f3f85612047565b60018454948587520154806020870152838515159182612fd4575b505015612f82575050505f525f602052612f7760405f20546122f8565b156128655751600191565b909250612f91919493506127d1565b93819291612fa0575b50509190565b60019060405192612fb084612047565b868452602084019182525f52600360205260405f2092518355519101555f80612f9a565b149050835f612f5a565b5050505f905f90565b9150506040813d604011613020575b8161300360409383612063565b8101031261019b57602061301682612751565b910151905f612f1f565b3d9150612ff6565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561305757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613103579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612b5f575f5173ffffffffffffffffffffffffffffffffffffffff8116156130f957905f905f90565b505f906001905f90565b5050505f9160039190565b6131166124b1565b8051908115613126576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156131535790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6131806125c2565b8051908115613190576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156131535790565b906131fa57508051156131d257805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061324d575b61320b575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561320356fea164736f6c634300081c000a", + "sourceMap": "1951:12842:96:-:0;;;;;;;1171:4:51;1163:13;;1951:12842:96;;;;;;1163:13:51;1951:12842:96;;;;;;;;;;;;;;", + "linkReferences": {} + } +} diff --git a/crates/op-rbuilder/src/tests/framework/artifacts/contracts/FlashblocksNumberContract.json b/crates/op-rbuilder/src/tests/framework/artifacts/contracts/FlashblocksNumberContract.json new file mode 100644 index 000000000..1a3b1e6c7 --- /dev/null +++ b/crates/op-rbuilder/src/tests/framework/artifacts/contracts/FlashblocksNumberContract.json @@ -0,0 +1,450 @@ +{ + "abi": [ + { + "type": "function", + "name": "PERMIT_INCREMENT_TYPEHASH", + "inputs": [], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "UPGRADE_INTERFACE_VERSION", + "inputs": [], + "outputs": [ + { "name": "", "type": "string", "internalType": "string" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "addBuilder", + "inputs": [ + { + "name": "builder", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "computeStructHash", + "inputs": [ + { + "name": "currentFlashblockNumber", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "eip712Domain", + "inputs": [], + "outputs": [ + { + "name": "fields", + "type": "bytes1", + "internalType": "bytes1" + }, + { "name": "name", "type": "string", "internalType": "string" }, + { + "name": "version", + "type": "string", + "internalType": "string" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "verifyingContract", + "type": "address", + "internalType": "address" + }, + { + "name": "salt", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "extensions", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "flashblockNumber", + "inputs": [], + "outputs": [ + { "name": "", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getFlashblockNumber", + "inputs": [], + "outputs": [ + { "name": "", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hashTypedDataV4", + "inputs": [ + { + "name": "structHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "incrementFlashblockNumber", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "_owner", + "type": "address", + "internalType": "address" + }, + { + "name": "_initialBuilders", + "type": "address[]", + "internalType": "address[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isBuilder", + "inputs": [ + { "name": "", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { "name": "", "type": "address", "internalType": "address" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "permitIncrementFlashblockNumber", + "inputs": [ + { + "name": "currentFlashblockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "signature", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "proxiableUUID", + "inputs": [], + "outputs": [ + { "name": "", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "removeBuilder", + "inputs": [ + { + "name": "builder", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgradeToAndCall", + "inputs": [ + { + "name": "newImplementation", + "type": "address", + "internalType": "address" + }, + { "name": "data", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "event", + "name": "BuilderAdded", + "inputs": [ + { + "name": "builder", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BuilderRemoved", + "inputs": [ + { + "name": "builder", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "EIP712DomainChanged", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "FlashblockIncremented", + "inputs": [ + { + "name": "newFlashblockIndex", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Upgraded", + "inputs": [ + { + "name": "implementation", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AddressEmptyCode", + "inputs": [ + { + "name": "target", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "AddressIsAlreadyABuilder", + "inputs": [ + { "name": "addr", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "BuilderDoesNotExist", + "inputs": [ + { "name": "addr", "type": "address", "internalType": "address" } + ] + }, + { "type": "error", "name": "ECDSAInvalidSignature", "inputs": [] }, + { + "type": "error", + "name": "ECDSAInvalidSignatureLength", + "inputs": [ + { + "name": "length", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "ECDSAInvalidSignatureS", + "inputs": [ + { "name": "s", "type": "bytes32", "internalType": "bytes32" } + ] + }, + { + "type": "error", + "name": "ERC1967InvalidImplementation", + "inputs": [ + { + "name": "implementation", + "type": "address", + "internalType": "address" + } + ] + }, + { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, + { "type": "error", "name": "FailedCall", "inputs": [] }, + { "type": "error", "name": "InvalidInitialization", "inputs": [] }, + { + "type": "error", + "name": "MismatchedFlashblockNumber", + "inputs": [ + { + "name": "expectedFlashblockNumber", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "actualFlashblockNumber", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "NonBuilderAddress", + "inputs": [ + { "name": "addr", "type": "address", "internalType": "address" } + ] + }, + { "type": "error", "name": "NotInitializing", "inputs": [] }, + { + "type": "error", + "name": "OwnableInvalidOwner", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "OwnableUnauthorizedAccount", + "inputs": [ + { + "name": "account", + "type": "address", + "internalType": "address" + } + ] + }, + { + "type": "error", + "name": "UUPSUnauthorizedCallContext", + "inputs": [] + }, + { + "type": "error", + "name": "UUPSUnsupportedProxiableUUID", + "inputs": [ + { "name": "slot", "type": "bytes32", "internalType": "bytes32" } + ] + } + ], + "bytecode": { + "object": "0x60a0806040523460295730608052611f7d908161002e8239608051818181611013015261114c0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806325f5ffa41461147c5780633fd553e8146114455780634980f288146114095780634f1ef286146110e35780634f66ee131461108b57806352d1902d14610fce578063715018a614610ef457806384b0196e14610d4f5780638da5cb5b14610cdf578063946d920414610439578063a0a78ce01461025d578063ad3cb1cc146103b8578063b6b6b47514610350578063c91d762514610297578063e5b37c5d1461025d578063e7e3a27114610219578063ec9693861461012c5763f2fde38b146100df575f80fd5b346101285760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285761012661011961156b565b6101216118a2565b6117b5565b005b5f80fd5b346101285760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285773ffffffffffffffffffffffffffffffffffffffff61017861156b565b6101806118a2565b16805f52600160205260ff60405f205416156101ee57805f52600160205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557fc5a4a43135540d5e0967677a1ed86bf147f7c0e7dd757a109f4cff74c945f92e5f80a2005b7f677fda95000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346101285760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610128576020610255600435611770565b604051908152f35b34610128575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285760205f54604051908152f35b346101285760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285760043560243567ffffffffffffffff8111610128576102e9903690600401611609565b905f548082036103215761012661031c6103138561030e61030987611770565b611692565b611c7c565b90929192611cb6565b61190e565b907f53b6b59a000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346101285760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285773ffffffffffffffffffffffffffffffffffffffff61039c61156b565b165f526001602052602060ff60405f2054166040519015158152f35b34610128575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610128576104356040516103f760408261158e565b600581527f352e302e30000000000000000000000000000000000000000000000000000000602082015260405191829160208352602083019061164f565b0390f35b346101285760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285761047061156b565b6024359067ffffffffffffffff821161012857366023830112156101285781600401359167ffffffffffffffff8311610a76578260051b9060208201936104ba604051958661158e565b8452602460208501928201019036821161012857602401915b818310610cb2575050507ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610caa575b6001149081610ca0575b159081610c97575b50610c6f57818360017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006105969516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610c1a575b5061058e611c25565b610121611c25565b61059e611c25565b6040908151926105ae838561158e565b601084527f466c617368626c6f636b4e756d6265720000000000000000000000000000000060208501528251936105e5848661158e565b600185527f31000000000000000000000000000000000000000000000000000000000000006020860152610617611c25565b61061f611c25565b80519067ffffffffffffffff8211610a7657819061065d7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102546119ee565b601f8111610b8d575b50602090601f8311600114610aae575f92610aa3575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102555b835167ffffffffffffffff8111610a76576107097fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103546119ee565b601f81116109f4575b50602094601f8211600114610916579481929394955f9261090b575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100555f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101555f5b8151811015610871578073ffffffffffffffffffffffffffffffffffffffff6107f36001938561172f565b51165f5281602052845f20827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff610845828561172f565b51167fc2dabef8a63ab48fcf728bbe8864a3fe01a9e19addc6ce314abd5b6f9a1dce665f80a2016107c8565b505061087957005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2917fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00555160018152a1005b01519050858061072e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216957fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f52805f20915f5b8881106109dc575083600195969798106109a5575b505050811b017fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10355610780565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055858080610978565b91926020600181928685015181550194019201610963565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c81019160208410610a6c575b601f0160051c01905b818110610a615750610712565b5f8155600101610a54565b9091508190610a4b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b01519050868061067c565b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f52815f20925f5b818110610b755750908460019594939210610b3e575b505050811b017fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102556106ce565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055868080610b11565b92936020600181928786015181550195019301610afb565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f529091507f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f840160051c81019160208510610c10575b90601f859493920160051c01905b818110610c025750610666565b5f8155849350600101610bf5565b9091508190610be7565b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005584610585565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158561052e565b303b159150610526565b84915061051c565b823573ffffffffffffffffffffffffffffffffffffffff81168103610128578152602092830192016104d3565b34610128575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012857602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b34610128575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610128577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610ecb575b15610e6d57610e11610db6611a3f565b610dbe611b52565b6020610e1f60405192610dd1838561158e565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e087019061164f565b90858203604087015261164f565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610e5657505050500390f35b835185528695509381019392810192600101610e47565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610da6565b34610128575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012857610f2a6118a2565b5f73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610128575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036110635760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610128575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285760206040517f51de50fd99b637d778db8fe7a8a1966ddae5530dd6e4d8f693ffb315c812a24d8152f35b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285761111561156b565b60243567ffffffffffffffff811161012857611135903690600401611609565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168030149081156113c7575b50611063576111846118a2565b73ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181611393575b5061120457837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8592036113685750813b1561133d57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511561130c575f8083602061012695519101845af43d15611304573d916112e8836115cf565b926112f6604051948561158e565b83523d5f602085013e611ed7565b606091611ed7565b50503461131557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116113bf575b816113af6020938361158e565b81010312610128575190856111d3565b3d91506113a2565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583611177565b346101285760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610128576020610255600435611692565b34610128575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610128576101263361190e565b346101285760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101285773ffffffffffffffffffffffffffffffffffffffff6114c861156b565b6114d06118a2565b16805f52600160205260ff60405f20541661154057805f52600160205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557fc2dabef8a63ab48fcf728bbe8864a3fe01a9e19addc6ce314abd5b6f9a1dce665f80a2005b7fc0b0858c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012857565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610a7657604052565b67ffffffffffffffff8111610a7657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561012857803590611620826115cf565b9261162e604051948561158e565b8284526020838301011161012857815f926020809301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b60429061169d611e28565b6116a5611e92565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526116f660c08261158e565b51902090604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b80518210156117435760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60405160208101917f51de50fd99b637d778db8fe7a8a1966ddae5530dd6e4d8f693ffb315c812a24d83526040820152604081526117af60608261158e565b51902090565b73ffffffffffffffffffffffffffffffffffffffff1680156118765773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300541633036118e257565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff16805f52600160205260ff60405f205416156119c357505f547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461199657602060017ffaddd0b06e793a583e92393ad3f98637e560462ee98db1f2888f141124ee64ca9201805f55604051908152a1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7fdd9dbe80000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90600182811c92168015611a35575b6020831014611a0857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916119fd565b604051905f827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025491611a71836119ee565b8083529260018116908115611b155750600114611a97575b611a959250038361158e565b565b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611af9575050906020611a9592820101611a89565b6020919350806001915483858901015201910190918492611ae1565b60209250611a959491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101611a89565b604051905f827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035491611b84836119ee565b8083529260018116908115611b155750600114611ba757611a959250038361158e565b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c09575050906020611a9592820101611a89565b6020919350806001915483858901015201910190918492611bf1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c5457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151919060418303611cac57611ca59250602082015190606060408401519301515f1a90611d8e565b9192909190565b50505f9160029190565b6004811015611d615780611cc8575050565b60018103611cf8577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b60028103611d2c57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b600314611d365750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611e1d579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611e12575f5173ffffffffffffffffffffffffffffffffffffffff811615611e0857905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b611e30611a3f565b8051908115611e40576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100548015611e6d5790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b611e9a611b52565b8051908115611eaa576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101548015611e6d5790565b90611f145750805115611eec57602081519101fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f67575b611f25575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f1d56fea164736f6c634300081c000a", + "sourceMap": "1449:6259:60:-:0;;;;;;;1171:4:22;1163:13;;1449:6259:60;;;;;;1163:13:22;1449:6259:60;;;;;;;;;;;;;;", + "linkReferences": {} + } +} diff --git a/crates/op-rbuilder/src/tests/framework/artifacts/contracts/FlashtestationRegistry.json b/crates/op-rbuilder/src/tests/framework/artifacts/contracts/FlashtestationRegistry.json new file mode 100644 index 000000000..d823e0c37 --- /dev/null +++ b/crates/op-rbuilder/src/tests/framework/artifacts/contracts/FlashtestationRegistry.json @@ -0,0 +1,641 @@ +{ + "abi": [ + { + "type": "function", + "name": "MAX_BYTES_SIZE", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "REGISTER_TYPEHASH", + "inputs": [], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "TD_REPORTDATA_LENGTH", + "inputs": [], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "UPGRADE_INTERFACE_VERSION", + "inputs": [], + "outputs": [{ "name": "", "type": "string", "internalType": "string" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "attestationContract", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IAttestation" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "computeStructHash", + "inputs": [ + { "name": "rawQuote", "type": "bytes", "internalType": "bytes" }, + { + "name": "extendedRegistrationData", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "deadline", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "domainSeparator", + "inputs": [], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "eip712Domain", + "inputs": [], + "outputs": [ + { "name": "fields", "type": "bytes1", "internalType": "bytes1" }, + { "name": "name", "type": "string", "internalType": "string" }, + { "name": "version", "type": "string", "internalType": "string" }, + { "name": "chainId", "type": "uint256", "internalType": "uint256" }, + { + "name": "verifyingContract", + "type": "address", + "internalType": "address" + }, + { "name": "salt", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "extensions", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRegistration", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "", "type": "bool", "internalType": "bool" }, + { + "name": "", + "type": "tuple", + "internalType": "struct IFlashtestationRegistry.RegisteredTEE", + "components": [ + { "name": "isValid", "type": "bool", "internalType": "bool" }, + { "name": "rawQuote", "type": "bytes", "internalType": "bytes" }, + { + "name": "parsedReportBody", + "type": "tuple", + "internalType": "struct TD10ReportBody", + "components": [ + { + "name": "teeTcbSvn", + "type": "bytes16", + "internalType": "bytes16" + }, + { "name": "mrSeam", "type": "bytes", "internalType": "bytes" }, + { + "name": "mrsignerSeam", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "seamAttributes", + "type": "bytes8", + "internalType": "bytes8" + }, + { + "name": "tdAttributes", + "type": "bytes8", + "internalType": "bytes8" + }, + { "name": "xFAM", "type": "bytes8", "internalType": "bytes8" }, + { "name": "mrTd", "type": "bytes", "internalType": "bytes" }, + { + "name": "mrConfigId", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "mrOwner", "type": "bytes", "internalType": "bytes" }, + { + "name": "mrOwnerConfig", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "rtMr0", "type": "bytes", "internalType": "bytes" }, + { "name": "rtMr1", "type": "bytes", "internalType": "bytes" }, + { "name": "rtMr2", "type": "bytes", "internalType": "bytes" }, + { "name": "rtMr3", "type": "bytes", "internalType": "bytes" }, + { + "name": "reportData", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "extendedRegistrationData", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "quoteHash", + "type": "bytes32", + "internalType": "bytes32" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRegistrationStatus", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "isValid", "type": "bool", "internalType": "bool" }, + { "name": "quoteHash", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hashTypedDataV4", + "inputs": [ + { "name": "structHash", "type": "bytes32", "internalType": "bytes32" } + ], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { "name": "owner", "type": "address", "internalType": "address" }, + { + "name": "_attestationContract", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "invalidateAttestation", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "invalidatePreviousSignature", + "inputs": [ + { "name": "_nonce", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "nonces", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "permitNonce", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [{ "name": "", "type": "address", "internalType": "address" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "permitRegisterTEEService", + "inputs": [ + { "name": "rawQuote", "type": "bytes", "internalType": "bytes" }, + { + "name": "extendedRegistrationData", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "deadline", "type": "uint256", "internalType": "uint256" }, + { "name": "signature", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "proxiableUUID", + "inputs": [], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "registerTEEService", + "inputs": [ + { "name": "rawQuote", "type": "bytes", "internalType": "bytes" }, + { + "name": "extendedRegistrationData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "registeredTEEs", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ], + "outputs": [ + { "name": "isValid", "type": "bool", "internalType": "bool" }, + { "name": "rawQuote", "type": "bytes", "internalType": "bytes" }, + { + "name": "parsedReportBody", + "type": "tuple", + "internalType": "struct TD10ReportBody", + "components": [ + { + "name": "teeTcbSvn", + "type": "bytes16", + "internalType": "bytes16" + }, + { "name": "mrSeam", "type": "bytes", "internalType": "bytes" }, + { + "name": "mrsignerSeam", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "seamAttributes", + "type": "bytes8", + "internalType": "bytes8" + }, + { + "name": "tdAttributes", + "type": "bytes8", + "internalType": "bytes8" + }, + { "name": "xFAM", "type": "bytes8", "internalType": "bytes8" }, + { "name": "mrTd", "type": "bytes", "internalType": "bytes" }, + { "name": "mrConfigId", "type": "bytes", "internalType": "bytes" }, + { "name": "mrOwner", "type": "bytes", "internalType": "bytes" }, + { + "name": "mrOwnerConfig", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "rtMr0", "type": "bytes", "internalType": "bytes" }, + { "name": "rtMr1", "type": "bytes", "internalType": "bytes" }, + { "name": "rtMr2", "type": "bytes", "internalType": "bytes" }, + { "name": "rtMr3", "type": "bytes", "internalType": "bytes" }, + { "name": "reportData", "type": "bytes", "internalType": "bytes" } + ] + }, + { + "name": "extendedRegistrationData", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "quoteHash", "type": "bytes32", "internalType": "bytes32" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "transferOwnership", + "inputs": [ + { "name": "newOwner", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "upgradeToAndCall", + "inputs": [ + { + "name": "newImplementation", + "type": "address", + "internalType": "address" + }, + { "name": "data", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "event", + "name": "EIP712DomainChanged", + "inputs": [], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "PreviousSignatureInvalidated", + "inputs": [ + { + "name": "teeAddress", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "invalidatedNonce", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TEEServiceInvalidated", + "inputs": [ + { + "name": "teeAddress", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TEEServiceRegistered", + "inputs": [ + { + "name": "teeAddress", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "rawQuote", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + }, + { + "name": "alreadyExists", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Upgraded", + "inputs": [ + { + "name": "implementation", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AddressEmptyCode", + "inputs": [ + { "name": "target", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ByteSizeExceeded", + "inputs": [ + { "name": "size", "type": "uint256", "internalType": "uint256" } + ] + }, + { "type": "error", "name": "ECDSAInvalidSignature", "inputs": [] }, + { + "type": "error", + "name": "ECDSAInvalidSignatureLength", + "inputs": [ + { "name": "length", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "ECDSAInvalidSignatureS", + "inputs": [{ "name": "s", "type": "bytes32", "internalType": "bytes32" }] + }, + { + "type": "error", + "name": "ERC1967InvalidImplementation", + "inputs": [ + { + "name": "implementation", + "type": "address", + "internalType": "address" + } + ] + }, + { "type": "error", "name": "ERC1967NonPayable", "inputs": [] }, + { + "type": "error", + "name": "ExpiredSignature", + "inputs": [ + { "name": "deadline", "type": "uint256", "internalType": "uint256" } + ] + }, + { "type": "error", "name": "FailedCall", "inputs": [] }, + { "type": "error", "name": "InvalidAttestationContract", "inputs": [] }, + { "type": "error", "name": "InvalidInitialization", "inputs": [] }, + { + "type": "error", + "name": "InvalidNonce", + "inputs": [ + { "name": "expected", "type": "uint256", "internalType": "uint256" }, + { "name": "provided", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "InvalidQuote", + "inputs": [{ "name": "output", "type": "bytes", "internalType": "bytes" }] + }, + { + "type": "error", + "name": "InvalidQuoteLength", + "inputs": [ + { "name": "length", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "InvalidRegistrationDataHash", + "inputs": [ + { "name": "expected", "type": "bytes32", "internalType": "bytes32" }, + { "name": "received", "type": "bytes32", "internalType": "bytes32" } + ] + }, + { + "type": "error", + "name": "InvalidReportDataLength", + "inputs": [ + { "name": "length", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "InvalidTEEType", + "inputs": [ + { "name": "teeType", "type": "bytes4", "internalType": "bytes4" } + ] + }, + { + "type": "error", + "name": "InvalidTEEVersion", + "inputs": [ + { "name": "version", "type": "uint16", "internalType": "uint16" } + ] + }, + { "type": "error", "name": "NotInitializing", "inputs": [] }, + { + "type": "error", + "name": "OwnableInvalidOwner", + "inputs": [ + { "name": "owner", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "OwnableUnauthorizedAccount", + "inputs": [ + { "name": "account", "type": "address", "internalType": "address" } + ] + }, + { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] }, + { + "type": "error", + "name": "SignerMustMatchTEEAddress", + "inputs": [ + { "name": "signer", "type": "address", "internalType": "address" }, + { "name": "teeAddress", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "TEEIsStillValid", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "TEEServiceAlreadyInvalid", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "TEEServiceAlreadyRegistered", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "TEEServiceNotRegistered", + "inputs": [ + { "name": "teeAddress", "type": "address", "internalType": "address" } + ] + }, + { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] }, + { + "type": "error", + "name": "UUPSUnsupportedProxiableUUID", + "inputs": [ + { "name": "slot", "type": "bytes32", "internalType": "bytes32" } + ] + } + ], + "bytecode": { + "object": "0x60a0806040523460295730608052614e62908161002e8239608051818181610a320152610c3e0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630634434a146101845780630ac3302b1461017f57806322ba2bbf1461017a578063485cc955146101755780634980f288146101705780634f1ef2861461016b57806352d1902d146101665780636a5306a314610161578063715018a61461015c57806372731062146101575780637ecebe001461015257806384b0196e1461014d578063878111121461014857806387be6d4e146101435780638da5cb5b1461013e578063a8af4ff514610139578063aaae748e14610134578063ad3cb1cc1461012f578063e41689521461012a578063f2fde38b14610125578063f698da2514610120578063f745cb301461011b5763f9b68b3114610116575f80fd5b611ac7565b611a11565b61163a565b6115f3565b6115ba565b61153d565b611503565b611492565b611422565b6113d2565b611340565b611221565b611110565b61105d565b610ce6565b610c8e565b610bf9565b6109b7565b61083e565b6105bd565b6102e9565b610248565b6101bb565b9181601f840112156101b75782359167ffffffffffffffff83116101b757602083818601950101116101b757565b5f80fd5b346101b75760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75760043567ffffffffffffffff81116101b75761020a903690600401610189565b906024359067ffffffffffffffff82116101b757602092610232610240933690600401610189565b906044359260643594611c82565b604051908152f35b60a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75760043567ffffffffffffffff81116101b757610292903690600401610189565b60243567ffffffffffffffff81116101b7576102b2903690600401610189565b6084359391606435916044359167ffffffffffffffff87116101b7576102df6102e7973690600401610189565b969095611d01565b005b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75760043567ffffffffffffffff81116101b757610333903690600401610189565b60243567ffffffffffffffff81116101b757610353903690600401610189565b91909261035e612781565b61037861036c368484610981565b5161500081111561281a565b61038661036c368587610981565b6103c06103a75f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b5f60405180927f38d8480a00000000000000000000000000000000000000000000000000000000825281806103f988886004840161288b565b039134905af1908115610572575f905f9261054b575b508161041a9161289c565b61042390613349565b6101c081018051516104399060348110156128e5565b5161044390613526565b73ffffffffffffffffffffffffffffffffffffffff821696906104698333808b14612918565b610474368884610981565b805190602001208181149161048892612969565b610493368686610981565b80519060200120906104a582846136e1565b966104ae610926565b60018152946104be368989610981565b6020870152604086015236906104d392610981565b606084015260808301526105059073ffffffffffffffffffffffffffffffffffffffff165f52600160205260405f2090565b9061050f91612dce565b60405192839261051f9284612f62565b037f206fdb1a74851a8542447b8b6704db24a36b906a7297cc23c2b984dc357b997891a26102e76127f5565b61041a925061056c91503d805f833e61056481836108e5565b8101906126a7565b9161040f565b61272c565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101b757565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101b757565b346101b75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b7576105f4610577565b6105fc61059a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054919067ffffffffffffffff61064360ff604086901c16159467ffffffffffffffff1690565b1680159081610836575b600114908161082c575b159081610823575b506107fb576106e091836106d760017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b61078057612071565b6106e657005b6107517fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6107f6680100000000000000007fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b612071565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050155f61065f565b303b159150610657565b84915061064d565b346101b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75760206102406004356123af565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60a0810190811067ffffffffffffffff8211176108c357604052565b61087a565b6101e0810190811067ffffffffffffffff8211176108c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108c357604052565b6040519061093560a0836108e5565b565b604051906109356101e0836108e5565b67ffffffffffffffff81116108c357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261098d82610947565b9161099b60405193846108e5565b8294818452818301116101b7578281602093845f960137010152565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b7576109e9610577565b60243567ffffffffffffffff81116101b757366023820112156101b757610a1a903690602481600401359101610981565b9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bb7575b50610b8f57610a6a612f92565b604051917f52d1902d00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff86165afa5f9381610b5e575b50610aff577f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff821660045260245ffd5b907f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8303610b31576102e79250613964565b7faa1d49a4000000000000000000000000000000000000000000000000000000005f52600483905260245ffd5b610b8191945060203d602011610b88575b610b7981836108e5565b810190612f83565b925f610ab8565b503d610b6f565b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614155f610a5d565b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610b8f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75760206040517f95b0f36aa3383d49f247995a06db7a3bd7d07a2e7fe943cfdfc72b826979736a8152f35b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b757610d1c612f92565b5f73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b816101c0610fa0610f8c610f78610f64610f50610f3c610f28610f16610e80610e6d610fb29d6101e060208f8190610e5d8582517fffffffffffffffffffffffffffffffff00000000000000000000000000000000169052565b01519201526101e08d0190610dc0565b60408d01518c6040818403910152610dc0565b60608c8101517fffffffffffffffff00000000000000000000000000000000000000000000000016908c015260808c8101517fffffffffffffffff00000000000000000000000000000000000000000000000016908c015260a08c8101517fffffffffffffffff00000000000000000000000000000000000000000000000016908c015260c08c01518b820360c08d0152610dc0565b60e08b01518a820360e08c0152610dc0565b6101008a01518982036101008b0152610dc0565b6101208901518882036101208a0152610dc0565b610140880151878203610140890152610dc0565b610160870151868203610160880152610dc0565b610180860151858203610180870152610dc0565b6101a08501518482036101a0860152610dc0565b920151906101c0818403910152610dc0565b90565b90151581526040602082015281511515604082015260c06080611054611020610fed602087015160a0606088015260e0870190610dc0565b60408701517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08783030185880152610e03565b60608601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08683030160a0870152610dc0565b93015191015290565b346101b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75773ffffffffffffffffffffffffffffffffffffffff6110a9610577565b5f60806040516110b8816108a7565b828152606060208201526110ca61244c565b6040820152606080820152015216805f52600160205260ff60405f205416905f5260016020526110fc60405f206124b9565b9061110c60405192839283610fb5565b0390f35b346101b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75773ffffffffffffffffffffffffffffffffffffffff61115c610577565b165f526002602052602060405f2054604051908152f35b92939073ffffffffffffffffffffffffffffffffffffffff926111c76111d5927f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e0870190610dc0565b908582036040870152610dc0565b9360608401521660808201525f60a082015260c0818303910152602080835192838152019201905f5b81811061120b5750505090565b82518452602093840193909201916001016111fe565b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b7577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580611317575b156112b957611285612ffe565b61128d61310d565b9061110c60405161129f6020826108e5565b5f8082523660208301376040519384933091469186611173565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415611278565b346101b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b757600435335f52600260205261138c60405f20549182808214611fac565b335f52600260205260405f206113a28154612010565b90556040519081527faba960b001cf41ae7d1278e08bf0afa5081bfad043326cfe1e1d5ee266c9ac5260203392a2005b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b757602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b757602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b346101b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75773ffffffffffffffffffffffffffffffffffffffff6114de610577565b165f5260016020526040805f20601060ff825416910154825191151582526020820152f35b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75760206040516150008152f35b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75761110c60405161157c6040826108e5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610dc0565b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b757602060405160348152f35b346101b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b7576102e761162d610577565b611635612f92565b612526565b346101b7575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b757611670614cc3565b611678614d2d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526116c960c0826108e5565b519020604051908152602090f35b90600182811c9216801561171e575b60208310146116f157565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916116e6565b5f9291815491611737836116d7565b808352926001811690811561178c575060011461175357505050565b5f9081526020812093945091925b838310611772575060209250010190565b600181602092949394548385870101520191019190611761565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b906109356117dc9260405193848092611728565b03836108e5565b906119c1600c6117f1610937565b93611826611800825460801b90565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000168652565b611832600182016117c8565b6020860152611843600282016117c8565b604086015261192d61190460038301546118896118608260c01b90565b7fffffffffffffffff0000000000000000000000000000000000000000000000001660608a0152565b6118dc608082901b7fffffffffffffffff000000000000000000000000000000000000000000000000167fffffffffffffffff0000000000000000000000000000000000000000000000001660808a0152565b60401b7fffffffffffffffff0000000000000000000000000000000000000000000000001690565b7fffffffffffffffff0000000000000000000000000000000000000000000000001660a0870152565b611939600482016117c8565b60c086015261194a600582016117c8565b60e086015261195b600682016117c8565b61010086015261196d600782016117c8565b61012086015261197f600882016117c8565b610140860152611991600982016117c8565b6101608601526119a3600a82016117c8565b6101808601526119b5600b82016117c8565b6101a0860152016117c8565b6101c0830152565b959493906080936119f0611a0c946119fe9315158a5260a060208b015260a08a0190610dc0565b9088820360408a0152610e03565b908682036060880152610dc0565b930152565b346101b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b75773ffffffffffffffffffffffffffffffffffffffff611a5d610577565b165f52600160205260405f2060ff81541661110c60405192611a8d84611a868160018501611728565b03856108e5565b611a99600282016117e3565b90601060405191611ab883611ab181600f8501611728565b03846108e5565b015491604051958695866119c9565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b757611bb2611afc610577565b611b04612781565b5f611b35611b308373ffffffffffffffffffffffffffffffffffffffff165f52600160205260405f2090565b6124b9565b611b5a83611b556020840193611b4f838651511515612613565b51151590565b61265d565b611b7b6103a7835473ffffffffffffffffffffffffffffffffffffffff1690565b90519060405180809681947f38d8480a0000000000000000000000000000000000000000000000000000000083526004830161271b565b039134905af180156105725781611be79173ffffffffffffffffffffffffffffffffffffffff945f91611c67575b5015612737565b611c3a611c128273ffffffffffffffffffffffffffffffffffffffff165f52600160205260405f2090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008154169055565b167f5bb0bbb0993a623e10dd3579bf5b9403deba943e0bfe950b740d60209c9135ef5f80a26102e76127f5565b611c7b91503d805f833e61056481836108e5565b505f611be0565b611c9590611ca493929694963691610981565b60208151910120943691610981565b60208151910120916040519260208401947f95b0f36aa3383d49f247995a06db7a3bd7d07a2e7fe943cfdfc72b826979736a865260408501526060840152608083015260a082015260a08152611cfb60c0826108e5565b51902090565b9396611d3e90611d388598611d30611d2b8a8d899a611d479a8a9e9a8e611d26612781565b611c82565b6123af565b923691610981565b906131de565b9093919361324f565b611d7773ffffffffffffffffffffffffffffffffffffffff831697885f52600260205260405f2054808214611fac565b804211611f815750855f52600260205260405f20611d958154612010565b9055611da561036c368686610981565b611db361036c368785610981565b611dd46103a75f5473ffffffffffffffffffffffffffffffffffffffff1690565b5f60405180927f38d8480a0000000000000000000000000000000000000000000000000000000082528180611e0d8a8a6004840161288b565b039134905af1908115610572575f905f92611f62575b5081611e2e9161289c565b611e3790613349565b916101c08301805151603481101590611e4f916128e5565b51611e5990613526565b90928373ffffffffffffffffffffffffffffffffffffffff8116809a1491611e8092612918565b611e8b368884610981565b8051906020012081811491611e9f92612969565b611eaa368686610981565b8051906020012090611ebc82846136e1565b96611ec5610926565b6001815294611ed5368989610981565b602087015260408601523690611eea92610981565b60608401526080830152611f1c9073ffffffffffffffffffffffffffffffffffffffff165f52600160205260405f2090565b90611f2691612dce565b604051928392611f369284612f62565b037f206fdb1a74851a8542447b8b6704db24a36b906a7297cc23c2b984dc357b997891a26109356127f5565b611e2e9250611f7b91503d805f833e61056481836108e5565b91611e23565b7fbd2a913c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b15611fb5575050565b7f06427aeb000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461203d5760010190565b611fe3565b1561204957565b7f72cd95d7000000000000000000000000000000000000000000000000000000005f5260045ffd5b6120889092919261208061373f565b61163561373f565b60409182519261209881856108e5565b601684527f466c617368746573746174696f6e52656769737472790000000000000000000060208501526120ce815191826108e5565b600181527f3100000000000000000000000000000000000000000000000000000000000000602082015261210061373f565b61210861373f565b835167ffffffffffffffff81116108c35761214c816121477fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102546116d7565b6129b6565b6020601f821160011461229457916121b7826121de9373ffffffffffffffffffffffffffffffffffffffff969561093598995f92612289575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10255613796565b6122065f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10055565b61222e5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10155565b61223661373f565b61223e61373f565b1661224a811515612042565b73ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f55565b015190505f80612185565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216957f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d965f5b818110612397575092610935969773ffffffffffffffffffffffffffffffffffffffff969593600193836121de9710612360575b505050811b017fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10255613796565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080612333565b838301518955600190980197602093840193016122ff565b6042906123ba614cc3565b6123c2614d2d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261241360c0826108e5565b51902090604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b60405190612459826108c8565b60606101c0835f81528260208201528260408201525f838201525f60808201525f60a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152826101a08201520152565b906040516124c6816108a7565b60806010829460ff815416151584526040516124f0816124e98160018601611728565b03826108e5565b6020850152612501600282016117e3565b604085015260405161251a816124e981600f8601611728565b60608501520154910152565b73ffffffffffffffffffffffffffffffffffffffff1680156125e75773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b1561261b5750565b73ffffffffffffffffffffffffffffffffffffffff907fbb527454000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b156126655750565b73ffffffffffffffffffffffffffffffffffffffff907f138c0ee8000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b91906040838203126101b757825180151581036101b7579260208101519067ffffffffffffffff82116101b7570181601f820112156101b7578051906126ec82610947565b926126fa60405194856108e5565b828452602083830101116101b757815f9260208093018386015e8301015290565b906020610fb2928181520190610dc0565b6040513d5f823e3d90fd5b1561273f5750565b73ffffffffffffffffffffffffffffffffffffffff907f927b3443000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6127cd5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b156128225750565b7f9e24c2f6000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b916020610fb293818152019161284d565b156128a45750565b6128e1906040519182917f64d10cb10000000000000000000000000000000000000000000000000000000083526020600484018181520190610dc0565b0390fd5b156128ed5750565b7f4fe16298000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b15612921575050565b9073ffffffffffffffffffffffffffffffffffffffff80927f38e0a7e5000000000000000000000000000000000000000000000000000000005f52166004521660245260445ffd5b15612972575050565b7fcc14da59000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b8181106129ab575050565b5f81556001016129a0565b90601f82116129c3575050565b610935917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f5260205f20906020601f840160051c83019310612a0e575b601f0160051c01906129a0565b9091508190612a01565b9190601f8111612a2757505050565b610935925f5260205f20906020601f840160051c83019310612a0e57601f0160051c01906129a0565b919091825167ffffffffffffffff81116108c357612a7881612a7284546116d7565b84612a18565b6020601f8211600114612ac9578190612ac59394955f926122895750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b9055565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821690612afa845f5260205f2090565b915f5b818110612b5357509583600195969710612b1c575b505050811b019055565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080612b12565b9192602060018192868b015181550194019201612afd565b600c6101c061093593612bcf612ba182517fffffffffffffffffffffffffffffffff000000000000000000000000000000001690565b859060801c7fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b612be0602082015160018601612a50565b612bf1604082015160028601612a50565b612d3760038501612c56612c2860608501517fffffffffffffffff0000000000000000000000000000000000000000000000001690565b829060c01c7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000825416179055565b612cc7612c8660808501517fffffffffffffffff0000000000000000000000000000000000000000000000001690565b82547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff1660809190911c6fffffffffffffffff000000000000000016178255565b60a08301517fffffffffffffffff0000000000000000000000000000000000000000000000001681547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1660409190911c77ffffffffffffffff0000000000000000000000000000000016179055565b612d4860c082015160048601612a50565b612d5960e082015160058601612a50565b612d6b61010082015160068601612a50565b612d7d61012082015160078601612a50565b612d8f61014082015160088601612a50565b612da161016082015160098601612a50565b612db3610180820151600a8601612a50565b612dc56101a0820151600b8601612a50565b01519101612a50565b90612e0781511515839060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b60018201602082015180519067ffffffffffffffff82116108c357612e3682612e3085546116d7565b85612a18565b602090601f8311600114612eb557826010959360809593612e89935f926122895750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b90555b612e9d604082015160028601612b6b565b612eae6060820151600f8601612a50565b0151910155565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0831691612ee7855f5260205f2090565b925f5b818110612f4a5750926001928592601098966080989610612f13575b505050811b019055612e8c565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080612f06565b92936020600181928786015181550195019301612eea565b91602091612f7b9195949560408552604085019161284d565b931515910152565b908160209103126101b7575190565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054163303612fd257565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b6040517fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10254815f61302e836116d7565b80835292600181169081156130d05750600114613052575b610fb2925003826108e5565b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1025f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106130b4575050906020610fb292820101613046565b602091935080600191548385880101520191019091839261309c565b60209250610fb29491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101613046565b6040517fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10354815f61313d836116d7565b80835292600181169081156130d0575060011461316057610fb2925003826108e5565b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106131c2575050906020610fb292820101613046565b60209193508060019154838588010152019101909183926131aa565b815191906041830361320e576132079250602082015190606060408401519301515f1a90613a95565b9192909190565b50505f9160029190565b6004111561322257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61325881613218565b80613261575050565b61326a81613218565b6001810361329a577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6132a381613218565b600281036132d757507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b806132e3600392613218565b146132eb5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b1561331e5750565b7fd915602a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b61335161244c565b5080516002116101b7576133656002610947565b61337260405191826108e5565b600281526133806002610947565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602082019201368337816020840160025b60208110156134d857806134b957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905b51825182169119161790525190517fffff00000000000000000000000000000000000000000000000000000000000081169160028110613484575b505060f01c6004810361345957506134548161343e610fb293613b24565b805161344f90610255811015613316565b613cc9565b614af4565b7f940a5ec6000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fffff0000000000000000000000000000000000000000000000000000000000009250829060020360031b1b16165f80613420565b6134cd6134c86134d292614d72565b614dad565b614d80565b906133e5565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101908111156133b357611fe3565b80516014116101b7576135396014610947565b9161354760405193846108e5565b601483526135556014610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060208501910136823760149381602085015b60208710156136945761360994959680155f1461367f57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905b51825182169119161790525190517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008116916014811061364a575b505060601c92613dd1565b60208151910151906020811061361d575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009250829060140360031b1b16165f806135fe565b6134cd6134c861368e92614d72565b906135c3565b90815181526020810180911161203d57906020810180911161203d57957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810190811161203d5795613588565b73ffffffffffffffffffffffffffffffffffffffff16805f526001602052601060405f2001548092146137145750151590565b7ffb5bab5b000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561376e57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90815167ffffffffffffffff81116108c3576137fc816137d67fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103546116d7565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103612a18565b602092601f821160011461386d57613849929382915f926122895750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10355565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1035f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216937f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75915f5b86811061394c5750836001959610613915575b505050811b017fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10355565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f80806138eb565b919260206001819286850151815501940192016138d8565b90813b15613a535773ffffffffffffffffffffffffffffffffffffffff8216807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115613a2257613a1f91614c7f565b50565b505034613a2b57565b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff827f4c9c8ce3000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613b19579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610572575f5173ffffffffffffffffffffffffffffffffffffffff811615613b0f57905f905f90565b505f906001905f90565b5050505f9160039190565b9081516006116101b757613b386004610947565b613b4560405191826108e5565b60048152613b536004610947565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060208201920136833760226004940182905b6020861015613c7c577fffffffff00000000000000000000000000000000000000000000000000000000949580155f14613c6757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905b51825182169119161790525190518281169160048110613c52575b5050167f81000000000000000000000000000000000000000000000000000000000000008103613c275750565b7fea75591a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b839250829060040360031b1b16165f80613bfa565b6134cd6134c8613c7692614d72565b90613bdf565b90815181526020810180911161203d57906020810180911161203d57947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810190811161203d5794613b87565b8051610255116101b757613cde610248610947565b90613cec60405192836108e5565b6102488252613cfc610248610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060208401910136823790602d016102485b6020811015613d835780613d6e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905b518251821691191617905290565b6134cd6134c8613d7d92614d72565b90613d60565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810190811115613d2e57611fe3565b80516034116101b757613de46020610947565b90613df260405192836108e5565b60208252613e006020610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840191013682379060340160205b6020811015613e475780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810190811115613e3157611fe3565b80516010116101b757613ea86010610947565b90613eb660405192836108e5565b60108252613ec46010610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840191013682379060200160105b6020811015613f0b5780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810190811115613ef557611fe3565b80516040116101b757613f6c6030610947565b90613f7a60405192836108e5565b60308252613f886030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602084019101368237603080920190915b6020811015613fd05780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810190811115613fba57611fe3565b80516070116101b7576140316030610947565b9061403f60405192836108e5565b6030825261404d6030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840191013682379060600160305b60208110156140945780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019081111561407e57611fe3565b80516078116101b7576140f56008610947565b9061410360405192836108e5565b600882526141116008610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840191013682379060900160085b60208110156141585780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019081111561414257611fe3565b80516080116101b7576141b96008610947565b906141c760405192836108e5565b600882526141d56008610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840191013682379060980160085b602081101561421c5780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019081111561420657611fe3565b80516088116101b75761427d6008610947565b9061428b60405192836108e5565b600882526142996008610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840191013682379060a00160085b60208110156142e05780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101908111156142ca57611fe3565b805160b8116101b7576143416030610947565b9061434f60405192836108e5565b6030825261435d6030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840191013682379060a80160305b60208110156143a45780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019081111561438e57611fe3565b805160e8116101b7576144056030610947565b9061441360405192836108e5565b603082526144216030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840191013682379060d80160305b60208110156144685780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019081111561445257611fe3565b8051610118116101b7576144ca6030610947565b906144d860405192836108e5565b603082526144e66030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602084019101368237906101080160305b602081101561452e5780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019081111561451857611fe3565b8051610148116101b7576145906030610947565b9061459e60405192836108e5565b603082526145ac6030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602084019101368237906101380160305b60208110156145f45780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101908111156145de57611fe3565b8051610178116101b7576146566030610947565b9061466460405192836108e5565b603082526146726030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602084019101368237906101680160305b60208110156146ba5780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101908111156146a457611fe3565b80516101a8116101b75761471c6030610947565b9061472a60405192836108e5565b603082526147386030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602084019101368237906101980160305b60208110156147805780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019081111561476a57611fe3565b80516101d8116101b7576147e26030610947565b906147f060405192836108e5565b603082526147fe6030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602084019101368237906101c80160305b60208110156148465780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019081111561483057611fe3565b8051610208116101b7576148a86030610947565b906148b660405192836108e5565b603082526148c46030610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602084019101368237906101f80160305b602081101561490c5780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101908111156148f657611fe3565b8051610248116101b75761496e6040610947565b9061497c60405192836108e5565b6040825261498a6040610947565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602084019101368237906102280160405b60208110156149d25780613d6e57509192915050565b9091825181526020810180911161203d57916020810180911161203d57907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101908111156149bc57611fe3565b90602082519201517fffffffffffffffffffffffffffffffff0000000000000000000000000000000081169260108110614a58575050565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000929350829060100360031b1b161690565b90602082519201517fffffffffffffffff00000000000000000000000000000000000000000000000081169260088110614ac2575050565b7fffffffffffffffff000000000000000000000000000000000000000000000000929350829060080360031b1b161690565b906119c1614b0061244c565b92614b3b614b15614b1083613e95565b614a20565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000168552565b614b4481613f59565b6020850152614b528161401e565b6040850152614b94614b6b614b66836140e2565b614a8a565b7fffffffffffffffff000000000000000000000000000000000000000000000000166060860152565b614bcc614ba3614b66836141a6565b7fffffffffffffffff000000000000000000000000000000000000000000000000166080860152565b614c04614bdb614b668361426a565b7fffffffffffffffff0000000000000000000000000000000000000000000000001660a0860152565b614c0d8161432e565b60c0850152614c1b816143f2565b60e0850152614c29816144b6565b610100850152614c388161457c565b610120850152614c4781614642565b610140850152614c5681614708565b610160850152614c65816147ce565b610180850152614c7481614894565b6101a085015261495a565b5f80610fb293602081519101845af43d15614cbb573d91614c9f83610947565b92614cad60405194856108e5565b83523d5f602085013e614dbc565b606091614dbc565b614ccb612ffe565b8051908115614cdb576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100548015614d085790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b614d3561310d565b8051908115614d45576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101548015614d085790565b602003906020821161203d57565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820191821161203d57565b601f811161203d576101000a90565b90614df95750805115614dd157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580614e4c575b614e0a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15614e0256fea164736f6c634300081c000a", + "sourceMap": "1080:11972:97:-:0;;;;;;;1171:4:51;1163:13;;1080:11972:97;;;;;;1163:13:51;1080:11972:97;;;;;;;;;;;;;;", + "linkReferences": {} + } +} diff --git a/crates/op-rbuilder/src/tests/framework/artifacts/contracts/MockAutomataDcapAttestationFee.json b/crates/op-rbuilder/src/tests/framework/artifacts/contracts/MockAutomataDcapAttestationFee.json new file mode 100644 index 000000000..1ccf04a53 --- /dev/null +++ b/crates/op-rbuilder/src/tests/framework/artifacts/contracts/MockAutomataDcapAttestationFee.json @@ -0,0 +1,86 @@ +{ + "abi": [ + { + "type": "function", + "name": "baseFee", + "inputs": [], + "outputs": [ + { "name": "", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "quoteResults", + "inputs": [ + { "name": "", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [ + { "name": "success", "type": "bool", "internalType": "bool" }, + { "name": "output", "type": "bytes", "internalType": "bytes" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "setBaseFee", + "inputs": [ + { + "name": "_baseFee", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setQuoteResult", + "inputs": [ + { + "name": "rawQuote", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "_success", "type": "bool", "internalType": "bool" }, + { "name": "_output", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "verifyAndAttestOnChain", + "inputs": [ + { "name": "rawQuote", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [ + { "name": "", "type": "bool", "internalType": "bool" }, + { "name": "", "type": "bytes", "internalType": "bytes" } + ], + "stateMutability": "payable" + }, + { + "type": "error", + "name": "InsufficientFee", + "inputs": [ + { + "name": "required", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "provided", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "bytecode": { + "object": "0x608080604052346015576106fa908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806338d8480a146103b957806346860698146103825780636ef25c3a1461034757806389e7a16d146102b957639321d73e14610050575f80fd5b346102b55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b55760043567ffffffffffffffff81116102b55761009f90369060040161048d565b6024358015158091036102b5576044359167ffffffffffffffff83116102b55760206100d1600194369060040161056a565b94604051936100df8561050d565b845281840195865282604051938492833781015f8152030190209051151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815501905190815167ffffffffffffffff81116102885761014782546105de565b601f8111610243575b50602092601f82116001146101aa57928192935f9261019f575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555f80f35b015190505f8061016a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821693835f52805f20915f5b86811061022b57508360019596106101f4575b505050811b019055005b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f80806101ea565b919260206001819286850151815501940192016101d7565b825f5260205f20601f830160051c8101916020841061027e575b601f0160051c01905b8181106102735750610150565b5f8155600101610266565b909150819061025d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80fd5b346102b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b55760043567ffffffffffffffff81116102b557602061030b8192369060040161056a565b604051928184925191829101835e81015f815203019020610333600160ff835416920161062f565b90610343604051928392836104bb565b0390f35b346102b5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b5576020600154604051908152f35b346102b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b557600435600155005b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b55760043567ffffffffffffffff81116102b55761040390369060040161048d565b9060015480341061045e575060209082604051938492833781015f8152030190206104456001604051926104368461050d565b60ff815416151584520161062f565b90816020820152511515610343604051928392836104bb565b7fa458261b000000000000000000000000000000000000000000000000000000005f526004523460245260445ffd5b9181601f840112156102b55782359167ffffffffffffffff83116102b557602083818601950101116102b557565b90601f60206060947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093151585526040828601528051918291826040880152018686015e5f8582860101520116010190565b6040810190811067ffffffffffffffff82111761028857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761028857604052565b81601f820112156102b55780359067ffffffffffffffff821161028857604051926105bd60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610529565b828452602083830101116102b557815f926020809301838601378301015290565b90600182811c92168015610625575b60208310146105f857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916105ed565b9060405191825f825492610642846105de565b80845293600181169081156106ad5750600114610669575b5061066792500383610529565b565b90505f9291925260205f20905f915b818310610691575050906020610667928201015f61065a565b6020919350806001915483858901015201910190918492610678565b602093506106679592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f61065a56fea164736f6c634300081c000a", + "sourceMap": "865:844:109:-:0;;;;;;;;;;;;;;;;;", + "linkReferences": {} + } +} diff --git a/crates/op-rbuilder/src/tests/framework/artifacts/quote-output.bin b/crates/op-rbuilder/src/tests/framework/artifacts/quote-output.bin new file mode 100644 index 0000000000000000000000000000000000000000..84b2c09b7eddca45fc903018179882d6a9ba4ac8 GIT binary patch literal 597 zcmZQzX=DI`4F~dpBr78`hyw>Q#}-y?pZRjx^8z&&+uoXWnV8 z$bDYTQSde5Xu{6MBg8g*=zYO+6G)rTr2ng z`1doxTsv}?zw-Qlz%Kmxt)}@syXGX#u`CD(Rwms#8tZs?>#A#9{EEtwx7+3kYvx|u zHGf5N*mdrVeWG_`&C1H0C-^?>w2}68|I=$VAw78Fa?!e)_{n;+SFf4Gc_pasLs^0O{)Nv>6P|JyJksAYo9*nmu74HY9|fPN z3Wc2)a0vKlQgdbPe1lsKEv0O!r6RElHq2P4LaJ{IW>yv)l@PjP#mH03xRsAr{7&Tw HQp^AVOmu>t literal 0 HcmV?d00001 diff --git a/crates/op-rbuilder/src/tests/framework/artifacts/test-quote.bin b/crates/op-rbuilder/src/tests/framework/artifacts/test-quote.bin new file mode 100644 index 0000000000000000000000000000000000000000..057f9ed2d79147c67882abdb43fc9a927869e19d GIT binary patch literal 5006 zcmcgv3$PQ_8NNIOT;ZY!f}#|sIx4B$&FkjI){f`wE1P7K>@(T;YO=Z6WV3nQ++>p# zb$ql_tq2zFNTpcnDA!t)*0Js2qaCdkI#`FQ)j|4Di>Nc$;$vj2m7XN`LcmJ}nQ3M+ zn|%Ly{QvpC|9t;W@0;3pLtpo^=7%HhkJp7Cyc3)A=v~*(nECt}*!1tM?Xy?Cx%m}( z!{t}BN1Zff+W6@1+E^&Et&h!rm>4>uU$WD`+LjAihHh^ zRrx6KY-P`Z-B%WwPo^I>`S|{v+8(}V>Wt1TX2bTGp*y(!YGG6Vj!R=Nr#3A)@Z87S zMeNtbjqkDte*4Y%o}D+|d)t2>}}O#JHcZS{W`{rb+AsjIFYYmM&x<@(bvD(={F z@0g~%a!T&01%J76u+bn^bFbg>jl~@E>B>u1>*5_77hJdE>NU&ndFW@~Klvr$x@~)J zy5@Fwa?OH;`t=*>*ZB988Oz=0y^($MgY{1vd^uWu%loa}v+y?tp15bm^MAbcvu0@D zY5zEXp7O$}m&NvZR=l+7UVP_eH`iwj*XLjPfUo?SF=*CkVCUpwWo z{y7VGwYDD58rxAeuL!<=%d1cBnEsO&|8wS>ul#GP{r%@>m(PEA?Y5^DK6Clpi};ZX9`Nq3ELgOX-tf=h*vdtZ&QiB7 zzWx2n>y_Uu-t@==x7XGQXSpxA|61CYyx_LTTkmdvZOzv6Q(w!fFMfCRz~&d8$>a_icRaRs89@zJ9kDHr4y?i|+EgET)*ZpY8 zhM^_k;T6AIb=Bib`}(F#oi_cX88c^{jGZ!jPXF9fPn&o8`~_z$Ty*AHi_bo1$yZM5 zyQ;sh@8b3cQVbheN>GBt(kuZas)J%2%Thj@AYd@11B-<~XXS)LtBtgZ1I<7^oezv! zyj_aAm9XOBaEs7YHdIcswt-V(1OXdK~;Ty(i0QNv^!{_ zZ!W`_jkH0@9Avv*Syotf(e(^N>Ab6%(~4A+utBgLB8H9~c^`p2aWRw?RAd__Imj`v zRb@oZ;|Ds$5XAUziwXdo1u&YAU}mY3k2?nGKuIVYumz2VJVF;Kfr#Z&6z>WTC1m$N z)*F!u?xsTur3`0S^|5lvRZEMk3k+dGGGbMuS)(!l^DV-vO68)V>l}ypK@ud$w%rVf z9L10zu0v5tJKd3n(8vwSFxbjSIK~Zmpkg(K6%vkg1`9(}l7xAVA@oEQYB{q~&IANY zv&)UJi?&jt7uQOPone%M=2BW%2Aym&!PQe;0@YQQe>Cill!ggE!h?7!o~)=Y8a@5> zuv^8$ZfK-jkye`Y8>-~AutO|Mn(1Pskz~wz(smY-3Dyd<$s*uU2vv#>c&ms2QYAW~ z<(0aN$^~RM)LR(uO%HOw(@s~0v?w@W@okPX76}kzQTzf2L3W4&1_0<>h$ycH+qIBu zs!-%4IMK$jNem=15R>54WH^R)rjdb~WCDY5I0+s=I69!N zr@bMt$UsjRdO`^HPUyiyZG5s2!bh3FO@_Bah)iZcc=RZEtQYSMf$uf+xGEq#%)y}} zvm-(XNDPsNfPey!2M0f$b3i#hv3 zdJTu%)W{AF$_H;G2#^rq8sI3Nz*w^6)8b7(lXWBvX)sV{@NgvSFFFeuRdED`0z>$N zz5*^f#Wcu6nzHkfLzGP*hl*0!8o~zRHYF5OWQ`b%%fmiblFyK#rpIG|OE1Mb;zdQs z&kI_|a&)mH%yxYmt_iVIKu~EUG?$-o1S&jL3OZxFZR>P`@Ox$Mh~O}e(VL6`)b?$F zqU9*rL>IbJW9djBPCzm3^5aM;V6Qs#iUam#)S*`#uyNHJR|hamTX-`{0w)r=CP&H^ zC&3iLY|cI$;{u?`8bHS;TxSk8E1HM9~$gSvMy zC-4@fca$?gf>B9D_qU3K9$m*RwMUi-fFv6&icP2<1gZo~MdIj!MOkWKysbcVJJ@0% zifJUT11ciI0pF<0X(q%d<|68LrD^#*!$IhCQ7w|uO0_$sw%L$A`qV$&>2X3)fjrDEO{S8aDS3hOoj>z@-iKA+_6c)Wt+`D~ON4Ju;8 z3DQwfV@60Qb`CLs1WvSJkfVlmAqB}?f$kBw!@C8obu40scgfW5oaCavkwHWX7X?!@ zK&B%&&L>1k>{F(6H(?w08Rm#dyi4C88$G@SA-kqEO-dk9|^Uxv54aYYS%!GDlo)} z+LhU&%sI_!Cc>6%-6tyYh@WTdLJ3x_Bjd8L6nUueM2)I2(RX$m)nFs-=8sDHHs`Su zA$^{#oS7%Wj1N3v=%Y7FFK@fu;Ls8HUAIivZg7#8SUoH5cRs06c0si1o5 zZq_J}sv5?*X4F%x)>^7z!jvf~YLkw+YC#zC+GZ#Uu`g4v-R7-ZuGp8U*WTU~LvJ_T z=JXir^+=Xty)-@6dhM1g)uA=k^8!YSsD=fd&4Flqz{?i|hv+BrBB@2nWh-2d3E^6t z$quM_A0sCG9;jQArDGsZ0Z$M&M*?N8=17#i<$+paFzV;y&42(JNtuae1m34LszM@F PW&fAn_Po!Y$j|=*YH_CY literal 0 HcmV?d00001 diff --git a/crates/op-rbuilder/src/tests/framework/contracts.rs b/crates/op-rbuilder/src/tests/framework/contracts.rs new file mode 100644 index 000000000..5f9b24493 --- /dev/null +++ b/crates/op-rbuilder/src/tests/framework/contracts.rs @@ -0,0 +1,43 @@ +pub mod flashtestation_registry { + use crate::tests::framework::contracts::block_builder_policy::BlockBuilderPolicy::TD10ReportBody; + use alloy_sol_types::sol; + + sol!( + // https://github.com/flashbots/flashtestations/tree/7cc7f68492fe672a823dd2dead649793aac1f216 + #[sol(rpc, abi)] + FlashtestationRegistry, + "src/tests/framework/artifacts/contracts/FlashtestationRegistry.json", + ); +} + +pub mod block_builder_policy { + use crate::tests::framework::contracts::block_builder_policy::BlockBuilderPolicy::TD10ReportBody; + use alloy_sol_types::sol; + + sol!( + // https://github.com/flashbots/flashtestations/tree/7cc7f68492fe672a823dd2dead649793aac1f216 + #[sol(rpc, abi)] + BlockBuilderPolicy, + "src/tests/framework/artifacts/contracts/BlockBuilderPolicy.json", + ); +} + +pub mod flashblocks_number_contract { + use alloy_sol_types::sol; + sol!( + // https://github.com/Uniswap/flashblocks_number_contract/tree/c21ca0aedc3ff4d1eecf20cd55abeb984080bc78 + #[sol(rpc, abi)] + FlashblocksNumber, + "src/tests/framework/artifacts/contracts/FlashblocksNumberContract.json", + ); +} + +pub mod mock_dcap_attestation { + use alloy_sol_types::sol; + sol!( + // https://github.com/flashbots/flashtestations/tree/7cc7f68492fe672a823dd2dead649793aac1f216 + #[sol(rpc, abi)] + MockAutomataDcapAttestationFee, + "src/tests/framework/artifacts/contracts/MockAutomataDcapAttestationFee.json", + ); +} diff --git a/crates/op-rbuilder/src/tests/framework/driver.rs b/crates/op-rbuilder/src/tests/framework/driver.rs index 5f273c1c1..6e9f83f76 100644 --- a/crates/op-rbuilder/src/tests/framework/driver.rs +++ b/crates/op-rbuilder/src/tests/framework/driver.rs @@ -14,12 +14,10 @@ use rollup_boost::OpExecutionPayloadEnvelope; use super::{EngineApi, Ipc, LocalInstance, TransactionBuilder}; use crate::{ args::OpRbuilderArgs, - tests::{ExternalNode, Protocol}, + tests::{ExternalNode, Protocol, framework::DEFAULT_GAS_LIMIT}, tx_signer::Signer, }; -const DEFAULT_GAS_LIMIT: u64 = 10_000_000; - /// The ChainDriver is a type that allows driving the op builder node to build new blocks manually /// by calling the `build_new_block` method. It uses the Engine API to interact with the node /// and the provider to fetch blocks and transactions. diff --git a/crates/op-rbuilder/src/tests/framework/instance.rs b/crates/op-rbuilder/src/tests/framework/instance.rs index 7a9ba14b4..7721ae2b0 100644 --- a/crates/op-rbuilder/src/tests/framework/instance.rs +++ b/crates/op-rbuilder/src/tests/framework/instance.rs @@ -4,8 +4,8 @@ use crate::{ primitives::reth::engine_api_builder::OpEngineApiBuilder, revert_protection::{EthApiExtServer, RevertProtectionExt}, tests::{ - EngineApi, Ipc, TransactionPoolObserver, create_test_db, - framework::{BUILDER_PRIVATE_KEY, driver::ChainDriver}, + EngineApi, Ipc, TransactionPoolObserver, builder_signer, create_test_db, + framework::driver::ChainDriver, }, tx::FBPooledTransaction, tx_signer::Signer, @@ -88,14 +88,7 @@ impl LocalInstance { let (txpool_ready_tx, txpool_ready_rx) = oneshot::channel::>(); - let signer = args.builder_signer.unwrap_or_else(|| { - Signer::try_from_secret( - BUILDER_PRIVATE_KEY - .parse() - .expect("Invalid builder private key"), - ) - .expect("Failed to create signer from private key") - }); + let signer = args.builder_signer.unwrap_or(builder_signer()); args.builder_signer = Some(signer); args.rollup_args.enable_tx_conditional = true; diff --git a/crates/op-rbuilder/src/tests/framework/mod.rs b/crates/op-rbuilder/src/tests/framework/mod.rs index d9c7bf1fb..4e3171fb9 100644 --- a/crates/op-rbuilder/src/tests/framework/mod.rs +++ b/crates/op-rbuilder/src/tests/framework/mod.rs @@ -1,4 +1,5 @@ mod apis; +mod contracts; mod driver; mod external; mod instance; @@ -6,17 +7,20 @@ mod txs; mod utils; pub use apis::*; +pub use contracts::*; pub use driver::*; pub use external::*; pub use instance::*; pub use txs::*; pub use utils::*; -const BUILDER_PRIVATE_KEY: &str = +pub const BUILDER_PRIVATE_KEY: &str = "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d"; -const FUNDED_PRIVATE_KEYS: &[&str] = - &["0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"]; +pub const FUNDED_PRIVATE_KEY: &str = + "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"; + +pub const DEFAULT_GAS_LIMIT: u64 = 10_000_000; pub const DEFAULT_JWT_TOKEN: &str = "688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a"; diff --git a/crates/op-rbuilder/src/tests/framework/txs.rs b/crates/op-rbuilder/src/tests/framework/txs.rs index 7c91892ad..e8133b05e 100644 --- a/crates/op-rbuilder/src/tests/framework/txs.rs +++ b/crates/op-rbuilder/src/tests/framework/txs.rs @@ -1,5 +1,6 @@ use crate::{ primitives::bundle::{Bundle, BundleResult}, + tests::funded_signer, tx::FBPooledTransaction, tx_signer::Signer, }; @@ -21,8 +22,6 @@ use tracing::debug; use alloy_eips::eip1559::MIN_PROTOCOL_BASE_FEE; -use super::FUNDED_PRIVATE_KEYS; - #[derive(Clone, Copy, Default)] pub struct BundleOpts { block_number_min: Option, @@ -74,7 +73,6 @@ pub struct TransactionBuilder { tx: TxEip1559, bundle_opts: Option, with_reverted_hash: bool, - key: Option, } impl TransactionBuilder { @@ -91,7 +89,6 @@ impl TransactionBuilder { }, bundle_opts: None, with_reverted_hash: false, - key: None, } } @@ -105,11 +102,6 @@ impl TransactionBuilder { self } - pub fn with_key(mut self, key: u64) -> Self { - self.key = Some(key); - self - } - pub fn with_value(mut self, value: u128) -> Self { self.tx.value = U256::from(value); self @@ -166,14 +158,7 @@ impl TransactionBuilder { } pub async fn build(mut self) -> Recovered { - let signer = self.signer.unwrap_or_else(|| { - Signer::try_from_secret( - FUNDED_PRIVATE_KEYS[self.key.unwrap_or(0) as usize] - .parse() - .expect("invalid hardcoded builder private key"), - ) - .expect("Failed to create signer from hardcoded private key") - }); + let signer = self.signer.unwrap_or(funded_signer()); let nonce = match self.nonce { Some(nonce) => nonce, diff --git a/crates/op-rbuilder/src/tests/framework/utils.rs b/crates/op-rbuilder/src/tests/framework/utils.rs index a71361d2e..764b3fa31 100644 --- a/crates/op-rbuilder/src/tests/framework/utils.rs +++ b/crates/op-rbuilder/src/tests/framework/utils.rs @@ -1,10 +1,16 @@ use crate::{ - tests::{ONE_ETH, Protocol, framework::driver::ChainDriver}, + tests::{ + BUILDER_PRIVATE_KEY, Protocol, block_builder_policy::BlockBuilderPolicy, + flashblocks_number_contract::FlashblocksNumber, + flashtestation_registry::FlashtestationRegistry, framework::driver::ChainDriver, + mock_dcap_attestation::MockAutomataDcapAttestationFee, + }, tx_signer::Signer, }; use alloy_eips::Encodable2718; use alloy_primitives::{Address, B256, BlockHash, TxHash, TxKind, U256, hex}; use alloy_rpc_types_eth::{Block, BlockTransactionHashes}; +use alloy_sol_types::SolCall; use core::future::Future; use op_alloy_consensus::{OpTypedTransaction, TxDeposit}; use op_alloy_rpc_types::Transaction; @@ -17,12 +23,22 @@ use reth_node_core::{args::DatadirArgs, dirs::DataDirPath, node_config::NodeConf use reth_optimism_chainspec::OpChainSpec; use std::{net::TcpListener, sync::Arc}; -use super::{FUNDED_PRIVATE_KEYS, TransactionBuilder}; +use super::{FUNDED_PRIVATE_KEY, TransactionBuilder}; pub trait TransactionBuilderExt { fn random_valid_transfer(self) -> Self; fn random_reverting_transaction(self) -> Self; fn random_big_transaction(self) -> Self; + // flashblocks number methods + fn deploy_flashblock_number_contract(self) -> Self; + fn init_flashblock_number_contract(self, register_builder: bool) -> Self; + // flashtestations methods + fn deploy_flashtestation_registry_contract(self) -> Self; + fn init_flashtestation_registry_contract(self, dcap_address: Address) -> Self; + fn deploy_builder_policy_contract(self) -> Self; + fn init_builder_policy_contract(self, registry_address: Address) -> Self; + fn deploy_mock_dcap_contract(self) -> Self; + fn add_mock_quote(self) -> Self; } impl TransactionBuilderExt for TransactionBuilder { @@ -41,10 +57,87 @@ impl TransactionBuilderExt for TransactionBuilder { self.with_create() .with_input(hex!("6c63ffffffff60005260046000f36000526002600d60136000f5").into()) } + + fn deploy_flashblock_number_contract(self) -> Self { + self.with_create() + .with_input(FlashblocksNumber::BYTECODE.clone()) + .with_gas_limit(2_000_000) // deployment costs ~1.6 million gas + } + + fn init_flashblock_number_contract(self, register_builder: bool) -> Self { + let builder_signer = builder_signer(); + let owner = funded_signer(); + + let init_data = FlashblocksNumber::initializeCall { + _owner: owner.address, + _initialBuilders: if register_builder { + vec![builder_signer.address] + } else { + vec![] + }, + } + .abi_encode(); + + self.with_input(init_data.into()) + } + + fn deploy_flashtestation_registry_contract(self) -> Self { + self.with_create() + .with_input(FlashtestationRegistry::BYTECODE.clone()) + .with_gas_limit(1_000_000) + } + + fn init_flashtestation_registry_contract(self, dcap_address: Address) -> Self { + let owner = funded_signer(); + + let init_data = FlashtestationRegistry::initializeCall { + owner: owner.address, + _attestationContract: dcap_address, + } + .abi_encode(); + + self.with_input(init_data.into()) + } + + fn deploy_builder_policy_contract(self) -> Self { + self.with_create() + .with_input(BlockBuilderPolicy::BYTECODE.clone()) + .with_gas_limit(1_000_000) + } + + fn init_builder_policy_contract(self, registry_address: Address) -> Self { + let owner = funded_signer(); + + let init_data = BlockBuilderPolicy::initializeCall { + _initialOwner: owner.address, + _registry: registry_address, + } + .abi_encode(); + + self.with_input(init_data.into()) + } + + fn deploy_mock_dcap_contract(self) -> Self { + self.with_create() + .with_input(MockAutomataDcapAttestationFee::BYTECODE.clone()) + .with_gas_limit(1_000_000) + } + + fn add_mock_quote(self) -> Self { + let quote = MockAutomataDcapAttestationFee::setQuoteResultCall { + // quote from http://ns31695324.ip-141-94-163.eu:10080/attest for builder key + rawQuote: include_bytes!("./artifacts/test-quote.bin").into(), + _success: true, + // response from verifyAndAttestOnChain from the real automata dcap contract on + // unichain sepolia 0x95175096a9B74165BE0ac84260cc14Fc1c0EF5FF + _output: include_bytes!("./artifacts/quote-output.bin").into(), + } + .abi_encode(); + self.with_input(quote.into()).with_gas_limit(500_000) + } } pub trait ChainDriverExt { - fn fund_default_accounts(&self) -> impl Future>; fn fund_many( &self, addresses: Vec
, @@ -52,11 +145,6 @@ pub trait ChainDriverExt { ) -> impl Future>; fn fund(&self, address: Address, amount: u128) -> impl Future>; - fn first_funded_address(&self) -> Address { - FUNDED_PRIVATE_KEYS[0] - .parse() - .expect("Invalid funded private key") - } fn fund_accounts( &self, @@ -81,14 +169,6 @@ pub trait ChainDriverExt { } impl ChainDriverExt for ChainDriver

{ - async fn fund_default_accounts(&self) -> eyre::Result<()> { - for key in FUNDED_PRIVATE_KEYS { - let signer: Signer = key.parse()?; - self.fund(signer.address, ONE_ETH).await?; - } - Ok(()) - } - async fn fund_many(&self, addresses: Vec

, amount: u128) -> eyre::Result { let mut txs = Vec::with_capacity(addresses.len()); @@ -239,3 +319,21 @@ pub fn get_available_port() -> u16 { .expect("Failed to get local address") .port() } + +pub fn builder_signer() -> Signer { + Signer::try_from_secret( + BUILDER_PRIVATE_KEY + .parse() + .expect("invalid hardcoded builder private key"), + ) + .expect("Failed to create signer from hardcoded builder private key") +} + +pub fn funded_signer() -> Signer { + Signer::try_from_secret( + FUNDED_PRIVATE_KEY + .parse() + .expect("invalid hardcoded funded private key"), + ) + .expect("Failed to create signer from hardcoded funded private key") +} From ccdd1b12f99c8e074fb8a01e6c9665990a457fc9 Mon Sep 17 00:00:00 2001 From: shana Date: Fri, 3 Oct 2025 10:47:34 -0700 Subject: [PATCH 46/54] Update flashtestation service with latest contracts (#281) --- Cargo.lock | 5 +- crates/op-rbuilder/Cargo.toml | 8 +- crates/op-rbuilder/src/builders/builder_tx.rs | 23 +- crates/op-rbuilder/src/builders/context.rs | 2 +- crates/op-rbuilder/src/builders/mod.rs | 5 +- .../src/builders/standard/payload.rs | 14 +- .../op-rbuilder/src/flashtestations/args.rs | 16 +- .../src/flashtestations/attestation.rs | 45 ++-- crates/op-rbuilder/src/flashtestations/mod.rs | 95 +++++++ .../src/flashtestations/service.rs | 248 ++++++++---------- .../src/flashtestations/tx_manager.rs | 169 ++++-------- 11 files changed, 334 insertions(+), 296 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a6b1489ad..cff01a33a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6308,6 +6308,9 @@ dependencies = [ "futures-util", "hex", "http", + "http-body-util", + "hyper", + "hyper-util", "jsonrpsee 0.26.0", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", @@ -6325,6 +6328,7 @@ dependencies = [ "opentelemetry 0.29.1", "parking_lot", "rand 0.9.2", + "reqwest", "reth", "reth-basic-payload-builder", "reth-chain-state", @@ -6393,7 +6397,6 @@ dependencies = [ "tower 0.5.2", "tracing", "tracing-subscriber 0.3.20", - "ureq", "url", "uuid", "vergen", diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index f1fe8d1db..c674691c4 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -125,7 +125,7 @@ moka = "0.12" http = "1.0" sha3 = "0.10" hex = "0.4" -ureq = "2.10" +reqwest = "0.12.23" k256 = "0.13.4" rollup-boost = { git = "http://github.com/flashbots/rollup-boost", rev = "b86af43969557bee18f17ec1d6bcd3e984f910b2" } @@ -136,6 +136,9 @@ tar = { version = "0.4", optional = true } ctor = { version = "0.4.2", optional = true } rlimit = { version = "0.10", optional = true } macros = { path = "src/tests/framework/macros", optional = true } +hyper = { version = "1.7.0", features = ["http1"], optional = true } +hyper-util = { version = "0.1.11", optional = true } +http-body-util = { version = "0.1.3", optional = true } testcontainers = "0.24.0" dirs-next = "2.0.0" @@ -157,6 +160,9 @@ reth-ipc = { workspace = true } reth-node-builder = { workspace = true, features = ["test-utils"] } ctor = "0.4.2" rlimit = { version = "0.10" } +hyper = { version = "1.7.0", features = ["http1"] } +hyper-util = { version = "0.1.11" } +http-body-util = { version = "0.1.3" } [features] default = ["jemalloc"] diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index a8ba3bd80..0cd8d5e8e 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -2,7 +2,7 @@ use alloy_consensus::TxEip1559; use alloy_eips::{Encodable2718, eip7623::TOTAL_COST_FLOOR_PER_TOKEN}; use alloy_evm::Database; use alloy_primitives::{ - Address, B256, Log, TxKind, + Address, B256, Log, TxKind, U256, map::foldhash::{HashSet, HashSetExt}, }; use core::fmt::Debug; @@ -13,9 +13,7 @@ use reth_node_api::PayloadBuilderError; use reth_optimism_primitives::OpTransactionSigned; use reth_primitives::Recovered; use reth_provider::{ProviderError, StateProvider}; -use reth_revm::{ - State, database::StateProviderDatabase, db::states::bundle_state::BundleRetention, -}; +use reth_revm::{State, database::StateProviderDatabase}; use revm::{ DatabaseCommit, context::result::{EVMError, ResultAndState}, @@ -57,6 +55,9 @@ pub enum BuilderTransactionError { /// Signature signing fails #[error("failed to sign transaction: {0}")] SigningError(secp256k1::Error), + /// Invalid tx errors during evm execution. + #[error("invalid transaction error {0}")] + InvalidTransactionError(Box), /// Unrecoverable error during evm execution. #[error("evm execution error {0}")] EvmExecutionError(Box), @@ -187,7 +188,6 @@ pub trait BuilderTransactions: Debug { .map_err(|err| BuilderTransactionError::EvmExecutionError(Box::new(err)))?; evm.db_mut().commit(state); - evm.db_mut().merge_transitions(BundleRetention::Reverts); } Ok(simulation_state) @@ -283,7 +283,7 @@ impl BuilderTxBase { } } -pub(crate) fn get_nonce( +pub fn get_nonce( db: &mut State, address: Address, ) -> Result { @@ -292,6 +292,15 @@ pub(crate) fn get_nonce( .map_err(|_| BuilderTransactionError::AccountLoadFailed(address)) } -pub(crate) fn log_exists(logs: &[Log], topic: &B256) -> bool { +pub fn get_balance( + db: &mut State, + address: Address, +) -> Result { + db.load_cache_account(address) + .map(|acc| acc.account_info().unwrap_or_default().balance) + .map_err(|_| BuilderTransactionError::AccountLoadFailed(address)) +} + +pub fn log_exists(logs: &[Log], topic: &B256) -> bool { logs.iter().any(|log| log.topics().first() == Some(topic)) } diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index b49c697f9..71f10c833 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -480,7 +480,7 @@ impl OpPayloadBuilderCtx { } if exclude_reverting_txs { log_txn(TxnExecutionResult::RevertedAndExcluded); - info!(target: "payload_builder", tx_hash = ?tx.tx_hash(), "skipping reverted transaction"); + info!(target: "payload_builder", tx_hash = ?tx.tx_hash(), result = ?result, "skipping reverted transaction"); best_txs.mark_invalid(tx.signer(), tx.nonce()); continue; } else { diff --git a/crates/op-rbuilder/src/builders/mod.rs b/crates/op-rbuilder/src/builders/mod.rs index 8dcde8eb5..9dbd949ce 100644 --- a/crates/op-rbuilder/src/builders/mod.rs +++ b/crates/op-rbuilder/src/builders/mod.rs @@ -21,7 +21,10 @@ mod flashblocks; mod generator; mod standard; -pub use builder_tx::{BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions}; +pub use builder_tx::{ + BuilderTransactionCtx, BuilderTransactionError, BuilderTransactions, get_balance, get_nonce, + log_exists, +}; pub use context::OpPayloadBuilderCtx; pub use flashblocks::FlashblocksBuilder; pub use standard::StandardBuilder; diff --git a/crates/op-rbuilder/src/builders/standard/payload.rs b/crates/op-rbuilder/src/builders/standard/payload.rs index 0c0e5de07..66e0adda4 100644 --- a/crates/op-rbuilder/src/builders/standard/payload.rs +++ b/crates/op-rbuilder/src/builders/standard/payload.rs @@ -347,7 +347,15 @@ impl OpBuilder<'_, Txs> { // 4. if mem pool transactions are requested we execute them // gas reserved for builder tx - let builder_txs = builder_tx.add_builder_txs(&state_provider, &mut info, ctx, db, true)?; + let builder_txs = + match builder_tx.add_builder_txs(&state_provider, &mut info, ctx, db, true) { + Ok(builder_txs) => builder_txs, + Err(e) => { + error!(target: "payload_builder", "Error adding builder txs to block: {}", e); + vec![] + } + }; + let builder_tx_gas = builder_txs.iter().fold(0, |acc, tx| acc + tx.gas_used); let block_gas_limit = ctx.block_gas_limit().saturating_sub(builder_tx_gas); if block_gas_limit == 0 { @@ -394,7 +402,9 @@ impl OpBuilder<'_, Txs> { } // Add builder tx to the block - builder_tx.add_builder_txs(&state_provider, &mut info, ctx, db, false)?; + if let Err(e) = builder_tx.add_builder_txs(&state_provider, &mut info, ctx, db, false) { + error!(target: "payload_builder", "Error adding builder txs to fallback block: {}", e); + }; let state_merge_start_time = Instant::now(); diff --git a/crates/op-rbuilder/src/flashtestations/args.rs b/crates/op-rbuilder/src/flashtestations/args.rs index 3e8266399..54d5d837f 100644 --- a/crates/op-rbuilder/src/flashtestations/args.rs +++ b/crates/op-rbuilder/src/flashtestations/args.rs @@ -1,10 +1,12 @@ use alloy_primitives::{Address, U256, utils::parse_ether}; +use clap::Parser; +use reth_optimism_cli::commands::Commands; -use crate::tx_signer::Signer; +use crate::{args::Cli, tx_signer::Signer}; /// Parameters for Flashtestations configuration /// The names in the struct are prefixed with `flashtestations` -#[derive(Debug, Clone, Default, PartialEq, Eq, clap::Args)] +#[derive(Debug, Clone, PartialEq, Eq, clap::Args)] pub struct FlashtestationsArgs { /// When set to true, the builder will initiate the flashtestations /// workflow within the bootstrapping and block building process. @@ -91,3 +93,13 @@ pub struct FlashtestationsArgs { )] pub builder_proof_version: u8, } + +impl Default for FlashtestationsArgs { + fn default() -> Self { + let args = Cli::parse_from(["dummy", "node"]); + let Commands::Node(node_command) = args.command else { + unreachable!() + }; + node_command.ext.flashtestations + } +} diff --git a/crates/op-rbuilder/src/flashtestations/attestation.rs b/crates/op-rbuilder/src/flashtestations/attestation.rs index 534dfcb15..39c99539d 100644 --- a/crates/op-rbuilder/src/flashtestations/attestation.rs +++ b/crates/op-rbuilder/src/flashtestations/attestation.rs @@ -1,6 +1,5 @@ -use std::io::Read; +use reqwest::Client; use tracing::info; -use ureq; const DEBUG_QUOTE_SERVICE_URL: &str = "http://ns31695324.ip-141-94-163.eu:10080/attest"; @@ -12,55 +11,55 @@ pub struct AttestationConfig { /// The URL of the quote provider pub quote_provider: Option, } - -/// Trait for attestation providers -pub trait AttestationProvider { - fn get_attestation(&self, report_data: [u8; 64]) -> eyre::Result>; -} - /// Remote attestation provider +#[derive(Debug, Clone)] pub struct RemoteAttestationProvider { + client: Client, service_url: String, } impl RemoteAttestationProvider { pub fn new(service_url: String) -> Self { - Self { service_url } + let client = Client::new(); + Self { + client, + service_url, + } } } -impl AttestationProvider for RemoteAttestationProvider { - fn get_attestation(&self, report_data: [u8; 64]) -> eyre::Result> { +impl RemoteAttestationProvider { + pub async fn get_attestation(&self, report_data: [u8; 64]) -> eyre::Result> { let report_data_hex = hex::encode(report_data); let url = format!("{}/{}", self.service_url, report_data_hex); info!(target: "flashtestations", url = url, "fetching quote in debug mode"); - let response = ureq::get(&url) + let response = self + .client + .get(&url) .timeout(std::time::Duration::from_secs(10)) - .call()?; - - let mut body = Vec::new(); - response.into_reader().read_to_end(&mut body)?; + .send() + .await? + .error_for_status()?; + let body = response.bytes().await?.to_vec(); Ok(body) } } -pub fn get_attestation_provider( - config: AttestationConfig, -) -> Box { +pub fn get_attestation_provider(config: AttestationConfig) -> RemoteAttestationProvider { if config.debug { - Box::new(RemoteAttestationProvider::new( + RemoteAttestationProvider::new( config .quote_provider .unwrap_or(DEBUG_QUOTE_SERVICE_URL.to_string()), - )) + ) } else { - Box::new(RemoteAttestationProvider::new( + RemoteAttestationProvider::new( config .quote_provider .expect("remote quote provider must be specified when not in debug mode"), - )) + ) } } diff --git a/crates/op-rbuilder/src/flashtestations/mod.rs b/crates/op-rbuilder/src/flashtestations/mod.rs index a5b16e734..6f9c2743f 100644 --- a/crates/op-rbuilder/src/flashtestations/mod.rs +++ b/crates/op-rbuilder/src/flashtestations/mod.rs @@ -1,3 +1,98 @@ +use alloy_sol_types::{Error, sol}; +use op_revm::OpHaltReason; + +// https://github.com/flashbots/flashtestations/commit/7cc7f68492fe672a823dd2dead649793aac1f216 +sol!( + #[sol(rpc, abi)] + #[derive(Debug)] + interface IFlashtestationRegistry { + function registerTEEService(bytes calldata rawQuote, bytes calldata extendedRegistrationData) external; + + /// @notice Emitted when a TEE service is registered + /// @param teeAddress The address of the TEE service + /// @param rawQuote The raw quote from the TEE device + /// @param alreadyExists Whether the TEE service is already registered + event TEEServiceRegistered(address indexed teeAddress, bytes rawQuote, bool alreadyExists); + + /// @notice Emitted when the attestation contract is the 0x0 address + error InvalidAttestationContract(); + /// @notice Emitted when the signature is expired because the deadline has passed + error ExpiredSignature(uint256 deadline); + /// @notice Emitted when the quote is invalid according to the Automata DCAP Attestation contract + error InvalidQuote(bytes output); + /// @notice Emitted when the report data length is too short + error InvalidReportDataLength(uint256 length); + /// @notice Emitted when the registration data hash does not match the expected hash + error InvalidRegistrationDataHash(bytes32 expected, bytes32 received); + /// @notice Emitted when the byte size is exceeded + error ByteSizeExceeded(uint256 size); + /// @notice Emitted when the TEE service is already registered when registering + error TEEServiceAlreadyRegistered(address teeAddress); + /// @notice Emitted when the signer doesn't match the TEE address + error SignerMustMatchTEEAddress(address signer, address teeAddress); + /// @notice Emitted when the TEE service is not registered + error TEEServiceNotRegistered(address teeAddress); + /// @notice Emitted when the TEE service is already invalid when trying to invalidate a TEE registration + error TEEServiceAlreadyInvalid(address teeAddress); + /// @notice Emitted when the TEE service is still valid when trying to invalidate a TEE registration + error TEEIsStillValid(address teeAddress); + /// @notice Emitted when the nonce is invalid when verifying a signature + error InvalidNonce(uint256 expected, uint256 provided); + } + + #[sol(rpc, abi)] + #[derive(Debug)] + interface IBlockBuilderPolicy { + function verifyBlockBuilderProof(uint8 version, bytes32 blockContentHash) external; + + /// @notice Emitted when a block builder proof is successfully verified + /// @param caller The address that called the verification function (TEE address) + /// @param workloadId The workload identifier of the TEE + /// @param version The flashtestation protocol version used + /// @param blockContentHash The hash of the block content + /// @param commitHash The git commit hash associated with the workload + event BlockBuilderProofVerified( + address caller, bytes32 workloadId, uint8 version, bytes32 blockContentHash, string commitHash + ); + + /// @notice Emitted when the registry is the 0x0 address + error InvalidRegistry(); + /// @notice Emitted when a workload to be added is already in the policy + error WorkloadAlreadyInPolicy(); + /// @notice Emitted when a workload to be removed is not in the policy + error WorkloadNotInPolicy(); + /// @notice Emitted when the address is not in the approvedWorkloads mapping + error UnauthorizedBlockBuilder(address caller); + /// @notice Emitted when the nonce is invalid + error InvalidNonce(uint256 expected, uint256 provided); + /// @notice Emitted when the commit hash is empty + error EmptyCommitHash(); + /// @notice Emitted when the source locators array is empty + error EmptySourceLocators(); + } + + struct BlockData { + bytes32 parentHash; + uint256 blockNumber; + uint256 timestamp; + bytes32[] transactionHashes; + } + + type WorkloadId is bytes32; +); + +#[derive(Debug, thiserror::Error)] +pub enum FlashtestationRevertReason { + #[error("flashtestation registry error: {0:?}")] + FlashtestationRegistry(IFlashtestationRegistry::IFlashtestationRegistryErrors), + #[error("block builder policy error: {0:?}")] + BlockBuilderPolicy(IBlockBuilderPolicy::IBlockBuilderPolicyErrors), + #[error("unknown revert: {0} err: {1}")] + Unknown(String, Error), + #[error("halt: {0:?}")] + Halt(OpHaltReason), +} + pub mod args; pub mod attestation; pub mod service; diff --git a/crates/op-rbuilder/src/flashtestations/service.rs b/crates/op-rbuilder/src/flashtestations/service.rs index bd93a777c..83dd613f7 100644 --- a/crates/op-rbuilder/src/flashtestations/service.rs +++ b/crates/op-rbuilder/src/flashtestations/service.rs @@ -1,6 +1,4 @@ -use std::sync::Arc; - -use alloy_primitives::U256; +use alloy_primitives::{Bytes, keccak256}; use reth_node_builder::BuilderContext; use reth_provider::StateProvider; use reth_revm::State; @@ -14,99 +12,15 @@ use crate::{ }, primitives::reth::ExecutionInfo, traits::NodeBounds, - tx_signer::{Signer, generate_ethereum_keypair}, + tx_signer::{Signer, generate_ethereum_keypair, generate_key_from_seed}, }; use super::{ args::FlashtestationsArgs, - attestation::{AttestationConfig, AttestationProvider, get_attestation_provider}, + attestation::{AttestationConfig, get_attestation_provider}, tx_manager::TxManager, }; -#[derive(Clone)] -pub struct FlashtestationsService { - // Attestation provider generating attestations - attestation_provider: Arc>, - // Handles the onchain attestation and TEE block building proofs - tx_manager: TxManager, - // TEE service generated key - tee_service_signer: Signer, - // Funding amount for the TEE signer - funding_amount: U256, -} - -// TODO: FlashtestationsService error types -impl FlashtestationsService { - pub fn new(args: FlashtestationsArgs) -> Self { - let (private_key, public_key, address) = generate_ethereum_keypair(); - let tee_service_signer = Signer { - address, - pubkey: public_key, - secret: private_key, - }; - - let attestation_provider = Arc::new(get_attestation_provider(AttestationConfig { - debug: args.debug, - quote_provider: args.quote_provider, - })); - - let tx_manager = TxManager::new( - tee_service_signer, - args.funding_key - .expect("funding key required when flashtestations enabled"), - args.rpc_url - .expect("external rpc url required when flashtestations enabled"), - args.registry_address - .expect("registry address required when flashtestations enabled"), - args.builder_policy_address - .expect("builder policy address required when flashtestations enabled"), - args.builder_proof_version, - ); - - Self { - attestation_provider, - tx_manager, - tee_service_signer, - funding_amount: args.funding_amount, - } - } - - pub async fn bootstrap(&self) -> eyre::Result<()> { - // Prepare report data with public key (64 bytes, no 0x04 prefix) - let mut report_data = [0u8; 64]; - let pubkey_uncompressed = self.tee_service_signer.pubkey.serialize_uncompressed(); - report_data.copy_from_slice(&pubkey_uncompressed[1..65]); // Skip 0x04 prefix - - // Request TDX attestation - info!(target: "flashtestations", "requesting TDX attestation"); - let attestation = self.attestation_provider.get_attestation(report_data)?; - - // Submit report onchain by registering the key of the tee service - self.tx_manager - .fund_and_register_tee_service(attestation, self.funding_amount) - .await - } - - pub async fn clean_up(&self) -> eyre::Result<()> { - self.tx_manager.clean_up().await - } -} - -#[derive(Debug, Clone)] -pub struct FlashtestationsBuilderTx {} - -impl BuilderTransactions for FlashtestationsBuilderTx { - fn simulate_builder_txs( - &self, - _state_provider: impl StateProvider + Clone, - _info: &mut ExecutionInfo, - _ctx: &OpPayloadBuilderCtx, - _db: &mut State, - ) -> Result, BuilderTransactionError> { - Ok(vec![]) - } -} - pub async fn bootstrap_flashtestations( args: FlashtestationsArgs, ctx: &BuilderContext, @@ -114,74 +28,124 @@ pub async fn bootstrap_flashtestations( where Node: NodeBounds, { - info!("Flashtestations enabled"); + let (private_key, public_key, address) = if args.debug { + info!("Flashtestations debug mode enabled, generating debug key"); + // Generate deterministic key for debugging purposes + generate_key_from_seed(&args.debug_tee_key_seed) + } else { + generate_ethereum_keypair() + }; + + info!("Flashtestations key generated: {}", address); + + let tee_service_signer = Signer { + address, + pubkey: public_key, + secret: private_key, + }; + + let funding_key = args + .funding_key + .expect("funding key required when flashtestations enabled"); + let registry_address = args + .registry_address + .expect("registry address required when flashtestations enabled"); + let _builder_policy_address = args + .builder_policy_address + .expect("builder policy address required when flashtestations enabled"); + + let attestation_provider = get_attestation_provider(AttestationConfig { + debug: args.debug, + quote_provider: args.quote_provider, + }); + + // Prepare report data: + // - TEE address (20 bytes) at reportData[0:20] + // - Extended registration data hash (32 bytes) at reportData[20:52] + // - Total: 52 bytes, padded to 64 bytes with zeros + + // Extract TEE address as 20 bytes + let tee_address_bytes: [u8; 20] = tee_service_signer.address.into(); + + // Calculate keccak256 hash of empty bytes (32 bytes) + let ext_data = Bytes::from(b""); + let ext_data_hash = keccak256(&ext_data); + + // Create 64-byte report data array + let mut report_data = [0u8; 64]; + + // Copy TEE address (20 bytes) to positions 0-19 + report_data[0..20].copy_from_slice(&tee_address_bytes); + + // Copy extended registration data hash (32 bytes) to positions 20-51 + report_data[20..52].copy_from_slice(ext_data_hash.as_ref()); + + // Request TDX attestation + info!(target: "flashtestations", "requesting TDX attestation"); + let attestation = attestation_provider.get_attestation(report_data).await?; + + #[allow(dead_code)] + let (tx_manager, _registered) = if let Some(rpc_url) = args.rpc_url { + let tx_manager = TxManager::new( + tee_service_signer, + funding_key, + rpc_url.clone(), + registry_address, + ); + // Submit report onchain by registering the key of the tee service + match tx_manager + .fund_and_register_tee_service( + attestation.clone(), + ext_data.clone(), + args.funding_amount, + ) + .await + { + Ok(_) => (Some(tx_manager), true), + Err(e) => { + warn!(error = %e, "Failed to register tee service via rpc"); + (Some(tx_manager), false) + } + } + } else { + (None, false) + }; - let flashtestations_service = FlashtestationsService::new(args.clone()); - // Generates new key and registers the attestation onchain - flashtestations_service.bootstrap().await?; + let flashtestations_builder_tx = FlashtestationsBuilderTx {}; - let flashtestations_clone = flashtestations_service.clone(); ctx.task_executor() .spawn_critical_with_graceful_shutdown_signal( "flashtestations clean up task", |shutdown| { Box::pin(async move { let graceful_guard = shutdown.await; - if let Err(e) = flashtestations_clone.clean_up().await { - warn!( - error = %e, - "Failed to complete clean up for flashtestations service", - ) - }; + if let Some(tx_manager) = tx_manager { + if let Err(e) = tx_manager.clean_up().await { + warn!( + error = %e, + "Failed to complete clean up for flashtestations service", + ); + } + } drop(graceful_guard) }) }, ); - Ok(FlashtestationsBuilderTx {}) + Ok(flashtestations_builder_tx) } -#[cfg(test)] -mod tests { - use alloy_primitives::Address; - use secp256k1::{PublicKey, Secp256k1, SecretKey}; - use sha3::{Digest, Keccak256}; - - use crate::tx_signer::public_key_to_address; - - /// Derives Ethereum address from report data using the same logic as the Solidity contract - fn derive_ethereum_address_from_report_data(pubkey_64_bytes: &[u8]) -> Address { - // This exactly matches the Solidity implementation: - // address(uint160(uint256(keccak256(reportData)))) - - // Step 1: keccak256(reportData) - let hash = Keccak256::digest(pubkey_64_bytes); - - // Step 2: Take last 20 bytes (same as uint256 -> uint160 conversion) - let mut address_bytes = [0u8; 20]; - address_bytes.copy_from_slice(&hash[12..32]); - - Address::from(address_bytes) - } - - #[test] - fn test_address_derivation_matches() { - // Test that our manual derivation is correct - let secp = Secp256k1::new(); - let private_key = SecretKey::from_slice(&[0x01; 32]).unwrap(); - let public_key = PublicKey::from_secret_key(&secp, &private_key); - - // Get address using our implementation - let our_address = public_key_to_address(&public_key); - - // Get address using our manual derivation (matching Solidity) - let pubkey_bytes = public_key.serialize_uncompressed(); - let report_data = &pubkey_bytes[1..65]; // Skip 0x04 prefix - let manual_address = derive_ethereum_address_from_report_data(report_data); +#[derive(Debug, Clone)] +pub struct FlashtestationsBuilderTx {} - assert_eq!( - our_address, manual_address, - "Address derivation should match" - ); +impl BuilderTransactions for FlashtestationsBuilderTx { + fn simulate_builder_txs( + &self, + _state_provider: impl StateProvider + Clone, + _info: &mut ExecutionInfo, + _ctx: &OpPayloadBuilderCtx, + _db: &mut State, + ) -> Result, BuilderTransactionError> { + Ok(vec![]) } } diff --git a/crates/op-rbuilder/src/flashtestations/tx_manager.rs b/crates/op-rbuilder/src/flashtestations/tx_manager.rs index 9eabdd28a..a49f50a36 100644 --- a/crates/op-rbuilder/src/flashtestations/tx_manager.rs +++ b/crates/op-rbuilder/src/flashtestations/tx_manager.rs @@ -1,41 +1,34 @@ -use alloy_consensus::TxEip1559; -use alloy_eips::Encodable2718; +use alloy_json_rpc::RpcError; use alloy_network::ReceiptResponse; -use alloy_primitives::{Address, B256, Bytes, TxHash, TxKind, U256, keccak256}; +use alloy_primitives::{Address, Bytes, TxHash, TxKind, U256}; use alloy_rpc_types_eth::TransactionRequest; -use alloy_transport::TransportResult; -use op_alloy_consensus::OpTypedTransaction; -use reth_optimism_node::OpBuiltPayload; -use reth_optimism_primitives::OpTransactionSigned; -use reth_primitives::Recovered; +use alloy_sol_types::SolCall; +use alloy_transport::{TransportError, TransportErrorKind, TransportResult}; +use k256::ecdsa; use std::time::Duration; -use alloy_provider::{PendingTransactionBuilder, Provider, ProviderBuilder}; +use alloy_provider::{ + PendingTransactionBuilder, PendingTransactionError, Provider, ProviderBuilder, +}; use alloy_signer_local::PrivateKeySigner; -use alloy_sol_types::{SolCall, SolValue, sol}; use op_alloy_network::Optimism; -use tracing::{debug, error, info}; - -use crate::tx_signer::Signer; - -sol!( - #[sol(rpc, abi)] - interface IFlashtestationRegistry { - function registerTEEService(bytes calldata rawQuote) external; - } - - #[sol(rpc, abi)] - interface IBlockBuilderPolicy { - function verifyBlockBuilderProof(uint8 version, bytes32 blockContentHash) external; - } - - struct BlockData { - bytes32 parentHash; - uint256 blockNumber; - uint256 timestamp; - bytes32[] transactionHashes; - } -); +use tracing::{debug, info, warn}; + +use crate::{flashtestations::IFlashtestationRegistry, tx_signer::Signer}; + +#[derive(Debug, thiserror::Error)] +pub enum TxManagerError { + #[error("rpc error: {0}")] + RpcError(#[from] TransportError), + #[error("tx reverted: {0}")] + TxReverted(TxHash), + #[error("error checking tx confirmation: {0}")] + TxConfirmationError(PendingTransactionError), + #[error("tx rpc error: {0}")] + TxRpcError(RpcError), + #[error("signer error: {0}")] + SignerError(ecdsa::Error), +} #[derive(Debug, Clone)] pub struct TxManager { @@ -43,8 +36,6 @@ pub struct TxManager { funding_signer: Signer, rpc_url: String, registry_address: Address, - builder_policy_address: Address, - builder_proof_version: u8, } impl TxManager { @@ -53,21 +44,23 @@ impl TxManager { funding_signer: Signer, rpc_url: String, registry_address: Address, - builder_policy_address: Address, - builder_proof_version: u8, ) -> Self { Self { tee_service_signer, funding_signer, rpc_url, registry_address, - builder_policy_address, - builder_proof_version, } } - pub async fn fund_address(&self, from: Signer, to: Address, amount: U256) -> eyre::Result<()> { - let funding_wallet = PrivateKeySigner::from_bytes(&from.secret.secret_bytes().into())?; + pub async fn fund_address( + &self, + from: Signer, + to: Address, + amount: U256, + ) -> Result<(), TxManagerError> { + let funding_wallet = PrivateKeySigner::from_bytes(&from.secret.secret_bytes().into()) + .map_err(TxManagerError::SignerError)?; let provider = ProviderBuilder::new() .disable_recommended_fillers() .fetch_chain_id() @@ -91,36 +84,41 @@ impl TxManager { match Self::process_pending_tx(provider.send_transaction(funding_tx.into()).await).await { Ok(tx_hash) => { info!(target: "flashtestations", tx_hash = %tx_hash, "funding transaction confirmed successfully"); + Ok(()) } Err(e) => { - error!(target: "flashtestations", error = %e, "funding transaction failed"); - return Err(e); + warn!(target: "flashtestations", error = %e, "funding transaction failed"); + Err(e) } } - - Ok(()) } pub async fn fund_and_register_tee_service( &self, attestation: Vec, + extra_registration_data: Bytes, funding_amount: U256, - ) -> eyre::Result<()> { + ) -> Result<(), TxManagerError> { info!(target: "flashtestations", "funding TEE address at {}", self.tee_service_signer.address); self.fund_address( self.funding_signer, self.tee_service_signer.address, funding_amount, ) - .await?; + .await + .unwrap_or_else(|e| { + warn!(target: "flashtestations", error = %e, "Failed to fund TEE address, attempting to register without funding"); + }); let quote_bytes = Bytes::from(attestation); let wallet = - PrivateKeySigner::from_bytes(&self.tee_service_signer.secret.secret_bytes().into())?; + PrivateKeySigner::from_bytes(&self.tee_service_signer.secret.secret_bytes().into()) + .map_err(TxManagerError::SignerError)?; let provider = ProviderBuilder::new() .disable_recommended_fillers() .fetch_chain_id() .with_gas_estimation() + .with_cached_nonce_management() .wallet(wallet) .network::() .connect(self.rpc_url.as_str()) @@ -128,16 +126,14 @@ impl TxManager { info!(target: "flashtestations", "submitting quote to registry at {}", self.registry_address); - // TODO: add retries let calldata = IFlashtestationRegistry::registerTEEServiceCall { rawQuote: quote_bytes, + extendedRegistrationData: extra_registration_data, } .abi_encode(); let tx = TransactionRequest { from: Some(self.tee_service_signer.address), to: Some(TxKind::Call(self.registry_address)), - // gas: Some(10_000_000), // Set gas limit manually as the contract is gas heavy - nonce: Some(0), input: calldata.into(), ..Default::default() }; @@ -147,43 +143,13 @@ impl TxManager { Ok(()) } Err(e) => { - error!(target: "flashtestations", error = %e, "attestation transaction failed to be sent"); + warn!(target: "flashtestations", error = %e, "attestation transaction failed to be sent"); Err(e) } } } - pub fn signed_block_builder_proof( - &self, - payload: OpBuiltPayload, - gas_limit: u64, - base_fee: u64, - chain_id: u64, - nonce: u64, - ) -> Result, secp256k1::Error> { - let block_content_hash = Self::compute_block_content_hash(payload); - - info!(target: "flashtestations", block_content_hash = ?block_content_hash, "submitting block builder proof transaction"); - let calldata = IBlockBuilderPolicy::verifyBlockBuilderProofCall { - version: self.builder_proof_version, - blockContentHash: block_content_hash, - } - .abi_encode(); - // Create the EIP-1559 transaction - let tx = OpTypedTransaction::Eip1559(TxEip1559 { - chain_id, - nonce, - gas_limit, - max_fee_per_gas: base_fee.into(), - max_priority_fee_per_gas: 0, - to: TxKind::Call(self.builder_policy_address), - input: calldata.into(), - ..Default::default() - }); - self.tee_service_signer.sign_tx(tx) - } - - pub async fn clean_up(&self) -> eyre::Result<()> { + pub async fn clean_up(&self) -> Result<(), TxManagerError> { info!(target: "flashtestations", "sending funds back from TEE generated key to funding address"); let provider = ProviderBuilder::new() .disable_recommended_fillers() @@ -202,7 +168,7 @@ impl TxManager { self.funding_signer.address, balance.saturating_sub(gas_cost), ) - .await? + .await?; } Ok(()) } @@ -210,7 +176,7 @@ impl TxManager { /// Processes a pending transaction and logs whether the transaction succeeded or not async fn process_pending_tx( pending_tx_result: TransportResult>, - ) -> eyre::Result { + ) -> Result { match pending_tx_result { Ok(pending_tx) => { let tx_hash = *pending_tx.tx_hash(); @@ -226,42 +192,13 @@ impl TxManager { if receipt.status() { Ok(receipt.transaction_hash()) } else { - Err(eyre::eyre!("Transaction reverted: {}", tx_hash)) + Err(TxManagerError::TxReverted(tx_hash)) } } - Err(e) => Err(e.into()), + Err(e) => Err(TxManagerError::TxConfirmationError(e)), } } - Err(e) => Err(e.into()), + Err(e) => Err(TxManagerError::TxRpcError(e)), } } - - /// Computes the block content hash according to the formula: - /// keccak256(abi.encode(parentHash, blockNumber, timestamp, transactionHashes)) - fn compute_block_content_hash(payload: OpBuiltPayload) -> B256 { - let block = payload.block(); - let body = block.clone().into_body(); - let transactions = body.transactions(); - - // Create ordered list of transaction hashes - let transaction_hashes: Vec = transactions - .map(|tx| { - // RLP encode the transaction and hash it - let mut encoded = Vec::new(); - tx.encode_2718(&mut encoded); - keccak256(&encoded) - }) - .collect(); - - // Create struct and ABI encode - let block_data = BlockData { - parentHash: block.parent_hash, - blockNumber: U256::from(block.number), - timestamp: U256::from(block.timestamp), - transactionHashes: transaction_hashes, - }; - - let encoded = block_data.abi_encode(); - keccak256(&encoded) - } } From cfd1cf07125a104875bf8fc477ca7e10b062bfd7 Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 7 Oct 2025 12:01:04 +0200 Subject: [PATCH 47/54] fix: dont mangle artifact binary name (#289) * debug: show file stats * chore: remove debug --- .github/workflows/tdx_quote_provider_release.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tdx_quote_provider_release.yaml b/.github/workflows/tdx_quote_provider_release.yaml index 419749faa..6cbe644ba 100644 --- a/.github/workflows/tdx_quote_provider_release.yaml +++ b/.github/workflows/tdx_quote_provider_release.yaml @@ -89,14 +89,12 @@ jobs: git config --global --add safe.directory "$(pwd)" . $HOME/.cargo/env cargo build --release --features=${{ matrix.features }} --target ${{ matrix.configs.target }} --package tdx-quote-provider - mkdir -p artifacts - mv target/${{ matrix.configs.target }}/release/tdx-quote-provider artifacts/tdx-quote-provider-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}${{ matrix.features && '-' }}${{ matrix.features }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: tdx-quote-provider-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}${{ matrix.features && '-' }}${{ matrix.features }} - path: artifacts + path: target/${{ matrix.configs.target }}/release/tdx-quote-provider draft-release: name: Draft release @@ -120,8 +118,15 @@ jobs: - name: Record artifacts checksums working-directory: artifacts run: | + for dir in $( find . -type d -name "tdx-quote-provider-*" -printf "%f\n" ); do + mv ./$dir ./$dir.bak + mv ./$dir.bak/tdx-quote-provider ./$dir + rm -r ./$dir.bak + done find ./ || true - for file in *; do sha256sum "$file" >> sha256sums.txt; done; + for file in $( find ./ -type f ); do + sha256sum "$file" >> sha256sums.txt + done; cat sha256sums.txt - name: Create release draft From 7f588125a5a590cd2d0ee1b6af014965ecdf80ae Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 7 Oct 2025 12:01:38 +0200 Subject: [PATCH 48/54] feat: push multi-platform container images (#290) closes L2P-939 --- .github/workflows/op_rbuilder_release.yaml | 81 ++++++++++++++++++++-- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/.github/workflows/op_rbuilder_release.yaml b/.github/workflows/op_rbuilder_release.yaml index 6795b5166..625ac48db 100644 --- a/.github/workflows/op_rbuilder_release.yaml +++ b/.github/workflows/op_rbuilder_release.yaml @@ -176,14 +176,19 @@ jobs: strategy: matrix: configs: - - target: linux/amd64 + - platform: linux/amd64 runner: warp-ubuntu-latest-x64-16x - - target: linux/arm64 + - platform: linux/arm64 runner: warp-ubuntu-latest-arm64-16x steps: - name: checkout sources uses: actions/checkout@v4 + - name: set env + run: | + platform=${{ matrix.configs.platform }} + echo "PLATFORM=${platform//\//-}" >> $GITHUB_ENV + - name: docker qemu uses: docker/setup-qemu-action@v3 @@ -214,15 +219,83 @@ jobs: - name: docker build and push op-rbuilder uses: docker/build-push-action@v5 + id: build with: cache-from: type=gha cache-to: type=gha,mode=max file: Dockerfile context: . labels: ${{ steps.meta.outputs.labels }} - platforms: ${{ matrix.configs.target }} + platforms: ${{ matrix.configs.platform }} push: true - tags: ${{ steps.meta.outputs.tags }} + tags: ghcr.io/${{ github.repository }}:${{ env.VERSION }}-${{ env.PLATFORM }} build-args: | FEATURES=${{ github.event.inputs.features || '' }} RBUILDER_BIN=op-rbuilder + + - name: export digest + run: | + mkdir -p /tmp/digests + digest="${{ steps.build.outputs.digest }}" + touch "/tmp/digests/${digest#sha256:}" + + - name: upload digest + uses: actions/upload-artifact@v4 + with: + name: digests-${{ env.PLATFORM }} + path: /tmp/digests/* + if-no-files-found: error + retention-days: 1 + + publish-container-index: + name: publish container index + runs-on: warp-ubuntu-latest-x64-16x + needs: + - build-docker + - extract-version + steps: + - name: download digests + uses: actions/download-artifact@v4 + with: + path: /tmp/digests + pattern: digests-* + merge-multiple: true + + - name: setup docker buildx + uses: docker/setup-buildx-action@v3 + + - name: login to ghcr + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: generate container metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} + labels: org.opencontainers.image.source=${{ github.repositoryUrl }} + tags: | + type=sha + type=semver,pattern={{version}},value=${{ env.VERSION }} + type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }} + type=semver,pattern={{major}},value=${{ env.VERSION }} + + # Push latest tag for full version only, not for prerelease versions (i.e. not for v1.2.3-rc1) + type=raw,value=latest,enable=${{ !contains(env.VERSION, '-') }} + + - name: create manifest list and push + working-directory: /tmp/digests + run: | + jq -cr '.tags[]' <<< "$DOCKER_METADATA_OUTPUT_JSON" | while read -r tag; do + echo "Creating manifest for tag: $tag" + docker buildx imagetools create -t $tag $( + printf 'ghcr.io/${{ github.repository }}@sha256:%s ' * + ) + done + + - name: inspect image + run: | + docker buildx imagetools inspect ghcr.io/${{ github.repository }}:${{ env.VERSION }} From eec827686b5daff283a5eaa81577bd63c8cb16df Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 7 Oct 2025 12:22:02 +0200 Subject: [PATCH 49/54] release: 0.2.5 (#291) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cff01a33a..3666a7bcd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6274,7 +6274,7 @@ dependencies = [ [[package]] name = "op-rbuilder" -version = "0.2.4" +version = "0.2.5" dependencies = [ "alloy-consensus", "alloy-contract", diff --git a/Cargo.toml b/Cargo.toml index 87f68ee81..79f3c42d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "0.2.4" +version = "0.2.5" edition = "2024" rust-version = "1.86" license = "MIT OR Apache-2.0" From 0bc3637804e44d86301b3b90535a6303bf028c75 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Wed, 8 Oct 2025 08:23:44 +0500 Subject: [PATCH 50/54] fix docker build (#292) * fix docker build * add ARG TARGETPLATFORM * Try different approach * Try different approach * Try different approach * Try different approach * Try different approach * Try different approach --- Dockerfile | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index e35493215..ab201aa8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -79,16 +79,30 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ FROM base AS rbuilder-reproducible ARG RBUILDER_BIN ARG FEATURES +ARG TARGETPLATFORM + +ARG CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." + +ARG CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata=target --remap-path-prefix=/app=." + WORKDIR /app COPY . . -RUN SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ +RUN case "$TARGETPLATFORM" in \ + "linux/amd64") ARCH_TAG="x86_64-unknown-linux-gnu" ;; \ + "linux/arm64") ARCH_TAG="aarch64-unknown-linux-gnu" ;; \ + *) \ + echo "Unsupported platform: $TARGETPLATFORM"; \ + exit 1 \ + ;; \ + esac; \ + SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-static-libgcc -C link-arg=-Wl,--build-id=none -C metadata='' --remap-path-prefix=/app=." \ CARGO_INCREMENTAL=0 \ LC_ALL=C \ TZ=UTC \ CFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ CXXFLAGS="-D__TIME__=\"\" -D__DATE__=\"\"" \ - cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} --target x86_64-unknown-linux-gnu + cargo build --release --locked --features="$FEATURES" --package=${RBUILDER_BIN} --target "${ARCH_TAG}" # Runtime container for rbuilder FROM gcr.io/distroless/cc-debian12 AS rbuilder-runtime @@ -101,5 +115,5 @@ ENTRYPOINT ["/app/rbuilder"] FROM gcr.io/distroless/cc-debian12 AS rbuilder-reproducible-runtime ARG RBUILDER_BIN WORKDIR /app -COPY --from=rbuilder-reproducible /app/target/x86_64-unknown-linux-gnu/release/${RBUILDER_BIN} /app/rbuilder +COPY --from=rbuilder-reproducible /app/target/*/release/${RBUILDER_BIN} /app/rbuilder ENTRYPOINT ["/app/rbuilder"] From 28f8cac5364ebef94b8f9f35aa1b565e10d3c758 Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 8 Oct 2025 13:35:09 +0200 Subject: [PATCH 51/54] fix: publish correct container index (#293) * fix: multi-platform index * fix: drop os prefix from platform --- .github/workflows/op_rbuilder_release.yaml | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/op_rbuilder_release.yaml b/.github/workflows/op_rbuilder_release.yaml index 625ac48db..11f5a131c 100644 --- a/.github/workflows/op_rbuilder_release.yaml +++ b/.github/workflows/op_rbuilder_release.yaml @@ -36,10 +36,10 @@ jobs: name: Extract version runs-on: warp-ubuntu-latest-x64-16x outputs: - VERSION: ${{ steps.extract_version.outputs.VERSION }} + VERSION: ${{ steps.extract-version.outputs.VERSION }} steps: - name: Extract version - id: extract_version + id: extract-version run: | if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then VERSION="${GITHUB_REF#refs/tags/op-rbuilder/}" @@ -62,6 +62,8 @@ jobs: needs: extract-version if: ${{ github.event.inputs.build-binary == 'true' || github.event_name == 'push'}} # when manually triggered or version tagged runs-on: ${{ matrix.configs.runner }} + env: + VERSION: ${{ needs.extract-version.outputs.VERSION }} container: image: ubuntu:22.04 permissions: @@ -111,7 +113,7 @@ jobs: - name: Upload op-rbuilder artifact uses: actions/upload-artifact@v4 with: - name: op-rbuilder-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}${{ matrix.features && '-' }}${{ matrix.features }} + name: op-rbuilder-${{ env.VERSION }}-${{ matrix.configs.target }}${{ matrix.features && '-' }}${{ matrix.features }} path: target/${{ matrix.configs.target }}/release/op-rbuilder draft-release: @@ -120,7 +122,7 @@ jobs: needs: [extract-version, build-binary] runs-on: warp-ubuntu-latest-x64-16x env: - VERSION: op-rbuilder/${{ needs.extract-version.outputs.VERSION }} + VERSION: ${{ needs.extract-version.outputs.VERSION }} permissions: contents: write steps: @@ -154,18 +156,18 @@ jobs: draft: true files: artifacts/* generate_release_notes: true - name: ${{ env.VERSION }} - tag_name: ${{ env.VERSION }} + name: op-rbuilder/${{ env.VERSION }} + tag_name: op-rbuilder/${{ env.VERSION }} - name: Write Github Step Summary run: | echo "---" - echo "### Release Draft: ${{ env.VERSION }}" >> $GITHUB_STEP_SUMMARY + echo "### Release Draft: op-rbuilder/${{ env.VERSION }}" >> $GITHUB_STEP_SUMMARY echo "${{ steps.create-release-draft.outputs.url }}" >> $GITHUB_STEP_SUMMARY - build-docker: + publish-container-image: if: ${{ (github.ref_type == 'tag') || (github.event.inputs.build-docker == 'true') }} - name: Build and publish Docker image + name: Publish container image needs: extract-version runs-on: ${{ matrix.configs.runner }} env: @@ -187,7 +189,7 @@ jobs: - name: set env run: | platform=${{ matrix.configs.platform }} - echo "PLATFORM=${platform//\//-}" >> $GITHUB_ENV + echo "PLATFORM=${platform#*/}" >> $GITHUB_ENV - name: docker qemu uses: docker/setup-qemu-action@v3 @@ -202,13 +204,11 @@ jobs: images: ghcr.io/${{ github.repository }} labels: org.opencontainers.image.source=${{ github.repositoryUrl }} tags: | - type=sha - type=semver,pattern={{version}},value=${{ env.VERSION }} - type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }} - type=semver,pattern={{major}},value=${{ env.VERSION }} + type=semver,pattern={{version}},value=${{ env.VERSION }},prefix=v,suffix=-${{ env.PLATFORM }} + type=sha,suffix=-${{ env.PLATFORM }} # Push latest tag for full version only, not for prerelease versions (i.e. not for v1.2.3-rc1) - type=raw,value=latest,enable=${{ !contains(env.VERSION, '-') }} + type=raw,value=latest,enable=${{ !contains(env.VERSION, '-') }},suffix=-${{ env.PLATFORM }} - name: docker login uses: docker/login-action@v3 @@ -248,11 +248,13 @@ jobs: retention-days: 1 publish-container-index: - name: publish container index + name: Publish container index runs-on: warp-ubuntu-latest-x64-16x + env: + VERSION: ${{ needs.extract-version.outputs.VERSION }} needs: - - build-docker - extract-version + - publish-container-image steps: - name: download digests uses: actions/download-artifact@v4 @@ -278,10 +280,8 @@ jobs: images: ghcr.io/${{ github.repository }} labels: org.opencontainers.image.source=${{ github.repositoryUrl }} tags: | + type=semver,pattern={{version}},value=${{ env.VERSION }},prefix=v type=sha - type=semver,pattern={{version}},value=${{ env.VERSION }} - type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }} - type=semver,pattern={{major}},value=${{ env.VERSION }} # Push latest tag for full version only, not for prerelease versions (i.e. not for v1.2.3-rc1) type=raw,value=latest,enable=${{ !contains(env.VERSION, '-') }} From ea81432940c4e200f5b39ad6579c3e7e117e1a68 Mon Sep 17 00:00:00 2001 From: shana Date: Thu, 9 Oct 2025 11:49:18 -0700 Subject: [PATCH 52/54] Flag to save tee key to local file (#286) * Flag to save tee key to lcoal file * fix error handling * lint * comments * atomic file creation and permission --- .../op-rbuilder/src/flashtestations/args.rs | 8 ++ .../src/flashtestations/service.rs | 93 +++++++++++++++---- crates/op-rbuilder/src/tx_signer.rs | 16 +++- 3 files changed, 96 insertions(+), 21 deletions(-) diff --git a/crates/op-rbuilder/src/flashtestations/args.rs b/crates/op-rbuilder/src/flashtestations/args.rs index 54d5d837f..598a8a8f0 100644 --- a/crates/op-rbuilder/src/flashtestations/args.rs +++ b/crates/op-rbuilder/src/flashtestations/args.rs @@ -33,6 +33,14 @@ pub struct FlashtestationsArgs { )] pub debug_tee_key_seed: String, + /// Path to save ephemeral TEE key between restarts + #[arg( + long = "flashtestations.tee-key-path", + env = "FLASHTESTATIONS_TEE_KEY_PATH", + default_value = "/run/flashtestation.key" + )] + pub flashtestations_key_path: String, + // Remote url for attestations #[arg( long = "flashtestations.quote-provider", diff --git a/crates/op-rbuilder/src/flashtestations/service.rs b/crates/op-rbuilder/src/flashtestations/service.rs index 83dd613f7..237aef7dd 100644 --- a/crates/op-rbuilder/src/flashtestations/service.rs +++ b/crates/op-rbuilder/src/flashtestations/service.rs @@ -1,9 +1,15 @@ -use alloy_primitives::{Bytes, keccak256}; +use alloy_primitives::{B256, Bytes, keccak256}; use reth_node_builder::BuilderContext; use reth_provider::StateProvider; use reth_revm::State; use revm::Database; -use std::fmt::Debug; +use std::{ + fmt::Debug, + fs::{self, OpenOptions}, + io::Write, + os::unix::fs::OpenOptionsExt, + path::Path, +}; use tracing::{info, warn}; use crate::{ @@ -12,7 +18,7 @@ use crate::{ }, primitives::reth::ExecutionInfo, traits::NodeBounds, - tx_signer::{Signer, generate_ethereum_keypair, generate_key_from_seed}, + tx_signer::{Signer, generate_key_from_seed, generate_signer}, }; use super::{ @@ -28,21 +34,16 @@ pub async fn bootstrap_flashtestations( where Node: NodeBounds, { - let (private_key, public_key, address) = if args.debug { - info!("Flashtestations debug mode enabled, generating debug key"); - // Generate deterministic key for debugging purposes - generate_key_from_seed(&args.debug_tee_key_seed) - } else { - generate_ethereum_keypair() - }; + let tee_service_signer = load_or_generate_tee_key( + &args.flashtestations_key_path, + args.debug, + &args.debug_tee_key_seed, + )?; - info!("Flashtestations key generated: {}", address); - - let tee_service_signer = Signer { - address, - pubkey: public_key, - secret: private_key, - }; + info!( + "Flashtestations TEE address: {}", + tee_service_signer.address + ); let funding_key = args .funding_key @@ -135,6 +136,64 @@ where Ok(flashtestations_builder_tx) } +/// Load ephemeral TEE key from file, or generate and save a new one +fn load_or_generate_tee_key(key_path: &str, debug: bool, debug_seed: &str) -> eyre::Result { + if debug { + info!("Flashtestations debug mode enabled, generating debug key from seed"); + return Ok(generate_key_from_seed(debug_seed)); + } + + let path = Path::new(key_path); + + if let Some(signer) = load_tee_key(path) { + return Ok(signer); + } + + // Generate new key + info!("Generating new ephemeral TEE key"); + let signer = generate_signer(); + + let key_hex = hex::encode(signer.secret.secret_bytes()); + + // Create file with 0600 permissions atomically + OpenOptions::new() + .write(true) + .create(true) + .truncate(true) + .mode(0o600) + .open(path) + .and_then(|mut file| file.write_all(key_hex.as_bytes())) + .inspect_err(|e| warn!("Failed to write key to {}: {:?}", key_path, e)) + .ok(); + + Ok(signer) +} + +fn load_tee_key(path: &Path) -> Option { + // Try to load existing key + if !path.exists() { + return None; + } + + info!("Loading TEE key from {:?}", path); + let key_hex = fs::read_to_string(path) + .inspect_err(|e| warn!("failed to read key file: {:?}", e)) + .ok()?; + + let secret_bytes = B256::try_from( + hex::decode(key_hex.trim()) + .inspect_err(|e| warn!("failed to decode hex from file {:?}", e)) + .ok()? + .as_slice(), + ) + .inspect_err(|e| warn!("failed to parse key from file: {:?}", e)) + .ok()?; + + Signer::try_from_secret(secret_bytes) + .inspect_err(|e| warn!("failed to create signer from key: {:?}", e)) + .ok() +} + #[derive(Debug, Clone)] pub struct FlashtestationsBuilderTx {} diff --git a/crates/op-rbuilder/src/tx_signer.rs b/crates/op-rbuilder/src/tx_signer.rs index dd97aed41..6b8c86d90 100644 --- a/crates/op-rbuilder/src/tx_signer.rs +++ b/crates/op-rbuilder/src/tx_signer.rs @@ -74,7 +74,7 @@ impl FromStr for Signer { } } -pub fn generate_ethereum_keypair() -> (SecretKey, PublicKey, Address) { +pub fn generate_signer() -> Signer { let secp = Secp256k1::new(); // Generate cryptographically secure random private key @@ -86,7 +86,11 @@ pub fn generate_ethereum_keypair() -> (SecretKey, PublicKey, Address) { // Derive Ethereum address let address = public_key_to_address(&public_key); - (private_key, public_key, address) + Signer { + address, + pubkey: public_key, + secret: private_key, + } } /// Converts a public key to an Ethereum address @@ -103,7 +107,7 @@ pub fn public_key_to_address(public_key: &PublicKey) -> Address { // Generate a key deterministically from a seed for debug and testing // Do not use in production -pub fn generate_key_from_seed(seed: &str) -> (SecretKey, PublicKey, Address) { +pub fn generate_key_from_seed(seed: &str) -> Signer { // Hash the seed let mut hasher = Sha256::new(); hasher.update(seed.as_bytes()); @@ -115,7 +119,11 @@ pub fn generate_key_from_seed(seed: &str) -> (SecretKey, PublicKey, Address) { let public_key = PublicKey::from_secret_key(&secp, &private_key); let address = public_key_to_address(&public_key); - (private_key, public_key, address) + Signer { + address, + pubkey: public_key, + secret: private_key, + } } #[cfg(test)] From ab2fb516e1096bb19cc5dc1ae51cd89c8e2aece7 Mon Sep 17 00:00:00 2001 From: shana Date: Thu, 9 Oct 2025 21:55:37 -0700 Subject: [PATCH 53/54] Bump reth to 1.8.2 (#294) --- Cargo.lock | 2539 ++++++++++++++++++++++++++++++++++------------------ Cargo.toml | 144 +-- 2 files changed, 1747 insertions(+), 936 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3666a7bcd..539bb8f0c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,9 +133,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf3c28aa7a5765042739f964e335408e434819b96fdda97f12eb1beb46dead0" +checksum = "6a0dd3ed764953a6b20458b2b7abbfdc93d20d14b38babe1a70fe631a443a9f1" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -160,9 +160,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfda7b14f1664b6c23d7f38bca2b73c460f2497cf93dd1589753890cb0da158" +checksum = "9556182afa73cddffa91e64a5aa9508d5e8c912b3a15f26998d2388a824d2c7b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -175,9 +175,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb079f711129dd32d6c3a0581013c927eb30d32e929d606cd8c0fe1022ec041" +checksum = "b19d7092c96defc3d132ee0d8969ca1b79ef512b5eda5c66e3065266b253adf2" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -271,9 +271,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e57928382e5c7890ef90ded9f814d85a1c3db79ceb4a3c5079f1be4cadeeb4" +checksum = "305fa99b538ca7006b0c03cfed24ec6d82beda67aac857ef4714be24231d15e6" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -316,9 +316,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3419410cdd67fb7d5d016d9d16cf3ea8cc365fcbcf15d086afdd02eaef17e4" +checksum = "a272533715aefc900f89d51db00c96e6fd4f517ea081a12fea482a352c8c815c" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -368,9 +368,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17248e392e79658b1faca7946bfe59825b891c3f6e382044499d99c57ba36a89" +checksum = "d91676d242c0ced99c0dd6d0096d7337babe9457cc43407d26aa6367fcf90553" dependencies = [ "alloy-primitives 1.3.1", "alloy-sol-types 1.3.1", @@ -383,9 +383,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe43d21867dc0dcf71aacffc891ae75fd587154f0d907ceb7340fc5f0271276d" +checksum = "77f82150116b30ba92f588b87f08fa97a46a1bd5ffc0d0597efdf0843d36bfda" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -409,9 +409,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67f3b37447082a47289f26e26c0686ac6407710fdd4e818043d9b6d37f2ab55c" +checksum = "223612259a080160ce839a4e5df0125ca403a1d5e7206cc911cea54af5d769aa" dependencies = [ "alloy-consensus", "alloy-eips", @@ -508,9 +508,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6377212f3e659173b939e8d3ec3292e246cb532eafd5a4f91e57fdb104b43c" +checksum = "f7283b81b6f136100b152e699171bc7ed8184a58802accbc91a7df4ebb944445" dependencies = [ "alloy-chains", "alloy-consensus", @@ -552,9 +552,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d27b4f1ac3a0388065f933f957f80e03d06c47ce6a4389ac8cb9f72c30d8d823" +checksum = "eee7e3d343814ec0dfea69bd1820042a133a9d0b9ac5faf1e6eb133b43366315" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -596,9 +596,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b80c8cafc1735ce6776bccc25f0c3b7583074897b8ec4f3a129e4d25e09d65c" +checksum = "1154b12d470bef59951c62676e106f4ce5de73b987d86b9faa935acebb138ded" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -622,9 +622,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bc0818982bb868acc877f2623ad1fc8f2a4b244074919212bfe476fcadca6d3" +checksum = "47ab76bf97648a1c6ad8fb00f0d594618942b5a9e008afbfb5c8a8fca800d574" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-engine", @@ -635,9 +635,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9359aabfc2ae906ea9f904c6cf6a63d12fc6510e655a64c38aa601a739602e84" +checksum = "af8ae38824376e855d73d4060462d86c32afe548af632597ccfd161bdd0fc628" dependencies = [ "alloy-genesis", "alloy-primitives 1.3.1", @@ -647,9 +647,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410403528db87ab4618e7f517b0f54e493c8a17bb61102cbccbb7a35e8719b5b" +checksum = "456cfc2c1677260edbd7ce3eddb7de419cb46de0e9826c43401f42b0286a779a" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -659,9 +659,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8448a1eb2c81115fc8d9d50da24156c9ce8fca78a19a997184dcd81f99c229" +checksum = "23cc57ee0c1ac9fb14854195fc249494da7416591dc4a4d981ddfd5dd93b9bce" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -670,13 +670,14 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c20f653a4c1ab8289470e8eed55fe4f11354865b730685bb70b69a375524b27" +checksum = "cfa4edd92c3124ec19b9d572dc7923d070fe5c2efb677519214affd6156a4463" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", + "derive_more", "ethereum_ssz", "ethereum_ssz_derive", "serde", @@ -689,9 +690,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb22d465e02c015648138bc0d46951d267827551fc85922b60f58caa6a0e9c9" +checksum = "4a0ac29dd005c33e3f7e09087accc80843315303685c3f7a1b888002cd27785b" dependencies = [ "alloy-primitives 1.3.1", "derive_more", @@ -701,9 +702,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b968beee2ada53ef150fd90fbd2b7a3e5bcb66650e4d01757ff769c8af3d5ee" +checksum = "1d9d173854879bcf26c7d71c1c3911972a3314df526f4349ffe488e676af577d" dependencies = [ "alloy-consensus", "alloy-eips", @@ -721,9 +722,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7c1bc07b6c9222c4ad822da3cea0fbbfcbe2876cf5d4780e147a0da6fe2862" +checksum = "6d7d47bca1a2a1541e4404aa38b7e262bb4dffd9ac23b4f178729a4ddc5a5caa" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -743,9 +744,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad56da776d84940f075f6cdb27c95c17f5d8947ed89947d61b686247ec4e2200" +checksum = "d3820683ece7cdc31e44d87c88c0ff9b972a1a2fd1f2124cc72ce5c928e64f0d" dependencies = [ "alloy-consensus", "alloy-eips", @@ -758,9 +759,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e54b3f616d9f30e11bc73e685f71da6f1682da5a3c2ca5206ec47f1d3bc96c7" +checksum = "c331c8e48665607682e8a9549a2347c13674d4fbcbdc342e7032834eba2424f4" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -772,9 +773,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15fc6b7b9465393a5b3fd38aba979f44438f172d9d0e6de732243c17d4246060" +checksum = "5e2f66afe1e76ca4485e593980056f061b2bdae2055486a062fca050ff111a52" dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-eth", @@ -784,9 +785,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8603b89af4ba0acb94465319e506b8c0b40a5daf563046bedd58d26c98dbd62c" +checksum = "6a8468f1a7f9ee3bae73c24eead0239abea720dbf7779384b9c7e20d51bfb6b0" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", @@ -796,9 +797,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddbea0531837cc7784ae6669b4a66918e6fb34c2daa2a7a888549dd565151c" +checksum = "33387c90b0a5021f45a5a77c2ce6c49b8f6980e66a318181468fb24cea771670" dependencies = [ "alloy-primitives 1.3.1", "async-trait", @@ -811,9 +812,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3497f79c8a818f736d8de1c157a1ec66c0ce1da3fbb2f54c005097798282e59b" +checksum = "b55d9e795c85e36dcea08786d2e7ae9b73cb554b6bea6ac4c212def24e1b4d03" dependencies = [ "alloy-consensus", "alloy-network", @@ -971,9 +972,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d259738315db0a2460581e22a1ca73ff02ef44687b43c0dad0834999090b3e7e" +checksum = "702002659778d89a94cd4ff2044f6b505460df6c162e2f47d1857573845b0ace" dependencies = [ "alloy-json-rpc", "alloy-primitives 1.3.1", @@ -995,9 +996,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6332f6d470e465bf00f9306743ff172f54b83e7e31edfe28f1444c085ccb0e4" +checksum = "0d6bdc0830e5e8f08a4c70a4c791d400a86679c694a3b4b986caf26fad680438" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -1010,9 +1011,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865c13b9ce32b1a5227ac0f796faa9c08416aa4ea4e22b3a61a21ef110bda5ad" +checksum = "87ce41d99a32346f354725fe62eadd271cdbae45fe6b3cc40cb054e0bf763112" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -1030,9 +1031,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da655a5099cc037cad636425cec389320a694b6ec0302472a74f71b3637d842d" +checksum = "686219dcef201655763bd3d4eabe42388d9368bfbf6f1c8016d14e739ec53aac" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1068,9 +1069,9 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2765badc6f621e1fc26aa70c520315866f0db6b8bd6bf3c560920d4fb33b08de" +checksum = "7bf39928a5e70c9755d6811a2928131b53ba785ad37c8bf85c90175b5d43b818" dependencies = [ "alloy-primitives 1.3.1", "darling 0.21.3", @@ -1877,6 +1878,24 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "bindgen" +version = "0.71.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" +dependencies = [ + "bitflags 2.9.2", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn 2.0.106", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -2961,7 +2980,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] @@ -6330,51 +6349,51 @@ dependencies = [ "rand 0.9.2", "reqwest", "reth", - "reth-basic-payload-builder", - "reth-chain-state", - "reth-chainspec", + "reth-basic-payload-builder 1.8.2", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", "reth-cli", "reth-cli-commands", "reth-cli-util", "reth-db", - "reth-evm", - "reth-execution-types", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", "reth-exex", "reth-ipc", - "reth-metrics", - "reth-network-peers", + "reth-metrics 1.8.2", + "reth-network-peers 1.8.2", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-ethereum", - "reth-optimism-chainspec", + "reth-optimism-chainspec 1.8.2", "reth-optimism-cli", - "reth-optimism-consensus", - "reth-optimism-evm", - "reth-optimism-forks", + "reth-optimism-consensus 1.8.2", + "reth-optimism-evm 1.8.2", + "reth-optimism-forks 1.8.2", "reth-optimism-node", - "reth-optimism-payload-builder", - "reth-optimism-primitives", + "reth-optimism-payload-builder 1.8.2", + "reth-optimism-primitives 1.8.2", "reth-optimism-rpc", - "reth-optimism-txpool", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-payload-util", + "reth-optimism-txpool 1.8.2", + "reth-payload-builder 1.8.2", + "reth-payload-builder-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-payload-util 1.8.2", "reth-primitives", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-provider", - "reth-revm", + "reth-revm 1.8.2", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-eth-types", "reth-rpc-layer", - "reth-storage-api", - "reth-tasks", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", "reth-testing-utils", "reth-tracing-otlp", - "reth-transaction-pool", - "reth-trie", + "reth-transaction-pool 1.8.2", + "reth-trie 1.8.2", "revm", "rlimit", "rollup-boost", @@ -7576,23 +7595,23 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-rpc-types", "aquamarine", "clap", "eyre", - "reth-chainspec", + "reth-chainspec 1.8.2", "reth-cli-runner", "reth-cli-util", - "reth-consensus", - "reth-consensus-common", + "reth-consensus 1.8.2", + "reth-consensus-common 1.8.2", "reth-db", "reth-ethereum-cli", "reth-ethereum-payload-builder", - "reth-ethereum-primitives", - "reth-evm", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", "reth-network", "reth-network-api", "reth-node-api", @@ -7600,22 +7619,22 @@ dependencies = [ "reth-node-core", "reth-node-ethereum", "reth-node-metrics", - "reth-payload-builder", - "reth-payload-primitives", + "reth-payload-builder 1.8.2", + "reth-payload-primitives 1.8.2", "reth-primitives", "reth-provider", "reth-ress-protocol", "reth-ress-provider", - "reth-revm", + "reth-revm 1.8.2", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-tasks", + "reth-tasks 1.8.2", "reth-tokio-util", - "reth-transaction-pool", + "reth-transaction-pool 1.8.2", "tokio", "tracing", ] @@ -7631,15 +7650,39 @@ dependencies = [ "futures-core", "futures-util", "metrics", - "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", + "reth-chain-state 1.8.1", + "reth-metrics 1.8.1", + "reth-payload-builder 1.8.1", + "reth-payload-builder-primitives 1.8.1", + "reth-payload-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-revm 1.8.1", + "reth-storage-api 1.8.1", + "reth-tasks 1.8.1", + "tokio", + "tracing", +] + +[[package]] +name = "reth-basic-payload-builder" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "futures-core", + "futures-util", + "metrics", + "reth-chain-state 1.8.2", + "reth-metrics 1.8.2", + "reth-payload-builder 1.8.2", + "reth-payload-builder-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-revm 1.8.2", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", "tokio", "tracing", ] @@ -7648,6 +7691,32 @@ dependencies = [ name = "reth-chain-state" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "derive_more", + "metrics", + "parking_lot", + "pin-project", + "reth-chainspec 1.8.1", + "reth-errors 1.8.1", + "reth-ethereum-primitives 1.8.1", + "reth-execution-types 1.8.1", + "reth-metrics 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-storage-api 1.8.1", + "reth-trie 1.8.1", + "revm-database", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-chain-state" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7659,14 +7728,14 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.9.2", - "reth-chainspec", - "reth-errors", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-metrics", - "reth-primitives-traits", - "reth-storage-api", - "reth-trie", + "reth-chainspec 1.8.2", + "reth-errors 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-execution-types 1.8.2", + "reth-metrics 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-trie 1.8.2", "revm-database", "revm-state", "serde", @@ -7689,16 +7758,36 @@ dependencies = [ "alloy-trie", "auto_impl", "derive_more", - "reth-ethereum-forks", - "reth-network-peers", - "reth-primitives-traits", + "reth-ethereum-forks 1.8.1", + "reth-network-peers 1.8.1", + "reth-primitives-traits 1.8.1", + "serde_json", +] + +[[package]] +name = "reth-chainspec" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-genesis", + "alloy-primitives 1.3.1", + "alloy-trie", + "auto_impl", + "derive_more", + "reth-ethereum-forks 1.8.2", + "reth-network-peers 1.8.2", + "reth-primitives-traits 1.8.2", "serde_json", ] [[package]] name = "reth-cli" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-genesis", "clap", @@ -7711,8 +7800,8 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7732,13 +7821,13 @@ dependencies = [ "lz4", "ratatui", "reqwest", - "reth-chainspec", + "reth-chainspec 1.8.2", "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs", + "reth-codecs 1.8.2", "reth-config", - "reth-consensus", + "reth-consensus 1.8.2", "reth-db", "reth-db-api", "reth-db-common", @@ -7751,27 +7840,27 @@ dependencies = [ "reth-era-utils", "reth-eth-wire", "reth-etl", - "reth-evm", + "reth-evm 1.8.2", "reth-exex", - "reth-fs-util", + "reth-fs-util 1.8.2", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers", + "reth-network-peers 1.8.2", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-provider", "reth-prune", - "reth-revm", + "reth-revm 1.8.2", "reth-stages", "reth-static-file", - "reth-static-file-types", - "reth-trie", - "reth-trie-common", + "reth-static-file-types 1.8.2", + "reth-trie 1.8.2", + "reth-trie-common 1.8.2", "reth-trie-db", "secp256k1 0.30.0", "serde", @@ -7786,18 +7875,18 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ - "reth-tasks", + "reth-tasks 1.8.2", "tokio", "tracing", ] [[package]] name = "reth-cli-util" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -7805,7 +7894,7 @@ dependencies = [ "eyre", "libc", "rand 0.8.5", - "reth-fs-util", + "reth-fs-util 1.8.2", "secp256k1 0.30.0", "serde", "thiserror 2.0.16", @@ -7816,6 +7905,24 @@ dependencies = [ name = "reth-codecs" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 1.3.1", + "alloy-trie", + "bytes", + "modular-bitfield", + "op-alloy-consensus", + "reth-codecs-derive 1.8.1", + "reth-zstd-compressors 1.8.1", + "serde", +] + +[[package]] +name = "reth-codecs" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7826,8 +7933,8 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs-derive", - "reth-zstd-compressors", + "reth-codecs-derive 1.8.2", + "reth-zstd-compressors 1.8.2", "serde", "visibility", ] @@ -7843,16 +7950,27 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "reth-codecs-derive" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "reth-config" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "eyre", "humantime-serde", "reth-network-types", - "reth-prune-types", - "reth-stages-types", + "reth-prune-types 1.8.2", + "reth-stages-types 1.8.2", "serde", "toml", "url", @@ -7866,8 +7984,21 @@ dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "auto_impl", - "reth-execution-types", - "reth-primitives-traits", + "reth-execution-types 1.8.1", + "reth-primitives-traits 1.8.1", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-consensus" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-primitives 1.3.1", + "auto_impl", + "reth-execution-types 1.8.2", + "reth-primitives-traits 1.8.2", "thiserror 2.0.16", ] @@ -7878,15 +8009,27 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "reth-chainspec", - "reth-consensus", - "reth-primitives-traits", + "reth-chainspec 1.8.1", + "reth-consensus 1.8.1", + "reth-primitives-traits 1.8.1", +] + +[[package]] +name = "reth-consensus-common" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", + "reth-primitives-traits 1.8.2", ] [[package]] name = "reth-consensus-debug-client" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7901,7 +8044,7 @@ dependencies = [ "futures", "reqwest", "reth-node-api", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-tracing", "ringbuffer", "serde", @@ -7911,8 +8054,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "derive_more", @@ -7921,12 +8064,12 @@ dependencies = [ "page_size", "parking_lot", "reth-db-api", - "reth-fs-util", + "reth-fs-util 1.8.2", "reth-libmdbx", - "reth-metrics", + "reth-metrics 1.8.2", "reth-nippy-jar", - "reth-static-file-types", - "reth-storage-errors", + "reth-static-file-types 1.8.2", + "reth-storage-errors 1.8.2", "reth-tracing", "rustc-hash 2.1.1", "strum 0.27.2", @@ -7937,8 +8080,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7950,42 +8093,42 @@ dependencies = [ "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs", - "reth-db-models", - "reth-ethereum-primitives", - "reth-optimism-primitives", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", + "reth-codecs 1.8.2", + "reth-db-models 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-prune-types 1.8.2", + "reth-stages-types 1.8.2", + "reth-storage-errors 1.8.2", + "reth-trie-common 1.8.2", "roaring", "serde", ] [[package]] name = "reth-db-common" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-genesis", "alloy-primitives 1.3.1", "boyer-moore-magiclen", "eyre", - "reth-chainspec", - "reth-codecs", + "reth-chainspec 1.8.2", + "reth-codecs 1.8.2", "reth-config", "reth-db-api", "reth-etl", - "reth-execution-errors", - "reth-fs-util", + "reth-execution-errors 1.8.2", + "reth-fs-util 1.8.2", "reth-node-types", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-provider", - "reth-stages-types", - "reth-static-file-types", - "reth-trie", + "reth-stages-types 1.8.2", + "reth-static-file-types 1.8.2", + "reth-trie 1.8.2", "reth-trie-db", "serde", "serde_json", @@ -7997,21 +8140,31 @@ dependencies = [ name = "reth-db-models" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-eips", + "alloy-primitives 1.3.1", + "reth-primitives-traits 1.8.1", +] + +[[package]] +name = "reth-db-models" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs", - "reth-primitives-traits", + "reth-codecs 1.8.2", + "reth-primitives-traits 1.8.2", "serde", ] [[package]] name = "reth-discv4" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8021,10 +8174,10 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "rand 0.8.5", - "reth-ethereum-forks", + "reth-ethereum-forks 1.8.2", "reth-net-banlist", "reth-net-nat", - "reth-network-peers", + "reth-network-peers 1.8.2", "schnellru", "secp256k1 0.30.0", "serde", @@ -8036,8 +8189,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8048,10 +8201,10 @@ dependencies = [ "itertools 0.14.0", "metrics", "rand 0.9.2", - "reth-chainspec", - "reth-ethereum-forks", - "reth-metrics", - "reth-network-peers", + "reth-chainspec 1.8.2", + "reth-ethereum-forks 1.8.2", + "reth-metrics 1.8.2", + "reth-network-peers 1.8.2", "secp256k1 0.30.0", "thiserror 2.0.16", "tokio", @@ -8060,8 +8213,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "data-encoding", @@ -8069,8 +8222,8 @@ dependencies = [ "hickory-resolver", "linked_hash_set", "parking_lot", - "reth-ethereum-forks", - "reth-network-peers", + "reth-ethereum-forks 1.8.2", + "reth-network-peers 1.8.2", "reth-tokio-util", "schnellru", "secp256k1 0.30.0", @@ -8084,8 +8237,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8098,16 +8251,16 @@ dependencies = [ "pin-project", "rayon", "reth-config", - "reth-consensus", + "reth-consensus 1.8.2", "reth-db", "reth-db-api", - "reth-ethereum-primitives", - "reth-metrics", + "reth-ethereum-primitives 1.8.2", + "reth-metrics 1.8.2", "reth-network-p2p", - "reth-network-peers", - "reth-primitives-traits", - "reth-storage-api", - "reth-tasks", + "reth-network-peers 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", "reth-testing-utils", "tempfile", "thiserror 2.0.16", @@ -8119,8 +8272,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "aes", "alloy-primitives 1.3.1", @@ -8136,7 +8289,7 @@ dependencies = [ "hmac", "pin-project", "rand 0.8.5", - "reth-network-peers", + "reth-network-peers 1.8.2", "secp256k1 0.30.0", "sha2 0.10.9", "sha3", @@ -8150,8 +8303,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8159,14 +8312,14 @@ dependencies = [ "eyre", "futures-util", "op-alloy-rpc-types-engine", - "reth-chainspec", - "reth-engine-primitives", - "reth-ethereum-engine-primitives", - "reth-optimism-chainspec", - "reth-payload-builder", - "reth-payload-primitives", + "reth-chainspec 1.8.2", + "reth-engine-primitives 1.8.2", + "reth-ethereum-engine-primitives 1.8.2", + "reth-optimism-chainspec 1.8.2", + "reth-payload-builder 1.8.2", + "reth-payload-primitives 1.8.2", "reth-provider", - "reth-transaction-pool", + "reth-transaction-pool 1.8.2", "tokio", "tokio-stream", "tracing", @@ -8176,6 +8329,29 @@ dependencies = [ name = "reth-engine-primitives" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rpc-types-engine", + "auto_impl", + "reth-chain-state 1.8.1", + "reth-errors 1.8.1", + "reth-ethereum-primitives 1.8.1", + "reth-evm 1.8.1", + "reth-execution-types 1.8.1", + "reth-payload-builder-primitives 1.8.1", + "reth-payload-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-trie-common 1.8.1", + "serde", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-engine-primitives" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8183,15 +8359,15 @@ dependencies = [ "alloy-rpc-types-engine", "auto_impl", "futures", - "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", + "reth-chain-state 1.8.2", + "reth-errors 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", + "reth-payload-builder-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-trie-common 1.8.2", "serde", "thiserror 2.0.16", "tokio", @@ -8199,31 +8375,31 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "futures", "pin-project", - "reth-chainspec", - "reth-consensus", - "reth-engine-primitives", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", + "reth-engine-primitives 1.8.2", "reth-engine-tree", - "reth-ethereum-primitives", - "reth-evm", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", "reth-network-p2p", "reth-node-types", - "reth-payload-builder", + "reth-payload-builder 1.8.2", "reth-provider", "reth-prune", "reth-stages-api", - "reth-tasks", + "reth-tasks 1.8.2", "thiserror 2.0.16", ] [[package]] name = "reth-engine-tree" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8237,33 +8413,33 @@ dependencies = [ "mini-moka", "parking_lot", "rayon", - "reth-chain-state", - "reth-chainspec", - "reth-consensus", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", "reth-db", - "reth-engine-primitives", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-metrics", + "reth-engine-primitives 1.8.2", + "reth-errors 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", + "reth-metrics 1.8.2", "reth-network-p2p", - "reth-payload-builder", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-payload-builder 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", "reth-prune", - "reth-prune-types", - "reth-revm", + "reth-prune-types 1.8.2", + "reth-revm 1.8.2", "reth-stages", "reth-stages-api", "reth-static-file", - "reth-tasks", + "reth-tasks 1.8.2", "reth-tracing", - "reth-trie", + "reth-trie 1.8.2", "reth-trie-db", "reth-trie-parallel", - "reth-trie-sparse", + "reth-trie-sparse 1.8.2", "reth-trie-sparse-parallel", "revm", "revm-primitives", @@ -8276,8 +8452,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8285,16 +8461,16 @@ dependencies = [ "futures", "itertools 0.14.0", "pin-project", - "reth-chainspec", - "reth-engine-primitives", + "reth-chainspec 1.8.2", + "reth-engine-primitives 1.8.2", "reth-engine-tree", - "reth-errors", - "reth-evm", - "reth-fs-util", - "reth-payload-primitives", - "reth-primitives-traits", - "reth-revm", - "reth-storage-api", + "reth-errors 1.8.2", + "reth-evm 1.8.2", + "reth-fs-util 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-revm 1.8.2", + "reth-storage-api 1.8.2", "serde", "serde_json", "tokio", @@ -8304,8 +8480,8 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8313,30 +8489,30 @@ dependencies = [ "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", - "reth-ethereum-primitives", + "reth-ethereum-primitives 1.8.2", "snap", "thiserror 2.0.16", ] [[package]] name = "reth-era-downloader" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "bytes", "eyre", "futures-util", "reqwest", - "reth-fs-util", + "reth-fs-util 1.8.2", "sha2 0.10.9", "tokio", ] [[package]] name = "reth-era-utils" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8346,11 +8522,11 @@ dependencies = [ "reth-era", "reth-era-downloader", "reth-etl", - "reth-fs-util", - "reth-primitives-traits", + "reth-fs-util 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", - "reth-stages-types", - "reth-storage-api", + "reth-stages-types 1.8.2", + "reth-storage-api 1.8.2", "tokio", "tracing", ] @@ -8360,16 +8536,27 @@ name = "reth-errors" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "reth-consensus", - "reth-execution-errors", - "reth-storage-errors", + "reth-consensus 1.8.1", + "reth-execution-errors 1.8.1", + "reth-storage-errors 1.8.1", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-errors" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "reth-consensus 1.8.2", + "reth-execution-errors 1.8.2", + "reth-storage-errors 1.8.2", "thiserror 2.0.16", ] [[package]] name = "reth-eth-wire" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-chains", "alloy-primitives 1.3.1", @@ -8378,13 +8565,13 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs", + "reth-codecs 1.8.2", "reth-ecies", - "reth-eth-wire-types", - "reth-ethereum-forks", - "reth-metrics", - "reth-network-peers", - "reth-primitives-traits", + "reth-eth-wire-types 1.8.2", + "reth-ethereum-forks 1.8.2", + "reth-metrics 1.8.2", + "reth-network-peers 1.8.2", + "reth-primitives-traits 1.8.2", "serde", "snap", "thiserror 2.0.16", @@ -8407,22 +8594,43 @@ dependencies = [ "alloy-rlp", "bytes", "derive_more", - "reth-chainspec", - "reth-codecs-derive", - "reth-ethereum-primitives", - "reth-primitives-traits", + "reth-chainspec 1.8.1", + "reth-codecs-derive 1.8.1", + "reth-ethereum-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "serde", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-eth-wire-types" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-hardforks", + "alloy-primitives 1.3.1", + "alloy-rlp", + "bytes", + "derive_more", + "reth-chainspec 1.8.2", + "reth-codecs-derive 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "serde", "thiserror 2.0.16", ] [[package]] name = "reth-ethereum-cli" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "clap", "eyre", - "reth-chainspec", + "reth-chainspec 1.8.2", "reth-cli", "reth-cli-commands", "reth-cli-runner", @@ -8439,17 +8647,17 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-execution-types", - "reth-primitives-traits", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", + "reth-consensus-common 1.8.2", + "reth-execution-types 1.8.2", + "reth-primitives-traits 1.8.2", "tracing", ] @@ -8462,10 +8670,28 @@ dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", - "reth-engine-primitives", - "reth-ethereum-primitives", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-engine-primitives 1.8.1", + "reth-ethereum-primitives 1.8.1", + "reth-payload-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "serde", + "sha2 0.10.9", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-ethereum-engine-primitives" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rlp", + "alloy-rpc-types-engine", + "reth-engine-primitives 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "serde", "sha2 0.10.9", "thiserror 2.0.16", @@ -8484,31 +8710,44 @@ dependencies = [ "rustc-hash 2.1.1", ] +[[package]] +name = "reth-ethereum-forks" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-eip2124", + "alloy-hardforks", + "alloy-primitives 1.3.1", + "auto_impl", + "once_cell", + "rustc-hash 2.1.1", +] + [[package]] name = "reth-ethereum-payload-builder" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", - "reth-basic-payload-builder", - "reth-chainspec", - "reth-consensus-common", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", + "reth-basic-payload-builder 1.8.2", + "reth-chainspec 1.8.2", + "reth-consensus-common 1.8.2", + "reth-errors 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", "reth-evm-ethereum", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-payload-validator", - "reth-primitives-traits", - "reth-revm", - "reth-storage-api", - "reth-transaction-pool", + "reth-payload-builder 1.8.2", + "reth-payload-builder-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-payload-validator 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-revm 1.8.2", + "reth-storage-api 1.8.2", + "reth-transaction-pool 1.8.2", "revm", "tracing", ] @@ -8517,6 +8756,23 @@ dependencies = [ name = "reth-ethereum-primitives" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", + "reth-primitives-traits 1.8.1", + "reth-zstd-compressors 1.8.1", + "serde", + "serde_with", +] + +[[package]] +name = "reth-ethereum-primitives" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8526,17 +8782,17 @@ dependencies = [ "alloy-serde", "arbitrary", "modular-bitfield", - "reth-codecs", - "reth-primitives-traits", - "reth-zstd-compressors", + "reth-codecs 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-zstd-compressors 1.8.2", "serde", "serde_with", ] [[package]] name = "reth-etl" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "rayon", "reth-db-api", @@ -8547,6 +8803,27 @@ dependencies = [ name = "reth-evm" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-primitives 1.3.1", + "auto_impl", + "derive_more", + "futures-util", + "reth-execution-errors 1.8.1", + "reth-execution-types 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-storage-api 1.8.1", + "reth-storage-errors 1.8.1", + "reth-trie-common 1.8.1", + "revm", +] + +[[package]] +name = "reth-evm" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8556,33 +8833,33 @@ dependencies = [ "derive_more", "futures-util", "metrics", - "reth-execution-errors", - "reth-execution-types", - "reth-metrics", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie-common", + "reth-execution-errors 1.8.2", + "reth-execution-types 1.8.2", + "reth-metrics 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-storage-errors 1.8.2", + "reth-trie-common 1.8.2", "revm", ] [[package]] name = "reth-evm-ethereum" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", - "reth-chainspec", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-primitives-traits", - "reth-storage-errors", + "reth-chainspec 1.8.2", + "reth-ethereum-forks 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-storage-errors 1.8.2", "revm", ] @@ -8595,32 +8872,61 @@ dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", "nybbles", - "reth-storage-errors", + "reth-storage-errors 1.8.1", "thiserror 2.0.16", ] [[package]] -name = "reth-execution-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +name = "reth-execution-errors" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ - "alloy-consensus", - "alloy-eips", "alloy-evm", "alloy-primitives 1.3.1", - "derive_more", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-trie-common", - "revm", - "serde", - "serde_with", + "alloy-rlp", + "nybbles", + "reth-storage-errors 1.8.2", + "thiserror 2.0.16", ] [[package]] -name = "reth-exex" +name = "reth-execution-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-primitives 1.3.1", + "derive_more", + "reth-ethereum-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-trie-common 1.8.1", + "revm", +] + +[[package]] +name = "reth-execution-types" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-primitives 1.3.1", + "derive_more", + "reth-ethereum-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-trie-common 1.8.2", + "revm", + "serde", + "serde_with", +] + +[[package]] +name = "reth-exex" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8630,23 +8936,23 @@ dependencies = [ "itertools 0.14.0", "metrics", "parking_lot", - "reth-chain-state", - "reth-chainspec", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", "reth-config", - "reth-ethereum-primitives", - "reth-evm", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", "reth-exex-types", - "reth-fs-util", - "reth-metrics", + "reth-fs-util 1.8.2", + "reth-metrics 1.8.2", "reth-node-api", "reth-node-core", - "reth-payload-builder", - "reth-primitives-traits", + "reth-payload-builder 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", - "reth-prune-types", - "reth-revm", + "reth-prune-types 1.8.2", + "reth-revm 1.8.2", "reth-stages-api", - "reth-tasks", + "reth-tasks 1.8.2", "reth-tracing", "rmp-serde", "thiserror 2.0.16", @@ -8657,14 +8963,14 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", - "reth-chain-state", - "reth-execution-types", - "reth-primitives-traits", + "reth-chain-state 1.8.2", + "reth-execution-types 1.8.2", + "reth-primitives-traits 1.8.2", "serde", "serde_with", ] @@ -8679,10 +8985,20 @@ dependencies = [ "thiserror 2.0.16", ] +[[package]] +name = "reth-fs-util" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "serde", + "serde_json", + "thiserror 2.0.16", +] + [[package]] name = "reth-invalid-block-hooks" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8692,14 +9008,14 @@ dependencies = [ "futures", "jsonrpsee 0.26.0", "pretty_assertions", - "reth-engine-primitives", - "reth-evm", - "reth-primitives-traits", + "reth-engine-primitives 1.8.2", + "reth-evm 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", - "reth-revm", + "reth-revm 1.8.2", "reth-rpc-api", "reth-tracing", - "reth-trie", + "reth-trie 1.8.2", "revm-bytecode", "revm-database", "serde", @@ -8708,8 +9024,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "bytes", "futures", @@ -8728,8 +9044,8 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "bitflags 2.9.2", "byteorder", @@ -8744,10 +9060,10 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ - "bindgen 0.70.1", + "bindgen 0.71.1", "cc", ] @@ -8755,6 +9071,15 @@ dependencies = [ name = "reth-metrics" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "metrics", + "metrics-derive", +] + +[[package]] +name = "reth-metrics" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "futures", "metrics", @@ -8765,16 +9090,16 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", ] [[package]] name = "reth-net-nat" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "futures-util", "if-addrs", @@ -8787,8 +9112,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8806,28 +9131,28 @@ dependencies = [ "pin-project", "rand 0.8.5", "rand 0.9.2", - "reth-chainspec", - "reth-consensus", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", "reth-discv4", "reth-discv5", "reth-dns-discovery", "reth-ecies", "reth-eth-wire", - "reth-eth-wire-types", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-fs-util", - "reth-metrics", + "reth-eth-wire-types 1.8.2", + "reth-ethereum-forks 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-fs-util 1.8.2", + "reth-metrics 1.8.2", "reth-net-banlist", "reth-network-api", "reth-network-p2p", - "reth-network-peers", + "reth-network-peers 1.8.2", "reth-network-types", - "reth-primitives-traits", - "reth-storage-api", - "reth-tasks", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", "reth-tokio-util", - "reth-transaction-pool", + "reth-transaction-pool 1.8.2", "rustc-hash 2.1.1", "schnellru", "secp256k1 0.30.0", @@ -8842,8 +9167,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -8853,10 +9178,10 @@ dependencies = [ "derive_more", "enr", "futures", - "reth-eth-wire-types", - "reth-ethereum-forks", + "reth-eth-wire-types 1.8.2", + "reth-ethereum-forks 1.8.2", "reth-network-p2p", - "reth-network-peers", + "reth-network-peers 1.8.2", "reth-network-types", "reth-tokio-util", "serde", @@ -8867,8 +9192,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8877,13 +9202,13 @@ dependencies = [ "derive_more", "futures", "parking_lot", - "reth-consensus", - "reth-eth-wire-types", - "reth-ethereum-primitives", - "reth-network-peers", + "reth-consensus 1.8.2", + "reth-eth-wire-types 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-network-peers 1.8.2", "reth-network-types", - "reth-primitives-traits", - "reth-storage-errors", + "reth-primitives-traits 1.8.2", + "reth-storage-errors 1.8.2", "tokio", "tracing", ] @@ -8892,6 +9217,19 @@ dependencies = [ name = "reth-network-peers" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-primitives 1.3.1", + "alloy-rlp", + "secp256k1 0.30.0", + "serde_with", + "thiserror 2.0.16", + "url", +] + +[[package]] +name = "reth-network-peers" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -8905,13 +9243,13 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eip2124", "humantime-serde", "reth-net-banlist", - "reth-network-peers", + "reth-network-peers 1.8.2", "serde", "serde_json", "tracing", @@ -8919,15 +9257,15 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "anyhow", "bincode", "derive_more", "lz4_flex", "memmap2", - "reth-fs-util", + "reth-fs-util 1.8.2", "serde", "thiserror 2.0.16", "tracing", @@ -8936,32 +9274,32 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-rpc-types-engine", "eyre", - "reth-basic-payload-builder", - "reth-consensus", + "reth-basic-payload-builder 1.8.2", + "reth-consensus 1.8.2", "reth-db-api", - "reth-engine-primitives", - "reth-evm", + "reth-engine-primitives 1.8.2", + "reth-evm 1.8.2", "reth-network-api", "reth-node-core", "reth-node-types", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", + "reth-payload-builder 1.8.2", + "reth-payload-builder-primitives 1.8.2", + "reth-payload-primitives 1.8.2", "reth-provider", - "reth-tasks", + "reth-tasks 1.8.2", "reth-tokio-util", - "reth-transaction-pool", + "reth-transaction-pool 1.8.2", ] [[package]] name = "reth-node-builder" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8975,25 +9313,25 @@ dependencies = [ "futures", "jsonrpsee 0.26.0", "rayon", - "reth-basic-payload-builder", - "reth-chain-state", - "reth-chainspec", + "reth-basic-payload-builder 1.8.2", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", "reth-cli-util", "reth-config", - "reth-consensus", + "reth-consensus 1.8.2", "reth-consensus-debug-client", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", "reth-engine-local", - "reth-engine-primitives", + "reth-engine-primitives 1.8.2", "reth-engine-service", "reth-engine-tree", "reth-engine-util", - "reth-evm", + "reth-evm 1.8.2", "reth-exex", - "reth-fs-util", + "reth-fs-util 1.8.2", "reth-invalid-block-hooks", "reth-network", "reth-network-api", @@ -9003,8 +9341,8 @@ dependencies = [ "reth-node-ethstats", "reth-node-events", "reth-node-metrics", - "reth-payload-builder", - "reth-primitives-traits", + "reth-payload-builder 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", "reth-prune", "reth-rpc", @@ -9015,10 +9353,10 @@ dependencies = [ "reth-rpc-layer", "reth-stages", "reth-static-file", - "reth-tasks", + "reth-tasks 1.8.2", "reth-tokio-util", "reth-tracing", - "reth-transaction-pool", + "reth-transaction-pool 1.8.2", "secp256k1 0.30.0", "serde_json", "tokio", @@ -9028,8 +9366,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9042,30 +9380,30 @@ dependencies = [ "futures", "humantime", "rand 0.9.2", - "reth-chainspec", + "reth-chainspec 1.8.2", "reth-cli-util", "reth-config", - "reth-consensus", + "reth-consensus 1.8.2", "reth-db", "reth-discv4", "reth-discv5", "reth-engine-local", - "reth-engine-primitives", - "reth-ethereum-forks", + "reth-engine-primitives 1.8.2", + "reth-ethereum-forks 1.8.2", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers", - "reth-primitives-traits", - "reth-prune-types", + "reth-network-peers 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-prune-types 1.8.2", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-stages-types", - "reth-storage-api", - "reth-storage-errors", + "reth-stages-types 1.8.2", + "reth-storage-api 1.8.2", + "reth-storage-errors 1.8.2", "reth-tracing", - "reth-transaction-pool", + "reth-transaction-pool 1.8.2", "secp256k1 0.30.0", "serde", "shellexpand", @@ -9080,30 +9418,30 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-network", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "eyre", - "reth-chainspec", + "reth-chainspec 1.8.2", "reth-engine-local", - "reth-engine-primitives", + "reth-engine-primitives 1.8.2", "reth-ethereum-consensus", - "reth-ethereum-engine-primitives", + "reth-ethereum-engine-primitives 1.8.2", "reth-ethereum-payload-builder", - "reth-ethereum-primitives", - "reth-evm", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", "reth-evm-ethereum", "reth-network", "reth-node-api", "reth-node-builder", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", - "reth-revm", + "reth-revm 1.8.2", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", @@ -9111,25 +9449,25 @@ dependencies = [ "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool", + "reth-transaction-pool 1.8.2", "revm", "tokio", ] [[package]] name = "reth-node-ethstats" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "chrono", "futures-util", - "reth-chain-state", + "reth-chain-state 1.8.2", "reth-network-api", - "reth-primitives-traits", - "reth-storage-api", - "reth-transaction-pool", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-transaction-pool 1.8.2", "serde", "serde_json", "thiserror 2.0.16", @@ -9142,8 +9480,8 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9153,21 +9491,21 @@ dependencies = [ "futures", "humantime", "pin-project", - "reth-engine-primitives", + "reth-engine-primitives 1.8.2", "reth-network-api", - "reth-primitives-traits", - "reth-prune-types", + "reth-primitives-traits 1.8.2", + "reth-prune-types 1.8.2", "reth-stages", - "reth-static-file-types", - "reth-storage-api", + "reth-static-file-types 1.8.2", + "reth-storage-api 1.8.2", "tokio", "tracing", ] [[package]] name = "reth-node-metrics" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "eyre", "http", @@ -9177,8 +9515,8 @@ dependencies = [ "metrics-process", "metrics-util 0.19.1", "procfs", - "reth-metrics", - "reth-tasks", + "reth-metrics 1.8.2", + "reth-tasks 1.8.2", "tikv-jemalloc-ctl", "tokio", "tower 0.5.2", @@ -9187,20 +9525,43 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ - "reth-chainspec", + "reth-chainspec 1.8.2", "reth-db-api", - "reth-engine-primitives", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-engine-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", ] [[package]] name = "reth-optimism-chainspec" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-hardforks", + "alloy-primitives 1.3.1", + "derive_more", + "op-alloy-consensus", + "op-alloy-rpc-types", + "reth-chainspec 1.8.1", + "reth-ethereum-forks 1.8.1", + "reth-network-peers 1.8.1", + "reth-optimism-forks 1.8.1", + "reth-optimism-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "serde_json", +] + +[[package]] +name = "reth-optimism-chainspec" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-chains", "alloy-consensus", @@ -9213,12 +9574,12 @@ dependencies = [ "op-alloy-consensus", "op-alloy-rpc-types", "paste", - "reth-chainspec", - "reth-ethereum-forks", - "reth-network-peers", - "reth-optimism-forks", - "reth-optimism-primitives", - "reth-primitives-traits", + "reth-chainspec 1.8.2", + "reth-ethereum-forks 1.8.2", + "reth-network-peers 1.8.2", + "reth-optimism-forks 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "serde", "serde_json", "tar-no-std", @@ -9227,8 +9588,8 @@ dependencies = [ [[package]] name = "reth-optimism-cli" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9239,33 +9600,33 @@ dependencies = [ "eyre", "futures-util", "op-alloy-consensus", - "reth-chainspec", + "reth-chainspec 1.8.2", "reth-cli", "reth-cli-commands", "reth-cli-runner", - "reth-consensus", + "reth-consensus 1.8.2", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", - "reth-execution-types", - "reth-fs-util", + "reth-execution-types 1.8.2", + "reth-fs-util 1.8.2", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-optimism-chainspec", - "reth-optimism-consensus", - "reth-optimism-evm", + "reth-optimism-chainspec 1.8.2", + "reth-optimism-consensus 1.8.2", + "reth-optimism-evm 1.8.2", "reth-optimism-node", - "reth-optimism-primitives", - "reth-primitives-traits", + "reth-optimism-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", "reth-prune", "reth-rpc-server-types", "reth-stages", "reth-static-file", - "reth-static-file-types", + "reth-static-file-types 1.8.2", "reth-tracing", "serde", "tokio", @@ -9282,17 +9643,42 @@ dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-trie", - "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", + "reth-chainspec 1.8.1", + "reth-consensus 1.8.1", + "reth-consensus-common 1.8.1", + "reth-execution-types 1.8.1", + "reth-optimism-chainspec 1.8.1", + "reth-optimism-forks 1.8.1", + "reth-optimism-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-storage-api 1.8.1", + "reth-storage-errors 1.8.1", + "reth-trie-common 1.8.1", + "revm", + "thiserror 2.0.16", + "tracing", +] + +[[package]] +name = "reth-optimism-consensus" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-trie", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", + "reth-consensus-common 1.8.2", + "reth-execution-types 1.8.2", + "reth-optimism-chainspec 1.8.2", + "reth-optimism-forks 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-storage-errors 1.8.2", + "reth-trie-common 1.8.2", "revm", "thiserror 2.0.16", "tracing", @@ -9311,25 +9697,52 @@ dependencies = [ "op-alloy-consensus", "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-chainspec 1.8.1", + "reth-evm 1.8.1", + "reth-execution-errors 1.8.1", + "reth-execution-types 1.8.1", + "reth-optimism-chainspec 1.8.1", + "reth-optimism-consensus 1.8.1", + "reth-optimism-forks 1.8.1", + "reth-optimism-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-storage-errors 1.8.1", + "revm", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-optimism-evm" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-op-evm", + "alloy-primitives 1.3.1", + "op-alloy-consensus", + "op-alloy-rpc-types-engine", + "op-revm", + "reth-chainspec 1.8.2", + "reth-evm 1.8.2", + "reth-execution-errors 1.8.2", + "reth-execution-types 1.8.2", + "reth-optimism-chainspec 1.8.2", + "reth-optimism-consensus 1.8.2", + "reth-optimism-forks 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "reth-rpc-eth-api", - "reth-storage-errors", + "reth-storage-errors 1.8.2", "revm", "thiserror 2.0.16", ] [[package]] name = "reth-optimism-flashblocks" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9339,19 +9752,19 @@ dependencies = [ "brotli", "eyre", "futures-util", - "reth-chain-state", - "reth-errors", - "reth-evm", - "reth-execution-types", + "reth-chain-state 1.8.2", + "reth-errors 1.8.2", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", "reth-node-api", - "reth-optimism-evm", - "reth-optimism-payload-builder", - "reth-optimism-primitives", - "reth-primitives-traits", - "reth-revm", + "reth-optimism-evm 1.8.2", + "reth-optimism-payload-builder 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-revm 1.8.2", "reth-rpc-eth-types", - "reth-storage-api", - "reth-tasks", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", "ringbuffer", "serde", "serde_json", @@ -9369,13 +9782,24 @@ dependencies = [ "alloy-op-hardforks", "alloy-primitives 1.3.1", "once_cell", - "reth-ethereum-forks", + "reth-ethereum-forks 1.8.1", +] + +[[package]] +name = "reth-optimism-forks" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-op-hardforks", + "alloy-primitives 1.3.1", + "once_cell", + "reth-ethereum-forks 1.8.2", ] [[package]] name = "reth-optimism-node" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -9386,32 +9810,32 @@ dependencies = [ "op-alloy-consensus", "op-alloy-rpc-types-engine", "op-revm", - "reth-chainspec", - "reth-consensus", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", "reth-engine-local", - "reth-evm", + "reth-evm 1.8.2", "reth-network", "reth-node-api", "reth-node-builder", "reth-node-core", - "reth-optimism-chainspec", - "reth-optimism-consensus", - "reth-optimism-evm", - "reth-optimism-forks", - "reth-optimism-payload-builder", - "reth-optimism-primitives", + "reth-optimism-chainspec 1.8.2", + "reth-optimism-consensus 1.8.2", + "reth-optimism-evm 1.8.2", + "reth-optimism-forks 1.8.2", + "reth-optimism-payload-builder 1.8.2", + "reth-optimism-primitives 1.8.2", "reth-optimism-rpc", "reth-optimism-storage", - "reth-optimism-txpool", - "reth-payload-builder", - "reth-primitives-traits", + "reth-optimism-txpool 1.8.2", + "reth-payload-builder 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool", - "reth-trie-common", + "reth-transaction-pool 1.8.2", + "reth-trie-common 1.8.2", "revm", "serde", "tokio", @@ -9432,24 +9856,63 @@ dependencies = [ "derive_more", "op-alloy-consensus", "op-alloy-rpc-types-engine", - "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", + "reth-basic-payload-builder 1.8.1", + "reth-chain-state 1.8.1", + "reth-chainspec 1.8.1", + "reth-evm 1.8.1", + "reth-execution-types 1.8.1", + "reth-optimism-evm 1.8.1", + "reth-optimism-forks 1.8.1", + "reth-optimism-primitives 1.8.1", + "reth-optimism-txpool 1.8.1", + "reth-payload-builder 1.8.1", + "reth-payload-builder-primitives 1.8.1", + "reth-payload-primitives 1.8.1", + "reth-payload-util 1.8.1", + "reth-payload-validator 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-revm 1.8.1", + "reth-storage-api 1.8.1", + "reth-transaction-pool 1.8.1", + "revm", + "serde", + "sha2 0.10.9", + "thiserror 2.0.16", + "tracing", +] + +[[package]] +name = "reth-optimism-payload-builder" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rlp", + "alloy-rpc-types-debug", + "alloy-rpc-types-engine", + "derive_more", + "op-alloy-consensus", + "op-alloy-rpc-types-engine", + "reth-basic-payload-builder 1.8.2", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", + "reth-optimism-evm 1.8.2", + "reth-optimism-forks 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-optimism-txpool 1.8.2", + "reth-payload-builder 1.8.2", + "reth-payload-builder-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-payload-util 1.8.2", + "reth-payload-validator 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-revm 1.8.2", + "reth-storage-api 1.8.2", + "reth-transaction-pool 1.8.2", "revm", "serde", "sha2 0.10.9", @@ -9461,6 +9924,19 @@ dependencies = [ name = "reth-optimism-primitives" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rlp", + "op-alloy-consensus", + "reth-primitives-traits 1.8.1", +] + +[[package]] +name = "reth-optimism-primitives" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9470,17 +9946,17 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs", - "reth-primitives-traits", - "reth-zstd-compressors", + "reth-codecs 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-zstd-compressors 1.8.2", "serde", "serde_with", ] [[package]] name = "reth-optimism-rpc" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9507,19 +9983,19 @@ dependencies = [ "op-alloy-rpc-types-engine", "op-revm", "reqwest", - "reth-chain-state", - "reth-chainspec", - "reth-evm", - "reth-metrics", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-evm 1.8.2", + "reth-metrics 1.8.2", "reth-node-api", "reth-node-builder", - "reth-optimism-evm", + "reth-optimism-evm 1.8.2", "reth-optimism-flashblocks", - "reth-optimism-forks", - "reth-optimism-payload-builder", - "reth-optimism-primitives", - "reth-optimism-txpool", - "reth-primitives-traits", + "reth-optimism-forks 1.8.2", + "reth-optimism-payload-builder 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-optimism-txpool 1.8.2", + "reth-primitives-traits 1.8.2", "reth-rpc", "reth-rpc-api", "reth-rpc-convert", @@ -9527,9 +10003,9 @@ dependencies = [ "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", + "reth-transaction-pool 1.8.2", "revm", "serde_json", "thiserror 2.0.16", @@ -9541,12 +10017,12 @@ dependencies = [ [[package]] name = "reth-optimism-storage" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", - "reth-optimism-primitives", - "reth-storage-api", + "reth-optimism-primitives 1.8.2", + "reth-storage-api 1.8.2", ] [[package]] @@ -9570,15 +10046,51 @@ dependencies = [ "op-alloy-rpc-types", "op-revm", "parking_lot", - "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", + "reth-chain-state 1.8.1", + "reth-chainspec 1.8.1", + "reth-metrics 1.8.1", + "reth-optimism-evm 1.8.1", + "reth-optimism-forks 1.8.1", + "reth-optimism-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-storage-api 1.8.1", + "reth-transaction-pool 1.8.1", + "serde", + "thiserror 2.0.16", + "tokio", + "tracing", +] + +[[package]] +name = "reth-optimism-txpool" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-primitives 1.3.1", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-serde", + "c-kzg", + "derive_more", + "futures-util", + "metrics", + "op-alloy-consensus", + "op-alloy-flz", + "op-alloy-rpc-types", + "op-revm", + "parking_lot", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-metrics 1.8.2", + "reth-optimism-evm 1.8.2", + "reth-optimism-forks 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-transaction-pool 1.8.2", "serde", "thiserror 2.0.16", "tokio", @@ -9595,12 +10107,33 @@ dependencies = [ "alloy-rpc-types", "futures-util", "metrics", - "reth-chain-state", - "reth-ethereum-engine-primitives", - "reth-metrics", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-chain-state 1.8.1", + "reth-ethereum-engine-primitives 1.8.1", + "reth-metrics 1.8.1", + "reth-payload-builder-primitives 1.8.1", + "reth-payload-primitives 1.8.1", + "reth-primitives-traits 1.8.1", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-payload-builder" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-primitives 1.3.1", + "alloy-rpc-types", + "futures-util", + "metrics", + "reth-chain-state 1.8.2", + "reth-ethereum-engine-primitives 1.8.2", + "reth-metrics 1.8.2", + "reth-payload-builder-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "tokio", "tokio-stream", "tracing", @@ -9612,7 +10145,19 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "pin-project", - "reth-payload-primitives", + "reth-payload-primitives 1.8.1", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-payload-builder-primitives" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "pin-project", + "reth-payload-primitives 1.8.2", "tokio", "tokio-stream", "tracing", @@ -9629,10 +10174,30 @@ dependencies = [ "auto_impl", "either", "op-alloy-rpc-types-engine", - "reth-chain-state", - "reth-chainspec", - "reth-errors", - "reth-primitives-traits", + "reth-chain-state 1.8.1", + "reth-chainspec 1.8.1", + "reth-errors 1.8.1", + "reth-primitives-traits 1.8.1", + "serde", + "thiserror 2.0.16", + "tokio", +] + +[[package]] +name = "reth-payload-primitives" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rpc-types-engine", + "auto_impl", + "either", + "op-alloy-rpc-types-engine", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-errors 1.8.2", + "reth-primitives-traits 1.8.2", "serde", "thiserror 2.0.16", "tokio", @@ -9645,7 +10210,17 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", - "reth-transaction-pool", + "reth-transaction-pool 1.8.1", +] + +[[package]] +name = "reth-payload-util" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-primitives 1.3.1", + "reth-transaction-pool 1.8.2", ] [[package]] @@ -9655,27 +10230,64 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", - "reth-primitives-traits", + "reth-primitives-traits 1.8.1", +] + +[[package]] +name = "reth-payload-validator" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-rpc-types-engine", + "reth-primitives-traits 1.8.2", ] [[package]] name = "reth-primitives" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "c-kzg", "once_cell", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-static-file-types", + "reth-ethereum-forks 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-static-file-types 1.8.2", ] [[package]] name = "reth-primitives-traits" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 1.3.1", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-trie", + "auto_impl", + "bytes", + "derive_more", + "once_cell", + "op-alloy-consensus", + "reth-codecs 1.8.1", + "revm-bytecode", + "revm-primitives", + "revm-state", + "secp256k1 0.30.0", + "serde", + "serde_with", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-primitives-traits" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9695,7 +10307,7 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs", + "reth-codecs 1.8.2", "revm-bytecode", "revm-primitives", "revm-state", @@ -9707,8 +10319,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9721,27 +10333,27 @@ dependencies = [ "notify", "parking_lot", "rayon", - "reth-chain-state", - "reth-chainspec", - "reth-codecs", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-codecs 1.8.2", "reth-db", "reth-db-api", - "reth-errors", - "reth-ethereum-engine-primitives", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-fs-util", - "reth-metrics", + "reth-errors 1.8.2", + "reth-ethereum-engine-primitives 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", + "reth-fs-util 1.8.2", + "reth-metrics 1.8.2", "reth-nippy-jar", "reth-node-types", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-static-file-types", - "reth-storage-api", - "reth-storage-errors", - "reth-trie", + "reth-primitives-traits 1.8.2", + "reth-prune-types 1.8.2", + "reth-stages-types 1.8.2", + "reth-static-file-types 1.8.2", + "reth-storage-api 1.8.2", + "reth-storage-errors 1.8.2", + "reth-trie 1.8.2", "reth-trie-db", "revm-database", "revm-state", @@ -9752,8 +10364,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9761,16 +10373,16 @@ dependencies = [ "itertools 0.14.0", "metrics", "rayon", - "reth-chainspec", + "reth-chainspec 1.8.2", "reth-config", "reth-db-api", - "reth-errors", + "reth-errors 1.8.2", "reth-exex-types", - "reth-metrics", - "reth-primitives-traits", + "reth-metrics 1.8.2", + "reth-primitives-traits 1.8.2", "reth-provider", - "reth-prune-types", - "reth-static-file-types", + "reth-prune-types 1.8.2", + "reth-static-file-types 1.8.2", "reth-tokio-util", "rustc-hash 2.1.1", "thiserror 2.0.16", @@ -9782,30 +10394,40 @@ dependencies = [ name = "reth-prune-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-primitives 1.3.1", + "derive_more", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-prune-types" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs", + "reth-codecs 1.8.2", "serde", "thiserror 2.0.16", ] [[package]] name = "reth-ress-protocol" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "alloy-rlp", "futures", "reth-eth-wire", - "reth-ethereum-primitives", + "reth-ethereum-primitives 1.8.2", "reth-network", "reth-network-api", - "reth-storage-errors", + "reth-storage-errors 1.8.2", "tokio", "tokio-stream", "tracing", @@ -9813,26 +10435,26 @@ dependencies = [ [[package]] name = "reth-ress-provider" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", "eyre", "futures", "parking_lot", - "reth-chain-state", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", + "reth-chain-state 1.8.2", + "reth-errors 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", "reth-node-api", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-ress-protocol", - "reth-revm", - "reth-storage-api", - "reth-tasks", + "reth-revm 1.8.2", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", "reth-tokio-util", - "reth-trie", + "reth-trie 1.8.2", "schnellru", "tokio", "tracing", @@ -9844,17 +10466,30 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-primitives 1.3.1", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie", + "reth-primitives-traits 1.8.1", + "reth-storage-api 1.8.1", + "reth-storage-errors 1.8.1", + "reth-trie 1.8.1", + "revm", +] + +[[package]] +name = "reth-revm" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-primitives 1.3.1", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-storage-errors 1.8.2", + "reth-trie 1.8.2", "revm", ] [[package]] name = "reth-rpc" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -9890,32 +10525,32 @@ dependencies = [ "jsonwebtoken", "parking_lot", "pin-project", - "reth-chain-state", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-engine-primitives", - "reth-errors", - "reth-evm", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", + "reth-consensus-common 1.8.2", + "reth-engine-primitives 1.8.2", + "reth-errors 1.8.2", + "reth-evm 1.8.2", "reth-evm-ethereum", - "reth-execution-types", - "reth-metrics", + "reth-execution-types 1.8.2", + "reth-metrics 1.8.2", "reth-network-api", - "reth-network-peers", + "reth-network-peers 1.8.2", "reth-network-types", "reth-node-api", - "reth-primitives-traits", - "reth-revm", + "reth-primitives-traits 1.8.2", + "reth-revm 1.8.2", "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", - "reth-tasks", - "reth-transaction-pool", - "reth-trie-common", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", + "reth-transaction-pool 1.8.2", + "reth-trie-common 1.8.2", "revm", "revm-inspectors", "revm-primitives", @@ -9932,8 +10567,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-genesis", @@ -9951,17 +10586,17 @@ dependencies = [ "alloy-rpc-types-txpool", "alloy-serde", "jsonrpsee 0.26.0", - "reth-chain-state", - "reth-engine-primitives", - "reth-network-peers", + "reth-chain-state 1.8.2", + "reth-engine-primitives 1.8.2", + "reth-network-peers 1.8.2", "reth-rpc-eth-api", - "reth-trie-common", + "reth-trie-common 1.8.2", ] [[package]] name = "reth-rpc-builder" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-network", "alloy-provider", @@ -9970,24 +10605,24 @@ dependencies = [ "jsonrpsee 0.26.0", "metrics", "pin-project", - "reth-chain-state", - "reth-chainspec", - "reth-consensus", - "reth-evm", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-consensus 1.8.2", + "reth-evm 1.8.2", "reth-ipc", - "reth-metrics", + "reth-metrics 1.8.2", "reth-network-api", "reth-node-core", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-rpc", "reth-rpc-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-layer", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", + "reth-transaction-pool 1.8.2", "serde", "thiserror 2.0.16", "tokio", @@ -9999,8 +10634,8 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-json-rpc", @@ -10015,19 +10650,19 @@ dependencies = [ "op-alloy-network", "op-alloy-rpc-types", "op-revm", - "reth-ethereum-primitives", - "reth-evm", - "reth-optimism-primitives", - "reth-primitives-traits", - "reth-storage-api", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", + "reth-optimism-primitives 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", "revm-context", "thiserror 2.0.16", ] [[package]] name = "reth-rpc-engine-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10037,17 +10672,17 @@ dependencies = [ "jsonrpsee-types 0.26.0", "metrics", "parking_lot", - "reth-chainspec", - "reth-engine-primitives", - "reth-metrics", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-chainspec 1.8.2", + "reth-engine-primitives 1.8.2", + "reth-metrics 1.8.2", + "reth-payload-builder 1.8.2", + "reth-payload-builder-primitives 1.8.2", + "reth-payload-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "reth-rpc-api", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", + "reth-transaction-pool 1.8.2", "serde", "thiserror 2.0.16", "tokio", @@ -10056,8 +10691,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -10077,21 +10712,21 @@ dependencies = [ "jsonrpsee 0.26.0", "jsonrpsee-types 0.26.0", "parking_lot", - "reth-chain-state", - "reth-chainspec", - "reth-errors", - "reth-evm", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-errors 1.8.2", + "reth-evm 1.8.2", "reth-network-api", "reth-node-api", - "reth-primitives-traits", - "reth-revm", + "reth-primitives-traits 1.8.2", + "reth-revm 1.8.2", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", - "reth-trie-common", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", + "reth-transaction-pool 1.8.2", + "reth-trie-common 1.8.2", "revm", "revm-inspectors", "tokio", @@ -10100,8 +10735,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10120,21 +10755,21 @@ dependencies = [ "metrics", "rand 0.9.2", "reqwest", - "reth-chain-state", - "reth-chainspec", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-metrics", - "reth-primitives-traits", - "reth-revm", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-errors 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", + "reth-metrics 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-revm 1.8.2", "reth-rpc-convert", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", - "reth-trie", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", + "reth-transaction-pool 1.8.2", + "reth-trie 1.8.2", "revm", "revm-inspectors", "schnellru", @@ -10147,8 +10782,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-rpc-types-engine", "http", @@ -10161,15 +10796,15 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", - "reth-errors", + "reth-errors 1.8.2", "reth-network-api", "serde", "strum 0.27.2", @@ -10177,8 +10812,8 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10190,32 +10825,32 @@ dependencies = [ "num-traits", "rayon", "reqwest", - "reth-chainspec", - "reth-codecs", + "reth-chainspec 1.8.2", + "reth-codecs 1.8.2", "reth-config", - "reth-consensus", + "reth-consensus 1.8.2", "reth-db", "reth-db-api", "reth-era", "reth-era-downloader", "reth-era-utils", - "reth-ethereum-primitives", + "reth-ethereum-primitives 1.8.2", "reth-etl", - "reth-evm", - "reth-execution-types", + "reth-evm 1.8.2", + "reth-execution-types 1.8.2", "reth-exex", - "reth-fs-util", + "reth-fs-util 1.8.2", "reth-network-p2p", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-provider", "reth-prune", - "reth-prune-types", - "reth-revm", + "reth-prune-types 1.8.2", + "reth-revm 1.8.2", "reth-stages-api", - "reth-static-file-types", - "reth-storage-errors", + "reth-static-file-types 1.8.2", + "reth-storage-errors 1.8.2", "reth-testing-utils", - "reth-trie", + "reth-trie 1.8.2", "reth-trie-db", "tempfile", "thiserror 2.0.16", @@ -10225,8 +10860,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-eips", "alloy-primitives 1.3.1", @@ -10234,16 +10869,16 @@ dependencies = [ "auto_impl", "futures-util", "metrics", - "reth-consensus", - "reth-errors", - "reth-metrics", + "reth-consensus 1.8.2", + "reth-errors 1.8.2", + "reth-metrics 1.8.2", "reth-network-p2p", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-provider", "reth-prune", - "reth-stages-types", + "reth-stages-types 1.8.2", "reth-static-file", - "reth-static-file-types", + "reth-static-file-types 1.8.2", "reth-tokio-util", "thiserror 2.0.16", "tokio", @@ -10254,32 +10889,41 @@ dependencies = [ name = "reth-stages-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-primitives 1.3.1", + "reth-trie-common 1.8.1", +] + +[[package]] +name = "reth-stages-types" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs", - "reth-trie-common", + "reth-codecs 1.8.2", + "reth-trie-common 1.8.2", "serde", ] [[package]] name = "reth-static-file" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "parking_lot", "rayon", - "reth-codecs", + "reth-codecs 1.8.2", "reth-db-api", - "reth-primitives-traits", + "reth-primitives-traits 1.8.2", "reth-provider", - "reth-prune-types", - "reth-stages-types", - "reth-static-file-types", - "reth-storage-errors", + "reth-prune-types 1.8.2", + "reth-stages-types 1.8.2", + "reth-static-file-types 1.8.2", + "reth-storage-errors 1.8.2", "reth-tokio-util", "tracing", ] @@ -10288,6 +10932,17 @@ dependencies = [ name = "reth-static-file-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-primitives 1.3.1", + "derive_more", + "serde", + "strum 0.27.2", +] + +[[package]] +name = "reth-static-file-types" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "clap", @@ -10306,16 +10961,38 @@ dependencies = [ "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", - "reth-chainspec", + "reth-chainspec 1.8.1", + "reth-db-models 1.8.1", + "reth-ethereum-primitives 1.8.1", + "reth-execution-types 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-prune-types 1.8.1", + "reth-stages-types 1.8.1", + "reth-storage-errors 1.8.1", + "reth-trie-common 1.8.1", + "revm-database", +] + +[[package]] +name = "reth-storage-api" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rpc-types-engine", + "auto_impl", + "reth-chainspec 1.8.2", "reth-db-api", - "reth-db-models", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", + "reth-db-models 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-execution-types 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-prune-types 1.8.2", + "reth-stages-types 1.8.2", + "reth-storage-errors 1.8.2", + "reth-trie-common 1.8.2", "revm-database", ] @@ -10328,9 +11005,25 @@ dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", "derive_more", - "reth-primitives-traits", - "reth-prune-types", - "reth-static-file-types", + "reth-primitives-traits 1.8.1", + "reth-prune-types 1.8.1", + "reth-static-file-types 1.8.1", + "revm-database-interface", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-storage-errors" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rlp", + "derive_more", + "reth-primitives-traits 1.8.2", + "reth-prune-types 1.8.2", + "reth-static-file-types 1.8.2", "revm-database-interface", "thiserror 2.0.16", ] @@ -10339,6 +11032,22 @@ dependencies = [ name = "reth-tasks" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "auto_impl", + "dyn-clone", + "futures-util", + "metrics", + "reth-metrics 1.8.1", + "thiserror 2.0.16", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "reth-tasks" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "auto_impl", "dyn-clone", @@ -10346,7 +11055,7 @@ dependencies = [ "metrics", "pin-project", "rayon", - "reth-metrics", + "reth-metrics 1.8.2", "thiserror 2.0.16", "tokio", "tracing", @@ -10355,8 +11064,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10364,15 +11073,15 @@ dependencies = [ "alloy-primitives 1.3.1", "rand 0.8.5", "rand 0.9.2", - "reth-ethereum-primitives", - "reth-primitives-traits", + "reth-ethereum-primitives 1.8.2", + "reth-primitives-traits 1.8.2", "secp256k1 0.30.0", ] [[package]] name = "reth-tokio-util" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "tokio", "tokio-stream", @@ -10381,8 +11090,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "clap", "eyre", @@ -10396,8 +11105,8 @@ dependencies = [ [[package]] name = "reth-tracing-otlp" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "opentelemetry 0.29.1", "opentelemetry-otlp 0.29.0", @@ -10412,6 +11121,45 @@ dependencies = [ name = "reth-transaction-pool" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rlp", + "aquamarine", + "auto_impl", + "bitflags 2.9.2", + "futures-util", + "metrics", + "parking_lot", + "pin-project", + "reth-chain-state 1.8.1", + "reth-chainspec 1.8.1", + "reth-eth-wire-types 1.8.1", + "reth-ethereum-primitives 1.8.1", + "reth-execution-types 1.8.1", + "reth-fs-util 1.8.1", + "reth-metrics 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-storage-api 1.8.1", + "reth-tasks 1.8.1", + "revm-interpreter", + "revm-primitives", + "rustc-hash 2.1.1", + "schnellru", + "serde", + "serde_json", + "smallvec", + "thiserror 2.0.16", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-transaction-pool" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10426,16 +11174,16 @@ dependencies = [ "paste", "pin-project", "rand 0.9.2", - "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", + "reth-chain-state 1.8.2", + "reth-chainspec 1.8.2", + "reth-eth-wire-types 1.8.2", + "reth-ethereum-primitives 1.8.2", + "reth-execution-types 1.8.2", + "reth-fs-util 1.8.2", + "reth-metrics 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-storage-api 1.8.2", + "reth-tasks 1.8.2", "revm-interpreter", "revm-primitives", "rustc-hash 2.1.1", @@ -10453,6 +11201,28 @@ dependencies = [ name = "reth-trie" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.3.1", + "alloy-rlp", + "alloy-trie", + "auto_impl", + "itertools 0.14.0", + "reth-execution-errors 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-stages-types 1.8.1", + "reth-storage-errors 1.8.1", + "reth-trie-common 1.8.1", + "reth-trie-sparse 1.8.1", + "revm-database", + "tracing", +] + +[[package]] +name = "reth-trie" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10462,13 +11232,13 @@ dependencies = [ "auto_impl", "itertools 0.14.0", "metrics", - "reth-execution-errors", - "reth-metrics", - "reth-primitives-traits", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", - "reth-trie-sparse", + "reth-execution-errors 1.8.2", + "reth-metrics 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-stages-types 1.8.2", + "reth-storage-errors 1.8.2", + "reth-trie-common 1.8.2", + "reth-trie-sparse 1.8.2", "revm-database", "tracing", "triehash", @@ -10478,6 +11248,23 @@ dependencies = [ name = "reth-trie-common" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-consensus", + "alloy-primitives 1.3.1", + "alloy-rlp", + "alloy-trie", + "derive_more", + "itertools 0.14.0", + "nybbles", + "rayon", + "reth-primitives-traits 1.8.1", + "revm-database", +] + +[[package]] +name = "reth-trie-common" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-consensus", "alloy-primitives 1.3.1", @@ -10493,8 +11280,8 @@ dependencies = [ "nybbles", "plain_hasher", "rayon", - "reth-codecs", - "reth-primitives-traits", + "reth-codecs 1.8.2", + "reth-primitives-traits 1.8.2", "revm-database", "serde", "serde_with", @@ -10502,21 +11289,21 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "reth-db-api", - "reth-execution-errors", - "reth-primitives-traits", - "reth-trie", + "reth-execution-errors 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-trie 1.8.2", "tracing", ] [[package]] name = "reth-trie-parallel" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -10525,14 +11312,14 @@ dependencies = [ "metrics", "rayon", "reth-db-api", - "reth-execution-errors", - "reth-metrics", + "reth-execution-errors 1.8.2", + "reth-metrics 1.8.2", "reth-provider", - "reth-storage-errors", - "reth-trie", - "reth-trie-common", + "reth-storage-errors 1.8.2", + "reth-trie 1.8.2", + "reth-trie-common 1.8.2", "reth-trie-db", - "reth-trie-sparse", + "reth-trie-sparse 1.8.2", "thiserror 2.0.16", "tokio", "tracing", @@ -10542,6 +11329,22 @@ dependencies = [ name = "reth-trie-sparse" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +dependencies = [ + "alloy-primitives 1.3.1", + "alloy-rlp", + "alloy-trie", + "auto_impl", + "reth-execution-errors 1.8.1", + "reth-primitives-traits 1.8.1", + "reth-trie-common 1.8.1", + "smallvec", + "tracing", +] + +[[package]] +name = "reth-trie-sparse" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", @@ -10549,28 +11352,28 @@ dependencies = [ "auto_impl", "metrics", "rayon", - "reth-execution-errors", - "reth-metrics", - "reth-primitives-traits", - "reth-trie-common", + "reth-execution-errors 1.8.2", + "reth-metrics 1.8.2", + "reth-primitives-traits 1.8.2", + "reth-trie-common 1.8.2", "smallvec", "tracing", ] [[package]] name = "reth-trie-sparse-parallel" -version = "1.8.1" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" dependencies = [ "alloy-primitives 1.3.1", "alloy-rlp", "alloy-trie", "metrics", "rayon", - "reth-execution-errors", - "reth-metrics", - "reth-trie-common", - "reth-trie-sparse", + "reth-execution-errors 1.8.2", + "reth-metrics 1.8.2", + "reth-trie-common 1.8.2", + "reth-trie-sparse 1.8.2", "smallvec", "tracing", ] @@ -10583,6 +11386,14 @@ dependencies = [ "zstd", ] +[[package]] +name = "reth-zstd-compressors" +version = "1.8.2" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.2#9c30bf7af5e0d45deaf5917375c9922c16654b28" +dependencies = [ + "zstd", +] + [[package]] name = "revm" version = "29.0.1" @@ -10923,7 +11734,7 @@ dependencies = [ "opentelemetry_sdk 0.28.0", "parking_lot", "paste", - "reth-optimism-payload-builder", + "reth-optimism-payload-builder 1.8.1", "rustls", "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 79f3c42d7..fdcbf3b2a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,63 +43,63 @@ incremental = false unreachable_pub = "warn" [workspace.dependencies] -reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-chain-state = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1", features = [ +reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-chain-state = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-cli-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2", features = [ "test-utils", ] } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-storage-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-payload-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-node-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-ipc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-storage-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-payload-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-node-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-ipc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } # reth optimism -reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } -reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1", features = [ +reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2" } +reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.2", features = [ "client", ] } @@ -117,32 +117,32 @@ ethereum_ssz = "0.9.0" alloy-primitives = { version = "1.3.1", default-features = false } alloy-rlp = "0.3.10" alloy-chains = "0.2.5" -alloy-contract = { version = "1.0.35" } +alloy-contract = { version = "1.0.37" } alloy-evm = { version = "0.21.0", default-features = false } -alloy-provider = { version = "1.0.35", features = [ +alloy-provider = { version = "1.0.37", features = [ "ipc", "pubsub", "txpool-api", "engine-api", ] } -alloy-pubsub = { version = "1.0.35" } -alloy-eips = { version = "1.0.35" } -alloy-rpc-types = { version = "1.0.35" } -alloy-json-rpc = { version = "1.0.35" } -alloy-transport-http = { version = "1.0.35" } -alloy-network = { version = "1.0.35" } -alloy-network-primitives = { version = "1.0.35" } -alloy-transport = { version = "1.0.35" } -alloy-node-bindings = { version = "1.0.35" } -alloy-consensus = { version = "1.0.35", features = ["kzg"] } -alloy-serde = { version = "1.0.35" } +alloy-pubsub = { version = "1.0.37" } +alloy-eips = { version = "1.0.37" } +alloy-rpc-types = { version = "1.0.37" } +alloy-json-rpc = { version = "1.0.37" } +alloy-transport-http = { version = "1.0.37" } +alloy-network = { version = "1.0.37" } +alloy-network-primitives = { version = "1.0.37" } +alloy-transport = { version = "1.0.37" } +alloy-node-bindings = { version = "1.0.37" } +alloy-consensus = { version = "1.0.37", features = ["kzg"] } +alloy-serde = { version = "1.0.37" } alloy-sol-types = { version = "1.2.1", features = ["json"] } -alloy-rpc-types-beacon = { version = "1.0.35", features = ["ssz"] } -alloy-rpc-types-engine = { version = "1.0.35", features = ["ssz"] } -alloy-rpc-types-eth = { version = "1.0.35" } -alloy-signer-local = { version = "1.0.35" } -alloy-rpc-client = { version = "1.0.35" } -alloy-genesis = { version = "1.0.35" } +alloy-rpc-types-beacon = { version = "1.0.37", features = ["ssz"] } +alloy-rpc-types-engine = { version = "1.0.37", features = ["ssz"] } +alloy-rpc-types-eth = { version = "1.0.37" } +alloy-signer-local = { version = "1.0.37" } +alloy-rpc-client = { version = "1.0.37" } +alloy-genesis = { version = "1.0.37" } alloy-trie = { version = "0.9.1" } # optimism @@ -175,7 +175,7 @@ tokio-stream = "0.1.16" tokio-util = "0.7.12" url = "2.5.2" warp = "0.3.7" -flate2 = "1.0.35" +flate2 = "1.0.37" prometheus = "0.13.4" ctor = "0.2" dashmap = "6.1" From 8ad2a94a6d0d9dd11801390e069849e4ba5e17b2 Mon Sep 17 00:00:00 2001 From: Solar Mithril Date: Fri, 10 Oct 2025 13:17:10 +0400 Subject: [PATCH 54/54] release 0.2.6 (#295) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 539bb8f0c..344473b20 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6293,7 +6293,7 @@ dependencies = [ [[package]] name = "op-rbuilder" -version = "0.2.5" +version = "0.2.6" dependencies = [ "alloy-consensus", "alloy-contract", diff --git a/Cargo.toml b/Cargo.toml index fdcbf3b2a..e381d195c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "0.2.5" +version = "0.2.6" edition = "2024" rust-version = "1.86" license = "MIT OR Apache-2.0"