From dc371db65f0f35ea6b5e846815e7ea9c0cfea795 Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Tue, 26 Aug 2025 13:29:03 +0200 Subject: [PATCH 01/18] feat(op-angstrom/cli): WIP Flashblocks --- crates/cli/src/op_angstrom.rs | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/crates/cli/src/op_angstrom.rs b/crates/cli/src/op_angstrom.rs index 2f99a9c9c..b8ac578f4 100644 --- a/crates/cli/src/op_angstrom.rs +++ b/crates/cli/src/op_angstrom.rs @@ -31,18 +31,29 @@ const SUPPORTED_CHAINS: &[NamedChain] = &[NamedChain::Base, NamedChain::BaseSepolia, NamedChain::Unichain, NamedChain::UnichainSepolia]; #[derive(Debug, Clone, Parser)] -pub struct CombinedArgs { +pub struct OpAngstromArgs { #[command(flatten)] - pub rollup: RollupArgs, + pub rollup: RollupArgs, #[command(flatten)] - pub angstrom: AngstromConfig + pub angstrom: AngstromConfig, + /// Flashblocks WebSocket URL. Enables Flashblocks support. + #[arg(long, value_name = "WEBSOCKET_URL")] + pub flashblocks_url: Option +} + +impl OpAngstromArgs { + /// Flashblocks support is enabled if the Flashblocks WebSocket URL is + /// provided. + fn flashblocks_enabled(&self) -> bool { + self.flashblocks_url.is_some() + } } /// Convenience function for parsing CLI options, set up logging and run the /// chosen command. #[inline] pub fn run() -> eyre::Result<()> { - OpCli::::parse().run(|builder, mut args| async move { + OpCli::::parse().run(|builder, mut args| async move { let executor = builder.task_executor().clone(); let chain = builder.config().chain.chain().named().unwrap(); @@ -133,15 +144,22 @@ async fn run_with_signer( validation_client: ValidationClient, quoter_handle: QuoterHandle, secret_key: AngstromSigner, - args: CombinedArgs, + args: OpAngstromArgs, channels: RollupHandles, builder: WithLaunchContext, OpChainSpec>> ) -> eyre::Result<()> { let executor_clone = executor.clone(); + + let op_node = OpNode::new(args.rollup); + let node_handle = builder .with_types::() - .with_components(OpNode::new(args.rollup).components_builder()) - .with_add_ons::>(Default::default()) + .with_components(op_node.components_builder()) + .with_add_ons(op_node.add_ons()) + .install_exex_if(args.flashblocks_enabled(), "flashblocks", { + // TODO: Install Flashblocks ExEx here + todo!(); + }) .extend_rpc_modules(move |rpc_context| { let order_api = OrderApi::new( pool.clone(), From d7e9c295523a52efc85b9d610e7533f304c0b827 Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Wed, 27 Aug 2025 10:37:05 +0200 Subject: [PATCH 02/18] feat(op-angstrom): introduce Flashblocks types --- Cargo.lock | 3325 +++++++++++++++++------ crates/types/Cargo.toml | 4 + crates/types/src/flashblocks/mod.rs | 147 + crates/types/src/lib.rs | 1 + crates/types/src/primitive/chain_ext.rs | 5 + crates/types/src/primitive/mod.rs | 2 + crates/types/src/primitive/state.rs | 37 + 7 files changed, 2708 insertions(+), 813 deletions(-) create mode 100644 crates/types/src/flashblocks/mod.rs create mode 100644 crates/types/src/primitive/state.rs diff --git a/Cargo.lock b/Cargo.lock index 82c229dd1..0862edbf1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -298,6 +298,26 @@ dependencies = [ "sha2 0.10.9", ] +[[package]] +name = "alloy-evm" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff5aae4c6dc600734b206b175f3200085ee82dcdaa388760358830a984ca9869" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-hardforks", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-sol-types", + "auto_impl", + "derive_more", + "op-alloy-consensus", + "op-revm 7.0.1", + "revm 26.0.1", + "thiserror 2.0.12", +] + [[package]] name = "alloy-evm" version = "0.15.0" @@ -313,8 +333,8 @@ dependencies = [ "auto_impl", "derive_more", "op-alloy-consensus", - "op-revm", - "revm", + "op-revm 8.0.3", + "revm 27.0.3", "thiserror 2.0.12", ] @@ -433,6 +453,23 @@ dependencies = [ "url", ] +[[package]] +name = "alloy-op-evm" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "588a87b77b30452991151667522d2f2f724cec9c2ec6602e4187bc97f66d8095" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm 0.12.3", + "alloy-op-hardforks", + "alloy-primitives", + "auto_impl", + "op-alloy-consensus", + "op-revm 7.0.1", + "revm 26.0.1", +] + [[package]] name = "alloy-op-evm" version = "0.15.0" @@ -441,13 +478,13 @@ checksum = "0afe768962308a08b42fddef8a4296324f140b5a8dd0d4360038229885ce9434" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", "alloy-op-hardforks", "alloy-primitives", "auto_impl", "op-alloy-consensus", - "op-revm", - "revm", + "op-revm 8.0.3", + "revm 27.0.3", ] [[package]] @@ -556,7 +593,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.2", "tracing", "wasmtimer", ] @@ -603,7 +640,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.2", "tracing", "url", "wasmtimer", @@ -946,7 +983,7 @@ dependencies = [ "serde_json", "thiserror 2.0.12", "tokio", - "tower", + "tower 0.5.2", "tracing", "url", "wasmtimer", @@ -962,7 +999,7 @@ dependencies = [ "alloy-transport", "reqwest", "serde_json", - "tower", + "tower 0.5.2", "tracing", "url", ] @@ -1110,14 +1147,14 @@ dependencies = [ "rayon", "reth", "reth-db", - "reth-metrics", + "reth-metrics 1.6.0", "reth-network", "reth-node-builder", "reth-node-ethereum", - "reth-optimism-chainspec", + "reth-optimism-chainspec 1.6.0", "reth-optimism-cli", "reth-optimism-node", - "reth-optimism-primitives", + "reth-optimism-primitives 1.6.0", "reth-provider", "serde", "telemetry", @@ -1142,11 +1179,11 @@ dependencies = [ "itertools 0.14.0", "pade", "rand 0.9.1", - "reth-ethereum-primitives", - "reth-execution-types", + "reth-ethereum-primitives 1.6.0", + "reth-execution-types 1.6.0", "reth-primitives", "reth-provider", - "reth-tasks", + "reth-tasks 1.6.0", "serde", "serde_json", "serde_with", @@ -1164,7 +1201,7 @@ dependencies = [ "angstrom-types", "eyre", "hyper 1.6.0", - "jsonrpsee-server", + "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics 0.21.1", "metrics-exporter-prometheus", "metrics-process 1.2.1", @@ -1174,7 +1211,7 @@ dependencies = [ "reth-node-metrics", "tikv-jemalloc-ctl", "tokio", - "tower", + "tower 0.5.2", "tracing", ] @@ -1200,17 +1237,17 @@ dependencies = [ "reth", "reth-discv4", "reth-eth-wire", - "reth-metrics", + "reth-metrics 1.6.0", "reth-net-banlist", "reth-network", "reth-network-p2p", - "reth-network-peers", + "reth-network-peers 1.6.0", "reth-node-builder", "reth-primitives", "reth-provider", - "reth-tasks", + "reth-tasks 1.6.0", "reth-tracing", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", "secp256k1 0.30.0", "serde", "serial_test", @@ -1237,11 +1274,11 @@ dependencies = [ "async-trait", "consensus", "futures", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "order-pool", "pool-manager", "rand 0.9.1", - "reth-tasks", + "reth-tasks 1.6.0", "serde", "serde_json", "strum 0.27.1", @@ -1277,20 +1314,22 @@ dependencies = [ "rand 0.9.1", "reqwest", "reth", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-eth-wire", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-network-peers", + "reth-ethereum-primitives 1.6.0", + "reth-execution-types 1.6.0", + "reth-network-peers 1.6.0", + "reth-optimism-primitives 1.6.0", "reth-primitives", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-storage-api", - "reth-trie", - "revm", - "revm-bytecode", - "revm-database", + "reth-storage-api 1.6.0", + "reth-trie 1.6.0", + "revm 27.0.3", + "revm-bytecode 6.0.1", + "revm-database 7.0.1", "revm-primitives", + "rollup-boost", "secp256k1 0.30.0", "serde", "serde_json", @@ -1298,7 +1337,7 @@ dependencies = [ "testing-tools", "thiserror 1.0.69", "tokio", - "tower", + "tower 0.5.2", "tracing", "tracing-subscriber 0.3.19", "uniswap_v3_math", @@ -1724,6 +1763,17 @@ dependencies = [ "zstd-safe", ] +[[package]] +name = "async-lock" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + [[package]] name = "async-stream" version = "0.3.6" @@ -2108,7 +2158,7 @@ dependencies = [ "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tower", + "tower 0.5.2", "tracing", ] @@ -2230,6 +2280,53 @@ dependencies = [ "tracing", ] +[[package]] +name = "axum" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + [[package]] name = "az" version = "1.2.1" @@ -2625,6 +2722,56 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "bollard" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccca1260af6a459d75994ad5acc1651bcabcbdbc41467cc9786519ab854c30" +dependencies = [ + "base64 0.22.1", + "bollard-stubs", + "bytes", + "futures-core", + "futures-util", + "hex", + "home", + "http 1.3.1", + "http-body-util", + "hyper 1.6.0", + "hyper-named-pipe", + "hyper-rustls 0.27.7", + "hyper-util", + "hyperlocal", + "log", + "pin-project-lite", + "rustls 0.23.28", + "rustls-native-certs 0.8.1", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "serde", + "serde_derive", + "serde_json", + "serde_repr", + "serde_urlencoded", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tower-service", + "url", + "winapi", +] + +[[package]] +name = "bollard-stubs" +version = "1.47.1-rc.27.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f179cfbddb6e77a5472703d4b30436bff32929c0aa8a9008ecf23d1d3cdd0da" +dependencies = [ + "serde", + "serde_repr", + "serde_with", +] + [[package]] name = "boyer-moore-magiclen" version = "0.2.20" @@ -3105,6 +3252,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "condtype" version = "1.3.0" @@ -3127,9 +3283,9 @@ dependencies = [ "matching-engine", "order-pool", "rand 0.9.1", - "reth-metrics", + "reth-metrics 1.6.0", "reth-provider", - "reth-tasks", + "reth-tasks 1.6.0", "serde", "telemetry-recorder", "testing-tools", @@ -3252,7 +3408,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pade", "reth", "secp256k1 0.30.0", @@ -3903,12 +4059,29 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "docker_credential" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d89dfcba45b4afad7450a99b39e751590463e45c04728cf555d36bb66940de8" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + [[package]] name = "doctest-file" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + [[package]] name = "dunce" version = "1.0.5" @@ -4126,6 +4299,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + [[package]] name = "eth-keystore" version = "0.5.0" @@ -4199,6 +4383,27 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "event-listener" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + [[package]] name = "eyre" version = "0.6.12" @@ -5038,6 +5243,21 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-named-pipe" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" +dependencies = [ + "hex", + "hyper 1.6.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", + "winapi", +] + [[package]] name = "hyper-rustls" version = "0.24.2" @@ -5073,6 +5293,19 @@ dependencies = [ "webpki-roots 1.0.1", ] +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper 1.6.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.6.0" @@ -5115,6 +5348,21 @@ dependencies = [ "windows-registry", ] +[[package]] +name = "hyperlocal" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" +dependencies = [ + "hex", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "iana-time-zone" version = "0.1.63" @@ -5657,17 +5905,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fba77a59c4c644fd48732367624d1bcf6f409f9c9a286fbc71d2f1fc0b2ea16" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-http-client 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-proc-macros 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpsee-wasm-client", "jsonrpsee-ws-client", "tokio", "tracing", ] +[[package]] +name = "jsonrpsee" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-http-client 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-proc-macros 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-server 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "tokio", + "tracing", +] + [[package]] name = "jsonrpsee-client-transport" version = "0.25.1" @@ -5679,7 +5941,7 @@ dependencies = [ "futures-util", "gloo-net", "http 1.3.1", - "jsonrpsee-core", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project", "rustls 0.23.28", "rustls-pki-types", @@ -5706,7 +5968,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "http-body-util", - "jsonrpsee-types", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot", "pin-project", "rand 0.9.1", @@ -5716,11 +5978,35 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tokio-stream", - "tower", + "tower 0.5.2", "tracing", "wasm-bindgen-futures", ] +[[package]] +name = "jsonrpsee-core" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "parking_lot", + "pin-project", + "rand 0.9.1", + "rustc-hash 2.1.1", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tower 0.5.2", + "tracing", +] + [[package]] name = "jsonrpsee-http-client" version = "0.25.1" @@ -5732,15 +6018,37 @@ dependencies = [ "hyper 1.6.0", "hyper-rustls 0.27.7", "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.23.28", + "rustls-platform-verifier", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tower 0.5.2", + "url", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "base64 0.22.1", + "http-body 1.0.1", + "hyper 1.6.0", + "hyper-rustls 0.27.7", + "hyper-util", + "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", "rustls 0.23.28", "rustls-platform-verifier", "serde", "serde_json", "thiserror 2.0.12", "tokio", - "tower", + "tower 0.5.2", "url", ] @@ -5757,6 +6065,18 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "heck", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "jsonrpsee-server" version = "0.25.1" @@ -5769,8 +6089,8 @@ dependencies = [ "http-body-util", "hyper 1.6.0", "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project", "route-recognizer", "serde", @@ -5780,21 +6100,58 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "tower", + "tower 0.5.2", "tracing", ] [[package]] -name = "jsonrpsee-types" +name = "jsonrpsee-server" version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66df7256371c45621b3b7d2fb23aea923d577616b9c0e9c0b950a6ea5c2be0ca" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" dependencies = [ + "futures-util", "http 1.3.1", - "serde", - "serde_json", - "thiserror 2.0.12", -] + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "pin-project", + "route-recognizer", + "serde", + "serde_json", + "soketto", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tokio-util", + "tower 0.5.2", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66df7256371c45621b3b7d2fb23aea923d577616b9c0e9c0b950a6ea5c2be0ca" +dependencies = [ + "http 1.3.1", + "serde", + "serde_json", + "thiserror 2.0.12", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.25.1" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +dependencies = [ + "http 1.3.1", + "serde", + "serde_json", + "thiserror 2.0.12", +] [[package]] name = "jsonrpsee-wasm-client" @@ -5803,9 +6160,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b67695cbcf4653f39f8f8738925547e0e23fd9fe315bccf951097b9f6a38781" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", - "tower", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tower 0.5.2", ] [[package]] @@ -5816,9 +6173,9 @@ checksum = "2da2694c9ff271a9d3ebfe520f6b36820e85133a51be77a3cb549fd615095261" dependencies = [ "http 1.3.1", "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", - "tower", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tower 0.5.2", "url", ] @@ -5985,7 +6342,7 @@ checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags 2.9.1", "libc", - "redox_syscall", + "redox_syscall 0.5.13", ] [[package]] @@ -6264,12 +6621,12 @@ dependencies = [ "futures", "futures-util", "itertools 0.14.0", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pade", "pade-macro", "rand 0.9.1", "rand_distr", - "reth-tasks", + "reth-tasks 1.6.0", "serde", "serde_json", "testing-tools", @@ -6282,6 +6639,12 @@ dependencies = [ "validation", ] +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "md-5" version = "0.10.6" @@ -6437,11 +6800,15 @@ version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8496cc523d1f94c1385dd8f0f0c2c480b2b8aeccb5b7e4485ad6365523ae376" dependencies = [ + "aho-corasick", "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.4", + "indexmap 2.10.0", "metrics 0.24.2", + "ordered-float", "quanta", + "radix_trie", "rand 0.9.1", "rand_xoshiro", "sketches-ddsketch", @@ -6552,9 +6919,12 @@ version = "0.12.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" dependencies = [ + "async-lock", "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", + "event-listener", + "futures-util", "loom", "parking_lot", "portable-atomic", @@ -6932,7 +7302,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3833995acfc568fdac3684f037c4ed3f1f2bd2ef5deeb3f46ecee32aafa34c8e" dependencies = [ "alloy-primitives", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -6983,6 +7353,18 @@ dependencies = [ "tikv-jemallocator", ] +[[package]] +name = "op-revm" +version = "7.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b97d2b54651fcd2955b454e86b2336c031e17925a127f4c44e2b63b2eeda923" +dependencies = [ + "auto_impl", + "once_cell", + "revm 26.0.1", + "serde", +] + [[package]] name = "op-revm" version = "8.0.3" @@ -6991,7 +7373,7 @@ checksum = "ee9ba9cab294a5ed02afd1a1060220762b3c52911acab635db33822e93f7276d" dependencies = [ "auto_impl", "once_cell", - "revm", + "revm 27.0.3", "serde", ] @@ -7045,6 +7427,92 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "opentelemetry" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "236e667b670a5cdf90c258f5a55794ec5ac5027e960c224bff8367a59e1e6426" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "pin-project-lite", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "opentelemetry-http" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8863faf2910030d139fb48715ad5ff2f35029fc5f244f6d5f689ddcf4d26253" +dependencies = [ + "async-trait", + "bytes", + "http 1.3.1", + "opentelemetry", + "reqwest", + "tracing", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bef114c6d41bea83d6dc60eb41720eedd0261a67af57b66dd2b84ac46c01d91" +dependencies = [ + "async-trait", + "futures-core", + "http 1.3.1", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-proto", + "opentelemetry_sdk", + "prost", + "reqwest", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tonic", + "tracing", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f8870d3024727e99212eb3bb1762ec16e255e3e6f58eeb3dc8db1aa226746d" +dependencies = [ + "base64 0.22.1", + "hex", + "opentelemetry", + "opentelemetry_sdk", + "prost", + "serde", + "tonic", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84dfad6042089c7fc1f6118b7040dc2eb4ab520abbf410b79dc481032af39570" +dependencies = [ + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "opentelemetry", + "percent-encoding", + "rand 0.8.5", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tracing", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -7066,12 +7534,12 @@ dependencies = [ "pade", "rand 0.9.1", "reth-discv4", - "reth-metrics", + "reth-metrics 1.6.0", "reth-network", "reth-primitives", "reth-provider", "reth-tracing", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", "secp256k1 0.30.0", "serde", "serde_json", @@ -7209,6 +7677,12 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.12.4" @@ -7227,11 +7701,36 @@ checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.13", "smallvec", "windows-targets 0.52.6", ] +[[package]] +name = "parse-display" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" +dependencies = [ + "parse-display-derive", + "regex", + "regex-syntax 0.8.5", +] + +[[package]] +name = "parse-display-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae7800a4c974efd12df917266338e79a7a74415173caf7e70aa0a0707345281" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "regex-syntax 0.8.5", + "structmeta", + "syn 2.0.104", +] + [[package]] name = "paste" version = "1.0.15" @@ -7482,19 +7981,19 @@ dependencies = [ "rayon", "reth", "reth-discv4", - "reth-metrics", + "reth-metrics 1.6.0", "reth-network", - "reth-network-peers", + "reth-network-peers 1.6.0", "reth-primitives", "reth-provider", - "reth-tasks", + "reth-tasks 1.6.0", "reth-tracing", - "reth-transaction-pool", - "revm", - "revm-bytecode", - "revm-database", + "reth-transaction-pool 1.6.0", + "revm 27.0.3", + "revm-bytecode 6.0.1", + "revm-database 7.0.1", "revm-primitives", - "revm-state", + "revm-state 7.0.1", "secp256k1 0.30.0", "serde", "serial_test", @@ -7729,6 +8228,29 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "prost" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "protobuf" version = "2.28.0" @@ -8028,6 +8550,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_syscall" version = "0.5.13" @@ -8199,7 +8730,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls 0.26.2", "tokio-util", - "tower", + "tower 0.5.2", "tower-http", "tower-service", "url", @@ -8225,16 +8756,16 @@ dependencies = [ "aquamarine", "clap", "eyre", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-cli-runner", "reth-cli-util", - "reth-consensus", - "reth-consensus-common", + "reth-consensus 1.6.0", + "reth-consensus-common 1.6.0", "reth-db", "reth-ethereum-cli", "reth-ethereum-payload-builder", - "reth-ethereum-primitives", - "reth-evm", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", "reth-network", "reth-network-api", "reth-node-api", @@ -8242,22 +8773,46 @@ dependencies = [ "reth-node-core", "reth-node-ethereum", "reth-node-metrics", - "reth-payload-builder", - "reth-payload-primitives", + "reth-payload-builder 1.6.0", + "reth-payload-primitives 1.6.0", "reth-primitives", "reth-provider", "reth-ress-protocol", "reth-ress-provider", - "reth-revm", + "reth-revm 1.6.0", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-tasks", + "reth-tasks 1.6.0", "reth-tokio-util", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", + "tokio", + "tracing", +] + +[[package]] +name = "reth-basic-payload-builder" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "futures-core", + "futures-util", + "metrics 0.24.2", + "reth-chain-state 1.5.0", + "reth-metrics 1.5.0", + "reth-payload-builder 1.5.0", + "reth-payload-builder-primitives 1.5.0", + "reth-payload-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-revm 1.5.0", + "reth-storage-api 1.5.0", + "reth-tasks 1.5.0", "tokio", "tracing", ] @@ -8273,16 +8828,42 @@ dependencies = [ "futures-core", "futures-util", "metrics 0.24.2", - "reth-chain-state", - "reth-metrics", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-primitives-traits", - "reth-revm", - "reth-storage-api", - "reth-tasks", + "reth-chain-state 1.6.0", + "reth-metrics 1.6.0", + "reth-payload-builder 1.6.0", + "reth-payload-builder-primitives 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-revm 1.6.0", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", + "tokio", + "tracing", +] + +[[package]] +name = "reth-chain-state" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "derive_more", + "metrics 0.24.2", + "parking_lot", + "pin-project", + "reth-chainspec 1.5.0", + "reth-errors 1.5.0", + "reth-ethereum-primitives 1.5.0", + "reth-execution-types 1.5.0", + "reth-metrics 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-storage-api 1.5.0", + "reth-trie 1.5.0", + "revm-database 6.0.0", "tokio", + "tokio-stream", "tracing", ] @@ -8301,22 +8882,42 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.9.1", - "reth-chainspec", - "reth-errors", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-metrics", - "reth-primitives-traits", - "reth-storage-api", - "reth-trie", - "revm-database", - "revm-state", + "reth-chainspec 1.6.0", + "reth-errors 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-execution-types 1.6.0", + "reth-metrics 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-trie 1.6.0", + "revm-database 7.0.1", + "revm-state 7.0.1", "serde", "tokio", "tokio-stream", "tracing", ] +[[package]] +name = "reth-chainspec" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-evm 0.12.3", + "alloy-genesis", + "alloy-primitives", + "alloy-trie", + "auto_impl", + "derive_more", + "reth-ethereum-forks 1.5.0", + "reth-network-peers 1.5.0", + "reth-primitives-traits 1.5.0", + "serde_json", +] + [[package]] name = "reth-chainspec" version = "1.6.0" @@ -8325,15 +8926,15 @@ dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", "alloy-genesis", "alloy-primitives", "alloy-trie", "auto_impl", "derive_more", - "reth-ethereum-forks", - "reth-network-peers", - "reth-primitives-traits", + "reth-ethereum-forks 1.6.0", + "reth-network-peers 1.6.0", + "reth-primitives-traits 1.6.0", "serde_json", ] @@ -8374,13 +8975,13 @@ dependencies = [ "lz4", "ratatui", "reqwest", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs", + "reth-codecs 1.6.0", "reth-config", - "reth-consensus", + "reth-consensus 1.6.0", "reth-db", "reth-db-api", "reth-db-common", @@ -8393,26 +8994,26 @@ dependencies = [ "reth-era-utils", "reth-eth-wire", "reth-etl", - "reth-evm", + "reth-evm 1.6.0", "reth-exex", - "reth-fs-util", + "reth-fs-util 1.6.0", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers", + "reth-network-peers 1.6.0", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-provider", "reth-prune", - "reth-revm", + "reth-revm 1.6.0", "reth-stages", "reth-static-file", - "reth-static-file-types", - "reth-trie", + "reth-static-file-types 1.6.0", + "reth-trie 1.6.0", "reth-trie-db", "secp256k1 0.30.0", "serde", @@ -8429,7 +9030,7 @@ name = "reth-cli-runner" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" dependencies = [ - "reth-tasks", + "reth-tasks 1.6.0", "tokio", "tracing", ] @@ -8445,13 +9046,31 @@ dependencies = [ "eyre", "libc", "rand 0.8.5", - "reth-fs-util", + "reth-fs-util 1.6.0", "secp256k1 0.30.0", "serde", "thiserror 2.0.12", "tikv-jemallocator", ] +[[package]] +name = "reth-codecs" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives", + "alloy-trie", + "bytes", + "modular-bitfield", + "op-alloy-consensus", + "reth-codecs-derive 1.5.0", + "reth-zstd-compressors 1.5.0", + "serde", +] + [[package]] name = "reth-codecs" version = "1.6.0" @@ -8466,12 +9085,23 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs-derive", - "reth-zstd-compressors", + "reth-codecs-derive 1.6.0", + "reth-zstd-compressors 1.6.0", "serde", "visibility", ] +[[package]] +name = "reth-codecs-derive" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "convert_case 0.7.1", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "reth-codecs-derive" version = "1.6.0" @@ -8491,13 +9121,26 @@ dependencies = [ "eyre", "humantime-serde", "reth-network-types", - "reth-prune-types", - "reth-stages-types", + "reth-prune-types 1.6.0", + "reth-stages-types 1.6.0", "serde", "toml", "url", ] +[[package]] +name = "reth-consensus" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-primitives", + "auto_impl", + "reth-execution-types 1.5.0", + "reth-primitives-traits 1.5.0", + "thiserror 2.0.12", +] + [[package]] name = "reth-consensus" version = "1.6.0" @@ -8506,11 +9149,23 @@ dependencies = [ "alloy-consensus", "alloy-primitives", "auto_impl", - "reth-execution-types", - "reth-primitives-traits", + "reth-execution-types 1.6.0", + "reth-primitives-traits 1.6.0", "thiserror 2.0.12", ] +[[package]] +name = "reth-consensus-common" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "reth-chainspec 1.5.0", + "reth-consensus 1.5.0", + "reth-primitives-traits 1.5.0", +] + [[package]] name = "reth-consensus-common" version = "1.6.0" @@ -8518,9 +9173,9 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-eips", - "reth-chainspec", - "reth-consensus", - "reth-primitives-traits", + "reth-chainspec 1.6.0", + "reth-consensus 1.6.0", + "reth-primitives-traits 1.6.0", ] [[package]] @@ -8540,7 +9195,7 @@ dependencies = [ "futures", "reqwest", "reth-node-api", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-tracing", "ringbuffer", "serde", @@ -8560,12 +9215,12 @@ dependencies = [ "page_size", "parking_lot", "reth-db-api", - "reth-fs-util", + "reth-fs-util 1.6.0", "reth-libmdbx", - "reth-metrics", + "reth-metrics 1.6.0", "reth-nippy-jar", - "reth-static-file-types", - "reth-storage-errors", + "reth-static-file-types 1.6.0", + "reth-storage-errors 1.6.0", "reth-tracing", "rustc-hash 2.1.1", "strum 0.27.1", @@ -8589,15 +9244,15 @@ dependencies = [ "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs", - "reth-db-models", - "reth-ethereum-primitives", - "reth-optimism-primitives", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", + "reth-codecs 1.6.0", + "reth-db-models 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-prune-types 1.6.0", + "reth-stages-types 1.6.0", + "reth-storage-errors 1.6.0", + "reth-trie-common 1.6.0", "roaring", "serde", ] @@ -8612,18 +9267,18 @@ dependencies = [ "alloy-primitives", "boyer-moore-magiclen", "eyre", - "reth-chainspec", - "reth-codecs", + "reth-chainspec 1.6.0", + "reth-codecs 1.6.0", "reth-config", "reth-db-api", "reth-etl", - "reth-fs-util", + "reth-fs-util 1.6.0", "reth-node-types", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-stages-types", - "reth-static-file-types", - "reth-trie", + "reth-stages-types 1.6.0", + "reth-static-file-types 1.6.0", + "reth-trie 1.6.0", "reth-trie-db", "serde", "serde_json", @@ -8633,17 +9288,27 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" dependencies = [ "alloy-eips", "alloy-primitives", - "arbitrary", - "bytes", - "modular-bitfield", - "reth-codecs", - "reth-primitives-traits", - "serde", + "reth-primitives-traits 1.5.0", +] + +[[package]] +name = "reth-db-models" +version = "1.6.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "arbitrary", + "bytes", + "modular-bitfield", + "reth-codecs 1.6.0", + "reth-primitives-traits 1.6.0", + "serde", ] [[package]] @@ -8659,10 +9324,10 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "rand 0.8.5", - "reth-ethereum-forks", + "reth-ethereum-forks 1.6.0", "reth-net-banlist", "reth-net-nat", - "reth-network-peers", + "reth-network-peers 1.6.0", "schnellru", "secp256k1 0.30.0", "serde", @@ -8686,10 +9351,10 @@ dependencies = [ "itertools 0.14.0", "metrics 0.24.2", "rand 0.9.1", - "reth-chainspec", - "reth-ethereum-forks", - "reth-metrics", - "reth-network-peers", + "reth-chainspec 1.6.0", + "reth-ethereum-forks 1.6.0", + "reth-metrics 1.6.0", + "reth-network-peers 1.6.0", "secp256k1 0.30.0", "thiserror 2.0.12", "tokio", @@ -8707,8 +9372,8 @@ dependencies = [ "hickory-resolver", "linked_hash_set", "parking_lot", - "reth-ethereum-forks", - "reth-network-peers", + "reth-ethereum-forks 1.6.0", + "reth-network-peers 1.6.0", "reth-tokio-util", "schnellru", "secp256k1 0.30.0", @@ -8736,13 +9401,13 @@ dependencies = [ "pin-project", "rayon", "reth-config", - "reth-consensus", - "reth-metrics", + "reth-consensus 1.6.0", + "reth-metrics 1.6.0", "reth-network-p2p", - "reth-network-peers", - "reth-primitives-traits", - "reth-storage-api", - "reth-tasks", + "reth-network-peers 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", "thiserror 2.0.12", "tokio", "tokio-stream", @@ -8769,7 +9434,7 @@ dependencies = [ "hmac", "pin-project", "rand 0.8.5", - "reth-network-peers", + "reth-network-peers 1.6.0", "secp256k1 0.30.0", "sha2 0.10.9", "sha3", @@ -8792,19 +9457,44 @@ dependencies = [ "eyre", "futures-util", "op-alloy-rpc-types-engine", - "reth-chainspec", - "reth-engine-primitives", - "reth-ethereum-engine-primitives", - "reth-optimism-chainspec", - "reth-payload-builder", - "reth-payload-primitives", + "reth-chainspec 1.6.0", + "reth-engine-primitives 1.6.0", + "reth-ethereum-engine-primitives 1.6.0", + "reth-optimism-chainspec 1.6.0", + "reth-payload-builder 1.6.0", + "reth-payload-primitives 1.6.0", "reth-provider", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", "tokio", "tokio-stream", "tracing", ] +[[package]] +name = "reth-engine-primitives" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rpc-types-engine", + "auto_impl", + "futures", + "reth-chain-state 1.5.0", + "reth-errors 1.5.0", + "reth-ethereum-primitives 1.5.0", + "reth-execution-types 1.5.0", + "reth-payload-builder-primitives 1.5.0", + "reth-payload-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-trie 1.5.0", + "reth-trie-common 1.5.0", + "serde", + "thiserror 2.0.12", + "tokio", +] + [[package]] name = "reth-engine-primitives" version = "1.6.0" @@ -8816,15 +9506,15 @@ dependencies = [ "alloy-rpc-types-engine", "auto_impl", "futures", - "reth-chain-state", - "reth-errors", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-primitives-traits", - "reth-trie", - "reth-trie-common", + "reth-chain-state 1.6.0", + "reth-errors 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-execution-types 1.6.0", + "reth-payload-builder-primitives 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-trie 1.6.0", + "reth-trie-common 1.6.0", "serde", "thiserror 2.0.12", "tokio", @@ -8837,19 +9527,19 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "futures", "pin-project", - "reth-chainspec", - "reth-consensus", - "reth-engine-primitives", + "reth-chainspec 1.6.0", + "reth-consensus 1.6.0", + "reth-engine-primitives 1.6.0", "reth-engine-tree", - "reth-ethereum-primitives", - "reth-evm", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", "reth-network-p2p", "reth-node-types", - "reth-payload-builder", + "reth-payload-builder 1.6.0", "reth-provider", "reth-prune", "reth-stages-api", - "reth-tasks", + "reth-tasks 1.6.0", "thiserror 2.0.12", ] @@ -8860,7 +9550,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", @@ -8871,29 +9561,29 @@ dependencies = [ "mini-moka", "parking_lot", "rayon", - "reth-chain-state", - "reth-consensus", + "reth-chain-state 1.6.0", + "reth-consensus 1.6.0", "reth-db", - "reth-engine-primitives", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", - "reth-metrics", + "reth-engine-primitives 1.6.0", + "reth-errors 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", + "reth-metrics 1.6.0", "reth-network-p2p", - "reth-payload-builder", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-payload-builder 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", "reth-prune", - "reth-revm", + "reth-revm 1.6.0", "reth-stages-api", - "reth-tasks", - "reth-trie", + "reth-tasks 1.6.0", + "reth-trie 1.6.0", "reth-trie-db", "reth-trie-parallel", - "reth-trie-sparse", + "reth-trie-sparse 1.6.0", "reth-trie-sparse-parallel", - "revm", + "revm 27.0.3", "revm-primitives", "schnellru", "thiserror 2.0.12", @@ -8912,15 +9602,15 @@ dependencies = [ "futures", "itertools 0.14.0", "pin-project", - "reth-chainspec", - "reth-engine-primitives", - "reth-errors", - "reth-evm", - "reth-fs-util", - "reth-payload-primitives", - "reth-primitives-traits", - "reth-revm", - "reth-storage-api", + "reth-chainspec 1.6.0", + "reth-engine-primitives 1.6.0", + "reth-errors 1.6.0", + "reth-evm 1.6.0", + "reth-fs-util 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-revm 1.6.0", + "reth-storage-api 1.6.0", "serde", "serde_json", "tokio", @@ -8939,7 +9629,7 @@ dependencies = [ "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", - "reth-ethereum-primitives", + "reth-ethereum-primitives 1.6.0", "snap", "thiserror 2.0.12", ] @@ -8954,7 +9644,7 @@ dependencies = [ "eyre", "futures-util", "reqwest", - "reth-fs-util", + "reth-fs-util 1.6.0", "sha2 0.10.9", "tokio", ] @@ -8972,25 +9662,36 @@ dependencies = [ "reth-db-api", "reth-era", "reth-era-downloader", - "reth-ethereum-primitives", + "reth-ethereum-primitives 1.6.0", "reth-etl", - "reth-fs-util", - "reth-primitives-traits", + "reth-fs-util 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-stages-types", - "reth-storage-api", + "reth-stages-types 1.6.0", + "reth-storage-api 1.6.0", "tokio", "tracing", ] +[[package]] +name = "reth-errors" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "reth-consensus 1.5.0", + "reth-execution-errors 1.5.0", + "reth-storage-errors 1.5.0", + "thiserror 2.0.12", +] + [[package]] name = "reth-errors" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" dependencies = [ - "reth-consensus", - "reth-execution-errors", - "reth-storage-errors", + "reth-consensus 1.6.0", + "reth-execution-errors 1.6.0", + "reth-storage-errors 1.6.0", "thiserror 2.0.12", ] @@ -9006,13 +9707,13 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs", + "reth-codecs 1.6.0", "reth-ecies", - "reth-eth-wire-types", - "reth-ethereum-forks", - "reth-metrics", - "reth-network-peers", - "reth-primitives-traits", + "reth-eth-wire-types 1.6.0", + "reth-ethereum-forks 1.6.0", + "reth-metrics 1.6.0", + "reth-network-peers 1.6.0", + "reth-primitives-traits 1.6.0", "serde", "snap", "thiserror 2.0.12", @@ -9022,6 +9723,27 @@ dependencies = [ "tracing", ] +[[package]] +name = "reth-eth-wire-types" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-hardforks", + "alloy-primitives", + "alloy-rlp", + "bytes", + "derive_more", + "reth-chainspec 1.5.0", + "reth-codecs-derive 1.5.0", + "reth-ethereum-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "serde", + "thiserror 2.0.12", +] + [[package]] name = "reth-eth-wire-types" version = "1.6.0" @@ -9035,10 +9757,10 @@ dependencies = [ "alloy-rlp", "bytes", "derive_more", - "reth-chainspec", - "reth-codecs-derive", - "reth-ethereum-primitives", - "reth-primitives-traits", + "reth-chainspec 1.6.0", + "reth-codecs-derive 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "serde", "thiserror 2.0.12", ] @@ -9051,7 +9773,7 @@ dependencies = [ "alloy-consensus", "clap", "eyre", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-cli", "reth-cli-commands", "reth-cli-runner", @@ -9073,14 +9795,32 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-execution-types", - "reth-primitives-traits", + "reth-chainspec 1.6.0", + "reth-consensus 1.6.0", + "reth-consensus-common 1.6.0", + "reth-execution-types 1.6.0", + "reth-primitives-traits 1.6.0", "tracing", ] +[[package]] +name = "reth-ethereum-engine-primitives" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-engine", + "reth-engine-primitives 1.5.0", + "reth-ethereum-primitives 1.5.0", + "reth-payload-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "serde", + "sha2 0.10.9", + "thiserror 2.0.12", +] + [[package]] name = "reth-ethereum-engine-primitives" version = "1.6.0" @@ -9090,15 +9830,28 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", - "reth-engine-primitives", - "reth-ethereum-primitives", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-engine-primitives 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "serde", "sha2 0.10.9", "thiserror 2.0.12", ] +[[package]] +name = "reth-ethereum-forks" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-eip2124", + "alloy-hardforks", + "alloy-primitives", + "auto_impl", + "once_cell", + "rustc-hash 2.1.1", +] + [[package]] name = "reth-ethereum-forks" version = "1.6.0" @@ -9122,24 +9875,39 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", - "reth-basic-payload-builder", - "reth-chainspec", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", + "reth-basic-payload-builder 1.6.0", + "reth-chainspec 1.6.0", + "reth-errors 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", "reth-evm-ethereum", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-payload-validator", - "reth-primitives-traits", - "reth-revm", - "reth-storage-api", - "reth-transaction-pool", - "revm", + "reth-payload-builder 1.6.0", + "reth-payload-builder-primitives 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-payload-validator 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-revm 1.6.0", + "reth-storage-api 1.6.0", + "reth-transaction-pool 1.6.0", + "revm 27.0.3", "tracing", ] +[[package]] +name = "reth-ethereum-primitives" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "reth-primitives-traits 1.5.0", + "reth-zstd-compressors 1.5.0", + "serde", + "serde_with", +] + [[package]] name = "reth-ethereum-primitives" version = "1.6.0" @@ -9151,9 +9919,9 @@ dependencies = [ "alloy-rlp", "arbitrary", "modular-bitfield", - "reth-codecs", - "reth-primitives-traits", - "reth-zstd-compressors", + "reth-codecs 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-zstd-compressors 1.6.0", "serde", "serde_with", ] @@ -9168,6 +9936,27 @@ dependencies = [ "tempfile", ] +[[package]] +name = "reth-evm" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm 0.12.3", + "alloy-primitives", + "auto_impl", + "derive_more", + "futures-util", + "reth-execution-errors 1.5.0", + "reth-execution-types 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-storage-api 1.5.0", + "reth-storage-errors 1.5.0", + "reth-trie-common 1.5.0", + "revm 26.0.1", +] + [[package]] name = "reth-evm" version = "1.6.0" @@ -9175,20 +9964,20 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", "alloy-primitives", "auto_impl", "derive_more", "futures-util", "metrics 0.24.2", - "reth-execution-errors", - "reth-execution-types", - "reth-metrics", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie-common", - "revm", + "reth-execution-errors 1.6.0", + "reth-execution-types 1.6.0", + "reth-metrics 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-storage-errors 1.6.0", + "reth-trie-common 1.6.0", + "revm 27.0.3", ] [[package]] @@ -9198,15 +9987,28 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", + "alloy-primitives", + "reth-chainspec 1.6.0", + "reth-ethereum-forks 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", + "reth-execution-types 1.6.0", + "reth-primitives-traits 1.6.0", + "revm 27.0.3", +] + +[[package]] +name = "reth-execution-errors" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-evm 0.12.3", "alloy-primitives", - "reth-chainspec", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-primitives-traits", - "revm", + "alloy-rlp", + "nybbles", + "reth-storage-errors 1.5.0", + "thiserror 2.0.12", ] [[package]] @@ -9214,14 +10016,30 @@ name = "reth-execution-errors" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" dependencies = [ - "alloy-evm", + "alloy-evm 0.15.0", "alloy-primitives", "alloy-rlp", "nybbles", - "reth-storage-errors", + "reth-storage-errors 1.6.0", "thiserror 2.0.12", ] +[[package]] +name = "reth-execution-types" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm 0.12.3", + "alloy-primitives", + "derive_more", + "reth-ethereum-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-trie-common 1.5.0", + "revm 26.0.1", +] + [[package]] name = "reth-execution-types" version = "1.6.0" @@ -9229,13 +10047,13 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", "alloy-primitives", "derive_more", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-trie-common", - "revm", + "reth-ethereum-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-trie-common 1.6.0", + "revm 27.0.3", "serde", "serde_with", ] @@ -9253,23 +10071,23 @@ dependencies = [ "itertools 0.14.0", "metrics 0.24.2", "parking_lot", - "reth-chain-state", - "reth-chainspec", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", "reth-config", - "reth-ethereum-primitives", - "reth-evm", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", "reth-exex-types", - "reth-fs-util", - "reth-metrics", + "reth-fs-util 1.6.0", + "reth-metrics 1.6.0", "reth-node-api", "reth-node-core", - "reth-payload-builder", - "reth-primitives-traits", + "reth-payload-builder 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-prune-types", - "reth-revm", + "reth-prune-types 1.6.0", + "reth-revm 1.6.0", "reth-stages-api", - "reth-tasks", + "reth-tasks 1.6.0", "reth-tracing", "rmp-serde", "thiserror 2.0.12", @@ -9285,13 +10103,23 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-eips", "alloy-primitives", - "reth-chain-state", - "reth-execution-types", - "reth-primitives-traits", + "reth-chain-state 1.6.0", + "reth-execution-types 1.6.0", + "reth-primitives-traits 1.6.0", "serde", "serde_with", ] +[[package]] +name = "reth-fs-util" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "serde", + "serde_json", + "thiserror 2.0.12", +] + [[package]] name = "reth-fs-util" version = "1.6.0" @@ -9313,19 +10141,19 @@ dependencies = [ "alloy-rpc-types-debug", "eyre", "futures", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions", - "reth-chainspec", - "reth-engine-primitives", - "reth-evm", - "reth-primitives-traits", + "reth-chainspec 1.6.0", + "reth-engine-primitives 1.6.0", + "reth-evm 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-revm", + "reth-revm 1.6.0", "reth-rpc-api", "reth-tracing", - "reth-trie", - "revm-bytecode", - "revm-database", + "reth-trie 1.6.0", + "revm-bytecode 6.0.1", + "revm-database 7.0.1", "serde", "serde_json", ] @@ -9339,14 +10167,14 @@ dependencies = [ "futures", "futures-util", "interprocess", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project", "serde_json", "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", - "tower", + "tower 0.5.2", "tracing", ] @@ -9376,6 +10204,15 @@ dependencies = [ "cc", ] +[[package]] +name = "reth-metrics" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "metrics 0.24.2", + "metrics-derive", +] + [[package]] name = "reth-metrics" version = "1.6.0" @@ -9431,28 +10268,28 @@ dependencies = [ "pin-project", "rand 0.8.5", "rand 0.9.1", - "reth-chainspec", - "reth-consensus", + "reth-chainspec 1.6.0", + "reth-consensus 1.6.0", "reth-discv4", "reth-discv5", "reth-dns-discovery", "reth-ecies", "reth-eth-wire", - "reth-eth-wire-types", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-fs-util", - "reth-metrics", + "reth-eth-wire-types 1.6.0", + "reth-ethereum-forks 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-fs-util 1.6.0", + "reth-metrics 1.6.0", "reth-net-banlist", "reth-network-api", "reth-network-p2p", - "reth-network-peers", + "reth-network-peers 1.6.0", "reth-network-types", - "reth-primitives-traits", - "reth-storage-api", - "reth-tasks", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", "reth-tokio-util", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", "rustc-hash 2.1.1", "schnellru", "secp256k1 0.30.0", @@ -9478,10 +10315,10 @@ dependencies = [ "derive_more", "enr", "futures", - "reth-eth-wire-types", - "reth-ethereum-forks", + "reth-eth-wire-types 1.6.0", + "reth-ethereum-forks 1.6.0", "reth-network-p2p", - "reth-network-peers", + "reth-network-peers 1.6.0", "reth-network-types", "reth-tokio-util", "serde", @@ -9502,17 +10339,30 @@ dependencies = [ "derive_more", "futures", "parking_lot", - "reth-consensus", - "reth-eth-wire-types", - "reth-ethereum-primitives", - "reth-network-peers", + "reth-consensus 1.6.0", + "reth-eth-wire-types 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-network-peers 1.6.0", "reth-network-types", - "reth-primitives-traits", - "reth-storage-errors", + "reth-primitives-traits 1.6.0", + "reth-storage-errors 1.6.0", "tokio", "tracing", ] +[[package]] +name = "reth-network-peers" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "secp256k1 0.30.0", + "serde_with", + "thiserror 2.0.12", + "url", +] + [[package]] name = "reth-network-peers" version = "1.6.0" @@ -9536,7 +10386,7 @@ dependencies = [ "alloy-eip2124", "humantime-serde", "reth-net-banlist", - "reth-network-peers", + "reth-network-peers 1.6.0", "serde", "serde_json", "tracing", @@ -9552,7 +10402,7 @@ dependencies = [ "derive_more", "lz4_flex", "memmap2", - "reth-fs-util", + "reth-fs-util 1.6.0", "serde", "thiserror 2.0.12", "tracing", @@ -9566,21 +10416,21 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-rpc-types-engine", "eyre", - "reth-basic-payload-builder", - "reth-consensus", + "reth-basic-payload-builder 1.6.0", + "reth-consensus 1.6.0", "reth-db-api", - "reth-engine-primitives", - "reth-evm", + "reth-engine-primitives 1.6.0", + "reth-evm 1.6.0", "reth-network-api", "reth-node-core", "reth-node-types", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", + "reth-payload-builder 1.6.0", + "reth-payload-builder-primitives 1.6.0", + "reth-payload-primitives 1.6.0", "reth-provider", - "reth-tasks", + "reth-tasks 1.6.0", "reth-tokio-util", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", ] [[package]] @@ -9598,14 +10448,14 @@ dependencies = [ "eyre", "fdlimit", "futures", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "rayon", - "reth-basic-payload-builder", - "reth-chain-state", - "reth-chainspec", + "reth-basic-payload-builder 1.6.0", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", "reth-cli-util", "reth-config", - "reth-consensus", + "reth-consensus 1.6.0", "reth-consensus-debug-client", "reth-db", "reth-db-api", @@ -9615,9 +10465,9 @@ dependencies = [ "reth-engine-service", "reth-engine-tree", "reth-engine-util", - "reth-evm", + "reth-evm 1.6.0", "reth-exex", - "reth-fs-util", + "reth-fs-util 1.6.0", "reth-invalid-block-hooks", "reth-network", "reth-network-api", @@ -9627,7 +10477,7 @@ dependencies = [ "reth-node-ethstats", "reth-node-events", "reth-node-metrics", - "reth-payload-builder", + "reth-payload-builder 1.6.0", "reth-provider", "reth-prune", "reth-rpc", @@ -9638,10 +10488,10 @@ dependencies = [ "reth-rpc-layer", "reth-stages", "reth-static-file", - "reth-tasks", + "reth-tasks 1.6.0", "reth-tokio-util", "reth-tracing", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", "secp256k1 0.30.0", "serde_json", "tokio", @@ -9665,30 +10515,30 @@ dependencies = [ "futures", "humantime", "rand 0.9.1", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-cli-util", "reth-config", - "reth-consensus", + "reth-consensus 1.6.0", "reth-db", "reth-discv4", "reth-discv5", "reth-engine-local", - "reth-engine-primitives", - "reth-ethereum-forks", + "reth-engine-primitives 1.6.0", + "reth-ethereum-forks 1.6.0", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers", - "reth-primitives-traits", - "reth-prune-types", + "reth-network-peers 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-prune-types 1.6.0", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-stages-types", - "reth-storage-api", - "reth-storage-errors", + "reth-stages-types 1.6.0", + "reth-storage-api 1.6.0", + "reth-storage-errors 1.6.0", "reth-tracing", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", "secp256k1 0.30.0", "serde", "shellexpand", @@ -9711,22 +10561,22 @@ dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", "eyre", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-engine-local", - "reth-engine-primitives", + "reth-engine-primitives 1.6.0", "reth-ethereum-consensus", - "reth-ethereum-engine-primitives", + "reth-ethereum-engine-primitives 1.6.0", "reth-ethereum-payload-builder", - "reth-ethereum-primitives", - "reth-evm", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", "reth-evm-ethereum", "reth-network", "reth-node-api", "reth-node-builder", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-revm", + "reth-revm 1.6.0", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", @@ -9734,9 +10584,9 @@ dependencies = [ "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", "reth-trie-db", - "revm", + "revm 27.0.3", ] [[package]] @@ -9748,11 +10598,11 @@ dependencies = [ "alloy-primitives", "chrono", "futures-util", - "reth-chain-state", + "reth-chain-state 1.6.0", "reth-network-api", - "reth-primitives-traits", - "reth-storage-api", - "reth-transaction-pool", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-transaction-pool 1.6.0", "serde", "serde_json", "thiserror 2.0.12", @@ -9776,13 +10626,13 @@ dependencies = [ "futures", "humantime", "pin-project", - "reth-engine-primitives", + "reth-engine-primitives 1.6.0", "reth-network-api", - "reth-primitives-traits", - "reth-prune-types", + "reth-primitives-traits 1.6.0", + "reth-prune-types 1.6.0", "reth-stages", - "reth-static-file-types", - "reth-storage-api", + "reth-static-file-types 1.6.0", + "reth-storage-api 1.6.0", "tokio", "tracing", ] @@ -9794,17 +10644,17 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "eyre", "http 1.3.1", - "jsonrpsee-server", + "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics 0.24.2", "metrics-exporter-prometheus", "metrics-process 2.4.0", "metrics-util 0.19.1", "procfs 0.17.0", - "reth-metrics", - "reth-tasks", + "reth-metrics 1.6.0", + "reth-tasks 1.6.0", "tikv-jemalloc-ctl", "tokio", - "tower", + "tower 0.5.2", "tracing", ] @@ -9813,14 +10663,36 @@ name = "reth-node-types" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" dependencies = [ - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-db-api", - "reth-engine-primitives", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-engine-primitives 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "reth-trie-db", ] +[[package]] +name = "reth-optimism-chainspec" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-hardforks", + "alloy-primitives", + "derive_more", + "op-alloy-rpc-types", + "reth-chainspec 1.5.0", + "reth-ethereum-forks 1.5.0", + "reth-network-peers 1.5.0", + "reth-optimism-forks 1.5.0", + "reth-optimism-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "serde_json", +] + [[package]] name = "reth-optimism-chainspec" version = "1.6.0" @@ -9837,12 +10709,12 @@ dependencies = [ "op-alloy-consensus", "op-alloy-rpc-types", "paste", - "reth-chainspec", - "reth-ethereum-forks", - "reth-network-peers", - "reth-optimism-forks", - "reth-optimism-primitives", - "reth-primitives-traits", + "reth-chainspec 1.6.0", + "reth-ethereum-forks 1.6.0", + "reth-network-peers 1.6.0", + "reth-optimism-forks 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "serde", "serde_json", "tar-no-std", @@ -9863,32 +10735,32 @@ dependencies = [ "eyre", "futures-util", "op-alloy-consensus", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-cli", "reth-cli-commands", "reth-cli-runner", - "reth-consensus", + "reth-consensus 1.6.0", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", - "reth-execution-types", - "reth-fs-util", + "reth-execution-types 1.6.0", + "reth-fs-util 1.6.0", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-optimism-chainspec", - "reth-optimism-consensus", - "reth-optimism-evm", + "reth-optimism-chainspec 1.6.0", + "reth-optimism-consensus 1.6.0", + "reth-optimism-evm 1.6.0", "reth-optimism-node", - "reth-optimism-primitives", - "reth-primitives-traits", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", "reth-prune", "reth-stages", "reth-static-file", - "reth-static-file-types", + "reth-static-file-types 1.6.0", "reth-tracing", "serde", "tokio", @@ -9896,6 +10768,31 @@ dependencies = [ "tracing", ] +[[package]] +name = "reth-optimism-consensus" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-trie", + "op-alloy-consensus", + "reth-chainspec 1.5.0", + "reth-consensus 1.5.0", + "reth-consensus-common 1.5.0", + "reth-execution-types 1.5.0", + "reth-optimism-forks 1.5.0", + "reth-optimism-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-storage-api 1.5.0", + "reth-storage-errors 1.5.0", + "reth-trie-common 1.5.0", + "revm 26.0.1", + "thiserror 2.0.12", + "tracing", +] + [[package]] name = "reth-optimism-consensus" version = "1.6.0" @@ -9905,22 +10802,47 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-trie", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-execution-types", - "reth-optimism-chainspec", - "reth-optimism-forks", - "reth-optimism-primitives", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie-common", - "revm", + "reth-chainspec 1.6.0", + "reth-consensus 1.6.0", + "reth-consensus-common 1.6.0", + "reth-execution-types 1.6.0", + "reth-optimism-chainspec 1.6.0", + "reth-optimism-forks 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-storage-errors 1.6.0", + "reth-trie-common 1.6.0", + "revm 27.0.3", "thiserror 2.0.12", "tracing", ] +[[package]] +name = "reth-optimism-evm" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm 0.12.3", + "alloy-op-evm 0.12.3", + "alloy-primitives", + "op-alloy-consensus", + "op-revm 7.0.1", + "reth-chainspec 1.5.0", + "reth-evm 1.5.0", + "reth-execution-errors 1.5.0", + "reth-execution-types 1.5.0", + "reth-optimism-chainspec 1.5.0", + "reth-optimism-consensus 1.5.0", + "reth-optimism-forks 1.5.0", + "reth-optimism-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "revm 26.0.1", + "thiserror 2.0.12", +] + [[package]] name = "reth-optimism-evm" version = "1.6.0" @@ -9928,25 +10850,36 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", - "alloy-op-evm", + "alloy-evm 0.15.0", + "alloy-op-evm 0.15.0", "alloy-primitives", "op-alloy-consensus", - "op-revm", - "reth-chainspec", - "reth-evm", - "reth-execution-errors", - "reth-execution-types", - "reth-optimism-chainspec", - "reth-optimism-consensus", - "reth-optimism-forks", - "reth-optimism-primitives", - "reth-primitives-traits", + "op-revm 8.0.3", + "reth-chainspec 1.6.0", + "reth-evm 1.6.0", + "reth-execution-errors 1.6.0", + "reth-execution-types 1.6.0", + "reth-optimism-chainspec 1.6.0", + "reth-optimism-consensus 1.6.0", + "reth-optimism-forks 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "reth-rpc-eth-api", - "revm", + "revm 27.0.3", "thiserror 2.0.12", ] +[[package]] +name = "reth-optimism-forks" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-op-hardforks", + "alloy-primitives", + "once_cell", + "reth-ethereum-forks 1.5.0", +] + [[package]] name = "reth-optimism-forks" version = "1.6.0" @@ -9955,7 +10888,7 @@ dependencies = [ "alloy-op-hardforks", "alloy-primitives", "once_cell", - "reth-ethereum-forks", + "reth-ethereum-forks 1.6.0", ] [[package]] @@ -9971,36 +10904,75 @@ dependencies = [ "eyre", "op-alloy-consensus", "op-alloy-rpc-types-engine", - "op-revm", - "reth-chainspec", - "reth-consensus", + "op-revm 8.0.3", + "reth-chainspec 1.6.0", + "reth-consensus 1.6.0", "reth-engine-local", - "reth-evm", + "reth-evm 1.6.0", "reth-network", "reth-node-api", "reth-node-builder", "reth-node-core", - "reth-optimism-chainspec", - "reth-optimism-consensus", - "reth-optimism-evm", - "reth-optimism-forks", - "reth-optimism-payload-builder", - "reth-optimism-primitives", + "reth-optimism-chainspec 1.6.0", + "reth-optimism-consensus 1.6.0", + "reth-optimism-evm 1.6.0", + "reth-optimism-forks 1.6.0", + "reth-optimism-payload-builder 1.6.0", + "reth-optimism-primitives 1.6.0", "reth-optimism-rpc", "reth-optimism-storage", - "reth-optimism-txpool", - "reth-payload-builder", - "reth-primitives-traits", + "reth-optimism-txpool 1.6.0", + "reth-payload-builder 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool", - "reth-trie-common", + "reth-transaction-pool 1.6.0", + "reth-trie-common 1.6.0", "reth-trie-db", - "revm", + "revm 27.0.3", + "serde", +] + +[[package]] +name = "reth-optimism-payload-builder" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-debug", + "alloy-rpc-types-engine", + "derive_more", + "op-alloy-consensus", + "op-alloy-rpc-types-engine", + "reth-basic-payload-builder 1.5.0", + "reth-chain-state 1.5.0", + "reth-chainspec 1.5.0", + "reth-evm 1.5.0", + "reth-execution-types 1.5.0", + "reth-optimism-evm 1.5.0", + "reth-optimism-forks 1.5.0", + "reth-optimism-primitives 1.5.0", + "reth-optimism-txpool 1.5.0", + "reth-payload-builder 1.5.0", + "reth-payload-builder-primitives 1.5.0", + "reth-payload-primitives 1.5.0", + "reth-payload-util 1.5.0", + "reth-payload-validator 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-revm 1.5.0", + "reth-storage-api 1.5.0", + "reth-transaction-pool 1.5.0", + "revm 26.0.1", "serde", + "sha2 0.10.9", + "thiserror 2.0.12", + "tracing", ] [[package]] @@ -10017,31 +10989,44 @@ dependencies = [ "derive_more", "op-alloy-consensus", "op-alloy-rpc-types-engine", - "reth-basic-payload-builder", - "reth-chain-state", - "reth-chainspec", - "reth-evm", - "reth-execution-types", - "reth-optimism-evm", - "reth-optimism-forks", - "reth-optimism-primitives", - "reth-optimism-txpool", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-payload-util", - "reth-payload-validator", - "reth-primitives-traits", - "reth-revm", - "reth-storage-api", - "reth-transaction-pool", - "revm", + "reth-basic-payload-builder 1.6.0", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-evm 1.6.0", + "reth-execution-types 1.6.0", + "reth-optimism-evm 1.6.0", + "reth-optimism-forks 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-optimism-txpool 1.6.0", + "reth-payload-builder 1.6.0", + "reth-payload-builder-primitives 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-payload-util 1.6.0", + "reth-payload-validator 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-revm 1.6.0", + "reth-storage-api 1.6.0", + "reth-transaction-pool 1.6.0", + "revm 27.0.3", "serde", "sha2 0.10.9", "thiserror 2.0.12", "tracing", ] +[[package]] +name = "reth-optimism-primitives" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "op-alloy-consensus", + "reth-primitives-traits 1.5.0", +] + [[package]] name = "reth-optimism-primitives" version = "1.6.0" @@ -10055,9 +11040,9 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs", - "reth-primitives-traits", - "reth-zstd-compressors", + "reth-codecs 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-zstd-compressors 1.6.0", "serde", "serde_with", ] @@ -10080,42 +11065,42 @@ dependencies = [ "async-trait", "derive_more", "eyre", - "jsonrpsee", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics 0.24.2", "op-alloy-consensus", "op-alloy-network", "op-alloy-rpc-jsonrpsee", "op-alloy-rpc-types", "op-alloy-rpc-types-engine", - "op-revm", + "op-revm 8.0.3", "reqwest", - "reth-chainspec", - "reth-evm", - "reth-metrics", + "reth-chainspec 1.6.0", + "reth-evm 1.6.0", + "reth-metrics 1.6.0", "reth-node-api", "reth-node-builder", - "reth-optimism-evm", - "reth-optimism-forks", - "reth-optimism-payload-builder", - "reth-optimism-primitives", - "reth-optimism-txpool", - "reth-primitives-traits", + "reth-optimism-evm 1.6.0", + "reth-optimism-forks 1.6.0", + "reth-optimism-payload-builder 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-optimism-txpool 1.6.0", + "reth-primitives-traits 1.6.0", "reth-rpc", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", - "revm", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", + "reth-transaction-pool 1.6.0", + "revm 27.0.3", "serde_json", "thiserror 2.0.12", "tokio", - "tower", + "tower 0.5.2", "tracing", ] @@ -10126,13 +11111,49 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-primitives", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-db-api", "reth-node-api", - "reth-optimism-primitives", - "reth-primitives-traits", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-storage-api", + "reth-storage-api 1.6.0", +] + +[[package]] +name = "reth-optimism-txpool" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-primitives", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-serde", + "c-kzg", + "derive_more", + "futures-util", + "metrics 0.24.2", + "op-alloy-consensus", + "op-alloy-flz", + "op-alloy-rpc-types", + "op-revm 7.0.1", + "parking_lot", + "reth-chain-state 1.5.0", + "reth-chainspec 1.5.0", + "reth-metrics 1.5.0", + "reth-optimism-evm 1.5.0", + "reth-optimism-forks 1.5.0", + "reth-optimism-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-storage-api 1.5.0", + "reth-transaction-pool 1.5.0", + "serde", + "thiserror 2.0.12", + "tokio", + "tracing", ] [[package]] @@ -10154,23 +11175,43 @@ dependencies = [ "op-alloy-consensus", "op-alloy-flz", "op-alloy-rpc-types", - "op-revm", + "op-revm 8.0.3", "parking_lot", - "reth-chain-state", - "reth-chainspec", - "reth-metrics", - "reth-optimism-evm", - "reth-optimism-forks", - "reth-optimism-primitives", - "reth-primitives-traits", - "reth-storage-api", - "reth-transaction-pool", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-metrics 1.6.0", + "reth-optimism-evm 1.6.0", + "reth-optimism-forks 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-transaction-pool 1.6.0", "serde", "thiserror 2.0.12", "tokio", "tracing", ] +[[package]] +name = "reth-payload-builder" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-rpc-types", + "futures-util", + "metrics 0.24.2", + "reth-chain-state 1.5.0", + "reth-ethereum-engine-primitives 1.5.0", + "reth-metrics 1.5.0", + "reth-payload-builder-primitives 1.5.0", + "reth-payload-primitives 1.5.0", + "reth-primitives-traits 1.5.0", + "tokio", + "tokio-stream", + "tracing", +] + [[package]] name = "reth-payload-builder" version = "1.6.0" @@ -10180,12 +11221,24 @@ dependencies = [ "alloy-rpc-types", "futures-util", "metrics 0.24.2", - "reth-chain-state", - "reth-ethereum-engine-primitives", - "reth-metrics", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-chain-state 1.6.0", + "reth-ethereum-engine-primitives 1.6.0", + "reth-metrics 1.6.0", + "reth-payload-builder-primitives 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-payload-builder-primitives" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "pin-project", + "reth-payload-primitives 1.5.0", "tokio", "tokio-stream", "tracing", @@ -10197,12 +11250,31 @@ version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" dependencies = [ "pin-project", - "reth-payload-primitives", + "reth-payload-primitives 1.6.0", "tokio", "tokio-stream", "tracing", ] +[[package]] +name = "reth-payload-primitives" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rpc-types-engine", + "auto_impl", + "op-alloy-rpc-types-engine", + "reth-chain-state 1.5.0", + "reth-chainspec 1.5.0", + "reth-errors 1.5.0", + "reth-primitives-traits 1.5.0", + "serde", + "thiserror 2.0.12", + "tokio", +] + [[package]] name = "reth-payload-primitives" version = "1.6.0" @@ -10213,15 +11285,25 @@ dependencies = [ "alloy-rpc-types-engine", "auto_impl", "op-alloy-rpc-types-engine", - "reth-chain-state", - "reth-chainspec", - "reth-errors", - "reth-primitives-traits", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-errors 1.6.0", + "reth-primitives-traits 1.6.0", "serde", "thiserror 2.0.12", "tokio", ] +[[package]] +name = "reth-payload-util" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-primitives", + "reth-transaction-pool 1.5.0", +] + [[package]] name = "reth-payload-util" version = "1.6.0" @@ -10229,7 +11311,17 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-primitives", - "reth-transaction-pool", + "reth-transaction-pool 1.6.0", +] + +[[package]] +name = "reth-payload-validator" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-rpc-types-engine", + "reth-primitives-traits 1.5.0", ] [[package]] @@ -10239,7 +11331,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", ] [[package]] @@ -10251,10 +11343,37 @@ dependencies = [ "arbitrary", "c-kzg", "once_cell", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-static-file-types", + "reth-ethereum-forks 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-static-file-types 1.6.0", +] + +[[package]] +name = "reth-primitives-traits" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-trie", + "auto_impl", + "bytes", + "derive_more", + "once_cell", + "op-alloy-consensus", + "reth-codecs 1.5.0", + "revm-bytecode 5.0.0", + "revm-primitives", + "revm-state 6.0.0", + "secp256k1 0.30.0", + "serde", + "serde_with", + "thiserror 2.0.12", ] [[package]] @@ -10280,10 +11399,10 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs", - "revm-bytecode", + "reth-codecs 1.6.0", + "revm-bytecode 6.0.1", "revm-primitives", - "revm-state", + "revm-state 7.0.1", "secp256k1 0.30.0", "serde", "serde_with", @@ -10306,30 +11425,30 @@ dependencies = [ "notify", "parking_lot", "rayon", - "reth-chain-state", - "reth-chainspec", - "reth-codecs", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-codecs 1.6.0", "reth-db", "reth-db-api", - "reth-errors", - "reth-ethereum-engine-primitives", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-fs-util", - "reth-metrics", + "reth-errors 1.6.0", + "reth-ethereum-engine-primitives 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", + "reth-execution-types 1.6.0", + "reth-fs-util 1.6.0", + "reth-metrics 1.6.0", "reth-nippy-jar", "reth-node-types", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-static-file-types", - "reth-storage-api", - "reth-storage-errors", - "reth-trie", + "reth-primitives-traits 1.6.0", + "reth-prune-types 1.6.0", + "reth-stages-types 1.6.0", + "reth-static-file-types 1.6.0", + "reth-storage-api 1.6.0", + "reth-storage-errors 1.6.0", + "reth-trie 1.6.0", "reth-trie-db", - "revm-database", - "revm-state", + "revm-database 7.0.1", + "revm-state 7.0.1", "strum 0.27.1", "tokio", "tracing", @@ -10346,16 +11465,16 @@ dependencies = [ "itertools 0.14.0", "metrics 0.24.2", "rayon", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-config", "reth-db-api", - "reth-errors", + "reth-errors 1.6.0", "reth-exex-types", - "reth-metrics", - "reth-primitives-traits", + "reth-metrics 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-prune-types", - "reth-static-file-types", + "reth-prune-types 1.6.0", + "reth-static-file-types 1.6.0", "reth-tokio-util", "rustc-hash 2.1.1", "thiserror 2.0.12", @@ -10363,6 +11482,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "reth-prune-types" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-primitives", + "derive_more", + "thiserror 2.0.12", +] + [[package]] name = "reth-prune-types" version = "1.6.0" @@ -10372,7 +11501,7 @@ dependencies = [ "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs", + "reth-codecs 1.6.0", "serde", "thiserror 2.0.12", ] @@ -10387,10 +11516,10 @@ dependencies = [ "alloy-rlp", "futures", "reth-eth-wire", - "reth-ethereum-primitives", + "reth-ethereum-primitives 1.6.0", "reth-network", "reth-network-api", - "reth-storage-errors", + "reth-storage-errors 1.6.0", "tokio", "tokio-stream", "tracing", @@ -10406,34 +11535,47 @@ dependencies = [ "eyre", "futures", "parking_lot", - "reth-chain-state", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", + "reth-chain-state 1.6.0", + "reth-errors 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", "reth-node-api", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-ress-protocol", - "reth-revm", - "reth-storage-api", - "reth-tasks", + "reth-revm 1.6.0", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", "reth-tokio-util", - "reth-trie", + "reth-trie 1.6.0", "schnellru", "tokio", "tracing", ] +[[package]] +name = "reth-revm" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-primitives", + "reth-primitives-traits 1.5.0", + "reth-storage-api 1.5.0", + "reth-storage-errors 1.5.0", + "reth-trie 1.5.0", + "revm 26.0.1", +] + [[package]] name = "reth-revm" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" dependencies = [ "alloy-primitives", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie", - "revm", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-storage-errors 1.6.0", + "reth-trie 1.6.0", + "revm 27.0.3", ] [[package]] @@ -10444,7 +11586,7 @@ dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", "alloy-genesis", "alloy-network", "alloy-primitives", @@ -10467,37 +11609,37 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", - "jsonrpsee", - "jsonrpsee-types", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "jsonwebtoken", "parking_lot", "pin-project", - "reth-chain-state", - "reth-chainspec", - "reth-consensus", - "reth-engine-primitives", - "reth-errors", - "reth-evm", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-consensus 1.6.0", + "reth-engine-primitives 1.6.0", + "reth-errors 1.6.0", + "reth-evm 1.6.0", "reth-evm-ethereum", - "reth-execution-types", - "reth-metrics", + "reth-execution-types 1.6.0", + "reth-metrics 1.6.0", "reth-network-api", - "reth-network-peers", + "reth-network-peers 1.6.0", "reth-network-types", "reth-node-api", - "reth-primitives-traits", - "reth-revm", + "reth-primitives-traits 1.6.0", + "reth-revm 1.6.0", "reth-rpc-api", "reth-rpc-convert", "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", - "reth-trie-common", - "revm", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", + "reth-transaction-pool 1.6.0", + "reth-trie-common 1.6.0", + "revm 27.0.3", "revm-inspectors", "revm-primitives", "serde", @@ -10506,7 +11648,7 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tokio-stream", - "tower", + "tower 0.5.2", "tracing", "tracing-futures", ] @@ -10531,12 +11673,12 @@ dependencies = [ "alloy-rpc-types-trace", "alloy-rpc-types-txpool", "alloy-serde", - "jsonrpsee", - "reth-chain-state", - "reth-engine-primitives", - "reth-network-peers", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "reth-chain-state 1.6.0", + "reth-engine-primitives 1.6.0", + "reth-network-peers 1.6.0", "reth-rpc-eth-api", - "reth-trie-common", + "reth-trie-common 1.6.0", ] [[package]] @@ -10547,32 +11689,32 @@ dependencies = [ "alloy-network", "alloy-provider", "http 1.3.1", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics 0.24.2", "pin-project", - "reth-chain-state", - "reth-chainspec", - "reth-consensus", - "reth-evm", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-consensus 1.6.0", + "reth-evm 1.6.0", "reth-ipc", - "reth-metrics", + "reth-metrics 1.6.0", "reth-network-api", "reth-node-core", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-rpc", "reth-rpc-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-layer", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", + "reth-transaction-pool 1.6.0", "serde", "thiserror 2.0.12", "tokio", "tokio-util", - "tower", + "tower 0.5.2", "tower-http", "tracing", ] @@ -10588,17 +11730,17 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", "alloy-signer", - "jsonrpsee-types", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "op-alloy-consensus", "op-alloy-network", "op-alloy-rpc-types", - "op-revm", - "reth-ethereum-primitives", - "reth-evm", - "reth-optimism-primitives", - "reth-primitives-traits", - "reth-storage-api", - "revm-context", + "op-revm 8.0.3", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "revm-context 8.0.3", "thiserror 2.0.12", ] @@ -10611,21 +11753,21 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "async-trait", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics 0.24.2", "parking_lot", - "reth-chainspec", - "reth-engine-primitives", - "reth-metrics", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-primitives-traits", + "reth-chainspec 1.6.0", + "reth-engine-primitives 1.6.0", + "reth-metrics 1.6.0", + "reth-payload-builder 1.6.0", + "reth-payload-builder-primitives 1.6.0", + "reth-payload-primitives 1.6.0", + "reth-primitives-traits 1.6.0", "reth-rpc-api", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", + "reth-transaction-pool 1.6.0", "serde", "thiserror 2.0.12", "tokio", @@ -10640,7 +11782,7 @@ dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", "alloy-json-rpc", "alloy-network", "alloy-primitives", @@ -10652,25 +11794,25 @@ dependencies = [ "auto_impl", "dyn-clone", "futures", - "jsonrpsee", - "jsonrpsee-types", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot", - "reth-chain-state", - "reth-chainspec", - "reth-errors", - "reth-evm", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-errors 1.6.0", + "reth-evm 1.6.0", "reth-network-api", "reth-node-api", - "reth-primitives-traits", - "reth-revm", + "reth-primitives-traits 1.6.0", + "reth-revm 1.6.0", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", - "reth-trie-common", - "revm", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", + "reth-transaction-pool 1.6.0", + "reth-trie-common 1.6.0", + "revm 27.0.3", "revm-inspectors", "tokio", "tracing", @@ -10683,7 +11825,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", + "alloy-evm 0.15.0", "alloy-network", "alloy-primitives", "alloy-rpc-types-eth", @@ -10691,26 +11833,26 @@ dependencies = [ "derive_more", "futures", "itertools 0.14.0", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics 0.24.2", "rand 0.9.1", - "reth-chain-state", - "reth-chainspec", - "reth-errors", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-metrics", - "reth-primitives-traits", - "reth-revm", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-errors 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", + "reth-execution-types 1.6.0", + "reth-metrics 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-revm 1.6.0", "reth-rpc-convert", "reth-rpc-server-types", - "reth-storage-api", - "reth-tasks", - "reth-transaction-pool", - "reth-trie", - "revm", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", + "reth-transaction-pool 1.6.0", + "reth-trie 1.6.0", + "revm 27.0.3", "revm-inspectors", "schnellru", "serde", @@ -10727,9 +11869,9 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-rpc-types-engine", "http 1.3.1", - "jsonrpsee-http-client", + "jsonrpsee-http-client 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project", - "tower", + "tower 0.5.2", "tower-http", "tracing", ] @@ -10742,9 +11884,9 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", - "jsonrpsee-core", - "jsonrpsee-types", - "reth-errors", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "reth-errors 1.6.0", "reth-network-api", "serde", "strum 0.27.1", @@ -10766,29 +11908,29 @@ dependencies = [ "num-traits", "rayon", "reqwest", - "reth-codecs", + "reth-codecs 1.6.0", "reth-config", - "reth-consensus", + "reth-consensus 1.6.0", "reth-db", "reth-db-api", "reth-era", "reth-era-downloader", "reth-era-utils", "reth-etl", - "reth-evm", - "reth-execution-types", + "reth-evm 1.6.0", + "reth-execution-types 1.6.0", "reth-exex", - "reth-fs-util", + "reth-fs-util 1.6.0", "reth-network-p2p", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-provider", "reth-prune", - "reth-prune-types", - "reth-revm", + "reth-prune-types 1.6.0", + "reth-revm 1.6.0", "reth-stages-api", - "reth-static-file-types", - "reth-storage-errors", - "reth-trie", + "reth-static-file-types 1.6.0", + "reth-storage-errors 1.6.0", + "reth-trie 1.6.0", "reth-trie-db", "serde", "thiserror 2.0.12", @@ -10807,22 +11949,31 @@ dependencies = [ "auto_impl", "futures-util", "metrics 0.24.2", - "reth-consensus", - "reth-errors", - "reth-metrics", + "reth-consensus 1.6.0", + "reth-errors 1.6.0", + "reth-metrics 1.6.0", "reth-network-p2p", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-provider", "reth-prune", - "reth-stages-types", + "reth-stages-types 1.6.0", "reth-static-file", - "reth-static-file-types", + "reth-static-file-types 1.6.0", "reth-tokio-util", "thiserror 2.0.12", "tokio", "tracing", ] +[[package]] +name = "reth-stages-types" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-primitives", + "reth-trie-common 1.5.0", +] + [[package]] name = "reth-stages-types" version = "1.6.0" @@ -10832,8 +11983,8 @@ dependencies = [ "arbitrary", "bytes", "modular-bitfield", - "reth-codecs", - "reth-trie-common", + "reth-codecs 1.6.0", + "reth-trie-common 1.6.0", "serde", ] @@ -10845,18 +11996,29 @@ dependencies = [ "alloy-primitives", "parking_lot", "rayon", - "reth-codecs", + "reth-codecs 1.6.0", "reth-db-api", - "reth-primitives-traits", + "reth-primitives-traits 1.6.0", "reth-provider", - "reth-prune-types", - "reth-stages-types", - "reth-static-file-types", - "reth-storage-errors", + "reth-prune-types 1.6.0", + "reth-stages-types 1.6.0", + "reth-static-file-types 1.6.0", + "reth-storage-errors 1.6.0", "reth-tokio-util", "tracing", ] +[[package]] +name = "reth-static-file-types" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-primitives", + "derive_more", + "serde", + "strum 0.27.1", +] + [[package]] name = "reth-static-file-types" version = "1.6.0" @@ -10869,6 +12031,28 @@ dependencies = [ "strum 0.27.1", ] +[[package]] +name = "reth-storage-api" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rpc-types-engine", + "auto_impl", + "reth-chainspec 1.5.0", + "reth-db-models 1.5.0", + "reth-ethereum-primitives 1.5.0", + "reth-execution-types 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-prune-types 1.5.0", + "reth-stages-types 1.5.0", + "reth-storage-errors 1.5.0", + "reth-trie-common 1.5.0", + "revm-database 6.0.0", +] + [[package]] name = "reth-storage-api" version = "1.6.0" @@ -10879,18 +12063,34 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-db-api", - "reth-db-models", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", + "reth-db-models 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-execution-types 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-prune-types 1.6.0", + "reth-stages-types 1.6.0", + "reth-storage-errors 1.6.0", + "reth-trie-common 1.6.0", "reth-trie-db", - "revm-database", + "revm-database 7.0.1", +] + +[[package]] +name = "reth-storage-errors" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "derive_more", + "reth-primitives-traits 1.5.0", + "reth-prune-types 1.5.0", + "reth-static-file-types 1.5.0", + "revm-database-interface 6.0.0", + "thiserror 2.0.12", ] [[package]] @@ -10902,11 +12102,27 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "derive_more", - "reth-primitives-traits", - "reth-prune-types", - "reth-static-file-types", - "revm-database-interface", + "reth-primitives-traits 1.6.0", + "reth-prune-types 1.6.0", + "reth-static-file-types 1.6.0", + "revm-database-interface 7.0.1", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-tasks" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "auto_impl", + "dyn-clone", + "futures-util", + "metrics 0.24.2", + "reth-metrics 1.5.0", "thiserror 2.0.12", + "tokio", + "tracing", + "tracing-futures", ] [[package]] @@ -10920,7 +12136,7 @@ dependencies = [ "metrics 0.24.2", "pin-project", "rayon", - "reth-metrics", + "reth-metrics 1.6.0", "thiserror 2.0.12", "tokio", "tracing", @@ -10952,6 +12168,42 @@ dependencies = [ "tracing-subscriber 0.3.19", ] +[[package]] +name = "reth-transaction-pool" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "aquamarine", + "auto_impl", + "bitflags 2.9.1", + "futures-util", + "metrics 0.24.2", + "parking_lot", + "reth-chain-state 1.5.0", + "reth-chainspec 1.5.0", + "reth-eth-wire-types 1.5.0", + "reth-ethereum-primitives 1.5.0", + "reth-execution-types 1.5.0", + "reth-fs-util 1.5.0", + "reth-metrics 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-storage-api 1.5.0", + "reth-tasks 1.5.0", + "revm-interpreter 22.0.1", + "revm-primitives", + "rustc-hash 2.1.1", + "schnellru", + "smallvec", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tracing", +] + [[package]] name = "reth-transaction-pool" version = "1.6.0" @@ -10969,17 +12221,17 @@ dependencies = [ "parking_lot", "paste", "rand 0.9.1", - "reth-chain-state", - "reth-chainspec", - "reth-eth-wire-types", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-fs-util", - "reth-metrics", - "reth-primitives-traits", - "reth-storage-api", - "reth-tasks", - "revm-interpreter", + "reth-chain-state 1.6.0", + "reth-chainspec 1.6.0", + "reth-eth-wire-types 1.6.0", + "reth-ethereum-primitives 1.6.0", + "reth-execution-types 1.6.0", + "reth-fs-util 1.6.0", + "reth-metrics 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-storage-api 1.6.0", + "reth-tasks 1.6.0", + "revm-interpreter 23.0.2", "revm-primitives", "rustc-hash 2.1.1", "schnellru", @@ -10991,6 +12243,28 @@ dependencies = [ "tracing", ] +[[package]] +name = "reth-trie" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "auto_impl", + "itertools 0.14.0", + "reth-execution-errors 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-stages-types 1.5.0", + "reth-storage-errors 1.5.0", + "reth-trie-common 1.5.0", + "reth-trie-sparse 1.5.0", + "revm-database 6.0.0", + "tracing", +] + [[package]] name = "reth-trie" version = "1.6.0" @@ -11004,18 +12278,35 @@ dependencies = [ "auto_impl", "itertools 0.14.0", "metrics 0.24.2", - "reth-execution-errors", - "reth-metrics", - "reth-primitives-traits", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", - "reth-trie-sparse", - "revm-database", + "reth-execution-errors 1.6.0", + "reth-metrics 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-stages-types 1.6.0", + "reth-storage-errors 1.6.0", + "reth-trie-common 1.6.0", + "reth-trie-sparse 1.6.0", + "revm-database 7.0.1", "tracing", "triehash", ] +[[package]] +name = "reth-trie-common" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-consensus", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "derive_more", + "itertools 0.14.0", + "nybbles", + "rayon", + "reth-primitives-traits 1.5.0", + "revm-database 6.0.0", +] + [[package]] name = "reth-trie-common" version = "1.6.0" @@ -11035,9 +12326,9 @@ dependencies = [ "nybbles", "plain_hasher", "rayon", - "reth-codecs", - "reth-primitives-traits", - "revm-database", + "reth-codecs 1.6.0", + "reth-primitives-traits 1.6.0", + "revm-database 7.0.1", "serde", "serde_with", ] @@ -11049,9 +12340,9 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f163 dependencies = [ "alloy-primitives", "reth-db-api", - "reth-execution-errors", - "reth-primitives-traits", - "reth-trie", + "reth-execution-errors 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-trie 1.6.0", "tracing", ] @@ -11067,19 +12358,35 @@ dependencies = [ "metrics 0.24.2", "rayon", "reth-db-api", - "reth-execution-errors", - "reth-metrics", + "reth-execution-errors 1.6.0", + "reth-metrics 1.6.0", "reth-provider", - "reth-storage-errors", - "reth-trie", - "reth-trie-common", + "reth-storage-errors 1.6.0", + "reth-trie 1.6.0", + "reth-trie-common 1.6.0", "reth-trie-db", - "reth-trie-sparse", + "reth-trie-sparse 1.6.0", "thiserror 2.0.12", "tokio", "tracing", ] +[[package]] +name = "reth-trie-sparse" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "auto_impl", + "reth-execution-errors 1.5.0", + "reth-primitives-traits 1.5.0", + "reth-trie-common 1.5.0", + "smallvec", + "tracing", +] + [[package]] name = "reth-trie-sparse" version = "1.6.0" @@ -11090,10 +12397,10 @@ dependencies = [ "alloy-trie", "auto_impl", "metrics 0.24.2", - "reth-execution-errors", - "reth-metrics", - "reth-primitives-traits", - "reth-trie-common", + "reth-execution-errors 1.6.0", + "reth-metrics 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-trie-common 1.6.0", "smallvec", "tracing", ] @@ -11107,13 +12414,21 @@ dependencies = [ "alloy-rlp", "alloy-trie", "rayon", - "reth-execution-errors", - "reth-trie-common", - "reth-trie-sparse", + "reth-execution-errors 1.6.0", + "reth-trie-common 1.6.0", + "reth-trie-sparse 1.6.0", "smallvec", "tracing", ] +[[package]] +name = "reth-zstd-compressors" +version = "1.5.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +dependencies = [ + "zstd", +] + [[package]] name = "reth-zstd-compressors" version = "1.6.0" @@ -11122,23 +12437,55 @@ dependencies = [ "zstd", ] +[[package]] +name = "revm" +version = "26.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2a493c73054a0f6635bad6e840cdbef34838e6e6186974833c901dff7dd709" +dependencies = [ + "revm-bytecode 5.0.0", + "revm-context 7.0.1", + "revm-context-interface 7.0.1", + "revm-database 6.0.0", + "revm-database-interface 6.0.0", + "revm-handler 7.0.1", + "revm-inspector 7.0.1", + "revm-interpreter 22.0.1", + "revm-precompile 23.0.0", + "revm-primitives", + "revm-state 6.0.0", +] + [[package]] name = "revm" version = "27.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70a84455f03d3480d4ed2e7271c15f2ec95b758e86d57cb8d258a8ff1c22e9a4" dependencies = [ - "revm-bytecode", - "revm-context", - "revm-context-interface", - "revm-database", - "revm-database-interface", - "revm-handler", - "revm-inspector", - "revm-interpreter", - "revm-precompile", + "revm-bytecode 6.0.1", + "revm-context 8.0.3", + "revm-context-interface 8.0.1", + "revm-database 7.0.1", + "revm-database-interface 7.0.1", + "revm-handler 8.0.3", + "revm-inspector 8.0.3", + "revm-interpreter 23.0.2", + "revm-precompile 24.0.1", "revm-primitives", - "revm-state", + "revm-state 7.0.1", +] + +[[package]] +name = "revm-bytecode" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b395ee2212d44fcde20e9425916fee685b5440c3f8e01fabae8b0f07a2fd7f08" +dependencies = [ + "bitvec", + "once_cell", + "phf", + "revm-primitives", + "serde", ] [[package]] @@ -11154,19 +12501,51 @@ dependencies = [ "serde", ] +[[package]] +name = "revm-context" +version = "7.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b97b69d05651509b809eb7215a6563dc64be76a941666c40aabe597ab544d38" +dependencies = [ + "cfg-if", + "derive-where", + "revm-bytecode 5.0.0", + "revm-context-interface 7.0.1", + "revm-database-interface 6.0.0", + "revm-primitives", + "revm-state 6.0.0", + "serde", +] + [[package]] name = "revm-context" version = "8.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990abf66b47895ca3e915d5f3652bb7c6a4cff6e5351fdf0fc2795171fd411c" +checksum = "a990abf66b47895ca3e915d5f3652bb7c6a4cff6e5351fdf0fc2795171fd411c" +dependencies = [ + "cfg-if", + "derive-where", + "revm-bytecode 6.0.1", + "revm-context-interface 8.0.1", + "revm-database-interface 7.0.1", + "revm-primitives", + "revm-state 7.0.1", + "serde", +] + +[[package]] +name = "revm-context-interface" +version = "7.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f8f4f06a1c43bf8e6148509aa06a6c4d28421541944842b9b11ea1a6e53468f" dependencies = [ - "cfg-if", - "derive-where", - "revm-bytecode", - "revm-context-interface", - "revm-database-interface", + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "either", + "revm-database-interface 6.0.0", "revm-primitives", - "revm-state", + "revm-state 6.0.0", "serde", ] @@ -11180,9 +12559,23 @@ dependencies = [ "alloy-eip7702", "auto_impl", "either", - "revm-database-interface", + "revm-database-interface 7.0.1", + "revm-primitives", + "revm-state 7.0.1", + "serde", +] + +[[package]] +name = "revm-database" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763eb5867a109a85f8e47f548b9d88c9143c0e443ec056742052f059fa32f4f1" +dependencies = [ + "alloy-eips", + "revm-bytecode 5.0.0", + "revm-database-interface 6.0.0", "revm-primitives", - "revm-state", + "revm-state 6.0.0", "serde", ] @@ -11193,10 +12586,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7db360729b61cc347f9c2f12adb9b5e14413aea58778cf9a3b7676c6a4afa115" dependencies = [ "alloy-eips", - "revm-bytecode", - "revm-database-interface", + "revm-bytecode 6.0.1", + "revm-database-interface 7.0.1", + "revm-primitives", + "revm-state 7.0.1", + "serde", +] + +[[package]] +name = "revm-database-interface" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf5ecd19a5b75b862841113b9abdd864ad4b22e633810e11e6d620e8207e361d" +dependencies = [ + "auto_impl", "revm-primitives", - "revm-state", + "revm-state 6.0.0", "serde", ] @@ -11209,7 +12614,26 @@ dependencies = [ "auto_impl", "either", "revm-primitives", - "revm-state", + "revm-state 7.0.1", + "serde", +] + +[[package]] +name = "revm-handler" +version = "7.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b61f992beaa7a5fc3f5fcf79f1093624fa1557dc42d36baa42114c2d836b59" +dependencies = [ + "auto_impl", + "derive-where", + "revm-bytecode 5.0.0", + "revm-context 7.0.1", + "revm-context-interface 7.0.1", + "revm-database-interface 6.0.0", + "revm-interpreter 22.0.1", + "revm-precompile 23.0.0", + "revm-primitives", + "revm-state 6.0.0", "serde", ] @@ -11221,15 +12645,33 @@ checksum = "03c35a17a38203976f97109e20eccf6732447ce6c9c42973bae42732b2e957ff" dependencies = [ "auto_impl", "derive-where", - "revm-bytecode", - "revm-context", - "revm-context-interface", - "revm-database-interface", - "revm-interpreter", - "revm-precompile", + "revm-bytecode 6.0.1", + "revm-context 8.0.3", + "revm-context-interface 8.0.1", + "revm-database-interface 7.0.1", + "revm-interpreter 23.0.2", + "revm-precompile 24.0.1", + "revm-primitives", + "revm-state 7.0.1", + "serde", +] + +[[package]] +name = "revm-inspector" +version = "7.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7e4400a109a2264f4bf290888ac6d02432b6d5d070492b9dcf134b0c7d51354" +dependencies = [ + "auto_impl", + "either", + "revm-context 7.0.1", + "revm-database-interface 6.0.0", + "revm-handler 7.0.1", + "revm-interpreter 22.0.1", "revm-primitives", - "revm-state", + "revm-state 6.0.0", "serde", + "serde_json", ] [[package]] @@ -11240,12 +12682,12 @@ checksum = "e69abf6a076741bd5cd87b7d6c1b48be2821acc58932f284572323e81a8d4179" dependencies = [ "auto_impl", "either", - "revm-context", - "revm-database-interface", - "revm-handler", - "revm-interpreter", + "revm-context 8.0.3", + "revm-database-interface 7.0.1", + "revm-handler 8.0.3", + "revm-interpreter 23.0.2", "revm-primitives", - "revm-state", + "revm-state 7.0.1", "serde", "serde_json", ] @@ -11264,24 +12706,61 @@ dependencies = [ "boa_engine", "boa_gc", "colorchoice", - "revm", + "revm 27.0.3", "serde", "serde_json", "thiserror 2.0.12", ] +[[package]] +name = "revm-interpreter" +version = "22.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2481ef059708772cec0ce6bc4c84b796a40111612efb73b01adf1caed7ff9ac" +dependencies = [ + "revm-bytecode 5.0.0", + "revm-context-interface 7.0.1", + "revm-primitives", + "serde", +] + [[package]] name = "revm-interpreter" version = "23.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d95c4a9a1662d10b689b66b536ddc2eb1e89f5debfcabc1a2d7b8417a2fa47cd" dependencies = [ - "revm-bytecode", - "revm-context-interface", + "revm-bytecode 6.0.1", + "revm-context-interface 8.0.1", "revm-primitives", "serde", ] +[[package]] +name = "revm-precompile" +version = "23.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d581e78c8f132832bd00854fb5bf37efd95a52582003da35c25cd2cbfc63849" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "aurora-engine-modexp", + "c-kzg", + "cfg-if", + "k256", + "libsecp256k1", + "once_cell", + "p256 0.13.2", + "revm-primitives", + "ripemd", + "rug", + "secp256k1 0.31.1", + "sha2 0.10.9", +] + [[package]] name = "revm-precompile" version = "24.0.1" @@ -11320,6 +12799,18 @@ dependencies = [ "serde", ] +[[package]] +name = "revm-state" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d6274928dd78f907103740b10800d3c0db6caeca391e75a159c168a1e5c78f8" +dependencies = [ + "bitflags 2.9.1", + "revm-bytecode 5.0.0", + "revm-primitives", + "serde", +] + [[package]] name = "revm-state" version = "7.0.1" @@ -11327,7 +12818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "106fec5c634420118c7d07a6c37110186ae7f23025ceac3a5dbe182eea548363" dependencies = [ "bitflags 2.9.1", - "revm-bytecode", + "revm-bytecode 6.0.1", "revm-primitives", "serde", ] @@ -11442,6 +12933,56 @@ dependencies = [ "chrono", ] +[[package]] +name = "rollup-boost" +version = "0.1.0" +source = "git+http://github.com/flashbots/rollup-boost?tag=v0.7.4#03ea8f8b6c82970bb62bba730a46d5043962d7fc" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-serde", + "clap", + "dotenvy", + "eyre", + "futures", + "http 1.3.1", + "http-body-util", + "hyper 1.6.0", + "hyper-rustls 0.27.7", + "hyper-util", + "jsonrpsee 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "metrics 0.24.2", + "metrics-derive", + "metrics-exporter-prometheus", + "metrics-util 0.19.1", + "moka", + "op-alloy-rpc-types-engine", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry_sdk", + "parking_lot", + "paste", + "reth-optimism-payload-builder 1.5.0", + "rustls 0.23.28", + "serde", + "serde_json", + "sha2 0.10.9", + "testcontainers", + "thiserror 2.0.12", + "tokio", + "tokio-tungstenite", + "tokio-util", + "tower 0.5.2", + "tower-http", + "tracing", + "tracing-opentelemetry", + "tracing-subscriber 0.3.19", + "url", + "vergen", + "vergen-git2", +] + [[package]] name = "route-recognizer" version = "0.3.1" @@ -11610,7 +13151,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", "schannel", "security-framework 2.11.1", ] @@ -11636,6 +13177,15 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "rustls-pki-types" version = "1.12.0" @@ -12003,7 +13553,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "reth", "serde", "serde_json", @@ -12050,6 +13600,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "serde_spanned" version = "0.6.9" @@ -12410,6 +13971,29 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "structmeta" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" +dependencies = [ + "proc-macro2", + "quote", + "structmeta-derive", + "syn 2.0.104", +] + +[[package]] +name = "structmeta-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "strum" version = "0.26.3" @@ -12601,7 +14185,7 @@ dependencies = [ "futures", "order-pool", "reth-provider", - "reth-tasks", + "reth-tasks 1.6.0", "serde", "serde_json", "telemetry-recorder", @@ -12646,6 +14230,35 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "testcontainers" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a4f01f39bb10fc2a5ab23eb0d888b1e2bb168c157f61a1b98e6c501c639c74" +dependencies = [ + "async-trait", + "bollard", + "bollard-stubs", + "bytes", + "docker_credential", + "either", + "etcetera", + "futures", + "log", + "memchr", + "parse-display", + "pin-project-lite", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tokio-tar", + "tokio-util", + "url", +] + [[package]] name = "testing-tools" version = "0.1.0" @@ -12667,7 +14280,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "matching-engine", "order-pool", "pade", @@ -12678,21 +14291,21 @@ dependencies = [ "rand_distr", "rayon", "reth", - "reth-chainspec", + "reth-chainspec 1.6.0", "reth-db", - "reth-metrics", + "reth-metrics 1.6.0", "reth-network", "reth-network-api", - "reth-network-peers", + "reth-network-peers 1.6.0", "reth-node-builder", "reth-node-ethereum", "reth-node-types", "reth-primitives", "reth-provider", - "reth-revm", - "reth-tasks", - "reth-transaction-pool", - "revm", + "reth-revm 1.6.0", + "reth-tasks 1.6.0", + "reth-transaction-pool 1.6.0", + "revm 27.0.3", "secp256k1 0.30.0", "telemetry", "telemetry-recorder", @@ -12723,12 +14336,12 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee", + "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "pade", "reth", - "reth-network-peers", + "reth-network-peers 1.6.0", "reth-provider", - "reth-tasks", + "reth-tasks 1.6.0", "secp256k1 0.30.0", "serde", "serial_test", @@ -12996,6 +14609,21 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tar" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75" +dependencies = [ + "filetime", + "futures-core", + "libc", + "redox_syscall 0.3.5", + "tokio", + "tokio-stream", + "xattr", +] + [[package]] name = "tokio-tungstenite" version = "0.26.2" @@ -13004,10 +14632,12 @@ checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", + "native-tls", "rustls 0.23.28", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", + "tokio-native-tls", "tokio-rustls 0.26.2", "tungstenite", "webpki-roots 0.26.11", @@ -13069,6 +14699,56 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2 0.4.11", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "socket2", + "tokio", + "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower" version = "0.5.2" @@ -13113,7 +14793,7 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", @@ -13221,6 +14901,24 @@ dependencies = [ "tracing-subscriber 0.3.19", ] +[[package]] +name = "tracing-opentelemetry" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721f2d2569dce9f3dfbbddee5906941e953bfcdf736a62da3377f5751650cc36" +dependencies = [ + "js-sys", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber 0.3.19", + "web-time", +] + [[package]] name = "tracing-serde" version = "0.2.0" @@ -13333,6 +15031,7 @@ dependencies = [ "http 1.3.1", "httparse", "log", + "native-tls", "rand 0.9.1", "rustls 0.23.28", "rustls-pki-types", @@ -13455,11 +15154,11 @@ dependencies = [ "reth-node-builder", "reth-primitives", "reth-provider", - "revm", - "revm-bytecode", - "revm-database", + "revm 27.0.3", + "revm-bytecode 6.0.1", + "revm-database 7.0.1", "revm-primitives", - "revm-state", + "revm-state 7.0.1", "serde", "telemetry-recorder", "testing-tools", @@ -13587,18 +15286,18 @@ dependencies = [ "proptest-derive", "rand 0.9.1", "reth-discv4", - "reth-metrics", + "reth-metrics 1.6.0", "reth-network", "reth-primitives", "reth-provider", - "reth-revm", + "reth-revm 1.6.0", "reth-tracing", - "reth-transaction-pool", - "revm", - "revm-bytecode", - "revm-database", + "reth-transaction-pool 1.6.0", + "revm 27.0.3", + "revm-bytecode 6.0.1", + "revm-database 7.0.1", "revm-primitives", - "revm-state", + "revm-state 7.0.1", "secp256k1 0.30.0", "serde", "serde_json", diff --git a/crates/types/Cargo.toml b/crates/types/Cargo.toml index 27ea275dd..91fa1c379 100644 --- a/crates/types/Cargo.toml +++ b/crates/types/Cargo.toml @@ -48,6 +48,10 @@ tracing.workspace = true tracing-subscriber.workspace = true uniswap_v3_math.workspace = true +# Optimism & Flashblocks +reth-optimism-primitives.workspace = true +rollup-boost = { git = "http://github.com/flashbots/rollup-boost", tag = "v0.7.4" } + [build-dependencies] convert_case.workspace = true itertools.workspace = true diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs new file mode 100644 index 000000000..563d2ae0c --- /dev/null +++ b/crates/types/src/flashblocks/mod.rs @@ -0,0 +1,147 @@ +//! Flashblocks + +use std::{ + collections::{HashMap, HashSet}, + ops::RangeInclusive +}; + +use alloy::{consensus::TxReceipt, eips::eip2718::Decodable2718}; +use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash, U256}; +use reth::rpc::types::engine::{ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3}; +use reth_optimism_primitives::{OpBlock, OpPrimitives, OpReceipt, OpTransactionSigned}; +use reth_primitives::RecoveredBlock; +use reth_primitives_traits::Block; +use rollup_boost::FlashblocksPayloadV1; +use serde::{Deserialize, Serialize}; + +use crate::primitive::ChainExt; + +/// Metadata for a Flashblock. This is the same for Base and Unichain. +#[derive(Debug, Deserialize, Serialize, Clone, Default)] +pub struct Metadata { + pub receipts: HashMap, + pub new_account_balances: HashMap, + pub block_number: u64 +} + +/// A chain that is "pending", as in built from Flashblocks. Based on +/// [`Chain`](reth_provider::Chain) and implements +/// [`ChainExt`](crate::primitive::ChainExt). +pub struct PendingChain { + /// The Flashblock payload. + flashblock: FlashblocksPayloadV1, + /// The Flashblock as a recovered block. + block: RecoveredBlock, + /// The Flashblock metadata. + metadata: Metadata, + /// The decoded transactions in the Flashblock. + transactions: HashMap +} + +impl PendingChain { + /// Creates a new pending chain from a Flashblock payload. Decodes the + /// metadata and the transactions. + pub fn new(flashblock: FlashblocksPayloadV1) -> Self { + let metadata = serde_json::from_value(flashblock.metadata.clone()).unwrap(); + let transactions = flashblock + .diff + .transactions + .iter() + .map(|tx| { + let decoded = OpTransactionSigned::decode_2718(&mut tx.as_ref()).unwrap(); + (decoded.tx_hash(), decoded) + }) + .collect(); + + let base = flashblock.base.clone().expect("Base block is required"); + + // Build the actual execution payload and block. + let execution_payload = ExecutionPayloadV3 { + blob_gas_used: 0, + excess_blob_gas: 0, + payload_inner: ExecutionPayloadV2 { + withdrawals: flashblock.diff.withdrawals.clone(), + payload_inner: ExecutionPayloadV1 { + parent_hash: base.parent_hash, + fee_recipient: base.fee_recipient, + state_root: flashblock.diff.state_root, + receipts_root: flashblock.diff.receipts_root, + logs_bloom: flashblock.diff.logs_bloom, + prev_randao: base.prev_randao, + block_number: base.block_number, + gas_limit: base.gas_limit, + gas_used: flashblock.diff.gas_used, + timestamp: base.timestamp, + extra_data: base.extra_data, + base_fee_per_gas: base.base_fee_per_gas, + block_hash: flashblock.diff.block_hash, + transactions: flashblock.diff.transactions.clone() + } + } + }; + + let block = execution_payload + .try_into_block() + .expect("Failed to convert to block"); + + let block = block.try_into_recovered().expect("Failed to recover block"); + + Self { flashblock, block, metadata, transactions } + } +} + +/// We only implement this for `OpPrimitives` because that's the only scenario +/// where we have Flashblocks. +impl ChainExt for PendingChain { + /// Returns the block number of the canonical base block (not the + /// Flashblock). + fn tip_number(&self) -> BlockNumber { + self.metadata.block_number + } + + /// The index of the Flashblock in the block. + fn flashblock_index(&self) -> Option { + Some(self.flashblock.index) + } + + /// Returns the block hash of the Flashblock. + fn tip_hash(&self) -> BlockHash { + self.flashblock.diff.block_hash + } + + /// Returns the receipts for a given block hash. + fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option> { + if self.tip_hash() == block_hash { + Some(self.metadata.receipts.values().collect()) + } else { + None + } + } + + fn tip_transactions(&self) -> impl Iterator + '_ { + self.transactions.values() + } + + fn successful_tip_transactions(&self) -> impl Iterator + '_ { + let successful_hashes = self + .metadata + .receipts + .iter() + .filter_map(|(tx_hash, receipt)| receipt.status().then_some(tx_hash)) + .collect::>(); + + self.transactions + .iter() + .filter_map(move |(tx_hash, tx)| successful_hashes.contains(tx_hash).then_some(tx)) + } + + /// Flashblocks are not reorged. + /// TODO(mempirate): Is this actually the case? + fn reorged_range(&self, _new: impl ChainExt) -> Option> { + None + } + + fn blocks_iter(&self) -> impl Iterator> + '_ { + vec![&self.block].into_iter() + } +} diff --git a/crates/types/src/lib.rs b/crates/types/src/lib.rs index 1afdfd02c..a2227c1be 100644 --- a/crates/types/src/lib.rs +++ b/crates/types/src/lib.rs @@ -5,6 +5,7 @@ pub mod block_sync; pub mod consensus; pub mod contract_bindings; pub mod contract_payloads; +pub mod flashblocks; pub mod matching; pub mod network; pub mod orders; diff --git a/crates/types/src/primitive/chain_ext.rs b/crates/types/src/primitive/chain_ext.rs index f03f5167f..9e383409b 100644 --- a/crates/types/src/primitive/chain_ext.rs +++ b/crates/types/src/primitive/chain_ext.rs @@ -13,6 +13,7 @@ pub const MAX_REORG_DEPTH: u64 = 150; #[auto_impl::auto_impl(&, Arc)] pub trait ChainExt { fn tip_number(&self) -> BlockNumber; + fn flashblock_index(&self) -> Option; fn tip_hash(&self) -> BlockHash; fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option>; fn tip_transactions(&self) -> impl Iterator + '_; @@ -26,6 +27,10 @@ impl ChainExt for Chain { self.tip().number() } + fn flashblock_index(&self) -> Option { + None + } + fn tip_hash(&self) -> BlockHash { self.tip().hash() } diff --git a/crates/types/src/primitive/mod.rs b/crates/types/src/primitive/mod.rs index 492683a9c..0aee60bb3 100644 --- a/crates/types/src/primitive/mod.rs +++ b/crates/types/src/primitive/mod.rs @@ -6,6 +6,7 @@ mod pool_state; mod recovered_bundle; mod rpcs; mod signer; +mod state; mod validation; pub use chain_config::*; @@ -16,4 +17,5 @@ pub use pool_state::*; pub use recovered_bundle::*; pub use rpcs::*; pub use signer::*; +pub use state::*; pub use validation::*; diff --git a/crates/types/src/primitive/state.rs b/crates/types/src/primitive/state.rs new file mode 100644 index 000000000..f7414ce14 --- /dev/null +++ b/crates/types/src/primitive/state.rs @@ -0,0 +1,37 @@ +use std::sync::Arc; + +use reth_primitives::{EthPrimitives, NodePrimitives}; +use reth_provider::Chain; + +use crate::flashblocks::PendingChain; + +/// A canonical chain state notification. This is extended from +/// [CanonStateNotification](reth_provider::CanonStateNotification) to include +/// Flashblocks support. +pub enum StateNotification { + /// The canonical chain was extended. + Commit { + /// The newly added chain segment. + new: Arc> + }, + /// The flashblock was committed. + FlashblockCommit { + /// The newly committed flashblock. + new: Arc + }, + /// A chain segment was reverted or reorged. + /// + /// - In the case of a reorg, the reverted blocks are present in `old`, and + /// the new blocks are present in `new`. + /// - In the case of a revert, the reverted blocks are present in `old`, and + /// `new` is an empty chain segment. + Reorg { + /// The chain segment that was reverted. + old: Arc>, + /// The chain segment that was added on top of the canonical chain, + /// minus the reverted blocks. + /// + /// In the case of a revert, not a reorg, this chain segment is empty. + new: Arc> + } +} From f3b0ffc51b2937a3cc09409e6ed38bb68d1fc36e Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Wed, 27 Aug 2025 11:41:53 +0200 Subject: [PATCH 03/18] feat(op-angstrom): improve Flashblocks types --- crates/types/src/flashblocks/mod.rs | 130 ++++++++++++++---------- crates/types/src/primitive/chain_ext.rs | 5 - 2 files changed, 77 insertions(+), 58 deletions(-) diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index 563d2ae0c..ad7e15aa8 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -5,13 +5,14 @@ use std::{ ops::RangeInclusive }; -use alloy::{consensus::TxReceipt, eips::eip2718::Decodable2718}; +use alloy::consensus::TxReceipt; use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash, U256}; use reth::rpc::types::engine::{ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3}; use reth_optimism_primitives::{OpBlock, OpPrimitives, OpReceipt, OpTransactionSigned}; use reth_primitives::RecoveredBlock; use reth_primitives_traits::Block; -use rollup_boost::FlashblocksPayloadV1; +use rollup_boost::ExecutionPayloadBaseV1; +pub use rollup_boost::FlashblocksPayloadV1; use serde::{Deserialize, Serialize}; use crate::primitive::ChainExt; @@ -28,54 +29,41 @@ pub struct Metadata { /// [`Chain`](reth_provider::Chain) and implements /// [`ChainExt`](crate::primitive::ChainExt). pub struct PendingChain { - /// The Flashblock payload. - flashblock: FlashblocksPayloadV1, /// The Flashblock as a recovered block. - block: RecoveredBlock, - /// The Flashblock metadata. - metadata: Metadata, - /// The decoded transactions in the Flashblock. - transactions: HashMap + blocks: Vec>, + /// The base block of this pending chain. + base: ExecutionPayloadBaseV1, + /// The Flashblock metadata. Index corresponds to the block index. + metadatas: Vec } -impl PendingChain { - /// Creates a new pending chain from a Flashblock payload. Decodes the - /// metadata and the transactions. - pub fn new(flashblock: FlashblocksPayloadV1) -> Self { - let metadata = serde_json::from_value(flashblock.metadata.clone()).unwrap(); - let transactions = flashblock - .diff - .transactions - .iter() - .map(|tx| { - let decoded = OpTransactionSigned::decode_2718(&mut tx.as_ref()).unwrap(); - (decoded.tx_hash(), decoded) - }) - .collect(); - - let base = flashblock.base.clone().expect("Base block is required"); +trait FlashblockExt { + fn into_recovered_block(&self, base: &ExecutionPayloadBaseV1) -> RecoveredBlock; +} +impl FlashblockExt for FlashblocksPayloadV1 { + fn into_recovered_block(&self, base: &ExecutionPayloadBaseV1) -> RecoveredBlock { // Build the actual execution payload and block. let execution_payload = ExecutionPayloadV3 { blob_gas_used: 0, excess_blob_gas: 0, payload_inner: ExecutionPayloadV2 { - withdrawals: flashblock.diff.withdrawals.clone(), + withdrawals: self.diff.withdrawals.clone(), payload_inner: ExecutionPayloadV1 { parent_hash: base.parent_hash, fee_recipient: base.fee_recipient, - state_root: flashblock.diff.state_root, - receipts_root: flashblock.diff.receipts_root, - logs_bloom: flashblock.diff.logs_bloom, + state_root: self.diff.state_root, + receipts_root: self.diff.receipts_root, + logs_bloom: self.diff.logs_bloom, prev_randao: base.prev_randao, block_number: base.block_number, gas_limit: base.gas_limit, - gas_used: flashblock.diff.gas_used, + gas_used: self.diff.gas_used, timestamp: base.timestamp, - extra_data: base.extra_data, + extra_data: base.extra_data.clone(), base_fee_per_gas: base.base_fee_per_gas, - block_hash: flashblock.diff.block_hash, - transactions: flashblock.diff.transactions.clone() + block_hash: self.diff.block_hash, + transactions: self.diff.transactions.clone() } } }; @@ -84,9 +72,42 @@ impl PendingChain { .try_into_block() .expect("Failed to convert to block"); - let block = block.try_into_recovered().expect("Failed to recover block"); + block.try_into_recovered().expect("Failed to recover block") + } +} + +impl PendingChain { + /// Creates a new pending chain from a Flashblock payload. Decodes the + /// metadata and the transactions. This should only be used for the first + /// Flashblock for a certain slot (i.e. index = 0), because it expects the + /// base to be present. + pub fn new(flashblock: FlashblocksPayloadV1) -> Self { + let metadata = serde_json::from_value(flashblock.metadata.clone()).unwrap(); + + let base = flashblock.base.clone().expect("Base block is required"); + + // Build the actual execution payload and block. + let block = flashblock.into_recovered_block(&base); + + // Capacity = 5 (1s / 250ms) + let mut blocks = Vec::with_capacity(5); + blocks.push(block); + + let mut metadatas = Vec::with_capacity(5); + metadatas.push(metadata); + + Self { blocks, base, metadatas } + } + + /// Pushes a new Flashblock to the pending chain. This will build the + /// execution payload and block, and then recover the block. + pub fn push_flashblock(&mut self, flashblock: FlashblocksPayloadV1) { + let metadata = serde_json::from_value(flashblock.metadata.clone()).unwrap(); + + let block = flashblock.into_recovered_block(&self.base); - Self { flashblock, block, metadata, transactions } + self.blocks.push(block); + self.metadatas.push(metadata); } } @@ -96,43 +117,46 @@ impl ChainExt for PendingChain { /// Returns the block number of the canonical base block (not the /// Flashblock). fn tip_number(&self) -> BlockNumber { - self.metadata.block_number - } - - /// The index of the Flashblock in the block. - fn flashblock_index(&self) -> Option { - Some(self.flashblock.index) + self.metadatas.last().unwrap().block_number } /// Returns the block hash of the Flashblock. fn tip_hash(&self) -> BlockHash { - self.flashblock.diff.block_hash + self.blocks.last().unwrap().hash() } /// Returns the receipts for a given block hash. fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option> { - if self.tip_hash() == block_hash { - Some(self.metadata.receipts.values().collect()) - } else { - None - } + let index = self + .blocks + .iter() + .position(|block| block.hash() == block_hash)?; + + let metadata = &self.metadatas[index]; + + Some(metadata.receipts.values().collect()) } fn tip_transactions(&self) -> impl Iterator + '_ { - self.transactions.values() + self.blocks + .last() + .unwrap() + .transactions_with_sender() + .map(|(_, tx)| tx) } fn successful_tip_transactions(&self) -> impl Iterator + '_ { let successful_hashes = self - .metadata + .metadatas + .last() + .unwrap() .receipts .iter() .filter_map(|(tx_hash, receipt)| receipt.status().then_some(tx_hash)) .collect::>(); - self.transactions - .iter() - .filter_map(move |(tx_hash, tx)| successful_hashes.contains(tx_hash).then_some(tx)) + self.tip_transactions() + .filter(move |tx| successful_hashes.contains(&tx.tx_hash())) } /// Flashblocks are not reorged. @@ -142,6 +166,6 @@ impl ChainExt for PendingChain { } fn blocks_iter(&self) -> impl Iterator> + '_ { - vec![&self.block].into_iter() + self.blocks.iter() } } diff --git a/crates/types/src/primitive/chain_ext.rs b/crates/types/src/primitive/chain_ext.rs index 9e383409b..f03f5167f 100644 --- a/crates/types/src/primitive/chain_ext.rs +++ b/crates/types/src/primitive/chain_ext.rs @@ -13,7 +13,6 @@ pub const MAX_REORG_DEPTH: u64 = 150; #[auto_impl::auto_impl(&, Arc)] pub trait ChainExt { fn tip_number(&self) -> BlockNumber; - fn flashblock_index(&self) -> Option; fn tip_hash(&self) -> BlockHash; fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option>; fn tip_transactions(&self) -> impl Iterator + '_; @@ -27,10 +26,6 @@ impl ChainExt for Chain { self.tip().number() } - fn flashblock_index(&self) -> Option { - None - } - fn tip_hash(&self) -> BlockHash { self.tip().hash() } From ac16855af4d74416af368147bf980baafbb9d74c Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Wed, 27 Aug 2025 11:46:24 +0200 Subject: [PATCH 04/18] docs(op-angstrom): Flashblock type docs --- crates/types/src/flashblocks/mod.rs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index ad7e15aa8..cc3b6edf0 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -28,13 +28,16 @@ pub struct Metadata { /// A chain that is "pending", as in built from Flashblocks. Based on /// [`Chain`](reth_provider::Chain) and implements /// [`ChainExt`](crate::primitive::ChainExt). +/// +/// A pending chain lasts for a single slot time, and consists of (slot time / +/// flashblock interval) blocks. pub struct PendingChain { /// The Flashblock as a recovered block. blocks: Vec>, - /// The base block of this pending chain. - base: ExecutionPayloadBaseV1, /// The Flashblock metadata. Index corresponds to the block index. - metadatas: Vec + metadatas: Vec, + /// The base block of this pending chain. + base: ExecutionPayloadBaseV1 } trait FlashblockExt { @@ -81,6 +84,12 @@ impl PendingChain { /// metadata and the transactions. This should only be used for the first /// Flashblock for a certain slot (i.e. index = 0), because it expects the /// base to be present. + /// + /// If you want to add a Flashblock to an existing pending chain, use + /// [`Self::push_flashblock`] instead. + /// + /// # Panics + /// Panics if the base block is not present. pub fn new(flashblock: FlashblocksPayloadV1) -> Self { let metadata = serde_json::from_value(flashblock.metadata.clone()).unwrap(); @@ -125,7 +134,7 @@ impl ChainExt for PendingChain { self.blocks.last().unwrap().hash() } - /// Returns the receipts for a given block hash. + /// Returns the receipts for a given Flashblock block hash. fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option> { let index = self .blocks @@ -137,6 +146,7 @@ impl ChainExt for PendingChain { Some(metadata.receipts.values().collect()) } + /// Returns the transactions for the Flashblock tip. fn tip_transactions(&self) -> impl Iterator + '_ { self.blocks .last() @@ -145,6 +155,10 @@ impl ChainExt for PendingChain { .map(|(_, tx)| tx) } + /// Returns the successful transactions for the Flashblock tip. + /// + /// NOTE: In theory, this should just be all transactions since Flashblocks + /// shouldn't contain reverts, but we filter here just to be safe. fn successful_tip_transactions(&self) -> impl Iterator + '_ { let successful_hashes = self .metadatas @@ -165,6 +179,7 @@ impl ChainExt for PendingChain { None } + /// Returns an iterator over the Flashblock blocks. fn blocks_iter(&self) -> impl Iterator> + '_ { self.blocks.iter() } From 39faacd1d4604042fa929fc8d455fb8280a76d7d Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Wed, 27 Aug 2025 15:59:10 +0200 Subject: [PATCH 05/18] feat(op-angstrom): fix generic Flashblocks types --- crates/types/Cargo.toml | 2 +- crates/types/src/flashblocks/mod.rs | 82 +++++++++++++++-------------- 2 files changed, 44 insertions(+), 40 deletions(-) diff --git a/crates/types/Cargo.toml b/crates/types/Cargo.toml index 91fa1c379..ae697a4b4 100644 --- a/crates/types/Cargo.toml +++ b/crates/types/Cargo.toml @@ -49,7 +49,7 @@ tracing-subscriber.workspace = true uniswap_v3_math.workspace = true # Optimism & Flashblocks -reth-optimism-primitives.workspace = true +reth-optimism-primitives = { workspace = true, features = ["serde", "serde-bincode-compat"] } rollup-boost = { git = "http://github.com/flashbots/rollup-boost", tag = "v0.7.4" } [build-dependencies] diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index cc3b6edf0..41f37a973 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -1,15 +1,15 @@ //! Flashblocks -use std::{ - collections::{HashMap, HashSet}, - ops::RangeInclusive -}; +use std::{collections::HashMap, ops::RangeInclusive}; -use alloy::consensus::TxReceipt; +use alloy::{ + consensus::TxReceipt, + rlp::{Decodable, Encodable} +}; use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash, U256}; use reth::rpc::types::engine::{ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3}; -use reth_optimism_primitives::{OpBlock, OpPrimitives, OpReceipt, OpTransactionSigned}; -use reth_primitives::RecoveredBlock; +use reth_optimism_primitives::OpPrimitives; +use reth_primitives::{NodePrimitives, RecoveredBlock}; use reth_primitives_traits::Block; use rollup_boost::ExecutionPayloadBaseV1; pub use rollup_boost::FlashblocksPayloadV1; @@ -19,8 +19,8 @@ use crate::primitive::ChainExt; /// Metadata for a Flashblock. This is the same for Base and Unichain. #[derive(Debug, Deserialize, Serialize, Clone, Default)] -pub struct Metadata { - pub receipts: HashMap, +pub struct Metadata { + pub receipts: HashMap, pub new_account_balances: HashMap, pub block_number: u64 } @@ -31,21 +31,27 @@ pub struct Metadata { /// /// A pending chain lasts for a single slot time, and consists of (slot time / /// flashblock interval) blocks. -pub struct PendingChain { +pub struct PendingChain { /// The Flashblock as a recovered block. - blocks: Vec>, + blocks: Vec>, /// The Flashblock metadata. Index corresponds to the block index. - metadatas: Vec, + metadatas: Vec>, /// The base block of this pending chain. base: ExecutionPayloadBaseV1 } trait FlashblockExt { - fn into_recovered_block(&self, base: &ExecutionPayloadBaseV1) -> RecoveredBlock; + fn into_recovered_block( + &self, + base: &ExecutionPayloadBaseV1 + ) -> RecoveredBlock; } impl FlashblockExt for FlashblocksPayloadV1 { - fn into_recovered_block(&self, base: &ExecutionPayloadBaseV1) -> RecoveredBlock { + fn into_recovered_block( + &self, + base: &ExecutionPayloadBaseV1 + ) -> RecoveredBlock { // Build the actual execution payload and block. let execution_payload = ExecutionPayloadV3 { blob_gas_used: 0, @@ -72,14 +78,24 @@ impl FlashblockExt for FlashblocksPayloadV1 { }; let block = execution_payload - .try_into_block() + .try_into_block::() .expect("Failed to convert to block"); - block.try_into_recovered().expect("Failed to recover block") + // NOTE: This BS encode/decode is necessary to convert from concrete type to + // the generic type N::Block. + let mut buf = Vec::new(); + block.encode(&mut buf); + + let decoded_block = N::Block::decode(&mut buf.as_slice()).expect("Failed to decode block"); + + decoded_block + .try_into_recovered() + .expect("Failed to recover block") } } -impl PendingChain { +// Specialized implementation for OpPrimitives +impl PendingChain { /// Creates a new pending chain from a Flashblock payload. Decodes the /// metadata and the transactions. This should only be used for the first /// Flashblock for a certain slot (i.e. index = 0), because it expects the @@ -96,9 +112,9 @@ impl PendingChain { let base = flashblock.base.clone().expect("Base block is required"); // Build the actual execution payload and block. - let block = flashblock.into_recovered_block(&base); + let block = flashblock.into_recovered_block::(&base); - // Capacity = 5 (1s / 250ms) + // Capacity = 5 (1s / 200ms) let mut blocks = Vec::with_capacity(5); blocks.push(block); @@ -113,16 +129,15 @@ impl PendingChain { pub fn push_flashblock(&mut self, flashblock: FlashblocksPayloadV1) { let metadata = serde_json::from_value(flashblock.metadata.clone()).unwrap(); - let block = flashblock.into_recovered_block(&self.base); + let block = flashblock.into_recovered_block::(&self.base); self.blocks.push(block); self.metadatas.push(metadata); } } -/// We only implement this for `OpPrimitives` because that's the only scenario -/// where we have Flashblocks. -impl ChainExt for PendingChain { +/// Generic implementation for any NodePrimitives - provides default behavior +impl ChainExt for PendingChain { /// Returns the block number of the canonical base block (not the /// Flashblock). fn tip_number(&self) -> BlockNumber { @@ -135,7 +150,7 @@ impl ChainExt for PendingChain { } /// Returns the receipts for a given Flashblock block hash. - fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option> { + fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option> { let index = self .blocks .iter() @@ -147,7 +162,7 @@ impl ChainExt for PendingChain { } /// Returns the transactions for the Flashblock tip. - fn tip_transactions(&self) -> impl Iterator + '_ { + fn tip_transactions(&self) -> impl Iterator + '_ { self.blocks .last() .unwrap() @@ -159,28 +174,17 @@ impl ChainExt for PendingChain { /// /// NOTE: In theory, this should just be all transactions since Flashblocks /// shouldn't contain reverts, but we filter here just to be safe. - fn successful_tip_transactions(&self) -> impl Iterator + '_ { - let successful_hashes = self - .metadatas - .last() - .unwrap() - .receipts - .iter() - .filter_map(|(tx_hash, receipt)| receipt.status().then_some(tx_hash)) - .collect::>(); - + fn successful_tip_transactions(&self) -> impl Iterator + '_ { self.tip_transactions() - .filter(move |tx| successful_hashes.contains(&tx.tx_hash())) } /// Flashblocks are not reorged. - /// TODO(mempirate): Is this actually the case? - fn reorged_range(&self, _new: impl ChainExt) -> Option> { + fn reorged_range(&self, _new: impl ChainExt) -> Option> { None } /// Returns an iterator over the Flashblock blocks. - fn blocks_iter(&self) -> impl Iterator> + '_ { + fn blocks_iter(&self) -> impl Iterator> + '_ { self.blocks.iter() } } From 98d239aaf438eaa1c8b2ee8c661ebbd9ec01f7d5 Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Wed, 27 Aug 2025 15:59:23 +0200 Subject: [PATCH 06/18] feat(op-angstrom/cli): Flashblocks support --- crates/cli/src/op_angstrom.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/crates/cli/src/op_angstrom.rs b/crates/cli/src/op_angstrom.rs index b8ac578f4..0adaa86b2 100644 --- a/crates/cli/src/op_angstrom.rs +++ b/crates/cli/src/op_angstrom.rs @@ -33,19 +33,26 @@ const SUPPORTED_CHAINS: &[NamedChain] = #[derive(Debug, Clone, Parser)] pub struct OpAngstromArgs { #[command(flatten)] - pub rollup: RollupArgs, + pub rollup: RollupArgs, #[command(flatten)] - pub angstrom: AngstromConfig, - /// Flashblocks WebSocket URL. Enables Flashblocks support. - #[arg(long, value_name = "WEBSOCKET_URL")] - pub flashblocks_url: Option + pub angstrom: AngstromConfig, + #[command(flatten)] + pub flashblocks: FlashblocksConfig +} + +pub struct FlashblocksConfig { + /// Enable Flashblocks support. + #[arg(long = "flashblocks", default_value = "false")] + pub enabled: bool, + + /// Flashblocks WebSocket URL. + #[arg(long = "flashblocks.ws", value_name = "WEBSOCKET_URL")] + pub url: Option } impl OpAngstromArgs { - /// Flashblocks support is enabled if the Flashblocks WebSocket URL is - /// provided. fn flashblocks_enabled(&self) -> bool { - self.flashblocks_url.is_some() + self.flashblocks.enabled } } From 389dabadf32db3f3e772f05cb135fdea1a20a873 Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Wed, 27 Aug 2025 17:26:01 +0200 Subject: [PATCH 07/18] feat(op-angstrom): add Flashblocks crate, start working on state --- Cargo.lock | 12 +++++ Cargo.toml | 3 +- crates/cli/Cargo.toml | 1 + crates/cli/src/op_angstrom.rs | 23 +++++++++- crates/eth/src/handle.rs | 8 ++-- crates/eth/src/manager.rs | 65 ++++++++++++++++++++-------- crates/flashblocks/Cargo.toml | 18 ++++++++ crates/flashblocks/src/lib.rs | 2 + crates/flashblocks/src/state.rs | 40 +++++++++++++++++ crates/flashblocks/src/subscriber.rs | 12 +++++ crates/types/src/flashblocks/mod.rs | 5 +++ 11 files changed, 163 insertions(+), 26 deletions(-) create mode 100644 crates/flashblocks/Cargo.toml create mode 100644 crates/flashblocks/src/lib.rs create mode 100644 crates/flashblocks/src/state.rs create mode 100644 crates/flashblocks/src/subscriber.rs diff --git a/Cargo.lock b/Cargo.lock index 0862edbf1..585e0e5df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1138,6 +1138,7 @@ dependencies = [ "clap", "consensus", "eyre", + "flashblocks", "futures", "hsm-signer", "matching-engine", @@ -4508,6 +4509,17 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "flashblocks" +version = "0.1.0" +dependencies = [ + "angstrom-types", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "tokio", + "url", +] + [[package]] name = "flate2" version = "1.1.2" diff --git a/Cargo.toml b/Cargo.toml index 69ea50812..28ba92a45 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -118,6 +118,7 @@ dashmap = { version = "6", features = ["serde"] } divan = "0" enr = { version = "0", default-features = false, features = ["k256"] } eyre = "0" +flashblocks = { path = "./crates/flashblocks/" } futures = "0" futures-core = "0" futures-util = "0" @@ -142,9 +143,9 @@ once_cell = "1" order-pool = { path = "./crates/order-pool/" } pade = { git = "https://github.com/SorellaLabs/pade", version = "0.1.0" } pade-macro = { git = "https://github.com/SorellaLabs/pade", version = "0.1.0" } -pool-manager = { path = "./crates/pool-manager/" } parking_lot = "0" pin-project = "1" +pool-manager = { path = "./crates/pool-manager/" } pprof = "0" proc-macro2 = "1" proptest = "1" diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index c120774ff..b4977a01c 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -45,6 +45,7 @@ url.workspace = true validation.workspace = true # OP-stack support +flashblocks.workspace = true reth-optimism-chainspec.workspace = true reth-optimism-cli.workspace = true reth-optimism-node.workspace = true diff --git a/crates/cli/src/op_angstrom.rs b/crates/cli/src/op_angstrom.rs index 0adaa86b2..184156a76 100644 --- a/crates/cli/src/op_angstrom.rs +++ b/crates/cli/src/op_angstrom.rs @@ -159,15 +159,34 @@ async fn run_with_signer( let op_node = OpNode::new(args.rollup); + // TODO: Not a great pattern + let (writer, reader) = flashblocks::state::initialize(); + let node_handle = builder .with_types::() .with_components(op_node.components_builder()) .with_add_ons(op_node.add_ons()) .install_exex_if(args.flashblocks_enabled(), "flashblocks", { - // TODO: Install Flashblocks ExEx here - todo!(); + // This ExEx is used to notify the Flashblocks state writer of new canonical + // blocks, so it can clean up the pending state. + move |mut ctx| async move { + Ok(async move { + while let Some(note) = ctx.notifications.try_next().await? { + if let Some(committed) = note.committed_chain() { + for b in committed.blocks_iter() { + writer.on_canonical_block(&b); + } + let _ = ctx + .events + .send(ExExEvent::FinishedHeight(committed.tip().num_hash())); + } + } + Ok(()) + }) + } }) .extend_rpc_modules(move |rpc_context| { + // TODO(mempirate): Potentially add Flashblocks RPC overrides here. let order_api = OrderApi::new( pool.clone(), executor_clone.clone(), diff --git a/crates/eth/src/handle.rs b/crates/eth/src/handle.rs index 5b24a6d61..7018dcb8e 100644 --- a/crates/eth/src/handle.rs +++ b/crates/eth/src/handle.rs @@ -1,9 +1,9 @@ use std::pin::Pin; +use angstrom_types::primitive::StateNotification; use futures::Future; use futures_util::Stream; use reth_primitives::{EthPrimitives, NodePrimitives}; -use reth_provider::CanonStateNotification; use tokio::sync::mpsc::{Sender, UnboundedSender, unbounded_channel}; use tokio_stream::wrappers::UnboundedReceiverStream; @@ -17,13 +17,13 @@ pub trait Eth: Clone + Send + Sync { fn subscribe_network(&self) -> UnboundedReceiverStream; fn subscribe_cannon_state_notifications( &self - ) -> impl Future>> + Send; + ) -> impl Future>> + Send; } pub enum EthCommand { SubscribeEthNetworkEvents(UnboundedSender), SubscribeCannon( - tokio::sync::oneshot::Sender>> + tokio::sync::oneshot::Sender>> ) } @@ -41,7 +41,7 @@ impl EthHandle { impl Eth for EthHandle { async fn subscribe_cannon_state_notifications( &self - ) -> tokio::sync::broadcast::Receiver> { + ) -> tokio::sync::broadcast::Receiver> { let (tx, rx) = tokio::sync::oneshot::channel(); let _ = self.sender.send(EthCommand::::SubscribeCannon(tx)).await; rx.await.unwrap() diff --git a/crates/eth/src/manager.rs b/crates/eth/src/manager.rs index d6c69088f..db5b8c56c 100644 --- a/crates/eth/src/manager.rs +++ b/crates/eth/src/manager.rs @@ -17,7 +17,8 @@ use angstrom_types::{ controller_v_1::ControllerV1::{NodeAdded, NodeRemoved, PoolConfigured, PoolRemoved} }, contract_payloads::angstrom::{AngPoolConfigEntry, AngstromBundle, AngstromPoolConfigStore}, - primitive::ChainExt + flashblocks::{FlashblocksPayloadV1, PendingChain}, + primitive::{ChainExt, StateNotification} }; use futures::Future; use futures_util::{FutureExt, StreamExt}; @@ -43,23 +44,25 @@ alloy::sol!( /// Listens for CanonStateNotifications and sends the appropriate updates to be /// executed by the order pool pub struct EthDataCleanser { - pub(crate) angstrom_address: Address, - pub(crate) periphery_address: Address, + pub(crate) angstrom_address: Address, + pub(crate) periphery_address: Address, /// our command receiver - pub(crate) commander: ReceiverStream>, + pub(crate) commander: ReceiverStream>, /// people listening to events - pub(crate) event_listeners: Vec>, + pub(crate) event_listeners: Vec>, /// for rebroadcasting - pub(crate) cannon_sender: tokio::sync::broadcast::Sender>, + pub(crate) cannon_sender: tokio::sync::broadcast::Sender>, /// Notifications for Canonical Block updates - pub(crate) canonical_updates: BroadcastStream>, - pub(crate) angstrom_tokens: HashMap, + pub(crate) canonical_updates: BroadcastStream>, + /// Notifications for Flashblocks. + pub(crate) flashblock_updates: BroadcastStream, + pub(crate) angstrom_tokens: HashMap, /// handles syncing of blocks. - block_sync: Sync, + block_sync: Sync, /// updated by periphery contract. - pub(crate) pool_store: Arc, + pub(crate) pool_store: Arc, /// the set of currently active nodes. - pub(crate) node_set: HashSet
+ pub(crate) node_set: HashSet
} impl EthDataCleanser @@ -71,6 +74,7 @@ where angstrom_address: Address, periphery_address: Address, canonical_updates: CanonStateNotifications, + flashblock_updates: BroadcastStream, tp: TP, tx: Sender>, rx: Receiver>, @@ -87,6 +91,7 @@ where angstrom_address, periphery_address, canonical_updates: BroadcastStream::new(canonical_updates), + flashblock_updates, commander: stream, angstrom_tokens, cannon_sender: cannon_tx, @@ -109,9 +114,9 @@ where Ok(handle) } - fn subscribe_cannon_notifications( + fn subscribe_canon_notifications( &self - ) -> tokio::sync::broadcast::Receiver> { + ) -> tokio::sync::broadcast::Receiver> { self.cannon_sender.subscribe() } @@ -124,7 +129,7 @@ where match command { EthCommand::SubscribeEthNetworkEvents(tx) => self.event_listeners.push(tx), EthCommand::SubscribeCannon(tx) => { - let _ = tx.send(self.subscribe_cannon_notifications()); + let _ = tx.send(self.subscribe_canon_notifications()); } } } @@ -136,11 +141,29 @@ where canonical_updates.clone() ))); - match canonical_updates.clone() { - CanonStateNotification::Reorg { old, new } => self.handle_reorg(old, new), - CanonStateNotification::Commit { new } => self.handle_commit(new) - } - let _ = self.cannon_sender.send(canonical_updates); + let update = match canonical_updates { + CanonStateNotification::Reorg { old, new } => { + self.handle_reorg(old.clone(), new.clone()); + StateNotification::Reorg { old, new } + } + CanonStateNotification::Commit { new } => { + self.handle_commit(new.clone()); + StateNotification::Commit { new } + } + }; + + let _ = self.cannon_sender.send(update); + } + + fn on_flashblock_update(&mut self, pending: Arc>) { + tracing::debug!( + hash = ?pending.tip_hash(), + index = pending.tip_index(), + number = pending.tip_number(), + "New Flashblock received" + ); + + self.handle_commit(pending.clone()); } fn handle_reorg(&mut self, old: Arc>, new: Arc>) { @@ -416,6 +439,10 @@ pub mod test { self.number } + fn flashblock_index(&self) -> Option { + None + } + fn successful_tip_transactions(&self) -> impl Iterator + '_ { self.tip_transactions() } diff --git a/crates/flashblocks/Cargo.toml b/crates/flashblocks/Cargo.toml new file mode 100644 index 000000000..74696ae34 --- /dev/null +++ b/crates/flashblocks/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "flashblocks" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true +exclude.workspace = true + +[dependencies] +tokio.workspace = true +url.workspace = true + +reth-optimism-primitives.workspace = true +reth-primitives-traits.workspace = true + +angstrom-types.workspace = true diff --git a/crates/flashblocks/src/lib.rs b/crates/flashblocks/src/lib.rs new file mode 100644 index 000000000..481bba1f7 --- /dev/null +++ b/crates/flashblocks/src/lib.rs @@ -0,0 +1,2 @@ +mod state; +mod subscriber; diff --git a/crates/flashblocks/src/state.rs b/crates/flashblocks/src/state.rs new file mode 100644 index 000000000..ad2d98333 --- /dev/null +++ b/crates/flashblocks/src/state.rs @@ -0,0 +1,40 @@ +//! State for Flashblocks. + +use reth_optimism_primitives::OpBlock; +use reth_primitives_traits::RecoveredBlock; +use tokio::sync::watch; + +/// Initialize the pending state writer and reader. +pub fn initialize() -> (PendingStateWriter, PendingStateReader) { + let (tx, rx) = watch::channel(PendingState { tip: 0 }); + (PendingStateWriter { pending: tx }, PendingStateReader { pending: rx }) +} + +#[derive(Debug, Clone)] +pub struct PendingStateWriter { + /// The current pending state. + pending: watch::Sender +} + +impl PendingStateWriter { + pub fn on_canonical_block(&self, block: &RecoveredBlock) { + todo!("Implement") + } +} + +/// Contains the overlay state of the pending chain, aka the applied +/// Flashblocks. Read and write. +#[derive(Debug)] +pub struct PendingState { + tip: u64 +} + +/// TODO(mempirate): this should implement a trait so it can be used as a +/// provider. +/// +/// Take a look at reth_db_provider.rs +/// Read only access. +#[derive(Debug)] +pub struct PendingStateReader { + pending: watch::Receiver +} diff --git a/crates/flashblocks/src/subscriber.rs b/crates/flashblocks/src/subscriber.rs new file mode 100644 index 000000000..9b9c32a4b --- /dev/null +++ b/crates/flashblocks/src/subscriber.rs @@ -0,0 +1,12 @@ +use std::sync::Arc; + +use angstrom_types::flashblocks::PendingChain; +use tokio::sync::broadcast; +use url::Url; + +pub struct FlashblocksSubscriber { + ws: Url, + /// The current pending chain. + pending: PendingChain, + sender: broadcast::Sender> +} diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index 41f37a973..390eae7b2 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -134,6 +134,11 @@ impl PendingChain { self.blocks.push(block); self.metadatas.push(metadata); } + + /// Returns the index of the tip block (last Flashblock). + pub fn tip_index(&self) -> usize { + self.blocks.len() - 1 + } } /// Generic implementation for any NodePrimitives - provides default behavior From c153afea01504b271bfcfccda18a995da316d9a3 Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Wed, 27 Aug 2025 18:42:01 +0200 Subject: [PATCH 08/18] feat(op-angstrom): add Flashblocks subscriber, other stuff --- Cargo.lock | 10 ++ crates/cli/src/components.rs | 21 ++++- crates/cli/src/op_angstrom.rs | 25 +++-- crates/eth/src/manager.rs | 4 +- crates/flashblocks/Cargo.toml | 12 +++ crates/flashblocks/src/state.rs | 52 ++++++++--- crates/flashblocks/src/subscriber.rs | 133 ++++++++++++++++++++++++++- 7 files changed, 224 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 585e0e5df..f26a2df4a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4513,10 +4513,20 @@ dependencies = [ name = "flashblocks" version = "0.1.0" dependencies = [ + "alloy", "angstrom-types", + "brotli", + "eyre", + "futures", + "reth", + "reth-optimism-chainspec 1.6.0", "reth-optimism-primitives 1.6.0", "reth-primitives-traits 1.6.0", + "serde_json", "tokio", + "tokio-stream", + "tokio-tungstenite", + "tracing", "url", ] diff --git a/crates/cli/src/components.rs b/crates/cli/src/components.rs index 54e737161..cb14dc4f5 100644 --- a/crates/cli/src/components.rs +++ b/crates/cli/src/components.rs @@ -107,10 +107,12 @@ where signer: AngstromSigner, handles: StromHandles, - // Optional fields (non-rollup mode) - consensus_client: Option, - network_builder: Option>, - node_set: Option> + // Optional fields + consensus_client: Option, + network_builder: Option>, + node_set: Option>, + flashblocks_writer: Option, + flashblocks_ws: Option } impl AngstromLauncher @@ -143,9 +145,15 @@ where handles, network_builder: None, consensus_client: None, - node_set: None + node_set: None, + flashblocks_writer: None, + flashblocks_ws: None } } + + pub fn with_flashblocks(self, writer: PendingStateWriter, ws: Url) -> Self { + Self { flashblocks_writer: Some(writer), flashblocks_ws: Some(ws), ..self } + } } impl AngstromLauncher @@ -292,6 +300,8 @@ where tracing::info!(?block_id, "starting up with block"); let eth_data_sub = node.provider.subscribe_to_canonical_state(); + // TODO(mempirate): Initialize Flashblocks here. + let global_block_sync = GlobalBlockSync::new(block_id); // this right here problem @@ -305,6 +315,7 @@ where angstrom_address, controller, eth_data_sub, + None, executor.clone(), handles.eth_tx, handles.eth_rx, diff --git a/crates/cli/src/op_angstrom.rs b/crates/cli/src/op_angstrom.rs index 184156a76..2590a4b66 100644 --- a/crates/cli/src/op_angstrom.rs +++ b/crates/cli/src/op_angstrom.rs @@ -1,5 +1,5 @@ //! Optimism Angstrom binary executable. -use std::sync::Arc; +use std::{cell::OnceCell, sync::Arc}; use alloy_chains::NamedChain; use angstrom_amm_quoter::QuoterHandle; @@ -159,8 +159,7 @@ async fn run_with_signer( let op_node = OpNode::new(args.rollup); - // TODO: Not a great pattern - let (writer, reader) = flashblocks::state::initialize(); + let mut writer = None; let node_handle = builder .with_types::() @@ -170,11 +169,14 @@ async fn run_with_signer( // This ExEx is used to notify the Flashblocks state writer of new canonical // blocks, so it can clean up the pending state. move |mut ctx| async move { + let w = flashblocks::state::PendingStateWriter::new(ctx.provider.clone()); + writer = Some(w.clone()); + Ok(async move { while let Some(note) = ctx.notifications.try_next().await? { if let Some(committed) = note.committed_chain() { for b in committed.blocks_iter() { - writer.on_canonical_block(&b); + w.on_canonical_block(&b); } let _ = ctx .events @@ -200,13 +202,20 @@ async fn run_with_signer( .launch() .await?; - AngstromLauncher::<_, _, RollupMode, _>::new( + let launcher = AngstromLauncher::<_, _, RollupMode, _>::new( args.angstrom, executor, node_handle, secret_key, channels - ) - .launch() - .await + ); + + // Set up Flashblocks if enabled. + let launcher = if let Some(writer) = writer { + launcher.with_flashblocks(writer, args.flashblocks.url.unwrap()) + } else { + launcher + }; + + launcher.launch().await } diff --git a/crates/eth/src/manager.rs b/crates/eth/src/manager.rs index db5b8c56c..eb6b3724b 100644 --- a/crates/eth/src/manager.rs +++ b/crates/eth/src/manager.rs @@ -55,7 +55,7 @@ pub struct EthDataCleanser { /// Notifications for Canonical Block updates pub(crate) canonical_updates: BroadcastStream>, /// Notifications for Flashblocks. - pub(crate) flashblock_updates: BroadcastStream, + pub(crate) flashblock_updates: Option>, pub(crate) angstrom_tokens: HashMap, /// handles syncing of blocks. block_sync: Sync, @@ -74,7 +74,7 @@ where angstrom_address: Address, periphery_address: Address, canonical_updates: CanonStateNotifications, - flashblock_updates: BroadcastStream, + flashblock_updates: Option>, tp: TP, tx: Sender>, rx: Receiver>, diff --git a/crates/flashblocks/Cargo.toml b/crates/flashblocks/Cargo.toml index 74696ae34..20b6b71e2 100644 --- a/crates/flashblocks/Cargo.toml +++ b/crates/flashblocks/Cargo.toml @@ -9,10 +9,22 @@ repository.workspace = true exclude.workspace = true [dependencies] +alloy.workspace = true +brotli = "8.0.1" +eyre.workspace = true +futures.workspace = true +serde_json.workspace = true tokio.workspace = true +tokio-stream.workspace = true +tokio-tungstenite = { version = "0.26.2", features = ["native-tls"] } +tracing.workspace = true url.workspace = true +# Reth +reth.workspace = true +reth-optimism-chainspec.workspace = true reth-optimism-primitives.workspace = true reth-primitives-traits.workspace = true +# Angstrom angstrom-types.workspace = true diff --git a/crates/flashblocks/src/state.rs b/crates/flashblocks/src/state.rs index ad2d98333..8d1fcfdde 100644 --- a/crates/flashblocks/src/state.rs +++ b/crates/flashblocks/src/state.rs @@ -1,33 +1,59 @@ //! State for Flashblocks. +use angstrom_types::flashblocks::{FlashblocksPayloadV1, PendingChain}; +use reth::{ + chainspec::EthChainSpec, + providers::{BlockReaderIdExt, ChainSpecProvider, StateProviderFactory} +}; +use reth_optimism_chainspec::OpHardforks; use reth_optimism_primitives::OpBlock; -use reth_primitives_traits::RecoveredBlock; +use reth_primitives_traits::{Header, RecoveredBlock}; use tokio::sync::watch; -/// Initialize the pending state writer and reader. -pub fn initialize() -> (PendingStateWriter, PendingStateReader) { - let (tx, rx) = watch::channel(PendingState { tip: 0 }); - (PendingStateWriter { pending: tx }, PendingStateReader { pending: rx }) -} - #[derive(Debug, Clone)] -pub struct PendingStateWriter { +pub struct PendingStateWriter { + /// The canonical chain state provider. Read-only. + provider: P, /// The current pending state. - pending: watch::Sender + pending: watch::Sender, + /// The receiver channel for the pending state reader. Taken by the reader. + rx: Option> } -impl PendingStateWriter { +impl

PendingStateWriter

+where + P: StateProviderFactory + + ChainSpecProvider + OpHardforks> + + BlockReaderIdExt

+ + Clone + + 'static +{ + pub fn new(provider: P) -> Self { + let (tx, rx) = watch::channel(PendingState {}); + Self { pending: tx, rx: Some(rx), provider } + } + + /// Get a reader for the pending state. + pub fn reader(&mut self) -> PendingStateReader { + let rx = self.rx.take().expect("Reader already taken"); + PendingStateReader { pending: rx } + } + + /// Handles a new canonical block. pub fn on_canonical_block(&self, block: &RecoveredBlock) { todo!("Implement") } + + /// Handles a new flashblock. Returns the pending chain. + pub fn on_flashblock(&self, flashblock: FlashblocksPayloadV1) -> PendingChain { + todo!("Implement") + } } /// Contains the overlay state of the pending chain, aka the applied /// Flashblocks. Read and write. #[derive(Debug)] -pub struct PendingState { - tip: u64 -} +pub struct PendingState {} /// TODO(mempirate): this should implement a trait so it can be used as a /// provider. diff --git a/crates/flashblocks/src/subscriber.rs b/crates/flashblocks/src/subscriber.rs index 9b9c32a4b..fa0dbc1b7 100644 --- a/crates/flashblocks/src/subscriber.rs +++ b/crates/flashblocks/src/subscriber.rs @@ -1,12 +1,135 @@ -use std::sync::Arc; +//! Flashblocks subscriber. +//! +//! NOTE: This code was adapted from +use std::{io::Read, sync::Arc}; -use angstrom_types::flashblocks::PendingChain; +use angstrom_types::flashblocks::{FlashblocksPayloadV1, PendingChain}; +use futures::StreamExt; +use reth::{ + chainspec::EthChainSpec, + providers::{BlockReaderIdExt, ChainSpecProvider, StateProviderFactory} +}; +use reth_optimism_chainspec::OpHardforks; +use reth_primitives_traits::Header; use tokio::sync::broadcast; +use tokio_tungstenite::{connect_async, tungstenite::Message}; use url::Url; -pub struct FlashblocksSubscriber { +use crate::state::PendingStateWriter; + +pub struct FlashblocksSubscriber { ws: Url, /// The current pending chain. - pending: PendingChain, - sender: broadcast::Sender> + pending: Option, + sender: broadcast::Sender>, + writer: PendingStateWriter

+} + +impl

FlashblocksSubscriber

+where + P: StateProviderFactory + + ChainSpecProvider + OpHardforks> + + BlockReaderIdExt

+ + Clone + + 'static +{ + pub fn new(ws: Url, writer: PendingStateWriter

) -> Self { + Self { ws, pending: None, sender: broadcast::channel(100).0, writer } + } + + /// Subscribe to the pending chain. + pub fn subscribe_pending(&mut self) -> broadcast::Receiver> { + self.sender.subscribe() + } + + /// Spawns the subscriber. + pub async fn spawn(self) { + tracing::info!(ws = %self.ws, "Subscribing to Flashblocks ⚡"); + + let ws = self.ws.clone(); + + tokio::spawn(async move { + let mut backoff = std::time::Duration::from_secs(1); + const MAX_BACKOFF: std::time::Duration = std::time::Duration::from_secs(10); + + loop { + match connect_async(ws.as_str()).await { + Ok((ws_stream, _)) => { + tracing::info!("WebSocket connection established"); + + let (_, mut read) = ws_stream.split(); + + while let Some(msg) = read.next().await { + match msg { + Ok(Message::Binary(bytes)) => match try_decode_message(&bytes) { + Ok(payload) => { + let pending_chain = self.writer.on_flashblock(payload); + let _ = self.sender.send(Arc::new(pending_chain)); + } + Err(e) => { + tracing::error!( + message = "error decoding flashblock message", + error = %e + ); + } + }, + Ok(Message::Text(_)) => { + tracing::error!( + "Received flashblock as plaintext, only compressed \ + flashblocks supported. Set up websocket-proxy to use \ + compressed flashblocks." + ); + } + Ok(Message::Close(_)) => { + tracing::info!( + message = "WebSocket connection closed by upstream" + ); + break; + } + Err(e) => { + tracing::error!( + message = "error receiving message", + error = %e + ); + break; + } + _ => {} + } + } + } + Err(e) => { + tracing::error!( + message = "WebSocket connection error, retrying", + backoff_duration = ?backoff, + error = %e + ); + tokio::time::sleep(backoff).await; + backoff = std::cmp::min(backoff * 2, MAX_BACKOFF); + continue; + } + } + } + }); + } +} + +fn try_decode_message(bytes: &[u8]) -> eyre::Result { + let text = try_parse_message(bytes)?; + + serde_json::from_str(&text).map_err(|e| eyre::eyre!("failed to parse message: {}", e)) +} + +fn try_parse_message(bytes: &[u8]) -> eyre::Result { + if let Ok(text) = String::from_utf8(bytes.to_vec()) { + if text.trim_start().starts_with("{") { + return Ok(text); + } + } + + let mut decompressor = brotli::Decompressor::new(bytes, 4096); + let mut decompressed = Vec::new(); + decompressor.read_to_end(&mut decompressed)?; + + let text = String::from_utf8(decompressed)?; + Ok(text) } From f7a4c78938803d3fadfeb12bc72d5e1752a42933 Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Thu, 28 Aug 2025 09:15:05 +0200 Subject: [PATCH 09/18] feat(op-angstrom): WIP Flashblocks state --- Cargo.lock | 1 + crates/flashblocks/Cargo.toml | 1 + crates/flashblocks/src/state.rs | 86 ++++++++++++++++++++++------ crates/flashblocks/src/subscriber.rs | 13 ++--- crates/types/src/flashblocks/mod.rs | 1 + 5 files changed, 76 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f26a2df4a..d65227360 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4518,6 +4518,7 @@ dependencies = [ "brotli", "eyre", "futures", + "parking_lot", "reth", "reth-optimism-chainspec 1.6.0", "reth-optimism-primitives 1.6.0", diff --git a/crates/flashblocks/Cargo.toml b/crates/flashblocks/Cargo.toml index 20b6b71e2..96cd67a2c 100644 --- a/crates/flashblocks/Cargo.toml +++ b/crates/flashblocks/Cargo.toml @@ -13,6 +13,7 @@ alloy.workspace = true brotli = "8.0.1" eyre.workspace = true futures.workspace = true +parking_lot.workspace = true serde_json.workspace = true tokio.workspace = true tokio-stream.workspace = true diff --git a/crates/flashblocks/src/state.rs b/crates/flashblocks/src/state.rs index 8d1fcfdde..7c3d1749e 100644 --- a/crates/flashblocks/src/state.rs +++ b/crates/flashblocks/src/state.rs @@ -1,23 +1,27 @@ //! State for Flashblocks. -use angstrom_types::flashblocks::{FlashblocksPayloadV1, PendingChain}; +use std::sync::Arc; + +use angstrom_types::{ + flashblocks::{FlashblocksPayloadV1, PendingChain}, + primitive::ChainExt +}; +use parking_lot::RwLock; use reth::{ chainspec::EthChainSpec, providers::{BlockReaderIdExt, ChainSpecProvider, StateProviderFactory} }; use reth_optimism_chainspec::OpHardforks; use reth_optimism_primitives::OpBlock; -use reth_primitives_traits::{Header, RecoveredBlock}; -use tokio::sync::watch; +use reth_primitives_traits::{AlloyBlockHeader, Header, RecoveredBlock}; +use tokio::sync::broadcast; #[derive(Debug, Clone)] pub struct PendingStateWriter { /// The canonical chain state provider. Read-only. provider: P, /// The current pending state. - pending: watch::Sender, - /// The receiver channel for the pending state reader. Taken by the reader. - rx: Option> + pending: Arc> } impl

PendingStateWriter

@@ -29,38 +33,86 @@ where + 'static { pub fn new(provider: P) -> Self { - let (tx, rx) = watch::channel(PendingState {}); - Self { pending: tx, rx: Some(rx), provider } + let (tx, _) = broadcast::channel(128); + let pending = Arc::new(RwLock::new(PendingState { sender: tx, current: None })); + Self { pending, provider } } /// Get a reader for the pending state. - pub fn reader(&mut self) -> PendingStateReader { - let rx = self.rx.take().expect("Reader already taken"); - PendingStateReader { pending: rx } + pub fn reader(&self) -> PendingStateReader { + PendingStateReader { pending: self.pending.clone() } } /// Handles a new canonical block. pub fn on_canonical_block(&self, block: &RecoveredBlock) { - todo!("Implement") + // Reset the pending chain if the block number is greater than the canonical tip + // number. + let should_reset = self + .pending + .read() + .current + .as_ref() + .is_some_and(|chain| chain.tip_number() <= block.number()); + + if should_reset { + let mut pending = self.pending.write(); + // TODO: Should we notify here? + pending.current = None; + tracing::debug!("Received canonical block {}, reset pending chain", block.number(),); + } } /// Handles a new flashblock. Returns the pending chain. - pub fn on_flashblock(&self, flashblock: FlashblocksPayloadV1) -> PendingChain { - todo!("Implement") + pub fn on_flashblock(&self, flashblock: FlashblocksPayloadV1) { + let is_new = self.pending.read().current.is_none(); + + if is_new { + if flashblock.base.is_none() { + tracing::error!( + "Received new flashblock without base block, after reset. This means + we most likely missed a block, and we won't update the pending chain until the \ + next canonical block." + ); + return; + } + + // NOTE: Create the pending chain before acquiring the write lock for speed™️. + let new = PendingChain::new(flashblock); + let mut pending = self.pending.write(); + pending.current = Some(new); + } else { + let mut pending = self.pending.write(); + // SAFETY: We know the pending chain is not `None` because we checked it above. + pending + .current + .as_mut() + .unwrap() + .push_flashblock(flashblock); + } } } /// Contains the overlay state of the pending chain, aka the applied /// Flashblocks. Read and write. #[derive(Debug)] -pub struct PendingState {} +pub struct PendingState { + sender: broadcast::Sender>, + current: Option +} /// TODO(mempirate): this should implement a trait so it can be used as a /// provider. /// /// Take a look at reth_db_provider.rs /// Read only access. -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct PendingStateReader { - pending: watch::Receiver + pending: Arc> +} + +impl PendingStateReader { + /// Subscribe to [`PendingChain`] updates. + pub fn subscribe(&self) -> broadcast::Receiver> { + self.pending.read().sender.subscribe() + } } diff --git a/crates/flashblocks/src/subscriber.rs b/crates/flashblocks/src/subscriber.rs index fa0dbc1b7..7c374cdec 100644 --- a/crates/flashblocks/src/subscriber.rs +++ b/crates/flashblocks/src/subscriber.rs @@ -17,11 +17,12 @@ use url::Url; use crate::state::PendingStateWriter; +/// Subscribes to a Flashblocks websocket stream and notifies the state writer +/// of new flashblocks. pub struct FlashblocksSubscriber { ws: Url, /// The current pending chain. pending: Option, - sender: broadcast::Sender>, writer: PendingStateWriter

} @@ -34,12 +35,7 @@ where + 'static { pub fn new(ws: Url, writer: PendingStateWriter

) -> Self { - Self { ws, pending: None, sender: broadcast::channel(100).0, writer } - } - - /// Subscribe to the pending chain. - pub fn subscribe_pending(&mut self) -> broadcast::Receiver> { - self.sender.subscribe() + Self { ws, pending: None, writer } } /// Spawns the subscriber. @@ -63,8 +59,7 @@ where match msg { Ok(Message::Binary(bytes)) => match try_decode_message(&bytes) { Ok(payload) => { - let pending_chain = self.writer.on_flashblock(payload); - let _ = self.sender.send(Arc::new(pending_chain)); + self.writer.on_flashblock(payload); } Err(e) => { tracing::error!( diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index 390eae7b2..2d682c795 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -31,6 +31,7 @@ pub struct Metadata { /// /// A pending chain lasts for a single slot time, and consists of (slot time / /// flashblock interval) blocks. +#[derive(Debug)] pub struct PendingChain { /// The Flashblock as a recovered block. blocks: Vec>, From ddd542f9597cb7a4b3e7e8bd1ecade5141307291 Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Thu, 28 Aug 2025 12:38:58 +0200 Subject: [PATCH 10/18] feat(op-angstrom): implement preliminary pending state logic --- Cargo.lock | 3 + Cargo.toml | 13 +- crates/flashblocks/Cargo.toml | 3 + crates/flashblocks/src/state.rs | 184 ++++++++++++++++++++++++--- crates/types/{build.rs => _build.rs} | 0 crates/types/src/flashblocks/mod.rs | 14 +- 6 files changed, 197 insertions(+), 20 deletions(-) rename crates/types/{build.rs => _build.rs} (100%) diff --git a/Cargo.lock b/Cargo.lock index d65227360..7fe7e4344 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4514,6 +4514,8 @@ name = "flashblocks" version = "0.1.0" dependencies = [ "alloy", + "alloy-evm 0.15.0", + "alloy-primitives", "angstrom-types", "brotli", "eyre", @@ -4521,6 +4523,7 @@ dependencies = [ "parking_lot", "reth", "reth-optimism-chainspec 1.6.0", + "reth-optimism-evm 1.6.0", "reth-optimism-primitives 1.6.0", "reth-primitives-traits 1.6.0", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 28ba92a45..3dc4ac38a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,10 @@ members = ["bin/*", "crates/*", "testing-tools"] resolver = "2" +# Optimize for rust-analyzer performance +[workspace.metadata.rust-analyzer] +rustc_source = "discover" + [workspace.package] version = "0.1.0" edition = "2024" @@ -11,7 +15,7 @@ homepage = "https://github.com/SorellaLabs/angstrom" repository = "https://github.com/SorellaLabs/angstrom" exclude = [".github/"] -# Speed up tests. +# Speed up tests and rust-analyzer. [profile.dev.package] angstrom-network.opt-level = 3 consensus.opt-level = 3 @@ -20,12 +24,19 @@ validation.opt-level = 3 testing-tools.opt-level = 3 angstrom-types.opt-level = 3 tokio.opt-level = 3 +serde.opt-level = 3 +alloy.opt-level = 3 +alloy-primitives.opt-level = 3 +reth.opt-level = 3 +reth-primitives.opt-level = 3 [profile.debug-fast] inherits = "dev" lto = false opt-level = 3 codegen-units = 15 +incremental = true +split-debuginfo = "unpacked" [profile.release] lto = "fat" diff --git a/crates/flashblocks/Cargo.toml b/crates/flashblocks/Cargo.toml index 96cd67a2c..6f0e828cc 100644 --- a/crates/flashblocks/Cargo.toml +++ b/crates/flashblocks/Cargo.toml @@ -10,6 +10,8 @@ exclude.workspace = true [dependencies] alloy.workspace = true +alloy-evm = "0.15" +alloy-primitives = { workspace = true, default-features = false, features = ["map-foldhash"] } brotli = "8.0.1" eyre.workspace = true futures.workspace = true @@ -24,6 +26,7 @@ url.workspace = true # Reth reth.workspace = true reth-optimism-chainspec.workspace = true +reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } reth-optimism-primitives.workspace = true reth-primitives-traits.workspace = true diff --git a/crates/flashblocks/src/state.rs b/crates/flashblocks/src/state.rs index 7c3d1749e..effae7df7 100644 --- a/crates/flashblocks/src/state.rs +++ b/crates/flashblocks/src/state.rs @@ -2,16 +2,28 @@ use std::sync::Arc; +use alloy::primitives::B256; +use alloy_evm::evm::Evm; +use alloy_primitives::map::B256HashMap; use angstrom_types::{ - flashblocks::{FlashblocksPayloadV1, PendingChain}, + flashblocks::{ExecutionPayloadBaseV1, FlashblocksPayloadV1, PendingChain}, primitive::ChainExt }; use parking_lot::RwLock; use reth::{ + api::ConfigureEvm, chainspec::EthChainSpec, - providers::{BlockReaderIdExt, ChainSpecProvider, StateProviderFactory} + providers::{BlockReaderIdExt, ChainSpecProvider, StateProviderFactory}, + revm::{ + DatabaseCommit, State, + context::result::ResultAndState, + database::StateProviderDatabase, + db::{Cache, CacheDB, TransitionState} + }, + rpc::types::state::{AccountOverride, StateOverride, StateOverridesBuilder} }; use reth_optimism_chainspec::OpHardforks; +use reth_optimism_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; use reth_optimism_primitives::OpBlock; use reth_primitives_traits::{AlloyBlockHeader, Header, RecoveredBlock}; use tokio::sync::broadcast; @@ -34,7 +46,14 @@ where { pub fn new(provider: P) -> Self { let (tx, _) = broadcast::channel(128); - let pending = Arc::new(RwLock::new(PendingState { sender: tx, current: None })); + let pending = Arc::new(RwLock::new(PendingState { + sender: tx, + pending_chain: None, + cache: None, + transition_state: None, + state_overrides: None + })); + Self { pending, provider } } @@ -50,45 +69,141 @@ where let should_reset = self .pending .read() - .current + .pending_chain .as_ref() .is_some_and(|chain| chain.tip_number() <= block.number()); if should_reset { let mut pending = self.pending.write(); - // TODO: Should we notify here? - pending.current = None; - tracing::debug!("Received canonical block {}, reset pending chain", block.number(),); + pending.reset(); + + tracing::debug!("Received canonical block {}, reset pending state", block.number(),); } } - /// Handles a new flashblock. Returns the pending chain. - pub fn on_flashblock(&self, flashblock: FlashblocksPayloadV1) { - let is_new = self.pending.read().current.is_none(); + /// Handles a new flashblock. + pub fn on_flashblock(&self, flashblock: FlashblocksPayloadV1) -> eyre::Result<()> { + let is_new = self.pending.read().pending_chain.is_none(); if is_new { if flashblock.base.is_none() { tracing::error!( "Received new flashblock without base block, after reset. This means - we most likely missed a block, and we won't update the pending chain until the \ - next canonical block." + we most likely missed a block, and we won't update the pending chain until \ + the next canonical block." ); - return; + + return Err(eyre::eyre!("Received first Flashblock without base block")); } // NOTE: Create the pending chain before acquiring the write lock for speed™️. let new = PendingChain::new(flashblock); let mut pending = self.pending.write(); - pending.current = Some(new); + pending.pending_chain = Some(new); } else { let mut pending = self.pending.write(); // SAFETY: We know the pending chain is not `None` because we checked it above. pending - .current + .pending_chain .as_mut() .unwrap() .push_flashblock(flashblock); } + + let tip = self.pending.read().tip().unwrap().clone(); + let base = self.pending.read().base().unwrap().clone(); + + let mut l1_block_info = reth_optimism_evm::extract_l1_info(tip.body())?; + + let header = tip.clone_sealed_header(); + + let mut gas_used = 0; + let mut next_log_index = 0; + + let prev_block = header.number() - 1; + let state = self + .provider + .state_by_block_number_or_tag(prev_block.into())?; + let state = StateProviderDatabase::new(state); + let db = State::builder() + .with_database(state) + .with_bundle_update() + .build(); + + let mut db = CacheDB::new(db); + + let mut state_overrides = StateOverridesBuilder::default(); + if let Some(cache) = self.pending.read().cache().cloned() { + // Set the current cache and transition state. + db.cache = cache; + db.db.transition_state = self.pending.read().transition_state().cloned(); + + let current_overrides = self + .pending + .read() + .state_overrides() + .cloned() + .unwrap_or_default(); + + state_overrides = StateOverridesBuilder::new(current_overrides); + } + + let block_env = OpNextBlockEnvAttributes { + timestamp: base.timestamp, + suggested_fee_recipient: base.fee_recipient, + prev_randao: base.prev_randao, + gas_limit: base.gas_limit, + parent_beacon_block_root: Some(base.parent_beacon_block_root), + extra_data: base.extra_data.clone() + }; + + let prev_header = self + .provider + .header_by_number(prev_block)? + .ok_or(eyre::eyre!("Previous block not found"))?; + + let evm_config = OpEvmConfig::optimism(self.provider.chain_spec()); + let evm_env = evm_config.next_evm_env(&prev_header, &block_env)?; + + let mut evm = evm_config.evm_with_env(db, evm_env); + + for tx in tip.transactions_recovered() { + let ResultAndState { state, .. } = evm.transact(tx)?; + + for (addr, acc) in &state { + let state_diff = B256HashMap::::from_iter( + acc.storage + .iter() + .map(|(&key, slot)| (key.into(), slot.present_value.into())) + ); + let acc_override = AccountOverride { + balance: Some(acc.info.balance), + nonce: Some(acc.info.nonce), + code: acc.info.code.clone().map(|code| code.bytes()), + state: None, + state_diff: Some(state_diff), + move_precompile_to: None + }; + + // Append to existing state overrides. + state_overrides = state_overrides.append(*addr, acc_override); + } + + // Commit the state to the DB. + evm.db_mut().commit(state); + } + + let CacheDB { cache, db } = evm.into_db(); + + // Update the pending state after having executed all transactions. + { + let mut pending = self.pending.write(); + pending.cache = Some(cache); + pending.transition_state = db.transition_state; + pending.state_overrides = Some(state_overrides.build()); + } + + Ok(()) } } @@ -96,8 +211,43 @@ where /// Flashblocks. Read and write. #[derive(Debug)] pub struct PendingState { - sender: broadcast::Sender>, - current: Option + sender: broadcast::Sender>, + pending_chain: Option, + cache: Option, + transition_state: Option, + state_overrides: Option +} + +impl PendingState { + pub fn cache(&self) -> Option<&Cache> { + self.cache.as_ref() + } + + pub fn transition_state(&self) -> Option<&TransitionState> { + self.transition_state.as_ref() + } + + pub fn state_overrides(&self) -> Option<&StateOverride> { + self.state_overrides.as_ref() + } + + /// Resets the pending state. + pub fn reset(&mut self) { + self.pending_chain = None; + self.cache = None; + self.transition_state = None; + self.state_overrides = None; + } + + /// Returns the tip of the pending chain. + pub fn tip(&self) -> Option<&RecoveredBlock> { + self.pending_chain.as_ref().map(|chain| chain.tip()) + } + + /// Returns the base of the pending chain. + pub fn base(&self) -> Option<&ExecutionPayloadBaseV1> { + self.pending_chain.as_ref().map(|chain| chain.base()) + } } /// TODO(mempirate): this should implement a trait so it can be used as a diff --git a/crates/types/build.rs b/crates/types/_build.rs similarity index 100% rename from crates/types/build.rs rename to crates/types/_build.rs diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index 2d682c795..6162edd5c 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -11,8 +11,7 @@ use reth::rpc::types::engine::{ExecutionPayloadV1, ExecutionPayloadV2, Execution use reth_optimism_primitives::OpPrimitives; use reth_primitives::{NodePrimitives, RecoveredBlock}; use reth_primitives_traits::Block; -use rollup_boost::ExecutionPayloadBaseV1; -pub use rollup_boost::FlashblocksPayloadV1; +pub use rollup_boost::{ExecutionPayloadBaseV1, FlashblocksPayloadV1}; use serde::{Deserialize, Serialize}; use crate::primitive::ChainExt; @@ -140,6 +139,17 @@ impl PendingChain { pub fn tip_index(&self) -> usize { self.blocks.len() - 1 } + + /// Returns the tip block (last Flashblock). + pub fn tip(&self) -> &RecoveredBlock { + // SAFETY: There's always a block in the pending chain. + self.blocks.last().unwrap() + } + + /// Returns the base block of this pending chain. + pub fn base(&self) -> &ExecutionPayloadBaseV1 { + &self.base + } } /// Generic implementation for any NodePrimitives - provides default behavior From e077915139f584d34c672792232e1c90a6dd857f Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Thu, 28 Aug 2025 13:11:26 +0200 Subject: [PATCH 11/18] feat(op-angstrom): start integrating Flashblocks --- Cargo.lock | 1 + crates/cli/Cargo.toml | 1 + crates/cli/src/components.rs | 25 ++++++-- crates/cli/src/op_angstrom.rs | 22 ++++--- crates/flashblocks/src/lib.rs | 4 ++ crates/flashblocks/src/provider.rs | 1 + crates/flashblocks/src/subscriber.rs | 91 ++++++++++++++-------------- crates/types/src/primitive/state.rs | 1 + 8 files changed, 87 insertions(+), 59 deletions(-) create mode 100644 crates/flashblocks/src/provider.rs diff --git a/Cargo.lock b/Cargo.lock index 7fe7e4344..144f30060 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1148,6 +1148,7 @@ dependencies = [ "rayon", "reth", "reth-db", + "reth-exex", "reth-metrics 1.6.0", "reth-network", "reth-node-builder", diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index b4977a01c..cd30c6900 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -30,6 +30,7 @@ pool-manager.workspace = true rayon.workspace = true reth.workspace = true reth-db.workspace = true +reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.6.0" } reth-metrics.workspace = true reth-network.workspace = true reth-node-builder.workspace = true diff --git a/crates/cli/src/components.rs b/crates/cli/src/components.rs index cb14dc4f5..751c9b0a1 100644 --- a/crates/cli/src/components.rs +++ b/crates/cli/src/components.rs @@ -8,7 +8,7 @@ use std::{ use alloy::{ self, - consensus::BlockHeader, + consensus::{BlockHeader, Header}, eips::{BlockId, BlockNumberOrTag}, primitives::Address, providers::{Provider, ProviderBuilder, network::Ethereum} @@ -33,6 +33,7 @@ use angstrom_types::{ submission::SubmissionHandler }; use consensus::{AngstromValidator, ConsensusHandler, ConsensusManager, ManagerNetworkDeps}; +use flashblocks::{FlashblocksSubscriber, PendingStateWriter}; use futures::Stream; use matching_engine::MatchingManager; use order_pool::{PoolConfig, order_storage::OrderStorage}; @@ -41,6 +42,7 @@ use pool_manager::{consensus::ConsensusPoolManagerBuilder, rollup::RollupPoolMan use reth::{ api::NodeAddOns, builder::FullNodeComponents, + chainspec::EthChainSpec, core::exit::NodeExitFuture, primitives::EthPrimitives, providers::{BlockNumReader, CanonStateNotification, CanonStateSubscriptions}, @@ -50,9 +52,11 @@ use reth_network::NetworkHandle; use reth_node_builder::{ FullNode, NodeHandle, NodePrimitives, NodeTypes, node::FullNodeTypes, rpc::RethRpcAddOns }; +use reth_optimism_chainspec::{OpChainSpec, OpHardforks}; use reth_optimism_primitives::OpPrimitives; use reth_provider::{ - BlockReader, DatabaseProviderFactory, ReceiptProvider, TryIntoHistoricalStateProvider + BlockReader, BlockReaderIdExt, ChainSpecProvider, DatabaseProviderFactory, ReceiptProvider, + StateProviderFactory, TryIntoHistoricalStateProvider }; use serde::Serialize; use telemetry::init_telemetry; @@ -111,7 +115,7 @@ where consensus_client: Option, network_builder: Option>, node_set: Option>, - flashblocks_writer: Option, + flashblocks_writer: Option>, flashblocks_ws: Option } @@ -300,8 +304,6 @@ where tracing::info!(?block_id, "starting up with block"); let eth_data_sub = node.provider.subscribe_to_canonical_state(); - // TODO(mempirate): Initialize Flashblocks here. - let global_block_sync = GlobalBlockSync::new(block_id); // this right here problem @@ -479,7 +481,10 @@ where Block = ::Block, Receipt = ::Receipt, Header = ::BlockHeader - > + DatabaseProviderFactory, + > + DatabaseProviderFactory + + StateProviderFactory + + ChainSpecProvider + OpHardforks> + + BlockReaderIdExt

, AO: NodeAddOns + RethRpcAddOns, <::Provider as DatabaseProviderFactory>::Provider: TryIntoHistoricalStateProvider + BlockNumReader + ReceiptProvider, @@ -579,6 +584,13 @@ where tracing::info!(?block_id, "starting up with block"); let eth_data_sub = node.provider.subscribe_to_canonical_state(); + // TODO(mempirate): Initialize Flashblocks here. + if let Some(ws) = self.flashblocks_ws { + let subscriber = FlashblocksSubscriber::new(ws, self.flashblocks_writer.unwrap()); + + executor.spawn_critical("flashblocks subscriber", subscriber.start()); + } + let global_block_sync = GlobalBlockSync::new(block_id); // this right here problem @@ -590,6 +602,7 @@ where angstrom_address, controller, eth_data_sub, + None, executor.clone(), handles.eth_tx, handles.eth_rx, diff --git a/crates/cli/src/op_angstrom.rs b/crates/cli/src/op_angstrom.rs index 2590a4b66..8d115dd0e 100644 --- a/crates/cli/src/op_angstrom.rs +++ b/crates/cli/src/op_angstrom.rs @@ -1,5 +1,5 @@ //! Optimism Angstrom binary executable. -use std::{cell::OnceCell, sync::Arc}; +use std::sync::{Arc, OnceLock}; use alloy_chains::NamedChain; use angstrom_amm_quoter::QuoterHandle; @@ -12,10 +12,12 @@ use clap::Parser; use pool_manager::PoolHandle; use reth::{chainspec::EthChainSpec, tasks::TaskExecutor}; use reth_db::DatabaseEnv; +use reth_exex::ExExEvent; use reth_node_builder::{Node, NodeBuilder, WithLaunchContext}; use reth_optimism_chainspec::OpChainSpec; use reth_optimism_cli::{Cli as OpCli, chainspec::OpChainSpecParser}; -use reth_optimism_node::{OpAddOns, OpNode, args::RollupArgs}; +use reth_optimism_node::{OpNode, args::RollupArgs}; +use tokio_stream::StreamExt; use url::Url; use validation::validator::ValidationClient; @@ -40,6 +42,7 @@ pub struct OpAngstromArgs { pub flashblocks: FlashblocksConfig } +#[derive(Debug, Clone, Parser)] pub struct FlashblocksConfig { /// Enable Flashblocks support. #[arg(long = "flashblocks", default_value = "false")] @@ -157,20 +160,22 @@ async fn run_with_signer( ) -> eyre::Result<()> { let executor_clone = executor.clone(); - let op_node = OpNode::new(args.rollup); + let op_node = OpNode::new(args.rollup.clone()); - let mut writer = None; + let writer: Arc>> = Arc::new(OnceLock::new()); let node_handle = builder .with_types::() .with_components(op_node.components_builder()) .with_add_ons(op_node.add_ons()) .install_exex_if(args.flashblocks_enabled(), "flashblocks", { + let writer = writer.clone(); // This ExEx is used to notify the Flashblocks state writer of new canonical // blocks, so it can clean up the pending state. move |mut ctx| async move { - let w = flashblocks::state::PendingStateWriter::new(ctx.provider.clone()); - writer = Some(w.clone()); + let w = writer + .get_or_init(|| flashblocks::PendingStateWriter::new(ctx.provider().clone())) + .clone(); Ok(async move { while let Some(note) = ctx.notifications.try_next().await? { @@ -211,8 +216,9 @@ async fn run_with_signer( ); // Set up Flashblocks if enabled. - let launcher = if let Some(writer) = writer { - launcher.with_flashblocks(writer, args.flashblocks.url.unwrap()) + let launcher = if let Some(writer) = writer.get() { + let url = args.flashblocks.url.unwrap(); + launcher.with_flashblocks(writer.clone(), Url::parse(&url).unwrap()) } else { launcher }; diff --git a/crates/flashblocks/src/lib.rs b/crates/flashblocks/src/lib.rs index 481bba1f7..1365c6147 100644 --- a/crates/flashblocks/src/lib.rs +++ b/crates/flashblocks/src/lib.rs @@ -1,2 +1,6 @@ +mod provider; mod state; mod subscriber; + +pub use state::{PendingStateReader, PendingStateWriter}; +pub use subscriber::FlashblocksSubscriber; diff --git a/crates/flashblocks/src/provider.rs b/crates/flashblocks/src/provider.rs new file mode 100644 index 000000000..46984a757 --- /dev/null +++ b/crates/flashblocks/src/provider.rs @@ -0,0 +1 @@ +//! A provider that uses the pending state. diff --git a/crates/flashblocks/src/subscriber.rs b/crates/flashblocks/src/subscriber.rs index 7c374cdec..e83d999a7 100644 --- a/crates/flashblocks/src/subscriber.rs +++ b/crates/flashblocks/src/subscriber.rs @@ -39,72 +39,73 @@ where } /// Spawns the subscriber. - pub async fn spawn(self) { + pub async fn start(self) { tracing::info!(ws = %self.ws, "Subscribing to Flashblocks ⚡"); let ws = self.ws.clone(); - tokio::spawn(async move { - let mut backoff = std::time::Duration::from_secs(1); - const MAX_BACKOFF: std::time::Duration = std::time::Duration::from_secs(10); + let mut backoff = std::time::Duration::from_secs(1); + const MAX_BACKOFF: std::time::Duration = std::time::Duration::from_secs(10); - loop { - match connect_async(ws.as_str()).await { - Ok((ws_stream, _)) => { - tracing::info!("WebSocket connection established"); + loop { + match connect_async(ws.as_str()).await { + Ok((ws_stream, _)) => { + tracing::info!("WebSocket connection established"); - let (_, mut read) = ws_stream.split(); + let (_, mut read) = ws_stream.split(); - while let Some(msg) = read.next().await { - match msg { - Ok(Message::Binary(bytes)) => match try_decode_message(&bytes) { - Ok(payload) => { - self.writer.on_flashblock(payload); - } - Err(e) => { + while let Some(msg) = read.next().await { + match msg { + Ok(Message::Binary(bytes)) => match try_decode_message(&bytes) { + Ok(payload) => { + if let Err(e) = self.writer.on_flashblock(payload) { tracing::error!( - message = "error decoding flashblock message", - error = %e + error = %e, + "Error handling Flashblock" ); } - }, - Ok(Message::Text(_)) => { - tracing::error!( - "Received flashblock as plaintext, only compressed \ - flashblocks supported. Set up websocket-proxy to use \ - compressed flashblocks." - ); - } - Ok(Message::Close(_)) => { - tracing::info!( - message = "WebSocket connection closed by upstream" - ); - break; } Err(e) => { tracing::error!( - message = "error receiving message", + message = "error decoding flashblock message", error = %e ); - break; } - _ => {} + }, + Ok(Message::Text(_)) => { + tracing::error!( + "Received flashblock as plaintext, only compressed \ + flashblocks supported. Set up websocket-proxy to use \ + compressed flashblocks." + ); } + Ok(Message::Close(_)) => { + tracing::info!(message = "WebSocket connection closed by upstream"); + break; + } + Err(e) => { + tracing::error!( + message = "error receiving message", + error = %e + ); + break; + } + _ => {} } } - Err(e) => { - tracing::error!( - message = "WebSocket connection error, retrying", - backoff_duration = ?backoff, - error = %e - ); - tokio::time::sleep(backoff).await; - backoff = std::cmp::min(backoff * 2, MAX_BACKOFF); - continue; - } + } + Err(e) => { + tracing::error!( + message = "WebSocket connection error, retrying", + backoff_duration = ?backoff, + error = %e + ); + tokio::time::sleep(backoff).await; + backoff = std::cmp::min(backoff * 2, MAX_BACKOFF); + continue; } } - }); + } } } diff --git a/crates/types/src/primitive/state.rs b/crates/types/src/primitive/state.rs index f7414ce14..6e1afc183 100644 --- a/crates/types/src/primitive/state.rs +++ b/crates/types/src/primitive/state.rs @@ -8,6 +8,7 @@ use crate::flashblocks::PendingChain; /// A canonical chain state notification. This is extended from /// [CanonStateNotification](reth_provider::CanonStateNotification) to include /// Flashblocks support. +#[derive(Clone, Debug)] pub enum StateNotification { /// The canonical chain was extended. Commit { From 7b3f1280774494eea4259ce2aff09036d26afa5a Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Thu, 28 Aug 2025 14:42:30 +0200 Subject: [PATCH 12/18] feat(op-angstrom): continue integrating Flashblocks --- crates/cli/src/components.rs | 5 ++++- crates/eth/src/manager.rs | 31 ++++++++++++++----------------- crates/flashblocks/src/state.rs | 5 +++-- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/crates/cli/src/components.rs b/crates/cli/src/components.rs index 751c9b0a1..4f7899bcf 100644 --- a/crates/cli/src/components.rs +++ b/crates/cli/src/components.rs @@ -591,6 +591,8 @@ where executor.spawn_critical("flashblocks subscriber", subscriber.start()); } + let flashblock_updates = self.flashblocks_writer.map(|w| w.reader().subscribe()); + let global_block_sync = GlobalBlockSync::new(block_id); // this right here problem @@ -602,7 +604,7 @@ where angstrom_address, controller, eth_data_sub, - None, + flashblock_updates, executor.clone(), handles.eth_tx, handles.eth_rx, @@ -739,6 +741,7 @@ where } } +// TODO(mempirate): This isn't correct in rollup mode. async fn handle_init_block_spam( canon: &mut tokio::sync::broadcast::Receiver> ) { diff --git a/crates/eth/src/manager.rs b/crates/eth/src/manager.rs index eb6b3724b..e9c4c5710 100644 --- a/crates/eth/src/manager.rs +++ b/crates/eth/src/manager.rs @@ -17,7 +17,7 @@ use angstrom_types::{ controller_v_1::ControllerV1::{NodeAdded, NodeRemoved, PoolConfigured, PoolRemoved} }, contract_payloads::angstrom::{AngPoolConfigEntry, AngstromBundle, AngstromPoolConfigStore}, - flashblocks::{FlashblocksPayloadV1, PendingChain}, + flashblocks::PendingChain, primitive::{ChainExt, StateNotification} }; use futures::Future; @@ -55,7 +55,7 @@ pub struct EthDataCleanser { /// Notifications for Canonical Block updates pub(crate) canonical_updates: BroadcastStream>, /// Notifications for Flashblocks. - pub(crate) flashblock_updates: Option>, + pub(crate) flashblock_updates: Option>>>, pub(crate) angstrom_tokens: HashMap, /// handles syncing of blocks. block_sync: Sync, @@ -74,7 +74,7 @@ where angstrom_address: Address, periphery_address: Address, canonical_updates: CanonStateNotifications, - flashblock_updates: Option>, + flashblock_updates: Option>>>, tp: TP, tx: Sender>, rx: Receiver>, @@ -439,10 +439,6 @@ pub mod test { self.number } - fn flashblock_index(&self) -> Option { - None - } - fn successful_tip_transactions(&self) -> impl Iterator + '_ { self.tip_transactions() } @@ -475,16 +471,17 @@ pub mod test { let (_cannon_tx, cannon_rx) = tokio::sync::broadcast::channel(3); let (tx, _) = tokio::sync::broadcast::channel(3); EthDataCleanser { - commander: ReceiverStream::new(command_rx), - event_listeners: vec![], - angstrom_tokens: HashMap::default(), - node_set: HashSet::default(), - angstrom_address: angstrom_address.unwrap_or_default(), - periphery_address: Address::default(), - canonical_updates: BroadcastStream::new(cannon_rx), - block_sync: GlobalBlockSync::new(1), - cannon_sender: tx, - pool_store: Default::default() + commander: ReceiverStream::new(command_rx), + event_listeners: vec![], + angstrom_tokens: HashMap::default(), + node_set: HashSet::default(), + angstrom_address: angstrom_address.unwrap_or_default(), + periphery_address: Address::default(), + canonical_updates: BroadcastStream::new(cannon_rx), + flashblock_updates: None, + block_sync: GlobalBlockSync::new(1), + cannon_sender: tx, + pool_store: Default::default() } } diff --git a/crates/flashblocks/src/state.rs b/crates/flashblocks/src/state.rs index effae7df7..f474367ae 100644 --- a/crates/flashblocks/src/state.rs +++ b/crates/flashblocks/src/state.rs @@ -27,6 +27,7 @@ use reth_optimism_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; use reth_optimism_primitives::OpBlock; use reth_primitives_traits::{AlloyBlockHeader, Header, RecoveredBlock}; use tokio::sync::broadcast; +use tokio_stream::wrappers::BroadcastStream; #[derive(Debug, Clone)] pub struct PendingStateWriter { @@ -262,7 +263,7 @@ pub struct PendingStateReader { impl PendingStateReader { /// Subscribe to [`PendingChain`] updates. - pub fn subscribe(&self) -> broadcast::Receiver> { - self.pending.read().sender.subscribe() + pub fn subscribe(&self) -> BroadcastStream> { + BroadcastStream::new(self.pending.read().sender.subscribe()) } } From 09d8635d955d08a84d0285b04412a7b35430045d Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Thu, 28 Aug 2025 16:21:07 +0200 Subject: [PATCH 13/18] feat(op-angstrom): start working on PendingStateReader Provider --- bin/angstrom/src/components.rs | 494 ----------------------------- crates/flashblocks/src/provider.rs | 66 ++++ crates/flashblocks/src/state.rs | 11 +- 3 files changed, 72 insertions(+), 499 deletions(-) delete mode 100644 bin/angstrom/src/components.rs diff --git a/bin/angstrom/src/components.rs b/bin/angstrom/src/components.rs deleted file mode 100644 index 00fd2a010..000000000 --- a/bin/angstrom/src/components.rs +++ /dev/null @@ -1,494 +0,0 @@ -//! CLI definition and entrypoint to executable -use std::{ - collections::{HashMap, HashSet}, - pin::Pin, - str::FromStr, - sync::Arc, - time::Duration -}; - -use alloy::{ - self, - eips::{BlockId, BlockNumberOrTag}, - primitives::Address, - providers::{Provider, ProviderBuilder, network::Ethereum} -}; -use alloy_chains::Chain; -use angstrom_amm_quoter::{QuoterManager, Slot0Update}; -use angstrom_eth::{ - handle::{Eth, EthCommand}, - manager::{EthDataCleanser, EthEvent} -}; -use angstrom_network::{ - NetworkBuilder as StromNetworkBuilder, NetworkOrderEvent, PoolManagerBuilder, StatusState, - VerificationSidecar, - pool_manager::{OrderCommand, PoolHandle} -}; -use angstrom_types::{ - block_sync::{BlockSyncProducer, GlobalBlockSync}, - consensus::StromConsensusEvent, - contract_payloads::angstrom::{AngstromPoolConfigStore, UniswapAngstromRegistry}, - pair_with_price::PairsWithPrice, - primitive::{ - ANGSTROM_ADDRESS, ANGSTROM_DEPLOYED_BLOCK, AngstromMetaSigner, AngstromSigner, - CONTROLLER_V1_ADDRESS, GAS_TOKEN_ADDRESS, POOL_MANAGER_ADDRESS, PoolId, - UniswapPoolRegistry - }, - reth_db_provider::RethDbLayer, - reth_db_wrapper::RethDbWrapper, - submission::SubmissionHandler -}; -use consensus::{AngstromValidator, ConsensusHandler, ConsensusManager, ManagerNetworkDeps}; -use futures::Stream; -use matching_engine::{MatchingManager, manager::MatcherCommand}; -use order_pool::{PoolConfig, PoolManagerUpdate, order_storage::OrderStorage}; -use parking_lot::RwLock; -use reth::{ - api::NodeAddOns, - builder::FullNodeComponents, - chainspec::ChainSpec, - core::exit::NodeExitFuture, - primitives::EthPrimitives, - providers::{BlockNumReader, CanonStateNotification, CanonStateSubscriptions}, - tasks::TaskExecutor -}; -use reth_metrics::common::mpsc::{UnboundedMeteredReceiver, UnboundedMeteredSender}; -use reth_network::{NetworkHandle, Peers}; -use reth_node_builder::{FullNode, NodeTypes, node::FullNodeTypes, rpc::RethRpcAddOns}; -use reth_provider::{ - BlockReader, DatabaseProviderFactory, ReceiptProvider, TryIntoHistoricalStateProvider -}; -use telemetry::init_telemetry; -use tokio::sync::{ - mpsc, - mpsc::{Receiver, Sender, UnboundedReceiver, UnboundedSender, channel, unbounded_channel} -}; -use uniswap_v4::{DEFAULT_TICKS, configure_uniswap_manager, fetch_angstrom_pools}; -use url::Url; -use validation::{ - common::TokenPriceGenerator, - init_validation, - validator::{ValidationClient, ValidationRequest} -}; - -use crate::AngstromConfig; - -pub fn init_network_builder( - secret_key: AngstromSigner, - eth_handle: UnboundedReceiver, - validator_set: Arc>> -) -> eyre::Result> { - let public_key = secret_key.id(); - - let state = StatusState { - version: 0, - chain: Chain::mainnet().id(), - peer: public_key, - timestamp: 0 - }; - - let verification = - VerificationSidecar { status: state, has_sent: false, has_received: false, secret_key }; - - Ok(StromNetworkBuilder::new(verification, eth_handle, validator_set)) -} - -pub type DefaultPoolHandle = PoolHandle; -type DefaultOrderCommand = OrderCommand; - -// due to how the init process works with reth. we need to init like this -pub struct StromHandles { - pub eth_tx: Sender, - pub eth_rx: Receiver, - - pub pool_tx: UnboundedMeteredSender, - pub pool_rx: UnboundedMeteredReceiver, - - pub orderpool_tx: UnboundedSender, - pub orderpool_rx: UnboundedReceiver, - - pub quoter_tx: mpsc::Sender<(HashSet, mpsc::Sender)>, - pub quoter_rx: mpsc::Receiver<(HashSet, mpsc::Sender)>, - - pub validator_tx: UnboundedSender, - pub validator_rx: UnboundedReceiver, - - pub eth_handle_tx: Option>, - pub eth_handle_rx: Option>, - - pub pool_manager_tx: tokio::sync::broadcast::Sender, - - pub consensus_tx_op: UnboundedMeteredSender, - pub consensus_rx_op: UnboundedMeteredReceiver, - - pub consensus_tx_rpc: UnboundedSender, - pub consensus_rx_rpc: UnboundedReceiver, - - // only 1 set cur - pub matching_tx: Sender, - pub matching_rx: Receiver -} - -impl StromHandles { - pub fn get_pool_handle(&self) -> DefaultPoolHandle { - PoolHandle { - manager_tx: self.orderpool_tx.clone(), - pool_manager_tx: self.pool_manager_tx.clone() - } - } -} - -pub fn initialize_strom_handles() -> StromHandles { - let (eth_tx, eth_rx) = channel(100); - let (matching_tx, matching_rx) = channel(100); - let (pool_manager_tx, _) = tokio::sync::broadcast::channel(100); - let (pool_tx, pool_rx) = reth_metrics::common::mpsc::metered_unbounded_channel("orderpool"); - let (orderpool_tx, orderpool_rx) = unbounded_channel(); - let (validator_tx, validator_rx) = unbounded_channel(); - let (eth_handle_tx, eth_handle_rx) = unbounded_channel(); - let (quoter_tx, quoter_rx) = channel(1000); - let (consensus_tx_rpc, consensus_rx_rpc) = unbounded_channel(); - let (consensus_tx_op, consensus_rx_op) = - reth_metrics::common::mpsc::metered_unbounded_channel("orderpool"); - - StromHandles { - eth_tx, - quoter_tx, - quoter_rx, - eth_rx, - pool_tx, - pool_rx, - orderpool_tx, - orderpool_rx, - validator_tx, - validator_rx, - pool_manager_tx, - consensus_tx_op, - consensus_rx_op, - matching_tx, - matching_rx, - consensus_tx_rpc, - consensus_rx_rpc, - eth_handle_tx: Some(eth_handle_tx), - eth_handle_rx: Some(eth_handle_rx) - } -} - -pub async fn initialize_strom_components( - config: AngstromConfig, - signer: AngstromSigner, - mut handles: StromHandles, - network_builder: StromNetworkBuilder, - node: &FullNode, - executor: TaskExecutor, - exit: NodeExitFuture, - node_set: HashSet
, - consensus_client: ConsensusHandler -) -> eyre::Result<()> -where - Node: FullNodeComponents - + FullNodeTypes>, - Node::Provider: BlockReader< - Block = reth::primitives::Block, - Receipt = reth::primitives::Receipt, - Header = reth::primitives::Header - > + DatabaseProviderFactory, - AddOns: NodeAddOns + RethRpcAddOns, - <::Provider as DatabaseProviderFactory>::Provider: - TryIntoHistoricalStateProvider + ReceiptProvider, - <::Provider as DatabaseProviderFactory>::Provider: BlockNumReader, - S: AngstromMetaSigner -{ - // Check to assert that the timeing config is valid. - assert!(config.consensus_timing.is_valid(), "consensus timing config is invalid"); - - let node_address = signer.address(); - - // NOTE: - // no key is installed and this is strictly for internal usage. Realsically, we - // should build a alloy provider impl that just uses the raw underlying db - // so it will be quicker than rpc + won't be bounded by the rpc threadpool. - let url = node.rpc_server_handle().ipc_endpoint().unwrap(); - tracing::info!(?url, ?config.mev_boost_endpoints, "backup to database is"); - let querying_provider: Arc<_> = ProviderBuilder::<_, _, Ethereum>::default() - .with_recommended_fillers() - .layer(RethDbLayer::new(node.provider().clone())) - // backup - .connect(&url) - .await - .unwrap() - .into(); - - let angstrom_address = *ANGSTROM_ADDRESS.get().unwrap(); - let controller = *CONTROLLER_V1_ADDRESS.get().unwrap(); - let deploy_block = *ANGSTROM_DEPLOYED_BLOCK.get().unwrap(); - let gas_token = *GAS_TOKEN_ADDRESS.get().unwrap(); - let pool_manager = *POOL_MANAGER_ADDRESS.get().unwrap(); - - let normal_nodes = config - .normal_nodes - .into_iter() - .map(|url| Url::from_str(&url).unwrap()) - .collect::>(); - - let angstrom_submission_nodes = config - .angstrom_submission_nodes - .into_iter() - .map(|url| Url::from_str(&url).unwrap()) - .collect::>(); - - let mev_boost_endpoints = config - .mev_boost_endpoints - .into_iter() - .map(|url| Url::from_str(&url).unwrap()) - .collect::>(); - - let submission_handler = SubmissionHandler::new( - querying_provider.clone(), - &normal_nodes, - &angstrom_submission_nodes, - &mev_boost_endpoints, - angstrom_address, - signer.clone() - ); - - tracing::info!(target: "angstrom::startup-sequence", "waiting for the next block to continue startup sequence. \ - this is done to ensure all modules start on the same state and we don't hit the rare \ - condition of a block while starting modules"); - - // wait for the next block so that we have a full 12 seconds on startup. - let mut sub = node.provider.subscribe_to_canonical_state(); - handle_init_block_spam(&mut sub).await; - let _ = sub.recv().await.expect("next block"); - - tracing::info!(target: "angstrom::startup-sequence", "new block detected. initializing all modules"); - - let block_id = querying_provider.get_block_number().await.unwrap(); - - let pool_config_store = Arc::new( - AngstromPoolConfigStore::load_from_chain( - angstrom_address, - BlockId::Number(BlockNumberOrTag::Latest), - &querying_provider - ) - .await - .unwrap() - ); - - // load the angstrom pools; - tracing::info!("starting search for pools"); - let pools = fetch_angstrom_pools( - deploy_block as usize, - block_id as usize, - angstrom_address, - &node.provider - ) - .await; - tracing::info!("found pools"); - - let angstrom_tokens = pools - .iter() - .flat_map(|pool| [pool.currency0, pool.currency1]) - .fold(HashMap::::new(), |mut acc, x| { - *acc.entry(x).or_default() += 1; - acc - }); - - // re-fetch given the fetch pools takes awhile. given this, we do techincally - // have a gap in which a pool is deployed durning startup. This isn't - // critical but we will want to fix this down the road. - // let block_id = querying_provider.get_block_number().await.unwrap(); - let block_id = match sub.recv().await.expect("first block") { - CanonStateNotification::Commit { new } => new.tip().number, - CanonStateNotification::Reorg { new, .. } => new.tip().number - }; - - tracing::info!(?block_id, "starting up with block"); - let eth_data_sub = node.provider.subscribe_to_canonical_state(); - - let global_block_sync = GlobalBlockSync::new(block_id); - - // this right here problem - let uniswap_registry: UniswapPoolRegistry = pools.into(); - let uni_ang_registry = - UniswapAngstromRegistry::new(uniswap_registry.clone(), pool_config_store.clone()); - - // Build our PoolManager using the PoolConfig and OrderStorage we've already - // created - let eth_handle = EthDataCleanser::spawn( - angstrom_address, - controller, - eth_data_sub, - executor.clone(), - handles.eth_tx, - handles.eth_rx, - angstrom_tokens, - pool_config_store.clone(), - global_block_sync.clone(), - node_set.clone(), - vec![handles.eth_handle_tx.take().unwrap()] - ) - .unwrap(); - - let network_stream = Box::pin(eth_handle.subscribe_network()) - as Pin + Send + Sync>>; - - let signer_addr = signer.address(); - executor.spawn_critical_with_graceful_shutdown_signal("telemetry init", |grace_shutdown| { - init_telemetry(signer_addr, grace_shutdown) - }); - - let uniswap_pool_manager = configure_uniswap_manager::<_, DEFAULT_TICKS>( - querying_provider.clone(), - eth_handle.subscribe_cannon_state_notifications().await, - uniswap_registry, - block_id, - global_block_sync.clone(), - pool_manager, - network_stream - ) - .await; - - tracing::info!("uniswap manager start"); - - let uniswap_pools = uniswap_pool_manager.pools(); - let pool_ids = uniswap_pool_manager.pool_addresses().collect::>(); - - executor.spawn_critical("uniswap pool manager", Box::pin(uniswap_pool_manager)); - let price_generator = TokenPriceGenerator::new( - querying_provider.clone(), - block_id, - uniswap_pools.clone(), - gas_token, - None - ) - .await - .expect("failed to start token price generator"); - - let update_stream = Box::pin(PairsWithPrice::into_price_update_stream( - angstrom_address, - node.provider.canonical_state_stream(), - querying_provider.clone() - )); - - let block_height = node.provider.best_block_number().unwrap(); - - init_validation( - RethDbWrapper::new(node.provider.clone(), block_height), - block_height, - angstrom_address, - node_address, - update_stream, - uniswap_pools.clone(), - price_generator, - pool_config_store.clone(), - handles.validator_rx - ); - - let validation_handle = ValidationClient(handles.validator_tx.clone()); - tracing::info!("validation manager start"); - - let network_handle = network_builder - .with_pool_manager(handles.pool_tx) - .with_consensus_manager(handles.consensus_tx_op) - .build_handle(executor.clone(), node.provider.clone()); - - // fetch pool ids - - let pool_config = PoolConfig::with_pool_ids(pool_ids); - let order_storage = Arc::new(OrderStorage::new(&pool_config)); - - let _pool_handle = PoolManagerBuilder::new( - validation_handle.clone(), - Some(order_storage.clone()), - network_handle.clone(), - eth_handle.subscribe_network(), - handles.pool_rx, - global_block_sync.clone() - ) - .with_config(pool_config) - .build_with_channels( - executor.clone(), - handles.orderpool_tx, - handles.orderpool_rx, - handles.pool_manager_tx, - block_id, - |_| {} - ); - let validators = node_set - .into_iter() - // use same weight for all validators - .map(|addr| AngstromValidator::new(addr, 100)) - .collect::>(); - tracing::info!("pool manager start"); - - // spinup matching engine - let matching_handle = MatchingManager::spawn(executor.clone(), validation_handle.clone()); - - // spin up amm quoter - let amm = QuoterManager::new( - global_block_sync.clone(), - order_storage.clone(), - handles.quoter_rx, - uniswap_pools.clone(), - rayon::ThreadPoolBuilder::default() - .num_threads(6) - .build() - .expect("failed to build rayon thread pool"), - Duration::from_millis(100), - consensus_client.subscribe_consensus_round_event() - ); - - executor.spawn_critical("amm quoting service", amm); - - let manager = ConsensusManager::new( - ManagerNetworkDeps::new( - network_handle.clone(), - eth_handle.subscribe_cannon_state_notifications().await, - handles.consensus_rx_op - ), - signer, - validators, - order_storage.clone(), - deploy_block, - block_height, - uni_ang_registry, - uniswap_pools.clone(), - submission_handler, - matching_handle, - global_block_sync.clone(), - handles.consensus_rx_rpc, - None, - config.consensus_timing - ); - - executor.spawn_critical_with_graceful_shutdown_signal("consensus", move |grace| { - manager.run_till_shutdown(grace) - }); - - global_block_sync.finalize_modules(); - tracing::info!("started angstrom"); - exit.await -} - -async fn handle_init_block_spam( - canon: &mut tokio::sync::broadcast::Receiver -) { - // wait for the first notification - let _ = canon.recv().await.expect("first block"); - tracing::info!("got first block"); - - loop { - tokio::select! { - // if we can go 10.5s without a update, we know that all of the pending cannon - // state notifications have been processed and we are at the tip. - _ = tokio::time::sleep(Duration::from_millis(1050)) => { - break; - } - Ok(_) = canon.recv() => { - - } - } - } - tracing::info!("finished handling block-spam"); -} diff --git a/crates/flashblocks/src/provider.rs b/crates/flashblocks/src/provider.rs index 46984a757..c508839b9 100644 --- a/crates/flashblocks/src/provider.rs +++ b/crates/flashblocks/src/provider.rs @@ -1 +1,67 @@ //! A provider that uses the pending state. + +use alloy::{ + providers::{Provider, ProviderCall, RootProvider, RpcWithBlock}, + rpc::client::NoParams +}; +use alloy_primitives::{Address, Bytes, StorageValue, U64, U256}; + +use crate::PendingStateReader; + +impl Provider for PendingStateReader

{ + fn root(&self) -> &RootProvider { + self.provider.root() + } + + /// Override the `get_block_number` method to fetch the latest block number. + fn get_block_number(&self) -> ProviderCall { + // Block number remains the same. + self.provider.get_block_number() + } + + fn get_transaction_count(&self, address: Address) -> RpcWithBlock { + tracing::debug!(%address, "get_transaction_count"); + let pending = self.pending.clone(); + let provider = self.provider.clone(); + + RpcWithBlock::new_provider(move |block_id| { + let call = provider.get_transaction_count(address).block_id(block_id); + let pending = pending.clone(); + + // If the tag is pending, we use the pending state. + ProviderCall::BoxedFuture(Box::pin(async move { + // The base state + let base = call.await?; + + let pending = pending.read(); + + // If there are overrides, add them to the base nonce. + if let Some(overrides) = pending.state_overrides() + && block_id.is_pending() + { + let diff = overrides + .get(&address) + .map(|acc| acc.nonce) + .flatten() + .unwrap_or_default(); + + Ok(base + diff) + } else { + Ok(base) + } + })) + }) + } + + fn get_storage_at( + &self, + address: Address, + key: U256 + ) -> RpcWithBlock<(Address, U256), StorageValue> { + todo!() + } + + fn get_code_at(&self, address: Address) -> RpcWithBlock { + todo!() + } +} diff --git a/crates/flashblocks/src/state.rs b/crates/flashblocks/src/state.rs index f474367ae..777377d9c 100644 --- a/crates/flashblocks/src/state.rs +++ b/crates/flashblocks/src/state.rs @@ -59,8 +59,8 @@ where } /// Get a reader for the pending state. - pub fn reader(&self) -> PendingStateReader { - PendingStateReader { pending: self.pending.clone() } + pub fn reader(&self) -> PendingStateReader

{ + PendingStateReader { pending: self.pending.clone(), provider: self.provider.clone() } } /// Handles a new canonical block. @@ -257,11 +257,12 @@ impl PendingState { /// Take a look at reth_db_provider.rs /// Read only access. #[derive(Debug, Clone)] -pub struct PendingStateReader { - pending: Arc> +pub struct PendingStateReader

{ + pub(crate) pending: Arc>, + pub(crate) provider: P } -impl PendingStateReader { +impl

PendingStateReader

{ /// Subscribe to [`PendingChain`] updates. pub fn subscribe(&self) -> BroadcastStream> { BroadcastStream::new(self.pending.read().sender.subscribe()) From 494f61383005ce37eaee6135ea3d4d1210a9550a Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Thu, 28 Aug 2025 16:26:11 +0200 Subject: [PATCH 14/18] fix(op-angstrom): fix get_transaction_count override --- crates/flashblocks/src/provider.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/flashblocks/src/provider.rs b/crates/flashblocks/src/provider.rs index c508839b9..acfcd9191 100644 --- a/crates/flashblocks/src/provider.rs +++ b/crates/flashblocks/src/provider.rs @@ -39,13 +39,14 @@ impl Provider for PendingStateReader

{ if let Some(overrides) = pending.state_overrides() && block_id.is_pending() { - let diff = overrides + // Return either the override nonce or the base nonce if it doesn't exist. + let nonce = overrides .get(&address) .map(|acc| acc.nonce) .flatten() - .unwrap_or_default(); + .unwrap_or(base); - Ok(base + diff) + Ok(nonce) } else { Ok(base) } From 2c639d1098515195c3e3807f28cc956ff7c494fc Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Thu, 28 Aug 2025 16:48:29 +0200 Subject: [PATCH 15/18] feat(op-angstrom): finish initial Provider impl --- crates/flashblocks/src/provider.rs | 79 +++++++++++++++++++++++++----- 1 file changed, 68 insertions(+), 11 deletions(-) diff --git a/crates/flashblocks/src/provider.rs b/crates/flashblocks/src/provider.rs index acfcd9191..cc8517ad2 100644 --- a/crates/flashblocks/src/provider.rs +++ b/crates/flashblocks/src/provider.rs @@ -4,7 +4,7 @@ use alloy::{ providers::{Provider, ProviderCall, RootProvider, RpcWithBlock}, rpc::client::NoParams }; -use alloy_primitives::{Address, Bytes, StorageValue, U64, U256}; +use alloy_primitives::{Address, Bytes, StorageKey, StorageValue, U64, U256}; use crate::PendingStateReader; @@ -31,25 +31,23 @@ impl Provider for PendingStateReader

{ // If the tag is pending, we use the pending state. ProviderCall::BoxedFuture(Box::pin(async move { // The base state - let base = call.await?; + let mut nonce = call.await?; let pending = pending.read(); - // If there are overrides, add them to the base nonce. if let Some(overrides) = pending.state_overrides() && block_id.is_pending() { + // If an override exists, return the override nonce. // Return either the override nonce or the base nonce if it doesn't exist. - let nonce = overrides + nonce = overrides .get(&address) .map(|acc| acc.nonce) .flatten() - .unwrap_or(base); - - Ok(nonce) - } else { - Ok(base) + .unwrap_or(nonce); } + + Ok(nonce) })) }) } @@ -59,10 +57,69 @@ impl Provider for PendingStateReader

{ address: Address, key: U256 ) -> RpcWithBlock<(Address, U256), StorageValue> { - todo!() + tracing::debug!(%address, %key, "get_storage_at"); + let pending = self.pending.clone(); + let provider = self.provider.clone(); + + RpcWithBlock::new_provider(move |block_id| { + let call = provider.get_storage_at(address, key).block_id(block_id); + let pending = pending.clone(); + + // If the tag is pending, we use the pending state. + ProviderCall::BoxedFuture(Box::pin(async move { + let mut value: StorageValue = call.await?; + + let pending = pending.read(); + + if let Some(overrides) = pending.state_overrides() + && block_id.is_pending() + { + let key: StorageKey = key.into(); + // Return either the override nonce or the base nonce if it doesn't exist. + value = overrides + .get(&address) + .map(|acc| { + acc.state_diff + .as_ref() + .map(|diff| diff.get(&key).cloned()) + .flatten() + }) + .flatten() + .unwrap_or(value.into()) + .into(); + } + + Ok(value) + })) + }) } fn get_code_at(&self, address: Address) -> RpcWithBlock { - todo!() + tracing::debug!(%address, "get_code_at"); + let pending = self.pending.clone(); + let provider = self.provider.clone(); + + RpcWithBlock::new_provider(move |block_id| { + let call = provider.get_code_at(address).block_id(block_id); + let pending = pending.clone(); + + ProviderCall::BoxedFuture(Box::pin(async move { + let mut code = call.await?; + + let pending = pending.read(); + + if let Some(overrides) = pending.state_overrides() + && block_id.is_pending() + { + code = overrides + .get(&address) + .map(|acc| acc.code.clone()) + .flatten() + .unwrap_or(code); + } + + Ok(code) + })) + }) } } From 985ba105c94dffe59ed185e19129c76f3566812e Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Fri, 29 Aug 2025 14:45:08 +0200 Subject: [PATCH 16/18] feat(op-angstrom): Migrate to reth Flashblocks on main --- Cargo.lock | 2886 ++++++++++++++++----------- Cargo.toml | 125 +- crates/angstrom-net/Cargo.toml | 4 +- crates/cli/Cargo.toml | 2 +- crates/cli/src/components.rs | 47 +- crates/cli/src/op_angstrom.rs | 68 +- crates/eth/Cargo.toml | 1 + crates/eth/src/manager.rs | 250 ++- crates/eth/src/telemetry.rs | 11 +- crates/flashblocks/Cargo.toml | 5 +- crates/types/Cargo.toml | 2 + crates/types/src/flashblocks/mod.rs | 65 +- 12 files changed, 2058 insertions(+), 1408 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 144f30060..3d73a1dca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ecf116474faea3e30ecb03cb14548598ca8243d5316ce50f820e67b3e848473" +checksum = "fa7413bbf62c40b5db916ad5a1c382df1affe42080e148d69932bb7f0a12f32e" dependencies = [ "alloy-consensus", "alloy-contract", @@ -122,26 +122,27 @@ dependencies = [ "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", + "alloy-trie", ] [[package]] name = "alloy-chains" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4195a29a4b87137b2bb02105e746102873bc03561805cf45c0e510c961f160e6" +checksum = "ef8ff73a143281cb77c32006b04af9c047a6b8fe5860e85a88ad325328965355" dependencies = [ "alloy-primitives", "alloy-rlp", "num_enum", "serde", - "strum 0.27.1", + "strum 0.27.2", ] [[package]] name = "alloy-consensus" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6093bc69509849435a2d68237a2e9fea79d27390c8e62f1e4012c460aabad8" +checksum = "b7345077623aaa080fc06735ac13b8fa335125c8550f9c4f64135a5bf6f79967" dependencies = [ "alloy-eips", "alloy-primitives", @@ -160,14 +161,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.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d1cfed4fefd13b5620cb81cdb6ba397866ff0de514c1b24806e6e79cdff5570" +checksum = "501f83565d28bdb9d6457dd3b5d646e19db37709d0f27608a26a1839052ddade" dependencies = [ "alloy-consensus", "alloy-eips", @@ -180,9 +181,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28074a21cd4f7c3a7ab218c4f38fae6be73944e1feae3b670c68b60bf85ca40" +checksum = "e4c36bb4173892aeeba1c6b9e4eff923fa3fe8583f6d3e07afe1cbc5a96a853a" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -198,14 +199,14 @@ dependencies = [ "futures", "futures-util", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-core" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad31216895d27d307369daa1393f5850b50bbbd372478a9fa951c095c210627e" +checksum = "bfe6c56d58fbfa9f0f6299376e8ce33091fc6494239466814c3f54b55743cb09" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -216,9 +217,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e8a436f0aad7df8bb47f144095fba61202265d9f5f09a70b0e3227881a668e" +checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -243,7 +244,7 @@ dependencies = [ "crc", "rand 0.8.5", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -272,14 +273,14 @@ dependencies = [ "rand 0.8.5", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-eips" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5937e2d544e9b71000942d875cbc57965b32859a666ea543cc57aae5a06d602d" +checksum = "c219a87fb386a75780ddbdbbced242477321887e426b0f946c05815ceabe5e09" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -295,7 +296,9 @@ dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_with", "sha2 0.10.9", + "thiserror 2.0.16", ] [[package]] @@ -306,43 +309,43 @@ checksum = "ff5aae4c6dc600734b206b175f3200085ee82dcdaa388760358830a984ca9869" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-hardforks", + "alloy-hardforks 0.2.13", "alloy-primitives", "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", "derive_more", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "op-revm 7.0.1", "revm 26.0.1", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-evm" -version = "0.15.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28de0dd1bbb0634ef7c3715e8e60176b77b82f8b6b15b2e35fe64cf6640f6550" +checksum = "0dbe7c66c859b658d879b22e8aaa19546dab726b0639f4649a424ada3d99349e" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-hardforks", + "alloy-hardforks 0.3.0", "alloy-primitives", "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", "derive_more", - "op-alloy-consensus", - "op-revm 8.0.3", - "revm 27.0.3", - "thiserror 2.0.12", + "op-alloy-consensus 0.19.1", + "op-revm 10.0.0", + "revm 29.0.0", + "thiserror 2.0.16", ] [[package]] name = "alloy-genesis" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51b4c13e02a8104170a4de02ccf006d7c233e6c10ab290ee16e7041e6ac221d" +checksum = "2dbf4c6b1b733ba0efaa6cc5f68786997a19ffcd88ff2ee2ba72fdd42594375e" dependencies = [ "alloy-eips", "alloy-primitives", @@ -354,9 +357,22 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.2.11" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165210652f71dfc094b051602bafd691f506c54050a174b1cba18fb5ef706a3" +dependencies = [ + "alloy-chains", + "alloy-eip2124", + "alloy-primitives", + "auto_impl", + "dyn-clone", +] + +[[package]] +name = "alloy-hardforks" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce138b29a2f8e7ed97c064af8359dfa6559c12cba5e821ae4eb93081a56557e" +checksum = "a20b180071d4f22db71702329101685ccff2e2a8f400d30a68ba907700163bf5" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -368,9 +384,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459f98c6843f208856f338bfb25e65325467f7aff35dfeb0484d0a76e059134b" +checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -380,24 +396,24 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b590caa6b6d8bc10e6e7a7696c59b1e550e89f27f50d1ee13071150d3a3e3f66" +checksum = "334555c323fa2bb98f1d4c242b62da9de8c715557a2ed680a76cefbcac19fefd" 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.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36fe5af1fca03277daa56ad4ce5f6d623d3f4c2273ea30b9ee8674d18cefc1fa" +checksum = "c7ea377c9650203d7a7da9e8dee7f04906b49a9253f554b110edd7972e75ef34" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -416,14 +432,14 @@ dependencies = [ "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-network-primitives" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793df1e3457573877fbde8872e4906638fde565ee2d3bd16d04aad17d43dbf0e" +checksum = "b9f9ab9a9e92c49a357edaee2d35deea0a32ac8f313cfa37448f04e7e029c9d9" dependencies = [ "alloy-consensus", "alloy-eips", @@ -434,12 +450,12 @@ dependencies = [ [[package]] name = "alloy-node-bindings" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de75f0d0af3c6cb0bd3648e530289b2c542b7bf57e7d4296d1c29281418a476" +checksum = "cb0af8bdb3ee8da43a1f1eb9d1df3c8e3bd657dd20eddd3f00f03105c0fdd3f5" dependencies = [ "alloy-genesis", - "alloy-hardforks", + "alloy-hardforks 0.2.13", "alloy-network", "alloy-primitives", "alloy-signer", @@ -448,7 +464,7 @@ dependencies = [ "rand 0.8.5", "serde_json", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", "url", ] @@ -462,66 +478,76 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm 0.12.3", - "alloy-op-hardforks", + "alloy-op-hardforks 0.2.13", "alloy-primitives", "auto_impl", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "op-revm 7.0.1", "revm 26.0.1", ] [[package]] name = "alloy-op-evm" -version = "0.15.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0afe768962308a08b42fddef8a4296324f140b5a8dd0d4360038229885ce9434" +checksum = "ed9b726869a13d5d958f2f78fbef7ce522689c4d40d613c16239f5e286fbeb1a" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", - "alloy-op-hardforks", + "alloy-evm 0.20.1", + "alloy-op-hardforks 0.3.0", "alloy-primitives", "auto_impl", - "op-alloy-consensus", - "op-revm 8.0.3", - "revm 27.0.3", + "op-alloy-consensus 0.19.1", + "op-revm 10.0.0", + "revm 29.0.0", ] [[package]] name = "alloy-op-hardforks" -version = "0.2.11" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3417f4187eaf7f7fb0d7556f0197bca26f0b23c4bb3aca0c9d566dc1c5d727a2" +dependencies = [ + "alloy-chains", + "alloy-hardforks 0.2.13", + "auto_impl", +] + +[[package]] +name = "alloy-op-hardforks" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9a510692bef4871797062ca09ec7873c45dc68c7f3f72291165320f53606a3" +checksum = "9b6e8ab92a4b6cf57d84cec62868b7161f40de36b01ffda62455deb3907c9001" dependencies = [ "alloy-chains", - "alloy-hardforks", + "alloy-hardforks 0.3.0", "auto_impl", ] [[package]] name = "alloy-primitives" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cfebde8c581a5d37b678d0a48a32decb51efd7a63a08ce2517ddec26db705c8" +checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" dependencies = [ "alloy-rlp", "arbitrary", "bytes", "cfg-if", "const-hex", - "derive_arbitrary", "derive_more", "foldhash", "getrandom 0.3.3", - "hashbrown 0.15.4", - "indexmap 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.11.0", "itoa", "k256", "keccak-asm", "paste", "proptest", - "proptest-derive", - "rand 0.9.1", + "proptest-derive 0.5.1", + "rand 0.9.2", "ruint", "rustc-hash 2.1.1", "serde", @@ -531,9 +557,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59879a772ebdcde9dc4eb38b2535d32e8503d3175687cc09e763a625c5fcf32" +checksum = "9a85361c88c16116defbd98053e3d267054d6b82729cdbef0236f7881590f924" dependencies = [ "alloy-chains", "alloy-consensus", @@ -563,14 +589,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", @@ -579,13 +604,14 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdfb2899b54b7cb0063fa8e61938320f9be6b81b681be69c203abf130a87baa" +checksum = "25b1eda077b102b167effaf0c9d9109b1232948a6c7fcaff74abdb5deb562a17" dependencies = [ "alloy-json-rpc", "alloy-primitives", "alloy-transport", + "auto_impl", "bimap", "futures", "parking_lot", @@ -617,14 +643,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "alloy-rpc-client" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f060e3bb9f319eb01867a2d6d1ff9e0114e8877f5ca8f5db447724136106cae" +checksum = "743fc964abb0106e454e9e8683fb0809fb32940270ef586a58e913531360b302" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -648,9 +674,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d47b637369245d2dafef84b223b1ff5ea59e6cd3a98d2d3516e32788a0b216df" +checksum = "e6445ccdc73c8a97e1794e9f0f91af52fb2bbf9ff004339a801b0293c3928abb" dependencies = [ "alloy-primitives", "alloy-rpc-types-anvil", @@ -666,9 +692,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db29bf8f7c961533b017f383122cab6517c8da95712cf832e23c60415d520a58" +checksum = "196e0e38efeb2a5efb515758877765db56b3b18e998b809eb1e5d6fc20fcd097" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -678,9 +704,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b1f499acb3fc729615147bc113b8b798b17379f19d43058a687edc5792c102" +checksum = "242ff10318efd61c4b17ac8584df03a8db1e12146704c08b1b69d070cd4a1ebf" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -690,9 +716,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e26b4dd90b33bd158975307fb9cf5fafa737a0e33cbb772a8648bf8be13c104" +checksum = "97372c51a14a804fb9c17010e3dd6c117f7866620b264e24b64d2259be44bcdf" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -701,9 +727,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9196cbbf4b82a3cc0c471a8e68ccb30102170d930948ac940d2bceadc1b1346b" +checksum = "a2210006d3ee0b0468e49d81fc8b94ab9f088e65f955f8d56779545735b90873" dependencies = [ "alloy-eips", "alloy-primitives", @@ -712,26 +738,28 @@ 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.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71841e6fc8e221892035a74f7d5b279c0a2bf27a7e1c93e7476c64ce9056624e" +checksum = "a005a343cae9a0d4078d2f85a666493922d4bfb756229ea2a45a4bafd21cb9f1" dependencies = [ "alloy-primitives", + "derive_more", "serde", + "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f9cbf5f781b9ee39cfdddea078fdef6015424f4c8282ef0e5416d15ca352c4" +checksum = "0e214c7667f88b2f7e48eb8428eeafcbf6faecda04175c5f4d13fdb2563333ac" dependencies = [ "alloy-consensus", "alloy-eips", @@ -744,14 +772,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.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46586ec3c278639fc0e129f0eb73dbfa3d57f683c44b2ff5e066fab7ba63fa1f" +checksum = "672286c19528007df058bafd82c67e23247b4b3ebbc538cbddc705a82d8a930f" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -766,14 +794,14 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-rpc-types-mev" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79b6e80b501842c3f5803dd5752ae41b61f43bf6d2e1b8d29999d3312d67a8a5" +checksum = "fa6c5068a20a19df4481ffd698540af5f3656f401d12d9b3707e8ab90311af1d" dependencies = [ "alloy-consensus", "alloy-eips", @@ -786,23 +814,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9a2184493c374ca1dbba9569d37215c23e489970f8c3994f731cb3ed6b0b7d" +checksum = "d53c5ea8e10ca72889476343deb98c050da7b85e119a55a2a02a9791cb8242e4" 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.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3aaf142f4f6c0bdd06839c422179bae135024407d731e6f365380f88cd4730e" +checksum = "bb1c7ee378e899353e05a0d9f5b73b5d57bdac257532c6acd98eaa6b093fe642" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -812,9 +840,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1722bc30feef87cc0fa824e43c9013f9639cc6c037be7be28a31361c788be2" +checksum = "1aae653f049267ae7e040eab6c9b9a417064ca1a6cb21e3dd59b9f1131ef048f" dependencies = [ "alloy-primitives", "arbitrary", @@ -824,9 +852,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3674beb29e68fbbc7be302b611cf35fe07b736e308012a280861df5a2361395" +checksum = "d97cedce202f848592b96f7e891503d3adb33739c4e76904da73574290141b93" dependencies = [ "alloy-primitives", "async-trait", @@ -834,14 +862,14 @@ dependencies = [ "either", "elliptic-curve 0.13.8", "k256", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-signer-ledger" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cce5e8c97a526d39052035a99652b9cfacf0d646d4a3625fac9c919d20a46fb0" +checksum = "4919f44b5ed3825f2b8aa83ced97ae314c675f353e58761c023fe6a0c6cb89af" dependencies = [ "alloy-consensus", "alloy-network", @@ -851,15 +879,15 @@ dependencies = [ "coins-ledger", "futures-util", "semver 1.0.26", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] [[package]] name = "alloy-signer-local" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad7094c39cd41b03ed642145b0bd37251e31a9cf2ed19e1ce761f089867356a6" +checksum = "83ae7d854db5b7cdd5b9ed7ad13d1e5e034cdd8be85ffef081f61dc6c9e18351" dependencies = [ "alloy-consensus", "alloy-network", @@ -872,15 +900,16 @@ dependencies = [ "eth-keystore", "k256", "rand 0.8.5", - "thiserror 2.0.12", + "thiserror 2.0.16", "yubihsm", + "zeroize", ] [[package]] name = "alloy-signer-trezor" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fc3a082bf4dcf2e330b040378c73a113d31fe03068607a4d80368b47e60c44" +checksum = "718767e064ac213897e5f7c7f284fc15a51a3ce4adcecc98f5e276bdc6e8f716" dependencies = [ "alloy-consensus", "alloy-network", @@ -888,49 +917,49 @@ dependencies = [ "alloy-signer", "async-trait", "semver 1.0.26", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", "trezor-client", ] [[package]] name = "alloy-sol-macro" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedac07a10d4c2027817a43cc1f038313fc53c7ac866f7363239971fd01f9f18" +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.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f9a598f010f048d8b8226492b6401104f5a5c1273c2869b72af29b48bb4ba9" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.10.0", + "indexmap 2.11.0", "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.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f494adf9d60e49aa6ce26dfd42c7417aa6d4343cf2ae621f20e4d92a5ad07d85" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" dependencies = [ "alloy-json-abi", "const-hex", @@ -940,15 +969,15 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.104", + "syn 2.0.106", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52db32fbd35a9c0c0e538b58b81ebbae08a51be029e7ad60e08b60481c2ec6c3" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" dependencies = [ "serde", "winnow", @@ -956,9 +985,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a285b46e3e0c177887028278f04cc8262b76fd3b8e0e20e93cea0a58c35f5ac5" +checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -968,12 +997,13 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89bec2f59a41c0e259b6fe92f78dfc49862c17d10f938db9c33150d5a7f42b6" +checksum = "c08b383bc903c927635e39e1dae7df2180877d93352d1abd389883665a598afc" dependencies = [ "alloy-json-rpc", "alloy-primitives", + "auto_impl", "base64 0.22.1", "derive_more", "futures", @@ -981,7 +1011,7 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tower 0.5.2", "tracing", @@ -991,9 +1021,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3615ec64d775fec840f4e9d5c8e1f739eb1854d8d28db093fb3d4805e0cb53" +checksum = "6e58dee1f7763ef302074b645fc4f25440637c09a60e8de234b62993f06c0ae3" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -1006,9 +1036,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374db72669d8ee09063b9aa1a316e812d5cdfce7fc9a99a3eceaa0e5512300d2" +checksum = "5ae5c6655e5cda1227f0c70b7686ecfb8af856771deebacad8dab9a7fbc51864" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -1026,15 +1056,15 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5dbaa6851875d59c8803088f4b6ec72eaeddf7667547ae8995c1a19fbca6303" +checksum = "dcb2141958a1f13722cb20a2e01c130fb375209fa428849ae553c1518bc33a0d" dependencies = [ "alloy-pubsub", "alloy-transport", "futures", "http 1.3.1", - "rustls 0.23.28", + "rustls 0.23.31", "serde_json", "tokio", "tokio-tungstenite", @@ -1044,9 +1074,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", @@ -1056,7 +1086,7 @@ dependencies = [ "derive_more", "nybbles", "proptest", - "proptest-derive", + "proptest-derive 0.5.1", "serde", "smallvec", "tracing", @@ -1064,15 +1094,15 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f916ff6d52f219c44a9684aea764ce2c7e1d53bd4a724c9b127863aeacc30bb" +checksum = "d14809f908822dbff0dc472c77ca4aa129ab12e22fd9bff2dd1ef54603e68e3d" dependencies = [ "alloy-primitives", "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1180,9 +1210,10 @@ dependencies = [ "futures-util", "itertools 0.14.0", "pade", - "rand 0.9.1", + "rand 0.9.2", "reth-ethereum-primitives 1.6.0", "reth-execution-types 1.6.0", + "reth-optimism-primitives 1.6.0", "reth-primitives", "reth-provider", "reth-tasks 1.6.0", @@ -1202,7 +1233,7 @@ version = "0.1.0" dependencies = [ "angstrom-types", "eyre", - "hyper 1.6.0", + "hyper 1.7.0", "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics 0.21.1", "metrics-exporter-prometheus", @@ -1235,7 +1266,7 @@ dependencies = [ "once_cell", "order-pool", "parking_lot", - "rand 0.9.1", + "rand 0.9.2", "reth", "reth-discv4", "reth-eth-wire", @@ -1260,7 +1291,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "toml", + "toml 0.9.5", "tracing", "validation", ] @@ -1276,14 +1307,14 @@ dependencies = [ "async-trait", "consensus", "futures", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "order-pool", "pool-manager", - "rand 0.9.1", + "rand 0.9.2", "reth-tasks 1.6.0", "serde", "serde_json", - "strum 0.27.1", + "strum 0.27.2", "thiserror 1.0.69", "tokio", "tokio-stream", @@ -1313,7 +1344,7 @@ dependencies = [ "malachite", "pade", "pade-macro", - "rand 0.9.1", + "rand 0.9.2", "reqwest", "reth", "reth-chainspec 1.6.0", @@ -1321,15 +1352,16 @@ dependencies = [ "reth-ethereum-primitives 1.6.0", "reth-execution-types 1.6.0", "reth-network-peers 1.6.0", + "reth-optimism-flashblocks", "reth-optimism-primitives 1.6.0", "reth-primitives", "reth-primitives-traits 1.6.0", "reth-provider", "reth-storage-api 1.6.0", "reth-trie 1.6.0", - "revm 27.0.3", - "revm-bytecode 6.0.1", - "revm-database 7.0.1", + "revm 27.1.0", + "revm-bytecode 6.2.2", + "revm-database 7.0.5", "revm-primitives", "rollup-boost", "secp256k1 0.30.0", @@ -1339,6 +1371,7 @@ dependencies = [ "testing-tools", "thiserror 1.0.69", "tokio", + "tokio-stream", "tower 0.5.2", "tracing", "tracing-subscriber 0.3.19", @@ -1355,9 +1388,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", @@ -1385,29 +1418,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" @@ -1420,14 +1453,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", ] @@ -1469,7 +1502,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", @@ -1562,7 +1595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1600,7 +1633,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1615,7 +1648,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.4", + "hashbrown 0.15.5", ] [[package]] @@ -1689,7 +1722,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1751,11 +1784,13 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.25" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40f6024f3f856663b45fd0c9b6f2024034a702f453549449e0d84a305900dad4" +checksum = "5bee399cc3a623ec5a2db2c5b90ee0190a2260241fbe0c023ac8f7bab426aaf8" dependencies = [ "brotli", + "compression-codecs", + "compression-core", "flate2", "futures-core", "memchr", @@ -1795,18 +1830,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]] @@ -1844,7 +1879,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1855,9 +1890,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-config" -version = "1.8.0" +version = "1.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455e9fb7743c6f6267eb2830ccc08686fbb3d13c9a689369562fd4d4ef9ea462" +checksum = "c478f5b10ce55c9a33f87ca3404ca92768b144fc1bfdede7c0121214a8283a25" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1885,9 +1920,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", @@ -1897,9 +1932,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", @@ -1907,9 +1942,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", @@ -1920,9 +1955,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", @@ -1940,14 +1975,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "tracing", - "uuid 1.17.0", + "uuid 1.18.0", ] [[package]] name = "aws-sdk-s3" -version = "1.94.0" +version = "1.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc24d9d761bd464534d9e477a9f724c118ca2557a95444097cf6ce71f3229a72" +checksum = "af040a86ae4378b7ed2f62c83b36be1848709bbbf5757ec850d0e08596a26be9" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1979,9 +2014,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.73.0" +version = "1.82.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ac1674cba7872061a29baaf02209fefe499ff034dfd91bd4cc59e4d7741489" +checksum = "b069e4973dc25875bbd54e4c6658bdb4086a846ee9ed50f328d4d4c33ebf9857" dependencies = [ "aws-credential-types", "aws-runtime", @@ -2001,9 +2036,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.74.0" +version = "1.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6a22f077f5fd3e3c0270d4e1a110346cddf6769e9433eb9e6daceb4ca3b149" +checksum = "0b49e8fe57ff100a2f717abfa65bdd94e39702fa5ab3f60cddc6ac7784010c68" dependencies = [ "aws-credential-types", "aws-runtime", @@ -2023,9 +2058,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.75.0" +version = "1.84.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3258fa707f2f585ee3049d9550954b959002abd59176975150a01d5cf38ae3f" +checksum = "91abcdbfb48c38a0419eb75e0eac772a4783a96750392680e4f3c25a8a0535b9" dependencies = [ "aws-credential-types", "aws-runtime", @@ -2046,9 +2081,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", @@ -2085,9 +2120,9 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.63.4" +version = "0.63.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244f00666380d35c1c76b90f7b88a11935d11b84076ac22a4c014ea0939627af" +checksum = "56d2df0314b8e307995a3b86d44565dfe9de41f876901a7d71886c756a25979f" dependencies = [ "aws-smithy-http", "aws-smithy-types", @@ -2105,9 +2140,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", @@ -2116,9 +2151,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", @@ -2137,38 +2172,39 @@ dependencies = [ [[package]] name = "aws-smithy-http-client" -version = "1.0.6" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f108f1ca850f3feef3009bdcc977be201bca9a91058864d9de0684e64514bee0" +checksum = "147e8eea63a40315d704b97bf9bc9b8c1402ae94f89d5ad6f7550d963309da1b" 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 0.5.2", "tracing", ] [[package]] name = "aws-smithy-json" -version = "0.61.4" +version = "0.61.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a16e040799d29c17412943bdbf488fd75db04112d0c0d4b9290bacf5ae0014b9" +checksum = "eaa31b350998e703e9826b2104dd6f63be0508666e1aba88137af060e8944047" dependencies = [ "aws-smithy-types", ] @@ -2194,9 +2230,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.8.3" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14302f06d1d5b7d333fd819943075b13d27c7700b414f574c3c35859bfb55d5e" +checksum = "d3946acbe1ead1301ba6862e712c7903ca9bb230bdf1fbd1b5ac54158ef2ab1f" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -2218,9 +2254,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", @@ -2270,9 +2306,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", @@ -2337,9 +2373,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", @@ -2439,10 +2475,10 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "cexpr", "clang-sys", - "itertools 0.11.0", + "itertools 0.12.1", "lazy_static", "lazycell", "log", @@ -2452,7 +2488,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.104", + "syn 2.0.106", "which", ] @@ -2462,7 +2498,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.3", "cexpr", "clang-sys", "itertools 0.13.0", @@ -2471,7 +2507,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2513,9 +2549,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" dependencies = [ "serde", ] @@ -2533,19 +2569,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" @@ -2591,11 +2614,11 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c340fe0f0b267787095cbe35240c6786ff19da63ec7b69367ba338eace8169b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "boa_interner", "boa_macros", "boa_string", - "indexmap 2.10.0", + "indexmap 2.11.0", "num-bigint", "rustc-hash 2.1.1", ] @@ -2607,7 +2630,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f620c3f06f51e65c0504ddf04978be1b814ac6586f0b45f6019801ab5efd37f9" dependencies = [ "arrayvec", - "bitflags 2.9.1", + "bitflags 2.9.3", "boa_ast", "boa_gc", "boa_interner", @@ -2619,9 +2642,9 @@ 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", + "indexmap 2.11.0", "intrusive-collections", "itertools 0.13.0", "num-bigint", @@ -2641,7 +2664,7 @@ dependencies = [ "static_assertions", "tap", "thin-vec", - "thiserror 2.0.12", + "thiserror 2.0.16", "time", ] @@ -2654,7 +2677,7 @@ dependencies = [ "boa_macros", "boa_profiler", "boa_string", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "thin-vec", ] @@ -2666,8 +2689,8 @@ checksum = "42407a3b724cfaecde8f7d4af566df4b56af32a2f11f0956f5570bb974e7f749" dependencies = [ "boa_gc", "boa_macros", - "hashbrown 0.15.4", - "indexmap 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.11.0", "once_cell", "phf", "rustc-hash 2.1.1", @@ -2682,7 +2705,7 @@ checksum = "9fd3f870829131332587f607a7ff909f1af5fc523fd1b192db55fbbdf52e8d3c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -2692,7 +2715,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.3", "boa_ast", "boa_interner", "boa_macros", @@ -2739,14 +2762,14 @@ dependencies = [ "home", "http 1.3.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-named-pipe", "hyper-rustls 0.27.7", "hyper-util", "hyperlocal", "log", "pin-project-lite", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pemfile 2.2.0", "rustls-pki-types", @@ -2755,7 +2778,7 @@ dependencies = [ "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-util", "tower-service", @@ -2785,9 +2808,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", @@ -2834,22 +2857,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]] @@ -2895,9 +2918,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.10" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" dependencies = [ "serde", ] @@ -2935,7 +2958,7 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -2952,9 +2975,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[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", ] @@ -2996,9 +3019,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" @@ -3071,9 +3094,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.40" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "2c5e4fcf9c21d2e544ca1ee9d8552de13019a42aa7dbf32747fa7aaf1df76e57" dependencies = [ "clap_builder", "clap_derive", @@ -3081,9 +3104,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "fecb53a0e6fcfb055f686001bc2e2592fa527efaf38dbe81a6a9563562e57d41" dependencies = [ "anstream", "anstyle", @@ -3094,14 +3117,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]] @@ -3222,11 +3245,11 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.4" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" +checksum = "3f8e18d0dca9578507f13f9803add0df13362b02c501c1c17734f0dbb52eaf0b" dependencies = [ - "crossterm", + "crossterm 0.29.0", "unicode-segmentation", "unicode-width 0.2.0", ] @@ -3245,6 +3268,28 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "compression-codecs" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7eea68f0e02c2b0aa8856e9a9478444206d4b6828728e7b0697c0f8cca265cb" +dependencies = [ + "brotli", + "compression-core", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "zstd", + "zstd-safe", +] + +[[package]] +name = "compression-core" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" + [[package]] name = "concat-kdf" version = "0.1.0" @@ -3284,7 +3329,7 @@ dependencies = [ "itertools 0.14.0", "matching-engine", "order-pool", - "rand 0.9.1", + "rand 0.9.2", "reth-metrics 1.6.0", "reth-provider", "reth-tasks 1.6.0", @@ -3301,9 +3346,9 @@ dependencies = [ [[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", @@ -3338,12 +3383,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" @@ -3410,7 +3449,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "pade", "reth", "secp256k1 0.30.0", @@ -3456,15 +3495,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", ] @@ -3552,7 +3591,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.3", "crossterm_winapi", "mio", "parking_lot", @@ -3562,6 +3601,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.9.3", + "crossterm_winapi", + "document-features", + "parking_lot", + "rustix 1.0.8", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -3689,7 +3742,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3713,7 +3766,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3724,7 +3777,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3778,7 +3831,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]] @@ -3850,24 +3903,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]] @@ -3888,7 +3941,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3898,7 +3951,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]] @@ -3919,7 +3972,7 @@ dependencies = [ "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "unicode-xid", ] @@ -3977,7 +4030,7 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.0", + "redox_users 0.5.2", "windows-sys 0.60.2", ] @@ -4018,7 +4071,7 @@ dependencies = [ "parking_lot", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.5.10", "tokio", "tracing", "uint 0.10.0", @@ -4033,7 +4086,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4058,7 +4111,7 @@ checksum = "9556bc800956545d6420a640173e5ba7dfa82f38d3ea5a167eb555bc69ac3323" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4078,6 +4131,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -4092,9 +4154,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" @@ -4135,9 +4197,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", @@ -4157,7 +4219,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4253,7 +4315,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4273,7 +4335,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4289,7 +4351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -4382,7 +4444,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4488,14 +4550,14 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4515,7 +4577,7 @@ name = "flashblocks" version = "0.1.0" dependencies = [ "alloy", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-primitives", "angstrom-types", "brotli", @@ -4525,6 +4587,7 @@ dependencies = [ "reth", "reth-optimism-chainspec 1.6.0", "reth-optimism-evm 1.6.0", + "reth-optimism-flashblocks", "reth-optimism-primitives 1.6.0", "reth-primitives-traits 1.6.0", "serde_json", @@ -4574,9 +4637,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -4658,7 +4721,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4709,9 +4772,9 @@ checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" [[package]] name = "generator" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" +checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" dependencies = [ "cc", "cfg-if", @@ -4756,7 +4819,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.3+wasi-0.2.4", "wasm-bindgen", ] @@ -4782,7 +4845,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.3", "libc", "libgit2-sys", "log", @@ -4791,9 +4854,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" @@ -4843,12 +4906,12 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.5" +version = "1.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66d61197a68f6323b9afa616cf83d55d69191e1bf364d4eb7d35ae18defe776" +checksum = "a636fb6a653382a379ee1e5593dacdc628667994167024c143214cafd40c1a86" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4875,9 +4938,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", @@ -4885,7 +4948,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.10.0", + "indexmap 2.11.0", "slab", "tokio", "tokio-util", @@ -4894,9 +4957,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", @@ -4904,7 +4967,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.10.0", + "indexmap 2.11.0", "slab", "tokio", "tokio-util", @@ -4950,9 +5013,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", @@ -5025,10 +5088,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", @@ -5048,11 +5111,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", ] @@ -5235,14 +5298,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", @@ -5251,20 +5314,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", @@ -5277,7 +5342,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" dependencies = [ "hex", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "pin-project-lite", "tokio", @@ -5308,16 +5373,16 @@ 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]] @@ -5326,7 +5391,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "pin-project-lite", "tokio", @@ -5341,7 +5406,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "native-tls", "tokio", @@ -5351,9 +5416,9 @@ dependencies = [ [[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", @@ -5362,12 +5427,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", "system-configuration", "tokio", "tower-service", @@ -5383,7 +5448,7 @@ checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" dependencies = [ "hex", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "pin-project-lite", "tokio", @@ -5402,7 +5467,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.58.0", + "windows-core 0.61.2", ] [[package]] @@ -5436,7 +5501,7 @@ dependencies = [ "potential_utf", "yoke 0.8.0", "zerofrom", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -5449,7 +5514,7 @@ dependencies = [ "litemap 0.8.0", "tinystr 0.8.1", "writeable 0.6.1", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -5515,7 +5580,7 @@ dependencies = [ "icu_properties 2.0.1", "icu_provider 2.0.0", "smallvec", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -5558,7 +5623,7 @@ dependencies = [ "icu_provider 2.0.0", "potential_utf", "zerotrie", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -5604,7 +5669,7 @@ dependencies = [ "yoke 0.8.0", "zerofrom", "zerotrie", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -5615,7 +5680,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5626,9 +5691,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -5672,7 +5737,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5696,9 +5761,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" @@ -5713,13 +5778,13 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.15.5", "serde", ] @@ -5735,7 +5800,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.3", "inotify-sys", "libc", ] @@ -5761,15 +5826,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]] @@ -5796,13 +5861,24 @@ dependencies = [ "memoffset 0.9.1", ] +[[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags 2.9.3", + "cfg-if", + "libc", +] + [[package]] name = "ipconfig" 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", @@ -5832,7 +5908,7 @@ checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5859,6 +5935,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.13.0" @@ -5907,9 +5992,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -5928,53 +6013,53 @@ dependencies = [ [[package]] name = "jsonrpsee" version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fba77a59c4c644fd48732367624d1bcf6f409f9c9a286fbc71d2f1fc0b2ea16" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" dependencies = [ - "jsonrpsee-client-transport", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-http-client 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-proc-macros 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-wasm-client", - "jsonrpsee-ws-client", + "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-http-client 0.25.1", + "jsonrpsee-proc-macros 0.25.1", + "jsonrpsee-server 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", "tokio", "tracing", ] [[package]] name = "jsonrpsee" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f3f48dc3e6b8bd21e15436c1ddd0bc22a6a54e8ec46fedd6adf3425f396ec6a" dependencies = [ - "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-http-client 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-proc-macros 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-server 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-client-transport", + "jsonrpsee-core 0.26.0", + "jsonrpsee-http-client 0.26.0", + "jsonrpsee-proc-macros 0.26.0", + "jsonrpsee-server 0.26.0", + "jsonrpsee-types 0.26.0", + "jsonrpsee-wasm-client", + "jsonrpsee-ws-client", "tokio", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a320a3f1464e4094f780c4d48413acd786ce5627aaaecfac9e9c7431d13ae1" +checksum = "cf36eb27f8e13fa93dcb50ccb44c417e25b818cfa1a481b5470cd07b19c60b98" dependencies = [ "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", "http 1.3.1", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", "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", @@ -5990,7 +6075,6 @@ checksum = "693c93cbb7db25f4108ed121304b671a36002c2db67dff2ee4391a688c738547" dependencies = [ "async-trait", "bytes", - "futures-timer", "futures-util", "http 1.3.1", "http-body 1.0.1", @@ -5998,16 +6082,14 @@ dependencies = [ "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "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 0.5.2", "tracing", - "wasm-bindgen-futures", ] [[package]] @@ -6024,34 +6106,61 @@ dependencies = [ "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", "parking_lot", "pin-project", - "rand 0.9.1", + "rand 0.9.2", + "rustc-hash 2.1.1", + "serde", + "serde_json", + "thiserror 2.0.16", + "tokio", + "tower 0.5.2", + "tracing", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "316c96719901f05d1137f19ba598b5fe9c9bc39f4335f67f6be8613921946480" +dependencies = [ + "async-trait", + "bytes", + "futures-timer", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "jsonrpsee-types 0.26.0", + "parking_lot", + "pin-project", + "rand 0.9.2", "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", + "tokio-stream", "tower 0.5.2", "tracing", + "wasm-bindgen-futures", ] [[package]] name = "jsonrpsee-http-client" version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6962d2bd295f75e97dd328891e58fce166894b974c1f7ce2e7597f02eeceb791" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" 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 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.23.28", + "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "rustls 0.23.31", "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tower 0.5.2", "url", @@ -6059,21 +6168,22 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790bedefcec85321e007ff3af84b4e417540d5c87b3c9779b9e247d1bcc3dab8" dependencies = [ "base64 0.22.1", "http-body 1.0.1", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-util", - "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "rustls 0.23.28", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", + "rustls 0.23.31", "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tower 0.5.2", "url", @@ -6082,26 +6192,26 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fa4f5daed39f982a1bb9d15449a28347490ad42b212f8eaa2a2a344a0dce9e9" +source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" dependencies = [ "heck", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2da3f8ab5ce1bb124b6d082e62dffe997578ceaf0aeb9f3174a214589dc00f07" dependencies = [ "heck", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6114,7 +6224,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 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -6123,7 +6233,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -6140,7 +6250,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 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", @@ -6149,7 +6259,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -6158,15 +6268,42 @@ dependencies = [ ] [[package]] -name = "jsonrpsee-types" -version = "0.25.1" +name = "jsonrpsee-server" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66df7256371c45621b3b7d2fb23aea923d577616b9c0e9c0b950a6ea5c2be0ca" +checksum = "4c51b7c290bb68ce3af2d029648148403863b982f138484a73f02a9dd52dbd7f" dependencies = [ + "futures-util", "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.7.0", + "hyper-util", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", + "pin-project", + "route-recognizer", "serde", "serde_json", - "thiserror 2.0.12", + "soketto", + "thiserror 2.0.16", + "tokio", + "tokio-stream", + "tokio-util", + "tower 0.5.2", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66df7256371c45621b3b7d2fb23aea923d577616b9c0e9c0b950a6ea5c2be0ca" +dependencies = [ + "http 1.3.1", + "serde", + "serde_json", + "thiserror 2.0.16", ] [[package]] @@ -6177,31 +6314,43 @@ dependencies = [ "http 1.3.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc88ff4688e43cc3fa9883a8a95c6fa27aa2e76c96e610b737b6554d650d7fd5" +dependencies = [ + "http 1.3.1", + "serde", + "serde_json", + "thiserror 2.0.16", ] [[package]] name = "jsonrpsee-wasm-client" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b67695cbcf4653f39f8f8738925547e0e23fd9fe315bccf951097b9f6a38781" +checksum = "7902885de4779f711a95d82c8da2d7e5f9f3a7c7cfa44d51c067fd1c29d72a3c" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "tower 0.5.2", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da2694c9ff271a9d3ebfe520f6b36820e85133a51be77a3cb549fd615095261" +checksum = "9b6fceceeb05301cc4c065ab3bd2fa990d41ff4eb44e4ca1b30fa99c057c3e79" dependencies = [ "http 1.3.1", "jsonrpsee-client-transport", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "tower 0.5.2", "url", ] @@ -6289,9 +6438,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" @@ -6322,7 +6471,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.53.3", ] [[package]] @@ -6345,7 +6494,7 @@ dependencies = [ "multihash", "quick-protobuf", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", "zeroize", ] @@ -6363,13 +6512,13 @@ 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.3", "libc", - "redox_syscall 0.5.13", + "redox_syscall 0.5.17", ] [[package]] @@ -6482,6 +6631,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +[[package]] +name = "litrs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" + [[package]] name = "lock_api" version = "0.4.13" @@ -6518,7 +6673,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]] @@ -6527,7 +6682,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]] @@ -6578,7 +6733,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6648,10 +6803,10 @@ dependencies = [ "futures", "futures-util", "itertools 0.14.0", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "pade", "pade-macro", - "rand 0.9.1", + "rand 0.9.2", "rand_distr", "reth-tasks 1.6.0", "serde", @@ -6690,9 +6845,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -6755,7 +6910,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6766,10 +6921,10 @@ checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-util", - "indexmap 2.10.0", + "indexmap 2.11.0", "ipnet", "metrics 0.24.2", "metrics-util 0.19.1", @@ -6787,7 +6942,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6830,13 +6985,13 @@ dependencies = [ "aho-corasick", "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.15.4", - "indexmap 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.11.0", "metrics 0.24.2", "ordered-float", "quanta", "radix_trie", - "rand 0.9.1", + "rand 0.9.2", "rand_xoshiro", "sketches-ddsketch", ] @@ -6850,13 +7005,13 @@ dependencies = [ "aho-corasick", "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.15.4", - "indexmap 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.11.0", "metrics 0.24.2", "ordered-float", "quanta", "radix_trie", - "rand 0.9.1", + "rand 0.9.2", "rand_xoshiro", "sketches-ddsketch", ] @@ -6959,7 +7114,7 @@ dependencies = [ "smallvec", "tagptr", "thiserror 1.0.69", - "uuid 1.17.0", + "uuid 1.18.0", ] [[package]] @@ -7053,7 +7208,7 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "cfg-if", "cfg_aliases", "libc", @@ -7071,12 +7226,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.3", "fsevent-sys", "inotify", "kqueue", @@ -7085,7 +7239,7 @@ dependencies = [ "mio", "notify-types", "walkdir", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -7223,7 +7377,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7237,12 +7391,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", @@ -7282,9 +7437,25 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "op-alloy-consensus" -version = "0.18.13" +version = "0.18.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c88d2940558fd69f8f07b3cbd7bb3c02fc7d31159c1a7ba9deede50e7881024" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "derive_more", + "serde", + "thiserror 2.0.16", +] + +[[package]] +name = "op-alloy-consensus" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c719b26da6d9cac18c3a35634d6ab27a74a304ed9b403b43749c22e57a389f" +checksum = "d9ade20c592484ba1ea538006e0454284174447a3adf9bb59fa99ed512f95493" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7297,7 +7468,7 @@ dependencies = [ "derive_more", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -7308,9 +7479,9 @@ checksum = "a79f352fc3893dcd670172e615afef993a41798a1d3fc0db88a3e60ef2e70ecc" [[package]] name = "op-alloy-network" -version = "0.18.13" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66be312d3446099f1c46b3bb4bbaccdd4b3d6fb3668921158e3d47dff0a8d4a0" +checksum = "84741a798124ceb43979d70db654039937a00979b1341fa8bfdc48473bbd52bf" dependencies = [ "alloy-consensus", "alloy-network", @@ -7318,25 +7489,25 @@ dependencies = [ "alloy-provider", "alloy-rpc-types-eth", "alloy-signer", - "op-alloy-consensus", - "op-alloy-rpc-types", + "op-alloy-consensus 0.19.1", + "op-alloy-rpc-types 0.19.1", ] [[package]] name = "op-alloy-rpc-jsonrpsee" -version = "0.18.13" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3833995acfc568fdac3684f037c4ed3f1f2bd2ef5deeb3f46ecee32aafa34c8e" +checksum = "aa85f170bf8f914a7619e1447918781a8c5bd1041bb6629940b851e865487156" dependencies = [ "alloy-primitives", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", ] [[package]] name = "op-alloy-rpc-types" -version = "0.18.13" +version = "0.18.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99911fa02e717a96ba24de59874b20cf31c9d116ce79ed4e0253267260b6922f" +checksum = "f22201e53e8cbb67a053e88b534b4e7f02265c5406994bf35978482a9ad0ae26" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7345,17 +7516,57 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "derive_more", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", +] + +[[package]] +name = "op-alloy-rpc-types" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9076d4fcb8e260cec8ad01cd155200c0dbb562e62adb553af245914f30854e29" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "derive_more", + "op-alloy-consensus 0.19.1", + "serde", + "serde_json", + "thiserror 2.0.16", +] + +[[package]] +name = "op-alloy-rpc-types-engine" +version = "0.18.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4f977b51e9e177e69a4d241ab7c4b439df9a3a5a998c000ae01be724de271" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-engine", + "alloy-serde", + "derive_more", + "ethereum_ssz", + "ethereum_ssz_derive", + "op-alloy-consensus 0.18.14", + "serde", + "snap", + "thiserror 2.0.16", ] [[package]] name = "op-alloy-rpc-types-engine" -version = "0.18.13" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cf45d43a3d548fdc39d9bfab6ba13cc06b3214ef4b9c36d3efbf3faea1b9f1" +checksum = "d4256b1eda5766a9fa7de5874e54515994500bef632afda41e940aed015f9455" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7366,10 +7577,10 @@ dependencies = [ "derive_more", "ethereum_ssz", "ethereum_ssz_derive", - "op-alloy-consensus", + "op-alloy-consensus 0.19.1", "serde", "snap", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -7394,13 +7605,12 @@ dependencies = [ [[package]] name = "op-revm" -version = "8.0.3" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee9ba9cab294a5ed02afd1a1060220762b3c52911acab635db33822e93f7276d" +checksum = "5ba21d705bbbfc947a423cba466d75e4af0c7d43ee89ba0a0f1cfa04963cede9" dependencies = [ "auto_impl", - "once_cell", - "revm 27.0.3", + "revm 29.0.0", "serde", ] @@ -7416,7 +7626,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "cfg-if", "foreign-types", "libc", @@ -7433,7 +7643,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7464,7 +7674,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] @@ -7498,7 +7708,7 @@ dependencies = [ "prost", "reqwest", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tonic", "tracing", @@ -7534,7 +7744,7 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -7559,7 +7769,7 @@ dependencies = [ "futures", "futures-util", "pade", - "rand 0.9.1", + "rand 0.9.2", "reth-discv4", "reth-metrics 1.6.0", "reth-network", @@ -7661,7 +7871,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7701,7 +7911,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7728,7 +7938,7 @@ checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.13", + "redox_syscall 0.5.17", "smallvec", "windows-targets 0.52.6", ] @@ -7741,7 +7951,7 @@ checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" dependencies = [ "parse-display-derive", "regex", - "regex-syntax 0.8.5", + "regex-syntax 0.8.6", ] [[package]] @@ -7753,9 +7963,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "regex-syntax 0.8.5", + "regex-syntax 0.8.6", "structmeta", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7795,9 +8005,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" @@ -7806,7 +8016,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", ] @@ -7851,7 +8061,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7880,7 +8090,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7988,7 +8198,7 @@ dependencies = [ "angstrom-types", "arraydeque", "bincode", - "convert_case 0.7.1", + "convert_case 0.8.0", "dashmap 6.1.0", "divan", "eyre", @@ -7996,7 +8206,7 @@ dependencies = [ "futures-util", "hex", "homedir", - "itertools 0.10.5", + "itertools 0.14.0", "linked_hash_set", "malachite", "once_cell", @@ -8004,7 +8214,7 @@ dependencies = [ "pade", "pade-macro", "parking_lot", - "rand 0.9.1", + "rand 0.9.2", "rayon", "reth", "reth-discv4", @@ -8016,11 +8226,11 @@ dependencies = [ "reth-tasks 1.6.0", "reth-tracing", "reth-transaction-pool 1.6.0", - "revm 27.0.3", - "revm-bytecode 6.0.1", - "revm-database 7.0.1", + "revm 27.1.0", + "revm-bytecode 6.2.2", + "revm-database 7.0.5", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", "secp256k1 0.30.0", "serde", "serial_test", @@ -8031,7 +8241,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "toml", + "toml 0.9.5", "tracing", "tracing-subscriber 0.3.19", "uniswap_v3_math", @@ -8046,11 +8256,11 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -8080,12 +8290,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]] @@ -8136,14 +8346,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", ] @@ -8154,7 +8364,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "chrono", "flate2", "hex", @@ -8169,7 +8379,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.3", "chrono", "flate2", "hex", @@ -8183,7 +8393,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "chrono", "hex", ] @@ -8194,7 +8404,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.3", "chrono", "hex", ] @@ -8222,13 +8432,13 @@ checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.1", + "bitflags 2.9.3", "lazy_static", "num-traits", - "rand 0.9.1", + "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax 0.8.6", "rusty-fork", "tempfile", "unarray", @@ -8252,7 +8462,18 @@ checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", +] + +[[package]] +name = "proptest-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "095a99f75c69734802359b682be8daaf8980296731f6470434ea2c652af1dd30" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] @@ -8272,10 +8493,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -8310,7 +8531,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.3", "memchr", "unicase", ] @@ -8347,9 +8568,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -8357,9 +8578,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.6.0", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -8367,20 +8588,20 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "getrandom 0.3.3", "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", @@ -8388,16 +8609,16 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.6.0", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -8445,9 +8666,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", @@ -8500,7 +8721,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" dependencies = [ "num-traits", - "rand 0.9.1", + "rand 0.9.2", ] [[package]] @@ -8527,10 +8748,10 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "cassowary", "compact_str", - "crossterm", + "crossterm 0.28.1", "indoc", "instability", "itertools 0.13.0", @@ -8548,14 +8769,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.3", ] [[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", @@ -8563,9 +8784,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", @@ -8588,11 +8809,11 @@ dependencies = [ [[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.3", ] [[package]] @@ -8608,13 +8829,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]] @@ -8634,19 +8855,19 @@ checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata 0.4.10", + "regex-syntax 0.8.6", ] [[package]] @@ -8660,20 +8881,20 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax 0.8.6", ] [[package]] name = "regex-lite" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" +checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" [[package]] name = "regex-syntax" @@ -8683,17 +8904,17 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "regress" -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", ] @@ -8707,23 +8928,23 @@ dependencies = [ "clap", "eyre", "futures", - "rand 0.9.1", + "rand 0.9.2", "reth", "reth-provider", "serde", "telemetry", "testing-tools", "tokio", - "toml", + "toml 0.9.5", "tracing", "tracing-subscriber 0.3.19", ] [[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", @@ -8731,11 +8952,11 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.11", + "h2 0.4.12", "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-tls", "hyper-util", @@ -8746,7 +8967,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", @@ -8765,7 +8986,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.1", + "webpki-roots 1.0.2", ] [[package]] @@ -8777,7 +8998,7 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-rpc-types", "aquamarine", @@ -8847,7 +9068,7 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8897,7 +9118,7 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8908,7 +9129,7 @@ dependencies = [ "metrics 0.24.2", "parking_lot", "pin-project", - "rand 0.9.1", + "rand 0.9.2", "reth-chainspec 1.6.0", "reth-errors 1.6.0", "reth-ethereum-primitives 1.6.0", @@ -8917,8 +9138,8 @@ dependencies = [ "reth-primitives-traits 1.6.0", "reth-storage-api 1.6.0", "reth-trie 1.6.0", - "revm-database 7.0.1", - "revm-state 7.0.1", + "revm-database 7.0.5", + "revm-state 7.0.5", "serde", "tokio", "tokio-stream", @@ -8948,12 +9169,12 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-genesis", "alloy-primitives", "alloy-trie", @@ -8968,7 +9189,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-genesis", "clap", @@ -8982,7 +9203,7 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "ahash", "alloy-chains", @@ -8993,7 +9214,7 @@ dependencies = [ "backon", "clap", "comfy-table", - "crossterm", + "crossterm 0.28.1", "eyre", "fdlimit", "futures", @@ -9048,14 +9269,14 @@ dependencies = [ "tar", "tokio", "tokio-stream", - "toml", + "toml 0.8.23", "tracing", ] [[package]] name = "reth-cli-runner" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "reth-tasks 1.6.0", "tokio", @@ -9065,7 +9286,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9076,7 +9297,7 @@ dependencies = [ "reth-fs-util 1.6.0", "secp256k1 0.30.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tikv-jemallocator", ] @@ -9092,7 +9313,7 @@ dependencies = [ "alloy-trie", "bytes", "modular-bitfield", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "reth-codecs-derive 1.5.0", "reth-zstd-compressors 1.5.0", "serde", @@ -9101,7 +9322,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9111,7 +9332,7 @@ dependencies = [ "arbitrary", "bytes", "modular-bitfield", - "op-alloy-consensus", + "op-alloy-consensus 0.19.1", "reth-codecs-derive 1.6.0", "reth-zstd-compressors 1.6.0", "serde", @@ -9126,24 +9347,24 @@ dependencies = [ "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "reth-codecs-derive" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "reth-config" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "eyre", "humantime-serde", @@ -9151,7 +9372,7 @@ dependencies = [ "reth-prune-types 1.6.0", "reth-stages-types 1.6.0", "serde", - "toml", + "toml 0.8.23", "url", ] @@ -9165,20 +9386,20 @@ dependencies = [ "auto_impl", "reth-execution-types 1.5.0", "reth-primitives-traits 1.5.0", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-consensus" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", "auto_impl", "reth-execution-types 1.6.0", "reth-primitives-traits 1.6.0", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -9196,7 +9417,7 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9208,7 +9429,7 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9233,7 +9454,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "derive_more", @@ -9250,16 +9471,16 @@ dependencies = [ "reth-storage-errors 1.6.0", "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.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -9287,7 +9508,7 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -9299,6 +9520,7 @@ dependencies = [ "reth-config", "reth-db-api", "reth-etl", + "reth-execution-errors 1.6.0", "reth-fs-util 1.6.0", "reth-node-types", "reth-primitives-traits 1.6.0", @@ -9309,7 +9531,7 @@ dependencies = [ "reth-trie-db", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] @@ -9326,7 +9548,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9341,7 +9563,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9358,7 +9580,7 @@ dependencies = [ "schnellru", "secp256k1 0.30.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -9367,7 +9589,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9377,13 +9599,13 @@ dependencies = [ "futures", "itertools 0.14.0", "metrics 0.24.2", - "rand 0.9.1", + "rand 0.9.2", "reth-chainspec 1.6.0", "reth-ethereum-forks 1.6.0", "reth-metrics 1.6.0", "reth-network-peers 1.6.0", "secp256k1 0.30.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9391,7 +9613,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "data-encoding", @@ -9406,7 +9628,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -9415,7 +9637,7 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9435,7 +9657,7 @@ dependencies = [ "reth-primitives-traits 1.6.0", "reth-storage-api 1.6.0", "reth-tasks 1.6.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -9445,7 +9667,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "aes", "alloy-primitives", @@ -9465,7 +9687,7 @@ dependencies = [ "secp256k1 0.30.0", "sha2 0.10.9", "sha3", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -9476,14 +9698,14 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rpc-types-engine", "eyre", "futures-util", - "op-alloy-rpc-types-engine", + "op-alloy-rpc-types-engine 0.19.1", "reth-chainspec 1.6.0", "reth-engine-primitives 1.6.0", "reth-ethereum-engine-primitives 1.6.0", @@ -9518,14 +9740,14 @@ dependencies = [ "reth-trie 1.5.0", "reth-trie-common 1.5.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", ] [[package]] name = "reth-engine-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9536,21 +9758,21 @@ dependencies = [ "reth-chain-state 1.6.0", "reth-errors 1.6.0", "reth-ethereum-primitives 1.6.0", + "reth-evm 1.6.0", "reth-execution-types 1.6.0", "reth-payload-builder-primitives 1.6.0", "reth-payload-primitives 1.6.0", "reth-primitives-traits 1.6.0", - "reth-trie 1.6.0", "reth-trie-common 1.6.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", ] [[package]] name = "reth-engine-service" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "futures", "pin-project", @@ -9567,23 +9789,22 @@ dependencies = [ "reth-prune", "reth-stages-api", "reth-tasks 1.6.0", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-engine-tree" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", "derive_more", "futures", - "itertools 0.14.0", "metrics 0.24.2", "mini-moka", "parking_lot", @@ -9595,6 +9816,7 @@ dependencies = [ "reth-errors 1.6.0", "reth-ethereum-primitives 1.6.0", "reth-evm 1.6.0", + "reth-execution-types 1.6.0", "reth-metrics 1.6.0", "reth-network-p2p", "reth-payload-builder 1.6.0", @@ -9610,10 +9832,11 @@ dependencies = [ "reth-trie-parallel", "reth-trie-sparse 1.6.0", "reth-trie-sparse-parallel", - "revm 27.0.3", + "revm 29.0.0", "revm-primitives", "schnellru", - "thiserror 2.0.12", + "smallvec", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9621,7 +9844,7 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -9631,6 +9854,7 @@ dependencies = [ "pin-project", "reth-chainspec 1.6.0", "reth-engine-primitives 1.6.0", + "reth-engine-tree", "reth-errors 1.6.0", "reth-evm 1.6.0", "reth-fs-util 1.6.0", @@ -9648,7 +9872,7 @@ dependencies = [ [[package]] name = "reth-era" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9658,13 +9882,13 @@ dependencies = [ "ethereum_ssz_derive", "reth-ethereum-primitives 1.6.0", "snap", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-era-downloader" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "bytes", @@ -9679,7 +9903,7 @@ dependencies = [ [[package]] name = "reth-era-utils" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -9708,24 +9932,24 @@ dependencies = [ "reth-consensus 1.5.0", "reth-execution-errors 1.5.0", "reth-storage-errors 1.5.0", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-errors" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "reth-consensus 1.6.0", "reth-execution-errors 1.6.0", "reth-storage-errors 1.6.0", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-eth-wire" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-chains", "alloy-primitives", @@ -9743,7 +9967,7 @@ dependencies = [ "reth-primitives-traits 1.6.0", "serde", "snap", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -9758,7 +9982,7 @@ dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-hardforks", + "alloy-hardforks 0.2.13", "alloy-primitives", "alloy-rlp", "bytes", @@ -9768,18 +9992,18 @@ dependencies = [ "reth-ethereum-primitives 1.5.0", "reth-primitives-traits 1.5.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-eth-wire-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-hardforks", + "alloy-hardforks 0.3.0", "alloy-primitives", "alloy-rlp", "bytes", @@ -9789,15 +10013,14 @@ dependencies = [ "reth-ethereum-primitives 1.6.0", "reth-primitives-traits 1.6.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-ethereum-cli" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "alloy-consensus", "clap", "eyre", "reth-chainspec 1.6.0", @@ -9817,7 +10040,7 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9845,13 +10068,13 @@ dependencies = [ "reth-primitives-traits 1.5.0", "serde", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-ethereum-engine-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9863,7 +10086,7 @@ dependencies = [ "reth-primitives-traits 1.6.0", "serde", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -9872,7 +10095,7 @@ version = "1.5.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" dependencies = [ "alloy-eip2124", - "alloy-hardforks", + "alloy-hardforks 0.2.13", "alloy-primitives", "auto_impl", "once_cell", @@ -9882,10 +10105,10 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eip2124", - "alloy-hardforks", + "alloy-hardforks 0.3.0", "alloy-primitives", "arbitrary", "auto_impl", @@ -9896,14 +10119,16 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", + "alloy-rlp", "alloy-rpc-types-engine", "reth-basic-payload-builder 1.6.0", "reth-chainspec 1.6.0", + "reth-consensus-common 1.6.0", "reth-errors 1.6.0", "reth-ethereum-primitives 1.6.0", "reth-evm 1.6.0", @@ -9916,7 +10141,7 @@ dependencies = [ "reth-revm 1.6.0", "reth-storage-api 1.6.0", "reth-transaction-pool 1.6.0", - "revm 27.0.3", + "revm 29.0.0", "tracing", ] @@ -9938,7 +10163,7 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9956,7 +10181,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "rayon", "reth-db-api", @@ -9987,11 +10212,11 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-primitives", "auto_impl", "derive_more", @@ -10004,25 +10229,27 @@ dependencies = [ "reth-storage-api 1.6.0", "reth-storage-errors 1.6.0", "reth-trie-common 1.6.0", - "revm 27.0.3", + "revm 29.0.0", ] [[package]] name = "reth-evm-ethereum" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-primitives", + "alloy-rpc-types-engine", "reth-chainspec 1.6.0", "reth-ethereum-forks 1.6.0", "reth-ethereum-primitives 1.6.0", "reth-evm 1.6.0", "reth-execution-types 1.6.0", "reth-primitives-traits 1.6.0", - "revm 27.0.3", + "reth-storage-errors 1.6.0", + "revm 29.0.0", ] [[package]] @@ -10035,20 +10262,20 @@ dependencies = [ "alloy-rlp", "nybbles", "reth-storage-errors 1.5.0", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-execution-errors" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-primitives", "alloy-rlp", "nybbles", "reth-storage-errors 1.6.0", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -10070,17 +10297,17 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-primitives", "derive_more", "reth-ethereum-primitives 1.6.0", "reth-primitives-traits 1.6.0", "reth-trie-common 1.6.0", - "revm 27.0.3", + "revm 29.0.0", "serde", "serde_with", ] @@ -10088,7 +10315,7 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10117,7 +10344,7 @@ dependencies = [ "reth-tasks 1.6.0", "reth-tracing", "rmp-serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -10126,7 +10353,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", @@ -10144,23 +10371,23 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e77 dependencies = [ "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-fs-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-invalid-block-hooks" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -10168,7 +10395,7 @@ dependencies = [ "alloy-rpc-types-debug", "eyre", "futures", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "pretty_assertions", "reth-chainspec 1.6.0", "reth-engine-primitives 1.6.0", @@ -10179,8 +10406,8 @@ dependencies = [ "reth-rpc-api", "reth-tracing", "reth-trie 1.6.0", - "revm-bytecode 6.0.1", - "revm-database 7.0.1", + "revm-bytecode 6.2.2", + "revm-database 7.0.5", "serde", "serde_json", ] @@ -10188,16 +10415,16 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "bytes", "futures", "futures-util", "interprocess", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "pin-project", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -10208,24 +10435,24 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "byteorder", "dashmap 6.1.0", "derive_more", - "indexmap 2.10.0", + "indexmap 2.11.0", "parking_lot", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-mdbx-sys" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "bindgen 0.70.1", "cc", @@ -10243,7 +10470,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "futures", "metrics 0.24.2", @@ -10255,7 +10482,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", ] @@ -10263,13 +10490,13 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "futures-util", "if-addrs", "reqwest", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -10277,7 +10504,7 @@ dependencies = [ [[package]] name = "reth-network" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10294,7 +10521,7 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.8.5", - "rand 0.9.1", + "rand 0.9.2", "reth-chainspec 1.6.0", "reth-consensus 1.6.0", "reth-discv4", @@ -10322,7 +10549,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -10332,7 +10559,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -10349,7 +10576,7 @@ dependencies = [ "reth-network-types", "reth-tokio-util", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", ] @@ -10357,7 +10584,7 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10386,21 +10613,21 @@ dependencies = [ "alloy-rlp", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "url", ] [[package]] name = "reth-network-peers" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "alloy-rlp", "enr", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "url", ] @@ -10408,7 +10635,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -10422,7 +10649,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "anyhow", "bincode", @@ -10431,7 +10658,7 @@ dependencies = [ "memmap2", "reth-fs-util 1.6.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", "zstd", ] @@ -10439,7 +10666,7 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -10463,7 +10690,7 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10475,7 +10702,7 @@ dependencies = [ "eyre", "fdlimit", "futures", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "rayon", "reth-basic-payload-builder 1.6.0", "reth-chain-state 1.6.0", @@ -10489,6 +10716,7 @@ dependencies = [ "reth-db-common", "reth-downloaders", "reth-engine-local", + "reth-engine-primitives 1.6.0", "reth-engine-service", "reth-engine-tree", "reth-engine-util", @@ -10505,6 +10733,7 @@ dependencies = [ "reth-node-events", "reth-node-metrics", "reth-payload-builder 1.6.0", + "reth-primitives-traits 1.6.0", "reth-provider", "reth-prune", "reth-rpc", @@ -10529,7 +10758,7 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10541,7 +10770,7 @@ dependencies = [ "eyre", "futures", "humantime", - "rand 0.9.1", + "rand 0.9.2", "reth-chainspec 1.6.0", "reth-cli-util", "reth-config", @@ -10569,9 +10798,9 @@ dependencies = [ "secp256k1 0.30.0", "serde", "shellexpand", - "strum 0.27.1", - "thiserror 2.0.12", - "toml", + "strum 0.27.2", + "thiserror 2.0.16", + "toml 0.8.23", "tracing", "url", "vergen", @@ -10581,7 +10810,7 @@ dependencies = [ [[package]] name = "reth-node-ethereum" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-network", @@ -10612,14 +10841,14 @@ dependencies = [ "reth-rpc-server-types", "reth-tracing", "reth-transaction-pool 1.6.0", - "reth-trie-db", - "revm 27.0.3", + "revm 29.0.0", + "tokio", ] [[package]] name = "reth-node-ethstats" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -10632,7 +10861,7 @@ dependencies = [ "reth-transaction-pool 1.6.0", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-tungstenite", @@ -10643,7 +10872,7 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10667,11 +10896,11 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "eyre", "http 1.3.1", - "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-server 0.26.0", "metrics 0.24.2", "metrics-exporter-prometheus", "metrics-process 2.4.0", @@ -10688,14 +10917,13 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "reth-chainspec 1.6.0", "reth-db-api", "reth-engine-primitives 1.6.0", "reth-payload-primitives 1.6.0", "reth-primitives-traits 1.6.0", - "reth-trie-db", ] [[package]] @@ -10707,10 +10935,10 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-hardforks", + "alloy-hardforks 0.2.13", "alloy-primitives", "derive_more", - "op-alloy-rpc-types", + "op-alloy-rpc-types 0.18.14", "reth-chainspec 1.5.0", "reth-ethereum-forks 1.5.0", "reth-network-peers 1.5.0", @@ -10723,18 +10951,18 @@ dependencies = [ [[package]] name = "reth-optimism-chainspec" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-hardforks", + "alloy-hardforks 0.3.0", "alloy-primitives", "derive_more", "miniz_oxide", - "op-alloy-consensus", - "op-alloy-rpc-types", + "op-alloy-consensus 0.19.1", + "op-alloy-rpc-types 0.19.1", "paste", "reth-chainspec 1.6.0", "reth-ethereum-forks 1.6.0", @@ -10745,13 +10973,13 @@ dependencies = [ "serde", "serde_json", "tar-no-std", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-optimism-cli" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10761,7 +10989,7 @@ dependencies = [ "derive_more", "eyre", "futures-util", - "op-alloy-consensus", + "op-alloy-consensus 0.19.1", "reth-chainspec 1.6.0", "reth-cli", "reth-cli-commands", @@ -10804,7 +11032,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-trie", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "reth-chainspec 1.5.0", "reth-consensus 1.5.0", "reth-consensus-common 1.5.0", @@ -10816,14 +11044,14 @@ dependencies = [ "reth-storage-errors 1.5.0", "reth-trie-common 1.5.0", "revm 26.0.1", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-optimism-consensus" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -10840,8 +11068,8 @@ dependencies = [ "reth-storage-api 1.6.0", "reth-storage-errors 1.6.0", "reth-trie-common 1.6.0", - "revm 27.0.3", - "thiserror 2.0.12", + "revm 29.0.0", + "thiserror 2.0.16", "tracing", ] @@ -10855,7 +11083,7 @@ dependencies = [ "alloy-evm 0.12.3", "alloy-op-evm 0.12.3", "alloy-primitives", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "op-revm 7.0.1", "reth-chainspec 1.5.0", "reth-evm 1.5.0", @@ -10867,21 +11095,22 @@ dependencies = [ "reth-optimism-primitives 1.5.0", "reth-primitives-traits 1.5.0", "revm 26.0.1", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-optimism-evm" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", - "alloy-op-evm 0.15.0", + "alloy-evm 0.20.1", + "alloy-op-evm 0.20.1", "alloy-primitives", - "op-alloy-consensus", - "op-revm 8.0.3", + "op-alloy-consensus 0.19.1", + "op-alloy-rpc-types-engine 0.19.1", + "op-revm 10.0.0", "reth-chainspec 1.6.0", "reth-evm 1.6.0", "reth-execution-errors 1.6.0", @@ -10892,8 +11121,40 @@ dependencies = [ "reth-optimism-primitives 1.6.0", "reth-primitives-traits 1.6.0", "reth-rpc-eth-api", - "revm 27.0.3", - "thiserror 2.0.12", + "reth-storage-errors 1.6.0", + "revm 29.0.0", + "thiserror 2.0.16", +] + +[[package]] +name = "reth-optimism-flashblocks" +version = "1.6.0" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rpc-types-engine", + "alloy-serde", + "brotli", + "eyre", + "futures-util", + "reth-chain-state 1.6.0", + "reth-errors 1.6.0", + "reth-evm 1.6.0", + "reth-execution-types 1.6.0", + "reth-optimism-evm 1.6.0", + "reth-optimism-primitives 1.6.0", + "reth-primitives-traits 1.6.0", + "reth-revm 1.6.0", + "reth-rpc-eth-api", + "reth-rpc-eth-types", + "reth-storage-api 1.6.0", + "serde", + "serde_json", + "tokio", + "tokio-tungstenite", + "tracing", + "url", ] [[package]] @@ -10901,7 +11162,7 @@ name = "reth-optimism-forks" version = "1.5.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" dependencies = [ - "alloy-op-hardforks", + "alloy-op-hardforks 0.2.13", "alloy-primitives", "once_cell", "reth-ethereum-forks 1.5.0", @@ -10910,9 +11171,9 @@ dependencies = [ [[package]] name = "reth-optimism-forks" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "alloy-op-hardforks", + "alloy-op-hardforks 0.3.0", "alloy-primitives", "once_cell", "reth-ethereum-forks 1.6.0", @@ -10921,7 +11182,7 @@ dependencies = [ [[package]] name = "reth-optimism-node" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -10929,9 +11190,9 @@ dependencies = [ "alloy-rpc-types-eth", "clap", "eyre", - "op-alloy-consensus", - "op-alloy-rpc-types-engine", - "op-revm 8.0.3", + "op-alloy-consensus 0.19.1", + "op-alloy-rpc-types-engine 0.19.1", + "op-revm 10.0.0", "reth-chainspec 1.6.0", "reth-consensus 1.6.0", "reth-engine-local", @@ -10958,9 +11219,10 @@ dependencies = [ "reth-tracing", "reth-transaction-pool 1.6.0", "reth-trie-common 1.6.0", - "reth-trie-db", - "revm 27.0.3", + "revm 29.0.0", "serde", + "tokio", + "url", ] [[package]] @@ -10975,8 +11237,8 @@ dependencies = [ "alloy-rpc-types-debug", "alloy-rpc-types-engine", "derive_more", - "op-alloy-consensus", - "op-alloy-rpc-types-engine", + "op-alloy-consensus 0.18.14", + "op-alloy-rpc-types-engine 0.18.14", "reth-basic-payload-builder 1.5.0", "reth-chain-state 1.5.0", "reth-chainspec 1.5.0", @@ -10998,14 +11260,14 @@ dependencies = [ "revm 26.0.1", "serde", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-optimism-payload-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11014,8 +11276,8 @@ dependencies = [ "alloy-rpc-types-debug", "alloy-rpc-types-engine", "derive_more", - "op-alloy-consensus", - "op-alloy-rpc-types-engine", + "op-alloy-consensus 0.19.1", + "op-alloy-rpc-types-engine 0.19.1", "reth-basic-payload-builder 1.6.0", "reth-chain-state 1.6.0", "reth-chainspec 1.6.0", @@ -11034,10 +11296,10 @@ dependencies = [ "reth-revm 1.6.0", "reth-storage-api 1.6.0", "reth-transaction-pool 1.6.0", - "revm 27.0.3", + "revm 29.0.0", "serde", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] @@ -11050,14 +11312,14 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "reth-primitives-traits 1.5.0", ] [[package]] name = "reth-optimism-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11066,7 +11328,7 @@ dependencies = [ "arbitrary", "bytes", "modular-bitfield", - "op-alloy-consensus", + "op-alloy-consensus 0.19.1", "reth-codecs 1.6.0", "reth-primitives-traits 1.6.0", "reth-zstd-compressors 1.6.0", @@ -11077,7 +11339,7 @@ dependencies = [ [[package]] name = "reth-optimism-rpc" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11092,16 +11354,16 @@ dependencies = [ "async-trait", "derive_more", "eyre", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics 0.24.2", - "op-alloy-consensus", + "op-alloy-consensus 0.19.1", "op-alloy-network", "op-alloy-rpc-jsonrpsee", - "op-alloy-rpc-types", - "op-alloy-rpc-types-engine", - "op-revm 8.0.3", + "op-alloy-rpc-types 0.19.1", + "op-alloy-rpc-types-engine 0.19.1", + "op-revm 10.0.0", "reqwest", "reth-chainspec 1.6.0", "reth-evm 1.6.0", @@ -11109,6 +11371,7 @@ dependencies = [ "reth-node-api", "reth-node-builder", "reth-optimism-evm 1.6.0", + "reth-optimism-flashblocks", "reth-optimism-forks 1.6.0", "reth-optimism-payload-builder 1.6.0", "reth-optimism-primitives 1.6.0", @@ -11123,9 +11386,9 @@ dependencies = [ "reth-storage-api 1.6.0", "reth-tasks 1.6.0", "reth-transaction-pool 1.6.0", - "revm 27.0.3", + "revm 29.0.0", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tower 0.5.2", "tracing", @@ -11134,7 +11397,7 @@ dependencies = [ [[package]] name = "reth-optimism-storage" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -11163,9 +11426,9 @@ dependencies = [ "derive_more", "futures-util", "metrics 0.24.2", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "op-alloy-flz", - "op-alloy-rpc-types", + "op-alloy-rpc-types 0.18.14", "op-revm 7.0.1", "parking_lot", "reth-chain-state 1.5.0", @@ -11178,7 +11441,7 @@ dependencies = [ "reth-storage-api 1.5.0", "reth-transaction-pool 1.5.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11186,7 +11449,7 @@ dependencies = [ [[package]] name = "reth-optimism-txpool" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11199,10 +11462,10 @@ dependencies = [ "derive_more", "futures-util", "metrics 0.24.2", - "op-alloy-consensus", + "op-alloy-consensus 0.19.1", "op-alloy-flz", - "op-alloy-rpc-types", - "op-revm 8.0.3", + "op-alloy-rpc-types 0.19.1", + "op-revm 10.0.0", "parking_lot", "reth-chain-state 1.6.0", "reth-chainspec 1.6.0", @@ -11214,7 +11477,7 @@ dependencies = [ "reth-storage-api 1.6.0", "reth-transaction-pool 1.6.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11242,7 +11505,7 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-rpc-types", @@ -11274,7 +11537,7 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "pin-project", "reth-payload-primitives 1.6.0", @@ -11292,32 +11555,32 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", - "op-alloy-rpc-types-engine", + "op-alloy-rpc-types-engine 0.18.14", "reth-chain-state 1.5.0", "reth-chainspec 1.5.0", "reth-errors 1.5.0", "reth-primitives-traits 1.5.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", ] [[package]] name = "reth-payload-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", - "op-alloy-rpc-types-engine", + "op-alloy-rpc-types-engine 0.19.1", "reth-chain-state 1.6.0", "reth-chainspec 1.6.0", "reth-errors 1.6.0", "reth-primitives-traits 1.6.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", ] @@ -11334,7 +11597,7 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -11354,7 +11617,7 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -11364,10 +11627,9 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", - "arbitrary", "c-kzg", "once_cell", "reth-ethereum-forks 1.6.0", @@ -11392,7 +11654,7 @@ dependencies = [ "bytes", "derive_more", "once_cell", - "op-alloy-consensus", + "op-alloy-consensus 0.18.14", "reth-codecs 1.5.0", "revm-bytecode 5.0.0", "revm-primitives", @@ -11400,13 +11662,13 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-primitives-traits" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11422,24 +11684,24 @@ dependencies = [ "derive_more", "modular-bitfield", "once_cell", - "op-alloy-consensus", + "op-alloy-consensus 0.19.1", "proptest", "proptest-arbitrary-interop", "rayon", "reth-codecs 1.6.0", - "revm-bytecode 6.0.1", + "revm-bytecode 6.2.2", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-provider" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11474,9 +11736,9 @@ dependencies = [ "reth-storage-errors 1.6.0", "reth-trie 1.6.0", "reth-trie-db", - "revm-database 7.0.1", - "revm-state 7.0.1", - "strum 0.27.1", + "revm-database 7.0.5", + "revm-state 7.0.5", + "strum 0.27.2", "tokio", "tracing", ] @@ -11484,7 +11746,7 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11504,7 +11766,7 @@ dependencies = [ "reth-static-file-types 1.6.0", "reth-tokio-util", "rustc-hash 2.1.1", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11516,13 +11778,13 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e77 dependencies = [ "alloy-primitives", "derive_more", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-prune-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "arbitrary", @@ -11530,13 +11792,13 @@ dependencies = [ "modular-bitfield", "reth-codecs 1.6.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-ress-protocol" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -11555,7 +11817,7 @@ dependencies = [ [[package]] name = "reth-ress-provider" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -11595,29 +11857,30 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "reth-primitives-traits 1.6.0", "reth-storage-api 1.6.0", "reth-storage-errors 1.6.0", "reth-trie 1.6.0", - "revm 27.0.3", + "revm 29.0.0", ] [[package]] name = "reth-rpc" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-genesis", "alloy-network", "alloy-primitives", "alloy-rlp", + "alloy-rpc-client", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", @@ -11635,15 +11898,17 @@ dependencies = [ "futures", "http 1.3.1", "http-body 1.0.1", - "hyper 1.6.0", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 1.7.0", + "itertools 0.14.0", + "jsonrpsee 0.26.0", + "jsonrpsee-types 0.26.0", "jsonwebtoken", "parking_lot", "pin-project", "reth-chain-state 1.6.0", "reth-chainspec 1.6.0", "reth-consensus 1.6.0", + "reth-consensus-common 1.6.0", "reth-engine-primitives 1.6.0", "reth-errors 1.6.0", "reth-evm 1.6.0", @@ -11666,13 +11931,13 @@ dependencies = [ "reth-tasks 1.6.0", "reth-transaction-pool 1.6.0", "reth-trie-common 1.6.0", - "revm 27.0.3", + "revm 29.0.0", "revm-inspectors", "revm-primitives", "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower 0.5.2", @@ -11683,7 +11948,7 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-genesis", @@ -11700,7 +11965,7 @@ dependencies = [ "alloy-rpc-types-trace", "alloy-rpc-types-txpool", "alloy-serde", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "reth-chain-state 1.6.0", "reth-engine-primitives 1.6.0", "reth-network-peers 1.6.0", @@ -11711,12 +11976,12 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-network", "alloy-provider", "http 1.3.1", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "metrics 0.24.2", "pin-project", "reth-chain-state 1.6.0", @@ -11738,7 +12003,7 @@ dependencies = [ "reth-tasks 1.6.0", "reth-transaction-pool 1.6.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-util", "tower 0.5.2", @@ -11749,7 +12014,7 @@ dependencies = [ [[package]] name = "reth-rpc-convert" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-json-rpc", @@ -11757,31 +12022,31 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", "alloy-signer", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "op-alloy-consensus", + "jsonrpsee-types 0.26.0", + "op-alloy-consensus 0.19.1", "op-alloy-network", - "op-alloy-rpc-types", - "op-revm 8.0.3", + "op-alloy-rpc-types 0.19.1", + "op-revm 10.0.0", "reth-ethereum-primitives 1.6.0", "reth-evm 1.6.0", "reth-optimism-primitives 1.6.0", "reth-primitives-traits 1.6.0", "reth-storage-api 1.6.0", - "revm-context 8.0.3", - "thiserror 2.0.12", + "revm-context 9.0.2", + "thiserror 2.0.16", ] [[package]] name = "reth-rpc-engine-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", "async-trait", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics 0.24.2", "parking_lot", "reth-chainspec 1.6.0", @@ -11796,7 +12061,7 @@ dependencies = [ "reth-tasks 1.6.0", "reth-transaction-pool 1.6.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11804,12 +12069,12 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-json-rpc", "alloy-network", "alloy-primitives", @@ -11821,8 +12086,8 @@ dependencies = [ "auto_impl", "dyn-clone", "futures", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", + "jsonrpsee-types 0.26.0", "parking_lot", "reth-chain-state 1.6.0", "reth-chainspec 1.6.0", @@ -11839,7 +12104,7 @@ dependencies = [ "reth-tasks 1.6.0", "reth-transaction-pool 1.6.0", "reth-trie-common 1.6.0", - "revm 27.0.3", + "revm 29.0.0", "revm-inspectors", "tokio", "tracing", @@ -11848,22 +12113,25 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.15.0", + "alloy-evm 0.20.1", "alloy-network", "alloy-primitives", + "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-sol-types", + "alloy-transport", "derive_more", "futures", "itertools 0.14.0", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics 0.24.2", - "rand 0.9.1", + "rand 0.9.2", + "reqwest", "reth-chain-state 1.6.0", "reth-chainspec 1.6.0", "reth-errors 1.6.0", @@ -11879,11 +12147,11 @@ dependencies = [ "reth-tasks 1.6.0", "reth-transaction-pool 1.6.0", "reth-trie 1.6.0", - "revm 27.0.3", + "revm 29.0.0", "revm-inspectors", "schnellru", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -11892,11 +12160,11 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-rpc-types-engine", "http 1.3.1", - "jsonrpsee-http-client 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-http-client 0.26.0", "pin-project", "tower 0.5.2", "tower-http", @@ -11906,29 +12174,28 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "reth-errors 1.6.0", "reth-network-api", "serde", - "strum 0.27.1", + "strum 0.27.2", ] [[package]] name = "reth-stages" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "bincode", - "blake3", "eyre", "futures-util", "itertools 0.14.0", @@ -11959,8 +12226,7 @@ dependencies = [ "reth-storage-errors 1.6.0", "reth-trie 1.6.0", "reth-trie-db", - "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11968,7 +12234,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", @@ -11987,7 +12253,7 @@ dependencies = [ "reth-static-file", "reth-static-file-types 1.6.0", "reth-tokio-util", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -12004,7 +12270,7 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "arbitrary", @@ -12018,7 +12284,7 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "parking_lot", @@ -12043,19 +12309,19 @@ dependencies = [ "alloy-primitives", "derive_more", "serde", - "strum 0.27.1", + "strum 0.27.2", ] [[package]] name = "reth-static-file-types" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "clap", "derive_more", "serde", - "strum 0.27.1", + "strum 0.27.2", ] [[package]] @@ -12083,7 +12349,7 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -12100,8 +12366,7 @@ dependencies = [ "reth-stages-types 1.6.0", "reth-storage-errors 1.6.0", "reth-trie-common 1.6.0", - "reth-trie-db", - "revm-database 7.0.1", + "revm-database 7.0.5", ] [[package]] @@ -12117,13 +12382,13 @@ dependencies = [ "reth-prune-types 1.5.0", "reth-static-file-types 1.5.0", "revm-database-interface 6.0.0", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "reth-storage-errors" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-eips", "alloy-primitives", @@ -12132,8 +12397,8 @@ dependencies = [ "reth-primitives-traits 1.6.0", "reth-prune-types 1.6.0", "reth-static-file-types 1.6.0", - "revm-database-interface 7.0.1", - "thiserror 2.0.12", + "revm-database-interface 7.0.5", + "thiserror 2.0.16", ] [[package]] @@ -12146,7 +12411,7 @@ dependencies = [ "futures-util", "metrics 0.24.2", "reth-metrics 1.5.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", "tracing-futures", @@ -12155,7 +12420,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "auto_impl", "dyn-clone", @@ -12164,7 +12429,7 @@ dependencies = [ "pin-project", "rayon", "reth-metrics 1.6.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", "tracing-futures", @@ -12173,7 +12438,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "tokio", "tokio-stream", @@ -12183,7 +12448,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "clap", "eyre", @@ -12206,7 +12471,7 @@ dependencies = [ "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.1", + "bitflags 2.9.3", "futures-util", "metrics 0.24.2", "parking_lot", @@ -12225,7 +12490,7 @@ dependencies = [ "rustc-hash 2.1.1", "schnellru", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -12234,7 +12499,7 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -12242,12 +12507,13 @@ dependencies = [ "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.1", + "bitflags 2.9.3", "futures-util", "metrics 0.24.2", "parking_lot", "paste", - "rand 0.9.1", + "pin-project", + "rand 0.9.2", "reth-chain-state 1.6.0", "reth-chainspec 1.6.0", "reth-eth-wire-types 1.6.0", @@ -12258,13 +12524,14 @@ dependencies = [ "reth-primitives-traits 1.6.0", "reth-storage-api 1.6.0", "reth-tasks 1.6.0", - "revm-interpreter 23.0.2", + "revm-interpreter 25.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", @@ -12295,7 +12562,7 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -12312,7 +12579,7 @@ dependencies = [ "reth-storage-errors 1.6.0", "reth-trie-common 1.6.0", "reth-trie-sparse 1.6.0", - "revm-database 7.0.1", + "revm-database 7.0.5", "tracing", "triehash", ] @@ -12337,7 +12604,7 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -12355,7 +12622,7 @@ dependencies = [ "rayon", "reth-codecs 1.6.0", "reth-primitives-traits 1.6.0", - "revm-database 7.0.1", + "revm-database 7.0.5", "serde", "serde_with", ] @@ -12363,7 +12630,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "reth-db-api", @@ -12376,7 +12643,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -12393,7 +12660,7 @@ dependencies = [ "reth-trie-common 1.6.0", "reth-trie-db", "reth-trie-sparse 1.6.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -12417,13 +12684,14 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie", "auto_impl", "metrics 0.24.2", + "rayon", "reth-execution-errors 1.6.0", "reth-metrics 1.6.0", "reth-primitives-traits 1.6.0", @@ -12435,13 +12703,15 @@ dependencies = [ [[package]] name = "reth-trie-sparse-parallel" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie", + "metrics 0.24.2", "rayon", "reth-execution-errors 1.6.0", + "reth-metrics 1.6.0", "reth-trie-common 1.6.0", "reth-trie-sparse 1.6.0", "smallvec", @@ -12459,7 +12729,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "zstd", ] @@ -12485,21 +12755,40 @@ dependencies = [ [[package]] name = "revm" -version = "27.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a84455f03d3480d4ed2e7271c15f2ec95b758e86d57cb8d258a8ff1c22e9a4" -dependencies = [ - "revm-bytecode 6.0.1", - "revm-context 8.0.3", - "revm-context-interface 8.0.1", - "revm-database 7.0.1", - "revm-database-interface 7.0.1", - "revm-handler 8.0.3", - "revm-inspector 8.0.3", - "revm-interpreter 23.0.2", - "revm-precompile 24.0.1", +version = "27.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6bf82101a1ad8a2b637363a37aef27f88b4efc8a6e24c72bf5f64923dc5532" +dependencies = [ + "revm-bytecode 6.2.2", + "revm-context 8.0.4", + "revm-context-interface 9.0.0", + "revm-database 7.0.5", + "revm-database-interface 7.0.5", + "revm-handler 8.1.0", + "revm-inspector 8.1.0", + "revm-interpreter 24.0.0", + "revm-precompile 25.0.0", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", +] + +[[package]] +name = "revm" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c278b6ee9bba9e25043e3fae648fdce632d1944d3ba16f5203069b43bddd57f" +dependencies = [ + "revm-bytecode 6.2.2", + "revm-context 9.0.2", + "revm-context-interface 10.1.0", + "revm-database 7.0.5", + "revm-database-interface 7.0.5", + "revm-handler 10.0.0", + "revm-inspector 10.0.0", + "revm-interpreter 25.0.2", + "revm-precompile 27.0.0", + "revm-primitives", + "revm-state 7.0.5", ] [[package]] @@ -12517,12 +12806,11 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "6.0.1" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a685758a4f375ae9392b571014b9779cfa63f0d8eb91afb4626ddd958b23615" +checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" dependencies = [ "bitvec", - "once_cell", "phf", "revm-primitives", "serde", @@ -12546,17 +12834,34 @@ dependencies = [ [[package]] name = "revm-context" -version = "8.0.3" +version = "8.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990abf66b47895ca3e915d5f3652bb7c6a4cff6e5351fdf0fc2795171fd411c" +checksum = "9cd508416a35a4d8a9feaf5ccd06ac6d6661cd31ee2dc0252f9f7316455d71f9" dependencies = [ "cfg-if", "derive-where", - "revm-bytecode 6.0.1", - "revm-context-interface 8.0.1", - "revm-database-interface 7.0.1", + "revm-bytecode 6.2.2", + "revm-context-interface 9.0.0", + "revm-database-interface 7.0.5", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", + "serde", +] + +[[package]] +name = "revm-context" +version = "9.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fb02c5dab3b535aa5b18277b1d21c5117a25d42af717e6ce133df0ea56663e1" +dependencies = [ + "bitvec", + "cfg-if", + "derive-where", + "revm-bytecode 6.2.2", + "revm-context-interface 10.1.0", + "revm-database-interface 7.0.5", + "revm-primitives", + "revm-state 7.0.5", "serde", ] @@ -12578,17 +12883,33 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "8.0.1" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a303a93102fceccec628265efd550ce49f2817b38ac3a492c53f7d524f18a1ca" +checksum = "dc90302642d21c8f93e0876e201f3c5f7913c4fcb66fb465b0fd7b707dfe1c79" dependencies = [ "alloy-eip2930", "alloy-eip7702", "auto_impl", "either", - "revm-database-interface 7.0.1", + "revm-database-interface 7.0.5", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", + "serde", +] + +[[package]] +name = "revm-context-interface" +version = "10.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b8e9311d27cf75fbf819e7ba4ca05abee1ae02e44ff6a17301c7ab41091b259" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "either", + "revm-database-interface 7.0.5", + "revm-primitives", + "revm-state 7.0.5", "serde", ] @@ -12608,15 +12929,15 @@ dependencies = [ [[package]] name = "revm-database" -version = "7.0.1" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db360729b61cc347f9c2f12adb9b5e14413aea58778cf9a3b7676c6a4afa115" +checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" dependencies = [ "alloy-eips", - "revm-bytecode 6.0.1", - "revm-database-interface 7.0.1", + "revm-bytecode 6.2.2", + "revm-database-interface 7.0.5", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", "serde", ] @@ -12634,14 +12955,14 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "7.0.1" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8500194cad0b9b1f0567d72370795fd1a5e0de9ec719b1607fa1566a23f039a" +checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" dependencies = [ "auto_impl", "either", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", "serde", ] @@ -12666,20 +12987,39 @@ dependencies = [ [[package]] name = "revm-handler" -version = "8.0.3" +version = "8.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1529c8050e663be64010e80ec92bf480315d21b1f2dbf65540028653a621b27d" +dependencies = [ + "auto_impl", + "derive-where", + "revm-bytecode 6.2.2", + "revm-context 8.0.4", + "revm-context-interface 9.0.0", + "revm-database-interface 7.0.5", + "revm-interpreter 24.0.0", + "revm-precompile 25.0.0", + "revm-primitives", + "revm-state 7.0.5", + "serde", +] + +[[package]] +name = "revm-handler" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c35a17a38203976f97109e20eccf6732447ce6c9c42973bae42732b2e957ff" +checksum = "528d2d81cc918d311b8231c35330fac5fba8b69766ddc538833e2b5593ee016e" dependencies = [ "auto_impl", "derive-where", - "revm-bytecode 6.0.1", - "revm-context 8.0.3", - "revm-context-interface 8.0.1", - "revm-database-interface 7.0.1", - "revm-interpreter 23.0.2", - "revm-precompile 24.0.1", + "revm-bytecode 6.2.2", + "revm-context 9.0.2", + "revm-context-interface 10.1.0", + "revm-database-interface 7.0.5", + "revm-interpreter 25.0.2", + "revm-precompile 27.0.0", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", "serde", ] @@ -12703,27 +13043,45 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "8.0.3" +version = "8.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e69abf6a076741bd5cd87b7d6c1b48be2821acc58932f284572323e81a8d4179" +checksum = "f78db140e332489094ef314eaeb0bd1849d6d01172c113ab0eb6ea8ab9372926" dependencies = [ "auto_impl", "either", - "revm-context 8.0.3", - "revm-database-interface 7.0.1", - "revm-handler 8.0.3", - "revm-interpreter 23.0.2", + "revm-context 8.0.4", + "revm-database-interface 7.0.5", + "revm-handler 8.1.0", + "revm-interpreter 24.0.0", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", + "serde", + "serde_json", +] + +[[package]] +name = "revm-inspector" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf443b664075999a14916b50c5ae9e35a7d71186873b8f8302943d50a672e5e0" +dependencies = [ + "auto_impl", + "either", + "revm-context 9.0.2", + "revm-database-interface 7.0.5", + "revm-handler 10.0.0", + "revm-interpreter 25.0.2", + "revm-primitives", + "revm-state 7.0.5", "serde", "serde_json", ] [[package]] name = "revm-inspectors" -version = "0.27.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aad27cab355b0aa905d0744f3222e716b40ad48b32276ac4b0a615f2c3364c97" +checksum = "2b5c15d9c33ae98988a2a6a8db85b6a9e3389d1f3f2fdb95628a992f2b65b2c1" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -12733,10 +13091,10 @@ dependencies = [ "boa_engine", "boa_gc", "colorchoice", - "revm 27.0.3", + "revm 29.0.0", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -12753,12 +13111,24 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "23.0.2" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95c4a9a1662d10b689b66b536ddc2eb1e89f5debfcabc1a2d7b8417a2fa47cd" +checksum = "ff9d7d9d71e8a33740b277b602165b6e3d25fff091ba3d7b5a8d373bf55f28a7" dependencies = [ - "revm-bytecode 6.0.1", - "revm-context-interface 8.0.1", + "revm-bytecode 6.2.2", + "revm-context-interface 9.0.0", + "revm-primitives", + "serde", +] + +[[package]] +name = "revm-interpreter" +version = "25.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d6406b711fac73b4f13120f359ed8e65964380dd6182bd12c4c09ad0d4641f" +dependencies = [ + "revm-bytecode 6.2.2", + "revm-context-interface 10.1.0", "revm-primitives", "serde", ] @@ -12790,9 +13160,9 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "24.0.1" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68d54a4733ac36bd29ee645c3c2e5e782fb63f199088d49e2c48c64a9fedc15" +checksum = "4cee3f336b83621294b4cfe84d817e3eef6f3d0fce00951973364cc7f860424d" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -12801,7 +13171,6 @@ dependencies = [ "ark-serialize 0.5.0", "arrayref", "aurora-engine-modexp", - "blst", "c-kzg", "cfg-if", "k256", @@ -12815,14 +13184,41 @@ dependencies = [ "sha2 0.10.9", ] +[[package]] +name = "revm-precompile" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b57d4bd9e6b5fe469da5452a8a137bc2d030a3cd47c46908efc615bbc699da" +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", + "p256 0.13.2", + "revm-primitives", + "ripemd", + "rug", + "secp256k1 0.31.1", + "sha2 0.10.9", +] + [[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", ] @@ -12832,7 +13228,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d6274928dd78f907103740b10800d3c0db6caeca391e75a159c168a1e5c78f8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "revm-bytecode 5.0.0", "revm-primitives", "serde", @@ -12840,12 +13236,12 @@ dependencies = [ [[package]] name = "revm-state" -version = "7.0.1" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106fec5c634420118c7d07a6c37110186ae7f23025ceac3a5dbe182eea548363" +checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ - "bitflags 2.9.1", - "revm-bytecode 6.0.1", + "bitflags 2.9.3", + "revm-bytecode 6.2.2", "revm-primitives", "serde", ] @@ -12975,28 +13371,28 @@ dependencies = [ "futures", "http 1.3.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-util", - "jsonrpsee 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee 0.25.1", "metrics 0.24.2", "metrics-derive", "metrics-exporter-prometheus", "metrics-util 0.19.1", "moka", - "op-alloy-rpc-types-engine", + "op-alloy-rpc-types-engine 0.18.14", "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", "parking_lot", "paste", "reth-optimism-payload-builder 1.5.0", - "rustls 0.23.28", + "rustls 0.23.31", "serde", "serde_json", "sha2 0.10.9", "testcontainers", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-tungstenite", "tokio-util", @@ -13018,9 +13414,9 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "rug" -version = "1.27.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4207e8d668e5b8eb574bda8322088ccd0d7782d3d03c7e8d562e82ed82bdcbc3" +checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" dependencies = [ "az", "gmp-mpfr-sys", @@ -13030,9 +13426,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", @@ -13048,7 +13444,7 @@ dependencies = [ "primitive-types", "proptest", "rand 0.8.5", - "rand 0.9.1", + "rand 0.9.2", "rlp", "ruint-macro", "serde", @@ -13074,9 +13470,9 @@ dependencies = [ [[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" @@ -13123,24 +13519,24 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[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.3", "errno", "libc", "linux-raw-sys 0.9.4", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -13157,16 +13553,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", ] @@ -13192,7 +13588,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.2.0", + "security-framework 3.3.0", ] [[package]] @@ -13234,14 +13630,14 @@ 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.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -13262,9 +13658,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", @@ -13274,9 +13670,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" @@ -13322,9 +13718,9 @@ dependencies = [ [[package]] name = "scc" -version = "2.3.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22b2d775fb28f245817589471dd49c5edf64237f4a19d10ce9a92ff4651a27f4" +checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" dependencies = [ "sdd", ] @@ -13352,9 +13748,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", @@ -13409,9 +13805,9 @@ dependencies = [ [[package]] name = "sdd" -version = "3.0.8" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "584e070911c7017da6cb2eb0788d09f43d789029b5877d3e5ecc8acf86ceee21" +checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" [[package]] name = "sec1" @@ -13461,7 +13857,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", ] @@ -13498,7 +13894,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.3", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -13507,11 +13903,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.3", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -13580,7 +13976,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "reth", "serde", "serde_json", @@ -13611,16 +14007,16 @@ 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", + "indexmap 2.11.0", "itoa", "memchr", "ryu", @@ -13635,7 +14031,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13647,6 +14043,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -13669,9 +14074,9 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.10.0", + "indexmap 2.11.0", "schemars 0.9.0", - "schemars 1.0.3", + "schemars 1.0.4", "serde", "serde_derive", "serde_json", @@ -13688,7 +14093,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13723,7 +14128,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13828,9 +14233,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", ] @@ -13864,7 +14269,7 @@ checksum = "ab0381d1913eeaf4c7bc4094016c9a8de6c1120663afe32a90ff268ad7f80486" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13875,7 +14280,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.12", + "thiserror 2.0.16", "time", ] @@ -13908,9 +14313,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" @@ -13938,6 +14343,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" @@ -14007,7 +14422,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -14018,7 +14433,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -14032,11 +14447,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]] @@ -14049,20 +14464,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]] @@ -14084,9 +14498,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", @@ -14095,14 +14509,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a985ff4ffd7373e10e0fb048110fb11a162e5a4c47f92ddb8787a6f766b769" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -14122,7 +14536,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -14135,7 +14549,7 @@ dependencies = [ "libc", "memchr", "ntapi", - "windows 0.54.0", + "windows 0.57.0", ] [[package]] @@ -14144,7 +14558,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -14184,13 +14598,12 @@ dependencies = [ [[package]] name = "tar-no-std" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15574aa79d3c04a12f3cb53ff976d5571e53b9d8e0bdbe4021df0a06473dd1c9" +checksum = "ac9ee8b664c9f1740cd813fea422116f8ba29997bb7c878d1940424889802897" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "log", - "memchr", "num-traits", ] @@ -14236,25 +14649,25 @@ 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.52.0", + "rustix 1.0.8", + "windows-sys 0.60.2", ] [[package]] name = "terminal_size" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" +checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" dependencies = [ - "rustix 1.0.7", - "windows-sys 0.59.0", + "rustix 1.0.8", + "windows-sys 0.60.2", ] [[package]] @@ -14278,7 +14691,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-tar", @@ -14307,13 +14720,13 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "matching-engine", "order-pool", "pade", "parking_lot", "pool-manager", - "rand 0.9.1", + "rand 0.9.2", "rand_chacha 0.3.1", "rand_distr", "rayon", @@ -14332,7 +14745,7 @@ dependencies = [ "reth-revm 1.6.0", "reth-tasks 1.6.0", "reth-transaction-pool 1.6.0", - "revm 27.0.3", + "revm 27.1.0", "secp256k1 0.30.0", "telemetry", "telemetry-recorder", @@ -14363,7 +14776,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee 0.26.0", "pade", "reth", "reth-network-peers 1.6.0", @@ -14375,7 +14788,7 @@ dependencies = [ "testing-tools", "tikv-jemallocator", "tokio", - "toml", + "toml 0.9.5", "tracing", "tracing-subscriber 0.3.19", "validation", @@ -14398,11 +14811,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]] @@ -14413,18 +14826,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]] @@ -14536,7 +14949,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", - "zerovec 0.11.2", + "zerovec 0.11.4", ] [[package]] @@ -14551,9 +14964,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -14566,21 +14979,23 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "slab", + "socket2 0.6.0", "tokio-macros", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -14591,7 +15006,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -14620,7 +15035,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", ] @@ -14660,7 +15075,7 @@ dependencies = [ "futures-util", "log", "native-tls", - "rustls 0.23.28", + "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", @@ -14672,9 +15087,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", @@ -14692,11 +15107,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "toml_edit", ] +[[package]] +name = "toml" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" +dependencies = [ + "indexmap 2.11.0", + "serde", + "serde_spanned 1.0.0", + "toml_datetime 0.7.0", + "toml_parser", + "toml_writer", + "winnow", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -14706,26 +15136,50 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +dependencies = [ + "serde", +] + [[package]] name = "toml_edit" version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.0", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "toml_write", "winnow", ] +[[package]] +name = "toml_parser" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +dependencies = [ + "winnow", +] + [[package]] name = "toml_write" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" + [[package]] name = "tonic" version = "0.12.3" @@ -14737,17 +15191,17 @@ dependencies = [ "axum", "base64 0.22.1", "bytes", - "h2 0.4.11", + "h2 0.4.12", "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-timeout", "hyper-util", "percent-encoding", "pin-project", "prost", - "socket2", + "socket2 0.5.10", "tokio", "tokio-stream", "tower 0.4.13", @@ -14785,7 +15239,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.10.0", + "indexmap 2.11.0", "pin-project-lite", "slab", "sync_wrapper", @@ -14804,7 +15258,7 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.9.1", + "bitflags 2.9.3", "bytes", "futures-core", "futures-util", @@ -14824,7 +15278,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "uuid 1.17.0", + "uuid 1.18.0", ] [[package]] @@ -14871,7 +15325,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -15008,7 +15462,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -15059,11 +15513,11 @@ dependencies = [ "httparse", "log", "native-tls", - "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", ] @@ -15176,16 +15630,16 @@ dependencies = [ "malachite", "pade", "pade-macro", - "rand 0.9.1", + "rand 0.9.2", "rayon", "reth-node-builder", "reth-primitives", "reth-provider", - "revm 27.0.3", - "revm-bytecode 6.0.1", - "revm-database 7.0.1", + "revm 27.1.0", + "revm-bytecode 6.2.2", + "revm-database 7.0.5", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", "serde", "telemetry-recorder", "testing-tools", @@ -15205,7 +15659,7 @@ source = "git+https://github.com/SorellaLabs/v3-math?branch=main#9143e52de0be2e0 dependencies = [ "alloy-primitives", "eyre", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -15232,9 +15686,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -15284,9 +15738,9 @@ dependencies = [ [[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", @@ -15310,8 +15764,8 @@ dependencies = [ "pade", "parking_lot", "proptest", - "proptest-derive", - "rand 0.9.1", + "proptest-derive 0.6.0", + "rand 0.9.2", "reth-discv4", "reth-metrics 1.6.0", "reth-network", @@ -15320,11 +15774,11 @@ dependencies = [ "reth-revm 1.6.0", "reth-tracing", "reth-transaction-pool 1.6.0", - "revm 27.0.3", - "revm-bytecode 6.0.1", - "revm-database 7.0.1", + "revm 27.1.0", + "revm-bytecode 6.2.2", + "revm-database 7.0.5", "revm-primitives", - "revm-state 7.0.1", + "revm-state 7.0.5", "secp256k1 0.30.0", "serde", "serde_json", @@ -15405,7 +15859,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -15450,11 +15904,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.3+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] @@ -15479,7 +15933,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-shared", ] @@ -15514,7 +15968,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -15581,14 +16035,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", ] @@ -15599,14 +16053,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", ] @@ -15647,11 +16101,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.48.0", + "windows-sys 0.60.2", ] [[package]] @@ -15670,6 +16124,16 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows" version = "0.58.0" @@ -15712,6 +16176,18 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.58.0" @@ -15749,6 +16225,17 @@ dependencies = [ "windows-threading", ] +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "windows-implement" version = "0.58.0" @@ -15757,7 +16244,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -15768,7 +16255,18 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] @@ -15779,7 +16277,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -15790,7 +16288,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -15908,7 +16406,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]] @@ -15959,10 +16457,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", @@ -16164,9 +16663,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.11" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -16182,13 +16681,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.1", -] +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" [[package]] name = "write16" @@ -16221,7 +16717,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", @@ -16243,7 +16739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "rustix 1.0.7", + "rustix 1.0.8", ] [[package]] @@ -16290,7 +16786,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -16302,7 +16798,7 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -16313,7 +16809,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "467a4c054be41ff657a6823246b0194cd727fadc3c539b265d7bc125ac6d4884" dependencies = [ "aes", - "bitflags 2.9.1", + "bitflags 2.9.3", "cbc", "cmac", "ecdsa 0.16.9", @@ -16333,7 +16829,7 @@ dependencies = [ "subtle", "thiserror 1.0.69", "time", - "uuid 1.17.0", + "uuid 1.18.0", "zeroize", ] @@ -16354,7 +16850,7 @@ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -16374,7 +16870,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -16395,7 +16891,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -16422,9 +16918,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", @@ -16439,7 +16935,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -16450,7 +16946,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 3dc4ac38a..827da19e8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,38 +15,39 @@ homepage = "https://github.com/SorellaLabs/angstrom" repository = "https://github.com/SorellaLabs/angstrom" exclude = [".github/"] -# Speed up tests and rust-analyzer. +# Speed up tests. [profile.dev.package] -angstrom-network.opt-level = 3 -consensus.opt-level = 3 -matching-engine.opt-level = 3 -validation.opt-level = 3 -testing-tools.opt-level = 3 -angstrom-types.opt-level = 3 -tokio.opt-level = 3 -serde.opt-level = 3 -alloy.opt-level = 3 -alloy-primitives.opt-level = 3 -reth.opt-level = 3 -reth-primitives.opt-level = 3 +angstrom-network.opt-level = 2 +consensus.opt-level = 2 +matching-engine.opt-level = 2 +validation.opt-level = 2 +testing-tools.opt-level = 2 +angstrom-types.opt-level = 2 +tokio.opt-level = 2 [profile.debug-fast] inherits = "dev" lto = false -opt-level = 3 -codegen-units = 15 -incremental = true -split-debuginfo = "unpacked" +opt-level = 0 +codegen-units = 16 + +[profile.ci] +inherits = "dev" +lto = false +opt-level = 0 +debug = 0 +incremental = false +codegen-units = 256 [profile.release] lto = "fat" opt-level = 3 -codegen-units = 15 +codegen-units = 16 [profile.maxperf] inherits = "release" lto = "fat" -codegen-units = 1 +codegen-units = 3 incremental = false [workspace.dependencies] @@ -75,7 +76,7 @@ alloy-genesis = { version = "1.0.23", default-features = false } alloy-json-rpc = { version = "1.0.23", default-features = false } alloy-network = { version = "1.0.23", default-features = false } alloy-node-bindings = { version = "1.0.23", default-features = false } -alloy-primitives = { version = "1.3.0", default-features = false, features = ["map-foldhash", "asm-keccak"] } +alloy-primitives = { version = "1.3.1", default-features = false, features = ["map-foldhash", "asm-keccak"] } alloy-provider = { version = "1.0.23", default-features = false, features = ["reqwest"] } alloy-pubsub = { version = "1.0.23", default-features = false } alloy-rlp = "0.3.10" @@ -138,10 +139,10 @@ hex-literal = "0" homedir = "0" hsm-signer = { git = "https://github.com/SorellaLabs/hsm-signer" } itertools = "0" -jsonrpsee = "0.25.1" -jsonrpsee-core = "0.25.1" -jsonrpsee-http-client = "0.25.1" -jsonrpsee-types = "0.25.1" +jsonrpsee = "0.26.0" +jsonrpsee-core = "0.26.0" +jsonrpsee-http-client = "0.26.0" +jsonrpsee-types = "0.26.0" k256 = { version = "0", default-features = false } linked_hash_set = "0" malachite = "0.4" @@ -165,41 +166,39 @@ quote = "1" rand = "0.9.0" rand_distr = "0.5.1" rayon = "1" -reth = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-codecs = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-db = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-discv4 = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-ecies = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-errors = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0", features = [ - "serde", -] } -reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-network = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-network-api = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-node-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-node-metrics = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-node-types = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0", default-features = false } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-rpc-types-compat = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-storage-api = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-tokio-util = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-tracing = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } +reth = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-cli-util = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-codecs = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-discv4 = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-ecies = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4", features = ["serde"] } +reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-network = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-network-api = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-node-builder = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-node-metrics = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-node-types = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4", default-features = false } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-rpc-types-compat = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-storage-api = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-tokio-util = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-tracing = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } revm = { version = "27.0.3", features = [ "std", "secp256k1", @@ -236,7 +235,7 @@ url = "2" validation = { path = "./crates/validation/" } # OP-stack support -reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } -reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } +reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } diff --git a/crates/angstrom-net/Cargo.toml b/crates/angstrom-net/Cargo.toml index a4ac774b3..23270b71a 100644 --- a/crates/angstrom-net/Cargo.toml +++ b/crates/angstrom-net/Cargo.toml @@ -31,9 +31,9 @@ parking_lot.workspace = true reth.workspace = true reth-eth-wire.workspace = true reth-metrics.workspace = true -reth-net-banlist = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } +reth-net-banlist = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } reth-network.workspace = true -reth-network-p2p = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } +reth-network-p2p = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } reth-network-peers.workspace = true reth-node-builder.workspace = true reth-primitives.workspace = true diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index cd30c6900..a4b5282a5 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -30,7 +30,7 @@ pool-manager.workspace = true rayon.workspace = true reth.workspace = true reth-db.workspace = true -reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.6.0" } +reth-exex = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } reth-metrics.workspace = true reth-network.workspace = true reth-node-builder.workspace = true diff --git a/crates/cli/src/components.rs b/crates/cli/src/components.rs index 4f7899bcf..3cda4d5d8 100644 --- a/crates/cli/src/components.rs +++ b/crates/cli/src/components.rs @@ -23,6 +23,7 @@ use angstrom_network::{NetworkBuilder as StromNetworkBuilder, StatusState, Verif use angstrom_types::{ block_sync::{BlockSyncProducer, GlobalBlockSync}, contract_payloads::angstrom::{AngstromPoolConfigStore, UniswapAngstromRegistry}, + flashblocks::{FlashblocksRx, FlashblocksStream}, pair_with_price::PairsWithPrice, primitive::{ ANGSTROM_ADDRESS, ANGSTROM_DEPLOYED_BLOCK, AngstromMetaSigner, AngstromSigner, @@ -33,7 +34,6 @@ use angstrom_types::{ submission::SubmissionHandler }; use consensus::{AngstromValidator, ConsensusHandler, ConsensusManager, ManagerNetworkDeps}; -use flashblocks::{FlashblocksSubscriber, PendingStateWriter}; use futures::Stream; use matching_engine::MatchingManager; use order_pool::{PoolConfig, order_storage::OrderStorage}; @@ -61,7 +61,6 @@ use reth_provider::{ use serde::Serialize; use telemetry::init_telemetry; use tokio::sync::mpsc::UnboundedReceiver; -use tokio_stream::wrappers::BroadcastStream; use uniswap_v4::{DEFAULT_TICKS, configure_uniswap_manager, fetch_angstrom_pools}; use url::Url; use validation::{common::TokenPriceGenerator, init_validation, validator::ValidationClient}; @@ -112,11 +111,10 @@ where handles: StromHandles, // Optional fields - consensus_client: Option, - network_builder: Option>, - node_set: Option>, - flashblocks_writer: Option>, - flashblocks_ws: Option + consensus_client: Option, + network_builder: Option>, + node_set: Option>, + flashblocks: Option } impl AngstromLauncher @@ -150,13 +148,12 @@ where network_builder: None, consensus_client: None, node_set: None, - flashblocks_writer: None, - flashblocks_ws: None + flashblocks: None } } - pub fn with_flashblocks(self, writer: PendingStateWriter, ws: Url) -> Self { - Self { flashblocks_writer: Some(writer), flashblocks_ws: Some(ws), ..self } + pub fn with_flashblocks(self, rx: FlashblocksRx) -> Self { + Self { flashblocks: Some(rx), ..self } } } @@ -313,11 +310,10 @@ where // Build our PoolManager using the PoolConfig and OrderStorage we've already // created - let eth_handle = EthDataCleanser::spawn( + let eth_handle = EthDataCleanser::<_, angstrom_eth::manager::ConsensusMode>::spawn( angstrom_address, controller, eth_data_sub, - None, executor.clone(), handles.eth_tx, handles.eth_rx, @@ -339,7 +335,8 @@ where let uniswap_pool_manager = configure_uniswap_manager::<_, EthPrimitives, DEFAULT_TICKS>( querying_provider.clone(), - eth_handle.subscribe_cannon_state_notifications().await, + // eth_handle.subscribe_cannon_state_notifications().await, + todo!(), uniswap_registry, block_id, global_block_sync.clone(), @@ -445,7 +442,8 @@ where let manager = ConsensusManager::new( ManagerNetworkDeps::new( network_handle.clone(), - eth_handle.subscribe_cannon_state_notifications().await, + // eth_handle.subscribe_cannon_state_notifications().await, + todo!(), handles.mode.consensus_rx_op ), signer, @@ -584,15 +582,6 @@ where tracing::info!(?block_id, "starting up with block"); let eth_data_sub = node.provider.subscribe_to_canonical_state(); - // TODO(mempirate): Initialize Flashblocks here. - if let Some(ws) = self.flashblocks_ws { - let subscriber = FlashblocksSubscriber::new(ws, self.flashblocks_writer.unwrap()); - - executor.spawn_critical("flashblocks subscriber", subscriber.start()); - } - - let flashblock_updates = self.flashblocks_writer.map(|w| w.reader().subscribe()); - let global_block_sync = GlobalBlockSync::new(block_id); // this right here problem @@ -600,11 +589,11 @@ where let uni_ang_registry = UniswapAngstromRegistry::new(uniswap_registry.clone(), pool_config_store.clone()); - let eth_handle = EthDataCleanser::spawn( + let eth_handle = EthDataCleanser::<_, angstrom_eth::manager::RollupMode>::spawn( angstrom_address, controller, eth_data_sub, - flashblock_updates, + self.flashblocks.clone().map(FlashblocksStream::new), executor.clone(), handles.eth_tx, handles.eth_rx, @@ -627,7 +616,8 @@ where let uniswap_pool_manager = configure_uniswap_manager::<_, OpPrimitives, DEFAULT_TICKS>( querying_provider.clone(), - eth_handle.subscribe_cannon_state_notifications().await, + // eth_handle.subscribe_cannon_state_notifications().await, + todo!(), uniswap_registry, block_id, global_block_sync.clone(), @@ -720,7 +710,8 @@ where let driver = RollupManager::new( block_height, Duration::from_millis(config.block_time_ms), - BroadcastStream::new(eth_handle.subscribe_cannon_state_notifications().await), + // BroadcastStream::new(eth_handle.subscribe_cannon_state_notifications().await), + todo!(), global_block_sync.clone(), order_storage, uni_ang_registry, diff --git a/crates/cli/src/op_angstrom.rs b/crates/cli/src/op_angstrom.rs index 8d115dd0e..dacaba832 100644 --- a/crates/cli/src/op_angstrom.rs +++ b/crates/cli/src/op_angstrom.rs @@ -5,19 +5,18 @@ use alloy_chains::NamedChain; use angstrom_amm_quoter::QuoterHandle; use angstrom_metrics::METRICS_ENABLED; use angstrom_rpc::{OrderApi, api::OrderApiServer}; -use angstrom_types::primitive::{ - ANGSTROM_DOMAIN, AngstromMetaSigner, AngstromSigner, init_with_chain_id +use angstrom_types::{ + flashblocks::FlashblocksRx, + primitive::{ANGSTROM_DOMAIN, AngstromMetaSigner, AngstromSigner, init_with_chain_id} }; use clap::Parser; use pool_manager::PoolHandle; use reth::{chainspec::EthChainSpec, tasks::TaskExecutor}; use reth_db::DatabaseEnv; -use reth_exex::ExExEvent; use reth_node_builder::{Node, NodeBuilder, WithLaunchContext}; use reth_optimism_chainspec::OpChainSpec; use reth_optimism_cli::{Cli as OpCli, chainspec::OpChainSpecParser}; -use reth_optimism_node::{OpNode, args::RollupArgs}; -use tokio_stream::StreamExt; +use reth_optimism_node::{OpNode, args::RollupArgs, rpc::OpEthApi}; use url::Url; use validation::validator::ValidationClient; @@ -35,27 +34,14 @@ const SUPPORTED_CHAINS: &[NamedChain] = #[derive(Debug, Clone, Parser)] pub struct OpAngstromArgs { #[command(flatten)] - pub rollup: RollupArgs, + pub rollup: RollupArgs, #[command(flatten)] - pub angstrom: AngstromConfig, - #[command(flatten)] - pub flashblocks: FlashblocksConfig -} - -#[derive(Debug, Clone, Parser)] -pub struct FlashblocksConfig { - /// Enable Flashblocks support. - #[arg(long = "flashblocks", default_value = "false")] - pub enabled: bool, - - /// Flashblocks WebSocket URL. - #[arg(long = "flashblocks.ws", value_name = "WEBSOCKET_URL")] - pub url: Option + pub angstrom: AngstromConfig } impl OpAngstromArgs { fn flashblocks_enabled(&self) -> bool { - self.flashblocks.enabled + self.rollup.flashblocks_url.is_some() } } @@ -162,34 +148,23 @@ async fn run_with_signer( let op_node = OpNode::new(args.rollup.clone()); - let writer: Arc>> = Arc::new(OnceLock::new()); + let flashblocks_rx: Arc> = Arc::new(OnceLock::new()); let node_handle = builder .with_types::() .with_components(op_node.components_builder()) .with_add_ons(op_node.add_ons()) - .install_exex_if(args.flashblocks_enabled(), "flashblocks", { - let writer = writer.clone(); - // This ExEx is used to notify the Flashblocks state writer of new canonical - // blocks, so it can clean up the pending state. - move |mut ctx| async move { - let w = writer - .get_or_init(|| flashblocks::PendingStateWriter::new(ctx.provider().clone())) - .clone(); - - Ok(async move { - while let Some(note) = ctx.notifications.try_next().await? { - if let Some(committed) = note.committed_chain() { - for b in committed.blocks_iter() { - w.on_canonical_block(&b); - } - let _ = ctx - .events - .send(ExExEvent::FinishedHeight(committed.tip().num_hash())); - } - } - Ok(()) - }) + .on_rpc_started({ + let flashblocks_rx = flashblocks_rx.clone(); + move |ctx, _| { + let api: &OpEthApi<_, _> = ctx.registry.eth_api(); + + // If Flashblocks is enabled, set the receiver. + if let Some(rx) = api.flashblocks_rx() { + let _ = flashblocks_rx.set(rx); + } + + Ok(()) } }) .extend_rpc_modules(move |rpc_context| { @@ -216,9 +191,8 @@ async fn run_with_signer( ); // Set up Flashblocks if enabled. - let launcher = if let Some(writer) = writer.get() { - let url = args.flashblocks.url.unwrap(); - launcher.with_flashblocks(writer.clone(), Url::parse(&url).unwrap()) + let launcher = if let Some(rx) = flashblocks_rx.get().cloned() { + launcher.with_flashblocks(rx) } else { launcher }; diff --git a/crates/eth/Cargo.toml b/crates/eth/Cargo.toml index ba4ec5c00..134430a6f 100644 --- a/crates/eth/Cargo.toml +++ b/crates/eth/Cargo.toml @@ -19,6 +19,7 @@ itertools.workspace = true pade.workspace = true reth-ethereum-primitives.workspace = true reth-execution-types.workspace = true +reth-optimism-primitives.workspace = true reth-primitives.workspace = true reth-provider.workspace = true reth-tasks.workspace = true diff --git a/crates/eth/src/manager.rs b/crates/eth/src/manager.rs index e9c4c5710..385a8a71a 100644 --- a/crates/eth/src/manager.rs +++ b/crates/eth/src/manager.rs @@ -6,7 +6,7 @@ use std::{ }; use alloy::{ - consensus::{Transaction, TxReceipt}, + consensus::{BlockHeader, Transaction, TxReceipt}, primitives::{Address, B256, aliases::I24}, sol_types::{SolCall, SolEvent} }; @@ -17,13 +17,14 @@ use angstrom_types::{ controller_v_1::ControllerV1::{NodeAdded, NodeRemoved, PoolConfigured, PoolRemoved} }, contract_payloads::angstrom::{AngPoolConfigEntry, AngstromBundle, AngstromPoolConfigStore}, - flashblocks::PendingChain, + flashblocks::{FlashblocksStream, PendingFlashblock}, primitive::{ChainExt, StateNotification} }; use futures::Future; use futures_util::{FutureExt, StreamExt}; use itertools::Itertools; use pade::PadeDecode; +use reth_optimism_primitives::OpPrimitives; use reth_primitives::{EthPrimitives, NodePrimitives}; use reth_provider::{CanonStateNotification, CanonStateNotifications}; use reth_tasks::TaskSpawner; @@ -41,49 +42,65 @@ alloy::sol!( event Approval(address indexed _owner, address indexed _spender, uint256 _value); ); +pub struct RollupMode { + flashblocks: Option +} + +pub struct ConsensusMode; + +pub trait DataCleanserMode { + type Primitives: NodePrimitives + Serialize; +} + +impl DataCleanserMode for RollupMode { + type Primitives = OpPrimitives; +} + +impl DataCleanserMode for ConsensusMode { + type Primitives = EthPrimitives; +} + /// Listens for CanonStateNotifications and sends the appropriate updates to be /// executed by the order pool -pub struct EthDataCleanser { - pub(crate) angstrom_address: Address, - pub(crate) periphery_address: Address, +pub struct EthDataCleanser { + pub(crate) angstrom_address: Address, + pub(crate) periphery_address: Address, /// our command receiver - pub(crate) commander: ReceiverStream>, + pub(crate) commander: ReceiverStream>, /// people listening to events - pub(crate) event_listeners: Vec>, + pub(crate) event_listeners: Vec>, /// for rebroadcasting - pub(crate) cannon_sender: tokio::sync::broadcast::Sender>, + pub(crate) cannon_sender: tokio::sync::broadcast::Sender>, /// Notifications for Canonical Block updates - pub(crate) canonical_updates: BroadcastStream>, - /// Notifications for Flashblocks. - pub(crate) flashblock_updates: Option>>>, - pub(crate) angstrom_tokens: HashMap, + pub(crate) canonical_updates: BroadcastStream>, + pub(crate) angstrom_tokens: HashMap, /// handles syncing of blocks. - block_sync: Sync, + block_sync: Sync, /// updated by periphery contract. - pub(crate) pool_store: Arc, + pub(crate) pool_store: Arc, /// the set of currently active nodes. - pub(crate) node_set: HashSet

+ pub(crate) node_set: HashSet
, + /// the mode of the data cleanser + pub(crate) mode: M } -impl EthDataCleanser +impl EthDataCleanser where - Sync: BlockSyncProducer, - N: NodePrimitives + Serialize + Sync: BlockSyncProducer { pub fn spawn( angstrom_address: Address, periphery_address: Address, - canonical_updates: CanonStateNotifications, - flashblock_updates: Option>>>, + canonical_updates: CanonStateNotifications, tp: TP, - tx: Sender>, - rx: Receiver>, + tx: Sender, + rx: Receiver, angstrom_tokens: HashMap, pool_store: Arc, sync: Sync, node_set: HashSet
, event_listeners: Vec> - ) -> anyhow::Result> { + ) -> anyhow::Result { let stream = ReceiverStream::new(rx); let (cannon_tx, _) = tokio::sync::broadcast::channel(1000); @@ -91,14 +108,14 @@ where angstrom_address, periphery_address, canonical_updates: BroadcastStream::new(canonical_updates), - flashblock_updates, commander: stream, angstrom_tokens, cannon_sender: cannon_tx, block_sync: sync, pool_store, node_set, - event_listeners + event_listeners, + mode: ConsensusMode }; // ensure we broadcast node set. will allow for proper connections // on the network side @@ -113,10 +130,65 @@ where Ok(handle) } +} + +impl EthDataCleanser +where + Sync: BlockSyncProducer +{ + pub fn spawn( + angstrom_address: Address, + periphery_address: Address, + canonical_updates: CanonStateNotifications, + flashblocks: Option, + tp: TP, + tx: Sender>, + rx: Receiver>, + angstrom_tokens: HashMap, + pool_store: Arc, + sync: Sync, + node_set: HashSet
, + event_listeners: Vec> + ) -> anyhow::Result> { + let stream = ReceiverStream::new(rx); + let (cannon_tx, _) = tokio::sync::broadcast::channel(1000); + let mut this = Self { + angstrom_address, + periphery_address, + canonical_updates: BroadcastStream::new(canonical_updates), + commander: stream, + angstrom_tokens, + cannon_sender: cannon_tx, + block_sync: sync, + pool_store, + node_set, + event_listeners, + mode: RollupMode { flashblocks } + }; + // ensure we broadcast node set. will allow for proper connections + // on the network side + for n in &this.node_set { + this.event_listeners + .retain(|e| e.send(EthEvent::AddedNode(*n)).is_ok()); + } + + tp.spawn_critical("eth handle", this.boxed()); + + let handle = EthHandle::new(tx); + + Ok(handle) + } +} + +impl EthDataCleanser +where + Sync: BlockSyncProducer, + M: DataCleanserMode +{ fn subscribe_canon_notifications( &self - ) -> tokio::sync::broadcast::Receiver> { + ) -> tokio::sync::broadcast::Receiver> { self.cannon_sender.subscribe() } @@ -125,7 +197,7 @@ where .retain(|e| e.send(event.clone()).is_ok()); } - fn on_command(&mut self, command: EthCommand) { + fn on_command(&mut self, command: EthCommand) { match command { EthCommand::SubscribeEthNetworkEvents(tx) => self.event_listeners.push(tx), EthCommand::SubscribeCannon(tx) => { @@ -134,7 +206,7 @@ where } } - fn on_canon_update(&mut self, canonical_updates: CanonStateNotification) { + fn on_canon_update(&mut self, canonical_updates: CanonStateNotification) { tracing::info!("got new block update!!!!!"); telemetry_recorder::telemetry_event!(EthUpdaterSnapshot::from(( &*self, @@ -155,18 +227,11 @@ where let _ = self.cannon_sender.send(update); } - fn on_flashblock_update(&mut self, pending: Arc>) { - tracing::debug!( - hash = ?pending.tip_hash(), - index = pending.tip_index(), - number = pending.tip_number(), - "New Flashblock received" - ); - - self.handle_commit(pending.clone()); - } - - fn handle_reorg(&mut self, old: Arc>, new: Arc>) { + fn handle_reorg( + &mut self, + old: Arc>, + new: Arc> + ) { self.apply_periphery_logs(&new); // notify producer of reorg if one happened. NOTE: reth also calls this // on reverts @@ -187,7 +252,7 @@ where self.send_events(reorged_orders); } - fn handle_commit(&mut self, new: Arc>) { + fn handle_commit(&mut self, new: Arc>) { // handle this first so the newest state is the first available self.apply_periphery_logs(&new); @@ -210,7 +275,7 @@ where /// looks at all periphery contrct events updating the internal state + /// sending out info. - fn apply_periphery_logs(&mut self, chain: &impl ChainExt) { + fn apply_periphery_logs(&mut self, chain: &impl ChainExt) { let periphery_address = self.periphery_address; chain @@ -290,7 +355,7 @@ where fn fetch_filled_order<'a>( &'a self, - chain: &'a impl ChainExt + chain: &'a impl ChainExt ) -> impl Iterator + 'a { chain .successful_tip_transactions() @@ -312,7 +377,7 @@ where } /// fetches all eoa addresses touched - fn get_eoa(&self, chain: Arc>) -> Vec
{ + fn get_eoa(&self, chain: Arc>) -> Vec
{ chain .receipts_by_block_hash(chain.tip_hash()) .unwrap_or_default() @@ -347,20 +412,79 @@ where } } -impl Future for EthDataCleanser +impl EthDataCleanser where - Sync: BlockSyncProducer, - N: NodePrimitives + Serialize + Sync: BlockSyncProducer +{ + fn on_flashblock_update(&mut self, pending: PendingFlashblock) { + tracing::debug!( + hash = ?pending.block().hash(), + number = pending.block().header().number(), + "New Flashblock received" + ); + + self.handle_commit(Arc::new(pending)); + } +} + +impl Future for EthDataCleanser +where + Sync: BlockSyncProducer +{ + type Output = (); + + fn poll(self: std::pin::Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let this = self.get_mut(); + // poll all canonical updates + while let Poll::Ready(is_some) = this.canonical_updates.poll_next_unpin(cx).map(|res| { + res.transpose() + .ok() + .flatten() + .map(|update| this.on_canon_update(update)) + .is_some() + }) { + if !is_some { + return Poll::Ready(()); + } + } + + // Collect flashblocks first to avoid borrow checker issues + let mut flashblocks = Vec::new(); + if let Some(flashblock_updates) = this.mode.flashblocks.as_mut() { + while let Poll::Ready(Some(flashblock)) = flashblock_updates.poll_next_unpin(cx) { + if let Some(flashblock) = flashblock { + flashblocks.push(flashblock); + } + } + } + + // Process collected flashblocks + for flashblock in flashblocks { + this.on_flashblock_update(flashblock); + } + + while let Poll::Ready(Some(command)) = this.commander.poll_next_unpin(cx) { + this.on_command(command) + } + + Poll::Pending + } +} + +impl Future for EthDataCleanser +where + Sync: BlockSyncProducer { type Output = (); - fn poll(mut self: std::pin::Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + fn poll(self: std::pin::Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let this = self.get_mut(); // poll all canonical updates - while let Poll::Ready(is_some) = self.canonical_updates.poll_next_unpin(cx).map(|res| { + while let Poll::Ready(is_some) = this.canonical_updates.poll_next_unpin(cx).map(|res| { res.transpose() .ok() .flatten() - .map(|update| self.on_canon_update(update)) + .map(|update| this.on_canon_update(update)) .is_some() }) { if !is_some { @@ -368,8 +492,8 @@ where } } - while let Poll::Ready(Some(command)) = self.commander.poll_next_unpin(cx) { - self.on_command(command) + while let Poll::Ready(Some(command)) = this.commander.poll_next_unpin(cx) { + this.on_command(command) } Poll::Pending @@ -471,17 +595,17 @@ pub mod test { let (_cannon_tx, cannon_rx) = tokio::sync::broadcast::channel(3); let (tx, _) = tokio::sync::broadcast::channel(3); EthDataCleanser { - commander: ReceiverStream::new(command_rx), - event_listeners: vec![], - angstrom_tokens: HashMap::default(), - node_set: HashSet::default(), - angstrom_address: angstrom_address.unwrap_or_default(), - periphery_address: Address::default(), - canonical_updates: BroadcastStream::new(cannon_rx), - flashblock_updates: None, - block_sync: GlobalBlockSync::new(1), - cannon_sender: tx, - pool_store: Default::default() + commander: ReceiverStream::new(command_rx), + event_listeners: vec![], + angstrom_tokens: HashMap::default(), + node_set: HashSet::default(), + angstrom_address: angstrom_address.unwrap_or_default(), + periphery_address: Address::default(), + canonical_updates: BroadcastStream::new(cannon_rx), + block_sync: GlobalBlockSync::new(1), + cannon_sender: tx, + pool_store: Default::default(), + mode: ConsensusMode } } diff --git a/crates/eth/src/telemetry.rs b/crates/eth/src/telemetry.rs index 942925094..ced288ea9 100644 --- a/crates/eth/src/telemetry.rs +++ b/crates/eth/src/telemetry.rs @@ -16,7 +16,7 @@ use serde::{Deserialize, Serialize}; use serde_with::{DisplayFromStr, serde_as}; use telemetry_recorder::OrderTelemetryExt; -use crate::manager::EthDataCleanser; +use crate::manager::{DataCleanserMode, EthDataCleanser}; /// The state of our eth-updater, right before we go to the next block #[serde_as] @@ -34,10 +34,13 @@ pub struct EthUpdaterSnapshot { pub timestamp: chrono::DateTime } -impl - From<(&EthDataCleanser, CanonStateNotification)> for EthUpdaterSnapshot +impl + From<(&EthDataCleanser, CanonStateNotification)> + for EthUpdaterSnapshot { - fn from((data, update): (&EthDataCleanser, CanonStateNotification)) -> Self { + fn from( + (data, update): (&EthDataCleanser, CanonStateNotification) + ) -> Self { Self { angstrom_tokens: data.angstrom_tokens.clone(), angstrom_address: data.angstrom_address, diff --git a/crates/flashblocks/Cargo.toml b/crates/flashblocks/Cargo.toml index 6f0e828cc..d6c2a00f7 100644 --- a/crates/flashblocks/Cargo.toml +++ b/crates/flashblocks/Cargo.toml @@ -10,7 +10,7 @@ exclude.workspace = true [dependencies] alloy.workspace = true -alloy-evm = "0.15" +alloy-evm = "0.20.1" alloy-primitives = { workspace = true, default-features = false, features = ["map-foldhash"] } brotli = "8.0.1" eyre.workspace = true @@ -26,7 +26,8 @@ url.workspace = true # Reth reth.workspace = true reth-optimism-chainspec.workspace = true -reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", version = "1.6.0", tag = "v1.6.0" } +reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } +reth-optimism-flashblocks = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } reth-optimism-primitives.workspace = true reth-primitives-traits.workspace = true diff --git a/crates/types/Cargo.toml b/crates/types/Cargo.toml index ae697a4b4..d994e29a5 100644 --- a/crates/types/Cargo.toml +++ b/crates/types/Cargo.toml @@ -43,12 +43,14 @@ serde_json.workspace = true serde_with.workspace = true thiserror.workspace = true tokio.workspace = true +tokio-stream.workspace = true tower = "0.5.2" tracing.workspace = true tracing-subscriber.workspace = true uniswap_v3_math.workspace = true # Optimism & Flashblocks +reth-optimism-flashblocks = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } reth-optimism-primitives = { workspace = true, features = ["serde", "serde-bincode-compat"] } rollup-boost = { git = "http://github.com/flashbots/rollup-boost", tag = "v0.7.4" } diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index 6162edd5c..088089df3 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -7,15 +7,74 @@ use alloy::{ rlp::{Decodable, Encodable} }; use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash, U256}; -use reth::rpc::types::engine::{ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3}; -use reth_optimism_primitives::OpPrimitives; +use reth::rpc::{ + server_types::eth::PendingBlock, + types::engine::{ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3} +}; +use reth_optimism_flashblocks::FlashBlockRx; +use reth_optimism_primitives::{OpBlock, OpPrimitives, OpReceipt, OpTransactionSigned}; use reth_primitives::{NodePrimitives, RecoveredBlock}; -use reth_primitives_traits::Block; +use reth_primitives_traits::{AlloyBlockHeader, Block}; pub use rollup_boost::{ExecutionPayloadBaseV1, FlashblocksPayloadV1}; use serde::{Deserialize, Serialize}; +use tokio_stream::wrappers::WatchStream; use crate::primitive::ChainExt; +/// A pending Flashblock. +pub type PendingFlashblock = PendingBlock; + +/// A type alias for the Flashblocks receiver. +pub type FlashblocksRx = FlashBlockRx; + +/// A stream of pending Flashblocks in the form of [`PendingFlashblock`]s. +pub type FlashblocksStream = WatchStream>; + +impl ChainExt for PendingFlashblock { + /// Returns the block number of the Flashblock (this will be the same as the + /// base block number). + fn tip_number(&self) -> BlockNumber { + self.block().header().number() + } + + /// Returns the block hash of the Flashblock (different for each + /// Flashblock). + fn tip_hash(&self) -> BlockHash { + self.block().hash() + } + + /// Returns the receipts for the Flashblock if the hash matches. + fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option> { + if self.block().hash() == block_hash { Some(self.receipts.iter().collect()) } else { None } + } + + /// Returns the transactions in this Flashblock. + fn tip_transactions(&self) -> impl Iterator + '_ { + self.block().transactions_with_sender().map(|(_, tx)| tx) + } + + /// Returns the successful transactions for the Flashblock tip. + /// + /// NOTE: In theory, this should just be all transactions since Flashblocks + /// shouldn't contain reverts, but we filter here just to be safe. + fn successful_tip_transactions(&self) -> impl Iterator + '_ { + // Zip transactions with receipts and filter by successful receipts + self.tip_transactions() + .zip(self.receipts.iter()) + .filter_map(|(tx, receipt)| receipt.status().then_some(tx)) + } + + /// Flashblocks are not reorged. + fn reorged_range(&self, _new: impl ChainExt) -> Option> { + None + } + + /// Returns an iterator over the Flashblock blocks (just one). + fn blocks_iter(&self) -> impl Iterator> + '_ { + std::iter::once(self.block().as_ref()) + } +} + /// Metadata for a Flashblock. This is the same for Base and Unichain. #[derive(Debug, Deserialize, Serialize, Clone, Default)] pub struct Metadata { From 165c5a9f2ad82218593e8aeff918f89acb8d25ec Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Fri, 29 Aug 2025 14:50:08 +0200 Subject: [PATCH 17/18] refactor(op-angstrom): clean up Flashblock types --- Cargo.lock | 3410 +++++++-------------------- crates/eth/src/manager.rs | 6 +- crates/types/Cargo.toml | 1 - crates/types/src/flashblocks/mod.rs | 209 +- crates/types/src/primitive/state.rs | 4 +- 5 files changed, 837 insertions(+), 2793 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3d73a1dca..2be0db9f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -301,26 +301,6 @@ dependencies = [ "thiserror 2.0.16", ] -[[package]] -name = "alloy-evm" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff5aae4c6dc600734b206b175f3200085ee82dcdaa388760358830a984ca9869" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks 0.2.13", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-sol-types", - "auto_impl", - "derive_more", - "op-alloy-consensus 0.18.14", - "op-revm 7.0.1", - "revm 26.0.1", - "thiserror 2.0.16", -] - [[package]] name = "alloy-evm" version = "0.20.1" @@ -335,8 +315,8 @@ dependencies = [ "alloy-sol-types", "auto_impl", "derive_more", - "op-alloy-consensus 0.19.1", - "op-revm 10.0.0", + "op-alloy-consensus", + "op-revm", "revm 29.0.0", "thiserror 2.0.16", ] @@ -469,23 +449,6 @@ dependencies = [ "url", ] -[[package]] -name = "alloy-op-evm" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588a87b77b30452991151667522d2f2f724cec9c2ec6602e4187bc97f66d8095" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.12.3", - "alloy-op-hardforks 0.2.13", - "alloy-primitives", - "auto_impl", - "op-alloy-consensus 0.18.14", - "op-revm 7.0.1", - "revm 26.0.1", -] - [[package]] name = "alloy-op-evm" version = "0.20.1" @@ -494,26 +457,15 @@ checksum = "ed9b726869a13d5d958f2f78fbef7ce522689c4d40d613c16239f5e286fbeb1a" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.20.1", - "alloy-op-hardforks 0.3.0", + "alloy-evm", + "alloy-op-hardforks", "alloy-primitives", "auto_impl", - "op-alloy-consensus 0.19.1", - "op-revm 10.0.0", + "op-alloy-consensus", + "op-revm", "revm 29.0.0", ] -[[package]] -name = "alloy-op-hardforks" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3417f4187eaf7f7fb0d7556f0197bca26f0b23c4bb3aca0c9d566dc1c5d727a2" -dependencies = [ - "alloy-chains", - "alloy-hardforks 0.2.13", - "auto_impl", -] - [[package]] name = "alloy-op-hardforks" version = "0.3.0" @@ -619,7 +571,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.2", + "tower", "tracing", "wasmtimer", ] @@ -666,7 +618,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.2", + "tower", "tracing", "url", "wasmtimer", @@ -1013,7 +965,7 @@ dependencies = [ "serde_json", "thiserror 2.0.16", "tokio", - "tower 0.5.2", + "tower", "tracing", "url", "wasmtimer", @@ -1029,7 +981,7 @@ dependencies = [ "alloy-transport", "reqwest", "serde_json", - "tower 0.5.2", + "tower", "tracing", "url", ] @@ -1179,14 +1131,14 @@ dependencies = [ "reth", "reth-db", "reth-exex", - "reth-metrics 1.6.0", + "reth-metrics", "reth-network", "reth-node-builder", "reth-node-ethereum", - "reth-optimism-chainspec 1.6.0", + "reth-optimism-chainspec", "reth-optimism-cli", "reth-optimism-node", - "reth-optimism-primitives 1.6.0", + "reth-optimism-primitives", "reth-provider", "serde", "telemetry", @@ -1211,12 +1163,12 @@ dependencies = [ "itertools 0.14.0", "pade", "rand 0.9.2", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-primitives 1.6.0", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-optimism-primitives", "reth-primitives", "reth-provider", - "reth-tasks 1.6.0", + "reth-tasks", "serde", "serde_json", "serde_with", @@ -1234,7 +1186,7 @@ dependencies = [ "angstrom-types", "eyre", "hyper 1.7.0", - "jsonrpsee-server 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-server 0.25.1", "metrics 0.21.1", "metrics-exporter-prometheus", "metrics-process 1.2.1", @@ -1244,7 +1196,7 @@ dependencies = [ "reth-node-metrics", "tikv-jemalloc-ctl", "tokio", - "tower 0.5.2", + "tower", "tracing", ] @@ -1270,17 +1222,17 @@ dependencies = [ "reth", "reth-discv4", "reth-eth-wire", - "reth-metrics 1.6.0", + "reth-metrics", "reth-net-banlist", "reth-network", "reth-network-p2p", - "reth-network-peers 1.6.0", + "reth-network-peers", "reth-node-builder", "reth-primitives", "reth-provider", - "reth-tasks 1.6.0", + "reth-tasks", "reth-tracing", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "secp256k1 0.30.0", "serde", "serial_test", @@ -1307,11 +1259,11 @@ dependencies = [ "async-trait", "consensus", "futures", - "jsonrpsee 0.26.0", + "jsonrpsee", "order-pool", "pool-manager", "rand 0.9.2", - "reth-tasks 1.6.0", + "reth-tasks", "serde", "serde_json", "strum 0.27.2", @@ -1347,23 +1299,22 @@ dependencies = [ "rand 0.9.2", "reqwest", "reth", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-eth-wire", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-network-peers 1.6.0", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-network-peers", "reth-optimism-flashblocks", - "reth-optimism-primitives 1.6.0", + "reth-optimism-primitives", "reth-primitives", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-provider", - "reth-storage-api 1.6.0", - "reth-trie 1.6.0", + "reth-storage-api", + "reth-trie", "revm 27.1.0", - "revm-bytecode 6.2.2", - "revm-database 7.0.5", + "revm-bytecode", + "revm-database", "revm-primitives", - "rollup-boost", "secp256k1 0.30.0", "serde", "serde_json", @@ -1372,7 +1323,7 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tokio-stream", - "tower 0.5.2", + "tower", "tracing", "tracing-subscriber 0.3.19", "uniswap_v3_math", @@ -1800,17 +1751,6 @@ dependencies = [ "zstd-safe", ] -[[package]] -name = "async-lock" -version = "3.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" -dependencies = [ - "event-listener", - "event-listener-strategy", - "pin-project-lite", -] - [[package]] name = "async-stream" version = "0.3.6" @@ -2196,7 +2136,7 @@ dependencies = [ "rustls-pki-types", "tokio", "tokio-rustls 0.26.2", - "tower 0.5.2", + "tower", "tracing", ] @@ -2318,53 +2258,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper", - "tower 0.5.2", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper", - "tower-layer", - "tower-service", -] - [[package]] name = "az" version = "1.2.1" @@ -2747,56 +2640,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "bollard" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccca1260af6a459d75994ad5acc1651bcabcbdbc41467cc9786519ab854c30" -dependencies = [ - "base64 0.22.1", - "bollard-stubs", - "bytes", - "futures-core", - "futures-util", - "hex", - "home", - "http 1.3.1", - "http-body-util", - "hyper 1.7.0", - "hyper-named-pipe", - "hyper-rustls 0.27.7", - "hyper-util", - "hyperlocal", - "log", - "pin-project-lite", - "rustls 0.23.31", - "rustls-native-certs 0.8.1", - "rustls-pemfile 2.2.0", - "rustls-pki-types", - "serde", - "serde_derive", - "serde_json", - "serde_repr", - "serde_urlencoded", - "thiserror 2.0.16", - "tokio", - "tokio-util", - "tower-service", - "url", - "winapi", -] - -[[package]] -name = "bollard-stubs" -version = "1.47.1-rc.27.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f179cfbddb6e77a5472703d4b30436bff32929c0aa8a9008ecf23d1d3cdd0da" -dependencies = [ - "serde", - "serde_repr", - "serde_with", -] - [[package]] name = "boyer-moore-magiclen" version = "0.2.20" @@ -3299,15 +3142,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "condtype" version = "1.3.0" @@ -3330,9 +3164,9 @@ dependencies = [ "matching-engine", "order-pool", "rand 0.9.2", - "reth-metrics 1.6.0", + "reth-metrics", "reth-provider", - "reth-tasks 1.6.0", + "reth-tasks", "serde", "telemetry-recorder", "testing-tools", @@ -3449,7 +3283,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee 0.26.0", + "jsonrpsee", "pade", "reth", "secp256k1 0.30.0", @@ -4114,17 +3948,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "docker_credential" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d89dfcba45b4afad7450a99b39e751590463e45c04728cf555d36bb66940de8" -dependencies = [ - "base64 0.21.7", - "serde", - "serde_json", -] - [[package]] name = "doctest-file" version = "1.0.0" @@ -4140,12 +3963,6 @@ dependencies = [ "litrs", ] -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - [[package]] name = "dunce" version = "1.0.5" @@ -4363,17 +4180,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "etcetera" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" -dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", -] - [[package]] name = "eth-keystore" version = "0.5.0" @@ -4447,27 +4253,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener", - "pin-project-lite", -] - [[package]] name = "eyre" version = "0.6.12" @@ -4577,7 +4362,7 @@ name = "flashblocks" version = "0.1.0" dependencies = [ "alloy", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-primitives", "angstrom-types", "brotli", @@ -4585,11 +4370,11 @@ dependencies = [ "futures", "parking_lot", "reth", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-evm 1.6.0", + "reth-optimism-chainspec", + "reth-optimism-evm", "reth-optimism-flashblocks", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-optimism-primitives", + "reth-primitives-traits", "serde_json", "tokio", "tokio-stream", @@ -5335,21 +5120,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-named-pipe" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" -dependencies = [ - "hex", - "hyper 1.7.0", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", - "winapi", -] - [[package]] name = "hyper-rustls" version = "0.24.2" @@ -5385,19 +5155,6 @@ dependencies = [ "webpki-roots 1.0.2", ] -[[package]] -name = "hyper-timeout" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" -dependencies = [ - "hyper 1.7.0", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", -] - [[package]] name = "hyper-tls" version = "0.6.0" @@ -5440,21 +5197,6 @@ dependencies = [ "windows-registry", ] -[[package]] -name = "hyperlocal" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" -dependencies = [ - "hex", - "http-body-util", - "hyper 1.7.0", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", -] - [[package]] name = "iana-time-zone" version = "0.1.63" @@ -6010,20 +5752,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonrpsee" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-http-client 0.25.1", - "jsonrpsee-proc-macros 0.25.1", - "jsonrpsee-server 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "tokio", - "tracing", -] - [[package]] name = "jsonrpsee" version = "0.26.0" @@ -6032,8 +5760,8 @@ checksum = "3f3f48dc3e6b8bd21e15436c1ddd0bc22a6a54e8ec46fedd6adf3425f396ec6a" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core 0.26.0", - "jsonrpsee-http-client 0.26.0", - "jsonrpsee-proc-macros 0.26.0", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", "jsonrpsee-server 0.26.0", "jsonrpsee-types 0.26.0", "jsonrpsee-wasm-client", @@ -6079,31 +5807,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "http-body-util", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot", - "pin-project", - "rand 0.9.2", - "rustc-hash 2.1.1", - "serde", - "serde_json", - "thiserror 2.0.16", - "tokio", - "tower 0.5.2", - "tracing", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", + "jsonrpsee-types 0.25.1", "parking_lot", "pin-project", "rand 0.9.2", @@ -6112,7 +5816,7 @@ dependencies = [ "serde_json", "thiserror 2.0.16", "tokio", - "tower 0.5.2", + "tower", "tracing", ] @@ -6139,33 +5843,11 @@ dependencies = [ "thiserror 2.0.16", "tokio", "tokio-stream", - "tower 0.5.2", + "tower", "tracing", "wasm-bindgen-futures", ] -[[package]] -name = "jsonrpsee-http-client" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "base64 0.22.1", - "http-body 1.0.1", - "hyper 1.7.0", - "hyper-rustls 0.27.7", - "hyper-util", - "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "rustls 0.23.31", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror 2.0.16", - "tokio", - "tower 0.5.2", - "url", -] - [[package]] name = "jsonrpsee-http-client" version = "0.26.0" @@ -6185,22 +5867,10 @@ dependencies = [ "serde_json", "thiserror 2.0.16", "tokio", - "tower 0.5.2", + "tower", "url", ] -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "heck", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "jsonrpsee-proc-macros" version = "0.26.0" @@ -6226,8 +5896,8 @@ dependencies = [ "http-body-util", "hyper 1.7.0", "hyper-util", - "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.25.1", + "jsonrpsee-types 0.25.1", "pin-project", "route-recognizer", "serde", @@ -6237,33 +5907,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "tower 0.5.2", - "tracing", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.7.0", - "hyper-util", - "jsonrpsee-core 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "jsonrpsee-types 0.25.1 (git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff)", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto", - "thiserror 2.0.16", - "tokio", - "tokio-stream", - "tokio-util", - "tower 0.5.2", + "tower", "tracing", ] @@ -6290,7 +5934,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "tower 0.5.2", + "tower", "tracing", ] @@ -6306,17 +5950,6 @@ dependencies = [ "thiserror 2.0.16", ] -[[package]] -name = "jsonrpsee-types" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "http 1.3.1", - "serde", - "serde_json", - "thiserror 2.0.16", -] - [[package]] name = "jsonrpsee-types" version = "0.26.0" @@ -6338,7 +5971,7 @@ dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", - "tower 0.5.2", + "tower", ] [[package]] @@ -6351,7 +5984,7 @@ dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", - "tower 0.5.2", + "tower", "url", ] @@ -6518,7 +6151,7 @@ checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ "bitflags 2.9.3", "libc", - "redox_syscall 0.5.17", + "redox_syscall", ] [[package]] @@ -6803,12 +6436,12 @@ dependencies = [ "futures", "futures-util", "itertools 0.14.0", - "jsonrpsee 0.26.0", + "jsonrpsee", "pade", "pade-macro", "rand 0.9.2", "rand_distr", - "reth-tasks 1.6.0", + "reth-tasks", "serde", "serde_json", "testing-tools", @@ -6821,12 +6454,6 @@ dependencies = [ "validation", ] -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "md-5" version = "0.10.6" @@ -6982,15 +6609,11 @@ version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8496cc523d1f94c1385dd8f0f0c2c480b2b8aeccb5b7e4485ad6365523ae376" dependencies = [ - "aho-corasick", "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.5", - "indexmap 2.11.0", "metrics 0.24.2", - "ordered-float", "quanta", - "radix_trie", "rand 0.9.2", "rand_xoshiro", "sketches-ddsketch", @@ -7101,12 +6724,9 @@ version = "0.12.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" dependencies = [ - "async-lock", "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "event-listener", - "futures-util", "loom", "parking_lot", "portable-atomic", @@ -7435,22 +7055,6 @@ version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" -[[package]] -name = "op-alloy-consensus" -version = "0.18.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c88d2940558fd69f8f07b3cbd7bb3c02fc7d31159c1a7ba9deede50e7881024" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "derive_more", - "serde", - "thiserror 2.0.16", -] - [[package]] name = "op-alloy-consensus" version = "0.19.1" @@ -7489,8 +7093,8 @@ dependencies = [ "alloy-provider", "alloy-rpc-types-eth", "alloy-signer", - "op-alloy-consensus 0.19.1", - "op-alloy-rpc-types 0.19.1", + "op-alloy-consensus", + "op-alloy-rpc-types", ] [[package]] @@ -7500,26 +7104,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa85f170bf8f914a7619e1447918781a8c5bd1041bb6629940b851e865487156" dependencies = [ "alloy-primitives", - "jsonrpsee 0.26.0", -] - -[[package]] -name = "op-alloy-rpc-types" -version = "0.18.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f22201e53e8cbb67a053e88b534b4e7f02265c5406994bf35978482a9ad0ae26" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "derive_more", - "op-alloy-consensus 0.18.14", - "serde", - "serde_json", - "thiserror 2.0.16", + "jsonrpsee", ] [[package]] @@ -7535,33 +7120,12 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "derive_more", - "op-alloy-consensus 0.19.1", + "op-alloy-consensus", "serde", "serde_json", "thiserror 2.0.16", ] -[[package]] -name = "op-alloy-rpc-types-engine" -version = "0.18.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4f977b51e9e177e69a4d241ab7c4b439df9a3a5a998c000ae01be724de271" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-serde", - "derive_more", - "ethereum_ssz", - "ethereum_ssz_derive", - "op-alloy-consensus 0.18.14", - "serde", - "snap", - "thiserror 2.0.16", -] - [[package]] name = "op-alloy-rpc-types-engine" version = "0.19.1" @@ -7577,7 +7141,7 @@ dependencies = [ "derive_more", "ethereum_ssz", "ethereum_ssz_derive", - "op-alloy-consensus 0.19.1", + "op-alloy-consensus", "serde", "snap", "thiserror 2.0.16", @@ -7591,18 +7155,6 @@ dependencies = [ "tikv-jemallocator", ] -[[package]] -name = "op-revm" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b97d2b54651fcd2955b454e86b2336c031e17925a127f4c44e2b63b2eeda923" -dependencies = [ - "auto_impl", - "once_cell", - "revm 26.0.1", - "serde", -] - [[package]] name = "op-revm" version = "10.0.0" @@ -7664,92 +7216,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "opentelemetry" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "236e667b670a5cdf90c258f5a55794ec5ac5027e960c224bff8367a59e1e6426" -dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "pin-project-lite", - "thiserror 2.0.16", - "tracing", -] - -[[package]] -name = "opentelemetry-http" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8863faf2910030d139fb48715ad5ff2f35029fc5f244f6d5f689ddcf4d26253" -dependencies = [ - "async-trait", - "bytes", - "http 1.3.1", - "opentelemetry", - "reqwest", - "tracing", -] - -[[package]] -name = "opentelemetry-otlp" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bef114c6d41bea83d6dc60eb41720eedd0261a67af57b66dd2b84ac46c01d91" -dependencies = [ - "async-trait", - "futures-core", - "http 1.3.1", - "opentelemetry", - "opentelemetry-http", - "opentelemetry-proto", - "opentelemetry_sdk", - "prost", - "reqwest", - "serde_json", - "thiserror 2.0.16", - "tokio", - "tonic", - "tracing", -] - -[[package]] -name = "opentelemetry-proto" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f8870d3024727e99212eb3bb1762ec16e255e3e6f58eeb3dc8db1aa226746d" -dependencies = [ - "base64 0.22.1", - "hex", - "opentelemetry", - "opentelemetry_sdk", - "prost", - "serde", - "tonic", -] - -[[package]] -name = "opentelemetry_sdk" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84dfad6042089c7fc1f6118b7040dc2eb4ab520abbf410b79dc481032af39570" -dependencies = [ - "async-trait", - "futures-channel", - "futures-executor", - "futures-util", - "glob", - "opentelemetry", - "percent-encoding", - "rand 0.8.5", - "serde_json", - "thiserror 2.0.16", - "tokio", - "tokio-stream", - "tracing", -] - [[package]] name = "option-ext" version = "0.2.0" @@ -7771,12 +7237,12 @@ dependencies = [ "pade", "rand 0.9.2", "reth-discv4", - "reth-metrics 1.6.0", + "reth-metrics", "reth-network", "reth-primitives", "reth-provider", "reth-tracing", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "secp256k1 0.30.0", "serde", "serde_json", @@ -7914,12 +7380,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - [[package]] name = "parking_lot" version = "0.12.4" @@ -7938,36 +7398,11 @@ checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.17", + "redox_syscall", "smallvec", "windows-targets 0.52.6", ] -[[package]] -name = "parse-display" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" -dependencies = [ - "parse-display-derive", - "regex", - "regex-syntax 0.8.6", -] - -[[package]] -name = "parse-display-derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae7800a4c974efd12df917266338e79a7a74415173caf7e70aa0a0707345281" -dependencies = [ - "proc-macro2", - "quote", - "regex", - "regex-syntax 0.8.6", - "structmeta", - "syn 2.0.106", -] - [[package]] name = "paste" version = "1.0.15" @@ -8218,19 +7653,19 @@ dependencies = [ "rayon", "reth", "reth-discv4", - "reth-metrics 1.6.0", + "reth-metrics", "reth-network", - "reth-network-peers 1.6.0", + "reth-network-peers", "reth-primitives", "reth-provider", - "reth-tasks 1.6.0", + "reth-tasks", "reth-tracing", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "revm 27.1.0", - "revm-bytecode 6.2.2", - "revm-database 7.0.5", + "revm-bytecode", + "revm-database", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "secp256k1 0.30.0", "serde", "serial_test", @@ -8476,29 +7911,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-derive" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "protobuf" version = "2.28.0" @@ -8798,15 +8210,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.5.17" @@ -8978,7 +8381,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls 0.26.2", "tokio-util", - "tower 0.5.2", + "tower", "tower-http", "tower-service", "url", @@ -9004,16 +8407,16 @@ dependencies = [ "aquamarine", "clap", "eyre", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-cli-runner", "reth-cli-util", - "reth-consensus 1.6.0", - "reth-consensus-common 1.6.0", + "reth-consensus", + "reth-consensus-common", "reth-db", "reth-ethereum-cli", "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", + "reth-ethereum-primitives", + "reth-evm", "reth-network", "reth-network-api", "reth-node-api", @@ -9021,46 +8424,22 @@ dependencies = [ "reth-node-core", "reth-node-ethereum", "reth-node-metrics", - "reth-payload-builder 1.6.0", - "reth-payload-primitives 1.6.0", + "reth-payload-builder", + "reth-payload-primitives", "reth-primitives", "reth-provider", "reth-ress-protocol", "reth-ress-provider", - "reth-revm 1.6.0", + "reth-revm", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-tasks 1.6.0", + "reth-tasks", "reth-tokio-util", - "reth-transaction-pool 1.6.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-basic-payload-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "futures-core", - "futures-util", - "metrics 0.24.2", - "reth-chain-state 1.5.0", - "reth-metrics 1.5.0", - "reth-payload-builder 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", + "reth-transaction-pool", "tokio", "tracing", ] @@ -9076,42 +8455,16 @@ dependencies = [ "futures-core", "futures-util", "metrics 0.24.2", - "reth-chain-state 1.6.0", - "reth-metrics 1.6.0", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-chain-state" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "derive_more", - "metrics 0.24.2", - "parking_lot", - "pin-project", - "reth-chainspec 1.5.0", - "reth-errors 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-execution-types 1.5.0", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-trie 1.5.0", - "revm-database 6.0.0", + "reth-chain-state", + "reth-metrics", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", + "reth-tasks", "tokio", - "tokio-stream", "tracing", ] @@ -9130,42 +8483,22 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.9.2", - "reth-chainspec 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-trie 1.6.0", - "revm-database 7.0.5", - "revm-state 7.0.5", + "reth-chainspec", + "reth-errors", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-metrics", + "reth-primitives-traits", + "reth-storage-api", + "reth-trie", + "revm-database", + "revm-state", "serde", "tokio", "tokio-stream", "tracing", ] -[[package]] -name = "reth-chainspec" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.12.3", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "auto_impl", - "derive_more", - "reth-ethereum-forks 1.5.0", - "reth-network-peers 1.5.0", - "reth-primitives-traits 1.5.0", - "serde_json", -] - [[package]] name = "reth-chainspec" version = "1.6.0" @@ -9174,15 +8507,15 @@ dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-genesis", "alloy-primitives", "alloy-trie", "auto_impl", "derive_more", - "reth-ethereum-forks 1.6.0", - "reth-network-peers 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-ethereum-forks", + "reth-network-peers", + "reth-primitives-traits", "serde_json", ] @@ -9223,13 +8556,13 @@ dependencies = [ "lz4", "ratatui", "reqwest", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs 1.6.0", + "reth-codecs", "reth-config", - "reth-consensus 1.6.0", + "reth-consensus", "reth-db", "reth-db-api", "reth-db-common", @@ -9242,26 +8575,26 @@ dependencies = [ "reth-era-utils", "reth-eth-wire", "reth-etl", - "reth-evm 1.6.0", + "reth-evm", "reth-exex", - "reth-fs-util 1.6.0", + "reth-fs-util", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers 1.6.0", + "reth-network-peers", "reth-node-api", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-revm 1.6.0", + "reth-revm", "reth-stages", "reth-static-file", - "reth-static-file-types 1.6.0", - "reth-trie 1.6.0", + "reth-static-file-types", + "reth-trie", "reth-trie-db", "secp256k1 0.30.0", "serde", @@ -9278,7 +8611,7 @@ name = "reth-cli-runner" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "reth-tasks 1.6.0", + "reth-tasks", "tokio", "tracing", ] @@ -9294,7 +8627,7 @@ dependencies = [ "eyre", "libc", "rand 0.8.5", - "reth-fs-util 1.6.0", + "reth-fs-util", "secp256k1 0.30.0", "serde", "thiserror 2.0.16", @@ -9303,55 +8636,26 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.6.0" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", "alloy-primitives", "alloy-trie", + "arbitrary", "bytes", "modular-bitfield", - "op-alloy-consensus 0.18.14", - "reth-codecs-derive 1.5.0", - "reth-zstd-compressors 1.5.0", + "op-alloy-consensus", + "reth-codecs-derive", + "reth-zstd-compressors", "serde", + "visibility", ] [[package]] -name = "reth-codecs" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "arbitrary", - "bytes", - "modular-bitfield", - "op-alloy-consensus 0.19.1", - "reth-codecs-derive 1.6.0", - "reth-zstd-compressors 1.6.0", - "serde", - "visibility", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "convert_case 0.7.1", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "reth-codecs-derive" +name = "reth-codecs-derive" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ @@ -9369,26 +8673,13 @@ dependencies = [ "eyre", "humantime-serde", "reth-network-types", - "reth-prune-types 1.6.0", - "reth-stages-types 1.6.0", + "reth-prune-types", + "reth-stages-types", "serde", "toml 0.8.23", "url", ] -[[package]] -name = "reth-consensus" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "auto_impl", - "reth-execution-types 1.5.0", - "reth-primitives-traits 1.5.0", - "thiserror 2.0.16", -] - [[package]] name = "reth-consensus" version = "1.6.0" @@ -9397,23 +8688,11 @@ dependencies = [ "alloy-consensus", "alloy-primitives", "auto_impl", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-execution-types", + "reth-primitives-traits", "thiserror 2.0.16", ] -[[package]] -name = "reth-consensus-common" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-primitives-traits 1.5.0", -] - [[package]] name = "reth-consensus-common" version = "1.6.0" @@ -9421,9 +8700,9 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-eips", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chainspec", + "reth-consensus", + "reth-primitives-traits", ] [[package]] @@ -9443,7 +8722,7 @@ dependencies = [ "futures", "reqwest", "reth-node-api", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-tracing", "ringbuffer", "serde", @@ -9463,12 +8742,12 @@ dependencies = [ "page_size", "parking_lot", "reth-db-api", - "reth-fs-util 1.6.0", + "reth-fs-util", "reth-libmdbx", - "reth-metrics 1.6.0", + "reth-metrics", "reth-nippy-jar", - "reth-static-file-types 1.6.0", - "reth-storage-errors 1.6.0", + "reth-static-file-types", + "reth-storage-errors", "reth-tracing", "rustc-hash 2.1.1", "strum 0.27.2", @@ -9492,15 +8771,15 @@ dependencies = [ "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs 1.6.0", - "reth-db-models 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", - "reth-stages-types 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", + "reth-codecs", + "reth-db-models", + "reth-ethereum-primitives", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", "roaring", "serde", ] @@ -9515,19 +8794,19 @@ dependencies = [ "alloy-primitives", "boyer-moore-magiclen", "eyre", - "reth-chainspec 1.6.0", - "reth-codecs 1.6.0", + "reth-chainspec", + "reth-codecs", "reth-config", "reth-db-api", "reth-etl", - "reth-execution-errors 1.6.0", - "reth-fs-util 1.6.0", + "reth-execution-errors", + "reth-fs-util", "reth-node-types", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-provider", - "reth-stages-types 1.6.0", - "reth-static-file-types 1.6.0", - "reth-trie 1.6.0", + "reth-stages-types", + "reth-static-file-types", + "reth-trie", "reth-trie-db", "serde", "serde_json", @@ -9535,16 +8814,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "reth-db-models" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "reth-primitives-traits 1.5.0", -] - [[package]] name = "reth-db-models" version = "1.6.0" @@ -9555,8 +8824,8 @@ dependencies = [ "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-codecs", + "reth-primitives-traits", "serde", ] @@ -9573,10 +8842,10 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "rand 0.8.5", - "reth-ethereum-forks 1.6.0", + "reth-ethereum-forks", "reth-net-banlist", "reth-net-nat", - "reth-network-peers 1.6.0", + "reth-network-peers", "schnellru", "secp256k1 0.30.0", "serde", @@ -9600,10 +8869,10 @@ dependencies = [ "itertools 0.14.0", "metrics 0.24.2", "rand 0.9.2", - "reth-chainspec 1.6.0", - "reth-ethereum-forks 1.6.0", - "reth-metrics 1.6.0", - "reth-network-peers 1.6.0", + "reth-chainspec", + "reth-ethereum-forks", + "reth-metrics", + "reth-network-peers", "secp256k1 0.30.0", "thiserror 2.0.16", "tokio", @@ -9621,8 +8890,8 @@ dependencies = [ "hickory-resolver", "linked_hash_set", "parking_lot", - "reth-ethereum-forks 1.6.0", - "reth-network-peers 1.6.0", + "reth-ethereum-forks", + "reth-network-peers", "reth-tokio-util", "schnellru", "secp256k1 0.30.0", @@ -9650,13 +8919,13 @@ dependencies = [ "pin-project", "rayon", "reth-config", - "reth-consensus 1.6.0", - "reth-metrics 1.6.0", + "reth-consensus", + "reth-metrics", "reth-network-p2p", - "reth-network-peers 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", + "reth-network-peers", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", "thiserror 2.0.16", "tokio", "tokio-stream", @@ -9683,7 +8952,7 @@ dependencies = [ "hmac", "pin-project", "rand 0.8.5", - "reth-network-peers 1.6.0", + "reth-network-peers", "secp256k1 0.30.0", "sha2 0.10.9", "sha3", @@ -9705,45 +8974,20 @@ dependencies = [ "alloy-rpc-types-engine", "eyre", "futures-util", - "op-alloy-rpc-types-engine 0.19.1", - "reth-chainspec 1.6.0", - "reth-engine-primitives 1.6.0", - "reth-ethereum-engine-primitives 1.6.0", - "reth-optimism-chainspec 1.6.0", - "reth-payload-builder 1.6.0", - "reth-payload-primitives 1.6.0", + "op-alloy-rpc-types-engine", + "reth-chainspec", + "reth-engine-primitives", + "reth-ethereum-engine-primitives", + "reth-optimism-chainspec", + "reth-payload-builder", + "reth-payload-primitives", "reth-provider", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "tokio", "tokio-stream", "tracing", ] -[[package]] -name = "reth-engine-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "futures", - "reth-chain-state 1.5.0", - "reth-errors 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-execution-types 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-trie 1.5.0", - "reth-trie-common 1.5.0", - "serde", - "thiserror 2.0.16", - "tokio", -] - [[package]] name = "reth-engine-primitives" version = "1.6.0" @@ -9755,15 +8999,15 @@ dependencies = [ "alloy-rpc-types-engine", "auto_impl", "futures", - "reth-chain-state 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie-common 1.6.0", + "reth-chain-state", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-trie-common", "serde", "thiserror 2.0.16", "tokio", @@ -9776,19 +9020,19 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "futures", "pin-project", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-engine-primitives 1.6.0", + "reth-chainspec", + "reth-consensus", + "reth-engine-primitives", "reth-engine-tree", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", + "reth-ethereum-primitives", + "reth-evm", "reth-network-p2p", "reth-node-types", - "reth-payload-builder 1.6.0", + "reth-payload-builder", "reth-provider", "reth-prune", "reth-stages-api", - "reth-tasks 1.6.0", + "reth-tasks", "thiserror 2.0.16", ] @@ -9799,7 +9043,7 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", @@ -9809,28 +9053,28 @@ dependencies = [ "mini-moka", "parking_lot", "rayon", - "reth-chain-state 1.6.0", - "reth-consensus 1.6.0", + "reth-chain-state", + "reth-consensus", "reth-db", - "reth-engine-primitives 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-metrics 1.6.0", + "reth-engine-primitives", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-metrics", "reth-network-p2p", - "reth-payload-builder 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-payload-builder", + "reth-payload-primitives", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-revm 1.6.0", + "reth-revm", "reth-stages-api", - "reth-tasks 1.6.0", - "reth-trie 1.6.0", + "reth-tasks", + "reth-trie", "reth-trie-db", "reth-trie-parallel", - "reth-trie-sparse 1.6.0", + "reth-trie-sparse", "reth-trie-sparse-parallel", "revm 29.0.0", "revm-primitives", @@ -9852,16 +9096,16 @@ dependencies = [ "futures", "itertools 0.14.0", "pin-project", - "reth-chainspec 1.6.0", - "reth-engine-primitives 1.6.0", + "reth-chainspec", + "reth-engine-primitives", "reth-engine-tree", - "reth-errors 1.6.0", - "reth-evm 1.6.0", - "reth-fs-util 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", + "reth-errors", + "reth-evm", + "reth-fs-util", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", "serde", "serde_json", "tokio", @@ -9880,7 +9124,7 @@ dependencies = [ "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", - "reth-ethereum-primitives 1.6.0", + "reth-ethereum-primitives", "snap", "thiserror 2.0.16", ] @@ -9895,7 +9139,7 @@ dependencies = [ "eyre", "futures-util", "reqwest", - "reth-fs-util 1.6.0", + "reth-fs-util", "sha2 0.10.9", "tokio", ] @@ -9913,36 +9157,25 @@ dependencies = [ "reth-db-api", "reth-era", "reth-era-downloader", - "reth-ethereum-primitives 1.6.0", + "reth-ethereum-primitives", "reth-etl", - "reth-fs-util 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-fs-util", + "reth-primitives-traits", "reth-provider", - "reth-stages-types 1.6.0", - "reth-storage-api 1.6.0", + "reth-stages-types", + "reth-storage-api", "tokio", "tracing", ] -[[package]] -name = "reth-errors" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "reth-consensus 1.5.0", - "reth-execution-errors 1.5.0", - "reth-storage-errors 1.5.0", - "thiserror 2.0.16", -] - [[package]] name = "reth-errors" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "reth-consensus 1.6.0", - "reth-execution-errors 1.6.0", - "reth-storage-errors 1.6.0", + "reth-consensus", + "reth-execution-errors", + "reth-storage-errors", "thiserror 2.0.16", ] @@ -9958,13 +9191,13 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs 1.6.0", + "reth-codecs", "reth-ecies", - "reth-eth-wire-types 1.6.0", - "reth-ethereum-forks 1.6.0", - "reth-metrics 1.6.0", - "reth-network-peers 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-eth-wire-types", + "reth-ethereum-forks", + "reth-metrics", + "reth-network-peers", + "reth-primitives-traits", "serde", "snap", "thiserror 2.0.16", @@ -9974,27 +9207,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "reth-eth-wire-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-hardforks 0.2.13", - "alloy-primitives", - "alloy-rlp", - "bytes", - "derive_more", - "reth-chainspec 1.5.0", - "reth-codecs-derive 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "serde", - "thiserror 2.0.16", -] - [[package]] name = "reth-eth-wire-types" version = "1.6.0" @@ -10008,10 +9220,10 @@ dependencies = [ "alloy-rlp", "bytes", "derive_more", - "reth-chainspec 1.6.0", - "reth-codecs-derive 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chainspec", + "reth-codecs-derive", + "reth-ethereum-primitives", + "reth-primitives-traits", "serde", "thiserror 2.0.16", ] @@ -10023,7 +9235,7 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "clap", "eyre", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-cli", "reth-cli-commands", "reth-cli-runner", @@ -10045,32 +9257,14 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-consensus-common 1.6.0", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-execution-types", + "reth-primitives-traits", "tracing", ] -[[package]] -name = "reth-ethereum-engine-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "reth-engine-primitives 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "serde", - "sha2 0.10.9", - "thiserror 2.0.16", -] - [[package]] name = "reth-ethereum-engine-primitives" version = "1.6.0" @@ -10080,28 +9274,15 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", - "reth-engine-primitives 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-engine-primitives", + "reth-ethereum-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "serde", "sha2 0.10.9", "thiserror 2.0.16", ] -[[package]] -name = "reth-ethereum-forks" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eip2124", - "alloy-hardforks 0.2.13", - "alloy-primitives", - "auto_impl", - "once_cell", - "rustc-hash 2.1.1", -] - [[package]] name = "reth-ethereum-forks" version = "1.6.0" @@ -10126,40 +9307,25 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", - "reth-basic-payload-builder 1.6.0", - "reth-chainspec 1.6.0", - "reth-consensus-common 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", + "reth-basic-payload-builder", + "reth-chainspec", + "reth-consensus-common", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", "reth-evm-ethereum", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-payload-validator 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", - "reth-transaction-pool 1.6.0", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-payload-validator", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", + "reth-transaction-pool", "revm 29.0.0", "tracing", ] -[[package]] -name = "reth-ethereum-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "reth-primitives-traits 1.5.0", - "reth-zstd-compressors 1.5.0", - "serde", - "serde_with", -] - [[package]] name = "reth-ethereum-primitives" version = "1.6.0" @@ -10171,9 +9337,9 @@ dependencies = [ "alloy-rlp", "arbitrary", "modular-bitfield", - "reth-codecs 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-zstd-compressors 1.6.0", + "reth-codecs", + "reth-primitives-traits", + "reth-zstd-compressors", "serde", "serde_with", ] @@ -10188,27 +9354,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "reth-evm" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.12.3", - "alloy-primitives", - "auto_impl", - "derive_more", - "futures-util", - "reth-execution-errors 1.5.0", - "reth-execution-types 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", - "revm 26.0.1", -] - [[package]] name = "reth-evm" version = "1.6.0" @@ -10216,19 +9361,19 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-primitives", "auto_impl", "derive_more", "futures-util", "metrics 0.24.2", - "reth-execution-errors 1.6.0", - "reth-execution-types 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", + "reth-execution-errors", + "reth-execution-types", + "reth-metrics", + "reth-primitives-traits", + "reth-storage-api", + "reth-storage-errors", + "reth-trie-common", "revm 29.0.0", ] @@ -10239,61 +9384,32 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", - "reth-chainspec 1.6.0", - "reth-ethereum-forks 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-errors 1.6.0", + "reth-chainspec", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-primitives-traits", + "reth-storage-errors", "revm 29.0.0", ] -[[package]] -name = "reth-execution-errors" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-evm 0.12.3", - "alloy-primitives", - "alloy-rlp", - "nybbles", - "reth-storage-errors 1.5.0", - "thiserror 2.0.16", -] - [[package]] name = "reth-execution-errors" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "alloy-evm 0.20.1", + "alloy-evm", "alloy-primitives", "alloy-rlp", "nybbles", - "reth-storage-errors 1.6.0", + "reth-storage-errors", "thiserror 2.0.16", ] -[[package]] -name = "reth-execution-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.12.3", - "alloy-primitives", - "derive_more", - "reth-ethereum-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-trie-common 1.5.0", - "revm 26.0.1", -] - [[package]] name = "reth-execution-types" version = "1.6.0" @@ -10301,12 +9417,12 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-primitives", "derive_more", - "reth-ethereum-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie-common 1.6.0", + "reth-ethereum-primitives", + "reth-primitives-traits", + "reth-trie-common", "revm 29.0.0", "serde", "serde_with", @@ -10325,23 +9441,23 @@ dependencies = [ "itertools 0.14.0", "metrics 0.24.2", "parking_lot", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", + "reth-chain-state", + "reth-chainspec", "reth-config", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", + "reth-ethereum-primitives", + "reth-evm", "reth-exex-types", - "reth-fs-util 1.6.0", - "reth-metrics 1.6.0", + "reth-fs-util", + "reth-metrics", "reth-node-api", "reth-node-core", - "reth-payload-builder 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.6.0", - "reth-revm 1.6.0", + "reth-prune-types", + "reth-revm", "reth-stages-api", - "reth-tasks 1.6.0", + "reth-tasks", "reth-tracing", "rmp-serde", "thiserror 2.0.16", @@ -10357,23 +9473,13 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-eips", "alloy-primitives", - "reth-chain-state 1.6.0", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chain-state", + "reth-execution-types", + "reth-primitives-traits", "serde", "serde_with", ] -[[package]] -name = "reth-fs-util" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "serde", - "serde_json", - "thiserror 2.0.16", -] - [[package]] name = "reth-fs-util" version = "1.6.0" @@ -10395,19 +9501,19 @@ dependencies = [ "alloy-rpc-types-debug", "eyre", "futures", - "jsonrpsee 0.26.0", + "jsonrpsee", "pretty_assertions", - "reth-chainspec 1.6.0", - "reth-engine-primitives 1.6.0", - "reth-evm 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chainspec", + "reth-engine-primitives", + "reth-evm", + "reth-primitives-traits", "reth-provider", - "reth-revm 1.6.0", + "reth-revm", "reth-rpc-api", "reth-tracing", - "reth-trie 1.6.0", - "revm-bytecode 6.2.2", - "revm-database 7.0.5", + "reth-trie", + "revm-bytecode", + "revm-database", "serde", "serde_json", ] @@ -10421,14 +9527,14 @@ dependencies = [ "futures", "futures-util", "interprocess", - "jsonrpsee 0.26.0", + "jsonrpsee", "pin-project", "serde_json", "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", - "tower 0.5.2", + "tower", "tracing", ] @@ -10458,15 +9564,6 @@ dependencies = [ "cc", ] -[[package]] -name = "reth-metrics" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "metrics 0.24.2", - "metrics-derive", -] - [[package]] name = "reth-metrics" version = "1.6.0" @@ -10522,28 +9619,28 @@ dependencies = [ "pin-project", "rand 0.8.5", "rand 0.9.2", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", + "reth-chainspec", + "reth-consensus", "reth-discv4", "reth-discv5", "reth-dns-discovery", "reth-ecies", "reth-eth-wire", - "reth-eth-wire-types 1.6.0", - "reth-ethereum-forks 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-fs-util 1.6.0", - "reth-metrics 1.6.0", + "reth-eth-wire-types", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-fs-util", + "reth-metrics", "reth-net-banlist", "reth-network-api", "reth-network-p2p", - "reth-network-peers 1.6.0", + "reth-network-peers", "reth-network-types", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", "reth-tokio-util", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "rustc-hash 2.1.1", "schnellru", "secp256k1 0.30.0", @@ -10569,10 +9666,10 @@ dependencies = [ "derive_more", "enr", "futures", - "reth-eth-wire-types 1.6.0", - "reth-ethereum-forks 1.6.0", + "reth-eth-wire-types", + "reth-ethereum-forks", "reth-network-p2p", - "reth-network-peers 1.6.0", + "reth-network-peers", "reth-network-types", "reth-tokio-util", "serde", @@ -10593,30 +9690,17 @@ dependencies = [ "derive_more", "futures", "parking_lot", - "reth-consensus 1.6.0", - "reth-eth-wire-types 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-network-peers 1.6.0", + "reth-consensus", + "reth-eth-wire-types", + "reth-ethereum-primitives", + "reth-network-peers", "reth-network-types", - "reth-primitives-traits 1.6.0", - "reth-storage-errors 1.6.0", + "reth-primitives-traits", + "reth-storage-errors", "tokio", "tracing", ] -[[package]] -name = "reth-network-peers" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "secp256k1 0.30.0", - "serde_with", - "thiserror 2.0.16", - "url", -] - [[package]] name = "reth-network-peers" version = "1.6.0" @@ -10640,7 +9724,7 @@ dependencies = [ "alloy-eip2124", "humantime-serde", "reth-net-banlist", - "reth-network-peers 1.6.0", + "reth-network-peers", "serde", "serde_json", "tracing", @@ -10656,7 +9740,7 @@ dependencies = [ "derive_more", "lz4_flex", "memmap2", - "reth-fs-util 1.6.0", + "reth-fs-util", "serde", "thiserror 2.0.16", "tracing", @@ -10670,21 +9754,21 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-rpc-types-engine", "eyre", - "reth-basic-payload-builder 1.6.0", - "reth-consensus 1.6.0", + "reth-basic-payload-builder", + "reth-consensus", "reth-db-api", - "reth-engine-primitives 1.6.0", - "reth-evm 1.6.0", + "reth-engine-primitives", + "reth-evm", "reth-network-api", "reth-node-core", "reth-node-types", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", "reth-provider", - "reth-tasks 1.6.0", + "reth-tasks", "reth-tokio-util", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", ] [[package]] @@ -10702,27 +9786,27 @@ dependencies = [ "eyre", "fdlimit", "futures", - "jsonrpsee 0.26.0", + "jsonrpsee", "rayon", - "reth-basic-payload-builder 1.6.0", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", + "reth-basic-payload-builder", + "reth-chain-state", + "reth-chainspec", "reth-cli-util", "reth-config", - "reth-consensus 1.6.0", + "reth-consensus", "reth-consensus-debug-client", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", "reth-engine-local", - "reth-engine-primitives 1.6.0", + "reth-engine-primitives", "reth-engine-service", "reth-engine-tree", "reth-engine-util", - "reth-evm 1.6.0", + "reth-evm", "reth-exex", - "reth-fs-util 1.6.0", + "reth-fs-util", "reth-invalid-block-hooks", "reth-network", "reth-network-api", @@ -10732,8 +9816,8 @@ dependencies = [ "reth-node-ethstats", "reth-node-events", "reth-node-metrics", - "reth-payload-builder 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", "reth-prune", "reth-rpc", @@ -10744,10 +9828,10 @@ dependencies = [ "reth-rpc-layer", "reth-stages", "reth-static-file", - "reth-tasks 1.6.0", + "reth-tasks", "reth-tokio-util", "reth-tracing", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "secp256k1 0.30.0", "serde_json", "tokio", @@ -10771,30 +9855,30 @@ dependencies = [ "futures", "humantime", "rand 0.9.2", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-cli-util", "reth-config", - "reth-consensus 1.6.0", + "reth-consensus", "reth-db", "reth-discv4", "reth-discv5", "reth-engine-local", - "reth-engine-primitives 1.6.0", - "reth-ethereum-forks 1.6.0", + "reth-engine-primitives", + "reth-ethereum-forks", "reth-net-nat", "reth-network", "reth-network-p2p", - "reth-network-peers 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", + "reth-network-peers", + "reth-primitives-traits", + "reth-prune-types", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-stages-types 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", + "reth-stages-types", + "reth-storage-api", + "reth-storage-errors", "reth-tracing", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "secp256k1 0.30.0", "serde", "shellexpand", @@ -10817,22 +9901,22 @@ dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", "eyre", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-engine-local", - "reth-engine-primitives 1.6.0", + "reth-engine-primitives", "reth-ethereum-consensus", - "reth-ethereum-engine-primitives 1.6.0", + "reth-ethereum-engine-primitives", "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", + "reth-ethereum-primitives", + "reth-evm", "reth-evm-ethereum", "reth-network", "reth-node-api", "reth-node-builder", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-payload-primitives", + "reth-primitives-traits", "reth-provider", - "reth-revm 1.6.0", + "reth-revm", "reth-rpc", "reth-rpc-api", "reth-rpc-builder", @@ -10840,7 +9924,7 @@ dependencies = [ "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "revm 29.0.0", "tokio", ] @@ -10854,11 +9938,11 @@ dependencies = [ "alloy-primitives", "chrono", "futures-util", - "reth-chain-state 1.6.0", + "reth-chain-state", "reth-network-api", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-transaction-pool 1.6.0", + "reth-primitives-traits", + "reth-storage-api", + "reth-transaction-pool", "serde", "serde_json", "thiserror 2.0.16", @@ -10882,13 +9966,13 @@ dependencies = [ "futures", "humantime", "pin-project", - "reth-engine-primitives 1.6.0", + "reth-engine-primitives", "reth-network-api", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", + "reth-primitives-traits", + "reth-prune-types", "reth-stages", - "reth-static-file-types 1.6.0", - "reth-storage-api 1.6.0", + "reth-static-file-types", + "reth-storage-api", "tokio", "tracing", ] @@ -10906,11 +9990,11 @@ dependencies = [ "metrics-process 2.4.0", "metrics-util 0.19.1", "procfs 0.17.0", - "reth-metrics 1.6.0", - "reth-tasks 1.6.0", + "reth-metrics", + "reth-tasks", "tikv-jemalloc-ctl", "tokio", - "tower 0.5.2", + "tower", "tracing", ] @@ -10919,33 +10003,11 @@ name = "reth-node-types" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-db-api", - "reth-engine-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", -] - -[[package]] -name = "reth-optimism-chainspec" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-hardforks 0.2.13", - "alloy-primitives", - "derive_more", - "op-alloy-rpc-types 0.18.14", - "reth-chainspec 1.5.0", - "reth-ethereum-forks 1.5.0", - "reth-network-peers 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "serde_json", + "reth-engine-primitives", + "reth-payload-primitives", + "reth-primitives-traits", ] [[package]] @@ -10961,15 +10023,15 @@ dependencies = [ "alloy-primitives", "derive_more", "miniz_oxide", - "op-alloy-consensus 0.19.1", - "op-alloy-rpc-types 0.19.1", + "op-alloy-consensus", + "op-alloy-rpc-types", "paste", - "reth-chainspec 1.6.0", - "reth-ethereum-forks 1.6.0", - "reth-network-peers 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chainspec", + "reth-ethereum-forks", + "reth-network-peers", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", "serde", "serde_json", "tar-no-std", @@ -10989,33 +10051,33 @@ dependencies = [ "derive_more", "eyre", "futures-util", - "op-alloy-consensus 0.19.1", - "reth-chainspec 1.6.0", + "op-alloy-consensus", + "reth-chainspec", "reth-cli", "reth-cli-commands", "reth-cli-runner", - "reth-consensus 1.6.0", + "reth-consensus", "reth-db", "reth-db-api", "reth-db-common", "reth-downloaders", - "reth-execution-types 1.6.0", - "reth-fs-util 1.6.0", + "reth-execution-types", + "reth-fs-util", "reth-node-builder", "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-consensus 1.6.0", - "reth-optimism-evm 1.6.0", + "reth-optimism-chainspec", + "reth-optimism-consensus", + "reth-optimism-evm", "reth-optimism-node", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-optimism-primitives", + "reth-primitives-traits", "reth-provider", "reth-prune", "reth-stages", "reth-static-file", - "reth-static-file-types 1.6.0", + "reth-static-file-types", "reth-tracing", "serde", "tokio", @@ -11023,31 +10085,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "reth-optimism-consensus" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-trie", - "op-alloy-consensus 0.18.14", - "reth-chainspec 1.5.0", - "reth-consensus 1.5.0", - "reth-consensus-common 1.5.0", - "reth-execution-types 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", - "revm 26.0.1", - "thiserror 2.0.16", - "tracing", -] - [[package]] name = "reth-optimism-consensus" version = "1.6.0" @@ -11057,47 +10094,22 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-trie", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-consensus-common 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-execution-types", + "reth-optimism-chainspec", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-storage-api", + "reth-storage-errors", + "reth-trie-common", "revm 29.0.0", "thiserror 2.0.16", "tracing", ] -[[package]] -name = "reth-optimism-evm" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.12.3", - "alloy-op-evm 0.12.3", - "alloy-primitives", - "op-alloy-consensus 0.18.14", - "op-revm 7.0.1", - "reth-chainspec 1.5.0", - "reth-evm 1.5.0", - "reth-execution-errors 1.5.0", - "reth-execution-types 1.5.0", - "reth-optimism-chainspec 1.5.0", - "reth-optimism-consensus 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "revm 26.0.1", - "thiserror 2.0.16", -] - [[package]] name = "reth-optimism-evm" version = "1.6.0" @@ -11105,23 +10117,23 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.20.1", - "alloy-op-evm 0.20.1", - "alloy-primitives", - "op-alloy-consensus 0.19.1", - "op-alloy-rpc-types-engine 0.19.1", - "op-revm 10.0.0", - "reth-chainspec 1.6.0", - "reth-evm 1.6.0", - "reth-execution-errors 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-consensus 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "alloy-evm", + "alloy-op-evm", + "alloy-primitives", + "op-alloy-consensus", + "op-alloy-rpc-types-engine", + "op-revm", + "reth-chainspec", + "reth-evm", + "reth-execution-errors", + "reth-execution-types", + "reth-optimism-chainspec", + "reth-optimism-consensus", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", "reth-rpc-eth-api", - "reth-storage-errors 1.6.0", + "reth-storage-errors", "revm 29.0.0", "thiserror 2.0.16", ] @@ -11138,17 +10150,17 @@ dependencies = [ "brotli", "eyre", "futures-util", - "reth-chain-state 1.6.0", - "reth-errors 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-evm 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", + "reth-chain-state", + "reth-errors", + "reth-evm", + "reth-execution-types", + "reth-optimism-evm", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-revm", "reth-rpc-eth-api", "reth-rpc-eth-types", - "reth-storage-api 1.6.0", + "reth-storage-api", "serde", "serde_json", "tokio", @@ -11157,26 +10169,15 @@ dependencies = [ "url", ] -[[package]] -name = "reth-optimism-forks" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-op-hardforks 0.2.13", - "alloy-primitives", - "once_cell", - "reth-ethereum-forks 1.5.0", -] - [[package]] name = "reth-optimism-forks" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ - "alloy-op-hardforks 0.3.0", + "alloy-op-hardforks", "alloy-primitives", "once_cell", - "reth-ethereum-forks 1.6.0", + "reth-ethereum-forks", ] [[package]] @@ -11190,35 +10191,35 @@ dependencies = [ "alloy-rpc-types-eth", "clap", "eyre", - "op-alloy-consensus 0.19.1", - "op-alloy-rpc-types-engine 0.19.1", - "op-revm 10.0.0", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", + "op-alloy-consensus", + "op-alloy-rpc-types-engine", + "op-revm", + "reth-chainspec", + "reth-consensus", "reth-engine-local", - "reth-evm 1.6.0", + "reth-evm", "reth-network", "reth-node-api", "reth-node-builder", "reth-node-core", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-consensus 1.6.0", - "reth-optimism-evm 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-payload-builder 1.6.0", - "reth-optimism-primitives 1.6.0", + "reth-optimism-chainspec", + "reth-optimism-consensus", + "reth-optimism-evm", + "reth-optimism-forks", + "reth-optimism-payload-builder", + "reth-optimism-primitives", "reth-optimism-rpc", "reth-optimism-storage", - "reth-optimism-txpool 1.6.0", - "reth-payload-builder 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-optimism-txpool", + "reth-payload-builder", + "reth-primitives-traits", "reth-provider", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-server-types", "reth-tracing", - "reth-transaction-pool 1.6.0", - "reth-trie-common 1.6.0", + "reth-transaction-pool", + "reth-trie-common", "revm 29.0.0", "serde", "tokio", @@ -11227,8 +10228,8 @@ dependencies = [ [[package]] name = "reth-optimism-payload-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +version = "1.6.0" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", @@ -11237,27 +10238,27 @@ dependencies = [ "alloy-rpc-types-debug", "alloy-rpc-types-engine", "derive_more", - "op-alloy-consensus 0.18.14", - "op-alloy-rpc-types-engine 0.18.14", - "reth-basic-payload-builder 1.5.0", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-evm 1.5.0", - "reth-execution-types 1.5.0", - "reth-optimism-evm 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-optimism-txpool 1.5.0", - "reth-payload-builder 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-payload-util 1.5.0", - "reth-payload-validator 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-revm 1.5.0", - "reth-storage-api 1.5.0", - "reth-transaction-pool 1.5.0", - "revm 26.0.1", + "op-alloy-consensus", + "op-alloy-rpc-types-engine", + "reth-basic-payload-builder", + "reth-chain-state", + "reth-chainspec", + "reth-evm", + "reth-execution-types", + "reth-optimism-evm", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-optimism-txpool", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-payload-util", + "reth-payload-validator", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", + "reth-transaction-pool", + "revm 29.0.0", "serde", "sha2 0.10.9", "thiserror 2.0.16", @@ -11265,7 +10266,7 @@ dependencies = [ ] [[package]] -name = "reth-optimism-payload-builder" +name = "reth-optimism-primitives" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ @@ -11273,77 +10274,25 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "derive_more", - "op-alloy-consensus 0.19.1", - "op-alloy-rpc-types-engine 0.19.1", - "reth-basic-payload-builder 1.6.0", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-evm 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-optimism-txpool 1.6.0", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-payload-util 1.6.0", - "reth-payload-validator 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", - "reth-transaction-pool 1.6.0", - "revm 29.0.0", + "arbitrary", + "bytes", + "modular-bitfield", + "op-alloy-consensus", + "reth-codecs", + "reth-primitives-traits", + "reth-zstd-compressors", "serde", - "sha2 0.10.9", - "thiserror 2.0.16", - "tracing", + "serde_with", ] [[package]] -name = "reth-optimism-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" +name = "reth-optimism-rpc" +version = "1.6.0" +source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "op-alloy-consensus 0.18.14", - "reth-primitives-traits 1.5.0", -] - -[[package]] -name = "reth-optimism-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "arbitrary", - "bytes", - "modular-bitfield", - "op-alloy-consensus 0.19.1", - "reth-codecs 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-zstd-compressors 1.6.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-optimism-rpc" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", + "alloy-json-rpc", "alloy-primitives", "alloy-rpc-client", "alloy-rpc-types-debug", @@ -11354,43 +10303,43 @@ dependencies = [ "async-trait", "derive_more", "eyre", - "jsonrpsee 0.26.0", + "jsonrpsee", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", "metrics 0.24.2", - "op-alloy-consensus 0.19.1", + "op-alloy-consensus", "op-alloy-network", "op-alloy-rpc-jsonrpsee", - "op-alloy-rpc-types 0.19.1", - "op-alloy-rpc-types-engine 0.19.1", - "op-revm 10.0.0", + "op-alloy-rpc-types", + "op-alloy-rpc-types-engine", + "op-revm", "reqwest", - "reth-chainspec 1.6.0", - "reth-evm 1.6.0", - "reth-metrics 1.6.0", + "reth-chainspec", + "reth-evm", + "reth-metrics", "reth-node-api", "reth-node-builder", - "reth-optimism-evm 1.6.0", + "reth-optimism-evm", "reth-optimism-flashblocks", - "reth-optimism-forks 1.6.0", - "reth-optimism-payload-builder 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-optimism-txpool 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-optimism-forks", + "reth-optimism-payload-builder", + "reth-optimism-primitives", + "reth-optimism-txpool", + "reth-primitives-traits", "reth-rpc", "reth-rpc-api", "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "reth-transaction-pool 1.6.0", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", "revm 29.0.0", "serde_json", "thiserror 2.0.16", "tokio", - "tower 0.5.2", + "tower", "tracing", ] @@ -11401,49 +10350,13 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-primitives", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-db-api", "reth-node-api", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-optimism-primitives", + "reth-primitives-traits", "reth-provider", - "reth-storage-api 1.6.0", -] - -[[package]] -name = "reth-optimism-txpool" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-serde", - "c-kzg", - "derive_more", - "futures-util", - "metrics 0.24.2", - "op-alloy-consensus 0.18.14", - "op-alloy-flz", - "op-alloy-rpc-types 0.18.14", - "op-revm 7.0.1", - "parking_lot", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-metrics 1.5.0", - "reth-optimism-evm 1.5.0", - "reth-optimism-forks 1.5.0", - "reth-optimism-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-transaction-pool 1.5.0", - "serde", - "thiserror 2.0.16", - "tokio", - "tracing", + "reth-storage-api", ] [[package]] @@ -11462,46 +10375,26 @@ dependencies = [ "derive_more", "futures-util", "metrics 0.24.2", - "op-alloy-consensus 0.19.1", + "op-alloy-consensus", "op-alloy-flz", - "op-alloy-rpc-types 0.19.1", - "op-revm 10.0.0", + "op-alloy-rpc-types", + "op-revm", "parking_lot", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-metrics 1.6.0", - "reth-optimism-evm 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-transaction-pool 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-metrics", + "reth-optimism-evm", + "reth-optimism-forks", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-storage-api", + "reth-transaction-pool", "serde", "thiserror 2.0.16", "tokio", "tracing", ] -[[package]] -name = "reth-payload-builder" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types", - "futures-util", - "metrics 0.24.2", - "reth-chain-state 1.5.0", - "reth-ethereum-engine-primitives 1.5.0", - "reth-metrics 1.5.0", - "reth-payload-builder-primitives 1.5.0", - "reth-payload-primitives 1.5.0", - "reth-primitives-traits 1.5.0", - "tokio", - "tokio-stream", - "tracing", -] - [[package]] name = "reth-payload-builder" version = "1.6.0" @@ -11511,24 +10404,12 @@ dependencies = [ "alloy-rpc-types", "futures-util", "metrics 0.24.2", - "reth-chain-state 1.6.0", - "reth-ethereum-engine-primitives 1.6.0", - "reth-metrics 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-builder-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "pin-project", - "reth-payload-primitives 1.5.0", + "reth-chain-state", + "reth-ethereum-engine-primitives", + "reth-metrics", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "tokio", "tokio-stream", "tracing", @@ -11540,31 +10421,12 @@ version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "pin-project", - "reth-payload-primitives 1.6.0", + "reth-payload-primitives", "tokio", "tokio-stream", "tracing", ] -[[package]] -name = "reth-payload-primitives" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "op-alloy-rpc-types-engine 0.18.14", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-errors 1.5.0", - "reth-primitives-traits 1.5.0", - "serde", - "thiserror 2.0.16", - "tokio", -] - [[package]] name = "reth-payload-primitives" version = "1.6.0" @@ -11574,26 +10436,16 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", - "op-alloy-rpc-types-engine 0.19.1", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-errors 1.6.0", - "reth-primitives-traits 1.6.0", + "op-alloy-rpc-types-engine", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-primitives-traits", "serde", "thiserror 2.0.16", "tokio", ] -[[package]] -name = "reth-payload-util" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "reth-transaction-pool 1.5.0", -] - [[package]] name = "reth-payload-util" version = "1.6.0" @@ -11601,17 +10453,7 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-primitives", - "reth-transaction-pool 1.6.0", -] - -[[package]] -name = "reth-payload-validator" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types-engine", - "reth-primitives-traits 1.5.0", + "reth-transaction-pool", ] [[package]] @@ -11621,7 +10463,7 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", ] [[package]] @@ -11632,37 +10474,10 @@ dependencies = [ "alloy-consensus", "c-kzg", "once_cell", - "reth-ethereum-forks 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-static-file-types 1.6.0", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-trie", - "auto_impl", - "bytes", - "derive_more", - "once_cell", - "op-alloy-consensus 0.18.14", - "reth-codecs 1.5.0", - "revm-bytecode 5.0.0", - "revm-primitives", - "revm-state 6.0.0", - "secp256k1 0.30.0", - "serde", - "serde_with", - "thiserror 2.0.16", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-primitives-traits", + "reth-static-file-types", ] [[package]] @@ -11684,14 +10499,14 @@ dependencies = [ "derive_more", "modular-bitfield", "once_cell", - "op-alloy-consensus 0.19.1", + "op-alloy-consensus", "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs 1.6.0", - "revm-bytecode 6.2.2", + "reth-codecs", + "revm-bytecode", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "secp256k1 0.30.0", "serde", "serde_with", @@ -11714,30 +10529,30 @@ dependencies = [ "notify", "parking_lot", "rayon", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-codecs 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-codecs", "reth-db", "reth-db-api", - "reth-errors 1.6.0", - "reth-ethereum-engine-primitives 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-fs-util 1.6.0", - "reth-metrics 1.6.0", + "reth-errors", + "reth-ethereum-engine-primitives", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-fs-util", + "reth-metrics", "reth-nippy-jar", "reth-node-types", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", - "reth-stages-types 1.6.0", - "reth-static-file-types 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie 1.6.0", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-static-file-types", + "reth-storage-api", + "reth-storage-errors", + "reth-trie", "reth-trie-db", - "revm-database 7.0.5", - "revm-state 7.0.5", + "revm-database", + "revm-state", "strum 0.27.2", "tokio", "tracing", @@ -11754,16 +10569,16 @@ dependencies = [ "itertools 0.14.0", "metrics 0.24.2", "rayon", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-config", "reth-db-api", - "reth-errors 1.6.0", + "reth-errors", "reth-exex-types", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-metrics", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.6.0", - "reth-static-file-types 1.6.0", + "reth-prune-types", + "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", "thiserror 2.0.16", @@ -11771,16 +10586,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "reth-prune-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-primitives", - "derive_more", - "thiserror 2.0.16", -] - [[package]] name = "reth-prune-types" version = "1.6.0" @@ -11790,7 +10595,7 @@ dependencies = [ "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs 1.6.0", + "reth-codecs", "serde", "thiserror 2.0.16", ] @@ -11805,10 +10610,10 @@ dependencies = [ "alloy-rlp", "futures", "reth-eth-wire", - "reth-ethereum-primitives 1.6.0", + "reth-ethereum-primitives", "reth-network", "reth-network-api", - "reth-storage-errors 1.6.0", + "reth-storage-errors", "tokio", "tokio-stream", "tracing", @@ -11824,46 +10629,33 @@ dependencies = [ "eyre", "futures", "parking_lot", - "reth-chain-state 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", + "reth-chain-state", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", "reth-node-api", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-ress-protocol", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", + "reth-revm", + "reth-storage-api", + "reth-tasks", "reth-tokio-util", - "reth-trie 1.6.0", + "reth-trie", "schnellru", "tokio", "tracing", ] -[[package]] -name = "reth-revm" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-primitives", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie 1.5.0", - "revm 26.0.1", -] - [[package]] name = "reth-revm" version = "1.6.0" source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916bdbc6ed6485821af4f51015" dependencies = [ "alloy-primitives", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie 1.6.0", + "reth-primitives-traits", + "reth-storage-api", + "reth-storage-errors", + "reth-trie", "revm 29.0.0", ] @@ -11875,7 +10667,7 @@ dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-genesis", "alloy-network", "alloy-primitives", @@ -11900,37 +10692,37 @@ dependencies = [ "http-body 1.0.1", "hyper 1.7.0", "itertools 0.14.0", - "jsonrpsee 0.26.0", + "jsonrpsee", "jsonrpsee-types 0.26.0", "jsonwebtoken", "parking_lot", "pin-project", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-consensus-common 1.6.0", - "reth-engine-primitives 1.6.0", - "reth-errors 1.6.0", - "reth-evm 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-engine-primitives", + "reth-errors", + "reth-evm", "reth-evm-ethereum", - "reth-execution-types 1.6.0", - "reth-metrics 1.6.0", + "reth-execution-types", + "reth-metrics", "reth-network-api", - "reth-network-peers 1.6.0", + "reth-network-peers", "reth-network-types", "reth-node-api", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", + "reth-primitives-traits", + "reth-revm", "reth-rpc-api", "reth-rpc-convert", "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "reth-transaction-pool 1.6.0", - "reth-trie-common 1.6.0", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie-common", "revm 29.0.0", "revm-inspectors", "revm-primitives", @@ -11940,7 +10732,7 @@ dependencies = [ "thiserror 2.0.16", "tokio", "tokio-stream", - "tower 0.5.2", + "tower", "tracing", "tracing-futures", ] @@ -11965,12 +10757,12 @@ dependencies = [ "alloy-rpc-types-trace", "alloy-rpc-types-txpool", "alloy-serde", - "jsonrpsee 0.26.0", - "reth-chain-state 1.6.0", - "reth-engine-primitives 1.6.0", - "reth-network-peers 1.6.0", + "jsonrpsee", + "reth-chain-state", + "reth-engine-primitives", + "reth-network-peers", "reth-rpc-eth-api", - "reth-trie-common 1.6.0", + "reth-trie-common", ] [[package]] @@ -11981,32 +10773,32 @@ dependencies = [ "alloy-network", "alloy-provider", "http 1.3.1", - "jsonrpsee 0.26.0", + "jsonrpsee", "metrics 0.24.2", "pin-project", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-evm 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-consensus", + "reth-evm", "reth-ipc", - "reth-metrics 1.6.0", + "reth-metrics", "reth-network-api", "reth-node-core", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-rpc", "reth-rpc-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-layer", "reth-rpc-server-types", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "reth-transaction-pool 1.6.0", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", "serde", "thiserror 2.0.16", "tokio", "tokio-util", - "tower 0.5.2", + "tower", "tower-http", "tracing", ] @@ -12023,15 +10815,15 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-signer", "jsonrpsee-types 0.26.0", - "op-alloy-consensus 0.19.1", + "op-alloy-consensus", "op-alloy-network", - "op-alloy-rpc-types 0.19.1", - "op-revm 10.0.0", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", + "op-alloy-rpc-types", + "op-revm", + "reth-ethereum-primitives", + "reth-evm", + "reth-optimism-primitives", + "reth-primitives-traits", + "reth-storage-api", "revm-context 9.0.2", "thiserror 2.0.16", ] @@ -12049,17 +10841,17 @@ dependencies = [ "jsonrpsee-types 0.26.0", "metrics 0.24.2", "parking_lot", - "reth-chainspec 1.6.0", - "reth-engine-primitives 1.6.0", - "reth-metrics 1.6.0", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", + "reth-chainspec", + "reth-engine-primitives", + "reth-metrics", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "reth-rpc-api", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "reth-transaction-pool 1.6.0", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", "serde", "thiserror 2.0.16", "tokio", @@ -12074,7 +10866,7 @@ dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-json-rpc", "alloy-network", "alloy-primitives", @@ -12086,24 +10878,24 @@ dependencies = [ "auto_impl", "dyn-clone", "futures", - "jsonrpsee 0.26.0", + "jsonrpsee", "jsonrpsee-types 0.26.0", "parking_lot", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-errors 1.6.0", - "reth-evm 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-evm", "reth-network-api", "reth-node-api", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", + "reth-primitives-traits", + "reth-revm", "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "reth-transaction-pool 1.6.0", - "reth-trie-common 1.6.0", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie-common", "revm 29.0.0", "revm-inspectors", "tokio", @@ -12117,7 +10909,7 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm 0.20.1", + "alloy-evm", "alloy-network", "alloy-primitives", "alloy-rpc-client", @@ -12132,21 +10924,21 @@ dependencies = [ "metrics 0.24.2", "rand 0.9.2", "reqwest", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-metrics", + "reth-primitives-traits", + "reth-revm", "reth-rpc-convert", "reth-rpc-server-types", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "reth-transaction-pool 1.6.0", - "reth-trie 1.6.0", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "reth-trie", "revm 29.0.0", "revm-inspectors", "schnellru", @@ -12164,9 +10956,9 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-rpc-types-engine", "http 1.3.1", - "jsonrpsee-http-client 0.26.0", + "jsonrpsee-http-client", "pin-project", - "tower 0.5.2", + "tower", "tower-http", "tracing", ] @@ -12181,7 +10973,7 @@ dependencies = [ "alloy-rpc-types-engine", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", - "reth-errors 1.6.0", + "reth-errors", "reth-network-api", "serde", "strum 0.27.2", @@ -12202,29 +10994,29 @@ dependencies = [ "num-traits", "rayon", "reqwest", - "reth-codecs 1.6.0", + "reth-codecs", "reth-config", - "reth-consensus 1.6.0", + "reth-consensus", "reth-db", "reth-db-api", "reth-era", "reth-era-downloader", "reth-era-utils", "reth-etl", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", + "reth-evm", + "reth-execution-types", "reth-exex", - "reth-fs-util 1.6.0", + "reth-fs-util", "reth-network-p2p", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-prune-types 1.6.0", - "reth-revm 1.6.0", + "reth-prune-types", + "reth-revm", "reth-stages-api", - "reth-static-file-types 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie 1.6.0", + "reth-static-file-types", + "reth-storage-errors", + "reth-trie", "reth-trie-db", "thiserror 2.0.16", "tokio", @@ -12242,31 +11034,22 @@ dependencies = [ "auto_impl", "futures-util", "metrics 0.24.2", - "reth-consensus 1.6.0", - "reth-errors 1.6.0", - "reth-metrics 1.6.0", + "reth-consensus", + "reth-errors", + "reth-metrics", "reth-network-p2p", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-provider", "reth-prune", - "reth-stages-types 1.6.0", + "reth-stages-types", "reth-static-file", - "reth-static-file-types 1.6.0", + "reth-static-file-types", "reth-tokio-util", "thiserror 2.0.16", "tokio", "tracing", ] -[[package]] -name = "reth-stages-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-primitives", - "reth-trie-common 1.5.0", -] - [[package]] name = "reth-stages-types" version = "1.6.0" @@ -12276,8 +11059,8 @@ dependencies = [ "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.6.0", - "reth-trie-common 1.6.0", + "reth-codecs", + "reth-trie-common", "serde", ] @@ -12289,29 +11072,18 @@ dependencies = [ "alloy-primitives", "parking_lot", "rayon", - "reth-codecs 1.6.0", + "reth-codecs", "reth-db-api", - "reth-primitives-traits 1.6.0", + "reth-primitives-traits", "reth-provider", - "reth-prune-types 1.6.0", - "reth-stages-types 1.6.0", - "reth-static-file-types 1.6.0", - "reth-storage-errors 1.6.0", + "reth-prune-types", + "reth-stages-types", + "reth-static-file-types", + "reth-storage-errors", "reth-tokio-util", "tracing", ] -[[package]] -name = "reth-static-file-types" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-primitives", - "derive_more", - "serde", - "strum 0.27.2", -] - [[package]] name = "reth-static-file-types" version = "1.6.0" @@ -12324,28 +11096,6 @@ dependencies = [ "strum 0.27.2", ] -[[package]] -name = "reth-storage-api" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec 1.5.0", - "reth-db-models 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-execution-types 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-prune-types 1.5.0", - "reth-stages-types 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", - "revm-database 6.0.0", -] - [[package]] name = "reth-storage-api" version = "1.6.0" @@ -12356,33 +11106,17 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-db-api", - "reth-db-models 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", - "reth-stages-types 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "revm-database 7.0.5", -] - -[[package]] -name = "reth-storage-errors" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more", - "reth-primitives-traits 1.5.0", - "reth-prune-types 1.5.0", - "reth-static-file-types 1.5.0", - "revm-database-interface 6.0.0", - "thiserror 2.0.16", + "reth-db-models", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "revm-database", ] [[package]] @@ -12394,29 +11128,13 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "derive_more", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", - "reth-static-file-types 1.6.0", - "revm-database-interface 7.0.5", + "reth-primitives-traits", + "reth-prune-types", + "reth-static-file-types", + "revm-database-interface", "thiserror 2.0.16", ] -[[package]] -name = "reth-tasks" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "auto_impl", - "dyn-clone", - "futures-util", - "metrics 0.24.2", - "reth-metrics 1.5.0", - "thiserror 2.0.16", - "tokio", - "tracing", - "tracing-futures", -] - [[package]] name = "reth-tasks" version = "1.6.0" @@ -12428,7 +11146,7 @@ dependencies = [ "metrics 0.24.2", "pin-project", "rayon", - "reth-metrics 1.6.0", + "reth-metrics", "thiserror 2.0.16", "tokio", "tracing", @@ -12460,42 +11178,6 @@ dependencies = [ "tracing-subscriber 0.3.19", ] -[[package]] -name = "reth-transaction-pool" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "aquamarine", - "auto_impl", - "bitflags 2.9.3", - "futures-util", - "metrics 0.24.2", - "parking_lot", - "reth-chain-state 1.5.0", - "reth-chainspec 1.5.0", - "reth-eth-wire-types 1.5.0", - "reth-ethereum-primitives 1.5.0", - "reth-execution-types 1.5.0", - "reth-fs-util 1.5.0", - "reth-metrics 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-storage-api 1.5.0", - "reth-tasks 1.5.0", - "revm-interpreter 22.0.1", - "revm-primitives", - "rustc-hash 2.1.1", - "schnellru", - "smallvec", - "thiserror 2.0.16", - "tokio", - "tokio-stream", - "tracing", -] - [[package]] name = "reth-transaction-pool" version = "1.6.0" @@ -12514,16 +11196,16 @@ dependencies = [ "paste", "pin-project", "rand 0.9.2", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-eth-wire-types 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-fs-util 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", + "reth-chain-state", + "reth-chainspec", + "reth-eth-wire-types", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-fs-util", + "reth-metrics", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", "revm-interpreter 25.0.2", "revm-primitives", "rustc-hash 2.1.1", @@ -12537,28 +11219,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "reth-trie" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "itertools 0.14.0", - "reth-execution-errors 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-stages-types 1.5.0", - "reth-storage-errors 1.5.0", - "reth-trie-common 1.5.0", - "reth-trie-sparse 1.5.0", - "revm-database 6.0.0", - "tracing", -] - [[package]] name = "reth-trie" version = "1.6.0" @@ -12572,35 +11232,18 @@ dependencies = [ "auto_impl", "itertools 0.14.0", "metrics 0.24.2", - "reth-execution-errors 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-stages-types 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "reth-trie-sparse 1.6.0", - "revm-database 7.0.5", + "reth-execution-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "reth-trie-sparse", + "revm-database", "tracing", "triehash", ] -[[package]] -name = "reth-trie-common" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "derive_more", - "itertools 0.14.0", - "nybbles", - "rayon", - "reth-primitives-traits 1.5.0", - "revm-database 6.0.0", -] - [[package]] name = "reth-trie-common" version = "1.6.0" @@ -12620,9 +11263,9 @@ dependencies = [ "nybbles", "plain_hasher", "rayon", - "reth-codecs 1.6.0", - "reth-primitives-traits 1.6.0", - "revm-database 7.0.5", + "reth-codecs", + "reth-primitives-traits", + "revm-database", "serde", "serde_with", ] @@ -12634,9 +11277,9 @@ source = "git+https://github.com/paradigmxyz/reth?rev=21ba9c4#21ba9c4e050d91916b dependencies = [ "alloy-primitives", "reth-db-api", - "reth-execution-errors 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie 1.6.0", + "reth-execution-errors", + "reth-primitives-traits", + "reth-trie", "tracing", ] @@ -12652,35 +11295,19 @@ dependencies = [ "metrics 0.24.2", "rayon", "reth-db-api", - "reth-execution-errors 1.6.0", - "reth-metrics 1.6.0", + "reth-execution-errors", + "reth-metrics", "reth-provider", - "reth-storage-errors 1.6.0", - "reth-trie 1.6.0", - "reth-trie-common 1.6.0", + "reth-storage-errors", + "reth-trie", + "reth-trie-common", "reth-trie-db", - "reth-trie-sparse 1.6.0", + "reth-trie-sparse", "thiserror 2.0.16", "tokio", "tracing", ] -[[package]] -name = "reth-trie-sparse" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "reth-execution-errors 1.5.0", - "reth-primitives-traits 1.5.0", - "reth-trie-common 1.5.0", - "smallvec", - "tracing", -] - [[package]] name = "reth-trie-sparse" version = "1.6.0" @@ -12692,10 +11319,10 @@ dependencies = [ "auto_impl", "metrics 0.24.2", "rayon", - "reth-execution-errors 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie-common 1.6.0", + "reth-execution-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-trie-common", "smallvec", "tracing", ] @@ -12710,22 +11337,14 @@ dependencies = [ "alloy-trie", "metrics 0.24.2", "rayon", - "reth-execution-errors 1.6.0", - "reth-metrics 1.6.0", - "reth-trie-common 1.6.0", - "reth-trie-sparse 1.6.0", + "reth-execution-errors", + "reth-metrics", + "reth-trie-common", + "reth-trie-sparse", "smallvec", "tracing", ] -[[package]] -name = "reth-zstd-compressors" -version = "1.5.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.5.0#61e38f9af154fe91e776d8f5e449d20a1571e8cf" -dependencies = [ - "zstd", -] - [[package]] name = "reth-zstd-compressors" version = "1.6.0" @@ -12734,42 +11353,23 @@ dependencies = [ "zstd", ] -[[package]] -name = "revm" -version = "26.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2a493c73054a0f6635bad6e840cdbef34838e6e6186974833c901dff7dd709" -dependencies = [ - "revm-bytecode 5.0.0", - "revm-context 7.0.1", - "revm-context-interface 7.0.1", - "revm-database 6.0.0", - "revm-database-interface 6.0.0", - "revm-handler 7.0.1", - "revm-inspector 7.0.1", - "revm-interpreter 22.0.1", - "revm-precompile 23.0.0", - "revm-primitives", - "revm-state 6.0.0", -] - [[package]] name = "revm" version = "27.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6bf82101a1ad8a2b637363a37aef27f88b4efc8a6e24c72bf5f64923dc5532" dependencies = [ - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-context 8.0.4", "revm-context-interface 9.0.0", - "revm-database 7.0.5", - "revm-database-interface 7.0.5", + "revm-database", + "revm-database-interface", "revm-handler 8.1.0", "revm-inspector 8.1.0", "revm-interpreter 24.0.0", "revm-precompile 25.0.0", "revm-primitives", - "revm-state 7.0.5", + "revm-state", ] [[package]] @@ -12778,30 +11378,17 @@ version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c278b6ee9bba9e25043e3fae648fdce632d1944d3ba16f5203069b43bddd57f" dependencies = [ - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-context 9.0.2", "revm-context-interface 10.1.0", - "revm-database 7.0.5", - "revm-database-interface 7.0.5", + "revm-database", + "revm-database-interface", "revm-handler 10.0.0", "revm-inspector 10.0.0", "revm-interpreter 25.0.2", "revm-precompile 27.0.0", "revm-primitives", - "revm-state 7.0.5", -] - -[[package]] -name = "revm-bytecode" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b395ee2212d44fcde20e9425916fee685b5440c3f8e01fabae8b0f07a2fd7f08" -dependencies = [ - "bitvec", - "once_cell", - "phf", - "revm-primitives", - "serde", + "revm-state", ] [[package]] @@ -12811,24 +11398,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" dependencies = [ "bitvec", - "phf", - "revm-primitives", - "serde", -] - -[[package]] -name = "revm-context" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b97b69d05651509b809eb7215a6563dc64be76a941666c40aabe597ab544d38" -dependencies = [ - "cfg-if", - "derive-where", - "revm-bytecode 5.0.0", - "revm-context-interface 7.0.1", - "revm-database-interface 6.0.0", + "phf", "revm-primitives", - "revm-state 6.0.0", "serde", ] @@ -12840,11 +11411,11 @@ checksum = "9cd508416a35a4d8a9feaf5ccd06ac6d6661cd31ee2dc0252f9f7316455d71f9" dependencies = [ "cfg-if", "derive-where", - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-context-interface 9.0.0", - "revm-database-interface 7.0.5", + "revm-database-interface", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "serde", ] @@ -12857,27 +11428,11 @@ dependencies = [ "bitvec", "cfg-if", "derive-where", - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-context-interface 10.1.0", - "revm-database-interface 7.0.5", - "revm-primitives", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-context-interface" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f8f4f06a1c43bf8e6148509aa06a6c4d28421541944842b9b11ea1a6e53468f" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface 6.0.0", + "revm-database-interface", "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", ] @@ -12891,9 +11446,9 @@ dependencies = [ "alloy-eip7702", "auto_impl", "either", - "revm-database-interface 7.0.5", + "revm-database-interface", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "serde", ] @@ -12907,23 +11462,9 @@ dependencies = [ "alloy-eip7702", "auto_impl", "either", - "revm-database-interface 7.0.5", - "revm-primitives", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-database" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763eb5867a109a85f8e47f548b9d88c9143c0e443ec056742052f059fa32f4f1" -dependencies = [ - "alloy-eips", - "revm-bytecode 5.0.0", - "revm-database-interface 6.0.0", + "revm-database-interface", "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", ] @@ -12934,22 +11475,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" dependencies = [ "alloy-eips", - "revm-bytecode 6.2.2", - "revm-database-interface 7.0.5", - "revm-primitives", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-database-interface" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5ecd19a5b75b862841113b9abdd864ad4b22e633810e11e6d620e8207e361d" -dependencies = [ - "auto_impl", + "revm-bytecode", + "revm-database-interface", "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", ] @@ -12962,26 +11491,7 @@ dependencies = [ "auto_impl", "either", "revm-primitives", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-handler" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b61f992beaa7a5fc3f5fcf79f1093624fa1557dc42d36baa42114c2d836b59" -dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode 5.0.0", - "revm-context 7.0.1", - "revm-context-interface 7.0.1", - "revm-database-interface 6.0.0", - "revm-interpreter 22.0.1", - "revm-precompile 23.0.0", - "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", ] @@ -12993,14 +11503,14 @@ checksum = "1529c8050e663be64010e80ec92bf480315d21b1f2dbf65540028653a621b27d" dependencies = [ "auto_impl", "derive-where", - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-context 8.0.4", "revm-context-interface 9.0.0", - "revm-database-interface 7.0.5", + "revm-database-interface", "revm-interpreter 24.0.0", "revm-precompile 25.0.0", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "serde", ] @@ -13012,33 +11522,15 @@ checksum = "528d2d81cc918d311b8231c35330fac5fba8b69766ddc538833e2b5593ee016e" dependencies = [ "auto_impl", "derive-where", - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-context 9.0.2", "revm-context-interface 10.1.0", - "revm-database-interface 7.0.5", + "revm-database-interface", "revm-interpreter 25.0.2", "revm-precompile 27.0.0", "revm-primitives", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-inspector" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7e4400a109a2264f4bf290888ac6d02432b6d5d070492b9dcf134b0c7d51354" -dependencies = [ - "auto_impl", - "either", - "revm-context 7.0.1", - "revm-database-interface 6.0.0", - "revm-handler 7.0.1", - "revm-interpreter 22.0.1", - "revm-primitives", - "revm-state 6.0.0", + "revm-state", "serde", - "serde_json", ] [[package]] @@ -13050,11 +11542,11 @@ dependencies = [ "auto_impl", "either", "revm-context 8.0.4", - "revm-database-interface 7.0.5", + "revm-database-interface", "revm-handler 8.1.0", "revm-interpreter 24.0.0", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "serde", "serde_json", ] @@ -13068,11 +11560,11 @@ dependencies = [ "auto_impl", "either", "revm-context 9.0.2", - "revm-database-interface 7.0.5", + "revm-database-interface", "revm-handler 10.0.0", "revm-interpreter 25.0.2", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "serde", "serde_json", ] @@ -13097,25 +11589,13 @@ dependencies = [ "thiserror 2.0.16", ] -[[package]] -name = "revm-interpreter" -version = "22.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2481ef059708772cec0ce6bc4c84b796a40111612efb73b01adf1caed7ff9ac" -dependencies = [ - "revm-bytecode 5.0.0", - "revm-context-interface 7.0.1", - "revm-primitives", - "serde", -] - [[package]] name = "revm-interpreter" version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff9d7d9d71e8a33740b277b602165b6e3d25fff091ba3d7b5a8d373bf55f28a7" dependencies = [ - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-context-interface 9.0.0", "revm-primitives", "serde", @@ -13127,37 +11607,12 @@ version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d6406b711fac73b4f13120f359ed8e65964380dd6182bd12c4c09ad0d4641f" dependencies = [ - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-context-interface 10.1.0", "revm-primitives", "serde", ] -[[package]] -name = "revm-precompile" -version = "23.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d581e78c8f132832bd00854fb5bf37efd95a52582003da35c25cd2cbfc63849" -dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "aurora-engine-modexp", - "c-kzg", - "cfg-if", - "k256", - "libsecp256k1", - "once_cell", - "p256 0.13.2", - "revm-primitives", - "ripemd", - "rug", - "secp256k1 0.31.1", - "sha2 0.10.9", -] - [[package]] name = "revm-precompile" version = "25.0.0" @@ -13222,18 +11677,6 @@ dependencies = [ "serde", ] -[[package]] -name = "revm-state" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6274928dd78f907103740b10800d3c0db6caeca391e75a159c168a1e5c78f8" -dependencies = [ - "bitflags 2.9.3", - "revm-bytecode 5.0.0", - "revm-primitives", - "serde", -] - [[package]] name = "revm-state" version = "7.0.5" @@ -13241,7 +11684,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ "bitflags 2.9.3", - "revm-bytecode 6.2.2", + "revm-bytecode", "revm-primitives", "serde", ] @@ -13356,56 +11799,6 @@ dependencies = [ "chrono", ] -[[package]] -name = "rollup-boost" -version = "0.1.0" -source = "git+http://github.com/flashbots/rollup-boost?tag=v0.7.4#03ea8f8b6c82970bb62bba730a46d5043962d7fc" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-serde", - "clap", - "dotenvy", - "eyre", - "futures", - "http 1.3.1", - "http-body-util", - "hyper 1.7.0", - "hyper-rustls 0.27.7", - "hyper-util", - "jsonrpsee 0.25.1", - "metrics 0.24.2", - "metrics-derive", - "metrics-exporter-prometheus", - "metrics-util 0.19.1", - "moka", - "op-alloy-rpc-types-engine 0.18.14", - "opentelemetry", - "opentelemetry-otlp", - "opentelemetry_sdk", - "parking_lot", - "paste", - "reth-optimism-payload-builder 1.5.0", - "rustls 0.23.31", - "serde", - "serde_json", - "sha2 0.10.9", - "testcontainers", - "thiserror 2.0.16", - "tokio", - "tokio-tungstenite", - "tokio-util", - "tower 0.5.2", - "tower-http", - "tracing", - "tracing-opentelemetry", - "tracing-subscriber 0.3.19", - "url", - "vergen", - "vergen-git2", -] - [[package]] name = "route-recognizer" version = "0.3.1" @@ -13574,7 +11967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.4", + "rustls-pemfile", "schannel", "security-framework 2.11.1", ] @@ -13600,15 +11993,6 @@ dependencies = [ "base64 0.21.7", ] -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "rustls-pki-types" version = "1.12.0" @@ -13976,7 +12360,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee 0.26.0", + "jsonrpsee", "reth", "serde", "serde_json", @@ -14023,17 +12407,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_repr" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "serde_spanned" version = "0.6.9" @@ -14413,29 +12786,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "structmeta" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" -dependencies = [ - "proc-macro2", - "quote", - "structmeta-derive", - "syn 2.0.106", -] - -[[package]] -name = "structmeta-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "strum" version = "0.26.3" @@ -14625,7 +12975,7 @@ dependencies = [ "futures", "order-pool", "reth-provider", - "reth-tasks 1.6.0", + "reth-tasks", "serde", "serde_json", "telemetry-recorder", @@ -14670,35 +13020,6 @@ dependencies = [ "windows-sys 0.60.2", ] -[[package]] -name = "testcontainers" -version = "0.23.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a4f01f39bb10fc2a5ab23eb0d888b1e2bb168c157f61a1b98e6c501c639c74" -dependencies = [ - "async-trait", - "bollard", - "bollard-stubs", - "bytes", - "docker_credential", - "either", - "etcetera", - "futures", - "log", - "memchr", - "parse-display", - "pin-project-lite", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.16", - "tokio", - "tokio-stream", - "tokio-tar", - "tokio-util", - "url", -] - [[package]] name = "testing-tools" version = "0.1.0" @@ -14720,7 +13041,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee 0.26.0", + "jsonrpsee", "matching-engine", "order-pool", "pade", @@ -14731,20 +13052,20 @@ dependencies = [ "rand_distr", "rayon", "reth", - "reth-chainspec 1.6.0", + "reth-chainspec", "reth-db", - "reth-metrics 1.6.0", + "reth-metrics", "reth-network", "reth-network-api", - "reth-network-peers 1.6.0", + "reth-network-peers", "reth-node-builder", "reth-node-ethereum", "reth-node-types", "reth-primitives", "reth-provider", - "reth-revm 1.6.0", - "reth-tasks 1.6.0", - "reth-transaction-pool 1.6.0", + "reth-revm", + "reth-tasks", + "reth-transaction-pool", "revm 27.1.0", "secp256k1 0.30.0", "telemetry", @@ -14776,12 +13097,12 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "jsonrpsee 0.26.0", + "jsonrpsee", "pade", "reth", - "reth-network-peers 1.6.0", + "reth-network-peers", "reth-provider", - "reth-tasks 1.6.0", + "reth-tasks", "secp256k1 0.30.0", "serde", "serial_test", @@ -15051,21 +13372,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "tokio-tar" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75" -dependencies = [ - "filetime", - "futures-core", - "libc", - "redox_syscall 0.3.5", - "tokio", - "tokio-stream", - "xattr", -] - [[package]] name = "tokio-tungstenite" version = "0.26.2" @@ -15180,56 +13486,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" -[[package]] -name = "tonic" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.22.1", - "bytes", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.7.0", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost", - "socket2 0.5.10", - "tokio", - "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "tower" version = "0.5.2" @@ -15274,7 +13530,7 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", "tracing", @@ -15382,24 +13638,6 @@ dependencies = [ "tracing-subscriber 0.3.19", ] -[[package]] -name = "tracing-opentelemetry" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721f2d2569dce9f3dfbbddee5906941e953bfcdf736a62da3377f5751650cc36" -dependencies = [ - "js-sys", - "once_cell", - "opentelemetry", - "opentelemetry_sdk", - "smallvec", - "tracing", - "tracing-core", - "tracing-log", - "tracing-subscriber 0.3.19", - "web-time", -] - [[package]] name = "tracing-serde" version = "0.2.0" @@ -15636,10 +13874,10 @@ dependencies = [ "reth-primitives", "reth-provider", "revm 27.1.0", - "revm-bytecode 6.2.2", - "revm-database 7.0.5", + "revm-bytecode", + "revm-database", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "serde", "telemetry-recorder", "testing-tools", @@ -15767,18 +14005,18 @@ dependencies = [ "proptest-derive 0.6.0", "rand 0.9.2", "reth-discv4", - "reth-metrics 1.6.0", + "reth-metrics", "reth-network", "reth-primitives", "reth-provider", - "reth-revm 1.6.0", + "reth-revm", "reth-tracing", - "reth-transaction-pool 1.6.0", + "reth-transaction-pool", "revm 27.1.0", - "revm-bytecode 6.2.2", - "revm-database 7.0.5", + "revm-bytecode", + "revm-database", "revm-primitives", - "revm-state 7.0.5", + "revm-state", "secp256k1 0.30.0", "serde", "serde_json", diff --git a/crates/eth/src/manager.rs b/crates/eth/src/manager.rs index 385a8a71a..3fc225e77 100644 --- a/crates/eth/src/manager.rs +++ b/crates/eth/src/manager.rs @@ -423,7 +423,11 @@ where "New Flashblock received" ); - self.handle_commit(Arc::new(pending)); + let pending = Arc::new(pending); + self.handle_commit(pending.clone()); + + self.cannon_sender + .send(StateNotification::FlashblockCommit { new: pending }) } } diff --git a/crates/types/Cargo.toml b/crates/types/Cargo.toml index d994e29a5..430764f80 100644 --- a/crates/types/Cargo.toml +++ b/crates/types/Cargo.toml @@ -52,7 +52,6 @@ uniswap_v3_math.workspace = true # Optimism & Flashblocks reth-optimism-flashblocks = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } reth-optimism-primitives = { workspace = true, features = ["serde", "serde-bincode-compat"] } -rollup-boost = { git = "http://github.com/flashbots/rollup-boost", tag = "v0.7.4" } [build-dependencies] convert_case.workspace = true diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index 088089df3..090cccdac 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -1,22 +1,14 @@ //! Flashblocks -use std::{collections::HashMap, ops::RangeInclusive}; +use std::ops::RangeInclusive; -use alloy::{ - consensus::TxReceipt, - rlp::{Decodable, Encodable} -}; -use alloy_primitives::{Address, BlockHash, BlockNumber, TxHash, U256}; -use reth::rpc::{ - server_types::eth::PendingBlock, - types::engine::{ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3} -}; +use alloy::consensus::TxReceipt; +use alloy_primitives::{BlockHash, BlockNumber}; +use reth::rpc::server_types::eth::PendingBlock; use reth_optimism_flashblocks::FlashBlockRx; use reth_optimism_primitives::{OpBlock, OpPrimitives, OpReceipt, OpTransactionSigned}; -use reth_primitives::{NodePrimitives, RecoveredBlock}; -use reth_primitives_traits::{AlloyBlockHeader, Block}; -pub use rollup_boost::{ExecutionPayloadBaseV1, FlashblocksPayloadV1}; -use serde::{Deserialize, Serialize}; +use reth_primitives::RecoveredBlock; +use reth_primitives_traits::AlloyBlockHeader; use tokio_stream::wrappers::WatchStream; use crate::primitive::ChainExt; @@ -74,192 +66,3 @@ impl ChainExt for PendingFlashblock { std::iter::once(self.block().as_ref()) } } - -/// Metadata for a Flashblock. This is the same for Base and Unichain. -#[derive(Debug, Deserialize, Serialize, Clone, Default)] -pub struct Metadata { - pub receipts: HashMap, - pub new_account_balances: HashMap, - pub block_number: u64 -} - -/// A chain that is "pending", as in built from Flashblocks. Based on -/// [`Chain`](reth_provider::Chain) and implements -/// [`ChainExt`](crate::primitive::ChainExt). -/// -/// A pending chain lasts for a single slot time, and consists of (slot time / -/// flashblock interval) blocks. -#[derive(Debug)] -pub struct PendingChain { - /// The Flashblock as a recovered block. - blocks: Vec>, - /// The Flashblock metadata. Index corresponds to the block index. - metadatas: Vec>, - /// The base block of this pending chain. - base: ExecutionPayloadBaseV1 -} - -trait FlashblockExt { - fn into_recovered_block( - &self, - base: &ExecutionPayloadBaseV1 - ) -> RecoveredBlock; -} - -impl FlashblockExt for FlashblocksPayloadV1 { - fn into_recovered_block( - &self, - base: &ExecutionPayloadBaseV1 - ) -> RecoveredBlock { - // Build the actual execution payload and block. - let execution_payload = ExecutionPayloadV3 { - blob_gas_used: 0, - excess_blob_gas: 0, - payload_inner: ExecutionPayloadV2 { - withdrawals: self.diff.withdrawals.clone(), - payload_inner: ExecutionPayloadV1 { - parent_hash: base.parent_hash, - fee_recipient: base.fee_recipient, - state_root: self.diff.state_root, - receipts_root: self.diff.receipts_root, - logs_bloom: self.diff.logs_bloom, - prev_randao: base.prev_randao, - block_number: base.block_number, - gas_limit: base.gas_limit, - gas_used: self.diff.gas_used, - timestamp: base.timestamp, - extra_data: base.extra_data.clone(), - base_fee_per_gas: base.base_fee_per_gas, - block_hash: self.diff.block_hash, - transactions: self.diff.transactions.clone() - } - } - }; - - let block = execution_payload - .try_into_block::() - .expect("Failed to convert to block"); - - // NOTE: This BS encode/decode is necessary to convert from concrete type to - // the generic type N::Block. - let mut buf = Vec::new(); - block.encode(&mut buf); - - let decoded_block = N::Block::decode(&mut buf.as_slice()).expect("Failed to decode block"); - - decoded_block - .try_into_recovered() - .expect("Failed to recover block") - } -} - -// Specialized implementation for OpPrimitives -impl PendingChain { - /// Creates a new pending chain from a Flashblock payload. Decodes the - /// metadata and the transactions. This should only be used for the first - /// Flashblock for a certain slot (i.e. index = 0), because it expects the - /// base to be present. - /// - /// If you want to add a Flashblock to an existing pending chain, use - /// [`Self::push_flashblock`] instead. - /// - /// # Panics - /// Panics if the base block is not present. - pub fn new(flashblock: FlashblocksPayloadV1) -> Self { - let metadata = serde_json::from_value(flashblock.metadata.clone()).unwrap(); - - let base = flashblock.base.clone().expect("Base block is required"); - - // Build the actual execution payload and block. - let block = flashblock.into_recovered_block::(&base); - - // Capacity = 5 (1s / 200ms) - let mut blocks = Vec::with_capacity(5); - blocks.push(block); - - let mut metadatas = Vec::with_capacity(5); - metadatas.push(metadata); - - Self { blocks, base, metadatas } - } - - /// Pushes a new Flashblock to the pending chain. This will build the - /// execution payload and block, and then recover the block. - pub fn push_flashblock(&mut self, flashblock: FlashblocksPayloadV1) { - let metadata = serde_json::from_value(flashblock.metadata.clone()).unwrap(); - - let block = flashblock.into_recovered_block::(&self.base); - - self.blocks.push(block); - self.metadatas.push(metadata); - } - - /// Returns the index of the tip block (last Flashblock). - pub fn tip_index(&self) -> usize { - self.blocks.len() - 1 - } - - /// Returns the tip block (last Flashblock). - pub fn tip(&self) -> &RecoveredBlock { - // SAFETY: There's always a block in the pending chain. - self.blocks.last().unwrap() - } - - /// Returns the base block of this pending chain. - pub fn base(&self) -> &ExecutionPayloadBaseV1 { - &self.base - } -} - -/// Generic implementation for any NodePrimitives - provides default behavior -impl ChainExt for PendingChain { - /// Returns the block number of the canonical base block (not the - /// Flashblock). - fn tip_number(&self) -> BlockNumber { - self.metadatas.last().unwrap().block_number - } - - /// Returns the block hash of the Flashblock. - fn tip_hash(&self) -> BlockHash { - self.blocks.last().unwrap().hash() - } - - /// Returns the receipts for a given Flashblock block hash. - fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option> { - let index = self - .blocks - .iter() - .position(|block| block.hash() == block_hash)?; - - let metadata = &self.metadatas[index]; - - Some(metadata.receipts.values().collect()) - } - - /// Returns the transactions for the Flashblock tip. - fn tip_transactions(&self) -> impl Iterator + '_ { - self.blocks - .last() - .unwrap() - .transactions_with_sender() - .map(|(_, tx)| tx) - } - - /// Returns the successful transactions for the Flashblock tip. - /// - /// NOTE: In theory, this should just be all transactions since Flashblocks - /// shouldn't contain reverts, but we filter here just to be safe. - fn successful_tip_transactions(&self) -> impl Iterator + '_ { - self.tip_transactions() - } - - /// Flashblocks are not reorged. - fn reorged_range(&self, _new: impl ChainExt) -> Option> { - None - } - - /// Returns an iterator over the Flashblock blocks. - fn blocks_iter(&self) -> impl Iterator> + '_ { - self.blocks.iter() - } -} diff --git a/crates/types/src/primitive/state.rs b/crates/types/src/primitive/state.rs index 6e1afc183..57f38aa97 100644 --- a/crates/types/src/primitive/state.rs +++ b/crates/types/src/primitive/state.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use reth_primitives::{EthPrimitives, NodePrimitives}; use reth_provider::Chain; -use crate::flashblocks::PendingChain; +use crate::flashblocks::PendingFlashblock; /// A canonical chain state notification. This is extended from /// [CanonStateNotification](reth_provider::CanonStateNotification) to include @@ -18,7 +18,7 @@ pub enum StateNotification { /// The flashblock was committed. FlashblockCommit { /// The newly committed flashblock. - new: Arc + new: Arc }, /// A chain segment was reverted or reorged. /// From 0b5d795975383b4c142c3cf8a2b18cee7ad6d9b5 Mon Sep 17 00:00:00 2001 From: Jonas Bostoen Date: Fri, 29 Aug 2025 15:39:48 +0200 Subject: [PATCH 18/18] refactor(op-angstrom): rework Flashblocks support, add provider --- Cargo.lock | 30 -- Cargo.toml | 1 - crates/cli/Cargo.toml | 1 - crates/eth/src/manager.rs | 5 +- crates/flashblocks/Cargo.toml | 35 --- crates/flashblocks/src/lib.rs | 6 - crates/flashblocks/src/state.rs | 270 ------------------ crates/flashblocks/src/subscriber.rs | 131 --------- crates/types/src/flashblocks/db_wrapper.rs | 1 + crates/types/src/flashblocks/mod.rs | 3 + .../src => types/src/flashblocks}/provider.rs | 102 +++---- 11 files changed, 58 insertions(+), 527 deletions(-) delete mode 100644 crates/flashblocks/Cargo.toml delete mode 100644 crates/flashblocks/src/lib.rs delete mode 100644 crates/flashblocks/src/state.rs delete mode 100644 crates/flashblocks/src/subscriber.rs create mode 100644 crates/types/src/flashblocks/db_wrapper.rs rename crates/{flashblocks/src => types/src/flashblocks}/provider.rs (57%) diff --git a/Cargo.lock b/Cargo.lock index 2be0db9f8..cf2f4d936 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1120,7 +1120,6 @@ dependencies = [ "clap", "consensus", "eyre", - "flashblocks", "futures", "hsm-signer", "matching-engine", @@ -4357,32 +4356,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "flashblocks" -version = "0.1.0" -dependencies = [ - "alloy", - "alloy-evm", - "alloy-primitives", - "angstrom-types", - "brotli", - "eyre", - "futures", - "parking_lot", - "reth", - "reth-optimism-chainspec", - "reth-optimism-evm", - "reth-optimism-flashblocks", - "reth-optimism-primitives", - "reth-primitives-traits", - "serde_json", - "tokio", - "tokio-stream", - "tokio-tungstenite", - "tracing", - "url", -] - [[package]] name = "flate2" version = "1.1.2" @@ -13380,12 +13353,10 @@ checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "native-tls", "rustls 0.23.31", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tokio-native-tls", "tokio-rustls 0.26.2", "tungstenite", "webpki-roots 0.26.11", @@ -13750,7 +13721,6 @@ dependencies = [ "http 1.3.1", "httparse", "log", - "native-tls", "rand 0.9.2", "rustls 0.23.31", "rustls-pki-types", diff --git a/Cargo.toml b/Cargo.toml index 827da19e8..352a3e2fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -130,7 +130,6 @@ dashmap = { version = "6", features = ["serde"] } divan = "0" enr = { version = "0", default-features = false, features = ["k256"] } eyre = "0" -flashblocks = { path = "./crates/flashblocks/" } futures = "0" futures-core = "0" futures-util = "0" diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index a4b5282a5..75ed7e0a7 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -46,7 +46,6 @@ url.workspace = true validation.workspace = true # OP-stack support -flashblocks.workspace = true reth-optimism-chainspec.workspace = true reth-optimism-cli.workspace = true reth-optimism-node.workspace = true diff --git a/crates/eth/src/manager.rs b/crates/eth/src/manager.rs index 3fc225e77..45ea0ed0b 100644 --- a/crates/eth/src/manager.rs +++ b/crates/eth/src/manager.rs @@ -426,8 +426,9 @@ where let pending = Arc::new(pending); self.handle_commit(pending.clone()); - self.cannon_sender - .send(StateNotification::FlashblockCommit { new: pending }) + let _ = self + .cannon_sender + .send(StateNotification::FlashblockCommit { new: pending }); } } diff --git a/crates/flashblocks/Cargo.toml b/crates/flashblocks/Cargo.toml deleted file mode 100644 index d6c2a00f7..000000000 --- a/crates/flashblocks/Cargo.toml +++ /dev/null @@ -1,35 +0,0 @@ -[package] -name = "flashblocks" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true -homepage.workspace = true -repository.workspace = true -exclude.workspace = true - -[dependencies] -alloy.workspace = true -alloy-evm = "0.20.1" -alloy-primitives = { workspace = true, default-features = false, features = ["map-foldhash"] } -brotli = "8.0.1" -eyre.workspace = true -futures.workspace = true -parking_lot.workspace = true -serde_json.workspace = true -tokio.workspace = true -tokio-stream.workspace = true -tokio-tungstenite = { version = "0.26.2", features = ["native-tls"] } -tracing.workspace = true -url.workspace = true - -# Reth -reth.workspace = true -reth-optimism-chainspec.workspace = true -reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } -reth-optimism-flashblocks = { git = "https://github.com/paradigmxyz/reth", rev = "21ba9c4" } -reth-optimism-primitives.workspace = true -reth-primitives-traits.workspace = true - -# Angstrom -angstrom-types.workspace = true diff --git a/crates/flashblocks/src/lib.rs b/crates/flashblocks/src/lib.rs deleted file mode 100644 index 1365c6147..000000000 --- a/crates/flashblocks/src/lib.rs +++ /dev/null @@ -1,6 +0,0 @@ -mod provider; -mod state; -mod subscriber; - -pub use state::{PendingStateReader, PendingStateWriter}; -pub use subscriber::FlashblocksSubscriber; diff --git a/crates/flashblocks/src/state.rs b/crates/flashblocks/src/state.rs deleted file mode 100644 index 777377d9c..000000000 --- a/crates/flashblocks/src/state.rs +++ /dev/null @@ -1,270 +0,0 @@ -//! State for Flashblocks. - -use std::sync::Arc; - -use alloy::primitives::B256; -use alloy_evm::evm::Evm; -use alloy_primitives::map::B256HashMap; -use angstrom_types::{ - flashblocks::{ExecutionPayloadBaseV1, FlashblocksPayloadV1, PendingChain}, - primitive::ChainExt -}; -use parking_lot::RwLock; -use reth::{ - api::ConfigureEvm, - chainspec::EthChainSpec, - providers::{BlockReaderIdExt, ChainSpecProvider, StateProviderFactory}, - revm::{ - DatabaseCommit, State, - context::result::ResultAndState, - database::StateProviderDatabase, - db::{Cache, CacheDB, TransitionState} - }, - rpc::types::state::{AccountOverride, StateOverride, StateOverridesBuilder} -}; -use reth_optimism_chainspec::OpHardforks; -use reth_optimism_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; -use reth_optimism_primitives::OpBlock; -use reth_primitives_traits::{AlloyBlockHeader, Header, RecoveredBlock}; -use tokio::sync::broadcast; -use tokio_stream::wrappers::BroadcastStream; - -#[derive(Debug, Clone)] -pub struct PendingStateWriter { - /// The canonical chain state provider. Read-only. - provider: P, - /// The current pending state. - pending: Arc> -} - -impl

PendingStateWriter

-where - P: StateProviderFactory - + ChainSpecProvider + OpHardforks> - + BlockReaderIdExt

- + Clone - + 'static -{ - pub fn new(provider: P) -> Self { - let (tx, _) = broadcast::channel(128); - let pending = Arc::new(RwLock::new(PendingState { - sender: tx, - pending_chain: None, - cache: None, - transition_state: None, - state_overrides: None - })); - - Self { pending, provider } - } - - /// Get a reader for the pending state. - pub fn reader(&self) -> PendingStateReader

{ - PendingStateReader { pending: self.pending.clone(), provider: self.provider.clone() } - } - - /// Handles a new canonical block. - pub fn on_canonical_block(&self, block: &RecoveredBlock) { - // Reset the pending chain if the block number is greater than the canonical tip - // number. - let should_reset = self - .pending - .read() - .pending_chain - .as_ref() - .is_some_and(|chain| chain.tip_number() <= block.number()); - - if should_reset { - let mut pending = self.pending.write(); - pending.reset(); - - tracing::debug!("Received canonical block {}, reset pending state", block.number(),); - } - } - - /// Handles a new flashblock. - pub fn on_flashblock(&self, flashblock: FlashblocksPayloadV1) -> eyre::Result<()> { - let is_new = self.pending.read().pending_chain.is_none(); - - if is_new { - if flashblock.base.is_none() { - tracing::error!( - "Received new flashblock without base block, after reset. This means - we most likely missed a block, and we won't update the pending chain until \ - the next canonical block." - ); - - return Err(eyre::eyre!("Received first Flashblock without base block")); - } - - // NOTE: Create the pending chain before acquiring the write lock for speed™️. - let new = PendingChain::new(flashblock); - let mut pending = self.pending.write(); - pending.pending_chain = Some(new); - } else { - let mut pending = self.pending.write(); - // SAFETY: We know the pending chain is not `None` because we checked it above. - pending - .pending_chain - .as_mut() - .unwrap() - .push_flashblock(flashblock); - } - - let tip = self.pending.read().tip().unwrap().clone(); - let base = self.pending.read().base().unwrap().clone(); - - let mut l1_block_info = reth_optimism_evm::extract_l1_info(tip.body())?; - - let header = tip.clone_sealed_header(); - - let mut gas_used = 0; - let mut next_log_index = 0; - - let prev_block = header.number() - 1; - let state = self - .provider - .state_by_block_number_or_tag(prev_block.into())?; - let state = StateProviderDatabase::new(state); - let db = State::builder() - .with_database(state) - .with_bundle_update() - .build(); - - let mut db = CacheDB::new(db); - - let mut state_overrides = StateOverridesBuilder::default(); - if let Some(cache) = self.pending.read().cache().cloned() { - // Set the current cache and transition state. - db.cache = cache; - db.db.transition_state = self.pending.read().transition_state().cloned(); - - let current_overrides = self - .pending - .read() - .state_overrides() - .cloned() - .unwrap_or_default(); - - state_overrides = StateOverridesBuilder::new(current_overrides); - } - - let block_env = OpNextBlockEnvAttributes { - timestamp: base.timestamp, - suggested_fee_recipient: base.fee_recipient, - prev_randao: base.prev_randao, - gas_limit: base.gas_limit, - parent_beacon_block_root: Some(base.parent_beacon_block_root), - extra_data: base.extra_data.clone() - }; - - let prev_header = self - .provider - .header_by_number(prev_block)? - .ok_or(eyre::eyre!("Previous block not found"))?; - - let evm_config = OpEvmConfig::optimism(self.provider.chain_spec()); - let evm_env = evm_config.next_evm_env(&prev_header, &block_env)?; - - let mut evm = evm_config.evm_with_env(db, evm_env); - - for tx in tip.transactions_recovered() { - let ResultAndState { state, .. } = evm.transact(tx)?; - - for (addr, acc) in &state { - let state_diff = B256HashMap::::from_iter( - acc.storage - .iter() - .map(|(&key, slot)| (key.into(), slot.present_value.into())) - ); - let acc_override = AccountOverride { - balance: Some(acc.info.balance), - nonce: Some(acc.info.nonce), - code: acc.info.code.clone().map(|code| code.bytes()), - state: None, - state_diff: Some(state_diff), - move_precompile_to: None - }; - - // Append to existing state overrides. - state_overrides = state_overrides.append(*addr, acc_override); - } - - // Commit the state to the DB. - evm.db_mut().commit(state); - } - - let CacheDB { cache, db } = evm.into_db(); - - // Update the pending state after having executed all transactions. - { - let mut pending = self.pending.write(); - pending.cache = Some(cache); - pending.transition_state = db.transition_state; - pending.state_overrides = Some(state_overrides.build()); - } - - Ok(()) - } -} - -/// Contains the overlay state of the pending chain, aka the applied -/// Flashblocks. Read and write. -#[derive(Debug)] -pub struct PendingState { - sender: broadcast::Sender>, - pending_chain: Option, - cache: Option, - transition_state: Option, - state_overrides: Option -} - -impl PendingState { - pub fn cache(&self) -> Option<&Cache> { - self.cache.as_ref() - } - - pub fn transition_state(&self) -> Option<&TransitionState> { - self.transition_state.as_ref() - } - - pub fn state_overrides(&self) -> Option<&StateOverride> { - self.state_overrides.as_ref() - } - - /// Resets the pending state. - pub fn reset(&mut self) { - self.pending_chain = None; - self.cache = None; - self.transition_state = None; - self.state_overrides = None; - } - - /// Returns the tip of the pending chain. - pub fn tip(&self) -> Option<&RecoveredBlock> { - self.pending_chain.as_ref().map(|chain| chain.tip()) - } - - /// Returns the base of the pending chain. - pub fn base(&self) -> Option<&ExecutionPayloadBaseV1> { - self.pending_chain.as_ref().map(|chain| chain.base()) - } -} - -/// TODO(mempirate): this should implement a trait so it can be used as a -/// provider. -/// -/// Take a look at reth_db_provider.rs -/// Read only access. -#[derive(Debug, Clone)] -pub struct PendingStateReader

{ - pub(crate) pending: Arc>, - pub(crate) provider: P -} - -impl

PendingStateReader

{ - /// Subscribe to [`PendingChain`] updates. - pub fn subscribe(&self) -> BroadcastStream> { - BroadcastStream::new(self.pending.read().sender.subscribe()) - } -} diff --git a/crates/flashblocks/src/subscriber.rs b/crates/flashblocks/src/subscriber.rs deleted file mode 100644 index e83d999a7..000000000 --- a/crates/flashblocks/src/subscriber.rs +++ /dev/null @@ -1,131 +0,0 @@ -//! Flashblocks subscriber. -//! -//! NOTE: This code was adapted from -use std::{io::Read, sync::Arc}; - -use angstrom_types::flashblocks::{FlashblocksPayloadV1, PendingChain}; -use futures::StreamExt; -use reth::{ - chainspec::EthChainSpec, - providers::{BlockReaderIdExt, ChainSpecProvider, StateProviderFactory} -}; -use reth_optimism_chainspec::OpHardforks; -use reth_primitives_traits::Header; -use tokio::sync::broadcast; -use tokio_tungstenite::{connect_async, tungstenite::Message}; -use url::Url; - -use crate::state::PendingStateWriter; - -/// Subscribes to a Flashblocks websocket stream and notifies the state writer -/// of new flashblocks. -pub struct FlashblocksSubscriber { - ws: Url, - /// The current pending chain. - pending: Option, - writer: PendingStateWriter

-} - -impl

FlashblocksSubscriber

-where - P: StateProviderFactory - + ChainSpecProvider + OpHardforks> - + BlockReaderIdExt

- + Clone - + 'static -{ - pub fn new(ws: Url, writer: PendingStateWriter

) -> Self { - Self { ws, pending: None, writer } - } - - /// Spawns the subscriber. - pub async fn start(self) { - tracing::info!(ws = %self.ws, "Subscribing to Flashblocks ⚡"); - - let ws = self.ws.clone(); - - let mut backoff = std::time::Duration::from_secs(1); - const MAX_BACKOFF: std::time::Duration = std::time::Duration::from_secs(10); - - loop { - match connect_async(ws.as_str()).await { - Ok((ws_stream, _)) => { - tracing::info!("WebSocket connection established"); - - let (_, mut read) = ws_stream.split(); - - while let Some(msg) = read.next().await { - match msg { - Ok(Message::Binary(bytes)) => match try_decode_message(&bytes) { - Ok(payload) => { - if let Err(e) = self.writer.on_flashblock(payload) { - tracing::error!( - error = %e, - "Error handling Flashblock" - ); - } - } - Err(e) => { - tracing::error!( - message = "error decoding flashblock message", - error = %e - ); - } - }, - Ok(Message::Text(_)) => { - tracing::error!( - "Received flashblock as plaintext, only compressed \ - flashblocks supported. Set up websocket-proxy to use \ - compressed flashblocks." - ); - } - Ok(Message::Close(_)) => { - tracing::info!(message = "WebSocket connection closed by upstream"); - break; - } - Err(e) => { - tracing::error!( - message = "error receiving message", - error = %e - ); - break; - } - _ => {} - } - } - } - Err(e) => { - tracing::error!( - message = "WebSocket connection error, retrying", - backoff_duration = ?backoff, - error = %e - ); - tokio::time::sleep(backoff).await; - backoff = std::cmp::min(backoff * 2, MAX_BACKOFF); - continue; - } - } - } - } -} - -fn try_decode_message(bytes: &[u8]) -> eyre::Result { - let text = try_parse_message(bytes)?; - - serde_json::from_str(&text).map_err(|e| eyre::eyre!("failed to parse message: {}", e)) -} - -fn try_parse_message(bytes: &[u8]) -> eyre::Result { - if let Ok(text) = String::from_utf8(bytes.to_vec()) { - if text.trim_start().starts_with("{") { - return Ok(text); - } - } - - let mut decompressor = brotli::Decompressor::new(bytes, 4096); - let mut decompressed = Vec::new(); - decompressor.read_to_end(&mut decompressed)?; - - let text = String::from_utf8(decompressed)?; - Ok(text) -} diff --git a/crates/types/src/flashblocks/db_wrapper.rs b/crates/types/src/flashblocks/db_wrapper.rs new file mode 100644 index 000000000..92d17f6f5 --- /dev/null +++ b/crates/types/src/flashblocks/db_wrapper.rs @@ -0,0 +1 @@ +//! DB wrapper for pending Flashblocks state. diff --git a/crates/types/src/flashblocks/mod.rs b/crates/types/src/flashblocks/mod.rs index 090cccdac..5cad015c3 100644 --- a/crates/types/src/flashblocks/mod.rs +++ b/crates/types/src/flashblocks/mod.rs @@ -13,6 +13,9 @@ use tokio_stream::wrappers::WatchStream; use crate::primitive::ChainExt; +mod db_wrapper; +mod provider; + /// A pending Flashblock. pub type PendingFlashblock = PendingBlock; diff --git a/crates/flashblocks/src/provider.rs b/crates/types/src/flashblocks/provider.rs similarity index 57% rename from crates/flashblocks/src/provider.rs rename to crates/types/src/flashblocks/provider.rs index cc8517ad2..0bf529ee2 100644 --- a/crates/flashblocks/src/provider.rs +++ b/crates/types/src/flashblocks/provider.rs @@ -1,14 +1,23 @@ -//! A provider that uses the pending state. - +//! Provider for pending Flashblocks state. use alloy::{ providers::{Provider, ProviderCall, RootProvider, RpcWithBlock}, rpc::client::NoParams }; -use alloy_primitives::{Address, Bytes, StorageKey, StorageValue, U64, U256}; +use alloy_primitives::{Address, Bytes, StorageValue, U64, U256}; + +use crate::flashblocks::FlashblocksRx; -use crate::PendingStateReader; +pub struct PendingStateProvider { + provider: P, + pending: FlashblocksRx +} -impl Provider for PendingStateReader

{ +impl

PendingStateProvider

where P: Provider {} + +impl

Provider for PendingStateProvider

+where + P: Provider + Clone + 'static +{ fn root(&self) -> &RootProvider { self.provider.root() } @@ -30,24 +39,20 @@ impl Provider for PendingStateReader

{ // If the tag is pending, we use the pending state. ProviderCall::BoxedFuture(Box::pin(async move { - // The base state - let mut nonce = call.await?; - - let pending = pending.read(); - - if let Some(overrides) = pending.state_overrides() + let nonce = if let Some(pending) = pending.borrow().as_ref() && block_id.is_pending() { - // If an override exists, return the override nonce. - // Return either the override nonce or the base nonce if it doesn't exist. - nonce = overrides - .get(&address) - .map(|acc| acc.nonce) + pending + .executed_block + .execution_outcome() + .account(&address) .flatten() - .unwrap_or(nonce); - } + .map(|a| a.nonce) + } else { + None + }; - Ok(nonce) + Ok(nonce.unwrap_or(call.await?)) })) }) } @@ -67,29 +72,18 @@ impl Provider for PendingStateReader

{ // If the tag is pending, we use the pending state. ProviderCall::BoxedFuture(Box::pin(async move { - let mut value: StorageValue = call.await?; - - let pending = pending.read(); - - if let Some(overrides) = pending.state_overrides() + let value = if let Some(pending) = pending.borrow().as_ref() && block_id.is_pending() { - let key: StorageKey = key.into(); - // Return either the override nonce or the base nonce if it doesn't exist. - value = overrides - .get(&address) - .map(|acc| { - acc.state_diff - .as_ref() - .map(|diff| diff.get(&key).cloned()) - .flatten() - }) - .flatten() - .unwrap_or(value.into()) - .into(); - } - - Ok(value) + pending + .executed_block + .execution_outcome() + .storage(&address, key) + } else { + None + }; + + Ok(value.unwrap_or(call.await?)) })) }) } @@ -104,21 +98,27 @@ impl Provider for PendingStateReader

{ let pending = pending.clone(); ProviderCall::BoxedFuture(Box::pin(async move { - let mut code = call.await?; - - let pending = pending.read(); - - if let Some(overrides) = pending.state_overrides() + let code = if let Some(pending) = pending.borrow().as_ref() && block_id.is_pending() { - code = overrides - .get(&address) - .map(|acc| acc.code.clone()) + // Abomination + pending + .executed_block + .execution_outcome() + .state() + .account(&address) + .map(|info| { + info.info + .as_ref() + .map(|info| info.code.as_ref().map(|code| code.original_bytes())) + .flatten() + }) .flatten() - .unwrap_or(code); - } + } else { + None + }; - Ok(code) + Ok(code.unwrap_or(call.await?)) })) }) }