From 7481feaae96423627b049277d0dc104d6ba28c30 Mon Sep 17 00:00:00 2001 From: ilitteri Date: Tue, 4 Nov 2025 11:16:44 -0300 Subject: [PATCH 01/28] 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 d4592d79..71cf7ca7 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 782b65ae..9b68b69b 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 69d58df7..8c27d12f 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/28] 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 69d58df7..4997289c 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 a2ef2e25..ea0d756a 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/28] 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 d4592d79..56b038ce 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 782b65ae..2978d8bf 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 8bd3d840..acaf7521 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 a65efc7a..0a17bfd0 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 ea0d756a..759df59b 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/28] update feature --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 27aef52a..3dfbcdb3 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/28] 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 97dd64e6..0fbe82fd 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 65a9431d..0e69185d 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 acaf7521..ac2356c3 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 0a17bfd0..aeb1f888 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/28] 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/28] 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/28] 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/28] update lock --- Cargo.lock | 60 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0fbe82fd..40aa0049 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/28] 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 cac6a4b9..b93fe269 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 40aa0049..0b159bbf 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 3dfbcdb3..fcd15b1a 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 0e69185d..63bd42f2 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 759df59b..460ebb4c 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/28] remove file --- diff | 2416 ---------------------------------------------------------- 1 file changed, 2416 deletions(-) delete mode 100644 diff diff --git a/diff b/diff deleted file mode 100644 index 865a7956..00000000 --- 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/28] 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 e88c308e..78a9c01c 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 63bd42f2..893283b8 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 460ebb4c..5ab8d601 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/28] Update Cargo.lock --- Cargo.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0b159bbf..c3b0af5a 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/28] fix locks --- Cargo.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c3b0af5a..62539e70 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/28] fix zisk toml --- Cargo.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62539e70..cba1d927 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/28] update ethrewx --- Cargo.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cba1d927..c5b426da 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/28] fmt --- src/run.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/run.rs b/src/run.rs index 5ab8d601..7fc74c04 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 f9091a31d0351ea9f0383731c97ac76629155f24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 21 Nov 2025 18:18:12 -0300 Subject: [PATCH 18/28] skip zisk execution --- src/cli.rs | 71 ++++++++++++++++++++++++++++++++-------- src/report.rs | 91 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 113 insertions(+), 49 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 893283b8..22f4b39b 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -803,7 +803,18 @@ impl EthrexReplayCommand { let backend = backend(&opts.common.zkvm)?; - let execution_result = exec(backend, cache.clone()).await; + #[allow(unused_assignments)] + let mut execution_result = None; + #[cfg(not(feature = "zisk"))] + { + execution_result = Some(exec(backend, cache.clone()).await); + } + #[cfg(feature = "zisk")] + { + if backend != Backend::Zisk { + execution_result = Some(exec(backend, cache.clone()).await); + } + } let proving_result = match opts.common.action { Action::Execute => None, @@ -1034,10 +1045,24 @@ async fn replay_block(block_opts: BlockOptions) -> eyre::Result<()> { let backend = backend(&opts.common.zkvm)?; let (execution_result, proving_result) = if opts.no_zkvm { - (replay_no_zkvm(cache.clone(), &opts).await, None) + (Some(replay_no_zkvm(cache.clone(), &opts).await), None) } else { - // Always execute - let execution_result = exec(backend, cache.clone()).await; + // Always execute before proving, unless it's ZisK. + // This is because of ZisK's client initializing MPI, which can't be done + // more than once in the same process. + // https://docs.open-mpi.org/en/v5.0.1/man-openmpi/man3/MPI_Init_thread.3.html#description + #[allow(unused_assignments)] + let mut execution_result = None; + #[cfg(not(feature = "zisk"))] + { + execution_result = Some(exec(backend, cache.clone()).await); + } + #[cfg(feature = "zisk")] + { + if backend != Backend::Zisk { + execution_result = Some(exec(backend, cache.clone()).await); + } + } let proving_result = if opts.common.action == Action::Prove { // Only prove if requested @@ -1067,9 +1092,7 @@ async fn replay_block(block_opts: BlockOptions) -> eyre::Result<()> { match opts.notification_level { NotificationLevel::Failed => { - if report.execution_result.is_err() - || report.proving_result.as_ref().is_some_and(|r| r.is_err()) - { + if report.has_error() { try_send_report_to_slack(&report, opts.slack_webhook_url).await?; } } @@ -1086,9 +1109,7 @@ async fn replay_block(block_opts: BlockOptions) -> eyre::Result<()> { CacheLevel::On => {} // Only save the cache if the block run or proving failed CacheLevel::Failed => { - if report.execution_result.is_ok() - && report.proving_result.as_ref().is_none_or(|r| r.is_ok()) - { + if !report.has_error() { cache.delete()?; } } @@ -1250,13 +1271,26 @@ pub async fn replay_custom_l1_blocks( opts.cache_dir, ); - let execution_result = exec(backend(&opts.common.zkvm)?, cache.clone()).await; + let backend = backend(&opts.common.zkvm)?; + + #[allow(unused_assignments)] + let mut execution_result = None; + #[cfg(not(feature = "zisk"))] + { + execution_result = Some(exec(backend, cache.clone()).await); + } + #[cfg(feature = "zisk")] + { + if backend != Backend::Zisk { + execution_result = Some(exec(backend, cache.clone()).await); + } + } let proving_result = if opts.common.action == Action::Prove { // Only prove if requested Some( prove( - backend(&opts.common.zkvm)?, + backend, opts.common.proof_type, cache.clone(), ) @@ -1453,7 +1487,18 @@ pub async fn replay_custom_l2_blocks(n_blocks: u64, opts: EthrexReplayOptions) - let backend = backend(&opts.common.zkvm)?; - let execution_result = exec(backend, cache.clone()).await; + #[allow(unused_assignments)] + let mut execution_result = None; + #[cfg(not(feature = "zisk"))] + { + execution_result = Some(exec(backend, cache.clone()).await); + } + #[cfg(feature = "zisk")] + { + if backend != Backend::Zisk { + execution_result = Some(exec(backend, cache.clone()).await); + } + } let proving_result = match opts.common.action { Action::Execute => None, diff --git a/src/report.rs b/src/report.rs index 8fc69b16..cf6cc1ee 100644 --- a/src/report.rs +++ b/src/report.rs @@ -15,7 +15,7 @@ pub struct Report { pub action: Action, pub block: Block, pub network: Network, - pub execution_result: Result, + pub execution_result: Option>, pub proving_result: Option>, } @@ -26,7 +26,7 @@ impl Report { action: Action, block: Block, network: Network, - execution_result: Result, + execution_result: Option>, proving_result: Option>, ) -> Self { Self { @@ -40,6 +40,10 @@ impl Report { } } + pub fn has_error(&self) -> bool { + matches!(self.execution_result, Some(Err(_))) || matches!(self.proving_result, Some(Err(_))) + } + pub fn to_slack_message(&self) -> SlackWebHookRequest { let eth_proofs_button = SlackWebHookActionElement::Button { text: SlackWebHookBlock::PlainText { @@ -82,15 +86,16 @@ impl Report { blocks: vec![ SlackWebHookBlock::Header { text: Box::new(SlackWebHookBlock::PlainText { - text: match (&self.execution_result, &self.proving_result) { - (Ok(_), Some(Ok(_))) | (Ok(_), None) => format!( - "✅ Succeeded to {} Block{} on {}", - self.action, maybe_zkvm, self.resource - ), - (Ok(_), Some(Err(_))) | (Err(_), _) => format!( + text: if self.has_error() { + format!( "⚠️ Failed to {} Block{} on {}", self.action, maybe_zkvm, self.resource - ), + ) + } else { + format!( + "✅ Succeeded to {} Block{} on {}", + self.action, maybe_zkvm, self.resource + ) }, emoji: true, }), @@ -116,17 +121,18 @@ impl Report { format!( "\n*Execution:* {}", match &self.execution_result { - Ok(_) => "Succeeded".to_string(), - Err(err) => format!("⚠️ Failed with {err}"), + Some(Ok(_)) => "Succeeded".to_string(), + Some(Err(err)) => format!("⚠️ Failed with {err}"), + None => "Not executed".to_string(), } ) - } else if let Err(err) = &self.execution_result { + } else if let Some(Err(err)) = &self.execution_result { format!("\n*Execution:* Failed with {err}") } else { "".to_string() }, maybe_execution_time = - if let Ok(execution_duration) = &self.execution_result { + if let Some(Ok(execution_duration)) = &self.execution_result { format!( "\n*Execution Time:* {}", format_duration(execution_duration) @@ -160,6 +166,12 @@ impl Report { let txs = self.block.body.transactions.len(); + let maybe_execution_time = if let Some(Ok(execution_duration)) = &self.execution_result { + format!(", Execution Time: {}", format_duration(execution_duration)) + } else { + "".to_string() + }; + let maybe_proving_time = if let Some(Ok(proving_duration)) = &self.proving_result { format!(", Proving Time: {}", format_duration(proving_duration)) } else { @@ -186,21 +198,21 @@ impl Report { "".to_string() }; + let maybe_execution_result = if let Some(Err(err)) = &self.execution_result { + format!(", Execution Error: {err}") + } else { + "".to_string() + }; + match (self.execution_result.as_ref(), self.proving_result.as_ref()) { - (Ok(execution_result), Some(Ok(_))) | (Ok(execution_result), None) => { - info!( - "[{network}] Block: {block_number}, Gas: {gas}, #Txs: {txs}, Execution Time: {execution_result}{maybe_proving_time}{maybe_etherscan_url}{maybe_ethproofs_url}", - execution_result = format_duration(execution_result) + _ if self.has_error() => { + error!( + "[{network}] Block: {block_number}, Gas: {gas}, #Txs: {txs}{maybe_execution_result}{maybe_proving_result}{maybe_etherscan_url}{maybe_ethproofs_url}" ); } - (Ok(_), Some(Err(_))) | (Err(_), _) => { - error!( - "[{network}] Block: {block_number}, Gas: {gas}, #Txs: {txs}, Execution Result: {execution_result}{maybe_proving_result}{maybe_etherscan_url}{maybe_ethproofs_url}", - execution_result = if let Err(execution_result) = &self.execution_result { - format!("⚠️ Failed with {execution_result}") - } else { - "Succeeded".to_string() - } + _ => { + info!( + "[{network}] Block: {block_number}, Gas: {gas}, #Txs: {txs}{maybe_execution_time}{maybe_proving_time}{maybe_etherscan_url}{maybe_ethproofs_url}" ); } } @@ -217,9 +229,15 @@ impl Report { /// we do benchmarks in CI. pub fn to_bench_file(&self) -> eyre::Result { let elapsed = match (&self.execution_result, &self.proving_result) { - (Ok(_execution_duration), Some(Ok(proving_duration))) => proving_duration.as_secs_f64(), - (Ok(execution_duration), None) => execution_duration.as_secs_f64(), - (Err(err), _) | (_, Some(Err(err))) => { + (Some(Ok(_execution_duration)), Some(Ok(proving_duration))) => proving_duration.as_secs_f64(), + (Some(Ok(execution_duration)), None) => execution_duration.as_secs_f64(), + (None, Some(Ok(proving_duration))) => proving_duration.as_secs_f64(), + (None, None) => { + return Err(eyre::Error::msg( + "Cannot create benchmark file: No execution or proving result available" + )); + } + (Some(Err(err)), _) | (_, Some(Err(err))) => { return Err(eyre::Error::msg(format!( "Cannot create benchmark file: {err}" ))); @@ -246,14 +264,14 @@ impl Display for Report { "".to_string() }; match (&self.execution_result, &self.proving_result) { - (Ok(_), Some(Ok(_))) | (Ok(_), None) => writeln!( + _ if self.has_error() => writeln!( f, - "✅ Succeeded to {} Block{} on {}", + "⚠️ Failed to {} Block{} on {}", self.action, maybe_zkvm, self.resource )?, - (Ok(_), Some(Err(_))) | (Err(_), _) => writeln!( + _ => writeln!( f, - "⚠️ Failed to {} Block{} on {}", + "✅ Succeeded to {} Block{} on {}", self.action, maybe_zkvm, self.resource )?, }; @@ -266,11 +284,12 @@ impl Display for Report { f, "Execution Result: {}", match &self.execution_result { - Ok(_) => "Succeeded".to_string(), - Err(err) => format!("⚠️ Failed with {err}"), + Some(Ok(_)) => "Succeeded".to_string(), + Some(Err(err)) => format!("⚠️ Failed with {err}"), + None => "Not executed".to_string(), } )?; - } else if let Err(err) = &self.execution_result { + } else if let Some(Err(err)) = &self.execution_result { writeln!(f, "Execution Error: {err}")?; } if let Some(Err(err)) = &self.proving_result { @@ -296,7 +315,7 @@ impl Display for Report { .replace("`", "") )?; } - if let Ok(execution_duration) = &self.execution_result { + if let Some(Ok(execution_duration)) = &self.execution_result { writeln!(f, "Execution Time: {}", format_duration(execution_duration))?; } if let Some(Ok(proving_duration)) = &self.proving_result { From 8605b95343b9f69c38bdfb9c4f69b5c912f92265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 21 Nov 2025 18:21:46 -0300 Subject: [PATCH 19/28] typo --- src/cli.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 22f4b39b..79322c36 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -811,7 +811,7 @@ impl EthrexReplayCommand { } #[cfg(feature = "zisk")] { - if backend != Backend::Zisk { + if backend != Backend::ZisK { execution_result = Some(exec(backend, cache.clone()).await); } } @@ -1281,7 +1281,7 @@ pub async fn replay_custom_l1_blocks( } #[cfg(feature = "zisk")] { - if backend != Backend::Zisk { + if backend != Backend::ZisK { execution_result = Some(exec(backend, cache.clone()).await); } } From 408b9e7f07ba542723f79642b48b33904ca2c37c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 21 Nov 2025 18:28:35 -0300 Subject: [PATCH 20/28] typo --- src/cli.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 79322c36..37b3c966 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -1059,7 +1059,7 @@ async fn replay_block(block_opts: BlockOptions) -> eyre::Result<()> { } #[cfg(feature = "zisk")] { - if backend != Backend::Zisk { + if backend != Backend::ZisK { execution_result = Some(exec(backend, cache.clone()).await); } } @@ -1495,7 +1495,7 @@ pub async fn replay_custom_l2_blocks(n_blocks: u64, opts: EthrexReplayOptions) - } #[cfg(feature = "zisk")] { - if backend != Backend::Zisk { + if backend != Backend::ZisK { execution_result = Some(exec(backend, cache.clone()).await); } } From 1fc0b46151105a51e7781173a7932d23d0d65f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 24 Nov 2025 11:28:00 -0300 Subject: [PATCH 21/28] remove features --- Cargo.lock | 1153 ++++++++++++++++++++++++++++++++++++++++++++-------- Cargo.toml | 34 +- src/cli.rs | 89 ++-- 3 files changed, 1023 insertions(+), 253 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c5b426da..3de2c73a 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", @@ -258,6 +258,18 @@ dependencies = [ "derive_arbitrary", ] +[[package]] +name = "ark-bls12-381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" +dependencies = [ + "ark-ec", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", +] + [[package]] name = "ark-bn254" version = "0.5.0" @@ -300,7 +312,7 @@ checksum = "e7e89fe77d1f0f4fe5b96dfc940923d88d17b6a773808124f21e764dfb063c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -409,7 +421,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 +459,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -509,6 +521,17 @@ dependencies = [ "tracing-subscriber 0.2.25", ] +[[package]] +name = "ark-secp256k1" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8bd211c48debd3037b48873a7aa22c3aba034e83388aa4124795c9f220b88c7" +dependencies = [ + "ark-ec", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -551,7 +574,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -623,6 +646,25 @@ dependencies = [ "term", ] +[[package]] +name = "asm-runner" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "anyhow", + "clap", + "libc", + "mem-common", + "mem-planner-cpp", + "named-sem", + "rayon", + "thiserror 2.0.17", + "tracing", + "ureq", + "zisk-common", + "zisk-core", +] + [[package]] name = "async-stream" version = "0.3.6" @@ -642,7 +684,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -653,7 +695,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -690,7 +732,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -859,7 +901,7 @@ dependencies = [ "object 0.37.3", "rustc-demangle", "serde", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -916,6 +958,26 @@ dependencies = [ "serde", ] +[[package]] +name = "bincode" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" +dependencies = [ + "bincode_derive", + "serde", + "unty", +] + +[[package]] +name = "bincode_derive" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" +dependencies = [ + "virtue", +] + [[package]] name = "bindgen" version = "0.69.5" @@ -935,7 +997,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.110", + "syn 2.0.111", "which 4.4.2", ] @@ -956,7 +1018,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -976,7 +1038,7 @@ dependencies = [ "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1183,7 +1245,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1196,6 +1258,16 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "build-probe-mpi" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3234fa6de2f6e0e338c7183ba09ae68c8f2bd6919d8763362597627362b7f8fe" +dependencies = [ + "pkg-config", + "shell-words", +] + [[package]] name = "bumpalo" version = "3.19.0" @@ -1228,7 +1300,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1248,7 +1320,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1370,22 +1442,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", @@ -1446,7 +1518,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -1515,6 +1587,11 @@ dependencies = [ "wtns-file", ] +[[package]] +name = "circuit" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" + [[package]] name = "clang-sys" version = "1.8.1" @@ -1528,9 +1605,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 +1615,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 +1634,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1666,6 +1743,15 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "colored" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "compact_str" version = "0.8.1" @@ -1752,6 +1838,15 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "conv" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299" +dependencies = [ + "custom_derive", +] + [[package]] name = "convert_case" version = "0.6.0" @@ -2046,6 +2141,27 @@ dependencies = [ "typenum", ] +[[package]] +name = "csv" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde_core", +] + +[[package]] +name = "csv-core" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" +dependencies = [ + "memchr", +] + [[package]] name = "ctr" version = "0.9.2" @@ -2066,6 +2182,17 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "curves" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "fields", + "num-bigint 0.4.6", + "num-traits", + "rand 0.9.2", +] + [[package]] name = "cust" version = "0.3.2" @@ -2112,6 +2239,12 @@ dependencies = [ "find_cuda_helper", ] +[[package]] +name = "custom_derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9" + [[package]] name = "darling" version = "0.20.11" @@ -2143,7 +2276,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2157,7 +2290,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2168,7 +2301,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2179,7 +2312,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2301,7 +2434,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e09bd55da542fa1fde753aff617c355b5d782e763ab2a19e4371a56d7844cac" dependencies = [ "anyhow", - "bincode", + "bincode 1.3.3", "bit-set 0.5.3", "bit-vec 0.6.3", "bytes", @@ -2343,7 +2476,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 +2531,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2419,7 +2552,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2429,7 +2562,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 +2592,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "unicode-xid", ] @@ -2472,7 +2605,7 @@ dependencies = [ "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "unicode-xid", ] @@ -2611,7 +2744,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2696,7 +2829,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2804,7 +2937,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2824,7 +2957,16 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", +] + +[[package]] +name = "env" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc95de49ad098572c02d3fbf368c9a020bfff5ae78483685b77f51d8a7e9486d" +dependencies = [ + "num_threads", ] [[package]] @@ -3042,7 +3184,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.110", + "syn 2.0.111", "toml", "walkdir", ] @@ -3060,7 +3202,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3086,7 +3228,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.110", + "syn 2.0.111", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -3222,13 +3364,13 @@ dependencies = [ "tokio", "tracing", "walkdir", - "yansi", + "yansi 0.5.1", ] [[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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "bytes", "ethrex-common", @@ -3249,7 +3391,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "bytes", "crc32fast", @@ -3280,7 +3422,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "ethrex-common", "ethrex-p2p", @@ -3292,7 +3434,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "c-kzg", "kzg-rs", @@ -3303,7 +3445,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "bytes", "envy", @@ -3323,11 +3465,11 @@ 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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "aligned-sdk", "axum 0.8.7", - "bincode", + "bincode 1.3.3", "bytes", "chrono", "clap", @@ -3381,7 +3523,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3405,7 +3547,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "axum 0.8.7", "bytes", @@ -3435,7 +3577,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "ark-bn254", "ark-ec", @@ -3469,7 +3611,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "axum 0.8.7", "ethrex-common", @@ -3485,7 +3627,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "aes", "async-trait", @@ -3505,7 +3647,7 @@ dependencies = [ "futures", "hex", "hmac", - "indexmap 2.12.0", + "indexmap 2.12.1", "lazy_static", "prometheus 0.14.0", "rand 0.8.5", @@ -3527,10 +3669,10 @@ 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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "anyhow", - "bincode", + "bincode 1.3.3", "bytes", "clap", "ethereum-types 0.15.1", @@ -3558,6 +3700,8 @@ dependencies = [ "tracing", "tracing-subscriber 0.3.20", "url", + "zisk-common", + "zisk-sdk", ] [[package]] @@ -3605,7 +3749,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3619,7 +3763,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "axum 0.8.7", "axum-extra", @@ -3658,7 +3802,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "bytes", "ethereum-types 0.15.1", @@ -3684,7 +3828,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "thiserror 2.0.17", "tracing", @@ -3693,11 +3837,11 @@ 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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "anyhow", "async-trait", - "bincode", + "bincode 1.3.3", "bytes", "ethereum-types 0.15.1", "ethrex-common", @@ -3718,11 +3862,11 @@ 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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "anyhow", "async-trait", - "bincode", + "bincode 1.3.3", "ethereum-types 0.15.1", "ethrex-common", "ethrex-l2-common", @@ -3738,7 +3882,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "crossbeam 0.8.4", ] @@ -3746,7 +3890,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "anyhow", "bytes", @@ -3770,9 +3914,9 @@ 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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ - "bincode", + "bincode 1.3.3", "bytes", "derive_more 1.0.0", "dyn-clone", @@ -3918,6 +4062,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "fields" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "num-bigint 0.4.6", + "paste", + "serde", +] + [[package]] name = "find-msvc-tools" version = "0.1.5" @@ -4047,7 +4201,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4163,7 +4317,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4348,7 +4502,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 +4589,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=zisk_sdk#d427b89fdba65f8d18ee7b7925c3a45d0f09225a" dependencies = [ "bytes", "ethrex-blockchain", @@ -4479,7 +4633,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.12.0", + "indexmap 2.12.1", "slab", "tokio", "tokio-util", @@ -4498,7 +4652,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.12.0", + "indexmap 2.12.1", "slab", "tokio", "tokio-util", @@ -4592,14 +4746,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]] @@ -5140,7 +5295,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5168,12 +5323,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 +5374,7 @@ dependencies = [ "indoc", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5342,6 +5497,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" + [[package]] name = "jsonwebtoken" version = "8.3.0" @@ -5535,7 +5696,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5559,12 +5720,36 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" +[[package]] +name = "lib-c" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" + [[package]] name = "libc" version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +[[package]] +name = "libffi" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" +dependencies = [ + "libc", + "libffi-sys", +] + +[[package]] +name = "libffi-sys" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" +dependencies = [ + "cc", +] + [[package]] name = "libgit2-sys" version = "0.18.2+1.9.1" @@ -5584,7 +5769,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if 1.0.4", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -5701,7 +5886,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 +6053,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5887,6 +6072,42 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "mem-common" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "clap", + "fields", + "num-bigint 0.4.6", + "num-traits", + "pil-std-lib", + "proofman", + "proofman-common", + "proofman-macros", + "proofman-util", + "rayon", + "static_assertions", + "tracing", + "witness", + "zisk-common", + "zisk-core", + "zisk-pil", +] + +[[package]] +name = "mem-planner-cpp" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "mem-common", + "proofman-common", + "proofman-util", + "tracing", + "zisk-common", + "zisk-pil", +] + [[package]] name = "memchr" version = "2.7.6" @@ -6011,6 +6232,32 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "mpi" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677762a4bde2c81158fc566a69b97d11b0c3358694e64f4f922ac5189be311cc" +dependencies = [ + "build-probe-mpi", + "conv", + "libffi", + "mpi-sys", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "mpi-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f35fdd7bdb38959515f008d12598065631de9624f6d42c11caef19e8e0d10de" +dependencies = [ + "bindgen 0.69.5", + "build-probe-mpi", + "cc", +] + [[package]] name = "multimap" version = "0.10.1" @@ -6034,7 +6281,18 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", +] + +[[package]] +name = "named-sem" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0875efe1a57a20d0cee7034499aa9d764b3c7525563fa3c3f16a2ccf01ddfa04" +dependencies = [ + "libc", + "thiserror 2.0.17", + "windows 0.61.3", ] [[package]] @@ -6203,7 +6461,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6312,7 +6570,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6357,12 +6615,31 @@ dependencies = [ "objc2-encode", ] +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "objc2-encode" version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" +[[package]] +name = "objc2-io-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" +dependencies = [ + "libc", + "objc2-core-foundation", +] + [[package]] name = "object" version = "0.36.7" @@ -6443,7 +6720,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6785,7 +7062,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6833,7 +7110,7 @@ dependencies = [ "libc", "redox_syscall 0.5.18", "smallvec", - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -6953,9 +7230,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 +7240,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 +7250,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 +7278,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 +7288,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 +7331,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7072,6 +7349,23 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" +[[package]] +name = "pil-std-lib" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "colored", + "fields", + "num-bigint 0.4.6", + "num-traits", + "proofman-common", + "proofman-hints", + "proofman-util", + "rayon", + "tracing", + "witness", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -7089,7 +7383,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7202,6 +7496,23 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "precompiles-helpers" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ff 0.5.0", + "ark-secp256k1", + "ark-std 0.5.0", + "cfg-if 1.0.4", + "circuit", + "lib-c", + "num-bigint 0.4.6", + "num-traits", +] + [[package]] name = "precomputed-hash" version = "0.1.1" @@ -7215,7 +7526,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 +7592,7 @@ checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" dependencies = [ "proc-macro-rules-macros", "proc-macro2", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7293,7 +7604,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7313,7 +7624,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "version_check", ] @@ -7372,6 +7683,126 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "proofman" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "blake3", + "borsh", + "bytemuck", + "chrono", + "colored", + "crossbeam-channel 0.5.15", + "csv", + "curves", + "fields", + "libloading", + "mpi", + "num-bigint 0.4.6", + "num-traits", + "pil-std-lib", + "proofman-common", + "proofman-hints", + "proofman-macros", + "proofman-starks-lib-c", + "proofman-util", + "proofman-verifier", + "rand 0.9.2", + "rayon", + "serde", + "serde_json", + "tokio", + "tokio-util", + "tracing", + "transcript", + "witness", +] + +[[package]] +name = "proofman-common" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "borsh", + "colored", + "crossbeam-channel 0.5.15", + "crossbeam-queue 0.3.12", + "csv", + "env", + "fields", + "lazy_static", + "libloading", + "mpi", + "num_cpus", + "proofman-macros", + "proofman-starks-lib-c", + "proofman-util", + "rayon", + "serde", + "serde_json", + "sysinfo 0.35.2", + "thiserror 2.0.17", + "tracing", + "tracing-subscriber 0.3.20", + "transcript", + "yansi 1.0.1", +] + +[[package]] +name = "proofman-hints" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "fields", + "proofman-common", + "proofman-starks-lib-c", + "proofman-util", + "tracing", +] + +[[package]] +name = "proofman-macros" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "proc-macro2", + "quote", + "rayon", + "syn 2.0.111", +] + +[[package]] +name = "proofman-starks-lib-c" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "crossbeam-channel 0.5.15", + "tracing", +] + +[[package]] +name = "proofman-util" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "colored", + "fields", + "sysinfo 0.35.2", + "tracing", +] + +[[package]] +name = "proofman-verifier" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "bytemuck", + "fields", + "tracing", + "zstd 0.13.3", +] + [[package]] name = "proptest" version = "1.9.0" @@ -7413,7 +7844,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.110", + "syn 2.0.111", "tempfile", ] @@ -7427,7 +7858,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7482,7 +7913,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7844,7 +8275,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -8374,7 +8805,7 @@ checksum = "3fcce11648a9ff60b8e7af2f0ce7fbf8d25275ab6d414cc91b9da69ee75bc978" dependencies = [ "addr2line 0.24.2", "anyhow", - "bincode", + "bincode 1.3.3", "bonsai-sdk", "borsh", "bytemuck", @@ -8432,6 +8863,14 @@ dependencies = [ "stability", ] +[[package]] +name = "riscv" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "elf", +] + [[package]] name = "rkyv" version = "0.8.12" @@ -8441,7 +8880,7 @@ dependencies = [ "bytecheck", "bytes", "hashbrown 0.15.5", - "indexmap 2.12.0", + "indexmap 2.12.1", "munge", "ptr_meta", "rancor", @@ -8459,7 +8898,7 @@ checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -8494,6 +8933,22 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "rom-setup" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "anyhow", + "blake3", + "colored", + "fields", + "proofman-common", + "sm-rom", + "tracing", + "zisk-core", + "zisk-pil", +] + [[package]] name = "roxmltree" version = "0.18.1" @@ -8854,7 +9309,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -8922,7 +9377,7 @@ checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9125,7 +9580,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9134,7 +9589,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 +9616,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9208,7 +9663,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 +9681,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9261,7 +9716,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9340,9 +9795,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", ] @@ -9432,6 +9887,25 @@ dependencies = [ "version_check", ] +[[package]] +name = "sm-rom" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "asm-runner", + "fields", + "itertools 0.14.0", + "proofman", + "proofman-common", + "proofman-macros", + "proofman-util", + "rayon", + "tracing", + "zisk-common", + "zisk-core", + "zisk-pil", +] + [[package]] name = "smallvec" version = "1.15.1" @@ -9527,7 +10001,7 @@ version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fb8bc70057a88164e479e367e2f83f7e7fba52d66acfbeef3b2174dc98c3627" dependencies = [ - "bincode", + "bincode 1.3.3", "bytemuck", "clap", "elf", @@ -9570,7 +10044,7 @@ version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe446bea36feb189af83cda6ea5420150e877764e2ed4ab4cb2ee5cd3e20355c" dependencies = [ - "bincode", + "bincode 1.3.3", "cbindgen", "cc", "cfg-if 1.0.4", @@ -9626,7 +10100,7 @@ version = "5.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3d56209b50707201184746b749d3e791f3d33411539f508a563405de1fb8694" dependencies = [ - "bincode", + "bincode 1.3.3", "ctrlc", "prost", "serde", @@ -9675,7 +10149,7 @@ version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb1a9935d58cb1dcd757a1b10d727090f5b718f1f03b512d48f0c1952e6ead00" dependencies = [ - "bincode", + "bincode 1.3.3", "serde", "sp1-primitives", ] @@ -9686,7 +10160,7 @@ version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7d2a6187e394c30097ea7a975a4832f172918690dc89a979f0fad67422d3a8b" dependencies = [ - "bincode", + "bincode 1.3.3", "blake3", "cfg-if 1.0.4", "hex", @@ -9707,7 +10181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fa3bb2b42cd36c1045472900dcc348a61475774734a5d8cdd4acaf929396ff" dependencies = [ "anyhow", - "bincode", + "bincode 1.3.3", "clap", "dirs 5.0.1", "downloader", @@ -9862,7 +10336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e146d24ce91c08e36b270a73de9817b9847e759a3d66923b009c67f24a3b9b2" dependencies = [ "anyhow", - "bincode", + "bincode 1.3.3", "bindgen 0.70.1", "cc", "cfg-if 1.0.4", @@ -9891,7 +10365,7 @@ dependencies = [ "anyhow", "async-trait", "backoff", - "bincode", + "bincode 1.3.3", "cfg-if 1.0.4", "dirs 5.0.1", "eventsource-stream", @@ -9956,7 +10430,7 @@ dependencies = [ "sp1-derive", "sp1-primitives", "strum 0.26.3", - "sysinfo", + "sysinfo 0.30.13", "tracing", ] @@ -10044,7 +10518,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 +10597,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10136,7 +10610,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10148,7 +10622,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10160,7 +10634,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10225,9 +10699,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 +10731,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10272,7 +10746,21 @@ dependencies = [ "ntapi", "once_cell", "rayon", - "windows", + "windows 0.52.0", +] + +[[package]] +name = "sysinfo" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3ffa3e4ff2b324a57f7aeb3c349656c7b127c3c189520251a648102a92496e" +dependencies = [ + "libc", + "memchr", + "ntapi", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.61.3", ] [[package]] @@ -10382,7 +10870,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10393,7 +10881,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10563,7 +11051,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10699,7 +11187,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 +11198,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 +11212,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", @@ -10876,7 +11364,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10933,6 +11421,16 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-serde" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" +dependencies = [ + "serde", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.2.25" @@ -10952,12 +11450,23 @@ dependencies = [ "nu-ansi-term", "once_cell", "regex-automata", + "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", + "tracing-serde", +] + +[[package]] +name = "transcript" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "proofman-starks-lib-c", ] [[package]] @@ -11138,7 +11647,7 @@ checksum = "27a7a9b72ba121f6f1f6c3632b85604cac41aedb5ddc70accbebb6cac83de846" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -11272,6 +11781,41 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + +[[package]] +name = "ureq" +version = "3.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d39cb1dbab692d82a977c0392ffac19e188bd9186a9f32806f0aaa859d75585a" +dependencies = [ + "base64 0.22.1", + "flate2", + "log", + "percent-encoding", + "rustls 0.23.35", + "rustls-pki-types", + "ureq-proto", + "utf-8", + "webpki-roots 1.0.4", +] + +[[package]] +name = "ureq-proto" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d81f9efa9df032be5934a46a068815a10a042b494b6a58cb0a1a97bb5467ed6f" +dependencies = [ + "base64 0.22.1", + "http 1.3.1", + "httparse", + "log", +] + [[package]] name = "url" version = "2.5.7" @@ -11478,6 +12022,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "virtue" +version = "0.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" + [[package]] name = "walkdir" version = "2.5.0" @@ -11563,7 +12113,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "wasm-bindgen-shared", ] @@ -11720,6 +12270,28 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + [[package]] name = "windows-core" version = "0.52.0" @@ -11729,6 +12301,19 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + [[package]] name = "windows-core" version = "0.62.2" @@ -11737,9 +12322,20 @@ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", ] [[package]] @@ -11750,7 +12346,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -11761,24 +12357,49 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + [[package]] name = "windows-registry" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", ] [[package]] @@ -11787,7 +12408,16 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link", + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", ] [[package]] @@ -11796,7 +12426,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -11841,7 +12471,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -11881,7 +12511,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link", + "windows-link 0.2.1", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -11892,6 +12522,15 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -12070,6 +12709,20 @@ version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +[[package]] +name = "witness" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.14.0#91437fce47835235886ee119e31ef34c03565a21" +dependencies = [ + "colored", + "fields", + "libloading", + "proofman-common", + "proofman-util", + "serde_json", + "tracing", +] + [[package]] name = "writeable" version = "0.6.2" @@ -12148,6 +12801,12 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + [[package]] name = "yoke" version = "0.8.1" @@ -12167,28 +12826,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.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "43fa6694ed34d6e57407afbccdeecfa268c470a7d2a5b0cf49ce9fcc345afb90" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "c640b22cd9817fae95be82f0d2f90b11f7605f6c319d16705c459b27ac2cbc26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -12208,7 +12867,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "synstructure", ] @@ -12229,7 +12888,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -12262,7 +12921,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -12282,7 +12941,7 @@ dependencies = [ "pbkdf2 0.11.0", "sha1", "time", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -12296,12 +12955,128 @@ dependencies = [ "crossbeam-utils 0.8.21", "displaydoc", "flate2", - "indexmap 2.12.0", + "indexmap 2.12.1", "memchr", "thiserror 2.0.17", "zopfli", ] +[[package]] +name = "zisk-common" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "anyhow", + "bytemuck", + "fields", + "libc", + "mpi", + "proofman", + "proofman-common", + "serde", + "serde_json", + "tracing", + "tracing-subscriber 0.3.20", + "witness", + "zisk-core", + "zisk-pil", + "zstd 0.13.3", +] + +[[package]] +name = "zisk-core" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "elf", + "fields", + "indexmap 2.12.1", + "json", + "lib-c", + "precompiles-helpers", + "rayon", + "riscv", + "serde", + "serde_json", + "sha2", + "tiny-keccak", + "zisk-pil", + "ziskos", +] + +[[package]] +name = "zisk-distributed-common" +version = "0.1.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "anyhow", + "borsh", + "chrono", + "proofman", + "proofman-common", + "serde", + "serde_json", + "thiserror 2.0.17", + "tracing", + "tracing-appender", + "tracing-subscriber 0.3.20", + "uuid 1.18.1", +] + +[[package]] +name = "zisk-pil" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "fields", + "proofman", + "proofman-common", + "proofman-macros", + "rayon", + "serde", + "serde_arrays", +] + +[[package]] +name = "zisk-sdk" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "anyhow", + "asm-runner", + "bytemuck", + "colored", + "fields", + "libloading", + "proofman", + "proofman-common", + "proofman-util", + "rom-setup", + "tracing", + "zisk-common", + "zisk-distributed-common", + "zstd 0.13.3", +] + +[[package]] +name = "ziskos" +version = "0.14.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" +dependencies = [ + "bincode 2.0.1", + "cfg-if 1.0.4", + "getrandom 0.2.16", + "lazy_static", + "lib-c", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "rand 0.8.5", + "serde", + "static_assertions", + "tiny-keccak", +] + [[package]] name = "zkhash" version = "0.2.0" @@ -12347,7 +13122,16 @@ version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ - "zstd-safe", + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe 7.2.4", ] [[package]] @@ -12360,6 +13144,15 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + [[package]] name = "zstd-sys" version = "2.0.16+zstd.1.5.7" diff --git a/Cargo.toml b/Cargo.toml index fcd15b1a..753b67ce 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 = "zisk_sdk" } +ethrex-storage = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage", branch = "zisk_sdk" } +ethrex-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-common", branch = "zisk_sdk" } +ethrex-vm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-vm", branch = "zisk_sdk" } +ethrex-levm = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-levm", branch = "zisk_sdk" } +ethrex-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rpc", branch = "zisk_sdk" } +ethrex-p2p = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-p2p", branch = "zisk_sdk" } +ethrex-trie = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-trie", branch = "zisk_sdk" } +ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-rlp", branch = "zisk_sdk" } +ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-blockchain", branch = "zisk_sdk" } +ethrex-l2 = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2", branch = "zisk_sdk", optional = true } +ethrex-l2-common = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-common", branch = "zisk_sdk" } +ethrex-storage-rollup = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-storage-rollup", branch = "zisk_sdk", optional = true } +ethrex-sdk = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-sdk", branch = "zisk_sdk" } +ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-l2-rpc", branch = "zisk_sdk" } +ethrex-prover = { git = "https://github.com/lambdaclass/ethrex", package = "ethrex-prover", branch = "zisk_sdk", default-features = false } +guest_program = { git = "https://github.com/lambdaclass/ethrex", package = "guest_program", branch = "zisk_sdk", default-features = false } serde = { version = "1.0.203", features = ["derive"] } hex = "0.4.3" diff --git a/src/cli.rs b/src/cli.rs index 37b3c966..b4fa927e 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -803,18 +803,15 @@ impl EthrexReplayCommand { let backend = backend(&opts.common.zkvm)?; - #[allow(unused_assignments)] - let mut execution_result = None; - #[cfg(not(feature = "zisk"))] - { - execution_result = Some(exec(backend, cache.clone()).await); - } - #[cfg(feature = "zisk")] - { - if backend != Backend::ZisK { - execution_result = Some(exec(backend, cache.clone()).await); - } - } + // Always execute before proving, unless it's ZisK. + // This is because of ZisK's client initializing MPI, which can't be done + // more than once in the same process. + // https://docs.open-mpi.org/en/v5.0.1/man-openmpi/man3/MPI_Init_thread.3.html#description + let execution_result = if backend != Backend::ZisK { + Some(exec(backend, cache.clone()).await) + } else { + None + }; let proving_result = match opts.common.action { Action::Execute => None, @@ -1051,18 +1048,11 @@ async fn replay_block(block_opts: BlockOptions) -> eyre::Result<()> { // This is because of ZisK's client initializing MPI, which can't be done // more than once in the same process. // https://docs.open-mpi.org/en/v5.0.1/man-openmpi/man3/MPI_Init_thread.3.html#description - #[allow(unused_assignments)] - let mut execution_result = None; - #[cfg(not(feature = "zisk"))] - { - execution_result = Some(exec(backend, cache.clone()).await); - } - #[cfg(feature = "zisk")] - { - if backend != Backend::ZisK { - execution_result = Some(exec(backend, cache.clone()).await); - } - } + let execution_result = if backend != Backend::ZisK { + Some(exec(backend, cache.clone()).await) + } else { + None + }; let proving_result = if opts.common.action == Action::Prove { // Only prove if requested @@ -1273,29 +1263,19 @@ pub async fn replay_custom_l1_blocks( let backend = backend(&opts.common.zkvm)?; - #[allow(unused_assignments)] - let mut execution_result = None; - #[cfg(not(feature = "zisk"))] - { - execution_result = Some(exec(backend, cache.clone()).await); - } - #[cfg(feature = "zisk")] - { - if backend != Backend::ZisK { - execution_result = Some(exec(backend, cache.clone()).await); - } - } + // Always execute before proving, unless it's ZisK. + // This is because of ZisK's client initializing MPI, which can't be done + // more than once in the same process. + // https://docs.open-mpi.org/en/v5.0.1/man-openmpi/man3/MPI_Init_thread.3.html#description + let execution_result = if backend != Backend::ZisK { + Some(exec(backend, cache.clone()).await) + } else { + None + }; let proving_result = if opts.common.action == Action::Prove { // Only prove if requested - Some( - prove( - backend, - opts.common.proof_type, - cache.clone(), - ) - .await, - ) + Some(prove(backend, opts.common.proof_type, cache.clone()).await) } else { None }; @@ -1487,18 +1467,15 @@ pub async fn replay_custom_l2_blocks(n_blocks: u64, opts: EthrexReplayOptions) - let backend = backend(&opts.common.zkvm)?; - #[allow(unused_assignments)] - let mut execution_result = None; - #[cfg(not(feature = "zisk"))] - { - execution_result = Some(exec(backend, cache.clone()).await); - } - #[cfg(feature = "zisk")] - { - if backend != Backend::ZisK { - execution_result = Some(exec(backend, cache.clone()).await); - } - } + // Always execute before proving, unless it's ZisK. + // This is because of ZisK's client initializing MPI, which can't be done + // more than once in the same process. + // https://docs.open-mpi.org/en/v5.0.1/man-openmpi/man3/MPI_Init_thread.3.html#description + let execution_result = if backend != Backend::ZisK { + Some(exec(backend, cache.clone()).await) + } else { + None + }; let proving_result = match opts.common.action { Action::Execute => None, From 3b4530524734098d54709001c940a1f7279cff3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 24 Nov 2025 11:32:41 -0300 Subject: [PATCH 22/28] fmt --- src/report.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/report.rs b/src/report.rs index cf6cc1ee..4f093e2b 100644 --- a/src/report.rs +++ b/src/report.rs @@ -229,12 +229,14 @@ impl Report { /// we do benchmarks in CI. pub fn to_bench_file(&self) -> eyre::Result { let elapsed = match (&self.execution_result, &self.proving_result) { - (Some(Ok(_execution_duration)), Some(Ok(proving_duration))) => proving_duration.as_secs_f64(), + (Some(Ok(_execution_duration)), Some(Ok(proving_duration))) => { + proving_duration.as_secs_f64() + } (Some(Ok(execution_duration)), None) => execution_duration.as_secs_f64(), (None, Some(Ok(proving_duration))) => proving_duration.as_secs_f64(), (None, None) => { return Err(eyre::Error::msg( - "Cannot create benchmark file: No execution or proving result available" + "Cannot create benchmark file: No execution or proving result available", )); } (Some(Err(err)), _) | (_, Some(Err(err))) => { 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 23/28] 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 ac2356c3..c88b6192 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 24/28] 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 00000000..f4300b5a --- /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 78a9c01c..e80af03e 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 25/28] 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 f4300b5a..b4f3478d 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 92e5b844c5b7d244e83a0b47af3ebf5a7fc167a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 26 Nov 2025 16:53:13 -0300 Subject: [PATCH 26/28] fix --- .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 f75b6b95..092ab0be 100644 --- a/.github/actions/install-zisk/action.yml +++ b/.github/actions/install-zisk/action.yml @@ -7,8 +7,10 @@ runs: - name: Install ZisK shell: bash env: - GH_RUNNER: 1 + SETUP_KEY: none + ZISK_VERSION: 1.4.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 + echo "$HOME/.zisk/bin" >> $GITHUB_PATH From 018aaac228529b1e28f6f193dcdddea4613e4e30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 27 Nov 2025 10:59:13 -0300 Subject: [PATCH 27/28] Update ZISK_VERSION to 0.14.0 --- .github/actions/install-zisk/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/install-zisk/action.yml b/.github/actions/install-zisk/action.yml index 092ab0be..c9ad056d 100644 --- a/.github/actions/install-zisk/action.yml +++ b/.github/actions/install-zisk/action.yml @@ -8,7 +8,7 @@ runs: shell: bash env: SETUP_KEY: none - ZISK_VERSION: 1.4.1 + ZISK_VERSION: 0.14.0 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 From f31d12298db78c729126313c50653768d9f10bc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 27 Nov 2025 11:23:03 -0300 Subject: [PATCH 28/28] Update src/cli.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/cli.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli.rs b/src/cli.rs index 1803abdb..2ebf66f8 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}; use eyre::OptionExt; use std::{ cmp::max,