From 7481feaae96423627b049277d0dc104d6ba28c30 Mon Sep 17 00:00:00 2001 From: ilitteri Date: Tue, 4 Nov 2025 11:16:44 -0300 Subject: [PATCH 01/40] Minimal changes --- Cargo.lock | 67 +++++++++++++++++++++++++++++++++++------------------- Cargo.toml | 33 ++++++++++++++------------- src/cli.rs | 12 +++++++--- 3 files changed, 70 insertions(+), 42 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d4592d7..71cf7ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3213,15 +3213,17 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "bytes", "ethrex-common", "ethrex-metrics", "ethrex-rlp", "ethrex-storage", + "ethrex-trie", "ethrex-vm", - "secp256k1", + "hex", + "rustc-hash 2.1.1", "sha3", "thiserror 2.0.17", "tokio", @@ -3232,7 +3234,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "bytes", "crc32fast", @@ -3247,6 +3249,7 @@ dependencies = [ "once_cell", "rayon", "rkyv", + "rustc-hash 2.1.1", "secp256k1", "serde", "serde_json", @@ -3261,7 +3264,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3273,7 +3276,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "c-kzg", "kzg-rs", @@ -3283,7 +3286,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "bytes", "envy", @@ -3303,7 +3306,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "aligned-sdk", "axum 0.8.6", @@ -3361,7 +3364,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3383,7 +3386,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "axum 0.8.6", "bytes", @@ -3413,7 +3416,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "ark-bn254", "ark-ec", @@ -3432,6 +3435,7 @@ dependencies = [ "malachite 0.6.1", "p256", "ripemd", + "rustc-hash 2.1.1", "secp256k1", "serde", "serde_json", @@ -3445,7 +3449,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "ethrex-common", "serde", @@ -3457,7 +3461,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "aes", "async-trait", @@ -3499,7 +3503,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "anyhow", "bincode", @@ -3575,7 +3579,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3589,7 +3593,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "axum 0.8.6", "axum-extra", @@ -3624,7 +3628,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3650,7 +3654,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3659,7 +3663,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "anyhow", "async-trait", @@ -3670,6 +3674,8 @@ dependencies = [ "ethrex-rlp", "ethrex-trie", "hex", + "qfilter", + "rayon", "rustc-hash 2.1.1", "serde", "serde_json", @@ -3681,7 +3687,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "anyhow", "async-trait", @@ -3701,7 +3707,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "crossbeam 0.8.4", ] @@ -3709,7 +3715,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "anyhow", "bytes", @@ -3731,7 +3737,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "bincode", "bytes", @@ -4397,7 +4403,7 @@ dependencies = [ [[package]] name = "guest_program" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#94ebc1320c10fd19fb7e2e7fc660670949134338" dependencies = [ "bytes", "ethrex-blockchain", @@ -7398,6 +7404,15 @@ dependencies = [ "parking_lot 0.12.5", ] +[[package]] +name = "qfilter" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "746341cd2357c9a4df2d951522b4a8dd1ef553e543119899ad7bf87e938c8fbe" +dependencies = [ + "xxhash-rust", +] + [[package]] name = "qoi" version = "0.4.1" @@ -12089,6 +12104,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" +[[package]] +name = "xxhash-rust" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + [[package]] name = "yaml-rust2" version = "0.10.4" diff --git a/Cargo.toml b/Cargo.toml index 782b65a..9b68b69 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,22 +4,22 @@ edition = "2024" authors = ["LambdaClass"] [dependencies] -ethrex-config = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-config", branch = "main" } -ethrex-storage = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage", branch = "main" } -ethrex-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-common", branch = "main" } -ethrex-vm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-vm", branch = "main" } -ethrex-levm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-levm", branch = "main" } -ethrex-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rpc", branch = "main" } -ethrex-p2p = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-p2p", branch = "main" } -ethrex-trie = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-trie", branch = "main" } -ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rlp", branch = "main" } -ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-blockchain", branch = "main" } -ethrex-l2 = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2", branch = "main", optional = true } -ethrex-l2-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-common", branch = "main" } -ethrex-storage-rollup = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage-rollup", branch = "main", optional = true } -ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-rpc", branch = "main" } -ethrex-prover = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-prover", branch = "main", default-features = false } -guest_program = { git = "https://github.com/lambdaclass/ethrex", package = "guest_program", branch = "main", default-features = false } +ethrex-config = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-config", branch = "add_zisk_zkvm_backend" } +ethrex-storage = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage", branch = "add_zisk_zkvm_backend" } +ethrex-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-common", branch = "add_zisk_zkvm_backend" } +ethrex-vm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-vm", branch = "add_zisk_zkvm_backend" } +ethrex-levm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-levm", branch = "add_zisk_zkvm_backend" } +ethrex-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rpc", branch = "add_zisk_zkvm_backend" } +ethrex-p2p = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-p2p", branch = "add_zisk_zkvm_backend" } +ethrex-trie = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-trie", branch = "add_zisk_zkvm_backend" } +ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rlp", branch = "add_zisk_zkvm_backend" } +ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-blockchain", branch = "add_zisk_zkvm_backend" } +ethrex-l2 = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2", branch = "add_zisk_zkvm_backend", optional = true } +ethrex-l2-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-common", branch = "add_zisk_zkvm_backend" } +ethrex-storage-rollup = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage-rollup", branch = "add_zisk_zkvm_backend", optional = true } +ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-rpc", branch = "add_zisk_zkvm_backend" } +ethrex-prover = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-prover", branch = "add_zisk_zkvm_backend", default-features = false } +guest_program = { git = "https://github.com/lambdaclass/ethrex", package = "guest_program", branch = "add_zisk_zkvm_backend", default-features = false } serde = { version = "1.0.203", features = ["derive"] } hex = "0.4.3" @@ -43,6 +43,7 @@ tikv-jemallocator = { version = "0.6.0", optional = true } [features] risc0 = ["guest_program/risc0", "ethrex-prover/risc0"] sp1 = ["guest_program/sp1", "ethrex-prover/sp1"] +zisk = ["guest_program/zisk-guest", "ethrex-prover/zisk"] gpu = ["ethrex-prover/gpu"] l2 = [ "guest_program/l2", diff --git a/src/cli.rs b/src/cli.rs index 69d58df..8c27d12 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -801,16 +801,22 @@ pub fn backend(zkvm: &Option) -> eyre::Result { #[cfg(feature = "sp1")] return Ok(Backend::SP1); #[cfg(not(feature = "sp1"))] - return Err(eyre::Error::msg("SP1 feature not enabled")); + return Err(eyre::Error::msg("sp1 feature not enabled")); } Some(ZKVM::Risc0) => { #[cfg(feature = "risc0")] return Ok(Backend::RISC0); #[cfg(not(feature = "risc0"))] - return Err(eyre::Error::msg("RISC0 feature not enabled")); + return Err(eyre::Error::msg("risc0 feature not enabled")); + } + Some(ZKVM::Zisk) => { + #[cfg(feature = "zisk")] + return Ok(Backend::ZisK); + #[cfg(not(feature = "zisk"))] + return Err(eyre::Error::msg("zisk feature not enabled")); } Some(_other) => Err(eyre::Error::msg( - "Only SP1 and RISC0 backends are supported currently", + "Only SP1, RISC0, and ZisK backends are supported currently", )), None => Ok(Backend::Exec), } From d21c6baf86706859b362e91cb633a821db635a92 Mon Sep 17 00:00:00 2001 From: ilitteri Date: Thu, 6 Nov 2025 18:53:41 -0300 Subject: [PATCH 02/40] Add proof type --- src/cli.rs | 61 +++++++++++++++++++++++++++++++++++++++++++++--------- src/run.rs | 14 ++++++------- 2 files changed, 58 insertions(+), 17 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 69d58df..4997289 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -1,6 +1,7 @@ #[cfg(not(feature = "l2"))] use crate::helpers::get_block_numbers_in_cache_dir; use bytes::Bytes; +use ethrex_l2_common::prover::ProofFormat; use std::{cmp::max, fmt::Display, path::PathBuf, sync::Arc, time::Duration}; use clap::{ArgGroup, Parser, Subcommand, ValueEnum}; @@ -120,6 +121,8 @@ pub struct CommonOptions { pub resource: Resource, #[arg(long, value_enum, default_value_t = Action::default(), help_heading = "Replay Options")] pub action: Action, + #[arg(long, value_enum, default_value_t = ProofType::default(), help_heading = "Replay Options", conflicts_with_all = ["no_zkvm"])] + pub proof: ProofType, } #[derive(Parser, Clone)] @@ -263,6 +266,32 @@ impl Display for Action { } } +#[derive(Clone, Debug, ValueEnum, PartialEq, Eq, Default)] +pub enum ProofType { + #[default] + Compressed, + Groth16, +} + +impl Display for ProofType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let s = match self { + ProofType::Compressed => "Compressed", + ProofType::Groth16 => "Groth16", + }; + write!(f, "{s}") + } +} + +impl From for ProofFormat { + fn from(value: ProofType) -> Self { + match value { + ProofType::Compressed => ProofFormat::Compressed, + ProofType::Groth16 => ProofFormat::Groth16, + } + } +} + #[derive(ValueEnum, Clone, Debug, PartialEq, Eq, Default)] pub enum CacheLevel { Failed, @@ -612,7 +641,7 @@ impl EthrexReplayCommand { let proving_result = match opts.common.action { Action::Execute => None, - Action::Prove => Some(prove(backend, cache).await), + Action::Prove => Some(prove(backend, opts.common.proof, cache).await), }; println!("Batch {batch} execution result: {execution_result:?}"); @@ -723,7 +752,7 @@ async fn replay_block(block_opts: BlockOptions) -> eyre::Result<()> { let proving_result = if opts.common.action == Action::Prove { // Only prove if requested - Some(prove(backend, cache.clone()).await) + Some(prove(backend, opts.common.proof, cache.clone()).await) } else { None }; @@ -918,7 +947,14 @@ pub async fn replay_custom_l1_blocks( let proving_result = if opts.common.action == Action::Prove { // Only prove if requested - Some(prove(backend(&opts.common.zkvm)?, cache.clone()).await) + Some( + prove( + backend(&opts.common.zkvm)?, + opts.common.proof, + cache.clone(), + ) + .await, + ) } else { None }; @@ -950,14 +986,14 @@ pub async fn produce_l1_blocks( let mut current_timestamp = initial_timestamp; for _ in 0..n_blocks { - let block = produce_l1_block( + let (block, block_hash) = produce_l1_block( blockchain.clone(), store, current_parent_hash, current_timestamp, ) .await?; - current_parent_hash = block.hash(); + current_parent_hash = block_hash; current_timestamp += 12; // Assuming an average block time of 12 seconds blocks.push(block); } @@ -970,7 +1006,7 @@ pub async fn produce_l1_block( store: &mut Store, head_block_hash: H256, timestamp: u64, -) -> eyre::Result { +) -> eyre::Result<(Block, H256)> { let build_payload_args = BuildPayloadArgs { parent: head_block_hash, timestamp, @@ -1006,11 +1042,13 @@ pub async fn produce_l1_block( blockchain.add_block(block.clone())?; - let new_block_hash = block.hash(); + // We clone here to avoid initializing the block hash, it is needed + // uninitialized by the guest program. + let new_block_hash = block.clone().hash(); apply_fork_choice(store, new_block_hash, new_block_hash, new_block_hash).await?; - Ok(block) + Ok((block, new_block_hash)) } #[cfg(feature = "l2")] @@ -1028,6 +1066,7 @@ pub async fn replay_custom_l2_blocks( opts: EthrexReplayOptions, ) -> eyre::Result { use ethrex_blockchain::{BlockchainOptions, BlockchainType, L2Config}; + use ethrex_common::types::fee_config::FeeConfig; let network = Network::LocalDevnetL2; @@ -1067,7 +1106,9 @@ pub async fn replay_custom_l2_blocks( ) .await?; - let execution_witness = blockchain.generate_witness_for_blocks(&blocks).await?; + let execution_witness = blockchain + .generate_witness_for_blocks_with_fee_configs(&blocks, Some(&[FeeConfig::default()])) + .await?; let cache = Cache::new( blocks, @@ -1082,7 +1123,7 @@ pub async fn replay_custom_l2_blocks( let proving_result = match opts.common.action { Action::Execute => None, - Action::Prove => Some(prove(backend, cache.clone()).await), + Action::Prove => Some(prove(backend, opts.common.proof, cache.clone()).await), }; let report = Report::new_for( diff --git a/src/run.rs b/src/run.rs index a2ef2e2..ea0d756 100644 --- a/src/run.rs +++ b/src/run.rs @@ -1,4 +1,4 @@ -use crate::cache::Cache; +use crate::{cache::Cache, cli::ProofType}; #[cfg(feature = "l2")] use ethrex_common::types::fee_config::FeeConfig; use ethrex_common::{ @@ -7,7 +7,6 @@ use ethrex_common::{ AccountUpdate, ELASTICITY_MULTIPLIER, Receipt, block_execution_witness::GuestProgramState, }, }; -use ethrex_l2_common::prover::ProofFormat; use ethrex_levm::{db::gen_db::GeneralizedDatabase, vm::VMType}; use ethrex_prover::backend::Backend; use ethrex_rpc::debug::execution_witness::execution_witness_from_rpc_chain_config; @@ -50,20 +49,21 @@ pub async fn exec(backend: Backend, cache: Cache) -> eyre::Result { } } -pub async fn prove(backend: Backend, cache: Cache) -> eyre::Result { +pub async fn prove( + backend: Backend, + proof_type: ProofType, + cache: Cache, +) -> eyre::Result { #[cfg(feature = "l2")] let input = get_l2_input(cache)?; #[cfg(not(feature = "l2"))] let input = get_l1_input(cache)?; - // TODO: This should be parameterized - let proof_format = ProofFormat::Groth16; - let start = SystemTime::now(); // Use catch_unwind to capture panics let result = catch_unwind(AssertUnwindSafe(|| { - ethrex_prover::prove(backend, input, proof_format) + ethrex_prover::prove(backend, input, proof_type.into()) })); let elapsed = start.elapsed()?; From 07edd3da2340daa1f23b19d4bfec3a23d45c4807 Mon Sep 17 00:00:00 2001 From: ilitteri Date: Fri, 7 Nov 2025 14:20:03 -0300 Subject: [PATCH 03/40] minimal changes --- Cargo.lock | 46 ++++++++++++++++++++++++---------------------- Cargo.toml | 32 ++++++++++++++++---------------- src/rpc/db.rs | 10 ++-------- src/rpc/mod.rs | 10 +++------- src/run.rs | 21 ++++++++++++++++++--- 5 files changed, 63 insertions(+), 56 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d4592d7..56b038c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3213,13 +3213,14 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "bytes", "ethrex-common", "ethrex-metrics", "ethrex-rlp", "ethrex-storage", + "ethrex-trie", "ethrex-vm", "secp256k1", "sha3", @@ -3232,7 +3233,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "bytes", "crc32fast", @@ -3261,7 +3262,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3273,7 +3274,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "c-kzg", "kzg-rs", @@ -3283,7 +3284,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "bytes", "envy", @@ -3303,7 +3304,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "aligned-sdk", "axum 0.8.6", @@ -3361,7 +3362,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3383,7 +3384,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "axum 0.8.6", "bytes", @@ -3413,7 +3414,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "ark-bn254", "ark-ec", @@ -3445,7 +3446,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "ethrex-common", "serde", @@ -3457,7 +3458,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "aes", "async-trait", @@ -3499,7 +3500,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "anyhow", "bincode", @@ -3575,7 +3576,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3589,7 +3590,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "axum 0.8.6", "axum-extra", @@ -3624,7 +3625,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3650,7 +3651,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3659,7 +3660,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "anyhow", "async-trait", @@ -3681,7 +3682,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "anyhow", "async-trait", @@ -3701,7 +3702,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "crossbeam 0.8.4", ] @@ -3709,7 +3710,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "anyhow", "bytes", @@ -3720,6 +3721,7 @@ dependencies = [ "ethrex-threadpool", "hex", "lazy_static", + "rkyv", "serde", "serde_json", "sha3", @@ -3731,7 +3733,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "bincode", "bytes", @@ -4397,7 +4399,7 @@ dependencies = [ [[package]] name = "guest_program" version = "5.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=main#f335294b5b187cb3620a3585de89aad87bac9e26" +source = "git+https://github.com/lambdaclass/ethrex?branch=l2%2Frkyv_node#1b902522a31098195d460c5c7b7e272123851199" dependencies = [ "bytes", "ethrex-blockchain", diff --git a/Cargo.toml b/Cargo.toml index 782b65a..2978d8b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,22 +4,22 @@ edition = "2024" authors = ["LambdaClass"] [dependencies] -ethrex-config = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-config", branch = "main" } -ethrex-storage = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage", branch = "main" } -ethrex-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-common", branch = "main" } -ethrex-vm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-vm", branch = "main" } -ethrex-levm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-levm", branch = "main" } -ethrex-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rpc", branch = "main" } -ethrex-p2p = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-p2p", branch = "main" } -ethrex-trie = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-trie", branch = "main" } -ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rlp", branch = "main" } -ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-blockchain", branch = "main" } -ethrex-l2 = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2", branch = "main", optional = true } -ethrex-l2-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-common", branch = "main" } -ethrex-storage-rollup = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage-rollup", branch = "main", optional = true } -ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-rpc", branch = "main" } -ethrex-prover = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-prover", branch = "main", default-features = false } -guest_program = { git = "https://github.com/lambdaclass/ethrex", package = "guest_program", branch = "main", default-features = false } +ethrex-config = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-config", branch = "l2/rkyv_node" } +ethrex-storage = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage", branch = "l2/rkyv_node" } +ethrex-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-common", branch = "l2/rkyv_node" } +ethrex-vm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-vm", branch = "l2/rkyv_node" } +ethrex-levm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-levm", branch = "l2/rkyv_node" } +ethrex-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rpc", branch = "l2/rkyv_node" } +ethrex-p2p = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-p2p", branch = "l2/rkyv_node" } +ethrex-trie = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-trie", branch = "l2/rkyv_node" } +ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rlp", branch = "l2/rkyv_node" } +ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-blockchain", branch = "l2/rkyv_node" } +ethrex-l2 = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2", branch = "l2/rkyv_node", optional = true } +ethrex-l2-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-common", branch = "l2/rkyv_node" } +ethrex-storage-rollup = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage-rollup", branch = "l2/rkyv_node", optional = true } +ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-rpc", branch = "l2/rkyv_node" } +ethrex-prover = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-prover", branch = "l2/rkyv_node", default-features = false } +guest_program = { git = "https://github.com/lambdaclass/ethrex", package = "guest_program", branch = "l2/rkyv_node", default-features = false } serde = { version = "1.0.203", features = ["derive"] } hex = "0.4.3" diff --git a/src/rpc/db.rs b/src/rpc/db.rs index 8bd3d84..acaf752 100644 --- a/src/rpc/db.rs +++ b/src/rpc/db.rs @@ -584,19 +584,13 @@ impl LevmDatabase for RpcDB { /// calculate all possible child nodes. pub fn get_potential_child_nodes(proof: &[NodeRLP], key: &PathRLP) -> Option> { let mut state_nodes = BTreeMap::new(); - for node in proof.iter().skip(1) { - let hash = Keccak256::digest(node); - state_nodes.insert(H256::from_slice(&hash), node.clone()); - } - - let hash = if let Some(root) = proof.first() { + let hash = if let Some(root) = proof.first() { let hash = H256::from_slice(&Keccak256::digest(root)); - state_nodes.insert(hash, root.clone()); hash } else { *EMPTY_KECCACK_HASH }; - let trie = Trie::from_nodes(hash, &state_nodes).ok()?; + let trie = Trie::from_nodes(hash, &mut state_nodes).ok()?; // return some only if this is a proof of exclusion if trie.get(key).ok()?.is_none() { diff --git a/src/rpc/mod.rs b/src/rpc/mod.rs index a65efc7..0a17bfd 100644 --- a/src/rpc/mod.rs +++ b/src/rpc/mod.rs @@ -6,9 +6,10 @@ use again::{RetryPolicy, Task}; use bytes::Bytes; use ethrex_common::{Address, H256, U256, constants::EMPTY_KECCACK_HASH, types::AccountState}; +use ethrex_rlp::decode::RLPDecode; use ethrex_rpc::types::block::RpcBlock; use ethrex_storage::hash_address; -use ethrex_trie::Trie; +use ethrex_trie::{Node, Trie}; use serde::Deserialize; use serde::de::DeserializeOwned; @@ -149,13 +150,8 @@ pub async fn get_account( .ok_or(eyre::Error::msg("account proof is empty".to_string()))?; let mut state_nodes = BTreeMap::new(); - for node in &account_proof { - let hash = sha3::Keccak256::digest(node); - state_nodes.insert(H256::from_slice(&hash), node.clone()); - } - let hash = H256::from_slice(&sha3::Keccak256::digest(root)); - let trie = Trie::from_nodes(hash, &state_nodes)?; + let trie = Trie::from_nodes(hash, &mut state_nodes)?; if trie.get(&hash_address(address))?.is_none() { return Ok(Account::NonExisting { account_proof, diff --git a/src/run.rs b/src/run.rs index ea0d756..759df59 100644 --- a/src/run.rs +++ b/src/run.rs @@ -101,6 +101,7 @@ pub async fn run_tx(cache: Cache, tx_hash: H256) -> eyre::Result<(Receipt, Vec eyre::Result<(Receipt, Vec eyre::Result { + use ethrex_common::types::BlockHeader; + use ethrex_rlp::decode::RLPDecode; + let Cache { blocks, witness: db, @@ -168,9 +172,20 @@ fn get_l1_input(cache: Cache) -> eyre::Result { .header .number; - let execution_witness = - execution_witness_from_rpc_chain_config(db, chain_config, first_block_number) - .wrap_err("Failed to convert execution witness")?; + let initial_state_root = db + .headers + .iter() + .map(|h| BlockHeader::decode(h).unwrap()) + .find(|h| h.number == first_block_number - 1) + .map(|h| h.state_root) + .unwrap(); + + let execution_witness = execution_witness_from_rpc_chain_config( + db, + chain_config, + first_block_number, + initial_state_root, + )?; Ok(ProgramInput { blocks, From 3d67455805ba6b8316672031dd549c84fba18799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 20 Nov 2025 11:59:17 -0300 Subject: [PATCH 04/40] update feature --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 27aef52..3dfbcdb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,7 +45,7 @@ tikv-jemallocator = { version = "0.6.0", optional = true } [features] risc0 = ["guest_program/risc0", "ethrex-prover/risc0"] sp1 = ["guest_program/sp1", "ethrex-prover/sp1"] -zisk = ["guest_program/zisk-guest", "ethrex-prover/zisk"] +zisk = ["guest_program/zisk", "ethrex-prover/zisk"] gpu = ["ethrex-prover/gpu"] l2 = [ "guest_program/l2", From 4df31cd92013f83ca6e54f845147b6fe273aa167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 20 Nov 2025 13:16:06 -0300 Subject: [PATCH 05/40] fixes --- Cargo.lock | 15 +++ src/cli.rs | 245 ++++++++++++++++++++++++++----------------------- src/rpc/db.rs | 9 +- src/rpc/mod.rs | 5 + 4 files changed, 158 insertions(+), 116 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 97dd64e..0fbe82f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3392,6 +3392,7 @@ dependencies = [ "ethrex-trie", "ethrex-vm", "hex", + "k256", "lambdaworks-crypto 0.13.0", "rkyv", "secp256k1", @@ -3460,6 +3461,7 @@ dependencies = [ "sha2", "sha3", "strum 0.27.2", + "substrate-bn", "thiserror 2.0.17", "walkdir", ] @@ -10148,6 +10150,19 @@ dependencies = [ "syn 2.0.110", ] +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" +dependencies = [ + "byteorder", + "crunchy", + "lazy_static", + "rand 0.8.5", + "rustc-hex", +] + [[package]] name = "subtle" version = "2.6.1" diff --git a/src/cli.rs b/src/cli.rs index 65a9431..0e69185 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -5,10 +5,11 @@ use bytes::Bytes; use ethrex_l2_common::prover::ProofFormat; use ethrex_l2_rpc::signer::{LocalSigner, Signer}; use ethrex_rlp::decode::RLPDecode; -use ethrex_trie::{EMPTY_TRIE_HASH, InMemoryTrieDB}; +use ethrex_trie::{EMPTY_TRIE_HASH, InMemoryTrieDB, Nibbles}; use eyre::OptionExt; use std::{ cmp::max, + collections::BTreeMap, fmt::Display, path::PathBuf, sync::Arc, @@ -27,6 +28,7 @@ use ethrex_common::{ AccountState, AccountUpdate, Block, Code, DEFAULT_BUILDER_GAS_CEIL, ELASTICITY_MULTIPLIER, Receipt, block_execution_witness::GuestProgramState, }, + utils::keccak, }; use ethrex_prover::backend::Backend; #[cfg(not(feature = "l2"))] @@ -739,121 +741,136 @@ pub async fn setup_rpc(opts: &EthrexReplayOptions) -> eyre::Result<(EthClient, N Ok((eth_client, network)) } -async fn replay_no_zkvm(_cache: Cache, _opts: &EthrexReplayOptions) -> eyre::Result { - // let b = backend(&opts.common.zkvm)?; - // if !matches!(b, Backend::Exec) { - // eyre::bail!("Tried to execute without zkVM but backend was set to {b:?}"); - // } - // if opts.common.action == Action::Prove { - // eyre::bail!("Proving not enabled without backend"); - // } - // if cache.blocks.len() > 1 { - // eyre::bail!("Cache for L1 witness should contain only one block."); - // } - - // let start = Instant::now(); - // info!("Preparing Storage for execution without zkVM"); - - // let chain_config = cache.get_chain_config()?; - // let block = cache.blocks[0].clone(); - - // let witness = execution_witness_from_rpc_chain_config( - // cache.witness.clone(), - // chain_config, - // cache.get_first_block_number()?, - // )?; - // let network = &cache.network; - - // let guest_program = GuestProgramState::try_from(witness.clone())?; - - // // This will contain all code hashes with the corresponding bytecode - // // For the code hashes that we don't have we'll fill it with - // let mut all_codes_hashed = guest_program.codes_hashed.clone(); - - // let all_nodes = &guest_program.nodes_hashed; - // let mut store = Store::new("nothing", EngineType::InMemory)?; - - // // - Set up state trie nodes - // let state_root = guest_program.parent_block_header.state_root; - - // let state_trie = InMemoryTrieDB::from_nodes(state_root, all_nodes)?; - // let state_trie_nodes = get_trie_nodes_with_dummies(state_trie); - - // let trie = store.open_direct_state_trie(*EMPTY_TRIE_HASH)?; - - // trie.db().put_batch(state_trie_nodes)?; - - // // - Set up all storage tries for all addresses in the execution witness - // let addresses: Vec
= witness - // .keys - // .iter() - // .filter(|k| k.len() == Address::len_bytes()) - // .map(|k| Address::from_slice(k)) - // .collect(); - - // for address in &addresses { - // let hashed_address = hash_address(address); - - // // Account state may not be in the state trie - // let Some(account_state_rlp) = guest_program - // .state_trie - // .as_ref() - // .unwrap() - // .get(&hashed_address)? - // else { - // continue; - // }; - - // let account_state = AccountState::decode(&account_state_rlp)?; - - // // If code hash of account isn't present insert empty code so that if not found the execution doesn't break. - // let code_hash = account_state.code_hash; - // all_codes_hashed.entry(code_hash).or_insert(Code::default()); - - // let storage_root = account_state.storage_root; - // let Ok(storage_trie) = InMemoryTrieDB::from_nodes(storage_root, all_nodes) else { - // continue; - // }; - - // let storage_trie_nodes = get_trie_nodes_with_dummies(storage_trie); - - // // If there isn't any storage trie node we don't need to write anything - // if storage_trie_nodes.is_empty() { - // continue; - // } - - // let storage_trie_nodes = vec![(H256::from_slice(&hashed_address), storage_trie_nodes)]; - - // store - // .write_storage_trie_nodes_batch(storage_trie_nodes) - // .await?; - // } - - // store.chain_config = chain_config; - - // // Add codes to DB - // for (code_hash, mut code) in all_codes_hashed { - // code.hash = code_hash; - // store.add_account_code(code).await?; - // } - - // // Add block headers to DB - // for (_n, header) in guest_program.block_headers.clone() { - // store.add_block_header(header.hash(), header).await?; - // } - - // let blockchain = Blockchain::default_with_store(store); +async fn replay_no_zkvm(cache: Cache, opts: &EthrexReplayOptions) -> eyre::Result { + let b = backend(&opts.common.zkvm)?; + if !matches!(b, Backend::Exec) { + eyre::bail!("Tried to execute without zkVM but backend was set to {b:?}"); + } + if opts.common.action == Action::Prove { + eyre::bail!("Proving not enabled without backend"); + } + if cache.blocks.len() > 1 { + eyre::bail!("Cache for L1 witness should contain only one block."); + } + + let start = Instant::now(); + info!("Preparing Storage for execution without zkVM"); + + let chain_config = cache.get_chain_config()?; + let block = cache.blocks[0].clone(); + + let first_block_number = cache.get_first_block_number()?; + let Some(parent_block_header) = cache.blocks.iter().find_map(|b| { + if b.header.number == first_block_number - 1 { + Some(b.header.clone()) + } else { + None + } + }) else { + eyre::bail!("No parent block header"); + }; + + let witness = execution_witness_from_rpc_chain_config( + cache.witness.clone(), + chain_config, + cache.get_first_block_number()?, + parent_block_header.state_root, + )?; + let network = &cache.network; + + let guest_program = GuestProgramState::try_from(witness.clone())?; + + // This will contain all code hashes with the corresponding bytecode + // For the code hashes that we don't have we'll fill it with + let mut all_codes_hashed = guest_program.codes_hashed.clone(); + + let mut store = Store::new("nothing", EngineType::InMemory)?; + + // - Set up state trie nodes + let state_root = guest_program.parent_block_header.state_root; + + let mut all_nodes = Vec::new(); + guest_program + .state_trie + .get_root_node(Nibbles::default())? + .encode_subtrie(&mut all_nodes)?; + let all_nodes: BTreeMap<_, _> = all_nodes + .into_iter() + .map(|n| (keccak(n.clone()), n)) + .collect(); + let state_trie = InMemoryTrieDB::from_nodes(state_root, &all_nodes)?; + + let state_trie_nodes = get_trie_nodes_with_dummies(state_trie); + + let trie = store.open_direct_state_trie(*EMPTY_TRIE_HASH)?; + + trie.db().put_batch(state_trie_nodes)?; + + // - Set up all storage tries for all addresses in the execution witness + let addresses: Vec
= witness + .keys + .iter() + .filter(|k| k.len() == Address::len_bytes()) + .map(|k| Address::from_slice(k)) + .collect(); + + for address in &addresses { + let hashed_address = hash_address(address); + + // Account state may not be in the state trie + let Some(account_state_rlp) = guest_program.state_trie.get(&hashed_address)? else { + continue; + }; + + let account_state = AccountState::decode(&account_state_rlp)?; + + // If code hash of account isn't present insert empty code so that if not found the execution doesn't break. + let code_hash = account_state.code_hash; + all_codes_hashed.entry(code_hash).or_insert(Code::default()); + + let storage_root = account_state.storage_root; + let Ok(storage_trie) = InMemoryTrieDB::from_nodes(storage_root, &all_nodes) else { + continue; + }; + + let storage_trie_nodes = get_trie_nodes_with_dummies(storage_trie); + + // If there isn't any storage trie node we don't need to write anything + if storage_trie_nodes.is_empty() { + continue; + } + + let storage_trie_nodes = vec![(H256::from_slice(&hashed_address), storage_trie_nodes)]; + + store + .write_storage_trie_nodes_batch(storage_trie_nodes) + .await?; + } + + store.chain_config = chain_config; + + // Add codes to DB + for (code_hash, mut code) in all_codes_hashed { + code.hash = code_hash; + store.add_account_code(code).await?; + } + + // Add block headers to DB + for (_n, header) in guest_program.block_headers.clone() { + store.add_block_header(header.hash(), header).await?; + } + + let blockchain = Blockchain::default_with_store(store); - // info!("Storage preparation finished in {:.2?}", start.elapsed()); + info!("Storage preparation finished in {:.2?}", start.elapsed()); - // info!("Executing block {} on {}", block.header.number, network); - // let start_time = Instant::now(); - // blockchain.add_block(block)?; - // let duration = start_time.elapsed(); - // info!("add_block execution time: {:.2?}", duration); + info!("Executing block {} on {}", block.header.number, network); + let start_time = Instant::now(); + blockchain.add_block(block)?; + let duration = start_time.elapsed(); + info!("add_block execution time: {:.2?}", duration); - // Ok(duration) - Ok(Duration::default()) + Ok(duration) } async fn replay_transaction(tx_opts: TransactionOpts) -> eyre::Result<()> { @@ -993,7 +1010,7 @@ pub fn backend(zkvm: &Option) -> eyre::Result { return Err(eyre::Error::msg("zisk feature not enabled")); } Some(_other) => Err(eyre::Error::msg( - "Only SP1, RISC0, and ZisK backends are supported currently", + "Only SP1, Risc0, and ZisK backends are supported currently", )), None => Ok(Backend::Exec), } diff --git a/src/rpc/db.rs b/src/rpc/db.rs index acaf752..ac2356c 100644 --- a/src/rpc/db.rs +++ b/src/rpc/db.rs @@ -584,13 +584,18 @@ impl LevmDatabase for RpcDB { /// calculate all possible child nodes. pub fn get_potential_child_nodes(proof: &[NodeRLP], key: &PathRLP) -> Option> { let mut state_nodes = BTreeMap::new(); - let hash = if let Some(root) = proof.first() { + for node in proof.iter().skip(1) { + let hash = Keccak256::digest(node); + state_nodes.insert(H256::from_slice(&hash), Node::decode(&node).unwrap()); + } + + let hash = if let Some(root) = proof.first() { let hash = H256::from_slice(&Keccak256::digest(root)); hash } else { *EMPTY_KECCACK_HASH }; - let trie = Trie::from_nodes(hash, &mut state_nodes).ok()?; + let trie = Trie::from_nodes(hash, &state_nodes).ok()?; // return some only if this is a proof of exclusion if trie.get(key).ok()?.is_none() { diff --git a/src/rpc/mod.rs b/src/rpc/mod.rs index 0a17bfd..aeb1f88 100644 --- a/src/rpc/mod.rs +++ b/src/rpc/mod.rs @@ -150,6 +150,11 @@ pub async fn get_account( .ok_or(eyre::Error::msg("account proof is empty".to_string()))?; let mut state_nodes = BTreeMap::new(); + for node in &account_proof { + let hash = sha3::Keccak256::digest(node); + state_nodes.insert(H256::from_slice(&hash), Node::decode(&node).unwrap()); + } + let hash = H256::from_slice(&sha3::Keccak256::digest(root)); let trie = Trie::from_nodes(hash, &mut state_nodes)?; if trie.get(&hash_address(address))?.is_none() { From af3d22b7516a30094ac632b2c11a40b43dcd63c7 Mon Sep 17 00:00:00 2001 From: Ivan Litteri <67517699+ilitteri@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:35:01 -0300 Subject: [PATCH 06/40] Delete .github/.DS_Store --- .github/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/.DS_Store diff --git a/.github/.DS_Store b/.github/.DS_Store deleted file mode 100644 index 2eb408aff1cff9ba142bb4835c5ec8302d2fb385..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO-sW-5S?v{rs$zZ4!!O9+ZwXA02 zbqGBR=$S)L232l7tr*^Uol(|vc2d$)87E2CdN#8f^mJ(nXXf-ocNC+w{Hm#c3{4HJ zvaYxNezbLMeQIQ`wGGF`6ErZZ`Yzco4Rt^rPzQeM0QPJSZ%0sTbwC|Z2MP!H`{1K6 z1`cyU`{_Vsj{v|9(l*ex|8PK`6TrY>E{F`mNLQeAHSUOEq&xDy;{^_LLFrD$&Wv%~ z%*LHijGY~M-_pqhf?BHs>Oj?jwp{jj{~vEY|5rQdl{%mf{3{1cC!B;MJd)d6YY)eJ tt&ehp!oj>;u;_w@-HO5Gt#}W`2J${PfPuqY5E+F22v{4mQU`w3flukhZ8!h` From f78b4eefdba4efdb752b84fe227a21325e4281b9 Mon Sep 17 00:00:00 2001 From: Ivan Litteri <67517699+ilitteri@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:35:27 -0300 Subject: [PATCH 07/40] Delete src/.DS_Store --- src/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/.DS_Store diff --git a/src/.DS_Store b/src/.DS_Store deleted file mode 100644 index 9d56e691f802385076b992d175fe9263fa866a3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKy-veG47O>7BC&L2K;8DBC6nmw3B6Qk{2J@iASbDmNVwdRk!U&bw34!JE2GF zY1M8@{`19GX4}Fa)!X~a=JalVU1ryZY|~y{zTTGE{-Hc|04*#O2n9lcP#_fe z*9xF#i&bZav4#SnKqzofK)w$NE|?t$L;ZAM(GdVBzwv5#)>#6WBmm5ggCQa?HY(7l z>>~yn9r5IK*>Ny5I3qF;H7EHqwgEi@GGw$Y;mFQ0a&(9T-0X MqDxpP@EZzz09^DY@&Et; From 5bea82fb7cb9e731eb529ddda486a8f3f70556e0 Mon Sep 17 00:00:00 2001 From: Ivan Litteri <67517699+ilitteri@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:35:45 -0300 Subject: [PATCH 08/40] Delete .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 44270e83eb4206e4288bb161e2f02c0989678cd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHLJxc>Y5S>kq7}O#~3>G3+TLdE(smv*78<2EXnh$b9!i9W*m7I;gz<*(7Yh@>P zf`1^btzc#2%=nU+>yPcVxcaOc>YydzUP1+TJ0s!Q(5jv~bEiv*_OISva zY$6Jpqt~r8T48^Xh~xoQfEDCpDKzx59Sr7>h?q@^GLHA@Z;}zvAowZ}{gb zEc07+<@X=5FoGeptS8TGd}3AYF>8vCt8PxMfthz+G3mAHWg?su^&X?%LtJ|ud+img zm-~x;v-aNZBwl~k9H!oBF(!{=W^nGx#5qcUUh4RyZ zojd{{Iyfv1ujwp7Ij%-eW26v0XhNkTs#Kwm7(%7vxU1tljgdl?4niM3gsv>~2}Q{2 zIKL~yL3j$eX9ZXRTY;>)EztgdoPPedllYDmUbed{t-Ts-dht7M|-V{?F<_k q#YGBb3U+!smKU@Y)Bg(6(C5+xqNg!Zh$CqHLqN*F9V_so3VZ<@{J#hQ From a1345f1bfa54fc676677226c1139b4b93beb3ffc Mon Sep 17 00:00:00 2001 From: ilitteri Date: Fri, 21 Nov 2025 01:30:20 -0300 Subject: [PATCH 09/40] update lock --- Cargo.lock | 60 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0fbe82f..40aa004 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3228,7 +3228,7 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3292,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3303,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "bytes", "envy", @@ -3323,7 +3323,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "aligned-sdk", "axum 0.8.7", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3405,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "axum 0.8.7", "bytes", @@ -3435,7 +3435,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3469,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3485,7 +3485,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "aes", "async-trait", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "anyhow", "bincode", @@ -3604,7 +3604,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3618,7 +3618,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3657,7 +3657,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3683,7 +3683,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3692,7 +3692,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "anyhow", "async-trait", @@ -3704,6 +3704,7 @@ dependencies = [ "ethrex-rlp", "ethrex-trie", "hex", + "lru 0.16.2", "qfilter", "rayon", "rustc-hash 2.1.1", @@ -3716,7 +3717,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "anyhow", "async-trait", @@ -3736,7 +3737,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "crossbeam 0.8.4", ] @@ -3744,7 +3745,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "anyhow", "bytes", @@ -3768,7 +3769,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "bincode", "bytes", @@ -4433,7 +4434,7 @@ dependencies = [ [[package]] name = "guest_program" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#db234eec7b1da30abcb23eada63cf73c6b3d475b" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" dependencies = [ "bytes", "ethrex-blockchain", @@ -4594,6 +4595,8 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" dependencies = [ + "allocator-api2", + "equivalent", "foldhash 0.2.0", "serde", ] @@ -5691,6 +5694,15 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "lru" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" +dependencies = [ + "hashbrown 0.16.0", +] + [[package]] name = "lru-slab" version = "0.1.2" @@ -7725,7 +7737,7 @@ dependencies = [ "indoc", "instability", "itertools 0.13.0", - "lru", + "lru 0.12.5", "paste", "strum 0.26.3", "unicode-segmentation", @@ -9703,7 +9715,7 @@ dependencies = [ "hashbrown 0.14.5", "hex", "itertools 0.13.0", - "lru", + "lru 0.12.5", "num-bigint 0.4.6", "p3-baby-bear", "p3-bn254-fr", From e5b1907547cc799a48d048050a6a4018748857ef Mon Sep 17 00:00:00 2001 From: ilitteri Date: Fri, 21 Nov 2025 02:24:37 -0300 Subject: [PATCH 10/40] Add binary inputs generation command --- .gitignore | 1 + Cargo.lock | 1 + Cargo.toml | 1 + src/cli.rs | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++- src/run.rs | 2 +- 5 files changed, 129 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index cac6a4b..b93fe26 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ target # Default replay cache directory (JIC) replay_cache/ +generated_inputs/ # asdf .tool-versions diff --git a/Cargo.lock b/Cargo.lock index 40aa004..0b159bb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3591,6 +3591,7 @@ dependencies = [ "hex", "lazy_static", "reqwest 0.12.24", + "rkyv", "serde", "serde_json", "serde_with", diff --git a/Cargo.toml b/Cargo.toml index 3dfbcdb..fcd15b1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,6 +41,7 @@ futures-util = "0.3.31" futures = "0.3.31" sha3 = "0.10.8" tikv-jemallocator = { version = "0.6.0", optional = true } +rkyv = { version = "0.8.10", features = ["std", "unaligned"] } [features] risc0 = ["guest_program/risc0", "ethrex-prover/risc0"] diff --git a/src/cli.rs b/src/cli.rs index 0e69185..63bd42f 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -92,6 +92,9 @@ pub enum EthrexReplayCommand { #[command(subcommand, about = "Replay a custom block or batch")] Custom(CustomSubcommand), #[cfg(not(feature = "l2"))] + #[command(about = "Generate binary input for ethrex guest")] + GenerateInput(GenerateInputOptions), + #[cfg(not(feature = "l2"))] #[command(about = "Replay a single transaction")] Transaction(TransactionOpts), #[cfg(feature = "l2")] @@ -129,7 +132,7 @@ pub enum CustomSubcommand { Batch(CustomBatchOptions), } -#[derive(Parser, Clone)] +#[derive(Parser, Clone, Default)] pub struct CommonOptions { #[arg( long, @@ -439,6 +442,49 @@ pub enum TxVariant { ERC20Transfer, } +#[derive(Parser)] +#[command(group(ArgGroup::new("block_list").required(true).multiple(true).args(["block", "blocks", "from"])))] +pub struct GenerateInputOptions { + #[arg( + long, + conflicts_with_all = ["blocks", "from", "to"], + help = "Block to generate input for", + help_heading = "Command Options" + )] + block: Option, + #[arg(long, help = "List of blocks to execute.", num_args = 1.., value_delimiter = ',', conflicts_with_all = ["block", "from", "to"], help_heading = "Command Options")] + blocks: Vec, + #[arg( + long, + conflicts_with_all = ["blocks", "block"], + help = "Starting block. (Inclusive)", + help_heading = "Command Options" + )] + from: Option, + #[arg( + long, + conflicts_with_all = ["blocks", "block"], + help = "Ending block. (Inclusive)", + requires = "from", + help_heading = "Command Options" + )] + to: Option, + #[arg( + long, + help = "Directory to store the generated input", + value_parser, + default_value = "./generated_inputs", + help_heading = "Replay Options" + )] + output_dir: PathBuf, + #[arg( + long, + help = "RPC provider to fetch data from", + help_heading = "Replay Options" + )] + rpc_url: Url, +} + impl EthrexReplayCommand { pub async fn run(self) -> eyre::Result<()> { match self { @@ -654,6 +700,84 @@ impl EthrexReplayCommand { plot(&blocks).await?; } + #[cfg(not(feature = "l2"))] + Self::GenerateInput(GenerateInputOptions { + block, + blocks, + from, + to, + output_dir, + rpc_url, + }) => { + let from = match from { + Some(from) => from, + None => { + if let Some(block) = block { + block + } else if !blocks.is_empty() { + *blocks.first().unwrap() + } else { + eyre::bail!("Either block, blocks or to must be specified") + } + } + }; + + let to = match to { + Some(to) => to, + None => { + if let Some(block) = block { + block + } else if !blocks.is_empty() { + *blocks.last().unwrap() + } else { + fetch_latest_block_number(rpc_url.clone(), false).await? + } + } + }; + + let opts = EthrexReplayOptions { + common: CommonOptions::default(), + rpc_url: Some(rpc_url.clone()), + cached: false, + network: None, + cache_dir: PathBuf::default(), + cache_level: CacheLevel::Off, + slack_webhook_url: None, + no_zkvm: false, + bench: false, + notification_level: NotificationLevel::Off, + }; + + if !output_dir.exists() { + std::fs::create_dir_all(&output_dir)?; + } + + for block in from..=to { + let (cache, network) = get_blockdata(opts.clone(), Some(block)).await?; + + let program_input = crate::run::get_l1_input(cache)?; + + let serialized_program_input = + rkyv::to_bytes::(&program_input)?; + + let input_output_path = + output_dir.join(format!("ethrex_{network}_{block}_input.bin")); + + std::fs::write(input_output_path, serialized_program_input.as_slice())?; + } + + if from == to { + info!( + "Generated input for block {from} in directory {}", + output_dir.display() + ); + } else { + info!( + "Generated inputs for blocks {from} to {to} in directory {}", + output_dir.display() + ); + } + } #[cfg(feature = "l2")] Self::L2(L2Subcommand::Transaction(TransactionOpts { tx_hash, diff --git a/src/run.rs b/src/run.rs index 759df59..460ebb4 100644 --- a/src/run.rs +++ b/src/run.rs @@ -143,7 +143,7 @@ pub async fn run_tx(cache: Cache, tx_hash: H256) -> eyre::Result<(Receipt, Vec eyre::Result { +pub fn get_l1_input(cache: Cache) -> eyre::Result { use ethrex_common::types::BlockHeader; use ethrex_rlp::decode::RLPDecode; From 1d7da932f88c463b9e4f7ab73f9a24e2a1949db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 21 Nov 2025 14:23:56 -0300 Subject: [PATCH 11/40] remove file --- diff | 2416 ---------------------------------------------------------- 1 file changed, 2416 deletions(-) delete mode 100644 diff diff --git a/diff b/diff deleted file mode 100644 index 865a795..0000000 --- a/diff +++ /dev/null @@ -1,2416 +0,0 @@ -diff --git a/Cargo.lock b/Cargo.lock -index 821e4c3..d6d03fc 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -32,7 +32,7 @@ dependencies = [ - "cpp_demangle", - "fallible-iterator", - "gimli 0.31.1", -- "memmap2 0.9.8", -+ "memmap2 0.9.9", - "object 0.36.7", - "rustc-demangle", - "smallvec", -@@ -96,9 +96,9 @@ dependencies = [ - - [[package]] - name = "aho-corasick" --version = "1.1.3" -+version = "1.1.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -+checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" - dependencies = [ - "memchr", - ] -@@ -106,7 +106,7 @@ dependencies = [ - [[package]] - name = "aligned-sdk" - version = "0.1.0" --source = "git+https://github.com/yetanotherco/aligned_layer?tag=v0.16.1#d6c5ffd0b7e4952724c4ee167187bf0945238d0d" -+source = "git+https://github.com/yetanotherco/aligned_layer?rev=c60d7eb147edbdf12bb7a7c6e92ec178d9f8da23#c60d7eb147edbdf12bb7a7c6e92ec178d9f8da23" - dependencies = [ - "ciborium", - "dialoguer", -@@ -117,6 +117,7 @@ dependencies = [ - "log", - "reqwest 0.12.24", - "serde", -+ "serde_bytes", - "serde_json", - "serde_repr", - "sha3", -@@ -142,7 +143,7 @@ dependencies = [ - "const-hex", - "derive_more 2.0.1", - "hashbrown 0.16.0", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "itoa", - "k256", - "paste", -@@ -299,7 +300,7 @@ checksum = "e7e89fe77d1f0f4fe5b96dfc940923d88d17b6a773808124f21e764dfb063c6a" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -408,7 +409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" - dependencies = [ - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -446,7 +447,7 @@ dependencies = [ - "num-traits", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -550,7 +551,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -641,7 +642,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -652,7 +653,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -689,7 +690,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -921,7 +922,7 @@ version = "0.69.5" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", -@@ -934,7 +935,7 @@ dependencies = [ - "regex", - "rustc-hash 1.1.0", - "shlex", -- "syn 2.0.106", -+ "syn 2.0.108", - "which 4.4.2", - ] - -@@ -944,7 +945,7 @@ version = "0.70.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", -@@ -955,7 +956,7 @@ dependencies = [ - "regex", - "rustc-hash 1.1.0", - "shlex", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -964,7 +965,7 @@ version = "0.72.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", -@@ -975,7 +976,7 @@ dependencies = [ - "regex", - "rustc-hash 2.1.1", - "shlex", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -1038,9 +1039,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - - [[package]] - name = "bitflags" --version = "2.9.4" -+version = "2.10.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" -+checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" - - [[package]] - name = "bitvec" -@@ -1102,6 +1103,15 @@ dependencies = [ - "generic-array 0.14.9", - ] - -+[[package]] -+name = "block2" -+version = "0.6.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" -+dependencies = [ -+ "objc2", -+] -+ - [[package]] - name = "bls12_381" - version = "0.7.1" -@@ -1173,7 +1183,7 @@ dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -1218,7 +1228,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -1238,7 +1248,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -1360,22 +1370,22 @@ checksum = "3fce8dd7fcfcbf3a0a87d8f515194b49d6135acab73e18bd380d1d93bb1a15eb" - dependencies = [ - "clap", - "heck 0.4.1", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "log", - "proc-macro2", - "quote", - "serde", - "serde_json", -- "syn 2.0.106", -+ "syn 2.0.108", - "tempfile", - "toml", - ] - - [[package]] - name = "cc" --version = "1.2.41" -+version = "1.2.43" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" -+checksum = "739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2" - dependencies = [ - "find-msvc-tools", - "jobserver", -@@ -1490,7 +1500,7 @@ dependencies = [ - "byteorder", - "indicatif", - "libc", -- "memmap2 0.9.8", -+ "memmap2 0.9.9", - "num-bigint 0.4.6", - "num-traits", - "prost", -@@ -1518,9 +1528,9 @@ dependencies = [ - - [[package]] - name = "clap" --version = "4.5.49" -+version = "4.5.51" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f4512b90fa68d3a9932cea5184017c5d200f5921df706d45e853537dea51508f" -+checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" - dependencies = [ - "clap_builder", - "clap_derive", -@@ -1528,9 +1538,9 @@ dependencies = [ - - [[package]] - name = "clap_builder" --version = "4.5.49" -+version = "4.5.51" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0025e98baa12e766c67ba13ff4695a887a1eba19569aad00a472546795bd6730" -+checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" - dependencies = [ - "anstream", - "anstyle", -@@ -1547,7 +1557,7 @@ dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -1970,7 +1980,7 @@ version = "0.28.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "crossterm_winapi", - "mio", - "parking_lot 0.12.5", -@@ -1986,7 +1996,7 @@ version = "0.29.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "crossterm_winapi", - "derive_more 2.0.1", - "document-features", -@@ -2047,11 +2057,11 @@ dependencies = [ - - [[package]] - name = "ctrlc" --version = "3.5.0" -+version = "3.5.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "881c5d0a13b2f1498e2306e82cbada78390e152d4b1378fb28a84f4dcd0dc4f3" -+checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" - dependencies = [ -- "dispatch", -+ "dispatch2", - "nix", - "windows-sys 0.61.2", - ] -@@ -2133,7 +2143,7 @@ dependencies = [ - "proc-macro2", - "quote", - "strsim", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2147,7 +2157,7 @@ dependencies = [ - "proc-macro2", - "quote", - "strsim", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2158,7 +2168,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" - dependencies = [ - "darling_core 0.20.11", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2169,7 +2179,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" - dependencies = [ - "darling_core 0.21.3", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2333,7 +2343,7 @@ dependencies = [ - "quote", - "strum 0.25.0", - "strum_macros 0.25.3", -- "syn 2.0.106", -+ "syn 2.0.108", - "thiserror 1.0.69", - ] - -@@ -2361,9 +2371,9 @@ dependencies = [ - - [[package]] - name = "deranged" --version = "0.5.4" -+version = "0.5.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" -+checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" - dependencies = [ - "powerfmt", - "serde_core", -@@ -2388,7 +2398,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2409,7 +2419,7 @@ dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2419,7 +2429,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" - dependencies = [ - "derive_builder_core", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2449,7 +2459,7 @@ dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - "unicode-xid", - ] - -@@ -2462,7 +2472,7 @@ dependencies = [ - "convert_case 0.7.1", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - "unicode-xid", - ] - -@@ -2582,10 +2592,16 @@ dependencies = [ - ] - - [[package]] --name = "dispatch" --version = "0.2.0" -+name = "dispatch2" -+version = "0.3.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" -+checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" -+dependencies = [ -+ "bitflags 2.10.0", -+ "block2", -+ "libc", -+ "objc2", -+] - - [[package]] - name = "displaydoc" -@@ -2595,7 +2611,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2606,9 +2622,9 @@ checksum = "ccf673e0848ef09fa4aeeba78e681cf651c0c7d35f76ee38cec8e55bc32fa111" - - [[package]] - name = "document-features" --version = "0.2.11" -+version = "0.2.12" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" -+checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" - dependencies = [ - "litrs", - ] -@@ -2680,7 +2696,7 @@ dependencies = [ - "enum-ordinalize", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -2788,27 +2804,27 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] - name = "enum-ordinalize" --version = "4.3.0" -+version = "4.3.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" -+checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" - dependencies = [ - "enum-ordinalize-derive", - ] - - [[package]] - name = "enum-ordinalize-derive" --version = "4.3.1" -+version = "4.3.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" -+checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -3026,7 +3042,7 @@ dependencies = [ - "reqwest 0.11.27", - "serde", - "serde_json", -- "syn 2.0.106", -+ "syn 2.0.108", - "toml", - "walkdir", - ] -@@ -3044,7 +3060,7 @@ dependencies = [ - "proc-macro2", - "quote", - "serde_json", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -3062,7 +3078,7 @@ dependencies = [ - "ethabi", - "generic-array 0.14.9", - "k256", -- "num_enum 0.7.4", -+ "num_enum 0.7.5", - "once_cell", - "open-fastrlp", - "rand 0.8.5", -@@ -3070,7 +3086,7 @@ dependencies = [ - "serde", - "serde_json", - "strum 0.26.3", -- "syn 2.0.106", -+ "syn 2.0.108", - "tempfile", - "thiserror 1.0.69", - "tiny-keccak", -@@ -3211,8 +3227,8 @@ dependencies = [ - - [[package]] - name = "ethrex-blockchain" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "bytes", - "ethrex-common", -@@ -3230,8 +3246,8 @@ dependencies = [ - - [[package]] - name = "ethrex-common" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "bytes", - "crc32fast", -@@ -3259,8 +3275,8 @@ dependencies = [ - - [[package]] - name = "ethrex-config" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "ethrex-common", - "ethrex-p2p", -@@ -3271,8 +3287,8 @@ dependencies = [ - - [[package]] - name = "ethrex-crypto" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "c-kzg", - "kzg-rs", -@@ -3281,8 +3297,8 @@ dependencies = [ - - [[package]] - name = "ethrex-dev" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "bytes", - "envy", -@@ -3301,8 +3317,8 @@ dependencies = [ - - [[package]] - name = "ethrex-l2" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "aligned-sdk", - "axum 0.8.6", -@@ -3359,8 +3375,8 @@ dependencies = [ - - [[package]] - name = "ethrex-l2-common" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "bytes", - "ethereum-types 0.15.1", -@@ -3369,17 +3385,20 @@ dependencies = [ - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", -+ "hex", - "lambdaworks-crypto 0.11.0", -+ "rkyv", - "secp256k1", - "serde", -+ "serde_with", - "sha3", - "thiserror 2.0.17", - ] - - [[package]] - name = "ethrex-l2-rpc" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "axum 0.8.6", - "bytes", -@@ -3408,12 +3427,13 @@ dependencies = [ - - [[package]] - name = "ethrex-levm" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", -+ "bitvec", - "bls12_381 0.8.0", - "bytes", - "datatest-stable", -@@ -3439,8 +3459,8 @@ dependencies = [ - - [[package]] - name = "ethrex-metrics" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "ethrex-common", - "serde", -@@ -3451,8 +3471,8 @@ dependencies = [ - - [[package]] - name = "ethrex-p2p" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "aes", - "async-trait", -@@ -3471,7 +3491,7 @@ dependencies = [ - "futures", - "hex", - "hmac", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "lazy_static", - "prometheus", - "rand 0.8.5", -@@ -3493,8 +3513,8 @@ dependencies = [ - - [[package]] - name = "ethrex-prover" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "anyhow", - "bincode", -@@ -3539,6 +3559,7 @@ dependencies = [ - "ethrex-common", - "ethrex-config", - "ethrex-l2", -+ "ethrex-l2-common", - "ethrex-l2-rpc", - "ethrex-levm", - "ethrex-p2p", -@@ -3568,8 +3589,8 @@ dependencies = [ - - [[package]] - name = "ethrex-rlp" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "bytes", - "ethereum-types 0.15.1", -@@ -3582,8 +3603,8 @@ dependencies = [ - - [[package]] - name = "ethrex-rpc" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "axum 0.8.6", - "axum-extra", -@@ -3617,8 +3638,8 @@ dependencies = [ - - [[package]] - name = "ethrex-sdk" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "bytes", - "ethereum-types 0.15.1", -@@ -3643,8 +3664,8 @@ dependencies = [ - - [[package]] - name = "ethrex-sdk-contract-utils" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "thiserror 2.0.17", - "tracing", -@@ -3652,8 +3673,8 @@ dependencies = [ - - [[package]] - name = "ethrex-storage" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "anyhow", - "async-trait", -@@ -3664,6 +3685,7 @@ dependencies = [ - "ethrex-rlp", - "ethrex-trie", - "hex", -+ "rustc-hash 2.1.1", - "serde", - "serde_json", - "sha3", -@@ -3673,8 +3695,8 @@ dependencies = [ - - [[package]] - name = "ethrex-storage-rollup" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "anyhow", - "async-trait", -@@ -3686,6 +3708,7 @@ dependencies = [ - "ethrex-storage", - "ethrex-trie", - "futures", -+ "rkyv", - "thiserror 2.0.17", - "tracing", - ] -@@ -3693,15 +3716,15 @@ dependencies = [ - [[package]] - name = "ethrex-threadpool" - version = "0.1.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "crossbeam 0.8.4", - ] - - [[package]] - name = "ethrex-trie" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "anyhow", - "bytes", -@@ -3722,8 +3745,8 @@ dependencies = [ - - [[package]] - name = "ethrex-vm" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "bincode", - "bytes", -@@ -3913,9 +3936,9 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - - [[package]] - name = "flate2" --version = "1.1.4" -+version = "1.1.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" -+checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" - dependencies = [ - "crc32fast", - "miniz_oxide 0.8.9", -@@ -4001,7 +4024,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -4117,7 +4140,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -4181,7 +4204,7 @@ version = "0.7.8" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "72742d2b395902caf8a5d520d0dd3334ba6d1138938429200e58d5174e275f3f" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "cfg-if 1.0.4", - "log", - "managed", -@@ -4302,7 +4325,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - dependencies = [ - "fallible-iterator", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "stable_deref_trait", - ] - -@@ -4318,7 +4341,7 @@ version = "0.20.2" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "libc", - "libgit2-sys", - "log", -@@ -4388,8 +4411,8 @@ dependencies = [ - - [[package]] - name = "guest_program" --version = "3.0.0" --source = "git+https://github.com/lambdaclass/ethrex?branch=main#889ffd0eadb596eb63a49464aad409efe34df279" -+version = "5.0.0" -+source = "git+https://github.com/lambdaclass/ethrex?branch=main#fb15bd99572a896f5ecff003ed12c9a0c9f321c5" - dependencies = [ - "bytes", - "ethrex-blockchain", -@@ -4433,7 +4456,7 @@ dependencies = [ - "futures-sink", - "futures-util", - "http 0.2.12", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "slab", - "tokio", - "tokio-util", -@@ -4452,7 +4475,7 @@ dependencies = [ - "futures-core", - "futures-sink", - "http 1.3.1", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "slab", - "tokio", - "tokio-util", -@@ -4660,11 +4683,11 @@ dependencies = [ - - [[package]] - name = "home" --version = "0.5.11" -+version = "0.5.12" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -+checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" - dependencies = [ -- "windows-sys 0.59.0", -+ "windows-sys 0.61.2", - ] - - [[package]] -@@ -4805,7 +4828,7 @@ dependencies = [ - "http 1.3.1", - "hyper 1.7.0", - "hyper-util", -- "rustls 0.23.33", -+ "rustls 0.23.34", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.26.4", -@@ -4894,9 +4917,9 @@ dependencies = [ - - [[package]] - name = "icu_collections" --version = "2.0.0" -+version = "2.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" -+checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" - dependencies = [ - "displaydoc", - "potential_utf", -@@ -4907,9 +4930,9 @@ dependencies = [ - - [[package]] - name = "icu_locale_core" --version = "2.0.0" -+version = "2.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" -+checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" - dependencies = [ - "displaydoc", - "litemap", -@@ -4920,11 +4943,10 @@ dependencies = [ - - [[package]] - name = "icu_normalizer" --version = "2.0.0" -+version = "2.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" -+checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" - dependencies = [ -- "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", -@@ -4935,42 +4957,38 @@ dependencies = [ - - [[package]] - name = "icu_normalizer_data" --version = "2.0.0" -+version = "2.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" -+checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - - [[package]] - name = "icu_properties" --version = "2.0.1" -+version = "2.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" -+checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" - dependencies = [ -- "displaydoc", - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", -- "potential_utf", - "zerotrie", - "zerovec", - ] - - [[package]] - name = "icu_properties_data" --version = "2.0.1" -+version = "2.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" -+checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" - - [[package]] - name = "icu_provider" --version = "2.0.0" -+version = "2.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" -+checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" - dependencies = [ - "displaydoc", - "icu_locale_core", -- "stable_deref_trait", -- "tinystr", - "writeable", - "yoke", - "zerofrom", -@@ -5097,7 +5115,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -5125,9 +5143,9 @@ dependencies = [ - - [[package]] - name = "indexmap" --version = "2.11.4" -+version = "2.12.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" -+checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" - dependencies = [ - "equivalent", - "hashbrown 0.16.0", -@@ -5150,9 +5168,12 @@ dependencies = [ - - [[package]] - name = "indoc" --version = "2.0.6" -+version = "2.0.7" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" -+checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" -+dependencies = [ -+ "rustversion", -+] - - [[package]] - name = "inout" -@@ -5173,7 +5194,7 @@ dependencies = [ - "indoc", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -5212,9 +5233,9 @@ dependencies = [ - - [[package]] - name = "is_terminal_polyfill" --version = "1.70.1" -+version = "1.70.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" -+checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - - [[package]] - name = "itertools" -@@ -5288,9 +5309,9 @@ dependencies = [ - - [[package]] - name = "js-sys" --version = "0.3.81" -+version = "0.3.82" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" -+checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" - dependencies = [ - "once_cell", - "wasm-bindgen", -@@ -5465,9 +5486,9 @@ dependencies = [ - - [[package]] - name = "lazy-regex" --version = "3.4.1" -+version = "3.4.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "60c7310b93682b36b98fa7ea4de998d3463ccbebd94d935d6b48ba5b6ffa7126" -+checksum = "191898e17ddee19e60bccb3945aa02339e81edd4a8c50e21fd4d48cdecda7b29" - dependencies = [ - "lazy-regex-proc_macros", - "once_cell", -@@ -5476,14 +5497,14 @@ dependencies = [ - - [[package]] - name = "lazy-regex-proc_macros" --version = "3.4.1" -+version = "3.4.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4ba01db5ef81e17eb10a5e0f2109d1b3a3e29bac3070fdbd7d156bf7dbd206a1" -+checksum = "c35dc8b0da83d1a9507e12122c80dea71a9c7c613014347392483a83ea593e04" - dependencies = [ - "proc-macro2", - "quote", - "regex", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -5567,7 +5588,7 @@ version = "0.1.10" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "libc", - ] - -@@ -5609,15 +5630,15 @@ checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - - [[package]] - name = "litemap" --version = "0.8.0" -+version = "0.8.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" -+checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" - - [[package]] - name = "litrs" --version = "0.4.2" -+version = "1.0.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" -+checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" - - [[package]] - name = "lock_api" -@@ -5807,7 +5828,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -5843,9 +5864,9 @@ dependencies = [ - - [[package]] - name = "memmap2" --version = "0.9.8" -+version = "0.9.9" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" -+checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" - dependencies = [ - "libc", - ] -@@ -5892,7 +5913,7 @@ version = "0.29.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "block", - "core-graphics-types", - "foreign-types 0.5.0", -@@ -5940,14 +5961,14 @@ checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" - - [[package]] - name = "mio" --version = "1.0.4" -+version = "1.1.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" -+checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" - dependencies = [ - "libc", - "log", - "wasi 0.11.1+wasi-snapshot-preview1", -- "windows-sys 0.59.0", -+ "windows-sys 0.61.2", - ] - - [[package]] -@@ -5973,7 +5994,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -6021,7 +6042,7 @@ version = "0.30.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "cfg-if 1.0.4", - "cfg_aliases", - "libc", -@@ -6143,7 +6164,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -6223,11 +6244,11 @@ dependencies = [ - - [[package]] - name = "num_enum" --version = "0.7.4" -+version = "0.7.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" -+checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" - dependencies = [ -- "num_enum_derive 0.7.4", -+ "num_enum_derive 0.7.5", - "rustversion", - ] - -@@ -6245,14 +6266,14 @@ dependencies = [ - - [[package]] - name = "num_enum_derive" --version = "0.7.4" -+version = "0.7.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" -+checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" - dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -6288,6 +6309,21 @@ dependencies = [ - "malloc_buf", - ] - -+[[package]] -+name = "objc2" -+version = "0.6.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" -+dependencies = [ -+ "objc2-encode", -+] -+ -+[[package]] -+name = "objc2-encode" -+version = "4.1.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" -+ - [[package]] - name = "object" - version = "0.36.7" -@@ -6316,9 +6352,9 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - - [[package]] - name = "once_cell_polyfill" --version = "1.70.1" -+version = "1.70.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" -+checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - - [[package]] - name = "open-fastrlp" -@@ -6351,7 +6387,7 @@ version = "0.10.74" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "cfg-if 1.0.4", - "foreign-types 0.3.2", - "libc", -@@ -6368,7 +6404,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -6710,7 +6746,7 @@ dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -6906,7 +6942,7 @@ dependencies = [ - "pest_meta", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -6926,7 +6962,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" - dependencies = [ - "fixedbitset 0.4.2", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - ] - - [[package]] -@@ -6936,7 +6972,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" - dependencies = [ - "fixedbitset 0.5.7", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - ] - - [[package]] -@@ -6979,7 +7015,7 @@ dependencies = [ - "phf_shared", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -7014,7 +7050,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -7105,9 +7141,9 @@ dependencies = [ - - [[package]] - name = "potential_utf" --version = "0.1.3" -+version = "0.1.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" -+checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" - dependencies = [ - "zerovec", - ] -@@ -7140,7 +7176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" - dependencies = [ - "proc-macro2", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -7206,7 +7242,7 @@ checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" - dependencies = [ - "proc-macro-rules-macros", - "proc-macro2", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -7218,14 +7254,14 @@ dependencies = [ - "once_cell", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] - name = "proc-macro2" --version = "1.0.101" -+version = "1.0.103" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" -+checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" - dependencies = [ - "unicode-ident", - ] -@@ -7238,7 +7274,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - "version_check", - "yansi 1.0.1", - ] -@@ -7260,12 +7296,11 @@ dependencies = [ - - [[package]] - name = "proptest" --version = "1.8.0" -+version = "1.9.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" -+checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" - dependencies = [ -- "bitflags 2.9.4", -- "lazy_static", -+ "bitflags 2.10.0", - "num-traits", - "rand 0.9.2", - "rand_chacha 0.9.0", -@@ -7300,7 +7335,7 @@ dependencies = [ - "prost", - "prost-types", - "regex", -- "syn 2.0.106", -+ "syn 2.0.108", - "tempfile", - ] - -@@ -7314,7 +7349,7 @@ dependencies = [ - "itertools 0.14.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -7363,7 +7398,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -7401,7 +7436,7 @@ dependencies = [ - "quinn-proto", - "quinn-udp", - "rustc-hash 2.1.1", -- "rustls 0.23.33", -+ "rustls 0.23.34", - "socket2 0.6.1", - "thiserror 2.0.17", - "tokio", -@@ -7421,7 +7456,7 @@ dependencies = [ - "rand 0.9.2", - "ring 0.17.14", - "rustc-hash 2.1.1", -- "rustls 0.23.33", -+ "rustls 0.23.34", - "rustls-pki-types", - "slab", - "thiserror 2.0.17", -@@ -7603,7 +7638,7 @@ version = "0.29.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "cassowary", - "compact_str", - "crossterm 0.28.1", -@@ -7674,7 +7709,7 @@ version = "0.5.18" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - ] - - [[package]] -@@ -7716,7 +7751,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -7831,7 +7866,7 @@ dependencies = [ - "percent-encoding", - "pin-project-lite", - "quinn", -- "rustls 0.23.33", -+ "rustls 0.23.34", - "rustls-pki-types", - "serde", - "serde_json", -@@ -8305,7 +8340,7 @@ dependencies = [ - "getrandom 0.2.16", - "getrandom 0.3.4", - "libm", -- "num_enum 0.7.4", -+ "num_enum 0.7.5", - "paste", - "stability", - ] -@@ -8319,7 +8354,7 @@ dependencies = [ - "bytecheck", - "bytes", - "hashbrown 0.15.5", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "munge", - "ptr_meta", - "rancor", -@@ -8337,7 +8372,7 @@ checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -8454,7 +8489,7 @@ dependencies = [ - "regex", - "relative-path", - "rustc_version 0.4.1", -- "syn 2.0.106", -+ "syn 2.0.108", - "unicode-ident", - ] - -@@ -8550,7 +8585,7 @@ version = "0.38.44" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", -@@ -8563,7 +8598,7 @@ version = "1.1.2" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys 0.11.0", -@@ -8584,15 +8619,15 @@ dependencies = [ - - [[package]] - name = "rustls" --version = "0.23.33" -+version = "0.23.34" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "751e04a496ca00bb97a5e043158d23d66b5aabf2e1d5aa2a0aaebb1aafe6f82c" -+checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7" - dependencies = [ - "log", - "once_cell", - "ring 0.17.14", - "rustls-pki-types", -- "rustls-webpki 0.103.7", -+ "rustls-webpki 0.103.8", - "subtle", - "zeroize", - ] -@@ -8629,9 +8664,9 @@ dependencies = [ - - [[package]] - name = "rustls-pki-types" --version = "1.12.0" -+version = "1.13.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" -+checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" - dependencies = [ - "web-time", - "zeroize", -@@ -8649,9 +8684,9 @@ dependencies = [ - - [[package]] - name = "rustls-webpki" --version = "0.103.7" -+version = "0.103.8" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e10b3f4191e8a80e6b43eebabfac91e5dcecebb27a71f04e820c47ec41d314bf" -+checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" - dependencies = [ - "ring 0.17.14", - "rustls-pki-types", -@@ -8762,7 +8797,7 @@ dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -8830,7 +8865,7 @@ checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -8902,7 +8937,7 @@ version = "2.11.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", -@@ -8915,7 +8950,7 @@ version = "3.5.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", -@@ -9006,6 +9041,16 @@ dependencies = [ - "serde", - ] - -+[[package]] -+name = "serde_bytes" -+version = "0.11.19" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" -+dependencies = [ -+ "serde", -+ "serde_core", -+] -+ - [[package]] - name = "serde_core" - version = "1.0.228" -@@ -9023,7 +9068,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -9032,7 +9077,7 @@ version = "1.0.145" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" - dependencies = [ -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "itoa", - "memchr", - "ryu", -@@ -9059,7 +9104,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -9098,15 +9143,15 @@ dependencies = [ - - [[package]] - name = "serde_with" --version = "3.15.0" -+version = "3.15.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" -+checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" - dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "schemars 0.9.0", - "schemars 1.0.4", - "serde_core", -@@ -9117,14 +9162,14 @@ dependencies = [ - - [[package]] - name = "serde_with_macros" --version = "3.15.0" -+version = "3.15.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" -+checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" - dependencies = [ - "darling 0.21.3", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -9159,7 +9204,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -9227,9 +9272,9 @@ dependencies = [ - - [[package]] - name = "signal-hook-mio" --version = "0.2.4" -+version = "0.2.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" -+checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" - dependencies = [ - "libc", - "mio", -@@ -9875,9 +9920,9 @@ dependencies = [ - - [[package]] - name = "spawned-concurrency" --version = "0.4.2" -+version = "0.4.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c34171afa9ef68114f07b4be6cf294f49a388380b62a036010b31534ecc0f927" -+checksum = "3d99b97ba5429336b6fa8b6e8ecbe09a1c7324f8b9fa63a11262dbd3a44e577b" - dependencies = [ - "futures", - "pin-project-lite", -@@ -9888,9 +9933,9 @@ dependencies = [ - - [[package]] - name = "spawned-rt" --version = "0.4.2" -+version = "0.4.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b83e35512b851b51d27a6dcee6025da1c61e7d842e2ec79971124eab2be3e974" -+checksum = "d58e8d7224fbcd3dbc39f7bacf958ae0882c95b5431353445be5a86b80cedcaf" - dependencies = [ - "crossbeam 0.7.3", - "tokio", -@@ -9942,7 +9987,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" - dependencies = [ - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10021,7 +10066,7 @@ dependencies = [ - "proc-macro2", - "quote", - "rustversion", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10034,7 +10079,7 @@ dependencies = [ - "proc-macro2", - "quote", - "rustversion", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10046,7 +10091,7 @@ dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10058,7 +10103,7 @@ dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10110,9 +10155,9 @@ dependencies = [ - - [[package]] - name = "syn" --version = "2.0.106" -+version = "2.0.108" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" -+checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" - dependencies = [ - "proc-macro2", - "quote", -@@ -10142,7 +10187,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10177,7 +10222,7 @@ version = "0.6.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "core-foundation 0.9.4", - "system-configuration-sys 0.6.0", - ] -@@ -10267,7 +10312,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10278,7 +10323,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10400,9 +10445,9 @@ dependencies = [ - - [[package]] - name = "tinystr" --version = "0.8.1" -+version = "0.8.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" -+checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" - dependencies = [ - "displaydoc", - "zerovec", -@@ -10448,7 +10493,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -10477,7 +10522,7 @@ version = "0.26.4" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" - dependencies = [ -- "rustls 0.23.33", -+ "rustls 0.23.34", - "tokio", - ] - -@@ -10584,7 +10629,7 @@ version = "0.19.15" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" - dependencies = [ -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "toml_datetime 0.6.11", - "winnow 0.5.40", - ] -@@ -10595,7 +10640,7 @@ version = "0.22.27" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" - dependencies = [ -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "serde", - "serde_spanned", - "toml_datetime 0.6.11", -@@ -10609,7 +10654,7 @@ version = "0.23.7" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" - dependencies = [ -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "toml_datetime 0.7.3", - "toml_parser", - "winnow 0.7.13", -@@ -10705,7 +10750,7 @@ version = "0.6.6" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" - dependencies = [ -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "bytes", - "futures-util", - "http 1.3.1", -@@ -10761,7 +10806,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -11024,7 +11069,7 @@ checksum = "27a7a9b72ba121f6f1f6c3632b85604cac41aedb5ddc70accbebb6cac83de846" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -11089,15 +11134,15 @@ checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007" - - [[package]] - name = "unicode-ident" --version = "1.0.19" -+version = "1.0.22" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" -+checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" - - [[package]] - name = "unicode-properties" --version = "0.1.3" -+version = "0.1.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" -+checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" - - [[package]] - name = "unicode-script" -@@ -11277,7 +11322,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "a381badc47c6f15acb5fe0b5b40234162349ed9d4e4fd7c83a7f5547c0fc69c5" - dependencies = [ - "bindgen 0.69.5", -- "bitflags 2.9.4", -+ "bitflags 2.10.0", - "fslock", - "gzip-header", - "home", -@@ -11406,9 +11451,9 @@ dependencies = [ - - [[package]] - name = "wasm-bindgen" --version = "0.2.104" -+version = "0.2.105" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" -+checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" - dependencies = [ - "cfg-if 1.0.4", - "once_cell", -@@ -11417,25 +11462,11 @@ dependencies = [ - "wasm-bindgen-shared", - ] - --[[package]] --name = "wasm-bindgen-backend" --version = "0.2.104" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" --dependencies = [ -- "bumpalo", -- "log", -- "proc-macro2", -- "quote", -- "syn 2.0.106", -- "wasm-bindgen-shared", --] -- - [[package]] - name = "wasm-bindgen-futures" --version = "0.4.54" -+version = "0.4.55" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" -+checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" - dependencies = [ - "cfg-if 1.0.4", - "js-sys", -@@ -11446,9 +11477,9 @@ dependencies = [ - - [[package]] - name = "wasm-bindgen-macro" --version = "0.2.104" -+version = "0.2.105" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" -+checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" - dependencies = [ - "quote", - "wasm-bindgen-macro-support", -@@ -11456,22 +11487,22 @@ dependencies = [ - - [[package]] - name = "wasm-bindgen-macro-support" --version = "0.2.104" -+version = "0.2.105" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" -+checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" - dependencies = [ -+ "bumpalo", - "proc-macro2", - "quote", -- "syn 2.0.106", -- "wasm-bindgen-backend", -+ "syn 2.0.108", - "wasm-bindgen-shared", - ] - - [[package]] - name = "wasm-bindgen-shared" --version = "0.2.104" -+version = "0.2.105" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" -+checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" - dependencies = [ - "unicode-ident", - ] -@@ -11506,9 +11537,9 @@ dependencies = [ - - [[package]] - name = "web-sys" --version = "0.3.81" -+version = "0.3.82" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" -+checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" - dependencies = [ - "js-sys", - "wasm-bindgen", -@@ -11650,7 +11681,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -11661,7 +11692,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -11996,9 +12027,9 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" - - [[package]] - name = "writeable" --version = "0.6.1" -+version = "0.6.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" -+checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" - - [[package]] - name = "ws_stream_wasm" -@@ -12074,11 +12105,10 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" - - [[package]] - name = "yoke" --version = "0.8.0" -+version = "0.8.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" -+checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" - dependencies = [ -- "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -@@ -12086,13 +12116,13 @@ dependencies = [ - - [[package]] - name = "yoke-derive" --version = "0.8.0" -+version = "0.8.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" -+checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - "synstructure", - ] - -@@ -12113,7 +12143,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -12133,7 +12163,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - "synstructure", - ] - -@@ -12154,14 +12184,14 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] - name = "zerotrie" --version = "0.2.2" -+version = "0.2.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" -+checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" - dependencies = [ - "displaydoc", - "yoke", -@@ -12170,9 +12200,9 @@ dependencies = [ - - [[package]] - name = "zerovec" --version = "0.11.4" -+version = "0.11.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" -+checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" - dependencies = [ - "yoke", - "zerofrom", -@@ -12181,13 +12211,13 @@ dependencies = [ - - [[package]] - name = "zerovec-derive" --version = "0.11.1" -+version = "0.11.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" -+checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.106", -+ "syn 2.0.108", - ] - - [[package]] -@@ -12221,7 +12251,7 @@ dependencies = [ - "crossbeam-utils 0.8.21", - "displaydoc", - "flate2", -- "indexmap 2.11.4", -+ "indexmap 2.12.0", - "memchr", - "thiserror 2.0.17", - "zopfli", -@@ -12256,9 +12286,9 @@ dependencies = [ - - [[package]] - name = "zopfli" --version = "0.8.2" -+version = "0.8.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "edfc5ee405f504cd4984ecc6f14d02d55cfda60fa4b689434ef4102aae150cd7" -+checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" - dependencies = [ - "bumpalo", - "crc32fast", -diff --git a/Cargo.toml b/Cargo.toml -index 8c0a97d..c93208e 100644 ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -14,6 +14,7 @@ ethrex-p2p = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex- - ethrex-trie = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-trie", branch = "main" } - ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rlp", branch = "main" } - ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-blockchain", branch = "main" } -+ethrex-l2-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-common", branch = "main" } - ethrex-l2 = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2", branch = "main", optional = true } - ethrex-storage-rollup = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage-rollup", branch = "main", optional = true } - ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-rpc", branch = "main" } -diff --git a/src/cli.rs b/src/cli.rs -index 5f0509f..ce78918 100644 ---- a/src/cli.rs -+++ b/src/cli.rs -@@ -561,7 +561,7 @@ impl EthrexReplayCommand { - )); - } - -- let eth_client = EthClient::new(rpc_url.as_str())?; -+ let eth_client = EthClient::new(rpc_url.clone())?; - - info!( - "Fetching blocks from RPC: {start} to {end} ({} blocks)", -@@ -668,7 +668,7 @@ impl EthrexReplayCommand { - } - - pub async fn setup_rpc(opts: &EthrexReplayOptions) -> eyre::Result<(EthClient, Network)> { -- let eth_client = EthClient::new(opts.rpc_url.as_ref().unwrap().as_str())?; -+ let eth_client = EthClient::new(opts.rpc_url.clone().unwrap())?; - let chain_id = eth_client.get_chain_id().await?.as_u64(); - let network = network_from_chain_id(chain_id); - Ok((eth_client, network)) -@@ -833,15 +833,18 @@ async fn replay_transaction(tx_opts: TransactionOpts) -> eyre::Result<()> { - let cache = if let Some(n) = tx_opts.block_number { - get_blockdata(tx_opts.opts, Some(n)).await?.0 - } else { -- let (eth_client, _network) = setup_rpc(&tx_opts.opts).await?; -- // Get the block number of the transaction -- let tx = eth_client -- .get_transaction_by_hash(tx_hash) -- .await? -- .ok_or(eyre::Error::msg("error fetching transaction"))?; -- get_blockdata(tx_opts.opts, Some(tx.block_number.as_u64())) -- .await? -- .0 -+ // block_number is not a public member of RpcTransaction so we can't access it after retrieving the transcation. -+ todo!(); -+ -+ // let (eth_client, _network) = setup_rpc(&tx_opts.opts).await?; -+ // // Get the block number of the transaction -+ // let tx = eth_client -+ // .get_transaction_by_hash(tx_hash) -+ // .await? -+ // .ok_or(eyre::Error::msg("error fetching transaction"))?; -+ // get_blockdata(tx_opts.opts, Some(tx.block_number.as_u64())) -+ // .await? -+ // .0 - }; - - let (receipt, transitions) = run_tx(cache, tx_hash).await?; -@@ -985,7 +988,7 @@ fn print_transition(update: AccountUpdate) { - println!(" New nonce: {}", info.nonce); - println!(" New codehash: {:#x}", info.code_hash); - if let Some(code) = update.code { -- println!(" New code: {}", hex::encode(code)); -+ println!(" New code: {}", hex::encode(code.bytecode)); - } - } - if !update.added_storage.is_empty() { -@@ -1027,7 +1030,7 @@ pub async fn replay_custom_l1_blocks( - let genesis = network.get_genesis()?; - - let mut store = { -- let store_inner = Store::new("./", EngineType::InMemory)?; -+ let mut store_inner = Store::new("./", EngineType::InMemory)?; - store_inner.add_initial_state(genesis.clone()).await?; - store_inner - }; -@@ -1146,7 +1149,7 @@ pub async fn produce_l1_block( - err => ethrex_rpc::RpcErr::Internal(err.to_string()), - })?; - -- blockchain.add_block(block.clone()).await?; -+ blockchain.add_block(block.clone())?; - - let new_block_hash = block.hash(); - -@@ -1354,7 +1357,7 @@ async fn fetch_latest_block_number( - rpc_url: &Url, - only_eth_proofs_blocks: bool, - ) -> eyre::Result { -- let eth_client = EthClient::new(rpc_url.as_str())?; -+ let eth_client = EthClient::new(rpc_url.clone())?; - - let mut latest_block_number = eth_client.get_block_number().await?.as_u64(); - -diff --git a/src/rpc/db.rs b/src/rpc/db.rs -index 76299fd..4d92835 100644 ---- a/src/rpc/db.rs -+++ b/src/rpc/db.rs -@@ -6,7 +6,7 @@ use crate::rpc::{get_account, get_block, retry}; - - use bytes::Bytes; - use ethrex_common::constants::EMPTY_KECCACK_HASH; --use ethrex_common::types::{AccountState, ChainConfig, code_hash}; -+use ethrex_common::types::{AccountState, ChainConfig, Code, code_hash}; - use ethrex_common::{ - Address, H256, U256, - types::{Block, TxKind}, -@@ -15,6 +15,7 @@ use ethrex_levm::db::Database as LevmDatabase; - use ethrex_levm::db::gen_db::GeneralizedDatabase; - use ethrex_levm::errors::DatabaseError; - use ethrex_levm::vm::VMType; -+use ethrex_rlp::decode::RLPDecode; - use ethrex_rlp::encode::RLPEncode; - use ethrex_rpc::debug::execution_witness::RpcExecutionWitness; - use ethrex_storage::{hash_address, hash_key}; -@@ -380,14 +381,14 @@ impl RpcDB { - // get potential child nodes of deleted nodes after execution - let potential_account_child_nodes = final_account_proofs - .filter_map(|(address, proof)| get_potential_child_nodes(proof, &hash_address(address))) -- .flat_map(|nodes| nodes.into_iter().map(|node| node.encode_raw())); -+ .flat_map(|nodes| nodes.into_iter().map(|node| node.encode_to_vec())); - - let potential_storage_child_nodes: Vec> = final_storage_proofs - .flat_map(|(_, proofs)| { - proofs - .iter() - .filter_map(|(key, proof)| get_potential_child_nodes(proof, &hash_key(key))) -- .flat_map(|nodes| nodes.into_iter().map(|node| node.encode_raw())) -+ .flat_map(|nodes| nodes.into_iter().map(|node| node.encode_to_vec())) - .collect::>() - }) - .collect(); -@@ -482,12 +483,12 @@ impl RpcDB { - } - - impl LevmDatabase for RpcDB { -- fn get_account_code(&self, code_hash: H256) -> Result { -+ fn get_account_code(&self, code_hash: H256) -> Result { - if code_hash == *EMPTY_KECCACK_HASH { -- return Ok(Bytes::new()); -+ return Ok(Code::from_bytecode(Bytes::new())); - } - let codes = self.codes.lock().unwrap(); -- codes.get(&code_hash).cloned().ok_or_else(|| { -+ codes.get(&code_hash).cloned().map(Code::from_bytecode).ok_or_else(|| { - DatabaseError::Custom("Code not found on already fetched accounts".to_string()) - }) - } -@@ -598,7 +599,7 @@ pub fn get_potential_child_nodes(proof: &[NodeRLP], key: &PathRLP) -> Option { - let mut variants = Vec::with_capacity(node.prefix.len()); -diff --git a/src/run.rs b/src/run.rs -index bb10c2d..3b1f740 100644 ---- a/src/run.rs -+++ b/src/run.rs -@@ -9,6 +9,7 @@ use ethrex_common::{ - }; - use ethrex_levm::{db::gen_db::GeneralizedDatabase, vm::VMType}; - use ethrex_prover::backend::Backend; -+use ethrex_l2_common::prover::ProofFormat; - use ethrex_rpc::debug::execution_witness::execution_witness_from_rpc_chain_config; - use ethrex_vm::{DynVmDatabase, Evm, GuestProgramStateWrapper, backends::levm::LEVM}; - use eyre::Context; -@@ -59,7 +60,7 @@ pub async fn prove(backend: Backend, cache: Cache) -> eyre::Result { - - // Use catch_unwind to capture panics - let result = catch_unwind(AssertUnwindSafe(|| { -- ethrex_prover::prove(backend, input, false) -+ ethrex_prover::prove(backend, input, ProofFormat::Compressed) - })); - - let elapsed = start.elapsed()?; -@@ -171,7 +172,7 @@ fn get_l1_input(cache: Cache) -> eyre::Result { - blocks, - execution_witness, - elasticity_multiplier: ELASTICITY_MULTIPLIER, -- fee_config: None, -+ fee_configs: None, - }) - } - From af6951c61d7a9a5bf21c9a5a8865529ab5ae75bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 21 Nov 2025 14:31:07 -0300 Subject: [PATCH 12/40] fix and add zisk job --- .github/workflows/pr-main.yaml | 2 +- src/cli.rs | 2 +- src/run.rs | 15 +++++++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr-main.yaml b/.github/workflows/pr-main.yaml index e88c308..78a9c01 100644 --- a/.github/workflows/pr-main.yaml +++ b/.github/workflows/pr-main.yaml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - features: ["", "l2", "l2,sp1", "l2,risc0", "sp1", "risc0"] + features: ["", "l2", "l2,sp1", "l2,risc0", "l2,zisk", "sp1", "risc0", "zisk"] steps: - name: Checkout sources uses: actions/checkout@v4 diff --git a/src/cli.rs b/src/cli.rs index 63bd42f..893283b 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -1446,7 +1446,7 @@ pub async fn replay_custom_l2_blocks(n_blocks: u64, opts: EthrexReplayOptions) - let cache = Cache::new( blocks, - RpcExecutionWitness::from(execution_witness), + RpcExecutionWitness::try_from(execution_witness)?, genesis.config, opts.cache_dir.clone(), ); diff --git a/src/run.rs b/src/run.rs index 460ebb4..5ab8d60 100644 --- a/src/run.rs +++ b/src/run.rs @@ -178,7 +178,7 @@ pub fn get_l1_input(cache: Cache) -> eyre::Result { .map(|h| BlockHeader::decode(h).unwrap()) .find(|h| h.number == first_block_number - 1) .map(|h| h.state_root) - .unwrap(); + .ok_or_else(|| eyre::eyre!("Initial state root not found"))?; let execution_witness = execution_witness_from_rpc_chain_config( db, @@ -209,6 +209,8 @@ fn extract_panic_message(panic_info: &Box) -> String { #[cfg(feature = "l2")] fn get_l2_input(cache: Cache) -> eyre::Result { use ethrex_common::types::fee_config::FeeConfig; + use ethrex_common::types::BlockHeader; + use ethrex_rlp::decode::RLPDecode; let Cache { blocks, @@ -226,8 +228,17 @@ fn get_l2_input(cache: Cache) -> eyre::Result { .ok_or_else(|| eyre::eyre!("No blocks in cache"))? .header .number; + + let initial_state_root = db + .headers + .iter() + .map(|h| BlockHeader::decode(h).unwrap()) + .find(|h| h.number == first_block_number - 1) + .map(|h| h.state_root) + .ok_or_else(|| eyre::eyre!("Initial state root not found"))?; + let execution_witness = - execution_witness_from_rpc_chain_config(db, chain_config, first_block_number) + execution_witness_from_rpc_chain_config(db, chain_config, first_block_number, initial_state_root) .wrap_err("Failed to convert execution witness")?; Ok(ProgramInput { From 00be59f85b135941fd5504ec70e024e91ced9fbd Mon Sep 17 00:00:00 2001 From: ilitteri Date: Fri, 21 Nov 2025 15:25:11 -0300 Subject: [PATCH 13/40] Update Cargo.lock --- Cargo.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0b159bb..c3b0af5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3228,7 +3228,7 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3292,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3303,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "bytes", "envy", @@ -3323,7 +3323,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "aligned-sdk", "axum 0.8.7", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3405,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "axum 0.8.7", "bytes", @@ -3435,7 +3435,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3469,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3485,7 +3485,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "aes", "async-trait", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "anyhow", "bincode", @@ -3605,7 +3605,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3658,7 +3658,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3684,7 +3684,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3693,7 +3693,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "anyhow", "async-trait", @@ -3718,7 +3718,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "anyhow", "async-trait", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "crossbeam 0.8.4", ] @@ -3746,7 +3746,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "anyhow", "bytes", @@ -3770,7 +3770,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "bincode", "bytes", @@ -4435,7 +4435,7 @@ dependencies = [ [[package]] name = "guest_program" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#a613937ccd5a54ae031e6978afd79abc8746674c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" dependencies = [ "bytes", "ethrex-blockchain", From be72e1450dc8a17abfe08d5d659b227a147846d2 Mon Sep 17 00:00:00 2001 From: ilitteri Date: Fri, 21 Nov 2025 15:39:09 -0300 Subject: [PATCH 14/40] fix locks --- Cargo.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c3b0af5..62539e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3228,7 +3228,7 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3292,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3303,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "bytes", "envy", @@ -3323,7 +3323,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "aligned-sdk", "axum 0.8.7", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3405,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "axum 0.8.7", "bytes", @@ -3435,7 +3435,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3469,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3485,7 +3485,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "aes", "async-trait", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "anyhow", "bincode", @@ -3605,7 +3605,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3658,7 +3658,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3684,7 +3684,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3693,7 +3693,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "anyhow", "async-trait", @@ -3718,7 +3718,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "anyhow", "async-trait", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "crossbeam 0.8.4", ] @@ -3746,7 +3746,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "anyhow", "bytes", @@ -3770,7 +3770,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "bincode", "bytes", @@ -4435,7 +4435,7 @@ dependencies = [ [[package]] name = "guest_program" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#0d687f8f5250d76e1864d0519b7e38b1601b695c" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" dependencies = [ "bytes", "ethrex-blockchain", From 1d22f349125dbf47f298a450112d42e147384555 Mon Sep 17 00:00:00 2001 From: ilitteri Date: Fri, 21 Nov 2025 15:42:37 -0300 Subject: [PATCH 15/40] fix zisk toml --- Cargo.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62539e7..cba1d92 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3228,7 +3228,7 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3292,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3303,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "bytes", "envy", @@ -3323,7 +3323,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "aligned-sdk", "axum 0.8.7", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3405,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "axum 0.8.7", "bytes", @@ -3435,7 +3435,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3469,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3485,7 +3485,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "aes", "async-trait", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "anyhow", "bincode", @@ -3605,7 +3605,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3658,7 +3658,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3684,7 +3684,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3693,7 +3693,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "anyhow", "async-trait", @@ -3718,7 +3718,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "anyhow", "async-trait", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "crossbeam 0.8.4", ] @@ -3746,7 +3746,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "anyhow", "bytes", @@ -3770,7 +3770,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "bincode", "bytes", @@ -4435,7 +4435,7 @@ dependencies = [ [[package]] name = "guest_program" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#32909b30f1eddf5f0e2ec5abedc6935e0f141feb" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" dependencies = [ "bytes", "ethrex-blockchain", From aea5c3993e33bcf44a62a66d9f4a5a64d374ba12 Mon Sep 17 00:00:00 2001 From: ilitteri Date: Fri, 21 Nov 2025 15:52:02 -0300 Subject: [PATCH 16/40] update ethrewx --- Cargo.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cba1d92..c5b426d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3228,7 +3228,7 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3292,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3303,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "bytes", "envy", @@ -3323,7 +3323,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "aligned-sdk", "axum 0.8.7", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3405,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "axum 0.8.7", "bytes", @@ -3435,7 +3435,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3469,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3485,7 +3485,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "aes", "async-trait", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "anyhow", "bincode", @@ -3605,7 +3605,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3658,7 +3658,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3684,7 +3684,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3693,7 +3693,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "anyhow", "async-trait", @@ -3718,7 +3718,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "anyhow", "async-trait", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "crossbeam 0.8.4", ] @@ -3746,7 +3746,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "anyhow", "bytes", @@ -3770,7 +3770,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "bincode", "bytes", @@ -4435,7 +4435,7 @@ dependencies = [ [[package]] name = "guest_program" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1f288da5983106155db25d43ecdec8906bc3ec63" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" dependencies = [ "bytes", "ethrex-blockchain", From 9a7bdb06e241d3cbb210120cfb08728d19e8c238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 24 Nov 2025 10:58:54 -0300 Subject: [PATCH 17/40] fmt --- src/run.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/run.rs b/src/run.rs index 5ab8d60..7fc74c0 100644 --- a/src/run.rs +++ b/src/run.rs @@ -208,8 +208,8 @@ fn extract_panic_message(panic_info: &Box) -> String { #[cfg(feature = "l2")] fn get_l2_input(cache: Cache) -> eyre::Result { - use ethrex_common::types::fee_config::FeeConfig; use ethrex_common::types::BlockHeader; + use ethrex_common::types::fee_config::FeeConfig; use ethrex_rlp::decode::RLPDecode; let Cache { @@ -237,9 +237,13 @@ fn get_l2_input(cache: Cache) -> eyre::Result { .map(|h| h.state_root) .ok_or_else(|| eyre::eyre!("Initial state root not found"))?; - let execution_witness = - execution_witness_from_rpc_chain_config(db, chain_config, first_block_number, initial_state_root) - .wrap_err("Failed to convert execution witness")?; + let execution_witness = execution_witness_from_rpc_chain_config( + db, + chain_config, + first_block_number, + initial_state_root, + ) + .wrap_err("Failed to convert execution witness")?; Ok(ProgramInput { blocks, From 028d29f9f42712fd61f8774c07751fd7419bed31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 24 Nov 2025 11:38:57 -0300 Subject: [PATCH 18/40] clippy --- src/rpc/db.rs | 5 ++--- src/rpc/mod.rs | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/rpc/db.rs b/src/rpc/db.rs index ac2356c..c88b619 100644 --- a/src/rpc/db.rs +++ b/src/rpc/db.rs @@ -586,12 +586,11 @@ pub fn get_potential_child_nodes(proof: &[NodeRLP], key: &PathRLP) -> Option Date: Mon, 24 Nov 2025 12:04:38 -0300 Subject: [PATCH 19/40] add install zisk step --- .github/actions/install-zisk/action.yml | 11 +++++++++++ .github/workflows/pr-main.yaml | 4 ++++ 2 files changed, 15 insertions(+) create mode 100644 .github/actions/install-zisk/action.yml diff --git a/.github/actions/install-zisk/action.yml b/.github/actions/install-zisk/action.yml new file mode 100644 index 0000000..f4300b5 --- /dev/null +++ b/.github/actions/install-zisk/action.yml @@ -0,0 +1,11 @@ +name: "Install ZisK" +description: "Install ZisK Toolchain" + +runs: + using: "composite" + steps: + - name: Install ZisK + shell: bash + run: | + sudo apt-get install -y xz-utils jq curl build-essential qemu-system libomp-dev libgmp-dev nlohmann-json3-dev protobuf-compiler uuid-dev libgrpc++-dev libsecp256k1-dev libsodium-dev libpqxx-dev nasm libopenmpi-dev openmpi-bin openmpi-common libclang-dev clang gcc-riscv64-unknown-elf + curl https://raw.githubusercontent.com/0xPolygonHermez/zisk/main/ziskup/install.sh | bash diff --git a/.github/workflows/pr-main.yaml b/.github/workflows/pr-main.yaml index 78a9c01..e80af03 100644 --- a/.github/workflows/pr-main.yaml +++ b/.github/workflows/pr-main.yaml @@ -44,6 +44,10 @@ jobs: if: contains(matrix.features, 'sp1') uses: ./.github/actions/install-sp1 + - name: Install ZisK + if: contains(matrix.features, 'zisk') + uses: ./.github/actions/install-zisk + - name: cargo fmt --check --all if: matrix.features == '' # Run only without features because it's redundant to run it on all jobs run: cargo fmt --check --all From e79abc6a640f0af9d8d85d313909f8b340d5ee35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 24 Nov 2025 12:10:19 -0300 Subject: [PATCH 20/40] add apt update' --- .github/actions/install-zisk/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/install-zisk/action.yml b/.github/actions/install-zisk/action.yml index f4300b5..b4f3478 100644 --- a/.github/actions/install-zisk/action.yml +++ b/.github/actions/install-zisk/action.yml @@ -7,5 +7,6 @@ runs: - name: Install ZisK shell: bash run: | + sudo apt-get update sudo apt-get install -y xz-utils jq curl build-essential qemu-system libomp-dev libgmp-dev nlohmann-json3-dev protobuf-compiler uuid-dev libgrpc++-dev libsecp256k1-dev libsodium-dev libpqxx-dev nasm libopenmpi-dev openmpi-bin openmpi-common libclang-dev clang gcc-riscv64-unknown-elf curl https://raw.githubusercontent.com/0xPolygonHermez/zisk/main/ziskup/install.sh | bash From 3f31ce227b9e8a5f4113086dd4436e97e1ae5e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 25 Nov 2025 11:35:11 -0300 Subject: [PATCH 21/40] add gh_runner env var --- .github/actions/install-zisk/action.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/actions/install-zisk/action.yml b/.github/actions/install-zisk/action.yml index b4f3478..f75b6b9 100644 --- a/.github/actions/install-zisk/action.yml +++ b/.github/actions/install-zisk/action.yml @@ -6,7 +6,9 @@ runs: steps: - name: Install ZisK shell: bash + env: + GH_RUNNER: 1 run: | sudo apt-get update sudo apt-get install -y xz-utils jq curl build-essential qemu-system libomp-dev libgmp-dev nlohmann-json3-dev protobuf-compiler uuid-dev libgrpc++-dev libsecp256k1-dev libsodium-dev libpqxx-dev nasm libopenmpi-dev openmpi-bin openmpi-common libclang-dev clang gcc-riscv64-unknown-elf - curl https://raw.githubusercontent.com/0xPolygonHermez/zisk/main/ziskup/install.sh | bash + curl https://raw.githubusercontent.com/0xPolygonHermez/zisk/main/ziskup/install.sh | bash From 4e41099459b060606836365c2b0f3720c650b49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 25 Nov 2025 11:54:14 -0300 Subject: [PATCH 22/40] fix setup-rust --- .github/actions/setup-rust/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/setup-rust/action.yml b/.github/actions/setup-rust/action.yml index 33ff62d..c3edf32 100644 --- a/.github/actions/setup-rust/action.yml +++ b/.github/actions/setup-rust/action.yml @@ -4,7 +4,7 @@ inputs: components: description: "Rust components to install (e.g., rustfmt, clippy)" required: false - type: string + default: "" runs: using: "composite" steps: @@ -24,4 +24,4 @@ runs: components: ${{ inputs.components }} - name: Add Rust Cache - uses: Swatinem/rust-cache@v2 \ No newline at end of file + uses: Swatinem/rust-cache@v2 From 1186456a1a50ddba3157a581c317189b9e19ce52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 25 Nov 2025 12:59:34 -0300 Subject: [PATCH 23/40] remove unwraps --- src/cli.rs | 8 ++++---- src/rpc/db.rs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 893283b..1131d03 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -714,8 +714,8 @@ impl EthrexReplayCommand { None => { if let Some(block) = block { block - } else if !blocks.is_empty() { - *blocks.first().unwrap() + } else if let Some(block) = blocks.first() { + *block } else { eyre::bail!("Either block, blocks or to must be specified") } @@ -727,8 +727,8 @@ impl EthrexReplayCommand { None => { if let Some(block) = block { block - } else if !blocks.is_empty() { - *blocks.last().unwrap() + } else if let Some(block) = blocks.first() { + *block } else { fetch_latest_block_number(rpc_url.clone(), false).await? } diff --git a/src/rpc/db.rs b/src/rpc/db.rs index c88b619..b159eaa 100644 --- a/src/rpc/db.rs +++ b/src/rpc/db.rs @@ -586,7 +586,7 @@ pub fn get_potential_child_nodes(proof: &[NodeRLP], key: &PathRLP) -> Option Date: Tue, 25 Nov 2025 13:21:19 -0300 Subject: [PATCH 24/40] cargo update --- Cargo.lock | 346 ++++++++++++++++++++++++++--------------------------- 1 file changed, 173 insertions(+), 173 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c5b426d..3527eb2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,8 +142,8 @@ dependencies = [ "cfg-if 1.0.4", "const-hex", "derive_more 2.0.1", - "hashbrown 0.16.0", - "indexmap 2.12.0", + "hashbrown 0.16.1", + "indexmap 2.12.1", "itoa", "k256", "paste", @@ -300,7 +300,7 @@ checksum = "e7e89fe77d1f0f4fe5b96dfc940923d88d17b6a773808124f21e764dfb063c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -409,7 +409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -447,7 +447,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -551,7 +551,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -642,7 +642,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -653,7 +653,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -690,7 +690,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -709,7 +709,7 @@ dependencies = [ "axum-core 0.4.5", "bytes", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", "hyper 1.8.1", @@ -744,7 +744,7 @@ dependencies = [ "bytes", "form_urlencoded", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", "hyper 1.8.1", @@ -778,7 +778,7 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", "mime", @@ -798,7 +798,7 @@ checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" dependencies = [ "bytes", "futures-core", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", "mime", @@ -820,7 +820,7 @@ dependencies = [ "bytes", "futures-util", "headers", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", "mime", @@ -935,7 +935,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.110", + "syn 2.0.111", "which 4.4.2", ] @@ -956,7 +956,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -976,7 +976,7 @@ dependencies = [ "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1183,7 +1183,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1228,7 +1228,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1248,7 +1248,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1370,22 +1370,22 @@ checksum = "3fce8dd7fcfcbf3a0a87d8f515194b49d6135acab73e18bd380d1d93bb1a15eb" dependencies = [ "clap", "heck 0.4.1", - "indexmap 2.12.0", + "indexmap 2.12.1", "log", "proc-macro2", "quote", "serde", "serde_json", - "syn 2.0.110", + "syn 2.0.111", "tempfile", "toml", ] [[package]] name = "cc" -version = "1.2.46" +version = "1.2.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36" +checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07" dependencies = [ "find-msvc-tools", "jobserver", @@ -1528,9 +1528,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.52" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa8120877db0e5c011242f96806ce3c94e0737ab8108532a76a3300a01db2ab8" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -1538,9 +1538,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.52" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02576b399397b659c26064fbc92a75fede9d18ffd5f80ca1cd74ddab167016e1" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -1557,7 +1557,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2143,7 +2143,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2157,7 +2157,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2168,7 +2168,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2179,7 +2179,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2343,7 +2343,7 @@ dependencies = [ "quote", "strum 0.25.0", "strum_macros 0.25.3", - "syn 2.0.110", + "syn 2.0.111", "thiserror 1.0.69", ] @@ -2398,7 +2398,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2419,7 +2419,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2429,7 +2429,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2459,7 +2459,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "unicode-xid", ] @@ -2472,7 +2472,7 @@ dependencies = [ "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "unicode-xid", ] @@ -2611,7 +2611,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2696,7 +2696,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2804,7 +2804,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2824,7 +2824,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3042,7 +3042,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.110", + "syn 2.0.111", "toml", "walkdir", ] @@ -3060,7 +3060,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3086,7 +3086,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.110", + "syn 2.0.111", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -3228,7 +3228,7 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3292,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3303,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "bytes", "envy", @@ -3323,7 +3323,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "aligned-sdk", "axum 0.8.7", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3405,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "axum 0.8.7", "bytes", @@ -3435,7 +3435,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3469,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3485,7 +3485,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "aes", "async-trait", @@ -3505,7 +3505,7 @@ dependencies = [ "futures", "hex", "hmac", - "indexmap 2.12.0", + "indexmap 2.12.1", "lazy_static", "prometheus 0.14.0", "rand 0.8.5", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "anyhow", "bincode", @@ -3605,7 +3605,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3658,7 +3658,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3684,7 +3684,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3693,7 +3693,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "anyhow", "async-trait", @@ -3718,7 +3718,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "anyhow", "async-trait", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "crossbeam 0.8.4", ] @@ -3746,7 +3746,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "anyhow", "bytes", @@ -3770,7 +3770,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "bincode", "bytes", @@ -4047,7 +4047,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4163,7 +4163,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4348,7 +4348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" dependencies = [ "fallible-iterator", - "indexmap 2.12.0", + "indexmap 2.12.1", "stable_deref_trait", ] @@ -4435,7 +4435,7 @@ dependencies = [ [[package]] name = "guest_program" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#1c9ceba6b117172ce821dd4db42b27b3a310716f" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" dependencies = [ "bytes", "ethrex-blockchain", @@ -4479,7 +4479,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.12.0", + "indexmap 2.12.1", "slab", "tokio", "tokio-util", @@ -4497,8 +4497,8 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.3.1", - "indexmap 2.12.0", + "http 1.4.0", + "indexmap 2.12.1", "slab", "tokio", "tokio-util", @@ -4592,14 +4592,15 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", "foldhash 0.2.0", "serde", + "serde_core", ] [[package]] @@ -4629,7 +4630,7 @@ dependencies = [ "base64 0.22.1", "bytes", "headers-core", - "http 1.3.1", + "http 1.4.0", "httpdate", "mime", "sha1", @@ -4641,7 +4642,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http 1.3.1", + "http 1.4.0", ] [[package]] @@ -4728,12 +4729,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -4755,7 +4755,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.3.1", + "http 1.4.0", ] [[package]] @@ -4766,7 +4766,7 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "pin-project-lite", ] @@ -4818,7 +4818,7 @@ dependencies = [ "futures-channel", "futures-core", "h2 0.4.12", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "httparse", "httpdate", @@ -4850,7 +4850,7 @@ version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "http 1.3.1", + "http 1.4.0", "hyper 1.8.1", "hyper-util", "rustls 0.23.35", @@ -4901,7 +4901,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "hyper 1.8.1", "ipnet", @@ -5140,7 +5140,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5168,12 +5168,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -5219,7 +5219,7 @@ dependencies = [ "indoc", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5535,7 +5535,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5701,7 +5701,7 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" dependencies = [ - "hashbrown 0.16.0", + "hashbrown 0.16.1", ] [[package]] @@ -5868,7 +5868,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6034,7 +6034,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6203,7 +6203,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6312,7 +6312,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6443,7 +6443,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6785,7 +6785,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6953,9 +6953,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" +checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" dependencies = [ "memchr", "ucd-trie", @@ -6963,9 +6963,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" +checksum = "51f72981ade67b1ca6adc26ec221be9f463f2b5839c7508998daa17c23d94d7f" dependencies = [ "pest", "pest_generator", @@ -6973,22 +6973,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" +checksum = "dee9efd8cdb50d719a80088b76f81aec7c41ed6d522ee750178f83883d271625" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "pest_meta" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" +checksum = "bf1d70880e76bdc13ba52eafa6239ce793d85c8e43896507e43dd8984ff05b82" dependencies = [ "pest", "sha2", @@ -7001,7 +7001,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.12.0", + "indexmap 2.12.1", ] [[package]] @@ -7011,7 +7011,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset 0.5.7", - "indexmap 2.12.0", + "indexmap 2.12.1", ] [[package]] @@ -7054,7 +7054,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7089,7 +7089,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7215,7 +7215,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7281,7 +7281,7 @@ checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" dependencies = [ "proc-macro-rules-macros", "proc-macro2", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7293,7 +7293,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7313,7 +7313,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "version_check", ] @@ -7413,7 +7413,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.110", + "syn 2.0.111", "tempfile", ] @@ -7427,7 +7427,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7482,7 +7482,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7844,7 +7844,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7939,7 +7939,7 @@ dependencies = [ "futures-core", "futures-util", "h2 0.4.12", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", "hyper 1.8.1", @@ -7982,7 +7982,7 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http 1.3.1", + "http 1.4.0", "reqwest 0.12.24", "serde", "thiserror 1.0.69", @@ -8325,9 +8325,9 @@ dependencies = [ [[package]] name = "risc0-zkos-v1compat" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "840c2228803557a8b7dc035a8f196516b6fd68c9dc6ac092f0c86241b5b1bafb" +checksum = "faf1f35f2ef61d8d86fdd06288c11d2f3bbf08f1af66b24ca0a1976ecbf324a1" dependencies = [ "include_bytes_aligned", "no_std_strings", @@ -8441,7 +8441,7 @@ dependencies = [ "bytecheck", "bytes", "hashbrown 0.15.5", - "indexmap 2.12.0", + "indexmap 2.12.1", "munge", "ptr_meta", "rancor", @@ -8459,7 +8459,7 @@ checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -8854,7 +8854,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -8922,7 +8922,7 @@ checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9125,7 +9125,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9134,7 +9134,7 @@ version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "itoa", "memchr", "ryu", @@ -9161,7 +9161,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9208,7 +9208,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.0", + "indexmap 2.12.1", "schemars 0.9.0", "schemars 1.1.0", "serde_core", @@ -9226,7 +9226,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9261,7 +9261,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9340,9 +9340,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" dependencies = [ "libc", ] @@ -10044,7 +10044,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10123,7 +10123,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10136,7 +10136,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10148,7 +10148,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10160,7 +10160,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10225,9 +10225,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.110" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -10257,7 +10257,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10382,7 +10382,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10393,7 +10393,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10563,7 +10563,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10699,7 +10699,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "toml_datetime 0.6.11", "winnow 0.5.40", ] @@ -10710,7 +10710,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -10724,7 +10724,7 @@ version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "toml_datetime 0.7.3", "toml_parser", "winnow 0.7.13", @@ -10757,7 +10757,7 @@ dependencies = [ "base64 0.22.1", "bytes", "h2 0.4.12", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", "hyper 1.8.1", @@ -10816,14 +10816,14 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" dependencies = [ "bitflags 2.10.0", "bytes", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "iri-string", "pin-project-lite", @@ -10876,7 +10876,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -11040,7 +11040,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.3.1", + "http 1.4.0", "httparse", "log", "native-tls", @@ -11058,7 +11058,7 @@ checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" dependencies = [ "bytes", "data-encoding", - "http 1.3.1", + "http 1.4.0", "httparse", "log", "rand 0.9.2", @@ -11076,7 +11076,7 @@ dependencies = [ "async-trait", "axum 0.7.9", "futures", - "http 1.3.1", + "http 1.4.0", "http-body-util", "hyper 1.8.1", "prost", @@ -11138,7 +11138,7 @@ checksum = "27a7a9b72ba121f6f1f6c3632b85604cac41aedb5ddc70accbebb6cac83de846" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -11563,7 +11563,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "wasm-bindgen-shared", ] @@ -11750,7 +11750,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -11761,7 +11761,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -12167,28 +12167,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -12208,7 +12208,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "synstructure", ] @@ -12229,7 +12229,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -12262,7 +12262,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -12296,7 +12296,7 @@ dependencies = [ "crossbeam-utils 0.8.21", "displaydoc", "flate2", - "indexmap 2.12.0", + "indexmap 2.12.1", "memchr", "thiserror 2.0.17", "zopfli", From b046a673b88ecf8d92cc315d3c429b8a6d08f393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 25 Nov 2025 16:46:32 -0300 Subject: [PATCH 25/40] remove unwraps --- src/rpc/mod.rs | 3 ++- src/run.rs | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/rpc/mod.rs b/src/rpc/mod.rs index 523dc21..318f540 100644 --- a/src/rpc/mod.rs +++ b/src/rpc/mod.rs @@ -152,7 +152,8 @@ pub async fn get_account( let mut state_nodes = BTreeMap::new(); for node in &account_proof { let hash = sha3::Keccak256::digest(node); - state_nodes.insert(H256::from_slice(&hash), Node::decode(node).unwrap()); + let decoded_node = Node::decode(node).map_err(|_| eyre::eyre!("Failed to decode node"))?; + state_nodes.insert(H256::from_slice(&hash), decoded_node); } let hash = H256::from_slice(&sha3::Keccak256::digest(root)); diff --git a/src/run.rs b/src/run.rs index 7fc74c0..39e4751 100644 --- a/src/run.rs +++ b/src/run.rs @@ -175,7 +175,11 @@ pub fn get_l1_input(cache: Cache) -> eyre::Result { let initial_state_root = db .headers .iter() - .map(|h| BlockHeader::decode(h).unwrap()) + .map(|h| { + BlockHeader::decode(h).map_err(|_| eyre::Error::msg("Failed to decode block header")) + }) + .collect::, _>>()? + .into_iter() .find(|h| h.number == first_block_number - 1) .map(|h| h.state_root) .ok_or_else(|| eyre::eyre!("Initial state root not found"))?; @@ -232,7 +236,11 @@ fn get_l2_input(cache: Cache) -> eyre::Result { let initial_state_root = db .headers .iter() - .map(|h| BlockHeader::decode(h).unwrap()) + .map(|h| { + BlockHeader::decode(h).map_err(|_| eyre::Error::msg("Failed to decode block header")) + }) + .collect::, _>>()? + .into_iter() .find(|h| h.number == first_block_number - 1) .map(|h| h.state_root) .ok_or_else(|| eyre::eyre!("Initial state root not found"))?; From 45f4c5abf02801f789031f44308cf65973ea5977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 25 Nov 2025 18:18:18 -0300 Subject: [PATCH 26/40] cargo update --- Cargo.lock | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3527eb2..62d7c5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1165,9 +1165,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1175,9 +1175,9 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" dependencies = [ "once_cell", "proc-macro-crate 3.4.0", @@ -3228,7 +3228,7 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3292,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3303,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "bytes", "envy", @@ -3323,7 +3323,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "aligned-sdk", "axum 0.8.7", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3405,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "axum 0.8.7", "bytes", @@ -3435,7 +3435,7 @@ dependencies = [ [[package]] name = "ethrex-levm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3469,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3485,7 +3485,7 @@ dependencies = [ [[package]] name = "ethrex-p2p" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "aes", "async-trait", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "anyhow", "bincode", @@ -3605,7 +3605,7 @@ dependencies = [ [[package]] name = "ethrex-rlp" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3658,7 +3658,7 @@ dependencies = [ [[package]] name = "ethrex-sdk" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3684,7 +3684,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3693,7 +3693,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "anyhow", "async-trait", @@ -3718,7 +3718,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "anyhow", "async-trait", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "crossbeam 0.8.4", ] @@ -3746,7 +3746,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "anyhow", "bytes", @@ -3770,7 +3770,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "bincode", "bytes", @@ -4435,7 +4435,7 @@ dependencies = [ [[package]] name = "guest_program" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#236b59838ba5d3e808346e9a05e2680cfff815ad" +source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" dependencies = [ "bytes", "ethrex-blockchain", From 6982de526fc921f3714d8519847c0113e1389961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 25 Nov 2025 18:20:16 -0300 Subject: [PATCH 27/40] added ci to lint --- .github/workflows/pr-main.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-main.yaml b/.github/workflows/pr-main.yaml index e80af03..2a29379 100644 --- a/.github/workflows/pr-main.yaml +++ b/.github/workflows/pr-main.yaml @@ -60,7 +60,7 @@ jobs: set -euxo pipefail args=(--release --no-default-features) if [ -n "${FEATURE_ARGS}" ]; then - args+=("--features" "${FEATURE_ARGS}") + args+=("--features" "${FEATURE_ARGS},ci") fi cargo check "${args[@]}" @@ -72,7 +72,7 @@ jobs: set -euxo pipefail args=(--release --no-default-features) if [ -n "${FEATURE_ARGS}" ]; then - args+=("--features" "${FEATURE_ARGS}") + args+=("--features" "${FEATURE_ARGS},ci") fi cargo clippy "${args[@]}" -- -D warnings From 36b47519cc43e70d396127fe8969407721b81669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 25 Nov 2025 18:20:57 -0300 Subject: [PATCH 28/40] add ci flag --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index fcd15b1..3a6a3c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,5 +54,6 @@ l2 = [ "ethrex-l2/l2", "ethrex-storage-rollup/l2", ] +ci = ["guest_program/ci", "ethrex-prover/ci"] profiling = ["ethrex-prover/profiling"] jemalloc = ["dep:tikv-jemallocator"] From f6607fb7058c4225f71f939fa5be79434cfcb721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 11:06:59 -0300 Subject: [PATCH 29/40] update branch --- Cargo.lock | 90 +++++++++++++++++++++++++++--------------------------- Cargo.toml | 34 ++++++++++----------- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62d7c5d..c4591d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3228,7 +3228,7 @@ dependencies = [ [[package]] name = "ethrex-blockchain" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3249,7 @@ dependencies = [ [[package]] name = "ethrex-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "ethrex-config" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3292,7 @@ dependencies = [ [[package]] name = "ethrex-crypto" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3303,7 @@ dependencies = [ [[package]] name = "ethrex-dev" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "bytes", "envy", @@ -3323,7 +3323,7 @@ dependencies = [ [[package]] name = "ethrex-l2" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "aligned-sdk", "axum 0.8.7", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "ethrex-l2-common" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3405,7 @@ dependencies = [ [[package]] name = "ethrex-l2-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "axum 0.8.7", "bytes", @@ -3428,14 +3428,14 @@ dependencies = [ "tokio", "tower-http", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", "url", ] [[package]] name = "ethrex-levm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3469,7 @@ dependencies = [ [[package]] name = "ethrex-metrics" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3479,13 +3479,13 @@ dependencies = [ "thiserror 2.0.17", "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", ] [[package]] name = "ethrex-p2p" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "aes", "async-trait", @@ -3527,7 +3527,7 @@ dependencies = [ [[package]] name = "ethrex-prover" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "anyhow", "bincode", @@ -3556,7 +3556,7 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", "url", ] @@ -3599,13 +3599,13 @@ dependencies = [ "tikv-jemallocator", "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", ] [[package]] name = "ethrex-rlp" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3619,7 +3619,7 @@ dependencies = [ [[package]] name = "ethrex-rpc" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3651,14 +3651,14 @@ dependencies = [ "tokio-util", "tower-http", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", "uuid 1.18.1", ] [[package]] name = "ethrex-sdk" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3684,7 +3684,7 @@ dependencies = [ [[package]] name = "ethrex-sdk-contract-utils" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3693,7 +3693,7 @@ dependencies = [ [[package]] name = "ethrex-storage" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "anyhow", "async-trait", @@ -3718,7 +3718,7 @@ dependencies = [ [[package]] name = "ethrex-storage-rollup" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "anyhow", "async-trait", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "ethrex-threadpool" version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "crossbeam 0.8.4", ] @@ -3746,7 +3746,7 @@ dependencies = [ [[package]] name = "ethrex-trie" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "anyhow", "bytes", @@ -3770,7 +3770,7 @@ dependencies = [ [[package]] name = "ethrex-vm" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "bincode", "bytes", @@ -4435,7 +4435,7 @@ dependencies = [ [[package]] name = "guest_program" version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex?branch=add_zisk_zkvm_backend#3196423408c3ec45c0c85ad1888379befc37b9dd" +source = "git+https://github.com/lambdaclass/ethrex?branch=main#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" dependencies = [ "bytes", "ethrex-blockchain", @@ -9615,7 +9615,7 @@ dependencies = [ "thiserror 1.0.69", "tracing", "tracing-forest", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", "typenum", "web-time", ] @@ -9742,7 +9742,7 @@ dependencies = [ "thiserror 1.0.69", "tracing", "tracing-appender", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", ] [[package]] @@ -9999,7 +9999,7 @@ dependencies = [ "tokio-stream", "tokio-util", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", ] [[package]] @@ -10846,9 +10846,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "8eb41cbdb933e23b7929f47bb577710643157d7602ef3a2ebd3902b13ac5eda6" dependencies = [ "log", "pin-project-lite", @@ -10858,21 +10858,21 @@ dependencies = [ [[package]] name = "tracing-appender" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf" dependencies = [ "crossbeam-channel 0.5.15", - "thiserror 1.0.69", + "thiserror 2.0.17", "time", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", ] [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -10881,9 +10881,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" dependencies = [ "once_cell", "valuable", @@ -10896,7 +10896,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", ] [[package]] @@ -10909,7 +10909,7 @@ dependencies = [ "smallvec", "thiserror 1.0.69", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", ] [[package]] @@ -10944,9 +10944,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "bee4bf13715d00789f2a099fd05d127c012bddc5c6628f2c8968374c1820c01d" dependencies = [ "matchers", "nu-ansi-term", @@ -10997,7 +10997,7 @@ dependencies = [ "parking_lot 0.12.5", "ratatui", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.21", "unicode-segmentation", ] diff --git a/Cargo.toml b/Cargo.toml index 3a6a3c2..2eee84e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,23 +5,23 @@ authors = ["LambdaClass"] version = "7.0.0" [dependencies] -ethrex-config = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-config", branch = "add_zisk_zkvm_backend" } -ethrex-storage = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage", branch = "add_zisk_zkvm_backend" } -ethrex-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-common", branch = "add_zisk_zkvm_backend" } -ethrex-vm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-vm", branch = "add_zisk_zkvm_backend" } -ethrex-levm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-levm", branch = "add_zisk_zkvm_backend" } -ethrex-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rpc", branch = "add_zisk_zkvm_backend" } -ethrex-p2p = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-p2p", branch = "add_zisk_zkvm_backend" } -ethrex-trie = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-trie", branch = "add_zisk_zkvm_backend" } -ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rlp", branch = "add_zisk_zkvm_backend" } -ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-blockchain", branch = "add_zisk_zkvm_backend" } -ethrex-l2 = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2", branch = "add_zisk_zkvm_backend", optional = true } -ethrex-l2-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-common", branch = "add_zisk_zkvm_backend" } -ethrex-storage-rollup = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage-rollup", branch = "add_zisk_zkvm_backend", optional = true } -ethrex-sdk = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-sdk", branch = "add_zisk_zkvm_backend" } -ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-rpc", branch = "add_zisk_zkvm_backend" } -ethrex-prover = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-prover", branch = "add_zisk_zkvm_backend", default-features = false } -guest_program = { git = "https://github.com/lambdaclass/ethrex", package = "guest_program", branch = "add_zisk_zkvm_backend", default-features = false } +ethrex-config = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-config", branch = "main" } +ethrex-storage = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage", branch = "main" } +ethrex-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-common", branch = "main" } +ethrex-vm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-vm", branch = "main" } +ethrex-levm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-levm", branch = "main" } +ethrex-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rpc", branch = "main" } +ethrex-p2p = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-p2p", branch = "main" } +ethrex-trie = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-trie", branch = "main" } +ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rlp", branch = "main" } +ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-blockchain", branch = "main" } +ethrex-l2 = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2", branch = "main", optional = true } +ethrex-l2-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-common", branch = "main" } +ethrex-storage-rollup = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage-rollup", branch = "main", optional = true } +ethrex-sdk = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-sdk", branch = "main" } +ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-rpc", branch = "main" } +ethrex-prover = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-prover", branch = "main", default-features = false } +guest_program = { git = "https://github.com/lambdaclass/ethrex", package = "guest_program", branch = "main", default-features = false } serde = { version = "1.0.203", features = ["derive"] } hex = "0.4.3" From 79b281003216c69e1381053b45dd4ab22bfacc49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 11:11:56 -0300 Subject: [PATCH 30/40] fix parent block header --- src/cli.rs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 1131d03..0a741da 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -25,8 +25,8 @@ use ethrex_blockchain::{ use ethrex_common::{ Address, H256, types::{ - AccountState, AccountUpdate, Block, Code, DEFAULT_BUILDER_GAS_CEIL, ELASTICITY_MULTIPLIER, - Receipt, block_execution_witness::GuestProgramState, + AccountState, AccountUpdate, Block, BlockHeader, Code, DEFAULT_BUILDER_GAS_CEIL, + ELASTICITY_MULTIPLIER, Receipt, block_execution_witness::GuestProgramState, }, utils::keccak, }; @@ -884,9 +884,17 @@ async fn replay_no_zkvm(cache: Cache, opts: &EthrexReplayOptions) -> eyre::Resul let block = cache.blocks[0].clone(); let first_block_number = cache.get_first_block_number()?; - let Some(parent_block_header) = cache.blocks.iter().find_map(|b| { - if b.header.number == first_block_number - 1 { - Some(b.header.clone()) + let headers = cache + .witness + .headers + .iter() + .map(|h| { + BlockHeader::decode(h).map_err(|_| eyre::Error::msg("Failed to decode block header")) + }) + .collect::, _>>()?; + let Some(parent_block_header) = headers.into_iter().find_map(|header| { + if header.number == first_block_number - 1 { + Some(header) } else { None } From 8c23cde0377033b8ced5fd69944a2e17cfc79f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 11:13:47 -0300 Subject: [PATCH 31/40] fix cache path --- src/cli.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli.rs b/src/cli.rs index 0a741da..dc41608 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -740,7 +740,7 @@ impl EthrexReplayCommand { rpc_url: Some(rpc_url.clone()), cached: false, network: None, - cache_dir: PathBuf::default(), + cache_dir: PathBuf::from("./replay_cache"), cache_level: CacheLevel::Off, slack_webhook_url: None, no_zkvm: false, From 31e4181b150e1653c7a0e57aa35f71cccbc83a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 11:19:07 -0300 Subject: [PATCH 32/40] add state root to nodes hashmap --- src/rpc/db.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpc/db.rs b/src/rpc/db.rs index b159eaa..ac60a8f 100644 --- a/src/rpc/db.rs +++ b/src/rpc/db.rs @@ -584,7 +584,7 @@ impl LevmDatabase for RpcDB { /// calculate all possible child nodes. pub fn get_potential_child_nodes(proof: &[NodeRLP], key: &PathRLP) -> Option> { let mut state_nodes = BTreeMap::new(); - for node in proof.iter().skip(1) { + for node in proof.iter() { let hash = Keccak256::digest(node); state_nodes.insert(H256::from_slice(&hash), Node::decode(node).ok()?); } From 876de054ef886dbaa96dcbfa47d2f35d348d03cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 11:25:58 -0300 Subject: [PATCH 33/40] add generate-input docs --- README.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 92be3a0..bc7b3bf 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ A tool for executing and proving Ethereum blocks, transactions, and L2 batches | `ethrex-replay custom` | Build your block before to replay it. | | `ethrex-replay transaction` | Replay a single transaction of a block. | | `ethrex-replay cache` | Generate witness data prior to block replay (see `ethrex-replay cache --help`) | +| `ethrex-replay generate-input` | Generate binary input for the guest program to invoke the zkVM directly (see [Generate Input](#generate-input)) | ### L2 @@ -61,7 +62,7 @@ Execution of some particular blocks with the `eth_getProof` method won't work wi ### Dependencies -These dependencies are optional, install them only if you want to run with the features `risc0` or `sp1` respectively. +These dependencies are optional, install them only if you want to run with the features `risc0` or `sp1` respectively. Make sure to use the correct versions of these. #### [RISC0](https://dev.risczero.com/api/zkvm/install) @@ -187,6 +188,7 @@ The following table lists the available features for `ethrex-replay`. To enable - [Prove an L2 batch](#prove-an-l2-batch) - [Execute a transaction](#execute-a-transaction) - [Plot block composition](#plot-block-composition) +- [Generate input](#generate-input) > [!IMPORTANT] > The following instructions assume that you've installed `ethrex-replay` as described in the [Getting Started](#getting-started) section. @@ -252,6 +254,28 @@ ethrex-replay l2 transaction --execute --rpc-url ethrex-replay block-composition --start-block --end-block --rpc-url --network ``` +### Generate input + +Generate the binary input for the guest program so you can generate a proof without using `ethrex-replay`, by invoking the zkVM directly. This is useful when you want to pass the guest ELF file (which you can download in the [ethrex](https://github.com/lambdaclass/ethrex) releases) and the input (generated with this command) directly to the zkVM prover. + +> [!NOTE] +> +> 1. You can specify a single block with `--block`, a list of blocks with `--blocks`, or a range with `--from` and `--to`. +> 2. If `--to` is not specified when using `--from`, the latest block will be used. +> 3. The output files are named `ethrex___input.bin` and stored in the specified output directory. +> 4. The `generate-input` command is only available for L1 (not available with the `l2` feature). + +``` +# Generate input for a single block +ethrex-replay generate-input --block --rpc-url + +# Generate input for a range of blocks +ethrex-replay generate-input --from --to --rpc-url + +# Generate input for specific blocks with a custom output directory +ethrex-replay generate-input --blocks ,, --output-dir ./my_inputs --rpc-url +``` + --- ## Benchmarking & Profiling From c21d52e6ed8f1ad83a5a4ae6b2290915495796a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 11:47:26 -0300 Subject: [PATCH 34/40] fix generate-input --- src/cli.rs | 53 ++++++++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index dc41608..a806a55 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -709,32 +709,6 @@ impl EthrexReplayCommand { output_dir, rpc_url, }) => { - let from = match from { - Some(from) => from, - None => { - if let Some(block) = block { - block - } else if let Some(block) = blocks.first() { - *block - } else { - eyre::bail!("Either block, blocks or to must be specified") - } - } - }; - - let to = match to { - Some(to) => to, - None => { - if let Some(block) = block { - block - } else if let Some(block) = blocks.first() { - *block - } else { - fetch_latest_block_number(rpc_url.clone(), false).await? - } - } - }; - let opts = EthrexReplayOptions { common: CommonOptions::default(), rpc_url: Some(rpc_url.clone()), @@ -752,8 +726,23 @@ impl EthrexReplayCommand { std::fs::create_dir_all(&output_dir)?; } - for block in from..=to { - let (cache, network) = get_blockdata(opts.clone(), Some(block)).await?; + let blocks_to_process: Vec = if !blocks.is_empty() { + blocks + } else if let Some(block) = block { + vec![block] + } else { + let from = from.ok_or_else(|| { + eyre::eyre!("Either block, blocks, or from must be specified") + })?; + let to = match to { + Some(to) => to, + None => fetch_latest_block_number(rpc_url.clone(), false).await?, + }; + (from..=to).collect() + }; + + for block in &blocks_to_process { + let (cache, network) = get_blockdata(opts.clone(), Some(*block)).await?; let program_input = crate::run::get_l1_input(cache)?; @@ -766,14 +755,16 @@ impl EthrexReplayCommand { std::fs::write(input_output_path, serialized_program_input.as_slice())?; } - if from == to { + if blocks_to_process.len() == 1 { info!( - "Generated input for block {from} in directory {}", + "Generated input for block {} in directory {}", + blocks_to_process[0], output_dir.display() ); } else { info!( - "Generated inputs for blocks {from} to {to} in directory {}", + "Generated inputs for {} blocks in directory {}", + blocks_to_process.len(), output_dir.display() ); } From 642a81d00b3933d1ffeddb00fbf6179be5c0da5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 11:54:48 -0300 Subject: [PATCH 35/40] fix run-tx --- src/run.rs | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/run.rs b/src/run.rs index 39e4751..186e8a8 100644 --- a/src/run.rs +++ b/src/run.rs @@ -1,14 +1,18 @@ use crate::{cache::Cache, cli::ProofType}; #[cfg(feature = "l2")] use ethrex_common::types::fee_config::FeeConfig; +#[cfg(feature = "l2")] +use ethrex_common::types::fee_config::FeeConfig; use ethrex_common::{ H256, types::{ - AccountUpdate, ELASTICITY_MULTIPLIER, Receipt, block_execution_witness::GuestProgramState, + AccountUpdate, BlockHeader, ELASTICITY_MULTIPLIER, Receipt, + block_execution_witness::GuestProgramState, }, }; use ethrex_levm::{db::gen_db::GeneralizedDatabase, vm::VMType}; use ethrex_prover::backend::Backend; +use ethrex_rlp::decode::RLPDecode; use ethrex_rpc::debug::execution_witness::execution_witness_from_rpc_chain_config; use ethrex_vm::{DynVmDatabase, Evm, GuestProgramStateWrapper, backends::levm::LEVM}; use eyre::Context; @@ -97,11 +101,29 @@ pub async fn run_tx(cache: Cache, tx_hash: H256) -> eyre::Result<(Receipt, Vec, _>>()? + .into_iter() + .find(|h| h.number == first_block_number - 1) + .map(|h| h.state_root) + .ok_or_else(|| eyre::eyre!("Initial state root not found"))?; + let execution_witness = execution_witness_from_rpc_chain_config( execution_witness, chain_config, block.header.number, - Default::default(), + initial_state_root, ) .wrap_err("Failed to convert execution witness")?; From 443428c54da3d71cf693529c48669c9bd05e209b Mon Sep 17 00:00:00 2001 From: JereSalo Date: Wed, 26 Nov 2025 12:34:39 -0300 Subject: [PATCH 36/40] fix all_nodes problem --- src/cli.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index a806a55..25e7885 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -5,7 +5,7 @@ use bytes::Bytes; use ethrex_l2_common::prover::ProofFormat; use ethrex_l2_rpc::signer::{LocalSigner, Signer}; use ethrex_rlp::decode::RLPDecode; -use ethrex_trie::{EMPTY_TRIE_HASH, InMemoryTrieDB, Nibbles}; +use ethrex_trie::{EMPTY_TRIE_HASH, InMemoryTrieDB, Nibbles, Node, NodeRLP}; use eyre::OptionExt; use std::{ cmp::max, @@ -912,15 +912,19 @@ async fn replay_no_zkvm(cache: Cache, opts: &EthrexReplayOptions) -> eyre::Resul // - Set up state trie nodes let state_root = guest_program.parent_block_header.state_root; - let mut all_nodes = Vec::new(); - guest_program - .state_trie - .get_root_node(Nibbles::default())? - .encode_subtrie(&mut all_nodes)?; - let all_nodes: BTreeMap<_, _> = all_nodes - .into_iter() - .map(|n| (keccak(n.clone()), n)) + let all_nodes: BTreeMap> = cache + .witness + .state + .iter() + .filter_map(|b| { + if b.as_ref() == [0x80] { + return None; + } // skip nulls + let h = keccak(b); + Some((h, b.clone().to_vec())) + }) .collect(); + let state_trie = InMemoryTrieDB::from_nodes(state_root, &all_nodes)?; let state_trie_nodes = get_trie_nodes_with_dummies(state_trie); From e156e614a7a39a984cbb24c9f01b6700eeaf16ad Mon Sep 17 00:00:00 2001 From: JereSalo Date: Wed, 26 Nov 2025 12:39:22 -0300 Subject: [PATCH 37/40] remove imports --- src/cli.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli.rs b/src/cli.rs index 25e7885..4483796 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -5,7 +5,7 @@ use bytes::Bytes; use ethrex_l2_common::prover::ProofFormat; use ethrex_l2_rpc::signer::{LocalSigner, Signer}; use ethrex_rlp::decode::RLPDecode; -use ethrex_trie::{EMPTY_TRIE_HASH, InMemoryTrieDB, Nibbles, Node, NodeRLP}; +use ethrex_trie::{EMPTY_TRIE_HASH, InMemoryTrieDB}; use eyre::OptionExt; use std::{ cmp::max, From 5672aefb854ce84919721e5c82db95e804d1affc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 12:51:26 -0300 Subject: [PATCH 38/40] fix import --- src/run.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/run.rs b/src/run.rs index 186e8a8..208b916 100644 --- a/src/run.rs +++ b/src/run.rs @@ -1,8 +1,6 @@ use crate::{cache::Cache, cli::ProofType}; #[cfg(feature = "l2")] use ethrex_common::types::fee_config::FeeConfig; -#[cfg(feature = "l2")] -use ethrex_common::types::fee_config::FeeConfig; use ethrex_common::{ H256, types::{ From 68f45a1deb28fd0da230a9cbbe86ed163c1d1eef Mon Sep 17 00:00:00 2001 From: JereSalo Date: Mon, 17 Nov 2025 15:47:46 -0300 Subject: [PATCH 39/40] add profile release with debug --- Cargo.toml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 2eee84e..5732536 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,15 @@ edition = "2024" authors = ["LambdaClass"] version = "7.0.0" +[profile.release] +opt-level = 3 +lto = "thin" +codegen-units = 1 + +[profile.release-with-debug] +inherits = "release" +debug = 2 + [dependencies] ethrex-config = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-config", branch = "main" } ethrex-storage = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage", branch = "main" } From 9f5c9395326e10186d4ae1ec51ea1f313cbeaad5 Mon Sep 17 00:00:00 2001 From: JereSalo Date: Wed, 26 Nov 2025 13:16:45 -0300 Subject: [PATCH 40/40] fix debug compilation --- src/cli.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 4483796..a926050 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -134,18 +134,13 @@ pub enum CustomSubcommand { #[derive(Parser, Clone, Default)] pub struct CommonOptions { - #[arg( - long, - value_enum, - help_heading = "Replay Options", - conflicts_with = "no_zkvm" - )] + #[arg(long, value_enum, help_heading = "Replay Options")] pub zkvm: Option, #[arg(long, value_enum, default_value_t = Resource::default(), help_heading = "Replay Options")] pub resource: Resource, #[arg(long, value_enum, default_value_t = Action::default(), help_heading = "Replay Options")] pub action: Action, - #[arg(long = "proof", value_enum, default_value_t = ProofType::default(), help_heading = "Replay Options", conflicts_with_all = ["no_zkvm"])] + #[arg(long = "proof", value_enum, default_value_t = ProofType::default(), help_heading = "Replay Options")] pub proof_type: ProofType, #[arg( long, @@ -202,7 +197,7 @@ pub struct EthrexReplayOptions { long, help = "Execute with `Blockchain::add_block`, without using zkvm as backend", help_heading = "Replay Options", - conflicts_with = "zkvm" + conflicts_with_all = ["zkvm", "proof_type"] )] pub no_zkvm: bool, // CAUTION