diff --git a/Cargo.lock b/Cargo.lock index 5f21ab403..5299025b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5674914c2cfdb866c21cb0c09d82374ee39a1395cf512e7515f4c014083b3fff" +checksum = "a379c0d821498c996ceb9e7519fc2dab8286c35a203c1fb95f80ecd66e07cf2f" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -107,14 +107,14 @@ dependencies = [ "num_enum", "proptest", "serde", - "strum 0.27.1", + "strum 0.27.2", ] [[package]] name = "alloy-consensus" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c6ad411efe0f49e0e99b9c7d8749a1eb55f6dbf74a1bc6953ab285b02c4f67" +checksum = "35f021a55afd68ff2364ccfddaa364fc9a38a72200cdc74fcfb8dc3231d38f2c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -133,14 +133,14 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-consensus-any" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf397edad57b696501702d5887e4e14d7d0bbae9fbb6439e148d361f7254f45" +checksum = "5a0ecca7a71b1f88e63d19e2d9397ce56949d3dd3484fd73c73d0077dc5c93d4" dependencies = [ "alloy-consensus", "alloy-eips", @@ -153,9 +153,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b95b3deca680efc7e9cba781f1a1db352fa1ea50e6384a514944dcf4419e652" +checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -180,7 +180,7 @@ dependencies = [ "crc", "rand 0.8.5", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -209,14 +209,14 @@ dependencies = [ "rand 0.8.5", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-eips" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749b8449e4daf7359bdf1dabdba6ce424ff8b1bdc23bdb795661b2e991a08d87" +checksum = "7473a19f02b25f8e1e8c69d35f02c07245694d11bd91bfe00e9190ac106b3838" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -237,9 +237,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.12.3" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff5aae4c6dc600734b206b175f3200085ee82dcdaa388760358830a984ca9869" +checksum = "ff4d88e267e4b599e944e1d32fbbfeaf4b8ea414e54da27306ede37c0798684d" dependencies = [ "alloy-consensus", "alloy-eips", @@ -252,14 +252,14 @@ dependencies = [ "op-alloy-consensus", "op-revm", "revm", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-genesis" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fcbae2107f3f2df2b02bb7d9e81e8aa730ae371ca9dd7fd0c81c3d0cb78a452" +checksum = "17b2c29f25098bfa4cd3d9ec7806e1506716931e188c7c0843284123831c2cf1" dependencies = [ "alloy-eips", "alloy-primitives", @@ -271,9 +271,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce138b29a2f8e7ed97c064af8359dfa6559c12cba5e821ae4eb93081a56557e" +checksum = "3165210652f71dfc094b051602bafd691f506c54050a174b1cba18fb5ef706a3" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -285,9 +285,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15516116086325c157c18261d768a20677f0f699348000ed391d4ad0dcb82530" +checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -297,24 +297,24 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc30b0e20fcd0843834ecad2a716661c7b9d5aca2486f8e96b93d5246eb83e06" +checksum = "7a4d1f49fdf9780b60e52c20ffcc1e352d8d27885cc8890620eb584978265dd9" dependencies = [ "alloy-primitives", "alloy-sol-types", "http 1.3.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] [[package]] name = "alloy-network" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaeb681024cf71f5ca14f3d812c0a8d8b49f13f7124713538e66d74d3bfe6aff" +checksum = "2991c432e149babfd996194f8f558f85d7326ac4cf52c55732d32078ff0282d4" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -333,14 +333,14 @@ dependencies = [ "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-network-primitives" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a03ad273e1c55cc481889b4130e82860e33624e6969e9a08854e0f3ebe659295" +checksum = "1d540d962ddbc3e95153bafe56ccefeb16dfbffa52c5f7bdd66cd29ec8f52259" dependencies = [ "alloy-consensus", "alloy-eips", @@ -351,20 +351,19 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6177ed26655d4e84e00b65cb494d4e0b8830e7cae7ef5d63087d445a2600fb55" +checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" dependencies = [ "alloy-rlp", "arbitrary", "bytes", "cfg-if", "const-hex", - "derive_arbitrary", "derive_more", "foldhash", "getrandom 0.3.3", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "indexmap 2.10.0", "itoa", "k256", @@ -372,7 +371,7 @@ dependencies = [ "paste", "proptest", "proptest-derive", - "rand 0.9.1", + "rand 0.9.2", "ruint", "rustc-hash 2.1.1", "serde", @@ -382,9 +381,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc164acf8c41c756e76c7aea3be8f0fb03f8a3ef90a33e3ddcea5d1614d8779" +checksum = "7e96d8084a1cf96be2df6219ac407275ac20c1136fa01f911535eb489aa006e8" dependencies = [ "alloy-chains", "alloy-consensus", @@ -409,14 +408,13 @@ dependencies = [ "either", "futures", "futures-utils-wasm", - "http 1.3.1", "lru 0.13.0", "parking_lot", "pin-project", "reqwest", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", "url", @@ -425,13 +423,14 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670d155c3e35bcaa252ca706a2757a456c56aa71b80ad1539d07d49b86304e78" +checksum = "8a682f14e10c3f4489c57b64ed457801b3e7ffc5091b6a35883d0e5960b9b894" dependencies = [ "alloy-json-rpc", "alloy-primitives", "alloy-transport", + "auto_impl", "bimap", "futures", "parking_lot", @@ -463,14 +462,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "alloy-rpc-client" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c44d31bcb9afad460915fe1fba004a2af5a07a3376c307b9bdfeec3678c209" +checksum = "194ff51cd1d2e65c66b98425e0ca7eb559ca1a579725834c986d84faf8e224c0" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -479,7 +478,6 @@ dependencies = [ "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", - "async-stream", "futures", "pin-project", "reqwest", @@ -489,16 +487,15 @@ dependencies = [ "tokio-stream", "tower", "tracing", - "tracing-futures", "url", "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba2cf3d3c6ece87f1c6bb88324a997f28cf0ad7e98d5e0b6fa91c4003c30916" +checksum = "8d4fe522f6fc749c8afce721bdc8f73b715d317c3c02fcb9b51f7a143e4401dd" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -509,9 +506,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ce874dde17cc749f1aa8883e0c1431ddda6ba6dd9c9eb9b31d1fb0a6023830" +checksum = "30f218456a0a70a234ed52c181f04e6c98b6810c25273cf5280d32dd2cbdc876" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -521,9 +518,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e80e2ffa56956a92af375df1422b239fde6552bd222dfeaeb39f07949060fa" +checksum = "c6af88d9714b499675164cac2fa2baadb3554579ab3ea8bc0d7b0c0de4f9d692" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -533,9 +530,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5b22062142ce3b2ed3374337d4b343437e5de6959397f55d2c9fe2c2ce0162" +checksum = "124b742619519d5932e586631f11050028b29c30e3e195f2bb04228c886253d6" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -544,9 +541,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "438a7a3a5c5d11877787e324dd1ffd9ab82314ca145513ebe8d12257cbfefb5b" +checksum = "fd39ff755554e506ae0f6a8e8251f8633bd7512cce0d7d1a7cfd689797e0daa5" dependencies = [ "alloy-eips", "alloy-primitives", @@ -555,26 +552,27 @@ dependencies = [ "ethereum_ssz_derive", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "tree_hash", "tree_hash_derive", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f53a2a78b44582e0742ab96d5782842d9b90cebf6ef6ccd8be864ae246fdd0f" +checksum = "1c6a6c8ae298c2739706ee3cd996c220b0ea406e6841a4e4290c7336edd5f811" dependencies = [ "alloy-primitives", + "derive_more", "serde", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7041c3fd4dcd7af95e86280944cc33b4492ac2ddbe02f84079f8019742ec2857" +checksum = "9a1a77a23d609bca2e4a60f992dde5f987475cb064da355fa4dbd7cda2e1bb48" dependencies = [ "alloy-consensus", "alloy-eips", @@ -587,14 +585,14 @@ dependencies = [ "jsonwebtoken", "rand 0.8.5", "serde", - "strum 0.27.1", + "strum 0.27.2", ] [[package]] name = "alloy-rpc-types-eth" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391e59f81bacbffc7bddd2da3a26d6eec0e2058e9237c279e9b1052bdf21b49e" +checksum = "781d4d5020bea8f020e164f5593101c2e2f790d66d04a0727839d03bc4411ed7" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -608,14 +606,15 @@ dependencies = [ "itertools 0.14.0", "serde", "serde_json", - "thiserror 2.0.12", + "serde_with", + "thiserror 2.0.16", ] [[package]] name = "alloy-rpc-types-mev" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3f327d4cd140eca2c6c27c82c381aba6fa6a32cbb697c146b5607532f82167" +checksum = "81f742708f7ea7c3dc6067e7d87b6635c0817cf142b7c72cb8e8e3e07371aa3a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -628,23 +627,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d96238f37e8a72dcf2cf6bead4c4f91dec1c0720b12be10558406e1633a804" +checksum = "719e5eb9c15e21dab3dee2cac53505500e5e701f25d556734279c5f02154022a" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e45d00db47a280d0a6e498b6e63344bccd9485d8860d2e2f06b680200c37ebc2" +checksum = "37c751233a6067ccc8a4cbd469e0fd34e0d9475fd118959dbc777ae3af31bba7" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -654,9 +653,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea08bc854235d4dff08fd57df8033285c11b8d7548b20c6da218194e7e6035f" +checksum = "30be84f45d4f687b00efaba1e6290cbf53ccc8f6b8fbb54e4c2f9d2a0474ce95" dependencies = [ "alloy-primitives", "arbitrary", @@ -666,9 +665,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcb3759f85ef5f010a874d9ebd5ee6ce01cac65211510863124e0ebac6552db0" +checksum = "fa8c24b883fe56395db64afcd665fca32dcdef670a59e5338de6892c2e38d7e9" dependencies = [ "alloy-primitives", "async-trait", @@ -676,14 +675,14 @@ dependencies = [ "either", "elliptic-curve 0.13.8", "k256", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-signer-local" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d95902d29e1290809e1c967a1e974145b44b78f6e3e12fc07a60c1225e3df0" +checksum = "05724615fd2ec3417f5cd07cab908300cbb3aae5badc1b805ca70c555b26775f" dependencies = [ "alloy-consensus", "alloy-network", @@ -692,28 +691,28 @@ dependencies = [ "async-trait", "k256", "rand 0.8.5", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-sol-macro" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a14f21d053aea4c6630687c2f4ad614bed4c81e14737a9b904798b24f30ea849" +checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d99282e7c9ef14eb62727981a985a01869e586d1dec729d3bb33679094c100" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -722,16 +721,16 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda029f955b78e493360ee1d7bd11e1ab9f2a220a5715449babc79d6d0a01105" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" dependencies = [ "const-hex", "dunce", @@ -739,15 +738,15 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10db1bd7baa35bc8d4a1b07efbf734e73e5ba09f2580fb8cee3483a36087ceb2" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" dependencies = [ "serde", "winnow", @@ -755,9 +754,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58377025a47d8b8426b3e4846a251f2c1991033b27f517aade368146f6ab1dfe" +checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -767,12 +766,13 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdf4b7fc58ebb2605b2fc5a33dae5cf15527ea70476978351cc0db1c596ea93" +checksum = "20b7f8b6c540b55e858f958d3a92223494cf83c4fb43ff9b26491edbeb3a3b71" dependencies = [ "alloy-json-rpc", "alloy-primitives", + "auto_impl", "base64 0.22.1", "derive_more", "futures", @@ -780,7 +780,7 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tower", "tracing", @@ -790,9 +790,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4b0f3a9c28bcd3761504d9eb3578838d6d115c8959fc1ea05f59a3a8f691af" +checksum = "260e9584dfd7998760d7dfe1856c6f8f346462b9e7837287d7eddfb3922ef275" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -805,9 +805,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758edb7c266374374e001c50fb1ea89cb5ed48d47ffbf297599f2a557804dd3b" +checksum = "9491a1d81e97ae9d919da49e1c63dec4729c994e2715933968b8f780aa18793e" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -825,15 +825,15 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5596b913d1299ee37a9c1bb5118b2639bf253dc1088957bdf2073ae63a6fdfa" +checksum = "d056ef079553e1f18834d6ef4c2793e4d51ac742021b2be5039dd623fe1354f0" dependencies = [ "alloy-pubsub", "alloy-transport", "futures", "http 1.3.1", - "rustls 0.23.28", + "rustls 0.23.31", "serde_json", "tokio", "tokio-tungstenite", @@ -843,9 +843,9 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bada1fc392a33665de0dc50d401a3701b62583c655e3522a323490a5da016962" +checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -863,15 +863,15 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.17" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79bf2869e66904b2148c809e7a75e23ca26f5d7b46663a149a1444fb98a69d1d" +checksum = "72e29436068f836727d4e7c819ae6bf6f9c9e19a32e96fc23e814709a277f23a" dependencies = [ "alloy-primitives", "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -891,9 +891,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -921,29 +921,29 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.9" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "aquamarine" @@ -956,14 +956,14 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" dependencies = [ "derive_arbitrary", ] @@ -1005,7 +1005,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "itertools 0.13.0", "num-bigint", "num-integer", @@ -1098,7 +1098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1136,7 +1136,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1151,7 +1151,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.4", + "hashbrown 0.15.5", ] [[package]] @@ -1225,7 +1225,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1281,9 +1281,9 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.25" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40f6024f3f856663b45fd0c9b6f2024034a702f453549449e0d84a305900dad4" +checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" dependencies = [ "brotli", "flate2", @@ -1314,18 +1314,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1363,7 +1363,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1374,9 +1374,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-config" -version = "1.8.1" +version = "1.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c18d005c70d2b9c0c1ea8876c039db0ec7fb71164d25c73ccea21bf41fd02171" +checksum = "c478f5b10ce55c9a33f87ca3404ca92768b144fc1bfdede7c0121214a8283a25" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1404,9 +1404,9 @@ dependencies = [ [[package]] name = "aws-credential-types" -version = "1.2.3" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687bc16bc431a8533fe0097c7f0182874767f920989d7260950172ae8e3c4465" +checksum = "1541072f81945fa1251f8795ef6c92c4282d74d59f88498ae7d4bf00f0ebdad9" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -1416,9 +1416,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.13.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fcc8f365936c834db5514fc45aee5b1202d677e6b40e48468aaaa8183ca8c7" +checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" dependencies = [ "aws-lc-sys", "zeroize", @@ -1426,9 +1426,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b1d86e7705efe1be1b569bab41d4fa1e14e220b60a160f78de2db687add079" +checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff" dependencies = [ "bindgen 0.69.5", "cc", @@ -1439,9 +1439,9 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.5.8" +version = "1.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6c68419d8ba16d9a7463671593c54f81ba58cab466e9b759418da606dcc2e2" +checksum = "c034a1bc1d70e16e7f4e4caf7e9f7693e4c9c24cd91cf17c2a0b21abaebc7c8b" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -1464,9 +1464,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.96.0" +version = "1.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e25d24de44b34dcdd5182ac4e4c6f07bcec2661c505acef94c0d293b65505fe" +checksum = "af040a86ae4378b7ed2f62c83b36be1848709bbbf5757ec850d0e08596a26be9" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1498,9 +1498,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.74.0" +version = "1.81.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a69de9c1b9272da2872af60c7402683e7f45c06267735b4332deacb203239b" +checksum = "79ede098271e3471036c46957cba2ba30888f53bda2515bf04b560614a30a36e" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1520,9 +1520,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.75.0" +version = "1.82.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b161d836fac72bdd5ac1a4cd1cdc38ab888c7af26cfd95f661be4409505e63" +checksum = "43326f724ba2cc957e6f3deac0ca1621a3e5d4146f5970c24c8a108dac33070f" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1542,9 +1542,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.76.0" +version = "1.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb1cd79a3412751a341a28e2cd0d6fa4345241976da427b075a0c0cd5409f886" +checksum = "a5468593c47efc31fdbe6c902d1a5fde8d9c82f78a3f8ccfe907b1e9434748cb" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1565,9 +1565,9 @@ dependencies = [ [[package]] name = "aws-sigv4" -version = "1.3.3" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfb9021f581b71870a17eac25b52335b82211cdc092e02b6876b2bcefa61666" +checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", @@ -1604,9 +1604,9 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.63.4" +version = "0.63.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244f00666380d35c1c76b90f7b88a11935d11b84076ac22a4c014ea0939627af" +checksum = "4dbef71cd3cf607deb5c407df52f7e589e6849b296874ee448977efbb6d0832b" dependencies = [ "aws-smithy-http", "aws-smithy-types", @@ -1624,9 +1624,9 @@ dependencies = [ [[package]] name = "aws-smithy-eventstream" -version = "0.60.9" +version = "0.60.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338a3642c399c0a5d157648426110e199ca7fd1c689cc395676b81aa563700c4" +checksum = "182b03393e8c677347fb5705a04a9392695d47d20ef0a2f8cfe28c8e6b9b9778" dependencies = [ "aws-smithy-types", "bytes", @@ -1635,9 +1635,9 @@ dependencies = [ [[package]] name = "aws-smithy-http" -version = "0.62.1" +version = "0.62.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99335bec6cdc50a346fda1437f9fefe33abf8c99060739a546a16457f2862ca9" +checksum = "7c4dacf2d38996cf729f55e7a762b30918229917eca115de45dfa8dfb97796c9" dependencies = [ "aws-smithy-eventstream", "aws-smithy-runtime-api", @@ -1656,29 +1656,30 @@ dependencies = [ [[package]] name = "aws-smithy-http-client" -version = "1.0.6" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f108f1ca850f3feef3009bdcc977be201bca9a91058864d9de0684e64514bee0" +checksum = "4fdbad9bd9dbcc6c5e68c311a841b54b70def3ca3b674c42fbebb265980539f8" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", - "h2 0.3.26", - "h2 0.4.11", + "h2 0.3.27", + "h2 0.4.12", "http 0.2.12", "http 1.3.1", "http-body 0.4.6", "hyper 0.14.32", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.24.2", "hyper-rustls 0.27.7", "hyper-util", "pin-project-lite", "rustls 0.21.12", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", + "tokio-rustls 0.26.2", "tower", "tracing", ] @@ -1713,9 +1714,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.8.3" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14302f06d1d5b7d333fd819943075b13d27c7700b414f574c3c35859bfb55d5e" +checksum = "a3d57c8b53a72d15c8e190475743acf34e4996685e346a3448dd54ef696fc6e0" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -1737,9 +1738,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd8531b6d8882fd8f48f82a9754e682e29dd44cff27154af51fa3eb730f59efb" +checksum = "07f5e0fc8a6b3f2303f331b94504bbf754d85488f402d6f1dd7a6080f99afe56" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -1789,9 +1790,9 @@ dependencies = [ [[package]] name = "aws-types" -version = "1.3.7" +version = "1.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a322fec39e4df22777ed3ad8ea868ac2f94cd15e1a55f6ee8d8d6305057689a" +checksum = "b069d19bf01e46298eaedd7c6f283fe565a59263e53eebec945f3e6398f42390" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -1809,9 +1810,9 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "backon" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302eaff5357a264a2c42f127ecb8bac761cf99749fc3dc95677e2743991f99e7" +checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" dependencies = [ "fastrand", "tokio", @@ -1899,7 +1900,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1912,7 +1913,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.104", + "syn 2.0.106", "which", ] @@ -1922,7 +1923,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1931,7 +1932,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1973,9 +1974,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" dependencies = [ "serde", ] @@ -1993,19 +1994,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -2051,7 +2039,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c340fe0f0b267787095cbe35240c6786ff19da63ec7b69367ba338eace8169b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "boa_interner", "boa_macros", "boa_string", @@ -2067,7 +2055,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f620c3f06f51e65c0504ddf04978be1b814ac6586f0b45f6019801ab5efd37f9" dependencies = [ "arrayvec", - "bitflags 2.9.1", + "bitflags 2.9.2", "boa_ast", "boa_gc", "boa_interner", @@ -2079,7 +2067,7 @@ dependencies = [ "cfg-if", "dashmap 6.1.0", "fast-float2", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "icu_normalizer 1.5.0", "indexmap 2.10.0", "intrusive-collections", @@ -2101,7 +2089,7 @@ dependencies = [ "static_assertions", "tap", "thin-vec", - "thiserror 2.0.12", + "thiserror 2.0.16", "time", ] @@ -2114,7 +2102,7 @@ dependencies = [ "boa_macros", "boa_profiler", "boa_string", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "thin-vec", ] @@ -2126,7 +2114,7 @@ checksum = "42407a3b724cfaecde8f7d4af566df4b56af32a2f11f0956f5570bb974e7f749" dependencies = [ "boa_gc", "boa_macros", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "indexmap 2.10.0", "once_cell", "phf", @@ -2142,7 +2130,7 @@ checksum = "9fd3f870829131332587f607a7ff909f1af5fc523fd1b192db55fbbdf52e8d3c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -2152,7 +2140,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cc142dac798cdc6e2dbccfddeb50f36d2523bb977a976e19bdb3ae19b740804" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "boa_ast", "boa_interner", "boa_macros", @@ -2195,9 +2183,9 @@ dependencies = [ [[package]] name = "brotli" -version = "8.0.1" +version = "8.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -2223,17 +2211,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "bstr" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" -dependencies = [ - "memchr", - "regex-automata 0.4.9", - "serde", -] - [[package]] name = "bumpalo" version = "3.19.0" @@ -2254,22 +2231,22 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.23.1" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.9.3" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" +checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2315,9 +2292,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" dependencies = [ "serde", ] @@ -2355,7 +2332,7 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -2366,9 +2343,9 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] name = "castaway" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" dependencies = [ "rustversion", ] @@ -2401,9 +2378,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -2449,9 +2426,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.40" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" dependencies = [ "clap_builder", "clap_derive", @@ -2459,9 +2436,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" dependencies = [ "anstream", "anstyle", @@ -2471,14 +2448,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.40" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" +checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2546,23 +2523,11 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "console" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" -dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "windows-sys 0.59.0", -] - [[package]] name = "const-hex" -version = "1.14.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e22e0ed40b96a48d3db274f72fd365bd78f67af39b6bbd47e8a15e1c6207ff" +checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" dependencies = [ "cfg-if", "cpufeatures", @@ -2597,12 +2562,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - [[package]] name = "convert_case" version = "0.7.1" @@ -2680,15 +2639,15 @@ dependencies = [ "crc", "digest 0.10.7", "libc", - "rand 0.9.1", + "rand 0.9.2", "regex", ] [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -2739,7 +2698,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "crossterm_winapi", "mio", "parking_lot", @@ -2832,7 +2791,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2856,7 +2815,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2867,7 +2826,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2920,7 +2879,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2983,24 +2942,24 @@ dependencies = [ [[package]] name = "derive-where" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510c292c8cf384b1a340b816a9a6cf2599eb8f566a44949024af88418000c50b" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "derive_arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3021,7 +2980,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3031,7 +2990,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3052,7 +3011,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "unicode-xid", ] @@ -3110,7 +3069,7 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.0", + "redox_users 0.5.2", "windows-sys 0.60.2", ] @@ -3151,7 +3110,7 @@ dependencies = [ "parking_lot", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.5.10", "tokio", "tracing", "uint 0.10.0", @@ -3166,7 +3125,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3183,9 +3142,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" @@ -3226,9 +3185,9 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", @@ -3248,7 +3207,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3300,12 +3259,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - [[package]] name = "enr" version = "0.13.0" @@ -3335,7 +3288,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3355,7 +3308,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3431,7 +3384,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3646,7 +3599,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3770,7 +3723,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "libc", "libgit2-sys", "log", @@ -3779,9 +3732,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "gloo-net" @@ -3863,9 +3816,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" dependencies = [ "bytes", "fnv", @@ -3882,9 +3835,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -3928,9 +3881,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", @@ -4003,10 +3956,10 @@ dependencies = [ "idna", "ipnet", "once_cell", - "rand 0.9.1", + "rand 0.9.2", "ring", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tinyvec", "tokio", "tracing", @@ -4026,11 +3979,11 @@ dependencies = [ "moka", "once_cell", "parking_lot", - "rand 0.9.1", + "rand 0.9.2", "resolv-conf", "serde", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -4168,14 +4121,14 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.26", + "h2 0.3.27", "http 0.2.12", "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -4184,20 +4137,22 @@ dependencies = [ [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", - "h2 0.4.11", + "futures-core", + "h2 0.4.12", "http 1.3.1", "http-body 1.0.1", "httparse", "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -4226,23 +4181,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http 1.3.1", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "log", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", "tower-service", - "webpki-roots 1.0.1", + "webpki-roots 1.0.2", ] [[package]] name = "hyper-util" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64 0.22.1", "bytes", @@ -4251,12 +4206,12 @@ dependencies = [ "futures-util", "http 1.3.1", "http-body 1.0.1", - "hyper 1.6.0", + "hyper 1.7.0", "ipnet", "libc", "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.0", "tokio", "tower-service", "tracing", @@ -4308,7 +4263,7 @@ dependencies = [ "potential_utf", "yoke 0.8.0", "zerofrom", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -4321,7 +4276,7 @@ dependencies = [ "litemap 0.8.0", "tinystr 0.8.1", "writeable 0.6.1", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -4387,7 +4342,7 @@ dependencies = [ "icu_properties 2.0.1", "icu_provider 2.0.0", "smallvec", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -4430,7 +4385,7 @@ dependencies = [ "icu_provider 2.0.0", "potential_utf", "zerotrie", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -4476,7 +4431,7 @@ dependencies = [ "yoke 0.8.0", "zerofrom", "zerotrie", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -4487,7 +4442,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4544,7 +4499,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4568,9 +4523,9 @@ dependencies = [ [[package]] name = "indenter" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" +checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" @@ -4591,7 +4546,7 @@ checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "serde", ] @@ -4607,7 +4562,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "inotify-sys", "libc", ] @@ -4633,15 +4588,15 @@ dependencies = [ [[package]] name = "instability" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d" +checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a" dependencies = [ "darling", "indoc", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4670,11 +4625,11 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "libc", ] @@ -4685,7 +4640,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.10", "widestring", "windows-sys 0.48.0", "winreg", @@ -4828,11 +4783,11 @@ dependencies = [ "http 1.3.1", "jsonrpsee-core", "pin-project", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-rustls 0.26.2", "tokio-util", @@ -4856,11 +4811,11 @@ dependencies = [ "jsonrpsee-types", "parking_lot", "pin-project", - "rand 0.9.1", + "rand 0.9.2", "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower", @@ -4876,16 +4831,16 @@ checksum = "6962d2bd295f75e97dd328891e58fce166894b974c1f7ce2e7597f02eeceb791" dependencies = [ "base64 0.22.1", "http-body 1.0.1", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tower", "url", @@ -4901,7 +4856,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4914,7 +4869,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -4923,7 +4878,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -4940,7 +4895,7 @@ dependencies = [ "http 1.3.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -5052,9 +5007,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.174" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libgit2-sys" @@ -5075,7 +5030,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.2", + "windows-targets 0.53.3", ] [[package]] @@ -5098,7 +5053,7 @@ dependencies = [ "multihash", "quick-protobuf", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", "zeroize", ] @@ -5116,11 +5071,11 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.4" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "libc", "redox_syscall", ] @@ -5259,7 +5214,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.4", + "hashbrown 0.15.5", ] [[package]] @@ -5268,7 +5223,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" dependencies = [ - "hashbrown 0.15.4", + "hashbrown 0.15.5", ] [[package]] @@ -5322,7 +5277,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5352,9 +5307,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" dependencies = [ "libc", ] @@ -5387,7 +5342,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5428,10 +5383,10 @@ checksum = "b8496cc523d1f94c1385dd8f0f0c2c480b2b8aeccb5b7e4485ad6365523ae376" dependencies = [ "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "metrics", "quanta", - "rand 0.9.1", + "rand 0.9.2", "rand_xoshiro", "sketches-ddsketch", ] @@ -5592,12 +5547,11 @@ dependencies = [ [[package]] name = "notify" -version = "8.0.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.1", - "filetime", + "bitflags 2.9.2", "fsevent-sys", "inotify", "kqueue", @@ -5606,7 +5560,7 @@ dependencies = [ "mio", "notify-types", "walkdir", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -5744,7 +5698,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5758,12 +5712,13 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d51b0175c49668a033fe7cc69080110d9833b291566cdf332905f3ad9c68a0" +checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" dependencies = [ "alloy-rlp", "arbitrary", + "cfg-if", "proptest", "ruint", "serde", @@ -5797,9 +5752,9 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "op-alloy-consensus" -version = "0.18.9" +version = "0.18.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8719d9b783b29cfa1cf8d591b894805786b9ab4940adc700a57fd0d5b721cf5" +checksum = "0c88d2940558fd69f8f07b3cbd7bb3c02fc7d31159c1a7ba9deede50e7881024" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5810,14 +5765,14 @@ dependencies = [ "derive_more", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "op-alloy-rpc-types-engine" -version = "0.18.9" +version = "0.18.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a4559d84f079b3fdfd01e4ee0bb118025e92105fbb89736f5d77ab3ca261698" +checksum = "b2b4f977b51e9e177e69a4d241ab7c4b439df9a3a5a998c000ae01be724de271" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5829,17 +5784,16 @@ dependencies = [ "ethereum_ssz_derive", "op-alloy-consensus", "snap", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "op-revm" -version = "7.0.1" +version = "9.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b97d2b54651fcd2955b454e86b2336c031e17925a127f4c44e2b63b2eeda923" +checksum = "f6889cdfed74c6c924a54b2357982fce232e06473c6bb73b9a0c71a9151bfabd" dependencies = [ "auto_impl", - "once_cell", "revm", "serde", ] @@ -5934,7 +5888,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5989,7 +5943,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", - "thiserror 2.0.12", + "thiserror 2.0.16", "ucd-trie", ] @@ -6034,7 +5988,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6063,7 +6017,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6143,7 +6097,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" dependencies = [ - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -6173,12 +6127,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.35" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6229,14 +6183,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -6247,7 +6201,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "chrono", "flate2", "hex", @@ -6261,7 +6215,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "chrono", "hex", ] @@ -6274,10 +6228,10 @@ checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.1", + "bitflags 2.9.2", "lazy_static", "num-traits", - "rand 0.9.1", + "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift", "regex-syntax 0.8.5", @@ -6304,7 +6258,7 @@ checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6313,7 +6267,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "memchr", "unicase", ] @@ -6360,9 +6314,9 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.28", - "socket2", - "thiserror 2.0.12", + "rustls 0.23.31", + "socket2 0.5.10", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -6377,13 +6331,13 @@ dependencies = [ "bytes", "getrandom 0.3.3", "lru-slab", - "rand 0.9.1", + "rand 0.9.2", "ring", "rustc-hash 2.1.1", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-pki-types", "slab", - "thiserror 2.0.12", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -6398,7 +6352,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.5.10", "tracing", "windows-sys 0.59.0", ] @@ -6438,9 +6392,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -6516,7 +6470,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cassowary", "compact_str", "crossterm", @@ -6537,14 +6491,14 @@ version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -6552,9 +6506,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -6568,11 +6522,11 @@ checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" [[package]] name = "redox_syscall" -version = "0.5.13" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] @@ -6588,13 +6542,13 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -6614,7 +6568,7 @@ checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6669,19 +6623,19 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "regress" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ef7fa9ed0256d64a688a3747d0fef7a88851c18a5e1d57f115f38ec2e09366" +checksum = "145bb27393fe455dd64d6cbc8d059adfa392590a45eadf079c01b11857e7b010" dependencies = [ - "hashbrown 0.15.4", + "hashbrown 0.15.5", "memchr", ] [[package]] name = "reqwest" -version = "0.12.22" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64 0.22.1", "bytes", @@ -6691,7 +6645,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-util", "js-sys", @@ -6699,7 +6653,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "serde", @@ -6717,7 +6671,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.1", + "webpki-roots 1.0.2", ] [[package]] @@ -6728,8 +6682,8 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-rpc-types", "aquamarine", @@ -6774,8 +6728,8 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6798,8 +6752,8 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6810,7 +6764,7 @@ dependencies = [ "metrics", "parking_lot", "pin-project", - "rand 0.9.1", + "rand 0.9.2", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", @@ -6829,8 +6783,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6849,8 +6803,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-genesis", "clap", @@ -6863,8 +6817,8 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "ahash", "alloy-chains", @@ -6901,6 +6855,7 @@ dependencies = [ "reth-discv5", "reth-downloaders", "reth-ecies", + "reth-era", "reth-era-downloader", "reth-era-utils", "reth-eth-wire", @@ -6922,6 +6877,7 @@ dependencies = [ "reth-provider", "reth-prune", "reth-prune-types", + "reth-revm", "reth-stages", "reth-stages-types", "reth-static-file", @@ -6941,8 +6897,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "reth-tasks", "tokio", @@ -6951,8 +6907,8 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6963,14 +6919,14 @@ dependencies = [ "reth-fs-util", "secp256k1 0.30.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tikv-jemallocator", ] [[package]] name = "reth-codecs" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6989,19 +6945,19 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "reth-config" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "eyre", "humantime-serde", @@ -7015,21 +6971,21 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-primitives", "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-consensus-common" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7040,8 +6996,8 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7059,13 +7015,14 @@ dependencies = [ "reth-tracing", "ringbuffer", "serde", + "serde_json", "tokio", ] [[package]] name = "reth-db" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "derive_more", @@ -7082,16 +7039,16 @@ dependencies = [ "reth-storage-errors", "reth-tracing", "rustc-hash 2.1.1", - "strum 0.27.1", + "strum 0.27.2", "sysinfo", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-db-api" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7118,8 +7075,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7131,6 +7088,7 @@ dependencies = [ "reth-config", "reth-db-api", "reth-etl", + "reth-execution-errors", "reth-fs-util", "reth-node-types", "reth-primitives-traits", @@ -7141,14 +7099,14 @@ dependencies = [ "reth-trie-db", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-db-models" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7162,8 +7120,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7180,7 +7138,7 @@ dependencies = [ "schnellru", "secp256k1 0.30.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -7188,8 +7146,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7199,21 +7157,21 @@ dependencies = [ "futures", "itertools 0.14.0", "metrics", - "rand 0.9.1", + "rand 0.9.2", "reth-chainspec", "reth-ethereum-forks", "reth-metrics", "reth-network-peers", "secp256k1 0.30.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "reth-dns-discovery" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "data-encoding", @@ -7228,7 +7186,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -7236,8 +7194,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7257,7 +7215,7 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "reth-tasks", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -7266,8 +7224,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "aes", "alloy-primitives", @@ -7287,7 +7245,7 @@ dependencies = [ "secp256k1 0.30.0", "sha2 0.10.9", "sha3", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -7297,8 +7255,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7319,8 +7277,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7331,21 +7289,21 @@ dependencies = [ "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", "reth-trie-common", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", ] [[package]] name = "reth-engine-service" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "futures", "pin-project", @@ -7362,13 +7320,13 @@ dependencies = [ "reth-prune", "reth-stages-api", "reth-tasks", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-engine-tree" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7378,7 +7336,6 @@ dependencies = [ "alloy-rpc-types-engine", "derive_more", "futures", - "itertools 0.14.0", "metrics", "mini-moka", "parking_lot", @@ -7404,18 +7361,19 @@ dependencies = [ "reth-trie-db", "reth-trie-parallel", "reth-trie-sparse", + "reth-trie-sparse-parallel", "revm", "revm-primitives", "schnellru", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "reth-engine-util" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -7425,6 +7383,7 @@ dependencies = [ "pin-project", "reth-chainspec", "reth-engine-primitives", + "reth-engine-tree", "reth-errors", "reth-evm", "reth-fs-util", @@ -7441,8 +7400,8 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7452,13 +7411,13 @@ dependencies = [ "ethereum_ssz_derive", "reth-ethereum-primitives", "snap", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-era-downloader" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "bytes", @@ -7472,8 +7431,8 @@ dependencies = [ [[package]] name = "reth-era-utils" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7496,19 +7455,19 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "reth-consensus", "reth-execution-errors", "reth-storage-errors", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-eth-wire" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7527,7 +7486,7 @@ dependencies = [ "reth-primitives-traits", "serde", "snap", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -7536,8 +7495,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7555,72 +7514,34 @@ dependencies = [ "reth-ethereum-primitives", "reth-primitives-traits", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-ethereum-cli" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types", - "backon", "clap", "eyre", - "futures", - "reth-basic-payload-builder", "reth-chainspec", "reth-cli", "reth-cli-commands", "reth-cli-runner", - "reth-cli-util", - "reth-config", - "reth-consensus", "reth-db", - "reth-db-api", - "reth-downloaders", - "reth-errors", - "reth-ethereum-payload-builder", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-exex", - "reth-fs-util", - "reth-network", - "reth-network-api", - "reth-network-p2p", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-ethereum", - "reth-node-events", "reth-node-metrics", - "reth-payload-builder", - "reth-primitives-traits", - "reth-provider", - "reth-prune", - "reth-revm", - "reth-stages", - "reth-static-file", - "reth-tasks", "reth-tracing", - "reth-transaction-pool", - "reth-trie", - "reth-trie-db", - "serde_json", - "similar-asserts", - "tokio", "tracing", ] [[package]] name = "reth-ethereum-consensus" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7635,8 +7556,8 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7648,13 +7569,13 @@ dependencies = [ "reth-primitives-traits", "serde", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-ethereum-forks" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -7667,8 +7588,8 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7694,8 +7615,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7712,8 +7633,8 @@ dependencies = [ [[package]] name = "reth-etl" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "rayon", "reth-db-api", @@ -7722,8 +7643,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7745,13 +7666,14 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-primitives", + "alloy-rpc-types-engine", "derive_more", "reth-chainspec", "reth-ethereum-forks", @@ -7759,26 +7681,27 @@ dependencies = [ "reth-evm", "reth-execution-types", "reth-primitives-traits", + "reth-storage-errors", "revm", ] [[package]] name = "reth-execution-errors" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-evm", "alloy-primitives", "alloy-rlp", "nybbles", "reth-storage-errors", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-execution-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7795,8 +7718,8 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7825,7 +7748,7 @@ dependencies = [ "reth-tasks", "reth-tracing", "rmp-serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -7833,8 +7756,8 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7847,18 +7770,18 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-invalid-block-hooks" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7885,8 +7808,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "bytes", "futures", @@ -7895,7 +7818,7 @@ dependencies = [ "jsonrpsee", "pin-project", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -7905,10 +7828,10 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "byteorder", "dashmap 6.1.0", "derive_more", @@ -7916,14 +7839,14 @@ dependencies = [ "parking_lot", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-mdbx-sys" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "bindgen 0.70.1", "cc", @@ -7931,8 +7854,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "futures", "metrics", @@ -7943,30 +7866,30 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-net-nat" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "futures-util", "if-addrs", "reqwest", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "reth-network" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7983,7 +7906,7 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.8.5", - "rand 0.9.1", + "rand 0.9.2", "reth-chainspec", "reth-consensus", "reth-discv4", @@ -8011,7 +7934,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -8020,11 +7943,13 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ + "alloy-consensus", "alloy-primitives", "alloy-rpc-types-admin", + "alloy-rpc-types-eth", "auto_impl", "derive_more", "enr", @@ -8036,15 +7961,15 @@ dependencies = [ "reth-network-types", "reth-tokio-util", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", ] [[package]] name = "reth-network-p2p" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8065,23 +7990,23 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "alloy-rlp", "enr", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "url", ] [[package]] name = "reth-network-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -8094,8 +8019,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "anyhow", "bincode", @@ -8104,15 +8029,15 @@ dependencies = [ "memmap2", "reth-fs-util", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", "zstd", ] [[package]] name = "reth-node-api" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -8135,8 +8060,8 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8161,6 +8086,7 @@ dependencies = [ "reth-db-common", "reth-downloaders", "reth-engine-local", + "reth-engine-primitives", "reth-engine-service", "reth-engine-tree", "reth-engine-util", @@ -8173,9 +8099,11 @@ dependencies = [ "reth-network-p2p", "reth-node-api", "reth-node-core", + "reth-node-ethstats", "reth-node-events", "reth-node-metrics", "reth-payload-builder", + "reth-primitives-traits", "reth-provider", "reth-prune", "reth-rpc", @@ -8199,8 +8127,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8212,7 +8140,7 @@ dependencies = [ "eyre", "futures", "humantime", - "rand 0.9.1", + "rand 0.9.2", "reth-chainspec", "reth-cli-util", "reth-config", @@ -8220,6 +8148,7 @@ dependencies = [ "reth-db", "reth-discv4", "reth-discv5", + "reth-engine-local", "reth-engine-primitives", "reth-ethereum-forks", "reth-net-nat", @@ -8239,8 +8168,8 @@ dependencies = [ "secp256k1 0.30.0", "serde", "shellexpand", - "strum 0.27.1", - "thiserror 2.0.12", + "strum 0.27.2", + "thiserror 2.0.16", "toml", "tracing", "url", @@ -8250,15 +8179,16 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", + "alloy-network", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "eyre", "reth-chainspec", - "reth-consensus", + "reth-engine-local", "reth-engine-primitives", "reth-ethereum-consensus", "reth-ethereum-engine-primitives", @@ -8276,18 +8206,43 @@ dependencies = [ "reth-rpc", "reth-rpc-api", "reth-rpc-builder", + "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tracing", "reth-transaction-pool", - "reth-trie-db", "revm", + "tokio", +] + +[[package]] +name = "reth-node-ethstats" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" +dependencies = [ + "alloy-consensus", + "alloy-primitives", + "chrono", + "futures-util", + "reth-chain-state", + "reth-network-api", + "reth-primitives-traits", + "reth-storage-api", + "reth-transaction-pool", + "serde", + "serde_json", + "thiserror 2.0.16", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tracing", + "url", ] [[package]] name = "reth-node-events" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8310,8 +8265,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "eyre", "http 1.3.1", @@ -8331,21 +8286,20 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "reth-chainspec", "reth-db-api", "reth-engine-primitives", "reth-payload-primitives", "reth-primitives-traits", - "reth-trie-db", ] [[package]] name = "reth-optimism-primitives" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8363,8 +8317,8 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-rpc-types", @@ -8383,8 +8337,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "pin-project", "reth-payload-primitives", @@ -8395,8 +8349,8 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8408,14 +8362,14 @@ dependencies = [ "reth-errors", "reth-primitives-traits", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", ] [[package]] name = "reth-payload-validator" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8424,8 +8378,8 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "c-kzg", @@ -8438,8 +8392,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8466,13 +8420,13 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-provider" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8509,15 +8463,15 @@ dependencies = [ "reth-trie-db", "revm-database", "revm-state", - "strum 0.27.1", + "strum 0.27.2", "tokio", "tracing", ] [[package]] name = "reth-prune" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8537,15 +8491,15 @@ dependencies = [ "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "reth-prune-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "arbitrary", @@ -8553,13 +8507,13 @@ dependencies = [ "modular-bitfield", "reth-codecs", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-ress-protocol" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8577,8 +8531,8 @@ dependencies = [ [[package]] name = "reth-ress-provider" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8604,8 +8558,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -8617,8 +8571,8 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -8645,7 +8599,8 @@ dependencies = [ "futures", "http 1.3.1", "http-body 1.0.1", - "hyper 1.6.0", + "hyper 1.7.0", + "itertools 0.14.0", "jsonrpsee", "jsonrpsee-types", "jsonwebtoken", @@ -8656,7 +8611,6 @@ dependencies = [ "reth-consensus", "reth-engine-primitives", "reth-errors", - "reth-ethereum-primitives", "reth-evm", "reth-evm-ethereum", "reth-execution-types", @@ -8683,7 +8637,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower", @@ -8693,8 +8647,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-genesis", @@ -8721,8 +8675,8 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-network", "alloy-provider", @@ -8749,7 +8703,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-util", "tower", @@ -8759,25 +8713,27 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-json-rpc", "alloy-network", "alloy-primitives", "alloy-rpc-types-eth", + "alloy-signer", "jsonrpsee-types", + "reth-ethereum-primitives", "reth-evm", "reth-primitives-traits", "revm-context", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-rpc-engine-api" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8799,19 +8755,20 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "reth-rpc-eth-api" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", + "alloy-evm", "alloy-json-rpc", "alloy-network", "alloy-primitives", @@ -8832,7 +8789,6 @@ dependencies = [ "reth-evm", "reth-network-api", "reth-node-api", - "reth-payload-builder", "reth-primitives-traits", "reth-revm", "reth-rpc-convert", @@ -8850,11 +8806,13 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-evm", + "alloy-network", "alloy-primitives", "alloy-rpc-types-eth", "alloy-sol-types", @@ -8864,7 +8822,7 @@ dependencies = [ "jsonrpsee-core", "jsonrpsee-types", "metrics", - "rand 0.9.1", + "rand 0.9.2", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -8884,7 +8842,7 @@ dependencies = [ "revm-inspectors", "schnellru", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -8892,8 +8850,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-rpc-types-engine", "http 1.3.1", @@ -8906,8 +8864,8 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8917,19 +8875,18 @@ dependencies = [ "reth-errors", "reth-network-api", "serde", - "strum 0.27.1", + "strum 0.27.2", ] [[package]] name = "reth-stages" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "bincode", - "blake3", "eyre", "futures-util", "itertools 0.14.0", @@ -8960,16 +8917,15 @@ dependencies = [ "reth-storage-errors", "reth-trie", "reth-trie-db", - "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "reth-stages-api" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8988,15 +8944,15 @@ dependencies = [ "reth-static-file", "reth-static-file-types", "reth-tokio-util", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "reth-stages-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "arbitrary", @@ -9009,8 +8965,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "parking_lot", @@ -9029,20 +8985,20 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "clap", "derive_more", "serde", - "strum 0.27.1", + "strum 0.27.2", ] [[package]] name = "reth-storage-api" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9059,14 +9015,13 @@ dependencies = [ "reth-stages-types", "reth-storage-errors", "reth-trie-common", - "reth-trie-db", "revm-database", ] [[package]] name = "reth-storage-errors" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9076,13 +9031,13 @@ dependencies = [ "reth-prune-types", "reth-static-file-types", "revm-database-interface", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-tasks" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "auto_impl", "dyn-clone", @@ -9091,7 +9046,7 @@ dependencies = [ "pin-project", "rayon", "reth-metrics", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", "tracing-futures", @@ -9099,8 +9054,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "tokio", "tokio-stream", @@ -9109,8 +9064,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "clap", "eyre", @@ -9124,8 +9079,8 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9133,11 +9088,12 @@ dependencies = [ "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.1", + "bitflags 2.9.2", "futures-util", "metrics", "parking_lot", - "rand 0.9.1", + "pin-project", + "rand 0.9.2", "reth-chain-state", "reth-chainspec", "reth-eth-wire-types", @@ -9148,13 +9104,14 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "reth-tasks", - "revm-interpreter", + "revm-interpreter 23.0.2", "revm-primitives", "rustc-hash 2.1.1", "schnellru", "serde", + "serde_json", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -9162,8 +9119,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9187,8 +9144,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -9213,8 +9170,8 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "reth-db-api", @@ -9226,8 +9183,8 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9244,21 +9201,22 @@ dependencies = [ "reth-trie-common", "reth-trie-db", "reth-trie-sparse", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie", "auto_impl", "metrics", + "rayon", "reth-execution-errors", "reth-metrics", "reth-primitives-traits", @@ -9267,10 +9225,28 @@ dependencies = [ "tracing", ] +[[package]] +name = "reth-trie-sparse-parallel" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "metrics", + "rayon", + "reth-execution-errors", + "reth-metrics", + "reth-trie-common", + "reth-trie-sparse", + "smallvec", + "tracing", +] + [[package]] name = "reth-zstd-compressors" -version = "1.5.0" -source = "git+https://github.com/sprites0/reth?rev=fc754e5983f055365325dc9a04632d5ba2c4a8bc#fc754e5983f055365325dc9a04632d5ba2c4a8bc" +version = "1.6.0" +source = "git+https://github.com/sprites0/reth?rev=57f199982fe5911e11be126451b4ea6c1b0a5f4a#57f199982fe5911e11be126451b4ea6c1b0a5f4a" dependencies = [ "zstd", ] @@ -9358,7 +9334,7 @@ dependencies = [ "serde", "serde_json", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", "tikv-jemalloc-ctl", "tikv-jemallocator", "time", @@ -9370,18 +9346,18 @@ dependencies = [ [[package]] name = "revm" -version = "26.0.1" +version = "28.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2a493c73054a0f6635bad6e840cdbef34838e6e6186974833c901dff7dd709" +checksum = "ee5d3f7d031e90ab47c7488061bdc4875abc4e9dcea6c18f5dee09732d0436fb" dependencies = [ "revm-bytecode", "revm-context", - "revm-context-interface", + "revm-context-interface 10.0.1", "revm-database", "revm-database-interface", "revm-handler", "revm-inspector", - "revm-interpreter", + "revm-interpreter 25.0.1", "revm-precompile", "revm-primitives", "revm-state", @@ -9389,12 +9365,11 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "5.0.0" +version = "6.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b395ee2212d44fcde20e9425916fee685b5440c3f8e01fabae8b0f07a2fd7f08" +checksum = "1d800e6c2119457ded5b0af71634eb2468040bf97de468eee5a730272a106da0" dependencies = [ "bitvec", - "once_cell", "phf", "revm-primitives", "serde", @@ -9402,14 +9377,15 @@ dependencies = [ [[package]] name = "revm-context" -version = "7.0.1" +version = "9.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b97b69d05651509b809eb7215a6563dc64be76a941666c40aabe597ab544d38" +checksum = "5c63485b4d1b0e67f342f9a8c0e9f78b6b5f1750863a39bdf6ceabdbaaf4aed1" dependencies = [ + "bitvec", "cfg-if", "derive-where", "revm-bytecode", - "revm-context-interface", + "revm-context-interface 10.0.1", "revm-database-interface", "revm-primitives", "revm-state", @@ -9418,9 +9394,25 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f8f4f06a1c43bf8e6148509aa06a6c4d28421541944842b9b11ea1a6e53468f" +checksum = "a303a93102fceccec628265efd550ce49f2817b38ac3a492c53f7d524f18a1ca" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "either", + "revm-database-interface", + "revm-primitives", + "revm-state", + "serde", +] + +[[package]] +name = "revm-context-interface" +version = "10.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "550cb8b9465e00bdb0a384922b69f864c5bcc228bed19c8ecbfa69fff2256382" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -9434,9 +9426,9 @@ dependencies = [ [[package]] name = "revm-database" -version = "6.0.0" +version = "7.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763eb5867a109a85f8e47f548b9d88c9143c0e443ec056742052f059fa32f4f1" +checksum = "40000c7d917c865f6c232a78581b78e70c43f52db17282bd1b52d4f0565bc8a2" dependencies = [ "alloy-eips", "revm-bytecode", @@ -9448,11 +9440,12 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "6.0.0" +version = "7.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5ecd19a5b75b862841113b9abdd864ad4b22e633810e11e6d620e8207e361d" +checksum = "f4ccea7a168cba1196b1e57dd3e22c36047208c135f600f8e58cbe7d49957dba" dependencies = [ "auto_impl", + "either", "revm-primitives", "revm-state", "serde", @@ -9460,17 +9453,17 @@ dependencies = [ [[package]] name = "revm-handler" -version = "7.0.1" +version = "9.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b61f992beaa7a5fc3f5fcf79f1093624fa1557dc42d36baa42114c2d836b59" +checksum = "7cb09d07e6799823ce5a344f1604236b53fe1a92bacd7122c0b16286f92254c2" dependencies = [ "auto_impl", "derive-where", "revm-bytecode", "revm-context", - "revm-context-interface", + "revm-context-interface 10.0.1", "revm-database-interface", - "revm-interpreter", + "revm-interpreter 25.0.1", "revm-precompile", "revm-primitives", "revm-state", @@ -9479,16 +9472,16 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "7.0.1" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7e4400a109a2264f4bf290888ac6d02432b6d5d070492b9dcf134b0c7d51354" +checksum = "2770c0d7e9f4f23660dc0b8b954b7a1eee8989ec97f936ebce366c78b6d7b915" dependencies = [ "auto_impl", "either", "revm-context", "revm-database-interface", "revm-handler", - "revm-interpreter", + "revm-interpreter 25.0.1", "revm-primitives", "revm-state", "serde", @@ -9497,9 +9490,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.25.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aabdffc06bdb434d9163e2d63b6fae843559afd300ea3fbeb113b8a0d8ec728" +checksum = "9d3f54151c26870f50a3d7e8688e30a0f3578dd57bc69450caa1df11a7713906" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -9512,39 +9505,51 @@ dependencies = [ "revm", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "revm-interpreter" -version = "22.0.1" +version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2481ef059708772cec0ce6bc4c84b796a40111612efb73b01adf1caed7ff9ac" +checksum = "d95c4a9a1662d10b689b66b536ddc2eb1e89f5debfcabc1a2d7b8417a2fa47cd" dependencies = [ "revm-bytecode", - "revm-context-interface", + "revm-context-interface 8.0.1", + "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 = "23.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d581e78c8f132832bd00854fb5bf37efd95a52582003da35c25cd2cbfc63849" +checksum = "7f7bb5e8b92891c5ac9dd8dae157bd1d90aab01973ad4f99d4135d507facc3e7" dependencies = [ "ark-bls12-381", "ark-bn254", "ark-ec", "ark-ff 0.5.0", "ark-serialize 0.5.0", + "arrayref", "aurora-engine-modexp", "blst", "c-kzg", "cfg-if", "k256", "libsecp256k1", - "once_cell", "p256 0.13.2", "revm-primitives", "ripemd", @@ -9555,22 +9560,23 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "20.0.0" +version = "20.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52cdf897b3418f2ee05bcade64985e5faed2dbaa349b2b5f27d3d6bfd10fff2a" +checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" dependencies = [ "alloy-primitives", "num_enum", + "once_cell", "serde", ] [[package]] name = "revm-state" -version = "6.0.0" +version = "7.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6274928dd78f907103740b10800d3c0db6caeca391e75a159c168a1e5c78f8" +checksum = "f9d7f39ea56df3bfbb3c81c99b1f028d26f205b6004156baffbf1a4f84b46cfa" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "revm-bytecode", "revm-primitives", "serde", @@ -9706,9 +9712,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11256b5fe8c68f56ac6f39ef0720e592f33d2367a4782740d9c9142e889c7fb4" +checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" dependencies = [ "alloy-rlp", "arbitrary", @@ -9724,7 +9730,7 @@ dependencies = [ "primitive-types", "proptest", "rand 0.8.5", - "rand 0.9.1", + "rand 0.9.2", "rlp", "ruint-macro", "serde", @@ -9740,9 +9746,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -9789,7 +9795,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "errno", "libc", "linux-raw-sys 0.4.15", @@ -9798,15 +9804,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "errno", "libc", "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -9823,16 +9829,16 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.28" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "aws-lc-rs", "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.3", + "rustls-webpki 0.103.4", "subtle", "zeroize", ] @@ -9858,7 +9864,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.2.0", + "security-framework 3.3.0", ] [[package]] @@ -9900,11 +9906,11 @@ dependencies = [ "jni", "log", "once_cell", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-platform-verifier-android", - "rustls-webpki 0.103.3", - "security-framework 3.2.0", + "rustls-webpki 0.103.4", + "security-framework 3.3.0", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", @@ -9928,9 +9934,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.3" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "aws-lc-rs", "ring", @@ -9940,9 +9946,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" @@ -10000,9 +10006,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1375ba8ef45a6f15d83fa8748f1079428295d403d6ea991d09ab100155fbc06d" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" dependencies = [ "dyn-clone", "ref-cast", @@ -10091,7 +10097,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ "bitcoin_hashes", - "rand 0.9.1", + "rand 0.9.2", "secp256k1-sys 0.11.0", ] @@ -10119,7 +10125,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -10128,11 +10134,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -10205,14 +10211,14 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "indexmap 2.10.0", "itoa", @@ -10254,7 +10260,7 @@ dependencies = [ "indexmap 1.9.3", "indexmap 2.10.0", "schemars 0.9.0", - "schemars 1.0.3", + "schemars 1.0.4", "serde", "serde_derive", "serde_json", @@ -10271,7 +10277,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -10386,9 +10392,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.5" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -10413,27 +10419,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "similar" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" -dependencies = [ - "bstr", - "unicode-segmentation", -] - -[[package]] -name = "similar-asserts" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b441962c817e33508847a22bd82f03a30cff43642dc2fae8b050566121eb9a" -dependencies = [ - "console", - "serde", - "similar", -] - [[package]] name = "simple_asn1" version = "0.6.3" @@ -10442,7 +10427,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.12", + "thiserror 2.0.16", "time", ] @@ -10475,9 +10460,9 @@ checksum = "c1e9a774a6c28142ac54bb25d25562e6bcf957493a184f15ad4eebccb23e410a" [[package]] name = "slab" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" @@ -10505,6 +10490,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "soketto" version = "0.8.1" @@ -10576,11 +10571,11 @@ dependencies = [ [[package]] name = "strum" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ - "strum_macros 0.27.1", + "strum_macros 0.27.2", ] [[package]] @@ -10593,20 +10588,19 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "strum_macros" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck", "proc-macro2", "quote", - "rustversion", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -10628,9 +10622,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.104" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -10639,14 +10633,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ac494e7266fcdd2ad80bf4375d55d27a117ea5c866c26d0e97fe5b3caeeb75" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -10666,7 +10660,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -10707,15 +10701,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.7", - "windows-sys 0.59.0", + "rustix 1.0.8", + "windows-sys 0.60.2", ] [[package]] @@ -10735,11 +10729,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.16", ] [[package]] @@ -10750,18 +10744,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -10873,14 +10867,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -10893,9 +10887,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.46.0" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1140bb80481756a8cbe10541f37433b459c5aa1e727b4c020fbfebdc25bf3ec4" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", @@ -10906,9 +10900,9 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -10919,7 +10913,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -10938,7 +10932,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.28", + "rustls 0.23.31", "tokio", ] @@ -10962,7 +10956,8 @@ checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "rustls 0.23.28", + "rustls 0.23.31", + "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", @@ -10972,9 +10967,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -11054,7 +11049,7 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.9.1", + "bitflags 2.9.2", "bytes", "futures-core", "futures-util", @@ -11121,7 +11116,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11140,8 +11135,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "futures", - "futures-task", "pin-project", "tracing", ] @@ -11242,7 +11235,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11278,11 +11271,11 @@ dependencies = [ "http 1.3.1", "httparse", "log", - "rand 0.9.1", - "rustls 0.23.28", + "rand 0.9.2", + "rustls 0.23.31", "rustls-pki-types", "sha1", - "thiserror 2.0.12", + "thiserror 2.0.16", "utf-8", ] @@ -11405,27 +11398,27 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "3.0.12" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f0fde9bc91026e381155f8c67cb354bcd35260b2f4a29bcc84639f762760c39" +checksum = "00432f493971db5d8e47a65aeb3b02f8226b9b11f1450ff86bb772776ebadd70" dependencies = [ "base64 0.22.1", "flate2", "log", "percent-encoding", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-pemfile 2.2.0", "rustls-pki-types", "ureq-proto", "utf-8", - "webpki-roots 0.26.11", + "webpki-roots 1.0.2", ] [[package]] name = "ureq-proto" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59db78ad1923f2b1be62b6da81fe80b173605ca0d57f85da2e005382adf693f7" +checksum = "c5b6cabebbecc4c45189ab06b52f956206cea7d8c8a20851c35a85cb169224cc" dependencies = [ "base64 0.22.1", "http 1.3.1", @@ -11477,9 +11470,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" dependencies = [ "getrandom 0.3.3", "js-sys", @@ -11553,7 +11546,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11627,7 +11620,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-shared", ] @@ -11662,7 +11655,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -11729,14 +11722,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.1", + "webpki-root-certs 1.0.2", ] [[package]] name = "webpki-root-certs" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86138b15b2b7d561bc4469e77027b8dd005a43dc502e9031d1f5afc8ce1f280e" +checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" dependencies = [ "rustls-pki-types", ] @@ -11747,14 +11740,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.1", + "webpki-roots 1.0.2", ] [[package]] name = "webpki-roots" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8782dd5a41a24eed3a4f40b606249b3e236ca61adf1f25ea4d45c73de122b502" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -11795,11 +11788,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -11907,7 +11900,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11918,7 +11911,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11929,7 +11922,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11940,7 +11933,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11951,7 +11944,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11962,7 +11955,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12069,7 +12062,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.2", + "windows-targets 0.53.3", ] [[package]] @@ -12120,10 +12113,11 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.2" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -12325,9 +12319,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] @@ -12348,7 +12342,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] @@ -12382,7 +12376,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper 0.6.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -12404,7 +12398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "rustix 1.0.7", + "rustix 1.0.8", ] [[package]] @@ -12451,7 +12445,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -12463,7 +12457,7 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -12484,7 +12478,7 @@ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12504,7 +12498,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -12525,7 +12519,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12552,9 +12546,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke 0.8.0", "zerofrom", @@ -12569,7 +12563,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12580,7 +12574,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 833905ed6..9d133f5ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,86 +25,86 @@ lto = "fat" codegen-units = 1 [dependencies] -reth = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-cli = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-cli-commands = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-basic-payload-builder = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-db = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-db-api = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-chainspec = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-cli-util = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-discv4 = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-engine-primitives = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-ethereum-forks = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-ethereum-payload-builder = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-ethereum-primitives = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-eth-wire = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-eth-wire-types = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-evm = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-evm-ethereum = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-node-core = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-revm = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-network = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-network-p2p = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-network-api = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-node-ethereum = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-network-peers = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-payload-primitives = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-primitives = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-primitives-traits = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-provider = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc", features = ["test-utils"] } -reth-rpc = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-rpc-eth-api = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-rpc-engine-api = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-tracing = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-trie-common = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-trie-db = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-codecs = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-transaction-pool = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -reth-stages-types = { git = "https://github.com/sprites0/reth", rev = "fc754e5983f055365325dc9a04632d5ba2c4a8bc" } -revm = { version = "26.0.1" } +reth = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-cli = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-cli-commands = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-basic-payload-builder = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-db = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-db-api = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-chainspec = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-cli-util = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-discv4 = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-engine-primitives = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-ethereum-forks = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-ethereum-payload-builder = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-ethereum-primitives = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-eth-wire = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-eth-wire-types = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-evm = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-evm-ethereum = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-node-core = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-revm = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-network = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-network-p2p = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-network-api = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-node-ethereum = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-network-peers = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-payload-primitives = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-primitives = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-primitives-traits = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-provider = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a", features = ["test-utils"] } +reth-rpc = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-rpc-eth-api = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-rpc-engine-api = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-tracing = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-trie-common = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-trie-db = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-codecs = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-transaction-pool = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +reth-stages-types = { git = "https://github.com/sprites0/reth", rev = "57f199982fe5911e11be126451b4ea6c1b0a5f4a" } +revm = { version = "28.0.1", default-features = false } # alloy dependencies -alloy-genesis = "1.0.13" -alloy-consensus = { version = "1.0.13", features = ["serde"] } -alloy-chains = "0.2.0" -alloy-eips = "1.0.13" -alloy-evm = "0.12" -alloy-json-abi = { version = "1.0.0", default-features = false } -alloy-json-rpc = { version = "1.0.13", default-features = false } -alloy-dyn-abi = "1.2.0" -alloy-network = "1.0.13" -alloy-primitives = { version = "1.2.0", default-features = false, features = ["map-foldhash"] } +alloy-genesis = { version = "1.0.23", default-features = false } +alloy-consensus = { version = "1.0.23", default-features = false } +alloy-chains = { version = "0.2.5", default-features = false } +alloy-eips = { version = "1.0.23", default-features = false } +alloy-evm = { version = "0.18.2", default-features = false } +alloy-json-abi = { version = "1.3.1", default-features = false } +alloy-json-rpc = { version = "1.0.23", default-features = false } +alloy-dyn-abi = "1.3.1" +alloy-network = { version = "1.0.23", default-features = false } +alloy-primitives = { version = "1.3.1", default-features = false, features = ["map-foldhash"] } alloy-rlp = { version = "0.3.10", default-features = false, features = ["core-net"] } -alloy-rpc-types = { version = "1.0.13", features = ["engine"] } -alloy-rpc-types-eth = "1.0.13" -alloy-rpc-types-engine = "1.0.13" -alloy-signer = "1.0.13" -alloy-sol-macro = "1.2.0" -alloy-sol-types = { version = "1.2.0", default-features = false } +alloy-rpc-types = { version = "1.0.23", features = ["eth"], default-features = false } +alloy-rpc-types-eth = { version = "1.0.23", default-features = false } +alloy-rpc-types-engine = { version = "1.0.23", default-features = false } +alloy-signer = { version = "1.0.23", default-features = false } +alloy-sol-macro = "1.3.1" +alloy-sol-types = { version = "1.3.1", default-features = false } jsonrpsee = "0.25.1" -jsonrpsee-core = { version = "0.25.1" } +jsonrpsee-core = "0.25.1" jsonrpsee-types = "0.25.1" # misc dependencies auto_impl = "1" -async-trait = "0.1" -bytes = "1.5" +async-trait = "0.1.68" +bytes = { version = "1.5", default-features = false } clap = { version = "4", features = ["derive"] } cfg-if = { version = "1.0", default-features = false } derive_more = { version = "2", default-features = false, features = ["full"] } eyre = "0.6" futures = "0.3" lazy_static = "1.4.0" -once_cell = { version = "1.19", default-features = false, features = ["alloc"] } +once_cell = { version = "1.19", default-features = false, features = ["critical-section"] } parking_lot = "0.12" serde = { version = "1.0", features = ["derive"], default-features = false } -serde_json = "1.0" +serde_json = { version = "1.0", default-features = false, features = ["alloc"] } thiserror = { version = "2.0.0", default-features = false } tokio = { version = "1.44.2", features = ["full"] } -tokio-stream = "0.1" -tracing = "0.1" +tokio-stream = "0.1.11" +tracing = { version = "0.1.0", default-features = false } rmp-serde = "1.3" lz4_flex = "0.11" ureq = "3.0.12" diff --git a/src/call_forwarder.rs b/src/call_forwarder.rs index 86be70d9e..a1c3964fa 100644 --- a/src/call_forwarder.rs +++ b/src/call_forwarder.rs @@ -1,8 +1,8 @@ use alloy_eips::BlockId; +use alloy_json_rpc::RpcObject; use alloy_primitives::{Bytes, U256}; use alloy_rpc_types_eth::{ state::{EvmOverrides, StateOverride}, - transaction::TransactionRequest, BlockOverrides, }; use jsonrpsee::{ @@ -12,16 +12,17 @@ use jsonrpsee::{ types::{error::INTERNAL_ERROR_CODE, ErrorObject}, }; use jsonrpsee_core::{async_trait, client::ClientT, ClientError, RpcResult}; -use reth_rpc_eth_api::helpers::EthCall; +use reth_rpc::eth::EthApiTypes; +use reth_rpc_eth_api::{helpers::EthCall, RpcTxReq}; #[rpc(server, namespace = "eth")] -pub(crate) trait CallForwarderApi { +pub(crate) trait CallForwarderApi { /// Executes a new message call immediately without creating a transaction on the block chain. #[method(name = "call")] async fn call( &self, - request: TransactionRequest, - block_number: Option, + request: TxReq, + block_id: Option, state_overrides: Option, block_overrides: Option>, ) -> RpcResult; @@ -31,8 +32,8 @@ pub(crate) trait CallForwarderApi { #[method(name = "estimateGas")] async fn estimate_gas( &self, - request: TransactionRequest, - block_number: Option, + request: TxReq, + block_id: Option, state_override: Option, ) -> RpcResult; } @@ -52,23 +53,24 @@ impl CallForwarderExt { } #[async_trait] -impl CallForwarderApiServer for CallForwarderExt +impl CallForwarderApiServer::NetworkTypes>> + for CallForwarderExt where EthApi: EthCall + Send + Sync + 'static, { async fn call( &self, - request: TransactionRequest, - block_number: Option, + request: RpcTxReq<::NetworkTypes>, + block_id: Option, state_overrides: Option, block_overrides: Option>, ) -> RpcResult { - let is_latest = block_number.as_ref().map(|b| b.is_latest()).unwrap_or(true); + let is_latest = block_id.as_ref().map(|b| b.is_latest()).unwrap_or(true); let result = if is_latest { self.upstream_client .request( "eth_call", - rpc_params![request, block_number, state_overrides, block_overrides], + rpc_params![request, block_id, state_overrides, block_overrides], ) .await .map_err(|e| match e { @@ -83,7 +85,7 @@ where EthCall::call( &self.eth_api, request, - block_number, + block_id, EvmOverrides::new(state_overrides, block_overrides), ) .await @@ -97,14 +99,14 @@ where async fn estimate_gas( &self, - request: TransactionRequest, - block_number: Option, + request: RpcTxReq<::NetworkTypes>, + block_id: Option, state_override: Option, ) -> RpcResult { - let is_latest = block_number.as_ref().map(|b| b.is_latest()).unwrap_or(true); + let is_latest = block_id.as_ref().map(|b| b.is_latest()).unwrap_or(true); let result = if is_latest { self.upstream_client - .request("eth_estimateGas", rpc_params![request, block_number, state_override]) + .request("eth_estimateGas", rpc_params![request, block_id, state_override]) .await .map_err(|e| match e { ClientError::Call(e) => e, @@ -118,7 +120,7 @@ where EthCall::estimate_gas_at( &self.eth_api, request, - block_number.unwrap_or_default(), + block_id.unwrap_or_default(), state_override, ) .await diff --git a/src/evm/api/mod.rs b/src/evm/api/mod.rs index bdbd50aaa..f8a2a0277 100644 --- a/src/evm/api/mod.rs +++ b/src/evm/api/mod.rs @@ -1,4 +1,5 @@ use revm::{ + bytecode::opcode::BLOCKHASH, context::{ContextSetters, Evm, FrameStack}, context_interface::ContextTr, handler::{ @@ -7,13 +8,14 @@ use revm::{ EthFrame, EthPrecompiles, EvmTr, FrameInitOrResult, FrameTr, PrecompileProvider, }, inspector::{InspectorEvmTr, JournalExt}, - interpreter::{interpreter::EthInterpreter, InterpreterResult}, + interpreter::{interpreter::EthInterpreter, Instruction, InterpreterResult}, Inspector, }; pub mod builder; pub mod ctx; mod exec; +mod patch; pub struct HlEvmInner< CTX: ContextTr, @@ -26,10 +28,20 @@ impl HlEvmInner, EthPrecompiles> { pub fn new(ctx: CTX, inspector: INSP) -> Self { + let mut instruction = EthInstructions::new_mainnet(); + + const NON_PLACEHOLDER_BLOCK_HASH_HEIGHT: u64 = 243_538; + if ctx.chain_id() == 999 && ctx.block_number() < NON_PLACEHOLDER_BLOCK_HASH_HEIGHT { + instruction.insert_instruction( + BLOCKHASH, + Instruction::new(patch::blockhash_returning_placeholder, 20), + ); + } + Self(Evm { ctx, inspector, - instruction: EthInstructions::new_mainnet(), + instruction, precompiles: EthPrecompiles::default(), frame_stack: FrameStack::new(), }) @@ -125,23 +137,3 @@ where self.0.frame_return_result(result) } } - -// #[cfg(test)] -// mod test { -// use super::{builder::HlBuilder, ctx::DefaultHl}; -// use revm::{ -// inspector::{InspectEvm, NoOpInspector}, -// Context, ExecuteEvm, -// }; - -// #[test] -// fn default_run_bsc() { -// let ctx = Context::bsc(); -// let mut evm = ctx.build_bsc_with_inspector(NoOpInspector {}); - -// // execute -// let _ = evm.replay(); -// // inspect -// let _ = evm.inspect_replay(); -// } -// } diff --git a/src/evm/api/patch.rs b/src/evm/api/patch.rs new file mode 100644 index 000000000..c7cd1ee68 --- /dev/null +++ b/src/evm/api/patch.rs @@ -0,0 +1,71 @@ +//! Modified version of `blockhash` instruction before block `243538`. +//! +//! This is a mainnet-specific fix for the `blockhash` instruction, +//! copied and modified from revm-interpreter-25.0.1/src/instructions/host.rs. + +use alloy_primitives::keccak256; +use revm::{ + context::Host, + interpreter::{ + as_u64_saturated, interpreter_types::StackTr, popn_top, InstructionContext, + InterpreterTypes, + }, + primitives::{BLOCK_HASH_HISTORY, U256}, +}; + +#[doc(hidden)] +#[macro_export] +#[collapse_debuginfo(yes)] +macro_rules! _count { + (@count) => { 0 }; + (@count $head:tt $($tail:tt)*) => { 1 + _count!(@count $($tail)*) }; + ($($arg:tt)*) => { _count!(@count $($arg)*) }; +} + +/// Pops n values from the stack and returns the top value. Fails the instruction if n values can't be popped. +#[macro_export] +#[collapse_debuginfo(yes)] +macro_rules! popn_top { + ([ $($x:ident),* ], $top:ident, $interpreter:expr $(,$ret:expr)? ) => { + // Workaround for https://github.com/rust-lang/rust/issues/144329. + if $interpreter.stack.len() < (1 + $crate::_count!($($x)*)) { + $interpreter.halt_underflow(); + return $($ret)?; + } + let ([$( $x ),*], $top) = unsafe { $interpreter.stack.popn_top().unwrap_unchecked() }; + }; +} + +/// Implements the BLOCKHASH instruction. +/// +/// Gets the hash of one of the 256 most recent complete blocks. +pub fn blockhash_returning_placeholder( + context: InstructionContext<'_, H, WIRE>, +) { + //gas!(context.interpreter, gas::BLOCKHASH); + popn_top!([], number, context.interpreter); + + let requested_number = *number; + let block_number = context.host.block_number(); + + let Some(diff) = block_number.checked_sub(requested_number) else { + *number = U256::ZERO; + return; + }; + + let diff = as_u64_saturated!(diff); + + // blockhash should push zero if number is same as current block number. + if diff == 0 { + *number = U256::ZERO; + return; + } + + *number = if diff <= BLOCK_HASH_HISTORY { + // NOTE: This is HL-specific modifcation that returns the placeholder hash before specific block. + let hash = keccak256(as_u64_saturated!(requested_number).to_string().as_bytes()); + U256::from_be_bytes(hash.0) + } else { + U256::ZERO + } +} diff --git a/src/hl_node_compliance.rs b/src/hl_node_compliance.rs index c7e4c4853..7a56c8910 100644 --- a/src/hl_node_compliance.rs +++ b/src/hl_node_compliance.rs @@ -1,36 +1,35 @@ -/// We need to override the following methods: -/// Filter: -/// - eth_getLogs -/// - eth_subscribe -/// -/// Block (handled by HlEthApi already): -/// - eth_getBlockByNumber/eth_getBlockByHash -/// - eth_getBlockReceipts -use crate::HlBlock; use alloy_consensus::TxReceipt; +use alloy_network::ReceiptResponse; +use alloy_eips::{BlockId, BlockNumberOrTag}; +use alloy_json_rpc::RpcObject; +use alloy_primitives::{B256, U256}; use alloy_rpc_types::{ pubsub::{Params, SubscriptionKind}, - Filter, FilterChanges, FilterId, Log, PendingTransactionFilterKind, + BlockTransactions, Filter, FilterChanges, FilterId, Log, PendingTransactionFilterKind, }; -use jsonrpsee::{PendingSubscriptionSink, SubscriptionMessage, SubscriptionSink}; +use jsonrpsee::{proc_macros::rpc, PendingSubscriptionSink, SubscriptionMessage, SubscriptionSink}; use jsonrpsee_core::{async_trait, RpcResult}; use jsonrpsee_types::ErrorObject; use reth::{ api::FullNodeComponents, builder::rpc::RpcContext, rpc::result::internal_rpc_err, tasks::TaskSpawner, }; -use reth_network::NetworkInfo; -use reth_primitives::NodePrimitives; -use reth_provider::{BlockIdReader, BlockReader, ReceiptProvider, TransactionsProvider}; +use reth_primitives_traits::BlockBody as _; +use reth_provider::{BlockIdReader, BlockReader, BlockReaderIdExt, ReceiptProvider}; use reth_rpc::{EthFilter, EthPubSub}; use reth_rpc_eth_api::{ - EthApiServer, EthFilterApiServer, EthPubSubApiServer, FullEthApiTypes, RpcBlock, RpcHeader, - RpcNodeCore, RpcNodeCoreExt, RpcReceipt, RpcTransaction, RpcTxReq, + EthApiServer, EthApiTypes, EthFilterApiServer, EthPubSubApiServer, FullEthApiTypes, RpcBlock, + RpcHeader, RpcNodeCore, RpcNodeCoreExt, RpcReceipt, RpcTransaction, RpcTxReq, }; use serde::Serialize; -use std::sync::Arc; +use std::{marker::PhantomData, sync::Arc}; use tokio_stream::{Stream, StreamExt}; -use tracing::trace; +use tracing::{trace, Instrument}; + +use crate::{ + node::primitives::{HlPrimitives, TransactionSigned}, + HlBlock, +}; pub trait EthWrapper: EthApiServer< @@ -39,34 +38,25 @@ pub trait EthWrapper: RpcBlock, RpcReceipt, RpcHeader, - > + FullEthApiTypes - + RpcNodeCoreExt< - Provider: BlockIdReader + BlockReader, - Primitives: NodePrimitives< - SignedTx = <::Provider as TransactionsProvider>::Transaction, - >, - Network: NetworkInfo, - > + 'static + > + FullEthApiTypes + + RpcNodeCoreExt> + + 'static { } -impl < - T: - EthApiServer< - RpcTxReq, - RpcTransaction, - RpcBlock, - RpcReceipt, - RpcHeader, - > + FullEthApiTypes - + RpcNodeCoreExt< - Provider: BlockIdReader + BlockReader, - Primitives: NodePrimitives< - SignedTx = <::Provider as TransactionsProvider>::Transaction, - >, - Network: NetworkInfo, - > + 'static -> EthWrapper for T { +impl< + T: EthApiServer< + RpcTxReq, + RpcTransaction, + RpcBlock, + RpcReceipt, + RpcHeader, + > + FullEthApiTypes + + RpcNodeCoreExt + + RpcNodeCore> + + 'static, + > EthWrapper for T +{ } pub struct HlNodeFilterHttp { @@ -283,6 +273,151 @@ where } } +pub struct HlNodeBlockFilterHttp { + eth_api: Arc, + _marker: PhantomData, +} + +impl HlNodeBlockFilterHttp { + pub fn new(eth_api: Arc) -> Self { + Self { eth_api, _marker: PhantomData } + } +} + +#[rpc(server, namespace = "eth")] +pub trait EthBlockApi { + /// Returns information about a block by hash. + #[method(name = "getBlockByHash")] + async fn block_by_hash(&self, hash: B256, full: bool) -> RpcResult>; + + /// Returns information about a block by number. + #[method(name = "getBlockByNumber")] + async fn block_by_number(&self, number: BlockNumberOrTag, full: bool) -> RpcResult>; + + /// Returns all transaction receipts for a given block. + #[method(name = "getBlockReceipts")] + async fn block_receipts(&self, block_id: BlockId) -> RpcResult>>; + + #[method(name = "getBlockTransactionCountByHash")] + async fn block_transaction_count_by_hash(&self, hash: B256) -> RpcResult>; + + #[method(name = "getBlockTransactionCountByNumber")] + async fn block_transaction_count_by_number( + &self, + number: BlockNumberOrTag, + ) -> RpcResult>; +} + +macro_rules! engine_span { + () => { + tracing::trace_span!(target: "rpc", "engine") + }; +} + +fn is_system_tx(tx: &TransactionSigned) -> bool { + tx.is_system_transaction() +} + +fn exclude_system_tx_from_block( + recovered_block: &RpcBlock, + eth_api: &Eth, +) -> RpcBlock { + let system_tx_count = system_tx_count_for_block(eth_api, recovered_block.number().into()); + let mut new_block = recovered_block.clone(); + + new_block.transactions = match new_block.transactions { + BlockTransactions::Full(mut transactions) => { + transactions.drain(..system_tx_count); + BlockTransactions::Full(transactions) + } + BlockTransactions::Hashes(mut hashes) => { + hashes.drain(..system_tx_count); + BlockTransactions::Hashes(hashes) + } + BlockTransactions::Uncle => BlockTransactions::Uncle, + }; + new_block +} + +fn system_tx_count_for_block(eth_api: &Eth, number: BlockId) -> usize { + let provider = eth_api.provider(); + let block = provider.block_by_id(number).unwrap().unwrap(); + let system_tx_count = block.body.transactions().iter().filter(|tx| is_system_tx(tx)).count(); + system_tx_count +} + +#[async_trait] +impl EthBlockApiServer, RpcReceipt> + for HlNodeBlockFilterHttp +where + Eth: EthApiTypes + 'static, +{ + /// Handler for: `eth_getBlockByHash` + async fn block_by_hash( + &self, + hash: B256, + full: bool, + ) -> RpcResult>> { + let res = self.eth_api.block_by_hash(hash, full).instrument(engine_span!()).await?; + Ok(res.map(|block| exclude_system_tx_from_block(&block, &*self.eth_api))) + } + + /// Handler for: `eth_getBlockByNumber` + async fn block_by_number( + &self, + number: BlockNumberOrTag, + full: bool, + ) -> RpcResult>> { + trace!(target: "rpc::eth", ?number, ?full, "Serving eth_getBlockByNumber"); + let res = self.eth_api.block_by_number(number, full).instrument(engine_span!()).await?; + Ok(res.map(|block| exclude_system_tx_from_block(&block, &*self.eth_api))) + } + + /// Handler for: `eth_getBlockTransactionCountByHash` + async fn block_transaction_count_by_hash(&self, hash: B256) -> RpcResult> { + trace!(target: "rpc::eth", ?hash, "Serving eth_getBlockTransactionCountByHash"); + let res = + self.eth_api.block_transaction_count_by_hash(hash).instrument(engine_span!()).await?; + Ok(res.map(|count| { + count + - U256::from(system_tx_count_for_block(&*self.eth_api, BlockId::Hash(hash.into()))) + })) + } + + /// Handler for: `eth_getBlockTransactionCountByNumber` + async fn block_transaction_count_by_number( + &self, + number: BlockNumberOrTag, + ) -> RpcResult> { + trace!(target: "rpc::eth", ?number, "Serving eth_getBlockTransactionCountByNumber"); + let res = self + .eth_api + .block_transaction_count_by_number(number) + .instrument(engine_span!()) + .await?; + Ok(res.map(|count| { + count - U256::from(system_tx_count_for_block(&*self.eth_api, number.into())) + })) + } + + /// Handler for: `eth_getBlockReceipts` + async fn block_receipts( + &self, + block_id: BlockId, + ) -> RpcResult>>> { + trace!(target: "rpc::eth", ?block_id, "Serving eth_getBlockReceipts"); + let res = self.eth_api.block_receipts(block_id).instrument(engine_span!()).await?; + Ok(res.map(|receipts| { + receipts + .into_iter() + .filter(|receipt| { + receipt.cumulative_gas_used() > 0 + }) + .collect() + })) + } +} + pub fn install_hl_node_compliance( ctx: RpcContext, ) -> Result<(), eyre::Error> @@ -306,5 +441,9 @@ where ) .into_rpc(), )?; + + ctx.modules.replace_configured( + HlNodeBlockFilterHttp::new(Arc::new(ctx.registry.eth_api().clone())).into_rpc(), + )?; Ok(()) } diff --git a/src/main.rs b/src/main.rs index 73caebf0d..c01daf9ea 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,11 @@ +use std::sync::Arc; + use clap::Parser; -use reth::builder::NodeHandle; +use reth::builder::{NodeBuilder, NodeHandle, WithLaunchContext}; +use reth_db::DatabaseEnv; use reth_hl::{ call_forwarder::{self, CallForwarderApiServer}, - chainspec::parser::HlChainSpecParser, + chainspec::{parser::HlChainSpecParser, HlChainSpec}, hl_node_compliance::install_hl_node_compliance, node::{ cli::{Cli, HlNodeArgs}, @@ -26,47 +29,52 @@ fn main() -> eyre::Result<()> { std::env::set_var("RUST_BACKTRACE", "1"); } - Cli::::parse().run(|builder, ext| async move { - let default_upstream_rpc_url = builder.config().chain.official_rpc_url(); - builder.builder.database.create_tables_for::()?; + Cli::::parse().run( + |builder: WithLaunchContext, HlChainSpec>>, + ext: HlNodeArgs| async move { + let default_upstream_rpc_url = builder.config().chain.official_rpc_url(); - let (node, engine_handle_tx) = - HlNode::new(ext.block_source_args.parse().await?, ext.hl_node_compliant); - let NodeHandle { node, node_exit_future: exit_future } = builder - .node(node) - .extend_rpc_modules(move |ctx| { - let upstream_rpc_url = - ext.upstream_rpc_url.unwrap_or_else(|| default_upstream_rpc_url.to_owned()); + let (node, engine_handle_tx) = HlNode::new(ext.block_source_args.parse().await?); + let NodeHandle { node, node_exit_future: exit_future } = builder + .node(node) + .extend_rpc_modules(move |ctx| { + let upstream_rpc_url = + ext.upstream_rpc_url.unwrap_or_else(|| default_upstream_rpc_url.to_owned()); - ctx.modules.replace_configured( - tx_forwarder::EthForwarderExt::new(upstream_rpc_url.clone()).into_rpc(), - )?; - info!("Transaction will be forwarded to {}", upstream_rpc_url); - - if ext.forward_call { ctx.modules.replace_configured( - call_forwarder::CallForwarderExt::new( - upstream_rpc_url.clone(), - ctx.registry.eth_api().clone(), - ) - .into_rpc(), + tx_forwarder::EthForwarderExt::new(upstream_rpc_url.clone()).into_rpc(), )?; - info!("Call/gas estimation will be forwarded to {}", upstream_rpc_url); - } + info!("Transaction will be forwarded to {}", upstream_rpc_url); - if ext.hl_node_compliant { - install_hl_node_compliance(ctx)?; - info!("hl-node compliant mode enabled"); - } + if ext.forward_call { + ctx.modules.replace_configured( + call_forwarder::CallForwarderExt::new( + upstream_rpc_url.clone(), + ctx.registry.eth_api().clone(), + ) + .into_rpc(), + )?; + info!("Call/gas estimation will be forwarded to {}", upstream_rpc_url); + } - Ok(()) - }) - .launch() - .await?; + if ext.hl_node_compliant { + install_hl_node_compliance(ctx)?; + info!("hl-node compliant mode enabled"); + } - engine_handle_tx.send(node.beacon_engine_handle.clone()).unwrap(); + Ok(()) + }) + .apply(|builder| { + builder.db().create_tables_for::().expect("create tables"); + builder + }) + .launch() + .await?; - exit_future.await - })?; + engine_handle_tx.send(node.beacon_engine_handle.clone()).unwrap(); + + exit_future.await + }, + )?; Ok(()) } diff --git a/src/node/cli.rs b/src/node/cli.rs index b7843ccf1..ca1d52dfb 100644 --- a/src/node/cli.rs +++ b/src/node/cli.rs @@ -1,8 +1,6 @@ use crate::{ chainspec::{parser::HlChainSpecParser, HlChainSpec}, - node::{ - consensus::HlConsensus, evm::config::HlEvmConfig, network::HlNetworkPrimitives, HlNode, - }, + node::{consensus::HlConsensus, evm::config::HlEvmConfig, HlNode}, pseudo_peer::BlockSourceArgs, }; use clap::{Args, Parser}; @@ -11,7 +9,7 @@ use reth::{ builder::{NodeBuilder, WithLaunchContext}, cli::Commands, prometheus_exporter::install_prometheus_recorder, - version::{LONG_VERSION, SHORT_VERSION}, + version::version_metadata, CliRunner, }; use reth_chainspec::EthChainSpec; @@ -21,11 +19,16 @@ use reth_db::DatabaseEnv; use reth_tracing::FileWorkerGuard; use std::{ fmt::{self}, - future::Future, sync::Arc, }; use tracing::info; +macro_rules! not_applicable { + ($command:ident) => { + todo!("{} is not applicable for HL", stringify!($command)) + }; +} + #[derive(Debug, Clone, Args)] #[non_exhaustive] pub struct HlNodeArgs { @@ -58,7 +61,7 @@ pub struct HlNodeArgs { /// /// This is the entrypoint to the executable. #[derive(Debug, Parser)] -#[command(author, version = SHORT_VERSION, long_version = LONG_VERSION, about = "Reth", long_about = None)] +#[command(author, version =version_metadata().short_version.as_ref(), long_version = version_metadata().long_version.as_ref(), about = "Reth", long_about = None)] pub struct Cli { /// The command to run @@ -78,20 +81,25 @@ where /// /// This accepts a closure that is used to launch the node via the /// [`NodeCommand`](reth_cli_commands::node::NodeCommand). - pub fn run(self, launcher: L) -> eyre::Result<()> - where - L: FnOnce(WithLaunchContext, C::ChainSpec>>, Ext) -> Fut, - Fut: Future>, - { + pub fn run( + self, + launcher: impl AsyncFnOnce( + WithLaunchContext, C::ChainSpec>>, + Ext, + ) -> eyre::Result<()>, + ) -> eyre::Result<()> { self.with_runner(CliRunner::try_default_runtime()?, launcher) } /// Execute the configured cli command with the provided [`CliRunner`]. - pub fn with_runner(mut self, runner: CliRunner, launcher: L) -> eyre::Result<()> - where - L: FnOnce(WithLaunchContext, C::ChainSpec>>, Ext) -> Fut, - Fut: Future>, - { + pub fn with_runner( + mut self, + runner: CliRunner, + launcher: impl AsyncFnOnce( + WithLaunchContext, C::ChainSpec>>, + Ext, + ) -> eyre::Result<()>, + ) -> eyre::Result<()> { // Add network name if available to the logs dir if let Some(chain_spec) = self.command.chain_spec() { self.logs.log_file_directory = @@ -119,11 +127,8 @@ where } Commands::DumpGenesis(command) => runner.run_blocking_until_ctrl_c(command.execute()), Commands::Db(command) => runner.run_blocking_until_ctrl_c(command.execute::()), - Commands::Stage(command) => runner.run_command_until_exit(|ctx| { - command.execute::(ctx, components) - }), - Commands::P2P(command) => { - runner.run_until_ctrl_c(command.execute::()) + Commands::Stage(command) => { + runner.run_command_until_exit(|ctx| command.execute::(ctx, components)) } Commands::Config(command) => runner.run_until_ctrl_c(command.execute()), Commands::Recover(command) => { @@ -131,17 +136,15 @@ where } Commands::Prune(command) => runner.run_until_ctrl_c(command.execute::()), Commands::Import(command) => { - runner.run_blocking_until_ctrl_c(command.execute::(components)) + runner.run_blocking_until_ctrl_c(command.execute::(components)) } - Commands::Debug(_command) => todo!(), + Commands::P2P(_command) => not_applicable!(P2P), + Commands::ImportEra(_command) => not_applicable!(ImportEra), + Commands::Download(_command) => not_applicable!(Download), + Commands::ExportEra(_) => not_applicable!(ExportEra), + Commands::ReExecute(_) => not_applicable!(ReExecute), #[cfg(feature = "dev")] - Commands::TestVectors(_command) => todo!(), - Commands::ImportEra(_command) => { - todo!() - } - Commands::Download(_command) => { - todo!() - } + Commands::TestVectors(_command) => not_applicable!(TestVectors), } } diff --git a/src/node/consensus/mod.rs b/src/node/consensus/mod.rs index e81b62cc3..440e066ed 100644 --- a/src/node/consensus/mod.rs +++ b/src/node/consensus/mod.rs @@ -1,4 +1,5 @@ use crate::{hardforks::HlHardforks, node::HlNode, HlBlock, HlBlockBody, HlPrimitives}; +use alloy_consensus::Header; use reth::{ api::FullNodeTypes, beacon_consensus::EthBeaconConsensus, @@ -39,7 +40,10 @@ pub struct HlConsensus { chain_spec: Arc, } -impl HlConsensus { +impl HlConsensus +where + ChainSpec: EthChainSpec + HlHardforks, +{ /// Create a new instance of [`HlConsensus`] pub fn new(chain_spec: Arc) -> Self { Self { inner: EthBeaconConsensus::new(chain_spec.clone()), chain_spec } @@ -62,15 +66,19 @@ pub fn validate_against_parent_timestamp( Ok(()) } -impl HeaderValidator for HlConsensus { - fn validate_header(&self, header: &SealedHeader) -> Result<(), ConsensusError> { +impl HeaderValidator for HlConsensus +where + H: BlockHeader, + ChainSpec: EthChainSpec
+ HlHardforks, +{ + fn validate_header(&self, header: &SealedHeader) -> Result<(), ConsensusError> { self.inner.validate_header(header) } fn validate_header_against_parent( &self, - header: &SealedHeader, - parent: &SealedHeader, + header: &SealedHeader, + parent: &SealedHeader, ) -> Result<(), ConsensusError> { validate_against_parent_hash_number(header.header(), parent)?; @@ -83,7 +91,7 @@ impl HeaderValidator for HlConsensus HeaderValidator for HlConsensus Consensus for HlConsensus { +impl Consensus for HlConsensus +where + ChainSpec: EthChainSpec
+ HlHardforks, +{ type Error = ConsensusError; fn validate_body_against_header( @@ -135,8 +146,9 @@ impl Consensus for HlConsensus + HlHardforks> - FullConsensus for HlConsensus +impl FullConsensus for HlConsensus +where + ChainSpec: EthChainSpec
+ HlHardforks, { fn validate_block_post_execution( &self, diff --git a/src/node/evm/config.rs b/src/node/evm/config.rs index c06e2bb6c..349224ac3 100644 --- a/src/node/evm/config.rs +++ b/src/node/evm/config.rs @@ -6,12 +6,13 @@ use crate::{ node::{ evm::{executor::is_system_transaction, receipt_builder::RethReceiptBuilder}, primitives::{BlockBody, TransactionSigned}, + rpc::engine_api::validator::HlExecutionData, types::HlExtras, }, HlBlock, HlBlockBody, HlPrimitives, }; use alloy_consensus::{BlockHeader, Header, Transaction as _, TxReceipt, EMPTY_OMMER_ROOT_HASH}; -use alloy_eips::merge::BEACON_NONCE; +use alloy_eips::{merge::BEACON_NONCE, Encodable2718}; use alloy_primitives::{Log, U256}; use reth_chainspec::{EthChainSpec, EthereumHardforks, Hardforks}; use reth_evm::{ @@ -19,12 +20,13 @@ use reth_evm::{ eth::{receipt_builder::ReceiptBuilder, EthBlockExecutionCtx}, execute::{BlockAssembler, BlockAssemblerInput}, precompiles::PrecompilesMap, - ConfigureEvm, EvmEnv, EvmFactory, ExecutionCtxFor, FromRecoveredTx, FromTxWithEncoded, - IntoTxEnv, NextBlockEnvAttributes, + ConfigureEngineEvm, ConfigureEvm, EvmEnv, EvmEnvFor, EvmFactory, ExecutableTxIterator, + ExecutionCtxFor, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv, NextBlockEnvAttributes, }; use reth_evm_ethereum::EthBlockAssembler; +use reth_payload_primitives::NewPayloadError; use reth_primitives::{logs_bloom, BlockTy, HeaderTy, Receipt, SealedBlock, SealedHeader}; -use reth_primitives_traits::proofs; +use reth_primitives_traits::{proofs, SignerRecoverable, WithEncoded}; use reth_provider::BlockExecutionResult; use reth_revm::State; use revm::{ @@ -407,6 +409,34 @@ where } } +impl ConfigureEngineEvm for HlEvmConfig { + fn evm_env_for_payload(&self, payload: &HlExecutionData) -> EvmEnvFor { + self.evm_env(&payload.0.header) + } + + fn context_for_payload<'a>(&self, payload: &'a HlExecutionData) -> ExecutionCtxFor<'a, Self> { + HlBlockExecutionCtx { + ctx: EthBlockExecutionCtx { + parent_hash: payload.0.header.parent_hash, + parent_beacon_block_root: payload.0.header.parent_beacon_block_root, + ommers: &payload.0.body.ommers, + withdrawals: payload.0.body.withdrawals.as_ref().map(Cow::Borrowed), + }, + extras: HlExtras::default(), + } + } + + fn tx_iterator_for_payload( + &self, + payload: &HlExecutionData, + ) -> impl ExecutableTxIterator { + payload.0.body.transactions.clone().into_iter().map(move |tx| { + let recovered = tx.try_into_recovered().map_err(NewPayloadError::other)?; + Ok::<_, NewPayloadError>(WithEncoded::new(recovered.encoded_2718().into(), recovered)) + }) + } +} + /// Map the latest active hardfork at the given timestamp or block number to a [`HlSpecId`]. pub fn revm_spec_by_timestamp_and_block_number( _chain_spec: impl HlHardforks, diff --git a/src/node/evm/executor.rs b/src/node/evm/executor.rs index 80a88b154..88e03010a 100644 --- a/src/node/evm/executor.rs +++ b/src/node/evm/executor.rs @@ -72,7 +72,7 @@ fn run_precompile( match *get { ReadPrecompileResult::Ok { gas_used, ref bytes } => { - Ok(PrecompileOutput { gas_used, bytes: bytes.clone() }) + Ok(PrecompileOutput { gas_used, bytes: bytes.clone(), reverted: false }) } ReadPrecompileResult::OutOfGas => { // Use all the gas passed to this precompile @@ -181,7 +181,7 @@ where // Execute transaction. let ResultAndState { result, mut state } = self .evm - .transact(tx) + .transact(&tx) .map_err(|err| BlockExecutionError::evm(err, tx.tx().trie_hash()))?; if !f(&result).should_commit() { diff --git a/src/node/evm/mod.rs b/src/node/evm/mod.rs index 1962969da..232e35350 100644 --- a/src/node/evm/mod.rs +++ b/src/node/evm/mod.rs @@ -156,6 +156,22 @@ where fn inspector(&self) -> &Self::Inspector { &self.inner.0.inspector } + + fn components(&self) -> (&Self::DB, &Self::Inspector, &Self::Precompiles) { + ( + &self.inner.0.ctx.journaled_state.database, + &self.inner.0.inspector, + &self.inner.0.precompiles, + ) + } + + fn components_mut(&mut self) -> (&mut Self::DB, &mut Self::Inspector, &mut Self::Precompiles) { + ( + &mut self.inner.0.ctx.journaled_state.database, + &mut self.inner.0.inspector, + &mut self.inner.0.precompiles, + ) + } } /// A regular hl evm and executor builder. diff --git a/src/node/mod.rs b/src/node/mod.rs index cfa9418d9..6dbe0dfef 100644 --- a/src/node/mod.rs +++ b/src/node/mod.rs @@ -2,11 +2,11 @@ use crate::{ chainspec::HlChainSpec, node::{ pool::HlPoolBuilder, - primitives::{BlockBody, HlBlock, HlBlockBody, HlPrimitives, TransactionSigned}, + primitives::{HlBlock, HlPrimitives}, rpc::{ engine_api::{ builder::HlEngineApiBuilder, payload::HlPayloadTypes, - validator::HlEngineValidatorBuilder, + validator::HlPayloadValidatorBuilder, }, HlEthApiBuilder, }, @@ -19,15 +19,11 @@ use engine::HlPayloadServiceBuilder; use evm::HlExecutorBuilder; use network::HlNetworkBuilder; use reth::{ - api::{FullNodeComponents, FullNodeTypes, NodeTypes}, - builder::{ - components::ComponentsBuilder, rpc::RpcAddOns, DebugNode, Node, NodeAdapter, - NodeComponentsBuilder, - }, + api::{FullNodeTypes, NodeTypes}, + builder::{components::ComponentsBuilder, rpc::RpcAddOns, Node, NodeAdapter}, }; -use reth_engine_primitives::BeaconConsensusEngineHandle; -use reth_trie_db::MerklePatriciaTrie; -use std::sync::Arc; +use reth_engine_primitives::ConsensusEngineHandle; +use std::{marker::PhantomData, sync::Arc}; use tokio::sync::{oneshot, Mutex}; pub mod cli; @@ -43,31 +39,21 @@ pub mod types; /// Hl addons configuring RPC types pub type HlNodeAddOns = - RpcAddOns; + RpcAddOns; /// Type configuration for a regular Hl node. #[derive(Debug, Clone)] pub struct HlNode { - engine_handle_rx: - Arc>>>>, + engine_handle_rx: Arc>>>>, block_source_config: BlockSourceConfig, - hl_node_compliant: bool, } impl HlNode { pub fn new( block_source_config: BlockSourceConfig, - hl_node_compliant: bool, - ) -> (Self, oneshot::Sender>) { + ) -> (Self, oneshot::Sender>) { let (tx, rx) = oneshot::channel(); - ( - Self { - engine_handle_rx: Arc::new(Mutex::new(Some(rx))), - block_source_config, - hl_node_compliant, - }, - tx, - ) + (Self { engine_handle_rx: Arc::new(Mutex::new(Some(rx))), block_source_config }, tx) } } @@ -103,7 +89,6 @@ impl HlNode { impl NodeTypes for HlNode { type Primitives = HlPrimitives; type ChainSpec = HlChainSpec; - type StateCommitment = MerklePatriciaTrie; type Storage = HlStorage; type Payload = HlPayloadTypes; } @@ -121,9 +106,7 @@ where HlConsensusBuilder, >; - type AddOns = HlNodeAddOns< - NodeAdapter>::Components>, - >; + type AddOns = HlNodeAddOns>; fn components_builder(&self) -> Self::ComponentsBuilder { Self::components(self) @@ -131,37 +114,11 @@ where fn add_ons(&self) -> Self::AddOns { HlNodeAddOns::new( - HlEthApiBuilder { hl_node_compliant: self.hl_node_compliant }, + HlEthApiBuilder { _nt: PhantomData }, + Default::default(), Default::default(), Default::default(), Default::default(), ) } } - -impl DebugNode for HlNode -where - N: FullNodeComponents, -{ - type RpcBlock = alloy_rpc_types::Block; - - fn rpc_to_primitive_block(rpc_block: Self::RpcBlock) -> HlBlock { - let alloy_rpc_types::Block { header, transactions, withdrawals, .. } = rpc_block; - HlBlock { - header: header.inner, - body: HlBlockBody { - inner: BlockBody { - transactions: transactions - .into_transactions() - .map(|tx| TransactionSigned::Default(tx.inner.into_inner().into())) - .collect(), - ommers: Default::default(), - withdrawals, - }, - sidecars: None, - read_precompile_calls: None, - highest_precompile_address: None, - }, - } - } -} diff --git a/src/node/network/block_import/service.rs b/src/node/network/block_import/service.rs index 43bb23bef..1d93dfeb0 100644 --- a/src/node/network/block_import/service.rs +++ b/src/node/network/block_import/service.rs @@ -12,7 +12,7 @@ use alloy_consensus::{BlockBody, Header}; use alloy_primitives::U128; use alloy_rpc_types::engine::{ForkchoiceState, PayloadStatusEnum}; use futures::{future::Either, stream::FuturesUnordered, StreamExt}; -use reth_engine_primitives::{BeaconConsensusEngineHandle, EngineTypes}; +use reth_engine_primitives::{ConsensusEngineHandle, EngineTypes}; use reth_eth_wire::NewBlock; use reth_network::{ import::{BlockImportError, BlockImportEvent, BlockImportOutcome, BlockValidation}, @@ -55,7 +55,7 @@ where Provider: BlockNumReader + Clone, { /// The handle to communicate with the engine service - engine: BeaconConsensusEngineHandle, + engine: ConsensusEngineHandle, /// The consensus implementation consensus: Arc>, /// Receive the new block from the network @@ -73,7 +73,7 @@ where /// Create a new block import service pub fn new( consensus: Arc>, - engine: BeaconConsensusEngineHandle, + engine: ConsensusEngineHandle, from_network: UnboundedReceiver, to_network: UnboundedSender, ) -> Self { @@ -341,7 +341,7 @@ mod tests { async fn new(responses: EngineResponses) -> Self { let consensus = Arc::new(HlConsensus { provider: MockProvider }); let (to_engine, from_engine) = mpsc::unbounded_channel(); - let engine_handle = BeaconConsensusEngineHandle::new(to_engine); + let engine_handle = ConsensusEngineHandle::new(to_engine); handle_engine_msg(from_engine, responses).await; diff --git a/src/node/network/mod.rs b/src/node/network/mod.rs index 5028bbafc..1eadb0a25 100644 --- a/src/node/network/mod.rs +++ b/src/node/network/mod.rs @@ -19,7 +19,7 @@ use reth::{ transaction_pool::{PoolTransaction, TransactionPool}, }; use reth_discv4::NodeRecord; -use reth_engine_primitives::BeaconConsensusEngineHandle; +use reth_engine_primitives::ConsensusEngineHandle; use reth_eth_wire::{BasicNetworkPrimitives, NewBlock, NewBlockPayload}; use reth_ethereum_primitives::PooledTransactionVariant; use reth_network::{NetworkConfig, NetworkHandle, NetworkManager}; @@ -31,8 +31,7 @@ use tokio::sync::{mpsc, oneshot, Mutex}; use tracing::info; pub mod block_import; -// pub mod handshake; -// pub(crate) mod upgrade_status; + /// HL `NewBlock` message value. #[derive(Debug, Clone, PartialEq, Eq)] pub struct HlNewBlock(pub NewBlock); @@ -157,7 +156,7 @@ pub type HlNetworkPrimitives = #[derive(Debug)] pub struct HlNetworkBuilder { pub(crate) engine_handle_rx: - Arc>>>>, + Arc>>>>, pub(crate) block_source_config: BlockSourceConfig, } @@ -237,9 +236,12 @@ where let chain_spec = ctx.chain_spec(); info!(target: "reth::cli", enode=%local_node_record, "P2P networking initialized"); - let next_block_number = - ctx.provider().get_stage_checkpoint(StageId::Finish)?.unwrap_or_default().block_number - + 1; + let next_block_number = ctx + .provider() + .get_stage_checkpoint(StageId::Finish)? + .unwrap_or_default() + .block_number + + 1; ctx.task_executor().spawn_critical("pseudo peer", async move { let block_source = diff --git a/src/node/pool.rs b/src/node/pool.rs index c1864bcd2..0a75b60ef 100644 --- a/src/node/pool.rs +++ b/src/node/pool.rs @@ -27,10 +27,11 @@ use reth_ethereum_primitives::PooledTransactionVariant; use reth_primitives::Recovered; use reth_primitives_traits::InMemorySize; use reth_transaction_pool::{ - error::InvalidPoolTransactionError, AllPoolTransactions, AllTransactionsEvents, - BestTransactions, BestTransactionsAttributes, BlobStoreError, BlockInfo, EthPoolTransaction, - GetPooledTransactionLimit, NewBlobSidecar, NewTransactionEvent, PropagatedTransactions, - TransactionEvents, TransactionListenerKind, ValidPoolTransaction, + error::InvalidPoolTransactionError, pool::AddedTransactionState, AddedTransactionOutcome, + AllPoolTransactions, AllTransactionsEvents, BestTransactions, BestTransactionsAttributes, + BlobStoreError, BlockInfo, EthPoolTransaction, GetPooledTransactionLimit, NewBlobSidecar, + NewTransactionEvent, PropagatedTransactions, TransactionEvents, TransactionListenerKind, + ValidPoolTransaction, }; use std::{collections::HashSet, sync::Arc}; use tokio::sync::mpsc::{self, Receiver}; @@ -223,15 +224,18 @@ impl TransactionPool for HlTransactionPool { &self, _origin: TransactionOrigin, _transaction: Self::Transaction, - ) -> PoolResult { - Ok(TxHash::default()) + ) -> PoolResult { + Ok(AddedTransactionOutcome { + hash: TxHash::default(), + state: AddedTransactionState::Pending, + }) } async fn add_transactions( &self, _origin: TransactionOrigin, _transactions: Vec, - ) -> Vec> { + ) -> Vec> { vec![] } @@ -436,4 +440,19 @@ impl TransactionPool for HlTransactionPool { ) -> Result>, BlobStoreError> { unreachable!() } + + async fn add_transactions_with_origins( + &self, + _transactions: Vec<(TransactionOrigin, Self::Transaction)>, + ) -> Vec> { + unreachable!() + } + + fn pending_and_queued_txn_count(&self) -> (usize, usize) { + unreachable!() + } + + fn all_transaction_hashes(&self) -> Vec { + unreachable!() + } } diff --git a/src/node/primitives/tx_wrapper.rs b/src/node/primitives/tx_wrapper.rs index bbc60b23f..59cf4a178 100644 --- a/src/node/primitives/tx_wrapper.rs +++ b/src/node/primitives/tx_wrapper.rs @@ -1,11 +1,12 @@ //! HlNodePrimitives::TransactionSigned; it's the same as ethereum transaction type, //! except that it supports pseudo signer for system transactions. use alloy_consensus::{ - crypto::RecoveryError, error::ValueError, EthereumTxEnvelope, SignableTransaction, Signed, - Transaction as TransactionTrait, TransactionEnvelope, TxEip1559, TxEip2930, TxEip4844, - TxEip4844WithSidecar, TxEip7702, TxLegacy, TxType, TypedTransaction, + crypto::RecoveryError, error::ValueError, EthereumTxEnvelope, EthereumTypedTransaction, + SignableTransaction, Signed, Transaction as TransactionTrait, TransactionEnvelope, TxEip1559, + TxEip2930, TxEip4844, TxEip4844WithSidecar, TxEip7702, TxLegacy, TxType, TypedTransaction, }; use alloy_eips::{eip7594::BlobTransactionSidecarVariant, Encodable2718}; +use alloy_network::TxSigner; use alloy_primitives::{address, Address, TxHash, U256}; use alloy_rpc_types::{Transaction, TransactionInfo, TransactionRequest}; use alloy_signer::Signature; @@ -21,7 +22,7 @@ use reth_primitives_traits::{ }; use reth_rpc_eth_api::{ transaction::{FromConsensusTx, TryIntoTxEnv}, - EthTxEnvError, TryIntoSimTx, + EthTxEnvError, SignTxRequestError, SignableTxRequest, TryIntoSimTx, }; use revm::context::{BlockEnv, CfgEnv, TxEnv}; @@ -59,22 +60,19 @@ impl SignerRecoverable for TransactionSigned { } self.inner().recover_signer_unchecked() } + + fn recover_unchecked_with_buf(&self, buf: &mut Vec) -> Result { + if self.is_system_transaction() { + return Ok(s_to_address(self.signature().s())); + } + self.inner().recover_unchecked_with_buf(buf) + } } impl SignedTransaction for TransactionSigned { fn tx_hash(&self) -> &TxHash { self.inner().tx_hash() } - - fn recover_signer_unchecked_with_buf( - &self, - buf: &mut Vec, - ) -> Result { - if self.is_system_transaction() { - return Ok(s_to_address(self.signature().s())); - } - self.inner().recover_signer_unchecked_with_buf(buf) - } } // ------------------------------------------------------------ @@ -296,3 +294,32 @@ impl FromConsensusTx for Transaction { Self::from_transaction(Recovered::new_unchecked(tx.into_inner().into(), signer), tx_info) } } + +impl SignableTxRequest for TransactionRequest { + async fn try_build_and_sign( + self, + signer: impl TxSigner + Send, + ) -> Result { + let mut tx = + self.build_typed_tx().map_err(|_| SignTxRequestError::InvalidTransactionRequest)?; + let signature = signer.sign_transaction(&mut tx).await?; + let signed = match tx { + EthereumTypedTransaction::Legacy(tx) => { + EthereumTxEnvelope::Legacy(tx.into_signed(signature)) + } + EthereumTypedTransaction::Eip2930(tx) => { + EthereumTxEnvelope::Eip2930(tx.into_signed(signature)) + } + EthereumTypedTransaction::Eip1559(tx) => { + EthereumTxEnvelope::Eip1559(tx.into_signed(signature)) + } + EthereumTypedTransaction::Eip4844(tx) => { + EthereumTxEnvelope::Eip4844(TxEip4844::from(tx).into_signed(signature)) + } + EthereumTypedTransaction::Eip7702(tx) => { + EthereumTxEnvelope::Eip7702(tx.into_signed(signature)) + } + }; + Ok(TransactionSigned::Default(signed)) + } +} diff --git a/src/node/rpc/block.rs b/src/node/rpc/block.rs index 65220afb2..fe3b017ed 100644 --- a/src/node/rpc/block.rs +++ b/src/node/rpc/block.rs @@ -1,263 +1,59 @@ -use std::{future::Future, sync::Arc}; -use crate::{ - chainspec::HlChainSpec, - node::{ - primitives::TransactionSigned, - rpc::{HlEthApi, HlNodeCore}, - }, - HlBlock, -}; -use alloy_consensus::{BlockHeader, ReceiptEnvelope, TxType}; -use alloy_primitives::B256; +use crate::node::rpc::HlEthApi; use reth::{ - api::NodeTypes, - builder::FullNodeComponents, - primitives::{Receipt, SealedHeader, TransactionMeta}, - providers::{BlockReaderIdExt, ProviderHeader, ReceiptProvider, TransactionsProvider}, - rpc::{ - eth::EthApiTypes, - server_types::eth::{ - error::FromEvmError, receipt::build_receipt, EthApiError, PendingBlock, - }, - types::{BlockId, TransactionReceipt}, + rpc::server_types::eth::{ + builder::config::PendingBlockKind, error::FromEvmError, EthApiError, PendingBlock, }, - transaction_pool::{PoolTransaction, TransactionPool}, -}; -use reth_chainspec::{EthChainSpec, EthereumHardforks}; -use reth_evm::{ConfigureEvm, NextBlockEnvAttributes}; -use reth_primitives::{NodePrimitives, SealedBlock}; -use reth_primitives_traits::{BlockBody as _, RecoveredBlock, SignedTransaction as _}; -use reth_provider::{ - BlockIdReader, BlockReader, ChainSpecProvider, HeaderProvider, ProviderBlock, ProviderReceipt, - ProviderTx, StateProviderFactory, }; use reth_rpc_eth_api::{ - helpers::{EthBlocks, LoadBlock, LoadPendingBlock, LoadReceipt, SpawnBlocking}, - types::RpcTypes, - FromEthApiError, RpcConvert, RpcNodeCore, RpcNodeCoreExt, RpcReceipt, + helpers::{ + pending_block::PendingEnvBuilder, EthBlocks, LoadBlock, LoadPendingBlock, LoadReceipt, + }, RpcConvert, RpcNodeCore }; -fn is_system_tx(tx: &TransactionSigned) -> bool { - tx.is_system_transaction() -} - -impl EthBlocks for HlEthApi +impl EthBlocks for HlEthApi where - Self: LoadBlock< - Error = EthApiError, - NetworkTypes: RpcTypes, - Provider: BlockReader, - >, - N: HlNodeCore + HeaderProvider>, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert, { - async fn block_receipts( - &self, - block_id: BlockId, - ) -> Result>>, Self::Error> - where - Self: LoadReceipt, - { - if let Some((block, receipts)) = self.load_block_and_receipts(block_id).await? { - let block_number = block.number(); - let base_fee = block.base_fee_per_gas(); - let block_hash = block.hash(); - let excess_blob_gas = block.excess_blob_gas(); - let timestamp = block.timestamp(); - let blob_params = self.provider().chain_spec().blob_params_at_timestamp(timestamp); - return block - .body() - .transactions() - .iter() - .zip(receipts.iter()) - .filter(|(tx, _)| !is_system_tx(tx)) - .enumerate() - .map(|(idx, (tx, receipt))| { - let meta = TransactionMeta { - tx_hash: *tx.tx_hash(), - index: idx as u64, - block_hash, - block_number, - base_fee, - excess_blob_gas, - timestamp, - }; - build_receipt(tx, meta, receipt, &receipts, blob_params, |receipt_with_bloom| { - match receipt.tx_type { - TxType::Legacy => ReceiptEnvelope::Legacy(receipt_with_bloom), - TxType::Eip2930 => ReceiptEnvelope::Eip2930(receipt_with_bloom), - TxType::Eip1559 => ReceiptEnvelope::Eip1559(receipt_with_bloom), - TxType::Eip4844 => ReceiptEnvelope::Eip4844(receipt_with_bloom), - TxType::Eip7702 => ReceiptEnvelope::Eip7702(receipt_with_bloom), - } - }) - }) - .collect::, Self::Error>>() - .map(Some); - } - - Ok(None) - } } -impl LoadBlock for HlEthApi +impl LoadBlock for HlEthApi where - Self: LoadPendingBlock - + SpawnBlocking - + RpcNodeCoreExt< - Pool: TransactionPool< - Transaction: PoolTransaction>, - >, - > + RpcNodeCore>, - N: HlNodeCore, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert, { - fn recovered_block( - &self, - block_id: BlockId, - ) -> impl Future< - Output = Result< - Option::Block>>>, - Self::Error, - >, - > + Send { - let hl_node_compliant = self.hl_node_compliant; - async move { - // Copy of LoadBlock::recovered_block, but with --hl-node-compliant support - if block_id.is_pending() { - return Ok(None); - } - - let block_hash = match self - .provider() - .block_hash_for_id(block_id) - .map_err(Self::Error::from_eth_err)? - { - Some(block_hash) => block_hash, - None => return Ok(None), - }; - - let recovered_block = self - .cache() - .get_recovered_block(block_hash) - .await - .map_err(Self::Error::from_eth_err)?; - - if let Some(recovered_block) = recovered_block { - let recovered_block = if hl_node_compliant { - filter_if_hl_node_compliant(&recovered_block) - } else { - (*recovered_block).clone() - }; - return Ok(Some(std::sync::Arc::new(recovered_block))); - } - - Ok(None) - } - } } -fn filter_if_hl_node_compliant( - recovered_block: &RecoveredBlock, -) -> RecoveredBlock { - let sealed_block = recovered_block.sealed_block(); - let transactions = sealed_block.body().transactions(); - let to_skip = transactions - .iter() - .position(|tx| !tx.is_system_transaction()) - .unwrap_or(transactions.len()); - - let mut new_block: HlBlock = sealed_block.clone_block(); - new_block.body.transactions.drain(..to_skip); - let new_sealed_block = SealedBlock::new_unchecked(new_block, sealed_block.hash()); - let new_senders = recovered_block.senders()[to_skip..].to_vec(); - - RecoveredBlock::new_sealed(new_sealed_block, new_senders) -} - -impl LoadPendingBlock for HlEthApi +impl LoadPendingBlock for HlEthApi where - Self: SpawnBlocking - + EthApiTypes< - NetworkTypes: RpcTypes< - Header = alloy_rpc_types_eth::Header>, - >, - Error: FromEvmError, - RpcConvert: RpcConvert, - >, - N: RpcNodeCore< - Provider: BlockReaderIdExt - + ChainSpecProvider - + StateProviderFactory, - Pool: TransactionPool>>, - Evm: ConfigureEvm< - Primitives = ::Primitives, - NextBlockEnvCtx: From, - >, - Primitives: NodePrimitives< - BlockHeader = ProviderHeader, - SignedTx = ProviderTx, - Receipt = ProviderReceipt, - Block = ProviderBlock, - >, - >, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert, { #[inline] - fn pending_block( - &self, - ) -> &tokio::sync::Mutex< - Option, ProviderReceipt>>, - > { + fn pending_block(&self) -> &tokio::sync::Mutex>> { self.inner.eth_api.pending_block() } - fn next_env_attributes( - &self, - parent: &SealedHeader>, - ) -> Result<::NextBlockEnvCtx, Self::Error> { - Ok(NextBlockEnvAttributes { - timestamp: parent.timestamp().saturating_add(12), - suggested_fee_recipient: parent.beneficiary(), - prev_randao: B256::random(), - gas_limit: parent.gas_limit(), - parent_beacon_block_root: parent.parent_beacon_block_root(), - withdrawals: None, - } - .into()) + #[inline] + fn pending_env_builder(&self) -> &dyn PendingEnvBuilder { + self.inner.eth_api.pending_env_builder() + } + + #[inline] + fn pending_block_kind(&self) -> PendingBlockKind { + self.inner.eth_api.pending_block_kind() } } -impl LoadReceipt for HlEthApi +impl LoadReceipt for HlEthApi where - Self: Send + Sync, - N: FullNodeComponents>, - Self::Provider: - TransactionsProvider + ReceiptProvider, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert, { - async fn build_transaction_receipt( - &self, - tx: TransactionSigned, - meta: TransactionMeta, - receipt: Receipt, - ) -> Result, Self::Error> { - let hash = meta.block_hash; - // get all receipts for the block - let all_receipts = self - .cache() - .get_receipts(hash) - .await - .map_err(Self::Error::from_eth_err)? - .ok_or(EthApiError::HeaderNotFound(hash.into()))?; - let blob_params = self.provider().chain_spec().blob_params_at_timestamp(meta.timestamp); - - build_receipt(&tx, meta, &receipt, &all_receipts, blob_params, |receipt_with_bloom| { - match receipt.tx_type { - TxType::Legacy => ReceiptEnvelope::Legacy(receipt_with_bloom), - TxType::Eip2930 => ReceiptEnvelope::Eip2930(receipt_with_bloom), - TxType::Eip1559 => ReceiptEnvelope::Eip1559(receipt_with_bloom), - TxType::Eip4844 => ReceiptEnvelope::Eip4844(receipt_with_bloom), - TxType::Eip7702 => ReceiptEnvelope::Eip7702(receipt_with_bloom), - } - }) - } } diff --git a/src/node/rpc/call.rs b/src/node/rpc/call.rs index b38511f65..943f6825d 100644 --- a/src/node/rpc/call.rs +++ b/src/node/rpc/call.rs @@ -1,51 +1,32 @@ -use super::{HlEthApi, HlNodeCore}; -use crate::evm::transaction::HlTxEnv; -use alloy_rpc_types::TransactionRequest; +use super::HlEthApi; use reth::rpc::server_types::eth::EthApiError; -use reth_evm::{block::BlockExecutorFactory, ConfigureEvm, EvmFactory, TxEnvFor}; -use reth_primitives::NodePrimitives; -use reth_provider::{ProviderError, ProviderHeader, ProviderTx}; +use reth_evm::TxEnvFor; use reth_rpc_eth_api::{ - helpers::{estimate::EstimateCall, Call, EthCall, LoadBlock, LoadState, SpawnBlocking}, - FromEvmError, FullEthApiTypes, RpcConvert, RpcTypes, + helpers::{estimate::EstimateCall, Call, EthCall}, + FromEvmError, RpcConvert, RpcNodeCore, }; -use revm::context::TxEnv; -impl EthCall for HlEthApi +impl EthCall for HlEthApi where - Self: EstimateCall + LoadBlock + FullEthApiTypes, - N: HlNodeCore, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert>, { } -impl EstimateCall for HlEthApi +impl EstimateCall for HlEthApi where - Self: Call, - Self::Error: From, - N: HlNodeCore, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert>, { } -impl Call for HlEthApi +impl Call for HlEthApi where - Self: LoadState< - Evm: ConfigureEvm< - Primitives: NodePrimitives< - BlockHeader = ProviderHeader, - SignedTx = ProviderTx, - >, - BlockExecutorFactory: BlockExecutorFactory< - EvmFactory: EvmFactory>, - >, - >, - RpcConvert: RpcConvert, Network = Self::NetworkTypes>, - NetworkTypes: RpcTypes>, - Error: FromEvmError - + From<::Error> - + From, - > + SpawnBlocking, - Self::Error: From, - N: HlNodeCore, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert>, { #[inline] fn call_gas_limit(&self) -> u64 { diff --git a/src/node/rpc/engine_api/validator.rs b/src/node/rpc/engine_api/validator.rs index 54e0694b3..6cd2b2d00 100644 --- a/src/node/rpc/engine_api/validator.rs +++ b/src/node/rpc/engine_api/validator.rs @@ -6,20 +6,15 @@ use crate::{ use alloy_consensus::BlockHeader; use alloy_eips::eip4895::Withdrawal; use alloy_primitives::B256; -use alloy_rpc_types_engine::{PayloadAttributes, PayloadError}; +use alloy_rpc_types_engine::PayloadError; use reth::{ api::{FullNodeComponents, NodeTypes}, - builder::{rpc::EngineValidatorBuilder, AddOnsContext}, - consensus::ConsensusError, -}; -use reth_engine_primitives::{EngineValidator, ExecutionPayload, PayloadValidator}; -use reth_payload_primitives::{ - EngineApiMessageVersion, EngineObjectValidationError, NewPayloadError, PayloadOrAttributes, - PayloadTypes, + builder::{rpc::PayloadValidatorBuilder, AddOnsContext}, }; +use reth_engine_primitives::{ExecutionPayload, PayloadValidator}; +use reth_payload_primitives::NewPayloadError; use reth_primitives::{RecoveredBlock, SealedBlock}; use reth_primitives_traits::Block as _; -use reth_trie_common::HashedPostState; use serde::{Deserialize, Serialize}; use std::sync::Arc; @@ -27,27 +22,27 @@ use super::payload::HlPayloadTypes; #[derive(Debug, Default, Clone)] #[non_exhaustive] -pub struct HlEngineValidatorBuilder; +pub struct HlPayloadValidatorBuilder; -impl EngineValidatorBuilder for HlEngineValidatorBuilder +impl PayloadValidatorBuilder for HlPayloadValidatorBuilder where Types: NodeTypes, Node: FullNodeComponents, { - type Validator = HlEngineValidator; + type Validator = HlPayloadValidator; async fn build(self, ctx: &AddOnsContext<'_, Node>) -> eyre::Result { - Ok(HlEngineValidator::new(Arc::new(ctx.config.chain.clone().as_ref().clone()))) + Ok(HlPayloadValidator::new(Arc::new(ctx.config.chain.clone().as_ref().clone()))) } } /// Validator for Optimism engine API. #[derive(Debug, Clone)] -pub struct HlEngineValidator { +pub struct HlPayloadValidator { inner: HlExecutionPayloadValidator, } -impl HlEngineValidator { +impl HlPayloadValidator { /// Instantiates a new validator. pub fn new(chain_spec: Arc) -> Self { Self { inner: HlExecutionPayloadValidator { inner: chain_spec } } @@ -87,47 +82,17 @@ impl ExecutionPayload for HlExecutionData { } } -impl PayloadValidator for HlEngineValidator { +impl PayloadValidator for HlPayloadValidator { type Block = HlBlock; - type ExecutionData = HlExecutionData; fn ensure_well_formed_payload( &self, - payload: Self::ExecutionData, + payload: HlExecutionData, ) -> Result, NewPayloadError> { let sealed_block = self.inner.ensure_well_formed_payload(payload).map_err(NewPayloadError::other)?; sealed_block.try_recover().map_err(|e| NewPayloadError::Other(e.into())) } - - fn validate_block_post_execution_with_hashed_state( - &self, - _state_updates: &HashedPostState, - _block: &RecoveredBlock, - ) -> Result<(), ConsensusError> { - Ok(()) - } -} - -impl EngineValidator for HlEngineValidator -where - Types: PayloadTypes, -{ - fn validate_version_specific_fields( - &self, - _version: EngineApiMessageVersion, - _payload_or_attrs: PayloadOrAttributes<'_, Self::ExecutionData, PayloadAttributes>, - ) -> Result<(), EngineObjectValidationError> { - Ok(()) - } - - fn ensure_well_formed_attributes( - &self, - _version: EngineApiMessageVersion, - _attributes: &PayloadAttributes, - ) -> Result<(), EngineObjectValidationError> { - Ok(()) - } } /// Execution payload validator. diff --git a/src/node/rpc/mod.rs b/src/node/rpc/mod.rs index 06fc4e680..e87a15066 100644 --- a/src/node/rpc/mod.rs +++ b/src/node/rpc/mod.rs @@ -1,104 +1,95 @@ use alloy_network::Ethereum; use alloy_primitives::U256; use reth::{ + api::{FullNodeTypes, HeaderTy, NodeTypes, PrimitivesTy}, builder::{ rpc::{EthApiBuilder, EthApiCtx}, FullNodeComponents, }, - chainspec::EthChainSpec, primitives::EthereumHardforks, - providers::ChainSpecProvider, rpc::{ eth::{core::EthApiInner, DevSigner, FullEthApiServer}, - server_types::eth::{EthApiError, EthStateCache, FeeHistoryCache, GasPriceOracle}, + server_types::eth::{ + receipt::EthReceiptConverter, + EthApiError, EthStateCache, FeeHistoryCache, GasPriceOracle, + }, }, tasks::{ pool::{BlockingTaskGuard, BlockingTaskPool}, TaskSpawner, }, - transaction_pool::TransactionPool, }; use reth_evm::ConfigureEvm; -use reth_network::NetworkInfo; -use reth_primitives::NodePrimitives; -use reth_provider::{ - BlockNumReader, BlockReader, BlockReaderIdExt, ProviderBlock, ProviderHeader, ProviderReceipt, - ProviderTx, StageCheckpointReader, StateProviderFactory, -}; +use reth_primitives::{NodePrimitives, Receipt}; +use reth_provider::{ChainSpecProvider, ProviderHeader, ProviderTx}; +use reth_rpc::RpcTypes; use reth_rpc_eth_api::{ helpers::{ - AddDevSigners, EthApiSpec, EthFees, EthSigner, EthState, LoadBlock, LoadFee, LoadState, - SpawnBlocking, Trace, + pending_block::BuildPendingEnv, spec::SignersForApi, AddDevSigners, EthApiSpec, EthFees, + EthState, LoadFee, LoadState, SpawnBlocking, Trace, }, - EthApiTypes, FromEvmError, RpcConverter, RpcNodeCore, RpcNodeCoreExt, + EthApiTypes, FromEvmError, RpcConvert, RpcConverter, RpcNodeCore, RpcNodeCoreExt, + SignableTxRequest, }; -use std::{fmt, sync::Arc}; +use std::{fmt, marker::PhantomData, sync::Arc}; + +use crate::chainspec::HlChainSpec; mod block; mod call; pub mod engine_api; mod transaction; -/// A helper trait with requirements for [`RpcNodeCore`] to be used in [`HlEthApi`]. -pub trait HlNodeCore: RpcNodeCore {} -impl HlNodeCore for T where T: RpcNodeCore {} - -/// Adapter for [`EthApiInner`], which holds all the data required to serve core `eth_` API. -pub type EthApiNodeBackend = EthApiInner< - ::Provider, - ::Pool, - ::Network, - ::Evm, ->; - /// Container type `HlEthApi` #[allow(missing_debug_implementations)] -pub(crate) struct HlEthApiInner { +pub(crate) struct HlEthApiInner { /// Gateway to node's core components. - pub(crate) eth_api: EthApiNodeBackend, + pub(crate) eth_api: EthApiInner, } +type HlRpcConvert = + RpcConverter::Evm, EthReceiptConverter>; + #[derive(Clone)] -pub struct HlEthApi { +pub struct HlEthApi { /// Gateway to node's core components. - pub(crate) inner: Arc>, - /// Converter for RPC types. - tx_resp_builder: RpcConverter, - /// Whether the node is in HL node compliant mode. - pub(crate) hl_node_compliant: bool, + pub(crate) inner: Arc>, } -impl fmt::Debug for HlEthApi { +impl fmt::Debug for HlEthApi +where + N: RpcNodeCore, + Rpc: RpcConvert, +{ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("HlEthApi").finish_non_exhaustive() } } -impl EthApiTypes for HlEthApi +impl EthApiTypes for HlEthApi where - Self: Send + Sync, - N: HlNodeCore, - N::Evm: std::fmt::Debug, + N: RpcNodeCore, + Rpc: RpcConvert, { type Error = EthApiError; - type NetworkTypes = Ethereum; - type RpcConvert = RpcConverter; + type NetworkTypes = Rpc::Network; + type RpcConvert = Rpc; fn tx_resp_builder(&self) -> &Self::RpcConvert { - &self.tx_resp_builder + self.inner.eth_api.tx_resp_builder() } } -impl RpcNodeCore for HlEthApi +impl RpcNodeCore for HlEthApi where - N: HlNodeCore, + N: RpcNodeCore, + Rpc: RpcConvert, { type Primitives = N::Primitives; type Provider = N::Provider; type Pool = N::Pool; - type Evm = ::Evm; - type Network = ::Network; - type PayloadBuilder = (); + type Evm = N::Evm; + type Network = N::Network; #[inline] fn pool(&self) -> &Self::Pool { @@ -115,37 +106,30 @@ where self.inner.eth_api.network() } - #[inline] - fn payload_builder(&self) -> &Self::PayloadBuilder { - &() - } - #[inline] fn provider(&self) -> &Self::Provider { self.inner.eth_api.provider() } } -impl RpcNodeCoreExt for HlEthApi +impl RpcNodeCoreExt for HlEthApi where - N: HlNodeCore, + N: RpcNodeCore, + Rpc: RpcConvert, { #[inline] - fn cache(&self) -> &EthStateCache, ProviderReceipt> { + fn cache(&self) -> &EthStateCache { self.inner.eth_api.cache() } } -impl EthApiSpec for HlEthApi +impl EthApiSpec for HlEthApi where - N: HlNodeCore< - Provider: ChainSpecProvider - + BlockNumReader - + StageCheckpointReader, - Network: NetworkInfo, - >, + N: RpcNodeCore, + Rpc: RpcConvert, { type Transaction = ProviderTx; + type Rpc = Rpc::Network; #[inline] fn starting_block(&self) -> U256 { @@ -153,16 +137,15 @@ where } #[inline] - fn signers(&self) -> &parking_lot::RwLock>>>> { + fn signers(&self) -> &SignersForApi { self.inner.eth_api.signers() } } -impl SpawnBlocking for HlEthApi +impl SpawnBlocking for HlEthApi where - Self: Send + Sync + Clone + 'static, - N: HlNodeCore, - N::Evm: std::fmt::Debug, + N: RpcNodeCore, + Rpc: RpcConvert, { #[inline] fn io_task_spawner(&self) -> impl TaskSpawner { @@ -180,14 +163,11 @@ where } } -impl LoadFee for HlEthApi +impl LoadFee for HlEthApi where - Self: LoadBlock, - N: HlNodeCore< - Provider: BlockReaderIdExt - + ChainSpecProvider - + StateProviderFactory, - >, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert, { #[inline] fn gas_oracle(&self) -> &GasPriceOracle { @@ -195,25 +175,22 @@ where } #[inline] - fn fee_history_cache(&self) -> &FeeHistoryCache { + fn fee_history_cache(&self) -> &FeeHistoryCache> { self.inner.eth_api.fee_history_cache() } } -impl LoadState for HlEthApi +impl LoadState for HlEthApi where - N: HlNodeCore< - Provider: StateProviderFactory + ChainSpecProvider, - Pool: TransactionPool, - >, - N::Evm: std::fmt::Debug, + N: RpcNodeCore, + Rpc: RpcConvert, { } -impl EthState for HlEthApi +impl EthState for HlEthApi where - Self: LoadState + SpawnBlocking, - N: HlNodeCore, + N: RpcNodeCore, + Rpc: RpcConvert, { #[inline] fn max_proof_window(&self) -> u64 { @@ -221,36 +198,28 @@ where } } -impl EthFees for HlEthApi +impl EthFees for HlEthApi where - Self: LoadFee< - Provider: ChainSpecProvider< - ChainSpec: EthChainSpec
>, - >, + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert, +{ +} + +impl Trace for HlEthApi +where + N: RpcNodeCore, + EthApiError: FromEvmError, + Rpc: RpcConvert, +{ +} + +impl AddDevSigners for HlEthApi +where + N: RpcNodeCore, + Rpc: RpcConvert< + Network: RpcTypes>>, >, - N: HlNodeCore, -{ -} - -impl Trace for HlEthApi -where - Self: RpcNodeCore - + LoadState< - Evm: ConfigureEvm< - Primitives: NodePrimitives< - BlockHeader = ProviderHeader, - SignedTx = ProviderTx, - >, - >, - Error: FromEvmError, - >, - N: HlNodeCore, -{ -} - -impl AddDevSigners for HlEthApi -where - N: HlNodeCore, { fn with_dev_accounts(&self) { *self.inner.eth_api.signers().write() = DevSigner::random_signers(20) @@ -258,40 +227,50 @@ where } /// Builds [`HlEthApi`] for HL. -#[derive(Debug, Default)] +#[derive(Debug)] #[non_exhaustive] -pub struct HlEthApiBuilder { - /// Whether the node is in HL node compliant mode. - pub(crate) hl_node_compliant: bool, +pub struct HlEthApiBuilder { + /// Marker for network types. + pub(crate) _nt: PhantomData, } -impl EthApiBuilder for HlEthApiBuilder -where - N: FullNodeComponents, - HlEthApi: FullEthApiServer, -{ - type EthApi = HlEthApi; - - async fn build_eth_api(self, ctx: EthApiCtx<'_, N>) -> eyre::Result { - let eth_api = reth::rpc::eth::EthApiBuilder::new( - ctx.components.provider().clone(), - ctx.components.pool().clone(), - ctx.components.network().clone(), - ctx.components.evm_config().clone(), - ) - .eth_cache(ctx.cache) - .task_spawner(ctx.components.task_executor().clone()) - .gas_cap(ctx.config.rpc_gas_cap.into()) - .max_simulate_blocks(ctx.config.rpc_max_simulate_blocks) - .eth_proof_window(ctx.config.eth_proof_window) - .fee_history_cache_config(ctx.config.fee_history_cache) - .proof_permits(ctx.config.proof_permits) - .build_inner(); - - Ok(HlEthApi { - inner: Arc::new(HlEthApiInner { eth_api }), - tx_resp_builder: Default::default(), - hl_node_compliant: self.hl_node_compliant, - }) +impl Default for HlEthApiBuilder { + fn default() -> Self { + Self { _nt: PhantomData } + } +} + +impl EthApiBuilder for HlEthApiBuilder +where + N: FullNodeComponents< + Types: NodeTypes, + Evm: ConfigureEvm< + NextBlockEnvCtx: BuildPendingEnv>, + Primitives: NodePrimitives, + >, + > + RpcNodeCore> + + FullNodeTypes< + Types: NodeTypes< + Primitives: NodePrimitives, + ChainSpec = HlChainSpec, + >, + >, + NetworkT: RpcTypes, + HlRpcConvert: RpcConvert>, + HlEthApi>: FullEthApiServer< + Provider = ::Provider, + Pool = ::Pool, + > + AddDevSigners, + <::Evm as ConfigureEvm>::NextBlockEnvCtx: BuildPendingEnv>, +{ + type EthApi = HlEthApi>; + + async fn build_eth_api(self, ctx: EthApiCtx<'_, N>) -> eyre::Result { + let provider = FullNodeComponents::provider(ctx.components); + let rpc_converter = + RpcConverter::new(EthReceiptConverter::::new(provider.chain_spec())); + let eth_api = ctx.eth_api_builder().with_rpc_converter(rpc_converter).build_inner(); + + Ok(HlEthApi { inner: Arc::new(HlEthApiInner { eth_api }) }) } } diff --git a/src/node/rpc/transaction.rs b/src/node/rpc/transaction.rs index 79738d100..160f8bbdd 100644 --- a/src/node/rpc/transaction.rs +++ b/src/node/rpc/transaction.rs @@ -1,51 +1,28 @@ -use super::HlNodeCore; use crate::node::rpc::HlEthApi; use alloy_primitives::{Bytes, B256}; -use reth::{ - rpc::server_types::eth::utils::recover_raw_transaction, - transaction_pool::{PoolTransaction, TransactionOrigin, TransactionPool}, -}; -use reth_provider::{BlockReader, BlockReaderIdExt, ProviderTx, TransactionsProvider}; +use reth::rpc::server_types::eth::EthApiError; use reth_rpc_eth_api::{ - helpers::{EthSigner, EthTransactions, LoadTransaction, SpawnBlocking}, - FromEthApiError, FullEthApiTypes, RpcNodeCore, RpcNodeCoreExt, + helpers::{spec::SignersForRpc, EthTransactions, LoadTransaction}, + RpcConvert, RpcNodeCore, }; -impl LoadTransaction for HlEthApi +impl LoadTransaction for HlEthApi where - Self: SpawnBlocking + FullEthApiTypes + RpcNodeCoreExt, - N: HlNodeCore, - Self::Pool: TransactionPool, + N: RpcNodeCore, + Rpc: RpcConvert, { } -impl EthTransactions for HlEthApi +impl EthTransactions for HlEthApi where - Self: LoadTransaction, - N: HlNodeCore>>, + N: RpcNodeCore, + Rpc: RpcConvert, { - fn signers(&self) -> &parking_lot::RwLock>>>> { + fn signers(&self) -> &SignersForRpc { self.inner.eth_api.signers() } - /// Decodes and recovers the transaction and submits it to the pool. - /// - /// Returns the hash of the transaction. - async fn send_raw_transaction(&self, tx: Bytes) -> Result { - let recovered = recover_raw_transaction(&tx)?; - - // broadcast raw transaction to subscribers if there is any. - self.inner.eth_api.broadcast_raw_transaction(tx); - - let pool_transaction = ::Transaction::from_pooled(recovered); - - // submit the transaction to the pool with a `Local` origin - let hash = self - .pool() - .add_transaction(TransactionOrigin::Local, pool_transaction) - .await - .map_err(Self::Error::from_eth_err)?; - - Ok(hash) + async fn send_raw_transaction(&self, _tx: Bytes) -> Result { + unreachable!() } } diff --git a/src/pseudo_peer/config.rs b/src/pseudo_peer/config.rs index 594e0a9fd..8b68ff881 100644 --- a/src/pseudo_peer/config.rs +++ b/src/pseudo_peer/config.rs @@ -91,7 +91,8 @@ impl BlockSourceConfig { pub async fn create_cached_block_source(&self, next_block_number: u64) -> BlockSourceBoxed { let block_source = self.create_block_source().await; - let block_source = self.create_block_source_from_node(next_block_number, block_source).await; + let block_source = + self.create_block_source_from_node(next_block_number, block_source).await; Arc::new(Box::new(CachedBlockSource::new(block_source))) } } diff --git a/src/pseudo_peer/sources/hl_node.rs b/src/pseudo_peer/sources/hl_node.rs index 7f8b1a27a..c0d523953 100644 --- a/src/pseudo_peer/sources/hl_node.rs +++ b/src/pseudo_peer/sources/hl_node.rs @@ -138,7 +138,8 @@ pub struct HlNodeBlockSource { pub fallback: BlockSourceBoxed, pub local_ingest_dir: PathBuf, pub local_blocks_cache: Arc>, // height → block - pub last_local_fetch: Arc>>, // for rate limiting requests to fallback + // for rate limiting requests to fallback + pub last_local_fetch: Arc>>, } impl BlockSource for HlNodeBlockSource { @@ -217,9 +218,7 @@ fn read_last_complete_line(read: &mut R) -> Option<(BlockAndRece if let Some(idx) = last_line.iter().rposition(|&b| b == b'\n') { let candidate = &last_line[idx + 1..]; - if let Ok((evm_block, height)) = - line_to_evm_block(str::from_utf8(candidate).unwrap()) - { + if let Ok((evm_block, height)) = line_to_evm_block(str::from_utf8(candidate).unwrap()) { return Some((evm_block, height)); } // Incomplete line; truncate and continue @@ -241,7 +240,8 @@ impl HlNodeBlockSource { /// requests to S3 while it'll return 404. /// /// To avoid unnecessary fallback, we set a short threshold period. - /// This threshold is several times longer than the expected block time, reducing redundant fallback attempts. + /// This threshold is several times longer than the expected block time, reducing redundant + /// fallback attempts. pub(crate) const MAX_ALLOWED_THRESHOLD_BEFORE_FALLBACK: Duration = Duration::milliseconds(5000); async fn update_last_fetch(&self, height: u64, now: OffsetDateTime) { @@ -327,7 +327,8 @@ impl HlNodeBlockSource { &mut 0, ScanOptions { start_height: cutoff_height, only_load_ranges: true }, ); - // Only store the block ranges for now; actual block data will be loaded lazily later to optimize memory usage + // Only store the block ranges for now; actual block data will be loaded lazily later to + // optimize memory usage scan_result.new_blocks.clear(); u_cache.load_scan_result(scan_result); } @@ -434,13 +435,13 @@ impl HlNodeBlockSource { #[cfg(test)] mod tests { use super::*; - use crate::node::types::reth_compat; - use crate::node::types::ReadPrecompileCalls; - use crate::pseudo_peer::sources::LocalBlockSource; + use crate::{ + node::types::{reth_compat, ReadPrecompileCalls}, + pseudo_peer::sources::LocalBlockSource, + }; use alloy_consensus::{BlockBody, Header}; use alloy_primitives::{Address, Bloom, Bytes, B256, B64, U256}; - use std::io::Write; - use std::time::Duration; + use std::{io::Write, time::Duration}; #[test] fn test_datetime_from_path() {