From e6658a2e0b3d48b14faf7325048dccc9f94ea5f4 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 25 Dec 2025 07:35:39 +0000 Subject: [PATCH 01/12] feat: verify slot-level state transition --- crates/executor/guest/src/error.rs | 5 ++ crates/executor/guest/src/executor.rs | 71 ++++++++++++++++++++++- crates/executor/guest/src/lib.rs | 3 +- crates/executor/host/tests/integration.rs | 2 +- 4 files changed, 76 insertions(+), 5 deletions(-) diff --git a/crates/executor/guest/src/error.rs b/crates/executor/guest/src/error.rs index 557bd8e..8093320 100644 --- a/crates/executor/guest/src/error.rs +++ b/crates/executor/guest/src/error.rs @@ -2,6 +2,7 @@ use alloy_primitives::{Address, FixedBytes}; use mpt::Error as MptError; use reth_consensus::ConsensusError; use reth_evm::execute::BlockExecutionError; +use revm_primitives::U256; #[derive(Debug, thiserror::Error)] pub enum ClientError { @@ -31,4 +32,8 @@ pub enum ClientError { FailedToReadGenesisFile(#[from] std::io::Error), #[error("Failed to deserialize the genesis file: {}", .0)] FailedToDeserializeGenesisFile(#[from] serde_json::Error), + #[error("Failed to check slot and value: {}", .0)] + FailedToCheckSlotAndValue(U256), + #[error("Failed to fetch slot and value: {}", .0)] + FailedToFetchSlotAndValue(U256), } diff --git a/crates/executor/guest/src/executor.rs b/crates/executor/guest/src/executor.rs index d8e9972..9d3a8de 100644 --- a/crates/executor/guest/src/executor.rs +++ b/crates/executor/guest/src/executor.rs @@ -12,9 +12,9 @@ use reth_evm::{ use reth_evm_ethereum::EthEvmConfig; use reth_execution_types::ExecutionOutcome; use reth_primitives_traits::Block; -use reth_trie::KeccakKeyHasher; -use revm::{database::WrapDatabaseRef, install_crypto}; -use revm_primitives::Address; +use reth_trie::{KeccakKeyHasher, TrieAccount, EMPTY_ROOT_HASH}; +use revm::{database::WrapDatabaseRef, install_crypto, DatabaseRef}; +use revm_primitives::{Address, HashMap, U256}; use crate::{ custom::{CustomCrypto, CustomEvmFactory}, @@ -32,6 +32,7 @@ pub const BLOCK_EXECUTION: &str = "block execution"; pub const VALIDATE_HEADER: &str = "validate header"; pub const VALIDATE_EXECUTION: &str = "validate block post-execution"; pub const COMPUTE_STATE_ROOT: &str = "compute state root"; +pub const CHECK_SLOT_AND_VALUE: &str = "check slot and value"; pub type EthClientExecutor = ClientExecutor, ChainSpec>; @@ -54,6 +55,7 @@ where pub fn execute( &self, mut input: ClientExecutorInput, + storage_info: Option>, ) -> Result<(Header, B256), ClientError> { let chain_id: u64 = (&input.genesis).try_into().expect("convert chain id err"); @@ -150,6 +152,69 @@ where requests_hash: input.current_block.header().requests_hash(), }; + if storage_info.is_some() { + let check_result: Result<(), ClientError> = profile_report!(CHECK_SLOT_AND_VALUE, { + let state = input.state(); + let db = { + for (hashed_address, storage_trie) in state.storage_tries.iter() { + let account = state + .state_trie + .get_rlp::(hashed_address.as_slice()) + .unwrap(); + let storage_root = account.map_or(EMPTY_ROOT_HASH, |a| a.storage_root); + if storage_root != storage_trie.hash() { + return Err(ClientError::MismatchedStorageRoot); + } + } + + let bytecodes_by_hash = input + .bytecodes() + .map(|code| (code.hash_slow(), code)) + .collect::>(); + + // Verify and build block hashes + let mut block_hashes: HashMap = + HashMap::with_hasher(Default::default()); + for (child_header, parent_header) in input.sealed_headers().tuple_windows() { + if parent_header.number() != child_header.number() - 1 { + return Err(ClientError::InvalidHeaderBlockNumber( + parent_header.number() + 1, + child_header.number(), + )); + } + + let parent_header_hash = parent_header.hash_slow(); + if parent_header_hash != child_header.parent_hash() { + return Err(ClientError::InvalidHeaderParentHash( + parent_header_hash, + child_header.parent_hash(), + )); + } + + block_hashes.insert(parent_header.number(), child_header.parent_hash()); + } + + TrieDB::new(state, block_hashes, bytecodes_by_hash) + }; + + for (contract_address, slot_id, expected_value) in storage_info.unwrap() { + match db.storage_ref(contract_address, slot_id) { + Ok(actual_value) => { + if actual_value != expected_value { + return Err(ClientError::FailedToCheckSlotAndValue(slot_id)); + } + } + _ => { + return Err(ClientError::FailedToFetchSlotAndValue(slot_id)); + } + } + } + Ok(()) + }); + if check_result.is_err() { + return Err(check_result.err().unwrap()); + } + } Ok((header, parent_state_root)) } } diff --git a/crates/executor/guest/src/lib.rs b/crates/executor/guest/src/lib.rs index bb754b7..85d8dbb 100644 --- a/crates/executor/guest/src/lib.rs +++ b/crates/executor/guest/src/lib.rs @@ -27,7 +27,8 @@ pub fn verify_block(input: &[u8]) -> (B256, B256, B256) { Arc::new((&input.genesis).try_into().unwrap()), input.custom_beneficiary, ); - let (header, prev_state_root) = executor.execute(input).expect("failed to execute client"); + let (header, prev_state_root) = + executor.execute(input, None).expect("failed to execute client"); let block_hash = header.hash_slow(); (block_hash, header.state_root, prev_state_root) } diff --git a/crates/executor/host/tests/integration.rs b/crates/executor/host/tests/integration.rs index b246c31..19bc1c2 100644 --- a/crates/executor/host/tests/integration.rs +++ b/crates/executor/host/tests/integration.rs @@ -123,7 +123,7 @@ async fn run_e2e( .expect("failed to execute host"); // Execute the client. - client_executor.execute(client_input.clone()).expect("failed to execute client"); + client_executor.execute(client_input.clone(), None).expect("failed to execute client"); // Save the client input to a buffer. let buffer = bincode::serialize(&client_input).unwrap(); From 571296b8077cd9a690168f3e8cf3300f28c70ce8 Mon Sep 17 00:00:00 2001 From: eigmax Date: Fri, 9 Jan 2026 10:32:37 +0000 Subject: [PATCH 02/12] chore: polish interface --- crates/executor/guest/src/executor.rs | 6 +++--- crates/executor/guest/src/lib.rs | 2 +- crates/executor/host/tests/integration.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/executor/guest/src/executor.rs b/crates/executor/guest/src/executor.rs index 8affb26..910090f 100644 --- a/crates/executor/guest/src/executor.rs +++ b/crates/executor/guest/src/executor.rs @@ -56,7 +56,7 @@ where pub fn execute( &self, mut input: ClientExecutorInput, - storage_info: Option>, + storage_info: Vec<(Address, U256, U256)>, ) -> Result<(Header, B256), ClientError> { let chain_id: u64 = (&input.genesis).try_into().expect("convert chain id err"); @@ -154,7 +154,7 @@ where requests_hash: input.current_block.header().requests_hash(), }; - if storage_info.is_some() { + if !storage_info.is_empty() { let check_result: Result<(), ClientError> = profile_report!(CHECK_SLOT_AND_VALUE, { let state = input.state(); let db = { @@ -199,7 +199,7 @@ where TrieDB::new(state, block_hashes, bytecodes_by_hash) }; - for (contract_address, slot_id, expected_value) in storage_info.unwrap() { + for (contract_address, slot_id, expected_value) in storage_info { match db.storage_ref(contract_address, slot_id) { Ok(actual_value) => { if actual_value != expected_value { diff --git a/crates/executor/guest/src/lib.rs b/crates/executor/guest/src/lib.rs index 85d8dbb..3facb8c 100644 --- a/crates/executor/guest/src/lib.rs +++ b/crates/executor/guest/src/lib.rs @@ -28,7 +28,7 @@ pub fn verify_block(input: &[u8]) -> (B256, B256, B256) { input.custom_beneficiary, ); let (header, prev_state_root) = - executor.execute(input, None).expect("failed to execute client"); + executor.execute(input, vec![]).expect("failed to execute client"); let block_hash = header.hash_slow(); (block_hash, header.state_root, prev_state_root) } diff --git a/crates/executor/host/tests/integration.rs b/crates/executor/host/tests/integration.rs index 19bc1c2..8769933 100644 --- a/crates/executor/host/tests/integration.rs +++ b/crates/executor/host/tests/integration.rs @@ -123,7 +123,7 @@ async fn run_e2e( .expect("failed to execute host"); // Execute the client. - client_executor.execute(client_input.clone(), None).expect("failed to execute client"); + client_executor.execute(client_input.clone(), vec![]).expect("failed to execute client"); // Save the client input to a buffer. let buffer = bincode::serialize(&client_input).unwrap(); From 3acc2f71b15468ff60ff518553f7d94e57da72f5 Mon Sep 17 00:00:00 2001 From: Blake Hau <148928866+blake-pro@users.noreply.github.com> Date: Wed, 14 Jan 2026 16:26:55 +0800 Subject: [PATCH 03/12] feat(execution-witness): add support for goat testnet execution witness (#10) --- Cargo.lock | 1 + crates/executor/host/src/host_executor.rs | 5 +- crates/mpt/src/execution_witness.rs | 7 +-- crates/mpt/src/lib.rs | 11 +--- crates/storage/rpc-db/Cargo.toml | 3 +- .../storage/rpc-db/src/execution_witness.rs | 62 +++++++++++++------ 6 files changed, 57 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index feda82f..65cd62b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7269,6 +7269,7 @@ dependencies = [ "revm-database-interface", "revm-primitives", "revm-state", + "serde", "thiserror 1.0.69", "tokio", "tracing", diff --git a/crates/executor/host/src/host_executor.rs b/crates/executor/host/src/host_executor.rs index a8d7d23..a3db56e 100644 --- a/crates/executor/host/src/host_executor.rs +++ b/crates/executor/host/src/host_executor.rs @@ -76,6 +76,8 @@ impl HostExecutor { let chain_id: u64 = (&genesis).try_into().unwrap(); tracing::debug!("chain id: {}", chain_id); + let is_goat_testnet = is_goat_testnet(chain_id); + // Fetch the current block and the previous block from the provider. tracing::info!("[{}] fetching the current block and the previous block", block_number); let rpc_block = provider @@ -105,6 +107,7 @@ impl HostExecutor { debug_provider, block_number - 1, previous_block.header().state_root(), + is_goat_testnet, ) .await .map_err(HostError::RpcDbError)?; @@ -149,7 +152,7 @@ impl HostExecutor { &block, self.chain_spec.clone(), &execution_output, - is_goat_testnet(chain_id), + is_goat_testnet, )?; // Accumulate the logs bloom. diff --git a/crates/mpt/src/execution_witness.rs b/crates/mpt/src/execution_witness.rs index 48cb0d1..b740c74 100644 --- a/crates/mpt/src/execution_witness.rs +++ b/crates/mpt/src/execution_witness.rs @@ -1,6 +1,5 @@ -use alloy_primitives::{keccak256, map::HashMap, B256}; +use alloy_primitives::{keccak256, map::HashMap, Bytes, B256}; use alloy_rlp::Decodable; -use alloy_rpc_types_debug::ExecutionWitness; use reth_trie::TrieAccount; use crate::mpt::{resolve_nodes, MptNode, MptNodeData, MptNodeReference}; @@ -10,7 +9,7 @@ use crate::mpt::{resolve_nodes, MptNode, MptNodeData, MptNodeReference}; // NOTE: This method should be called outside zkVM! In general you construct tries, then // validate them inside zkVM. pub(crate) fn build_validated_tries( - witness: &ExecutionWitness, + state: &Vec, pre_state_root: B256, ) -> Result<(MptNode, HashMap), String> { // Step 1: Decode all RLP-encoded trie nodes and index by hash @@ -19,7 +18,7 @@ pub(crate) fn build_validated_tries( let mut node_by_hash: HashMap = HashMap::default(); let mut root_node: Option = None; - for encoded in &witness.state { + for encoded in state { let node = MptNode::decode(encoded).expect("Valid MPT node in witness"); let hash = keccak256(encoded); if hash == pre_state_root { diff --git a/crates/mpt/src/lib.rs b/crates/mpt/src/lib.rs index 97642df..44d0664 100644 --- a/crates/mpt/src/lib.rs +++ b/crates/mpt/src/lib.rs @@ -1,6 +1,4 @@ -#![cfg_attr(not(test), warn(unused_crate_dependencies))] - -use alloy_primitives::{keccak256, map::HashMap, Address, B256}; +use alloy_primitives::{keccak256, map::HashMap, Address, Bytes, B256}; use alloy_rpc_types::EIP1186AccountProofResponse; use reth_trie::{AccountProof, HashedPostState, HashedStorage, TrieAccount}; use serde::{Deserialize, Serialize}; @@ -73,12 +71,9 @@ impl EthereumState { } #[cfg(feature = "execution-witness")] - pub fn from_execution_witness( - witness: &alloy_rpc_types_debug::ExecutionWitness, - pre_state_root: B256, - ) -> Self { + pub fn from_execution_witness(state: &Vec, pre_state_root: B256) -> Self { let (state_trie, storage_tries) = - execution_witness::build_validated_tries(witness, pre_state_root).unwrap(); + execution_witness::build_validated_tries(state, pre_state_root).unwrap(); Self { state_trie, storage_tries } } diff --git a/crates/storage/rpc-db/Cargo.toml b/crates/storage/rpc-db/Cargo.toml index 4780e6c..cec1420 100644 --- a/crates/storage/rpc-db/Cargo.toml +++ b/crates/storage/rpc-db/Cargo.toml @@ -9,6 +9,7 @@ async-trait.workspace = true tokio.workspace = true thiserror.workspace = true tracing.workspace = true +serde.workspace = true mpt.workspace = true primitives.workspace = true @@ -33,7 +34,7 @@ alloy-trie = { workspace = true, optional = true, features = ["ethereum"] } [features] default = ["execution-witness"] execution-witness = [ - "dep:alloy-consensus", + "dep:alloy-consensus", "dep:alloy-rlp", "dep:alloy-trie", "alloy-provider/debug-api" diff --git a/crates/storage/rpc-db/src/execution_witness.rs b/crates/storage/rpc-db/src/execution_witness.rs index b7e5105..8b39982 100644 --- a/crates/storage/rpc-db/src/execution_witness.rs +++ b/crates/storage/rpc-db/src/execution_witness.rs @@ -1,7 +1,7 @@ use std::marker::PhantomData; -use alloy_consensus::Header; -use alloy_primitives::{map::HashMap, Address, B256}; +use alloy_consensus::{private::alloy_eips::BlockNumberOrTag, Header}; +use alloy_primitives::{map::HashMap, Address, Bytes, B256}; use alloy_provider::{ext::DebugApi, Network, Provider}; use alloy_rlp::Decodable; use alloy_trie::TrieAccount; @@ -11,9 +11,18 @@ use reth_storage_errors::ProviderError; use revm_database::{BundleState, DatabaseRef}; use revm_primitives::{keccak256, ruint::aliases::U256, StorageKey, StorageValue}; use revm_state::{AccountInfo, Bytecode}; +use serde::{Deserialize, Serialize}; use crate::{RpcDb, RpcDbError}; +#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] +pub struct ExecutionWitnessGoat { + pub state: Vec, + pub codes: Vec, + pub keys: Option>, + pub headers: Vec
, +} + #[derive(Debug)] pub struct ExecutionWitnessRpcDb { /// The provider which fetches data. @@ -30,23 +39,40 @@ pub struct ExecutionWitnessRpcDb { impl + Clone, N: Network> ExecutionWitnessRpcDb { /// Create a new [`ExecutionWitnessRpcDb`]. - pub async fn new(provider: P, block_number: u64, state_root: B256) -> Result { - let execution_witness = provider.debug_execution_witness((block_number + 1).into()).await?; - - let state = EthereumState::from_execution_witness(&execution_witness, state_root); - - let codes = execution_witness - .codes - .iter() - .map(|encoded| (keccak256(encoded), Bytecode::new_raw(encoded.clone()))) - .collect(); - - let ancestor_headers = execution_witness - .headers - .iter() - .map(|encoded| Header::decode(&mut encoded.as_ref()).unwrap()) - .map(|h| (h.number, h)) + pub async fn new( + provider: P, + block_number: u64, + state_root: B256, + is_goat_testnet: bool, + ) -> Result { + let (state, codes, headers) = if is_goat_testnet { + let execution_witness: ExecutionWitnessGoat = provider + .raw_request( + "debug_executionWitness".into(), + (BlockNumberOrTag::Number(block_number + 1),), + ) + .await?; + + (execution_witness.state, execution_witness.codes, execution_witness.headers) + } else { + let execution_witness = + provider.debug_execution_witness((block_number + 1).into()).await?; + let headers = execution_witness + .headers + .iter() + .map(|encoded| Header::decode(&mut encoded.as_ref()).unwrap()) + .collect(); + + (execution_witness.state, execution_witness.codes, headers) + }; + tracing::info!("fetch execution witness for block {}", block_number + 1); + + let state = EthereumState::from_execution_witness(&state, state_root); + let codes = codes + .into_iter() + .map(|encoded| (keccak256(&encoded), Bytecode::new_raw(encoded))) .collect(); + let ancestor_headers = headers.into_iter().map(|h| (h.number, h)).collect(); let db = Self { provider, state, codes, ancestor_headers, phantom: PhantomData }; From ab25a628d31439c24a7e3673c34319c546d2682c Mon Sep 17 00:00:00 2001 From: Blake Hau <148928866+blake-pro@users.noreply.github.com> Date: Thu, 15 Jan 2026 13:57:49 +0800 Subject: [PATCH 04/12] fix(execution-witness): preserve storage root when witness lacks storage trie (#11) --- crates/mpt/src/lib.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/mpt/src/lib.rs b/crates/mpt/src/lib.rs index 44d0664..3cc9acc 100644 --- a/crates/mpt/src/lib.rs +++ b/crates/mpt/src/lib.rs @@ -88,7 +88,18 @@ impl EthereumState { .get(hashed_address) .cloned() .unwrap_or_else(|| HashedStorage::new(false)); - let storage_root = { + + let storage_root = if state_storage.is_empty() { + // Preserve the existing storage root when witness lacks the storage trie. + self.state_trie + .get_rlp::(hashed_address.as_slice()) + .ok() + .flatten() + .map(|existing| existing.storage_root) + .unwrap_or_else(|| { + self.storage_tries.entry(*hashed_address).or_default().hash() + }) + } else { let storage_trie = self.storage_tries.entry(*hashed_address).or_default(); if state_storage.wiped { From 403401c045c42a8681431ca7009bd57d62e1f1df Mon Sep 17 00:00:00 2001 From: Blake Date: Sat, 17 Jan 2026 00:24:47 +0800 Subject: [PATCH 05/12] fix(io): handle missing storage trie --- crates/executor/guest/src/io.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/crates/executor/guest/src/io.rs b/crates/executor/guest/src/io.rs index 63a4ccc..6fc21bb 100644 --- a/crates/executor/guest/src/io.rs +++ b/crates/executor/guest/src/io.rs @@ -151,16 +151,16 @@ impl DatabaseRef for TrieDB<'_> { let hashed_address = keccak256(address); let hashed_address = hashed_address.as_slice(); - let storage_trie = self - .inner - .storage_tries - .get(hashed_address) - .expect("A storage trie must be provided for each account"); - - Ok(storage_trie - .get_rlp::(keccak256(index.to_be_bytes::<32>()).as_slice()) - .expect("Can get from MPT") - .unwrap_or_default()) + let storage_trie = self.inner.storage_tries.get(hashed_address); + + if let Some(storage_trie) = storage_trie { + Ok(storage_trie + .get_rlp::(keccak256(index.to_be_bytes::<32>()).as_slice()) + .expect("Can get from MPT") + .unwrap_or_default()) + } else { + Ok(U256::ZERO) + } } /// Get block hash by block number. From 0b280a7cc8cd7c12bcf28a06fbdef3cb9a9ae196 Mon Sep 17 00:00:00 2001 From: Blake Date: Sat, 24 Jan 2026 13:17:20 +0800 Subject: [PATCH 06/12] feat: enhance state trie handling for precompile addresses --- Cargo.lock | 1 + bin/guest/Cargo.lock | 1 + crates/executor/guest/src/io.rs | 11 ++++-- crates/primitives/Cargo.toml | 1 + crates/primitives/src/lib.rs | 15 ++++++++ .../storage/rpc-db/src/execution_witness.rs | 38 +++++++++++-------- 6 files changed, 48 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 65cd62b..c8027a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5925,6 +5925,7 @@ version = "0.1.0" dependencies = [ "alloy-eips", "alloy-genesis", + "alloy-primitives", "alloy-rpc-types", "eyre", "reth-chainspec", diff --git a/bin/guest/Cargo.lock b/bin/guest/Cargo.lock index 4d5f5f8..7c10cfc 100644 --- a/bin/guest/Cargo.lock +++ b/bin/guest/Cargo.lock @@ -2619,6 +2619,7 @@ version = "0.1.0" dependencies = [ "alloy-eips", "alloy-genesis", + "alloy-primitives", "alloy-rpc-types", "eyre", "reth-chainspec", diff --git a/crates/executor/guest/src/io.rs b/crates/executor/guest/src/io.rs index 6fc21bb..59465e8 100644 --- a/crates/executor/guest/src/io.rs +++ b/crates/executor/guest/src/io.rs @@ -1,10 +1,11 @@ use std::iter::once; +use crate::error::ClientError; use alloy_consensus::{Block, BlockHeader, Header}; use alloy_primitives::map::HashMap; use itertools::Itertools; use mpt::EthereumState; -use primitives::genesis::Genesis; +use primitives::{genesis::Genesis, is_precompile}; use reth_errors::ProviderError; use reth_ethereum_primitives::EthPrimitives; use reth_primitives_traits::{NodePrimitives, SealedHeader}; @@ -17,8 +18,6 @@ use revm_primitives::{keccak256, Address, B256, U256}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; -use crate::error::ClientError; - pub type EthClientExecutorInput = ClientExecutorInput; #[cfg(feature = "optimism")] @@ -129,7 +128,11 @@ impl DatabaseRef for TrieDB<'_> { let hashed_address = keccak256(address); let hashed_address = hashed_address.as_slice(); - let account_in_trie = self.inner.state_trie.get_rlp::(hashed_address).unwrap(); + let account_in_trie = match self.inner.state_trie.get_rlp::(hashed_address) { + Ok(res) => res, + Err(mpt::Error::NodeNotResolved(_)) if is_precompile(address) => None, + Err(err) => return Err(ProviderError::TrieWitnessError(err.to_string())), + }; let account = account_in_trie.map(|account_in_trie| AccountInfo { balance: account_in_trie.balance, diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index b2ae76d..8ec58aa 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -15,6 +15,7 @@ reth-chainspec.workspace = true reth-optimism-chainspec = { workspace = true, optional = true } reth-optimism-forks = { workspace = true, optional = true } reth-trie.workspace = true +alloy-primitives.workspace = true # alloy alloy-eips.workspace = true diff --git a/crates/primitives/src/lib.rs b/crates/primitives/src/lib.rs index f9134c8..ae00da4 100644 --- a/crates/primitives/src/lib.rs +++ b/crates/primitives/src/lib.rs @@ -4,7 +4,22 @@ pub mod account_proof; pub mod chain_spec; pub mod genesis; +use alloy_primitives::Address; + #[inline] pub fn is_goat_testnet(chain_id: u64) -> bool { chain_id == 48816 } + +#[inline] +pub fn is_precompile(address: Address) -> bool { + let bytes = address.as_slice(); + // Check if the first 19 bytes are zero. + if !bytes[..19].iter().all(|&b| b == 0) { + return false; + } + // Check if the last byte is non-zero (so it is not the zero address). + let last = bytes[19]; + + last > 0 +} diff --git a/crates/storage/rpc-db/src/execution_witness.rs b/crates/storage/rpc-db/src/execution_witness.rs index 8b39982..02c2c50 100644 --- a/crates/storage/rpc-db/src/execution_witness.rs +++ b/crates/storage/rpc-db/src/execution_witness.rs @@ -1,5 +1,6 @@ use std::marker::PhantomData; +use crate::{RpcDb, RpcDbError}; use alloy_consensus::{private::alloy_eips::BlockNumberOrTag, Header}; use alloy_primitives::{map::HashMap, Address, Bytes, B256}; use alloy_provider::{ext::DebugApi, Network, Provider}; @@ -7,14 +8,13 @@ use alloy_rlp::Decodable; use alloy_trie::TrieAccount; use async_trait::async_trait; use mpt::EthereumState; +use primitives::is_precompile; use reth_storage_errors::ProviderError; use revm_database::{BundleState, DatabaseRef}; use revm_primitives::{keccak256, ruint::aliases::U256, StorageKey, StorageValue}; use revm_state::{AccountInfo, Bytecode}; use serde::{Deserialize, Serialize}; -use crate::{RpcDb, RpcDbError}; - #[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] pub struct ExecutionWitnessGoat { pub state: Vec, @@ -85,23 +85,31 @@ impl + Clone, N: Network> DatabaseRef for ExecutionWitnessRpcDb

Result, Self::Error> { let hash = keccak256(address); - if let Some(mut bytes) = self + match self .state .state_trie .get(hash.as_ref()) - .map_err(|err| ProviderError::TrieWitnessError(err.to_string()))? + .map_err(|err| ProviderError::TrieWitnessError(err.to_string())) { - let account = TrieAccount::decode(&mut bytes)?; - let account_info = AccountInfo { - balance: account.balance, - nonce: account.nonce, - code_hash: account.code_hash, - code: None, - }; - - Ok(Some(account_info)) - } else { - Ok(None) + Ok(Some(mut bytes)) => { + let account = TrieAccount::decode(&mut bytes)?; + let account_info = AccountInfo { + balance: account.balance, + nonce: account.nonce, + code_hash: account.code_hash, + code: None, + }; + + Ok(Some(account_info)) + } + Ok(None) => Ok(None), + Err(err) => { + // If the account is a precompile, we can assume it's empty. + if is_precompile(address) { + return Ok(None); + } + Err(err) + } } } From 294aa06127be4bfda47a7fd4905b93bb8e664dca Mon Sep 17 00:00:00 2001 From: Blake Hau <148928866+blake-pro@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:15:22 +0800 Subject: [PATCH 07/12] Fix/empty accounts (#12) * fix: enhance fallback mechanism for incomplete witness data * fix: include bytecode retrieval in RPC fallback logic * chore: clean up redundant lines in fallback address proof logic * update Cargo.lock --- Cargo.lock | 744 +++++++++--------- crates/mpt/src/mpt.rs | 4 +- .../storage/rpc-db/src/execution_witness.rs | 155 +++- 3 files changed, 516 insertions(+), 387 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c8027a2..a3102c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -78,9 +78,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.24" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b163ff4acf0eac29af05a911397cc418a76e153467b859398adc26cb9335a611" +checksum = "90f374d3c6d729268bbe2d0e0ff992bb97898b2df756691a62ee1d5f0506bc39" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -98,7 +98,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "alloy-tx-macros", "auto_impl", "c-kzg", @@ -111,7 +111,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -137,7 +137,7 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -164,7 +164,7 @@ dependencies = [ "k256", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -185,7 +185,7 @@ dependencies = [ "serde", "serde_with", "sha2", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -205,7 +205,7 @@ dependencies = [ "op-alloy-consensus", "op-revm", "revm", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -216,7 +216,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-serde", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "serde", "serde_with", ] @@ -256,7 +256,7 @@ dependencies = [ "http 1.4.0", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -282,7 +282,7 @@ dependencies = [ "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -311,7 +311,7 @@ dependencies = [ "op-alloy-consensus", "op-revm", "revm", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -338,7 +338,7 @@ dependencies = [ "derive_more 2.1.1", "foldhash 0.2.0", "hashbrown 0.16.1", - "indexmap 2.12.1", + "indexmap 2.13.0", "itoa", "k256", "keccak-asm", @@ -388,7 +388,7 @@ dependencies = [ "reqwest 0.12.28", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "url", @@ -411,16 +411,16 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.2", + "tower 0.5.3", "tracing", "wasmtimer", ] [[package]] name = "alloy-rlp" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" +checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -429,13 +429,13 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" +checksum = "ce8849c74c9ca0f5a03da1c865e3eb6f768df816e67dd3721a398a8a7e398011" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -456,7 +456,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.2", + "tower 0.5.3", "tracing", "url", "wasmtimer", @@ -524,7 +524,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -537,7 +537,7 @@ dependencies = [ "alloy-serde", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -561,14 +561,14 @@ dependencies = [ "either", "elliptic-curve", "k256", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-signer" -version = "1.2.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acff6b251740ef473932386d3b71657d3825daebf2217fb41a7ef676229225d4" +checksum = "1bea4c8f30eddb11d7ab56e83e49c814655daa78ca708df26c300c10d0189cbc" dependencies = [ "alloy-primitives", "async-trait", @@ -576,46 +576,46 @@ dependencies = [ "either", "elliptic-curve", "k256", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-sol-macro" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09eb18ce0df92b4277291bbaa0ed70545d78b02948df756bbd3d6214bf39a218" +checksum = "f5fa1ca7e617c634d2bd9fa71f9ec8e47c07106e248b9fcbd3eaddc13cabd625" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95d9fa2daf21f59aa546d549943f10b5cce1ae59986774019fbedae834ffe01b" +checksum = "27c00c0c3a75150a9dc7c8c679ca21853a137888b4e1c5569f92d7e2b15b5102" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.12.1", + "indexmap 2.13.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.112", + "sha3", + "syn 2.0.114", "syn-solidity", - "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9396007fe69c26ee118a19f4dee1f5d1d6be186ea75b3881adf16d87f8444686" +checksum = "297db260eb4d67c105f68d6ba11b8874eec681caec5505eab8fbebee97f790bc" dependencies = [ "const-hex", "dunce", @@ -623,15 +623,15 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af67a0b0dcebe14244fc92002cd8d96ecbf65db4639d479f5fcd5805755a4c27" +checksum = "94b91b13181d3bcd23680fd29d7bc861d1f33fbe90fdd0af67162434aeba902d" dependencies = [ "serde", "winnow", @@ -664,9 +664,9 @@ dependencies = [ "parking_lot 0.12.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", - "tower 0.5.2", + "tower 0.5.3", "tracing", "url", "wasmtimer", @@ -681,7 +681,7 @@ dependencies = [ "alloy-transport", "reqwest 0.12.28", "serde_json", - "tower 0.5.2", + "tower 0.5.3", "tracing", "url", ] @@ -695,7 +695,7 @@ dependencies = [ "alloy-transport", "futures", "http 1.4.0", - "rustls 0.23.35", + "rustls 0.23.36", "serde_json", "tokio", "tokio-tungstenite 0.26.2", @@ -721,17 +721,18 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b77b56af09ead281337d06b1d036c88e2dc8a2e45da512a532476dbee94912b" +checksum = "4d7fd448ab0a017de542de1dcca7a58e7019fe0e7a34ed3f9543ebddf6aceffa" dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", "derive_more 2.1.1", - "nybbles 0.4.6", + "nybbles 0.4.8", "serde", "smallvec", + "thiserror 2.0.18", "tracing", ] @@ -744,7 +745,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -817,9 +818,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" [[package]] name = "ark-bls12-381" @@ -950,7 +951,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -988,7 +989,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -1048,7 +1049,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -1124,7 +1125,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -1135,7 +1136,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -1173,7 +1174,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -1238,7 +1239,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper 1.0.2", "tokio", - "tower 0.5.2", + "tower 0.5.3", "tower-layer", "tower-service", "tracing", @@ -1324,9 +1325,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.1" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "bech32" @@ -1366,7 +1367,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -1454,13 +1455,13 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.1", + "constant_time_eq 0.4.2", ] [[package]] @@ -1540,7 +1541,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -1567,9 +1568,9 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" dependencies = [ "bytemuck_derive", ] @@ -1582,7 +1583,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -1593,9 +1594,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] @@ -1684,9 +1685,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.51" +version = "1.2.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" +checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" dependencies = [ "find-msvc-tools", "jobserver", @@ -1717,9 +1718,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" dependencies = [ "iana-time-zone", "num-traits", @@ -1750,9 +1751,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.53" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" +checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" dependencies = [ "clap_builder", "clap_derive", @@ -1760,9 +1761,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.53" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" +checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" dependencies = [ "anstream", "anstyle", @@ -1772,21 +1773,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.49" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] name = "clap_lex" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" [[package]] name = "codepage" @@ -1914,9 +1915,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "convert_case" @@ -2099,7 +2100,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2124,7 +2125,7 @@ dependencies = [ "quote", "serde", "strsim 0.11.1", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2135,7 +2136,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2232,9 +2233,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "der" @@ -2276,7 +2277,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2305,7 +2306,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2318,7 +2319,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.112", + "syn 2.0.114", "unicode-xid", ] @@ -2405,7 +2406,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2461,7 +2462,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2552,7 +2553,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2573,7 +2574,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2593,7 +2594,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2780,7 +2781,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.112", + "syn 2.0.114", "toml", "walkdir", ] @@ -2798,7 +2799,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -2824,7 +2825,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.112", + "syn 2.0.114", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -3047,9 +3048,9 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "find-msvc-tools" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixed-hash" @@ -3077,9 +3078,9 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.5" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", @@ -3209,7 +3210,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -3297,9 +3298,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", @@ -3433,7 +3434,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.12.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -3442,9 +3443,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -3452,7 +3453,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.4.0", - "indexmap 2.12.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -3873,7 +3874,7 @@ dependencies = [ "bytes", "futures-channel", "futures-core", - "h2 0.4.12", + "h2 0.4.13", "http 1.4.0", "http-body 1.0.1", "httparse", @@ -3909,12 +3910,12 @@ dependencies = [ "http 1.4.0", "hyper 1.8.1", "hyper-util", - "rustls 0.23.35", + "rustls 0.23.36", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", "tower-service", - "webpki-roots 1.0.4", + "webpki-roots 1.0.6", ] [[package]] @@ -3947,14 +3948,13 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "base64 0.22.1", "bytes", "futures-channel", - "futures-core", "futures-util", "http 1.4.0", "http-body 1.0.1", @@ -3963,8 +3963,8 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.1", - "system-configuration 0.6.1", + "socket2 0.6.2", + "system-configuration 0.7.0", "tokio", "tower-service", "tracing", @@ -3973,9 +3973,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4138,7 +4138,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -4160,9 +4160,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -4292,9 +4292,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -4355,9 +4355,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +checksum = "b646a74e746cd25045aa0fd42f4f7f78aa6d119380182c7e63a5593c4ab8df6f" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -4417,9 +4417,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.178" +version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" [[package]] name = "libgit2-sys" @@ -4445,9 +4445,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" @@ -4554,7 +4554,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -4603,9 +4603,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "memuse" @@ -4811,9 +4811,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-integer" @@ -4900,7 +4900,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -4945,9 +4945,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" dependencies = [ "alloy-rlp", "cfg-if", @@ -5012,7 +5012,7 @@ dependencies = [ "derive_more 2.1.1", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5045,7 +5045,7 @@ dependencies = [ "op-alloy-consensus", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5060,7 +5060,7 @@ dependencies = [ "alloy-rpc-types-engine", "derive_more 2.1.1", "op-alloy-consensus", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5120,7 +5120,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -5516,7 +5516,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -5670,9 +5670,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.4" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", "ucd-trie", @@ -5685,7 +5685,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.12.1", + "indexmap 2.13.0", ] [[package]] @@ -5695,7 +5695,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset 0.5.7", - "indexmap 2.12.1", + "indexmap 2.13.0", ] [[package]] @@ -5759,7 +5759,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -5772,7 +5772,7 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -5810,7 +5810,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -5843,9 +5843,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "potential_utf" @@ -5894,7 +5894,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -5965,23 +5965,23 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] name = "proc-macro2" -version = "1.0.104" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "proptest" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" +checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", @@ -6054,7 +6054,7 @@ dependencies = [ "prost 0.13.5", "prost-types 0.13.5", "regex", - "syn 2.0.112", + "syn 2.0.114", "tempfile", ] @@ -6081,7 +6081,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -6141,9 +6141,9 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.35", - "socket2 0.6.1", - "thiserror 2.0.17", + "rustls 0.23.36", + "socket2 0.6.2", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -6161,10 +6161,10 @@ dependencies = [ "rand 0.9.2", "ring 0.17.14", "rustc-hash 2.1.1", - "rustls 0.23.35", + "rustls 0.23.36", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -6179,16 +6179,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.1", + "socket2 0.6.2", "tracing", "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] @@ -6224,7 +6224,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.5", "serde", ] @@ -6245,7 +6245,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -6254,14 +6254,14 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom 0.3.4", "serde", @@ -6273,7 +6273,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -6329,7 +6329,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "libredox", "thiserror 1.0.69", ] @@ -6351,14 +6351,14 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] name = "regex" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -6368,9 +6368,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -6379,9 +6379,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" [[package]] name = "reqwest" @@ -6437,7 +6437,7 @@ dependencies = [ "bytes", "encoding_rs", "futures-core", - "h2 0.4.12", + "h2 0.4.13", "http 1.4.0", "http-body 1.0.1", "http-body-util", @@ -6452,7 +6452,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.35", + "rustls 0.23.36", "rustls-pki-types", "serde", "serde_json", @@ -6461,14 +6461,14 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-rustls 0.26.4", - "tower 0.5.2", + "tower 0.5.3", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 1.0.4", + "webpki-roots 1.0.6", ] [[package]] @@ -6495,7 +6495,7 @@ dependencies = [ "anyhow", "async-trait", "futures", - "getrandom 0.2.16", + "getrandom 0.2.17", "http 1.4.0", "hyper 1.8.1", "parking_lot 0.11.2", @@ -6524,7 +6524,7 @@ dependencies = [ "alloy-evm", "alloy-genesis", "alloy-primitives", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "auto_impl", "derive_more 2.1.1", "reth-ethereum-forks", @@ -6542,7 +6542,7 @@ dependencies = [ "alloy-eips", "alloy-genesis", "alloy-primitives", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "bytes", "modular-bitfield", "op-alloy-consensus", @@ -6558,7 +6558,7 @@ source = "git+https://github.com/ziren-patches/reth?branch=patch-1.9.3#fb7e5b4b3 dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -6571,7 +6571,7 @@ dependencies = [ "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -6604,7 +6604,7 @@ dependencies = [ "reth-consensus", "reth-execution-errors", "reth-storage-errors", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -6703,9 +6703,9 @@ dependencies = [ "alloy-evm", "alloy-primitives", "alloy-rlp", - "nybbles 0.4.6", + "nybbles 0.4.8", "reth-storage-errors", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -6732,7 +6732,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", "url", ] @@ -6767,7 +6767,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "reth-chainspec", "reth-consensus", "reth-consensus-common", @@ -6780,7 +6780,7 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "revm", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -6808,7 +6808,7 @@ dependencies = [ "reth-primitives-traits", "reth-storage-errors", "revm", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -6850,7 +6850,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "auto_impl", "bytes", "derive_more 2.1.1", @@ -6863,7 +6863,7 @@ dependencies = [ "secp256k1", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -6874,7 +6874,7 @@ dependencies = [ "alloy-primitives", "derive_more 2.1.1", "strum 0.27.2", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -6932,7 +6932,7 @@ dependencies = [ "reth-prune-types", "reth-static-file-types", "revm-database-interface", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -6944,7 +6944,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "auto_impl", "itertools 0.14.0", "reth-execution-errors", @@ -6965,10 +6965,10 @@ dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "derive_more 2.1.1", "itertools 0.14.0", - "nybbles 0.4.6", + "nybbles 0.4.8", "rayon", "reth-primitives-traits", "revm-database", @@ -6981,7 +6981,7 @@ source = "git+https://github.com/ziren-patches/reth?branch=patch-1.9.3#fb7e5b4b3 dependencies = [ "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.2", + "alloy-trie 0.9.4", "auto_impl", "reth-execution-errors", "reth-primitives-traits", @@ -7215,7 +7215,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted 0.9.0", "windows-sys 0.52.0", @@ -7312,9 +7312,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustc-hash" @@ -7404,14 +7404,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.35" +version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" dependencies = [ "once_cell", "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.103.8", + "rustls-webpki 0.103.9", "subtle", "zeroize", ] @@ -7439,9 +7439,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "web-time", "zeroize", @@ -7459,9 +7459,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.8" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ "ring 0.17.14", "rustls-pki-types", @@ -7488,9 +7488,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "salsa20" @@ -7531,7 +7531,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -7566,9 +7566,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e910108742c57a770f492731f99be216a52fadd361b06c8fb59d74ccc267d2" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ "dyn-clone", "ref-cast", @@ -7754,14 +7754,14 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] name = "serde_json" -version = "1.0.148" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", @@ -7812,9 +7812,9 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.1", + "indexmap 2.13.0", "schemars 0.9.0", - "schemars 1.2.0", + "schemars 1.2.1", "serde_core", "serde_json", "serde_with_macros", @@ -7830,7 +7830,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -7857,11 +7857,12 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.2.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" +checksum = "0d0b343e184fc3b7bb44dff0705fffcf4b3756ba6aff420dddd8b24ca145e555" dependencies = [ - "futures", + "futures-executor", + "futures-util", "log", "once_cell", "parking_lot 0.12.5", @@ -7871,13 +7872,13 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.2.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" +checksum = "6f50427f258fb77356e4cd4aa0e87e2bd2c66dbcee41dc405282cae2bfc26c83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -7913,9 +7914,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +checksum = "b31139435f327c93c6038ed350ae4588e2c70a13d50599509fee6349967ba35a" dependencies = [ "cc", "cfg-if", @@ -7970,15 +7971,15 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint 0.4.6", "num-traits", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", ] [[package]] name = "siphasher" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "size" @@ -7988,9 +7989,9 @@ checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" @@ -8023,9 +8024,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" dependencies = [ "libc", "windows-sys 0.60.2", @@ -8137,7 +8138,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -8149,7 +8150,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -8207,9 +8208,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.112" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21f182278bf2d2bcb3c88b1b08a37df029d71ce3d3ae26168e3c653b213b99d4" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -8218,14 +8219,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f92d01b5de07eaf324f7fca61cc6bd3d82bbc1de5b6c963e6fe79e86f36580d" +checksum = "2379beea9476b89d0237078be761cf8e012d92d5ae4ae0c9a329f974838870fc" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -8251,7 +8252,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -8282,9 +8283,9 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ "bitflags 2.10.0", "core-foundation", @@ -8352,11 +8353,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -8367,18 +8368,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -8407,9 +8408,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", @@ -8417,22 +8418,22 @@ dependencies = [ "num-conv", "num_threads", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -8474,9 +8475,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ "bytes", "libc", @@ -8484,7 +8485,7 @@ dependencies = [ "parking_lot 0.12.5", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "socket2 0.6.2", "tokio-macros", "windows-sys 0.61.2", ] @@ -8507,7 +8508,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -8547,15 +8548,15 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.35", + "rustls 0.23.36", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -8586,7 +8587,7 @@ checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "rustls 0.23.35", + "rustls 0.23.36", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", @@ -8596,9 +8597,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.17" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -8643,7 +8644,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -8657,7 +8658,7 @@ version = "0.23.10+spec-1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "winnow", @@ -8748,9 +8749,9 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", @@ -8775,7 +8776,7 @@ dependencies = [ "http-body 1.0.1", "iri-string", "pin-project-lite", - "tower 0.5.2", + "tower 0.5.3", "tower-layer", "tower-service", ] @@ -8812,7 +8813,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -8925,10 +8926,10 @@ dependencies = [ "httparse", "log", "rand 0.9.2", - "rustls 0.23.35", + "rustls 0.23.36", "rustls-pki-types", "sha1", - "thiserror 2.0.17", + "thiserror 2.0.18", "utf-8", ] @@ -8959,7 +8960,7 @@ dependencies = [ "serde_json", "thiserror 1.0.69", "tokio", - "tower 0.5.2", + "tower 0.5.3", "url", ] @@ -8995,9 +8996,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" [[package]] name = "unicode-segmentation" @@ -9041,9 +9042,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", @@ -9075,34 +9076,22 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "serde", ] [[package]] name = "uuid" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" +checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" dependencies = [ "getrandom 0.3.4", "js-sys", "rand 0.9.2", - "uuid-macro-internal", "wasm-bindgen", ] -[[package]] -name = "uuid-macro-internal" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d11901c36b3650df7acb0f9ebe624f35b5ac4e1922ecd3c57f444648429594" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.112", -] - [[package]] name = "valuable" version = "0.1.1" @@ -9179,18 +9168,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", @@ -9201,11 +9190,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -9214,9 +9204,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9224,22 +9214,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] @@ -9288,9 +9278,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" dependencies = [ "js-sys", "wasm-bindgen", @@ -9328,14 +9318,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.4", + "webpki-roots 1.0.6", ] [[package]] name = "webpki-roots" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" dependencies = [ "rustls-pki-types", ] @@ -9429,7 +9419,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -9440,7 +9430,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -9730,9 +9720,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "witness-db" @@ -9765,7 +9755,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper 0.6.0", - "thiserror 2.0.17", + "thiserror 2.0.18", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -9814,28 +9804,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.31" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.31" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -9855,7 +9845,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", "synstructure", ] @@ -9876,7 +9866,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -9909,7 +9899,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.112", + "syn 2.0.114", ] [[package]] @@ -9961,8 +9951,8 @@ dependencies = [ [[package]] name = "zkm-build" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "anyhow", "cargo_metadata", @@ -9972,8 +9962,8 @@ dependencies = [ [[package]] name = "zkm-core-executor" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "anyhow", "bincode", @@ -10010,8 +10000,8 @@ dependencies = [ [[package]] name = "zkm-core-machine" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "bincode", "cfg-if", @@ -10062,8 +10052,8 @@ dependencies = [ [[package]] name = "zkm-cuda" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "bincode", "ctrlc", @@ -10080,8 +10070,8 @@ dependencies = [ [[package]] name = "zkm-curves" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "cfg-if", "curve25519-dalek", @@ -10104,8 +10094,8 @@ dependencies = [ [[package]] name = "zkm-derive" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "quote", "syn 1.0.109", @@ -10113,8 +10103,8 @@ dependencies = [ [[package]] name = "zkm-lib" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "bincode", "cfg-if", @@ -10126,8 +10116,8 @@ dependencies = [ [[package]] name = "zkm-primitives" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "bincode", "hex", @@ -10144,8 +10134,8 @@ dependencies = [ [[package]] name = "zkm-prover" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "anyhow", "bincode", @@ -10182,8 +10172,8 @@ dependencies = [ [[package]] name = "zkm-recursion-circuit" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", @@ -10215,8 +10205,8 @@ dependencies = [ [[package]] name = "zkm-recursion-compiler" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "backtrace", "itertools 0.13.0", @@ -10236,8 +10226,8 @@ dependencies = [ [[package]] name = "zkm-recursion-core" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "backtrace", "ff 0.13.1", @@ -10273,8 +10263,8 @@ dependencies = [ [[package]] name = "zkm-recursion-derive" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "quote", "syn 1.0.109", @@ -10282,8 +10272,8 @@ dependencies = [ [[package]] name = "zkm-recursion-gnark-ffi" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "anyhow", "bincode", @@ -10306,11 +10296,11 @@ dependencies = [ [[package]] name = "zkm-sdk" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "alloy-primitives", - "alloy-signer 1.2.1", + "alloy-signer 1.6.1", "anyhow", "async-trait", "bincode", @@ -10340,7 +10330,7 @@ dependencies = [ "tonic-build", "tracing", "twirp-rs", - "uuid 1.19.0", + "uuid 1.20.0", "vergen", "zkm-build", "zkm-core-executor", @@ -10353,8 +10343,8 @@ dependencies = [ [[package]] name = "zkm-stark" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "arrayref", "hashbrown 0.14.5", @@ -10395,12 +10385,12 @@ dependencies = [ [[package]] name = "zkm-zkvm" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.4" +source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" dependencies = [ "bincode", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "lazy_static", "libm", "rand 0.8.5", @@ -10412,9 +10402,9 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.5" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3280a1b827474fcd5dbef4b35a674deb52ba5c312363aef9135317df179d81b" +checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" [[package]] name = "zstd" diff --git a/crates/mpt/src/mpt.rs b/crates/mpt/src/mpt.rs index 9fb7b35..5b6a169 100644 --- a/crates/mpt/src/mpt.rs +++ b/crates/mpt/src/mpt.rs @@ -926,7 +926,7 @@ pub fn to_nibs(slice: &[u8]) -> Vec { /// bytes. pub fn to_encoded_path(mut nibs: &[u8], is_leaf: bool) -> Vec { let mut prefix = (is_leaf as u8) * 0x20; - if nibs.len() % 2 != 0 { + if !nibs.len().is_multiple_of(2) { prefix += 0x10 + nibs[0]; nibs = &nibs[1..]; } @@ -986,7 +986,7 @@ pub fn mpt_from_proof(proof_nodes: &[MptNode]) -> Result, } -#[derive(Debug)] pub struct ExecutionWitnessRpcDb { /// The provider which fetches data. pub provider: P, - /// The cached state. + /// The cached state (may be incomplete for fallback accounts). pub state: EthereumState, /// The cached bytecodes. pub codes: HashMap, - + /// Ancestor headers for BLOCKHASH opcode. pub ancestor_headers: HashMap, + /// The parent block number (for RPC fallback queries). + parent_block_number: u64, + /// The state root used to build the EthereumState. + state_root: B256, + /// The original witness state nodes (for rebuilding with additional proofs). + raw_state_nodes: Vec, + /// Addresses that needed RPC fallback due to incomplete witness. + fallback_addresses: RwLock>, phantom: PhantomData, } +impl std::fmt::Debug for ExecutionWitnessRpcDb { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("ExecutionWitnessRpcDb") + .field("provider", &self.provider) + .field("state", &self.state) + .field("codes", &self.codes) + .field("ancestor_headers", &self.ancestor_headers) + .field("parent_block_number", &self.parent_block_number) + .field("state_root", &self.state_root) + .field("raw_state_nodes_len", &self.raw_state_nodes.len()) + .field("fallback_addresses", &*self.fallback_addresses.read().unwrap()) + .finish() + } +} + impl + Clone, N: Network> ExecutionWitnessRpcDb { /// Create a new [`ExecutionWitnessRpcDb`]. pub async fn new( @@ -45,7 +67,7 @@ impl + Clone, N: Network> ExecutionWitnessRpcDb { state_root: B256, is_goat_testnet: bool, ) -> Result { - let (state, codes, headers) = if is_goat_testnet { + let (state_nodes, codes, headers) = if is_goat_testnet { let execution_witness: ExecutionWitnessGoat = provider .raw_request( "debug_executionWitness".into(), @@ -67,17 +89,117 @@ impl + Clone, N: Network> ExecutionWitnessRpcDb { }; tracing::info!("fetch execution witness for block {}", block_number + 1); - let state = EthereumState::from_execution_witness(&state, state_root); + let state = EthereumState::from_execution_witness(&state_nodes, state_root); let codes = codes .into_iter() .map(|encoded| (keccak256(&encoded), Bytecode::new_raw(encoded))) .collect(); let ancestor_headers = headers.into_iter().map(|h| (h.number, h)).collect(); - let db = Self { provider, state, codes, ancestor_headers, phantom: PhantomData }; + let db = Self { + provider, + state, + codes, + ancestor_headers, + parent_block_number: block_number, + state_root, + raw_state_nodes: state_nodes, + fallback_addresses: RwLock::new(Vec::new()), + phantom: PhantomData, + }; Ok(db) } + + /// Fetch account info via RPC when witness data is incomplete. + /// Records the address for later proof fetching. + fn fetch_account_via_rpc(&self, address: Address) -> Result, ProviderError> + where + P: Clone, + { + // Use tokio runtime to execute async RPC calls from sync context + let handle = tokio::runtime::Handle::current(); + let provider = self.provider.clone(); + let block_tag = BlockNumberOrTag::Number(self.parent_block_number); + + let result: Result<(U256, u64, Bytecode), Box> = + tokio::task::block_in_place(|| { + handle.block_on(async { + // Fetch balance, nonce and code in parallel + let balance_fut = provider.get_balance(address).block_id(block_tag.into()); + let nonce_fut = + provider.get_transaction_count(address).block_id(block_tag.into()); + let code_fut = provider.get_code_at(address).block_id(block_tag.into()); + + let (balance, nonce, code) = + tokio::try_join!(balance_fut, nonce_fut, code_fut)?; + let bytecode = Bytecode::new_raw(code); + + Ok((balance, nonce, bytecode)) + }) + }); + + match result { + Ok((balance, nonce, bytecode)) => { + // Record this address for proof fetching in state() + self.fallback_addresses.write().unwrap().push(address); + + // If balance, nonce and code are all zero/empty, treat as non-existent + if balance.is_zero() && nonce == 0 && bytecode.is_empty() { + tracing::debug!( + "RPC fallback: address {:?} has zero balance, nonce and empty code, treating as non-existent", + address + ); + Ok(None) + } else { + let code_hash = bytecode.hash_slow(); + tracing::debug!( + "RPC fallback: address {:?} has balance={}, nonce={}, code_hash={}", + address, + balance, + nonce, + code_hash + ); + Ok(Some(AccountInfo { balance, nonce, code_hash, code: Some(bytecode) })) + } + } + Err(err) => { + tracing::error!("RPC fallback failed for address {:?}: {}", address, err); + Err(ProviderError::TrieWitnessError(format!("RPC fallback failed: {}", err))) + } + } + } + + /// Fetches proofs for fallback addresses and returns merged state nodes. + async fn get_merged_state_nodes(&self) -> Result, RpcDbError> + where + P: Clone, + { + let fallback_addrs: Vec

= self.fallback_addresses.read().unwrap().clone(); + if fallback_addrs.is_empty() { + return Ok(self.raw_state_nodes.clone()); + } + tracing::info!( + "Fetching proofs for {} fallback addresses to complete witness", + fallback_addrs.len() + ); + + let block_tag = BlockNumberOrTag::Number(self.parent_block_number); + let mut merged_nodes = self.raw_state_nodes.clone(); + for address in fallback_addrs { + // Fetch the account proof via eth_getProof + let proof = self.provider.get_proof(address, vec![]).block_id(block_tag.into()).await?; + let node_count = proof.account_proof.len(); + // Add proof nodes to the merged list + for node in proof.account_proof { + merged_nodes.push(node); + } + + tracing::debug!("Added {} proof nodes for address {:?}", node_count, address); + } + + Ok(merged_nodes) + } } impl + Clone, N: Network> DatabaseRef for ExecutionWitnessRpcDb { @@ -108,6 +230,17 @@ impl + Clone, N: Network> DatabaseRef for ExecutionWitnessRpcDb

Result { - Ok(self.state.clone()) + // Merge original witness nodes with proofs for fallback addresses + let merged_nodes = self.get_merged_state_nodes().await?; + + // Rebuild EthereumState with complete witness data + let state = EthereumState::from_execution_witness(&merged_nodes, self.state_root); + + Ok(state) } fn bytecodes(&self) -> Vec { From eee4dbfbdb7734d2785d58f95de84393dbb9009e Mon Sep 17 00:00:00 2001 From: Blake <0xblake.sg@gmail.com> Date: Fri, 14 Aug 2026 23:17:09 +0800 Subject: [PATCH 08/12] Update zkm dependencies to v1.2.7 --- Cargo.lock | 328 ++++++++++++++++++++++++++++--------------- Cargo.toml | 8 +- bin/guest/Cargo.lock | 61 ++++++-- bin/guest/Cargo.toml | 2 +- 4 files changed, 262 insertions(+), 137 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a3102c1..40b9f36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,7 +46,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -274,7 +274,7 @@ dependencies = [ "alloy-rpc-types-any", "alloy-rpc-types-eth", "alloy-serde", - "alloy-signer 1.0.41", + "alloy-signer", "alloy-sol-types", "async-trait", "auto_impl", @@ -329,7 +329,7 @@ dependencies = [ [[package]] name = "alloy-primitives" version = "1.4.1" -source = "git+https://github.com/ziren-patches/core.git?branch=patch-alloy-primitives-1.4.1#59313700f710f1373a5b4cdc05c51dc3227d8064" +source = "git+https://github.com/ziren-patches/core.git?branch=patch-alloy-primitives-1.4.1#0d034202c9977acd601399efdd9c30fd1c1a08a0" dependencies = [ "alloy-rlp", "bytes", @@ -370,7 +370,7 @@ dependencies = [ "alloy-rpc-types-debug", "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-signer 1.0.41", + "alloy-signer", "alloy-sol-types", "alloy-transport", "alloy-transport-http", @@ -564,21 +564,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "alloy-signer" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bea4c8f30eddb11d7ab56e83e49c814655daa78ca708df26c300c10d0189cbc" -dependencies = [ - "alloy-primitives", - "async-trait", - "auto_impl", - "either", - "elliptic-curve", - "k256", - "thiserror 2.0.18", -] - [[package]] name = "alloy-sol-macro" version = "1.5.4" @@ -773,7 +758,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", - "anstyle-parse", + "anstyle-parse 0.2.7", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse 1.0.0", "anstyle-query", "anstyle-wincon", "colorchoice", @@ -796,13 +796,22 @@ dependencies = [ "utf8parse", ] +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + [[package]] name = "anstyle-query" version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -813,7 +822,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -1359,7 +1368,7 @@ dependencies = [ "bitflags 2.10.0", "cexpr", "clang-sys", - "itertools 0.13.0", + "itertools 0.11.0", "log", "prettyplease 0.2.37", "proc-macro2", @@ -1464,6 +1473,20 @@ dependencies = [ "constant_time_eq 0.4.2", ] +[[package]] +name = "blake3" +version = "1.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ae7bad254120e9e4c63bafc385310756f90c484eac0e36b8317cf09cb92a77" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq 0.4.2", + "cpufeatures 0.3.0", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -1498,7 +1521,7 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/ziren-patches/bls12_381?branch=patch-0.8.0#bcf9397426410acc171ad625416b508dc913be8e" +source = "git+https://github.com/ziren-patches/bls12_381?branch=patch-0.8.0#97b215f80e9bfab9ad6641e41b005b6d8e58f748" dependencies = [ "cfg-if", "ff 0.13.1", @@ -1765,7 +1788,7 @@ version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" dependencies = [ - "anstream", + "anstream 0.6.21", "anstyle", "clap_lex", "strsim 0.11.1", @@ -1876,7 +1899,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "proptest", "serde_core", ] @@ -1953,6 +1976,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc" version = "3.4.0" @@ -2084,7 +2116,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "curve25519-dalek-derive", "fiat-crypto", "rustc_version 0.4.1", @@ -2237,6 +2269,37 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" +[[package]] +name = "defmt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror 2.0.18", +] + [[package]] name = "der" version = "0.7.10" @@ -2597,6 +2660,29 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "env_filter" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" +dependencies = [ + "anstream 1.0.0", + "anstyle", + "env_filter", + "jiff", + "log", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -2610,7 +2696,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -4280,6 +4366,42 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +[[package]] +name = "jiff" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" +dependencies = [ + "defmt", + "jiff-core", + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +dependencies = [ + "defmt", +] + +[[package]] +name = "jiff-static" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" +dependencies = [ + "jiff-core", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "jobserver" version = "0.1.34" @@ -4331,7 +4453,7 @@ dependencies = [ [[package]] name = "k256" version = "0.13.4" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-k256-0.13.4#8266b228a39402a0ba68d644b7f26b85b5112fe3" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-k256-0.13.4#6ad84b9b604911c6f5dd353b88c04927d2739a32" dependencies = [ "cfg-if", "ecdsa", @@ -4350,7 +4472,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -4761,7 +4883,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -5025,7 +5147,7 @@ dependencies = [ "alloy-primitives", "alloy-provider", "alloy-rpc-types-eth", - "alloy-signer 1.0.41", + "alloy-signer", "op-alloy-consensus", "op-alloy-rpc-types", ] @@ -5150,7 +5272,7 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "p256" version = "0.13.2" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#88d42225abcb639b9bd3a930ac5a14f2262541c8" dependencies = [ "ecdsa", "elliptic-curve", @@ -5847,6 +5969,15 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +[[package]] +name = "portable-atomic-util" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] + [[package]] name = "potential_utf" version = "0.1.4" @@ -5900,7 +6031,7 @@ dependencies = [ [[package]] name = "primeorder" version = "0.13.1" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#88d42225abcb639b9bd3a930ac5a14f2262541c8" dependencies = [ "elliptic-curve", ] @@ -7375,7 +7506,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -7534,15 +7665,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "scc" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" -dependencies = [ - "sdd", -] - [[package]] name = "schannel" version = "0.1.28" @@ -7604,12 +7726,6 @@ dependencies = [ "untrusted 0.9.0", ] -[[package]] -name = "sdd" -version = "3.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" - [[package]] name = "sec1" version = "0.7.3" @@ -7855,32 +7971,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serial_test" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0b343e184fc3b7bb44dff0705fffcf4b3756ba6aff420dddd8b24ca145e555" -dependencies = [ - "futures-executor", - "futures-util", - "log", - "once_cell", - "parking_lot 0.12.5", - "scc", - "serial_test_derive", -] - -[[package]] -name = "serial_test_derive" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f50427f258fb77356e4cd4aa0e87e2bd2c66dbcee41dc405282cae2bfc26c83" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "sha1" version = "0.10.6" @@ -7888,7 +7978,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -7898,7 +7988,7 @@ version = "0.10.9" source = "git+https://github.com/ziren-patches/RustCrypto-hashes?branch=patch-sha2-0.10.9#dbfdbd088ac7b55e03c0b9eb192278efe35d67dc" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -8156,7 +8246,7 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/ziren-patches/bn?branch=patch-0.6.0#aba71380457d798039111e6cc0fdf2e0718c6766" +source = "git+https://github.com/ziren-patches/bn?branch=patch-0.6.0#0dfeeb1b7bfc21941b6e4964d678abd094a54a6f" dependencies = [ "bytemuck", "byteorder", @@ -8328,7 +8418,7 @@ dependencies = [ "getrandom 0.3.4", "once_cell", "rustix 1.1.3", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -9370,7 +9460,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.48.0", ] [[package]] @@ -9951,8 +10041,8 @@ dependencies = [ [[package]] name = "zkm-build" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "anyhow", "cargo_metadata", @@ -9962,14 +10052,15 @@ dependencies = [ [[package]] name = "zkm-core-executor" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "anyhow", "bincode", "bytemuck", "elf", "enum-map", + "env_logger", "eyre", "hashbrown 0.14.5", "hex", @@ -9977,6 +10068,7 @@ dependencies = [ "log", "nohash-hasher", "num", + "num_enum", "p3-field", "p3-koala-bear", "p3-maybe-rayon", @@ -9991,6 +10083,7 @@ dependencies = [ "thiserror 1.0.69", "tiny-keccak", "tracing", + "tracing-subscriber", "typenum", "vec_map", "zkm-curves", @@ -10000,8 +10093,8 @@ dependencies = [ [[package]] name = "zkm-core-machine" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "bincode", "cfg-if", @@ -10052,8 +10145,8 @@ dependencies = [ [[package]] name = "zkm-cuda" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "bincode", "ctrlc", @@ -10070,8 +10163,8 @@ dependencies = [ [[package]] name = "zkm-curves" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "cfg-if", "curve25519-dalek", @@ -10094,17 +10187,18 @@ dependencies = [ [[package]] name = "zkm-derive" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ + "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "zkm-lib" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "bincode", "cfg-if", @@ -10116,10 +10210,11 @@ dependencies = [ [[package]] name = "zkm-primitives" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "bincode", + "blake3", "hex", "lazy_static", "num-bigint 0.4.6", @@ -10130,12 +10225,13 @@ dependencies = [ "p3-symmetric", "serde", "sha2", + "tracing", ] [[package]] name = "zkm-prover" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "anyhow", "bincode", @@ -10156,7 +10252,6 @@ dependencies = [ "rayon", "serde", "serde_json", - "serial_test", "thiserror 1.0.69", "tracing", "tracing-subscriber", @@ -10172,8 +10267,8 @@ dependencies = [ [[package]] name = "zkm-recursion-circuit" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", @@ -10205,8 +10300,8 @@ dependencies = [ [[package]] name = "zkm-recursion-compiler" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "backtrace", "itertools 0.13.0", @@ -10226,8 +10321,8 @@ dependencies = [ [[package]] name = "zkm-recursion-core" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "backtrace", "ff 0.13.1", @@ -10263,8 +10358,8 @@ dependencies = [ [[package]] name = "zkm-recursion-derive" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "quote", "syn 1.0.109", @@ -10272,8 +10367,8 @@ dependencies = [ [[package]] name = "zkm-recursion-gnark-ffi" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "anyhow", "bincode", @@ -10296,11 +10391,10 @@ dependencies = [ [[package]] name = "zkm-sdk" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "alloy-primitives", - "alloy-signer 1.6.1", "anyhow", "async-trait", "bincode", @@ -10343,8 +10437,8 @@ dependencies = [ [[package]] name = "zkm-stark" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "arrayref", "hashbrown 0.14.5", @@ -10385,8 +10479,8 @@ dependencies = [ [[package]] name = "zkm-zkvm" -version = "1.2.4" -source = "git+https://github.com/ProjectZKM/Ziren#2551aa251e34266a9e60bca0e440081b8b04f1e9" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "bincode", "cfg-if", diff --git a/Cargo.toml b/Cargo.toml index 157c07b..92d8cbd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,10 +47,10 @@ primitives = { path = "./crates/primitives" } provider = { path = "./crates/provider" } # Ziren -zkm-build = { git = "https://github.com/ProjectZKM/Ziren" } -zkm-core-executor = { git = "https://github.com/ProjectZKM/Ziren" } -zkm-prover = { git = "https://github.com/ProjectZKM/Ziren" } -zkm-sdk = { git = "https://github.com/ProjectZKM/Ziren" } +zkm-build = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } +zkm-core-executor = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } +zkm-prover = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } +zkm-sdk = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } # zkm-build = { path = "../Ziren/crates/build" } # zkm-core-executor = { path = "../Ziren/crates/core/executor" } diff --git a/bin/guest/Cargo.lock b/bin/guest/Cargo.lock index 7c10cfc..bc45963 100644 --- a/bin/guest/Cargo.lock +++ b/bin/guest/Cargo.lock @@ -252,7 +252,7 @@ dependencies = [ [[package]] name = "alloy-primitives" version = "1.4.1" -source = "git+https://github.com/ziren-patches/core.git?branch=patch-alloy-primitives-1.4.1#59313700f710f1373a5b4cdc05c51dc3227d8064" +source = "git+https://github.com/ziren-patches/core.git?branch=patch-alloy-primitives-1.4.1#0d034202c9977acd601399efdd9c30fd1c1a08a0" dependencies = [ "alloy-rlp", "bytes", @@ -893,6 +893,20 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake3" +version = "1.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ae7bad254120e9e4c63bafc385310756f90c484eac0e36b8317cf09cb92a77" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures 0.3.0", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -905,7 +919,7 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/ziren-patches/bls12_381?branch=patch-0.8.0#bcf9397426410acc171ad625416b508dc913be8e" +source = "git+https://github.com/ziren-patches/bls12_381?branch=patch-0.8.0#97b215f80e9bfab9ad6641e41b005b6d8e58f748" dependencies = [ "cfg-if", "ff", @@ -1056,7 +1070,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "proptest", "serde_core", ] @@ -1087,6 +1101,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + [[package]] name = "convert_case" version = "0.10.0" @@ -1111,6 +1131,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc" version = "3.4.0" @@ -1970,7 +1999,7 @@ dependencies = [ [[package]] name = "k256" version = "0.13.4" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-k256-0.13.4#8266b228a39402a0ba68d644b7f26b85b5112fe3" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-k256-0.13.4#6ad84b9b604911c6f5dd353b88c04927d2739a32" dependencies = [ "cfg-if", "ecdsa", @@ -1988,7 +2017,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -2292,7 +2321,7 @@ dependencies = [ [[package]] name = "p256" version = "0.13.2" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#88d42225abcb639b9bd3a930ac5a14f2262541c8" dependencies = [ "ecdsa", "elliptic-curve", @@ -2597,7 +2626,7 @@ dependencies = [ [[package]] name = "primeorder" version = "0.13.1" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#88d42225abcb639b9bd3a930ac5a14f2262541c8" dependencies = [ "elliptic-curve", ] @@ -3713,7 +3742,7 @@ version = "0.10.9" source = "git+https://github.com/ziren-patches/RustCrypto-hashes?branch=patch-sha2-0.10.9#dbfdbd088ac7b55e03c0b9eb192278efe35d67dc" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -3832,7 +3861,7 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/ziren-patches/bn?branch=patch-0.6.0#aba71380457d798039111e6cc0fdf2e0718c6766" +source = "git+https://github.com/ziren-patches/bn?branch=patch-0.6.0#0dfeeb1b7bfc21941b6e4964d678abd094a54a6f" dependencies = [ "bytemuck", "byteorder", @@ -4448,8 +4477,8 @@ dependencies = [ [[package]] name = "zkm-lib" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "bincode", "cfg-if", @@ -4461,10 +4490,11 @@ dependencies = [ [[package]] name = "zkm-primitives" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "bincode", + "blake3", "hex", "lazy_static", "num-bigint 0.4.6", @@ -4475,12 +4505,13 @@ dependencies = [ "p3-symmetric", "serde", "sha2", + "tracing", ] [[package]] name = "zkm-zkvm" -version = "1.2.3" -source = "git+https://github.com/ProjectZKM/Ziren#44c893854e3ff79afdfb561cd22e0bd6a5d3a385" +version = "1.2.7" +source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" dependencies = [ "bincode", "cfg-if", diff --git a/bin/guest/Cargo.toml b/bin/guest/Cargo.toml index c4ddad3..51ab45a 100644 --- a/bin/guest/Cargo.toml +++ b/bin/guest/Cargo.toml @@ -18,7 +18,7 @@ bincode = "1.3.3" guest-executor = { path = "../../crates/executor/guest" } # Ziren -zkm-zkvm = { git = "https://github.com/ProjectZKM/Ziren" } +zkm-zkvm = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } # zkm-zkvm = { path = "../../../Ziren/crates/zkvm/entrypoint" } # Statically turns off logging From 471f927cca8312899f2832bb1b114daeaea8fbbf Mon Sep 17 00:00:00 2001 From: eigmax Date: Mon, 5 Oct 2026 11:07:17 +0000 Subject: [PATCH 09/12] build: compile the guest with the Ziren toolchain whatever toolchain builds the host zkm-build v1.2.7 runs the guest's cargo with the environment of the host's build script, into which cargo exports the host compiler as RUSTC and rustup exports the workspace toolchain (rust-toolchain.toml, nightly). That toolchain has no mipsel-zkm-zkvm-elf target, so a plain cargo build failed with "could not find specification for target" unless the whole build was run with cargo +zkm. The two build scripts now select the zkm toolchain for the nested build, overridable through ZKM_GUEST_TOOLCHAIN, and drop the inherited RUSTC and RUSTC_WRAPPER, the way the current zkm-build does itself. The README states the requirement. --- README.md | 2 +- bin/eth-proofs/build.rs | 16 ++++++++++++++++ bin/host/build.rs | 16 ++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 72ee6e1..701991c 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ A minimal implementation of generating zero-knowledge proofs of EVM block execut Required - [Rust](https://www.rust-lang.org/tools/install) -- [Ziren toolchain](https://docs.zkm.io/introduction/installation.html) +- [Ziren toolchain](https://docs.zkm.io/introduction/installation.html): the guest program is always compiled with the `zkm` rustup toolchain, whichever toolchain builds the host; set `ZKM_GUEST_TOOLCHAIN` if it is installed under another name. - Register on [Alchemy](https://www.alchemy.com/) or [Chainstack](https://chainstack.com/)​​ to get ​​`rpc url`​ and `ws url`​. But [Chainstack](https://chainstack.com/) does not support archival/historical `eth_getProof` calls. ### RPC Node Requirement diff --git a/bin/eth-proofs/build.rs b/bin/eth-proofs/build.rs index dcfa0c5..79ada56 100644 --- a/bin/eth-proofs/build.rs +++ b/bin/eth-proofs/build.rs @@ -1,5 +1,21 @@ +use std::env; + use zkm_build::build_program; +/// The guest is compiled by a nested `cargo` that inherits this script's environment, into +/// which cargo exports the compiler building the host (`RUSTC`, a toolchain without the zkVM +/// target) and rustup exports that toolchain's name. Both are replaced by the Ziren toolchain +/// here; `ZKM_GUEST_TOOLCHAIN` names one installed under a different name. +/// `RUSTC_WORKSPACE_WRAPPER` is kept: zkm-build reads it to skip the guest build under clippy. +fn select_guest_toolchain() { + println!("cargo:rerun-if-env-changed=ZKM_GUEST_TOOLCHAIN"); + let toolchain = env::var("ZKM_GUEST_TOOLCHAIN").unwrap_or_else(|_| "zkm".to_string()); + env::set_var("RUSTUP_TOOLCHAIN", toolchain); + env::remove_var("RUSTC"); + env::remove_var("RUSTC_WRAPPER"); +} + fn main() { + select_guest_toolchain(); build_program("../guest"); } diff --git a/bin/host/build.rs b/bin/host/build.rs index 5aad893..3c47977 100644 --- a/bin/host/build.rs +++ b/bin/host/build.rs @@ -1,6 +1,22 @@ +use std::env; + use zkm_build::{build_program_with_args, BuildArgs}; +/// The guest is compiled by a nested `cargo` that inherits this script's environment, into +/// which cargo exports the compiler building the host (`RUSTC`, a toolchain without the zkVM +/// target) and rustup exports that toolchain's name. Both are replaced by the Ziren toolchain +/// here; `ZKM_GUEST_TOOLCHAIN` names one installed under a different name. +/// `RUSTC_WORKSPACE_WRAPPER` is kept: zkm-build reads it to skip the guest build under clippy. +fn select_guest_toolchain() { + println!("cargo:rerun-if-env-changed=ZKM_GUEST_TOOLCHAIN"); + let toolchain = env::var("ZKM_GUEST_TOOLCHAIN").unwrap_or_else(|_| "zkm".to_string()); + env::set_var("RUSTUP_TOOLCHAIN", toolchain); + env::remove_var("RUSTC"); + env::remove_var("RUSTC_WRAPPER"); +} + fn main() { + select_guest_toolchain(); let mut args: BuildArgs = Default::default(); args.rustflags.push("llvm-args=--pre-RA-sched=list-ilp".to_string()); build_program_with_args("../guest", args); From 914fbfc95c06fead4585898e7c17ce1f762cbb99 Mon Sep 17 00:00:00 2001 From: eigmax Date: Mon, 5 Oct 2026 11:09:48 +0000 Subject: [PATCH 10/12] report: drop the accrue_logs_bloom column the CSV record never carried The header listed accrue_logs_bloom_cycles_count, but the guest no longer profiles that stage (the logs bloom comes precomputed in the client input) and write_record never pushed a value for it, so the header had 79 fields and every record 78. The csv writer rejects that whenever the report file is created fresh, and the host exited with a CSV error right after a successful execution. The column goes; the only reader of the report, the cycle-count diff test, never used it. --- crates/executor/host/src/bins/persist_report_hook.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/executor/host/src/bins/persist_report_hook.rs b/crates/executor/host/src/bins/persist_report_hook.rs index 41ad8e6..18afb68 100644 --- a/crates/executor/host/src/bins/persist_report_hook.rs +++ b/crates/executor/host/src/bins/persist_report_hook.rs @@ -94,7 +94,6 @@ impl PersistExecutionReport { headers.push("recover_senders_cycles_count".to_string()); headers.push("block_execution_cycles_count".to_string()); headers.push("block_validation_cycles_count".to_string()); - headers.push("accrue_logs_bloom_cycles_count".to_string()); headers.push("state_root_computation_cycles_count".to_string()); headers.push("syscalls_count".to_string()); headers.push("prover_gas".to_string()); From d7067398d5abb46132de5b7848b85e2bf3252036 Mon Sep 17 00:00:00 2001 From: Stephen Duan <81497928+eigmax@users.noreply.github.com> Date: Tue, 20 Oct 2026 13:35:47 +0800 Subject: [PATCH 11/12] chore: upgrade ziren to v2.0 (#24) * chore: upgrade ziren to v2.0 Take the Ziren crates (zkm-build, zkm-core-executor, zkm-prover, zkm-sdk, and the guest's zkm-zkvm) as git dependencies on Ziren's default branch (main, 2.0.0), which the provers now run, instead of tag v1.2.7: the form the stateless branch uses, with no [patch]. The precompile patches move from their -ziren-1.2.7 tags to their branches, and kzg-rs to patch-0.2.7 without default features. The forks' branch tips declare zkm-lib/zkm-zkvm at Ziren tag v1.2.7, which would put a second zkm-zkvm into the guest, so the lockfiles pin the commits just before that tag was added, whose only difference is that they declare Ziren without a tag (bn aba71380, k256 8266b228, p256 a6f1a1fb, alloy-primitives 59313700, kzg-rs 855ea697, bls12_381 bcf93974), the same commits stateless locks. Both lockfiles hold one Ziren source. * guest: derive the jump tables in the guest, not from the host's Bytecode ClientExecutorInput.bytecodes carried revm Bytecode, which serializes the host's JumpTable along with the code. The guest keyed each code by hash_slow(), which hashes only the code bytes, and executed it with the shipped table. A prover could therefore mark a 0x5b inside PUSH data as a valid jump target, or a real JUMPDEST as invalid, under the correct code hash, and prove the execution of a block that runs differently on chain. The input now carries the deployed bytes (Vec). The guest builds each Bytecode with new_raw_checked, so revm derives the jump table from the bytes (and recognises EIP-7702 delegations), then keys it by its hash as before. The host ships original_bytes(). The cached inputs under bin/host/input are rewritten to the new layout with the convert_input example. Cargo.lock also gains two dependency edges cargo added for manifests the lock had not caught up with. Cycles (host --cache-dir bin/host), block hashes as the chain's: block before after GOAT testnet3 9831027 26,646,537 27,159,716 (+1.9%) Ethereum 25134887 25,998,002 27,239,414 (+4.8%) The increase is the in-guest jump-table analysis. 24438200 still panics in the guest, as before this change. * deps: lock Ziren at 31f6e8eb (main, after #560) Ziren #560 changed the syscall and Poseidon constraints and the recursion keys; the GPU provers are built from 31f6e8eb (#561, Ziren's main), and a verifier from 0dd65a15 rejects their compressed proofs. Both lockfiles move every Ziren crate to 31f6e8eb; nothing else changes except two crates the newer Ziren no longer pulls in (heck 0.4.1, multimap 0.8.3). Program verifying keys are the same at both revisions. host and eth-proofs build with --locked; the cached GOAT 9831027 and Ethereum 25134887 blocks execute with the same block hashes (27,159,619 and 27,234,539 cycles). --- Cargo.lock | 2956 ++++++----------- Cargo.toml | 18 +- bin/guest/Cargo.lock | 182 +- bin/guest/Cargo.toml | 10 +- bin/host/input/1/24438200.bin | Bin 5094275 -> 4900140 bytes bin/host/input/1/25134887.bin | Bin 479948 -> 451938 bytes bin/host/input/48816/9831027.bin | Bin 152615 -> 141997 bytes .../executor/guest/examples/convert_input.rs | 47 + crates/executor/guest/src/executor.rs | 7 +- crates/executor/guest/src/io.rs | 37 +- crates/executor/host/src/host_executor.rs | 2 +- 11 files changed, 1231 insertions(+), 2028 deletions(-) create mode 100644 crates/executor/guest/examples/convert_input.rs diff --git a/Cargo.lock b/Cargo.lock index 68b82f9..82b4c2a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,21 +2,11 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "addchain" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +checksum = "2e33f6a175ec6a9e0aca777567f9ff7c3deefc255660df887e7fa3585e9801d8" dependencies = [ "num-bigint 0.3.3", "num-integer", @@ -38,17 +28,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures 0.2.17", -] - [[package]] name = "ahash" version = "0.8.12" @@ -78,9 +57,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.30" +version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f374d3c6d729268bbe2d0e0ff992bb97898b2df756691a62ee1d5f0506bc39" +checksum = "f4e9e31d834fe25fe991b8884e4b9f0e59db4a97d86e05d1464d6899c013cd62" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -98,7 +77,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "alloy-tx-macros", "auto_impl", "c-kzg", @@ -216,7 +195,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-serde", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "serde", "serde_with", ] @@ -329,7 +308,7 @@ dependencies = [ [[package]] name = "alloy-primitives" version = "1.4.1" -source = "git+https://github.com/ziren-patches/core.git?tag=patch-alloy-primitives-1.4.1-ziren-1.2.7#0d034202c9977acd601399efdd9c30fd1c1a08a0" +source = "git+https://github.com/ziren-patches/core.git?branch=patch-alloy-primitives-1.4.1#59313700f710f1373a5b4cdc05c51dc3227d8064" dependencies = [ "alloy-rlp", "bytes", @@ -435,7 +414,7 @@ checksum = "ce8849c74c9ca0f5a03da1c865e3eb6f768df816e67dd3721a398a8a7e398011" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -566,60 +545,60 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.5.4" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fa1ca7e617c634d2bd9fa71f9ec8e47c07106e248b9fcbd3eaddc13cabd625" +checksum = "ab81bab693da9bb79f7a95b64b394718259fdd7e41dceeced4cad57cb71c4f6a" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.5.4" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c00c0c3a75150a9dc7c8c679ca21853a137888b4e1c5569f92d7e2b15b5102" +checksum = "489f1620bb7e2483fb5819ed01ab6edc1d2f93939dce35a5695085a1afd1d699" dependencies = [ "alloy-sol-macro-input", "const-hex", - "heck 0.5.0", + "heck", "indexmap 2.13.0", "proc-macro-error2", "proc-macro2", "quote", "sha3", - "syn 2.0.114", + "syn 2.0.117", "syn-solidity", ] [[package]] name = "alloy-sol-macro-input" -version = "1.5.4" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297db260eb4d67c105f68d6ba11b8874eec681caec5505eab8fbebee97f790bc" +checksum = "56cef806ad22d4392c5fc83cf8f2089f988eb99c7067b4e0c6f1971fc1cca318" dependencies = [ "const-hex", "dunce", - "heck 0.5.0", + "heck", "macro-string", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.5.4" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b91b13181d3bcd23680fd29d7bc861d1f33fbe90fdd0af67162434aeba902d" +checksum = "a6df77fea9d6a2a75c0ef8d2acbdfd92286cc599983d3175ccdc170d3433d249" dependencies = [ "serde", - "winnow", + "winnow 0.7.15", ] [[package]] @@ -680,10 +659,10 @@ dependencies = [ "alloy-transport", "futures", "http 1.4.0", - "rustls 0.23.36", + "rustls 0.23.37", "serde_json", "tokio", - "tokio-tungstenite 0.26.2", + "tokio-tungstenite", "tracing", "ws_stream_wasm", ] @@ -706,13 +685,12 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d7fd448ab0a017de542de1dcca7a58e7019fe0e7a34ed3f9543ebddf6aceffa" +checksum = "3f14b5d9b2c2173980202c6ff470d96e7c5e202c65a9f67884ad565226df7fbb" dependencies = [ "alloy-primitives", "alloy-rlp", - "arrayvec", "derive_more 2.1.1", "nybbles 0.4.8", "serde", @@ -727,10 +705,10 @@ version = "1.0.41" source = "git+https://github.com/ziren-patches/alloy?branch=patch-1.0.41#08557d4e5f4ca766194a45c1925d8f1625258793" dependencies = [ "alloy-primitives", - "darling", + "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -751,21 +729,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse 0.2.7", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - [[package]] name = "anstream" version = "1.0.0" @@ -773,7 +736,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", - "anstyle-parse 1.0.0", + "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", @@ -783,18 +746,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" @@ -827,9 +781,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "ark-bls12-381" @@ -960,7 +914,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -998,7 +952,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1058,7 +1012,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1102,18 +1056,6 @@ name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] - -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] [[package]] name = "async-stream" @@ -1134,7 +1076,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1145,7 +1087,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1183,7 +1125,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1314,12 +1256,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -1338,12 +1274,6 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - [[package]] name = "bimap" version = "0.6.3" @@ -1365,27 +1295,18 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "cexpr", "clang-sys", "itertools 0.13.0", "log", - "prettyplease 0.2.37", + "prettyplease", "proc-macro2", "quote", "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.114", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec 0.6.3", + "syn 2.0.117", ] [[package]] @@ -1394,15 +1315,9 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec 0.8.0", + "bit-vec", ] -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bit-vec" version = "0.8.0" @@ -1433,9 +1348,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" dependencies = [ "serde_core", ] @@ -1470,20 +1385,19 @@ checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.4.2", + "constant_time_eq", ] [[package]] name = "blake3" -version = "1.8.6" +version = "1.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ae7bad254120e9e4c63bafc385310756f90c484eac0e36b8317cf09cb92a77" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" dependencies = [ - "arrayref", "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.4.2", + "constant_time_eq", "cpufeatures 0.3.0", ] @@ -1521,7 +1435,7 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/ziren-patches/bls12_381?tag=patch-0.8.0-ziren-1.2.7#97b215f80e9bfab9ad6641e41b005b6d8e58f748" +source = "git+https://github.com/ziren-patches/bls12_381?branch=patch-0.8.0#bcf9397426410acc171ad625416b508dc913be8e" dependencies = [ "cfg-if", "ff 0.13.1", @@ -1546,42 +1460,33 @@ dependencies = [ [[package]] name = "borsh" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" dependencies = [ "borsh-derive", + "bytes", "cfg_aliases", ] [[package]] name = "borsh-derive" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" +checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2", - "tinyvec", + "syn 2.0.117", ] [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "byte-slice-cast" @@ -1606,7 +1511,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1624,31 +1529,11 @@ dependencies = [ "serde", ] -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.13+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" -dependencies = [ - "cc", - "pkg-config", -] - [[package]] name = "c-kzg" -version = "2.1.5" +version = "2.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" +checksum = "6648ed1e4ea8e8a1a4a2c78e1cda29a3fd500bc622899c340d8525ea9a76b24a" dependencies = [ "blst", "cc", @@ -1708,9 +1593,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.55" +version = "1.2.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" +checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" dependencies = [ "find-msvc-tools", "jobserver", @@ -1740,25 +1625,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] -name = "chrono" -version = "0.4.43" +name = "chacha20" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" dependencies = [ - "iana-time-zone", - "num-traits", - "serde", - "windows-link", + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.0", ] [[package]] -name = "cipher" -version = "0.4.4" +name = "chrono" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ - "crypto-common", - "inout", + "iana-time-zone", + "num-traits", + "serde", + "windows-link", ] [[package]] @@ -1774,9 +1660,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.57" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" +checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" dependencies = [ "clap_builder", "clap_derive", @@ -1784,11 +1670,11 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.57" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ - "anstream 0.6.21", + "anstream", "anstyle", "clap_lex", "strsim 0.11.1", @@ -1796,21 +1682,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.55" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "clap_lex" -version = "0.7.7" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "codepage" @@ -1821,63 +1707,11 @@ dependencies = [ "encoding_rs", ] -[[package]] -name = "coins-bip32" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2", - "thiserror 1.0.69", -] - -[[package]] -name = "coins-bip39" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2 0.12.2", - "rand 0.8.5", - "sha2", - "thiserror 1.0.69", -] - -[[package]] -name = "coins-core" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" -dependencies = [ - "base64 0.21.7", - "bech32", - "bs58", - "digest 0.10.7", - "generic-array 0.14.7", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2", - "sha3", - "thiserror 1.0.69", -] - [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "console" @@ -1894,9 +1728,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.17.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" +checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" dependencies = [ "cfg-if", "cpufeatures 0.2.17", @@ -1930,12 +1764,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - [[package]] name = "constant_time_eq" version = "0.4.2" @@ -1993,6 +1821,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -2049,9 +1887,9 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crossbeam-channel" -version = "0.5.17" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] @@ -2130,20 +1968,11 @@ dependencies = [ "memchr", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - [[package]] name = "ctrlc" -version = "3.5.1" +version = "3.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" +checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" dependencies = [ "dispatch2", "nix", @@ -2173,7 +2002,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2182,8 +2011,18 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -2198,7 +2037,20 @@ dependencies = [ "quote", "serde", "strsim 0.11.1", - "syn 2.0.114", + "syn 2.0.117", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.117", ] [[package]] @@ -2207,9 +2059,20 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2329,7 +2192,7 @@ dependencies = [ "defmt-parser", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2354,9 +2217,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.5" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", "serde_core", @@ -2375,13 +2238,13 @@ dependencies = [ [[package]] name = "derive-where" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" +checksum = "d08b3a0bcc0d079199cd476b2cae8435016ec11d1c0986c6901c5ac223041534" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2410,7 +2273,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2423,7 +2286,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.114", + "syn 2.0.117", "unicode-xid", ] @@ -2457,16 +2320,6 @@ dependencies = [ "dirs-sys", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - [[package]] name = "dirs-sys" version = "0.4.1" @@ -2479,24 +2332,13 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "dispatch2" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "block2", "libc", "objc2", @@ -2510,7 +2352,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2543,6 +2385,33 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +[[package]] +name = "dynasm" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33dc03612f42465a8ed7f5e354bc2b79ba54cedefa81d5bd3a064f1835adaba8" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "lazy_static", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "dynasmrt" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7dccc31a678058996aef614f6bd418ced384da70f284e83e2b7bf29b27b6a28" +dependencies = [ + "byteorder", + "dynasm", + "fnv", + "memmap2 0.5.10", +] + [[package]] name = "ecdsa" version = "0.16.9" @@ -2566,7 +2435,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2606,15 +2475,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ena" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" -dependencies = [ - "log", -] - [[package]] name = "encode_unicode" version = "1.0.0" @@ -2631,33 +2491,15 @@ dependencies = [ ] [[package]] -name = "enr" -version = "0.10.0" +name = "enum-as-inner" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "base64 0.21.7", - "bytes", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2678,7 +2520,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2698,7 +2540,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2717,7 +2559,7 @@ version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" dependencies = [ - "anstream 1.0.0", + "anstream", "anstyle", "env_filter", "jiff", @@ -2740,28 +2582,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "eth-keystore" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac", - "pbkdf2 0.11.0", - "rand 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2", - "sha3", - "thiserror 1.0.69", - "uuid 0.8.2", -] - [[package]] name = "eth-proofs" version = "0.1.0" @@ -2794,302 +2614,6 @@ dependencies = [ "zkm-sdk", ] -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror 1.0.69", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease 0.2.37", - "proc-macro2", - "quote", - "regex", - "reqwest 0.11.27", - "serde", - "serde_json", - "syn 2.0.114", - "toml", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.114", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum", - "once_cell", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum 0.26.3", - "syn 2.0.114", - "tempfile", - "thiserror 1.0.69", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" -dependencies = [ - "chrono", - "ethers-core", - "reqwest 0.11.27", - "semver 1.0.27", - "serde", - "serde_json", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "const-hex", - "enr", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-tungstenite 0.20.1", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand 0.8.5", - "sha2", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "ethers-solc" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" -dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.27", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror 1.0.69", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - [[package]] name = "eyre" version = "0.6.12" @@ -3173,6 +2697,16 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -3255,16 +2789,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "funty" version = "2.0.0" @@ -3273,9 +2797,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -3288,9 +2812,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -3298,15 +2822,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", @@ -3315,58 +2839,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-locks" -version = "0.7.1" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-timer" -version = "3.0.3" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -3376,7 +2880,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -3386,21 +2889,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - [[package]] name = "generic-array" version = "0.14.7" @@ -3440,14 +2928,28 @@ dependencies = [ name = "getrandom" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi 5.3.0", + "wasip2", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", - "js-sys", "libc", - "r-efi", + "r-efi 6.0.0", + "rand_core 0.10.0", "wasip2", - "wasm-bindgen", + "wasip3", ] [[package]] @@ -3462,7 +2964,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "libc", "libgit2-sys", "log", @@ -3475,18 +2977,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "group" version = "0.12.1" @@ -3610,50 +3100,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "halo2curves" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380afeef3f1d4d3245b76895172018cfb087d9976a7cabcd5597775b2933e07" -dependencies = [ - "blake2", - "digest 0.10.7", - "ff 0.13.1", - "group 0.13.0", - "halo2derive", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "pairing 0.23.0", - "pasta_curves 0.5.1", - "paste", - "rand 0.8.5", - "rand_core 0.6.4", - "rayon", - "serde", - "serde_arrays 0.1.0", - "sha2", - "static_assertions", - "subtle", - "unroll", -] - -[[package]] -name = "halo2derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb99e7492b4f5ff469d238db464131b86c2eaac814a78715acba369f64d2c76" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -3693,21 +3139,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -3725,9 +3156,6 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-conservative" @@ -3807,15 +3235,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "home" -version = "0.5.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "host" version = "0.1.0" @@ -4037,7 +3456,7 @@ dependencies = [ "http 1.4.0", "hyper 1.8.1", "hyper-util", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", @@ -4090,7 +3509,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.2", + "socket2 0.6.3", "system-configuration 0.7.0", "tokio", "tower-service", @@ -4203,6 +3622,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "ident_case" version = "1.0.1" @@ -4239,24 +3664,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.3" @@ -4265,7 +3672,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -4310,15 +3717,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "instant" version = "0.1.13" @@ -4333,27 +3731,28 @@ dependencies = [ [[package]] name = "ipconfig" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +checksum = "4d40460c0ce33d6ce4b0630ad68ff63d6661961c48b6dba35e5a4d81cfb48222" dependencies = [ - "socket2 0.5.10", + "socket2 0.6.3", "widestring", - "windows-sys 0.48.0", - "winreg", + "windows-registry", + "windows-result", + "windows-sys 0.61.2", ] [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +checksum = "d8e7418f59cc01c88316161279a7f665217ae316b388e58a0d10e29f54f1e5eb" dependencies = [ "memchr", "serde", @@ -4374,15 +3773,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -4403,18 +3793,17 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.35" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" +checksum = "961d16382652bfdd8c6f68b223b26a8c93e0d475c672f414411db31c6c5c900e" dependencies = [ "defmt", - "jiff-core", "jiff-static", "log", "portable-atomic", @@ -4422,25 +3811,15 @@ dependencies = [ "serde_core", ] -[[package]] -name = "jiff-core" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" -dependencies = [ - "defmt", -] - [[package]] name = "jiff-static" -version = "0.2.35" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" +checksum = "d0879bd39df99c4c5e2c6615ccc026391a423dde10532c573e6086eb94a802cc" dependencies = [ - "jiff-core", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -4455,28 +3834,14 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", ] -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "jubjub" version = "0.9.0" @@ -4494,7 +3859,7 @@ dependencies = [ [[package]] name = "k256" version = "0.13.4" -source = "git+https://github.com/ziren-patches/elliptic-curves?tag=patch-k256-0.13.4-ziren-1.2.7#5d641926a5ea6b7dee8b3a1410a49162aeb66ebf" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-k256-0.13.4#8266b228a39402a0ba68d644b7f26b85b5112fe3" dependencies = [ "cfg-if", "ecdsa", @@ -4509,9 +3874,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures 0.2.17", ] @@ -4529,46 +3894,16 @@ dependencies = [ [[package]] name = "kzg-rs" version = "0.2.7" -source = "git+https://github.com/ziren-patches/kzg-rs?tag=patch-0.2.7-ziren-1.2.7#8288c61a5917f5227e156b5660fbcfc4c3b14220" +source = "git+https://github.com/ziren-patches/kzg-rs?branch=patch-0.2.7#855ea697cd8c5ca9038e3a3ceb2c0efcd88aec29" dependencies = [ "bls12_381 0.8.0", "ff 0.13.1", "hex", - "serde_arrays 0.2.0", + "serde_arrays", "sha2", "spin 0.9.8", ] -[[package]] -name = "lalrpop" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" -dependencies = [ - "ascii-canvas", - "bit-set 0.5.3", - "ena", - "itertools 0.11.0", - "lalrpop-util", - "petgraph 0.6.5", - "regex", - "regex-syntax", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", - "walkdir", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" -dependencies = [ - "regex-automata", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -4578,11 +3913,17 @@ dependencies = [ "spin 0.9.8", ] +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" -version = "0.2.180" +version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" [[package]] name = "libgit2-sys" @@ -4614,19 +3955,18 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.12" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" dependencies = [ - "bitflags 2.10.0", "libc", ] [[package]] name = "libz-sys" -version = "1.1.23" +version = "1.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" +checksum = "d52f4c29e2a68ac30c9087e1b772dc9f44a2b66ed44edf2266cf2be9b03dafc1" dependencies = [ "cc", "libc", @@ -4645,15 +3985,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" @@ -4717,7 +4051,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -4755,20 +4089,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] -name = "md-5" -version = "0.10.6" +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memfd" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +checksum = "57804b2c9b69967f1536a56f86297e367a33b19e98852ed624b84551cdbc0d90" dependencies = [ - "cfg-if", - "digest 0.10.7", + "rustix", ] [[package]] -name = "memchr" -version = "2.8.0" +name = "memmap2" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" +dependencies = [ + "libc", +] [[package]] name = "memuse" @@ -4846,12 +4197,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - [[package]] name = "multimap" version = "0.10.1" @@ -4860,34 +4205,28 @@ checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" dependencies = [ "libc", "log", "openssl", - "openssl-probe", + "openssl-probe 0.2.1", "openssl-sys", "schannel", - "security-framework", + "security-framework 3.7.0", "security-framework-sys", "tempfile", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nix" -version = "0.30.1" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if", "cfg_aliases", "libc", @@ -4911,9 +4250,9 @@ dependencies = [ [[package]] name = "ntapi" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" dependencies = [ "winapi", ] @@ -4960,7 +4299,6 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "rand 0.8.5", ] [[package]] @@ -4974,9 +4312,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-integer" @@ -5046,9 +4384,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -5056,14 +4394,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5081,18 +4419,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" -[[package]] -name = "nums" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3c74f925fb8cfc49a8022f2afce48a0683b70f9e439885594e84c5edbf5b01" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "rand 0.8.5", -] - [[package]] name = "nybbles" version = "0.3.4" @@ -5122,9 +4448,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" dependencies = [ "objc2-encode", ] @@ -5146,9 +4472,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" dependencies = [ "critical-section", "portable-atomic", @@ -5235,38 +4561,13 @@ dependencies = [ "revm", ] -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "openssl" -version = "0.10.75" +version = "0.10.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" +checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if", "foreign-types", "libc", @@ -5283,7 +4584,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5292,11 +4593,17 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + [[package]] name = "openssl-sys" -version = "0.9.111" +version = "0.9.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" +checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" dependencies = [ "cc", "libc", @@ -5313,7 +4620,7 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "p256" version = "0.13.2" -source = "git+https://github.com/ziren-patches/elliptic-curves?tag=patch-p256-0.13.2-ziren-1.2.7#91874d8de3e78b2f71d2096684189c687eb55cf3" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" dependencies = [ "ecdsa", "elliptic-curve", @@ -5325,47 +4632,48 @@ dependencies = [ [[package]] name = "p3-air" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ "p3-field", "p3-matrix", + "tracing", ] [[package]] -name = "p3-bn254-fr" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +name = "p3-bn254" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "ff 0.13.1", - "halo2curves", "num-bigint 0.4.6", "p3-field", "p3-poseidon2", "p3-symmetric", - "rand 0.8.5", + "p3-util", + "paste", + "rand 0.10.0", "serde", ] [[package]] name = "p3-challenger" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ "p3-field", "p3-maybe-rayon", + "p3-monty-31", "p3-symmetric", "p3-util", - "serde", "tracing", ] [[package]] name = "p3-circle" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-challenger", "p3-commit", "p3-dft", @@ -5375,59 +4683,61 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "thiserror 2.0.18", "tracing", ] [[package]] name = "p3-commit" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-challenger", "p3-dft", "p3-field", + "p3-interpolation", "p3-matrix", + "p3-multilinear-util", "p3-util", "serde", ] [[package]] name = "p3-dft" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-field", "p3-matrix", "p3-maybe-rayon", "p3-util", + "spin 0.10.1", "tracing", ] [[package]] name = "p3-field" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "num-bigint 0.4.6", - "num-integer", - "num-traits", - "nums", "p3-maybe-rayon", "p3-util", - "rand 0.8.5", + "paste", + "rand 0.10.0", "serde", "tracing", ] [[package]] name = "p3-fri" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-challenger", "p3-commit", "p3-dft", @@ -5436,15 +4746,17 @@ dependencies = [ "p3-matrix", "p3-maybe-rayon", "p3-util", - "rand 0.8.5", + "rand 0.10.0", "serde", + "spin 0.10.1", + "thiserror 2.0.18", "tracing", ] [[package]] name = "p3-interpolation" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ "p3-field", "p3-matrix", @@ -5454,11 +4766,9 @@ dependencies = [ [[package]] name = "p3-keccak" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", - "p3-field", "p3-symmetric", "p3-util", "tiny-keccak", @@ -5466,174 +4776,202 @@ dependencies = [ [[package]] name = "p3-keccak-air" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ "p3-air", "p3-field", "p3-matrix", "p3-maybe-rayon", "p3-util", + "rand 0.10.0", "tracing", ] [[package]] name = "p3-koala-bear" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ + "p3-challenger", "p3-field", "p3-mds", "p3-monty-31", + "p3-poseidon1", "p3-poseidon2", "p3-symmetric", - "rand 0.8.5", - "serde", + "rand 0.10.0", ] [[package]] name = "p3-matrix" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-field", "p3-maybe-rayon", "p3-util", - "rand 0.8.5", + "rand 0.10.0", "serde", "tracing", - "transpose", ] [[package]] name = "p3-maybe-rayon" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ "rayon", ] [[package]] name = "p3-mds" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", "p3-dft", "p3-field", - "p3-matrix", "p3-symmetric", "p3-util", - "rand 0.8.5", + "rand 0.10.0", ] [[package]] name = "p3-merkle-tree" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-commit", "p3-field", "p3-matrix", "p3-maybe-rayon", "p3-symmetric", "p3-util", - "rand 0.8.5", + "rand 0.10.0", "serde", + "thiserror 2.0.18", "tracing", ] [[package]] name = "p3-mersenne-31" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "num-bigint 0.4.6", + "p3-challenger", "p3-dft", "p3-field", "p3-matrix", - "p3-maybe-rayon", "p3-mds", + "p3-poseidon1", "p3-poseidon2", "p3-symmetric", "p3-util", - "rand 0.8.5", + "paste", + "rand 0.10.0", "serde", ] [[package]] name = "p3-monty-31" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "num-bigint 0.4.6", "p3-dft", "p3-field", "p3-matrix", "p3-maybe-rayon", "p3-mds", + "p3-poseidon1", "p3-poseidon2", "p3-symmetric", "p3-util", - "rand 0.8.5", + "paste", + "rand 0.10.0", "serde", - "serde_json", + "spin 0.10.1", "tracing", - "transpose", +] + +[[package]] +name = "p3-multilinear-util" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" +dependencies = [ + "itertools 0.14.0", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "rand 0.10.0", + "serde", + "tracing", +] + +[[package]] +name = "p3-poseidon1" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" +dependencies = [ + "p3-field", + "p3-symmetric", + "rand 0.10.0", ] [[package]] name = "p3-poseidon2" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "gcd", "p3-field", "p3-mds", "p3-symmetric", - "rand 0.8.5", - "serde", + "p3-util", + "rand 0.10.0", ] [[package]] name = "p3-symmetric" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-field", + "p3-util", "serde", ] [[package]] name = "p3-uni-stark" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-air", "p3-challenger", "p3-commit", - "p3-dft", "p3-field", "p3-matrix", "p3-maybe-rayon", "p3-util", "serde", + "thiserror 2.0.18", "tracing", ] [[package]] name = "p3-util" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "lock_api", "serde", + "transpose", ] [[package]] @@ -5679,7 +5017,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5730,17 +5068,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "pasta_curves" version = "0.4.1" @@ -5765,10 +5092,8 @@ dependencies = [ "blake2b_simd", "ff 0.13.1", "group 0.13.0", - "hex", "lazy_static", "rand 0.8.5", - "serde", "static_assertions", "subtle", ] @@ -5779,43 +5104,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac", - "password-hash", - "sha2", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -5871,37 +5159,17 @@ dependencies = [ "rustc_version 0.4.1", ] -[[package]] -name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_macros 0.11.3", - "phf_shared 0.11.3", -] - [[package]] name = "phf" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ - "phf_macros 0.13.1", - "phf_shared 0.13.1", + "phf_macros", + "phf_shared", "serde", ] -[[package]] -name = "phf_generator" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" -dependencies = [ - "phf_shared 0.11.3", - "rand 0.8.5", -] - [[package]] name = "phf_generator" version = "0.13.1" @@ -5909,20 +5177,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ "fastrand", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_macros" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", - "syn 2.0.114", + "phf_shared", ] [[package]] @@ -5931,20 +5186,11 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_generator", + "phf_shared", "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "phf_shared" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", + "syn 2.0.117", ] [[package]] @@ -5958,29 +5204,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -6043,22 +5289,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - [[package]] name = "prettyplease" version = "0.2.37" @@ -6066,13 +5296,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "primeorder" version = "0.13.1" -source = "git+https://github.com/ziren-patches/elliptic-curves?tag=patch-p256-0.13.2-ziren-1.2.7#91874d8de3e78b2f71d2096684189c687eb55cf3" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" dependencies = [ "elliptic-curve", ] @@ -6085,9 +5315,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", "uint", ] @@ -6111,11 +5338,35 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "toml_edit 0.23.10+spec-1.0.0", + "proc-macro2", + "quote", + "version_check", ] [[package]] @@ -6137,7 +5388,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6151,13 +5402,13 @@ dependencies = [ [[package]] name = "proptest" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" +checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ - "bit-set 0.8.0", - "bit-vec 0.8.0", - "bitflags 2.10.0", + "bit-set", + "bit-vec", + "bitflags 2.11.0", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -6170,12 +5421,12 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ "bytes", - "prost-derive 0.11.9", + "prost-derive 0.12.6", ] [[package]] @@ -6190,24 +5441,23 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" dependencies = [ "bytes", - "heck 0.4.1", + "heck", "itertools 0.10.5", - "lazy_static", "log", - "multimap 0.8.3", + "multimap", + "once_cell", "petgraph 0.6.5", - "prettyplease 0.1.25", - "prost 0.11.9", - "prost-types 0.11.9", + "prettyplease", + "prost 0.12.6", + "prost-types 0.12.6", "regex", - "syn 1.0.109", + "syn 2.0.117", "tempfile", - "which", ] [[package]] @@ -6216,31 +5466,31 @@ version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "heck 0.5.0", + "heck", "itertools 0.14.0", "log", - "multimap 0.10.1", + "multimap", "once_cell", "petgraph 0.7.1", - "prettyplease 0.2.37", + "prettyplease", "prost 0.13.5", "prost-types 0.13.5", "regex", - "syn 2.0.114", + "syn 2.0.117", "tempfile", ] [[package]] name = "prost-derive" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools 0.10.5", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -6253,16 +5503,16 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "prost-types" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" dependencies = [ - "prost 0.11.9", + "prost 0.12.6", ] [[package]] @@ -6313,8 +5563,8 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.36", - "socket2 0.6.2", + "rustls 0.23.37", + "socket2 0.6.3", "thiserror 2.0.18", "tokio", "tracing", @@ -6323,17 +5573,17 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ "bytes", "getrandom 0.3.4", "lru-slab", "rand 0.9.2", - "ring 0.17.14", + "ring", "rustc-hash 2.1.1", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "slab", "thiserror 2.0.18", @@ -6351,16 +5601,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.2", + "socket2 0.6.3", "tracing", "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -6371,6 +5621,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "radium" version = "0.7.0" @@ -6400,6 +5656,17 @@ dependencies = [ "serde", ] +[[package]] +name = "rand" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +dependencies = [ + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.0", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -6439,6 +5706,12 @@ dependencies = [ "serde", ] +[[package]] +name = "rand_core" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" + [[package]] name = "rand_xorshift" version = "0.4.0" @@ -6450,9 +5723,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -6492,7 +5765,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -6523,7 +5796,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6551,9 +5824,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" @@ -6624,7 +5897,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "serde", "serde_json", @@ -6696,7 +5969,7 @@ dependencies = [ "alloy-evm", "alloy-genesis", "alloy-primitives", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "auto_impl", "derive_more 2.1.1", "reth-ethereum-forks", @@ -6714,7 +5987,7 @@ dependencies = [ "alloy-eips", "alloy-genesis", "alloy-primitives", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "bytes", "modular-bitfield", "op-alloy-consensus", @@ -6730,7 +6003,7 @@ source = "git+https://github.com/ziren-patches/reth?branch=patch-1.9.3#fb7e5b4b3 dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6939,7 +6212,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "reth-chainspec", "reth-consensus", "reth-consensus-common", @@ -7022,7 +6295,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "auto_impl", "bytes", "derive_more 2.1.1", @@ -7116,7 +6389,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "auto_impl", "itertools 0.14.0", "reth-execution-errors", @@ -7137,7 +6410,7 @@ dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "derive_more 2.1.1", "itertools 0.14.0", "nybbles 0.4.8", @@ -7153,7 +6426,7 @@ source = "git+https://github.com/ziren-patches/reth?branch=patch-1.9.3#fb7e5b4b3 dependencies = [ "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.4", + "alloy-trie 0.9.5", "auto_impl", "reth-execution-errors", "reth-primitives-traits", @@ -7167,7 +6440,7 @@ name = "reth-zstd-compressors" version = "1.9.3" source = "git+https://github.com/ziren-patches/reth?branch=patch-1.9.3#fb7e5b4b347ac28d7f3f937698a3b084bd158aa2" dependencies = [ - "zstd 0.13.3", + "zstd", ] [[package]] @@ -7203,7 +6476,7 @@ version = "7.1.1" source = "git+https://github.com/ziren-patches/revm?branch=patch-31.0.2#0cd8a9cffabcc01fd92b8f12d6d601040e0ec88f" dependencies = [ "bitvec", - "phf 0.13.1", + "phf", "revm-primitives", "serde", ] @@ -7349,7 +6622,7 @@ name = "revm-state" version = "8.1.1" source = "git+https://github.com/ziren-patches/revm?branch=patch-31.0.2#0cd8a9cffabcc01fd92b8f12d6d601040e0ec88f" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "revm-bytecode", "revm-primitives", "serde", @@ -7364,21 +6637,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.14" @@ -7389,7 +6647,7 @@ dependencies = [ "cfg-if", "getrandom 0.2.17", "libc", - "untrusted 0.9.0", + "untrusted", "windows-sys 0.52.0", ] @@ -7409,19 +6667,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", - "rlp-derive", "rustc-hex", ] [[package]] -name = "rlp-derive" -version = "0.1.0" +name = "rmp" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "num-traits", +] + +[[package]] +name = "rmp-serde" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f81bee8c8ef9b577d1681a70ebbc962c232461e397b22c208c43c04b67a155" +dependencies = [ + "rmp", + "serde", ] [[package]] @@ -7526,42 +6791,17 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustix" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "errno", "libc", - "linux-raw-sys 0.11.0", + "linux-raw-sys", "windows-sys 0.61.2", ] -[[package]] -name = "rustls" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" -dependencies = [ - "log", - "ring 0.16.20", - "sct", - "webpki", -] - [[package]] name = "rustls" version = "0.21.12" @@ -7569,21 +6809,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.17.14", + "ring", "rustls-webpki 0.101.7", "sct", ] [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "once_cell", - "ring 0.17.14", + "ring", "rustls-pki-types", - "rustls-webpki 0.103.9", + "rustls-webpki 0.103.10", "subtle", "zeroize", ] @@ -7594,10 +6834,10 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ - "openssl-probe", + "openssl-probe 0.1.6", "rustls-pemfile", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] @@ -7625,19 +6865,19 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", + "ring", + "untrusted", ] [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ - "ring 0.17.14", + "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -7664,24 +6904,6 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "scale-info" version = "2.11.6" @@ -7703,14 +6925,14 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ "windows-sys 0.61.2", ] @@ -7745,26 +6967,14 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac", - "pbkdf2 0.11.0", - "salsa20", - "sha2", -] - [[package]] name = "sct" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", + "ring", + "untrusted", ] [[package]] @@ -7809,8 +7019,21 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.10.0", - "core-foundation", + "bitflags 2.11.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.11.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -7818,9 +7041,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -7854,12 +7077,6 @@ dependencies = [ "pest", ] -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - [[package]] name = "send_wrapper" version = "0.6.0" @@ -7876,15 +7093,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_arrays" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" -dependencies = [ - "serde", -] - [[package]] name = "serde_arrays" version = "0.2.0" @@ -7911,7 +7119,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -7938,15 +7146,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -7961,9 +7160,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" dependencies = [ "base64 0.22.1", "chrono", @@ -7980,14 +7179,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" dependencies = [ - "darling", + "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8094,18 +7293,6 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" -[[package]] -name = "simple_asn1" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "thiserror 2.0.18", - "time", -] - [[package]] name = "siphasher" version = "1.0.2" @@ -8155,39 +7342,28 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", -] - -[[package]] -name = "solang-parser" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf 0.11.3", - "thiserror 1.0.69", - "unicode-xid", + "windows-sys 0.61.2", ] [[package]] name = "spin" -version = "0.5.2" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spin" -version = "0.9.8" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "023a211cb3138dbc438680b32560ad89f699977624c9f8dbb95a47d5b4c07dd3" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -8217,18 +7393,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" -[[package]] -name = "string_cache" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" -dependencies = [ - "new_debug_unreachable", - "parking_lot 0.12.5", - "phf_shared 0.11.3", - "precomputed-hash", -] - [[package]] name = "strsim" version = "0.10.0" @@ -8265,11 +7429,11 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "rustversion", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8278,16 +7442,16 @@ version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/ziren-patches/bn?tag=patch-0.6.0-ziren-1.2.7#0dfeeb1b7bfc21941b6e4964d678abd094a54a6f" +source = "git+https://github.com/ziren-patches/bn?branch=patch-0.6.0#aba71380457d798039111e6cc0fdf2e0718c6766" dependencies = [ "bytemuck", "byteorder", @@ -8306,32 +7470,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "svm-rs" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest 0.11.27", - "semver 1.0.27", - "serde", - "serde_json", - "sha2", - "thiserror 1.0.69", - "url", - "zip", -] - -[[package]] -name = "symlink" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" - [[package]] name = "syn" version = "1.0.109" @@ -8345,9 +7483,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -8356,14 +7494,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.5.4" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2379beea9476b89d0237078be761cf8e012d92d5ae4ae0c9a329f974838870fc" +checksum = "53f425ae0b12e2f5ae65542e00898d500d4d318b4baf09f40fd0d410454e9947" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8389,7 +7527,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8414,7 +7552,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys 0.5.0", ] @@ -8424,8 +7562,8 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.10.0", - "core-foundation", + "bitflags 2.11.0", + "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -8456,27 +7594,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] -name = "tempfile" -version = "3.24.0" +name = "tar" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" dependencies = [ - "fastrand", - "getrandom 0.3.4", - "once_cell", - "rustix 1.1.3", - "windows-sys 0.61.2", + "filetime", + "libc", + "xattr", ] [[package]] -name = "term" -version = "0.7.0" +name = "tempfile" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ - "dirs-next", - "rustversion", - "winapi", + "fastrand", + "getrandom 0.4.2", + "once_cell", + "rustix", + "windows-sys 0.61.2", ] [[package]] @@ -8505,7 +7643,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8516,7 +7654,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8597,9 +7735,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -8612,9 +7750,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.49.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", @@ -8622,7 +7760,7 @@ dependencies = [ "parking_lot 0.12.5", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.2", + "socket2 0.6.3", "tokio-macros", "windows-sys 0.61.2", ] @@ -8639,13 +7777,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8658,17 +7796,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls 0.20.9", - "tokio", - "webpki", -] - [[package]] name = "tokio-rustls" version = "0.24.1" @@ -8685,7 +7812,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.36", + "rustls 0.23.37", "tokio", ] @@ -8701,21 +7828,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite 0.20.1", - "webpki-roots 0.25.4", -] - [[package]] name = "tokio-tungstenite" version = "0.26.2" @@ -8724,11 +7836,11 @@ checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", - "tungstenite 0.26.2", + "tungstenite", "webpki-roots 0.26.11", ] @@ -8745,90 +7857,47 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap 2.13.0", - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_write", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.8+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" dependencies = [ "indexmap 2.13.0", - "toml_datetime 0.7.5+spec-1.1.0", + "toml_datetime", "toml_parser", - "winnow", + "winnow 1.0.0", ] [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" dependencies = [ - "winnow", + "winnow 1.0.0", ] -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - [[package]] name = "tonic" -version = "0.8.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" +checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" dependencies = [ "async-stream", "async-trait", "axum 0.6.20", - "base64 0.13.1", + "base64 0.21.7", "bytes", - "futures-core", - "futures-util", "h2 0.3.27", "http 0.2.12", "http-body 0.4.6", @@ -8836,32 +7905,30 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost 0.11.9", - "prost-derive 0.11.9", + "prost 0.12.6", + "rustls 0.21.12", "rustls-native-certs", "rustls-pemfile", "tokio", - "tokio-rustls 0.23.4", + "tokio-rustls 0.24.1", "tokio-stream", - "tokio-util", "tower 0.4.13", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.8.4" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" +checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889" dependencies = [ - "prettyplease 0.1.25", + "prettyplease", "proc-macro2", - "prost-build 0.11.9", + "prost-build 0.12.6", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -8906,7 +7973,7 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "bytes", "futures-util", "http 1.4.0", @@ -8944,12 +8011,11 @@ dependencies = [ [[package]] name = "tracing-appender" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "050686193eb999b4bb3bc2acfa891a13da00f79734704c4b8b4ef1a10b368a3c" +checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf" dependencies = [ "crossbeam-channel", - "symlink", "thiserror 2.0.18", "time", "tracing-subscriber", @@ -8963,7 +8029,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8989,16 +8055,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -9012,9 +8068,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", @@ -9044,26 +8100,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.21.12", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", -] - [[package]] name = "tungstenite" version = "0.26.2" @@ -9076,7 +8112,7 @@ dependencies = [ "httparse", "log", "rand 0.9.2", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "sha1", "thiserror 2.0.18", @@ -9146,15 +8182,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "da36089a805484bcccfffe0739803392c8298778a2d2f09febf76fac5ad9025b" [[package]] name = "unicode-width" @@ -9168,22 +8204,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unroll" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -9222,23 +8242,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom 0.2.17", - "serde", -] - -[[package]] -name = "uuid" -version = "1.20.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.4.2", "js-sys", - "rand 0.9.2", + "rand 0.10.0", "wasm-bindgen", ] @@ -9284,21 +8294,11 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - -[[package]] -name = "walkdir" -version = "2.5.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ - "same-file", - "winapi-util", + "libc", ] [[package]] @@ -9325,11 +8325,20 @@ dependencies = [ "wit-bindgen", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -9340,9 +8349,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.58" +version = "0.4.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" dependencies = [ "cfg-if", "futures-util", @@ -9354,9 +8363,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9364,26 +8373,48 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + [[package]] name = "wasm-streams" version = "0.4.2" @@ -9412,6 +8443,18 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver 1.0.27", +] + [[package]] name = "wasmtimer" version = "0.4.3" @@ -9428,9 +8471,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" dependencies = [ "js-sys", "wasm-bindgen", @@ -9446,16 +8489,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", -] - [[package]] name = "webpki-roots" version = "0.25.4" @@ -9480,18 +8513,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - [[package]] name = "widestring" version = "1.2.1" @@ -9514,15 +8535,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -9569,7 +8581,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9580,7 +8592,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9851,9 +8863,18 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.14" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -9873,6 +8894,88 @@ name = "wit-bindgen" version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver 1.0.27", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] [[package]] name = "witness-db" @@ -9904,7 +9007,7 @@ dependencies = [ "log", "pharos", "rustc_version 0.4.1", - "send_wrapper 0.6.0", + "send_wrapper", "thiserror 2.0.18", "wasm-bindgen", "wasm-bindgen-futures", @@ -9920,6 +9023,16 @@ dependencies = [ "tap", ] +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + [[package]] name = "yaml-rust" version = "0.4.5" @@ -9929,12 +9042,6 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - [[package]] name = "yoke" version = "0.8.1" @@ -9954,28 +9061,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9995,7 +9102,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure", ] @@ -10016,7 +9123,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10049,7 +9156,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10058,18 +9165,10 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ - "aes", "byteorder", - "bzip2", - "constant_time_eq 0.1.5", "crc32fast", "crossbeam-utils", "flate2", - "hmac", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -10101,8 +9200,8 @@ dependencies = [ [[package]] name = "zkm-build" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "anyhow", "cargo_metadata", @@ -10112,8 +9211,8 @@ dependencies = [ [[package]] name = "zkm-core-executor" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "anyhow", "bincode", @@ -10125,6 +9224,7 @@ dependencies = [ "hashbrown 0.14.5", "hex", "itertools 0.13.0", + "libc", "log", "nohash-hasher", "num", @@ -10135,6 +9235,7 @@ dependencies = [ "p3-symmetric", "rand 0.8.5", "rayon-scan", + "rustc-hash 2.1.1", "serde", "serde_json", "sha2", @@ -10146,15 +9247,33 @@ dependencies = [ "tracing-subscriber", "typenum", "vec_map", + "zkm-core-jit", "zkm-curves", + "zkm-pcs", "zkm-primitives", - "zkm-stark", +] + +[[package]] +name = "zkm-core-jit" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +dependencies = [ + "dynasmrt", + "hashbrown 0.14.5", + "libc", + "memfd", + "memmap2 0.9.11", + "p3-field", + "p3-koala-bear", + "serde", + "thiserror 1.0.69", + "tracing", ] [[package]] name = "zkm-core-machine" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "bincode", "cfg-if", @@ -10199,14 +9318,14 @@ dependencies = [ "zkm-core-executor", "zkm-curves", "zkm-derive", + "zkm-pcs", "zkm-primitives", - "zkm-stark", ] [[package]] name = "zkm-cuda" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "bincode", "ctrlc", @@ -10223,8 +9342,8 @@ dependencies = [ [[package]] name = "zkm-curves" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "cfg-if", "curve25519-dalek", @@ -10241,14 +9360,14 @@ dependencies = [ "thiserror 1.0.69", "tracing", "typenum", + "zkm-poly", "zkm-primitives", - "zkm-stark", ] [[package]] name = "zkm-derive" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "proc-macro2", "quote", @@ -10257,8 +9376,8 @@ dependencies = [ [[package]] name = "zkm-lib" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "bincode", "cfg-if", @@ -10268,10 +9387,64 @@ dependencies = [ "zkm-primitives", ] +[[package]] +name = "zkm-pcs" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +dependencies = [ + "arrayref", + "bincode", + "hashbrown 0.14.5", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-traits", + "p3-air", + "p3-challenger", + "p3-circle", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-keccak", + "p3-koala-bear", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-mersenne-31", + "p3-poseidon2", + "p3-symmetric", + "p3-uni-stark", + "p3-util", + "rand 0.8.5", + "rayon", + "rayon-scan", + "rmp-serde", + "serde", + "strum 0.26.3", + "strum_macros 0.26.4", + "sysinfo", + "tracing", + "tracing-forest", + "tracing-subscriber", + "zkm-derive", + "zkm-poly", + "zkm-primitives", + "zkm-zkvm", +] + +[[package]] +name = "zkm-poly" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +dependencies = [ + "itertools 0.13.0", + "p3-field", +] + [[package]] name = "zkm-primitives" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "bincode", "blake3", @@ -10290,24 +9463,27 @@ dependencies = [ [[package]] name = "zkm-prover" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "anyhow", "bincode", "clap", "dirs", "eyre", + "hex", "itertools 0.13.0", "lru 0.12.5", "num-bigint 0.4.6", - "p3-bn254-fr", + "p3-air", + "p3-bn254", "p3-challenger", "p3-commit", "p3-field", "p3-koala-bear", "p3-matrix", "p3-symmetric", + "p3-uni-stark", "p3-util", "rayon", "serde", @@ -10317,24 +9493,24 @@ dependencies = [ "tracing-subscriber", "zkm-core-executor", "zkm-core-machine", + "zkm-pcs", "zkm-primitives", "zkm-recursion-circuit", "zkm-recursion-compiler", "zkm-recursion-core", "zkm-recursion-gnark-ffi", - "zkm-stark", ] [[package]] name = "zkm-recursion-circuit" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", "num-traits", "p3-air", - "p3-bn254-fr", + "p3-bn254", "p3-challenger", "p3-commit", "p3-dft", @@ -10351,21 +9527,21 @@ dependencies = [ "zkm-core-executor", "zkm-core-machine", "zkm-derive", + "zkm-pcs", "zkm-primitives", "zkm-recursion-compiler", "zkm-recursion-core", "zkm-recursion-gnark-ffi", - "zkm-stark", ] [[package]] name = "zkm-recursion-compiler" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "backtrace", "itertools 0.13.0", - "p3-bn254-fr", + "p3-bn254", "p3-field", "p3-koala-bear", "p3-symmetric", @@ -10373,23 +9549,24 @@ dependencies = [ "tracing", "vec_map", "zkm-core-machine", + "zkm-pcs", "zkm-primitives", "zkm-recursion-core", "zkm-recursion-derive", - "zkm-stark", ] [[package]] name = "zkm-recursion-core" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "backtrace", + "bincode", "ff 0.13.1", "hashbrown 0.14.5", "itertools 0.13.0", "p3-air", - "p3-bn254-fr", + "p3-bn254", "p3-challenger", "p3-commit", "p3-dft", @@ -10405,6 +9582,7 @@ dependencies = [ "p3-util", "rand 0.8.5", "serde", + "sha2", "static_assertions", "thiserror 1.0.69", "tracing", @@ -10412,14 +9590,14 @@ dependencies = [ "zkhash", "zkm-core-machine", "zkm-derive", + "zkm-pcs", "zkm-primitives", - "zkm-stark", ] [[package]] name = "zkm-recursion-derive" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "quote", "syn 1.0.109", @@ -10427,8 +9605,8 @@ dependencies = [ [[package]] name = "zkm-recursion-gnark-ffi" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "anyhow", "bincode", @@ -10445,14 +9623,14 @@ dependencies = [ "sha2", "tempfile", "zkm-core-machine", + "zkm-pcs", "zkm-recursion-compiler", - "zkm-stark", ] [[package]] name = "zkm-sdk" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "alloy-primitives", "anyhow", @@ -10460,7 +9638,7 @@ dependencies = [ "bincode", "cfg-if", "dirs", - "ethers", + "flate2", "futures", "hashbrown 0.14.5", "hex", @@ -10471,12 +9649,13 @@ dependencies = [ "p3-field", "p3-fri", "p3-koala-bear", - "prost 0.11.9", + "prost 0.12.6", "reqwest 0.11.27", "serde", "serde_json", "strum 0.26.3", "strum_macros 0.26.4", + "tar", "tempfile", "thiserror 1.0.69", "tokio", @@ -10484,63 +9663,21 @@ dependencies = [ "tonic-build", "tracing", "twirp-rs", - "uuid 1.20.0", + "uuid", "vergen", "zkm-build", "zkm-core-executor", "zkm-core-machine", "zkm-cuda", + "zkm-pcs", "zkm-primitives", "zkm-prover", - "zkm-stark", -] - -[[package]] -name = "zkm-stark" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" -dependencies = [ - "arrayref", - "hashbrown 0.14.5", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-traits", - "p3-air", - "p3-challenger", - "p3-circle", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-keccak", - "p3-koala-bear", - "p3-matrix", - "p3-maybe-rayon", - "p3-mds", - "p3-merkle-tree", - "p3-mersenne-31", - "p3-poseidon2", - "p3-symmetric", - "p3-uni-stark", - "p3-util", - "rand 0.8.5", - "rayon-scan", - "serde", - "strum 0.26.3", - "strum_macros 0.26.4", - "sysinfo", - "tracing", - "tracing-forest", - "tracing-subscriber", - "zkm-derive", - "zkm-primitives", - "zkm-zkvm", ] [[package]] name = "zkm-zkvm" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "bincode", "cfg-if", @@ -10556,18 +9693,9 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "zstd" @@ -10575,17 +9703,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ - "zstd-safe 7.2.4", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", + "zstd-safe", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 5fdd4de..7375203 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,10 +48,10 @@ primitives = { path = "./crates/primitives" } provider = { path = "./crates/provider" } # Ziren -zkm-build = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } -zkm-core-executor = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } -zkm-prover = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } -zkm-sdk = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } +zkm-build = { git = "https://github.com/ProjectZKM/Ziren" } +zkm-core-executor = { git = "https://github.com/ProjectZKM/Ziren" } +zkm-prover = { git = "https://github.com/ProjectZKM/Ziren" } +zkm-sdk = { git = "https://github.com/ProjectZKM/Ziren" } # zkm-build = { path = "../Ziren/crates/build" } # zkm-core-executor = { path = "../Ziren/crates/core/executor" } @@ -188,7 +188,7 @@ op-alloy-rpc-types = { git = "https://github.com/ziren-patches/op-alloy", branch # op-alloy-network = { path = "../patch/op-alloy/crates/network" } # op-alloy-rpc-types = { path = "../patch/op-alloy/crates/rpc-types" } -kzg-rs = { git = "https://github.com/ziren-patches/kzg-rs", tag = "patch-0.2.7-ziren-1.2.7" } +kzg-rs = { git = "https://github.com/ziren-patches/kzg-rs", branch = "patch-0.2.7", default-features = false } [workspace.lints] rust.missing_debug_implementations = "warn" @@ -200,7 +200,7 @@ rustdoc.all = "warn" [patch.crates-io] # Precompile patches sha2 = { git = "https://github.com/ziren-patches/RustCrypto-hashes", branch = "patch-sha2-0.10.9", package = "sha2" } -bn = { git = "https://github.com/ziren-patches/bn", tag = "patch-0.6.0-ziren-1.2.7", package = "substrate-bn" } -k256 = { git = "https://github.com/ziren-patches/elliptic-curves", tag = "patch-k256-0.13.4-ziren-1.2.7" } -p256 = { git = "https://github.com/ziren-patches/elliptic-curves", tag = "patch-p256-0.13.2-ziren-1.2.7" } -alloy-primitives-v1-4-1 = { git = "https://github.com/ziren-patches/core.git", package = "alloy-primitives", tag = "patch-alloy-primitives-1.4.1-ziren-1.2.7" } +bn = { git = "https://github.com/ziren-patches/bn", branch = "patch-0.6.0", package = "substrate-bn" } +k256 = { git = "https://github.com/ziren-patches/elliptic-curves", branch = "patch-k256-0.13.4" } +p256 = { git = "https://github.com/ziren-patches/elliptic-curves", branch = "patch-p256-0.13.2" } +alloy-primitives-v1-4-1 = { git = "https://github.com/ziren-patches/core.git", package = "alloy-primitives", branch = "patch-alloy-primitives-1.4.1" } diff --git a/bin/guest/Cargo.lock b/bin/guest/Cargo.lock index 49bbfaf..cf8078c 100644 --- a/bin/guest/Cargo.lock +++ b/bin/guest/Cargo.lock @@ -252,7 +252,7 @@ dependencies = [ [[package]] name = "alloy-primitives" version = "1.4.1" -source = "git+https://github.com/ziren-patches/core.git?tag=patch-alloy-primitives-1.4.1-ziren-1.2.7#0d034202c9977acd601399efdd9c30fd1c1a08a0" +source = "git+https://github.com/ziren-patches/core.git?branch=patch-alloy-primitives-1.4.1#59313700f710f1373a5b4cdc05c51dc3227d8064" dependencies = [ "alloy-rlp", "bytes", @@ -356,7 +356,7 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", - "itertools 0.14.0", + "itertools 0.13.0", "serde", "serde_json", "serde_with", @@ -919,7 +919,7 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/ziren-patches/bls12_381?tag=patch-0.8.0-ziren-1.2.7#97b215f80e9bfab9ad6641e41b005b6d8e58f748" +source = "git+https://github.com/ziren-patches/bls12_381?branch=patch-0.8.0#bcf9397426410acc171ad625416b508dc913be8e" dependencies = [ "cfg-if", "ff", @@ -1591,12 +1591,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - [[package]] name = "generic-array" version = "0.14.9" @@ -1999,7 +1993,7 @@ dependencies = [ [[package]] name = "k256" version = "0.13.4" -source = "git+https://github.com/ziren-patches/elliptic-curves?tag=patch-k256-0.13.4-ziren-1.2.7#5d641926a5ea6b7dee8b3a1410a49162aeb66ebf" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-k256-0.13.4#8266b228a39402a0ba68d644b7f26b85b5112fe3" dependencies = [ "cfg-if", "ecdsa", @@ -2033,14 +2027,14 @@ dependencies = [ [[package]] name = "kzg-rs" version = "0.2.7" -source = "git+https://github.com/ziren-patches/kzg-rs?tag=patch-0.2.7-ziren-1.2.7#8288c61a5917f5227e156b5660fbcfc4c3b14220" +source = "git+https://github.com/ziren-patches/kzg-rs?branch=patch-0.2.7#855ea697cd8c5ca9038e3a3ceb2c0efcd88aec29" dependencies = [ "bls12_381", "ff", "hex", "serde_arrays", "sha2", - "spin", + "spin 0.9.8", ] [[package]] @@ -2049,7 +2043,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin", + "spin 0.9.8", ] [[package]] @@ -2176,7 +2170,6 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "rand 0.8.5", ] [[package]] @@ -2266,18 +2259,6 @@ dependencies = [ "syn 2.0.112", ] -[[package]] -name = "nums" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3c74f925fb8cfc49a8022f2afce48a0683b70f9e439885594e84c5edbf5b01" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "rand 0.8.5", -] - [[package]] name = "nybbles" version = "0.4.6" @@ -2321,7 +2302,7 @@ dependencies = [ [[package]] name = "p256" version = "0.13.2" -source = "git+https://github.com/ziren-patches/elliptic-curves?tag=patch-p256-0.13.2-ziren-1.2.7#91874d8de3e78b2f71d2096684189c687eb55cf3" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" dependencies = [ "ecdsa", "elliptic-curve", @@ -2331,136 +2312,157 @@ dependencies = [ "zkm-lib", ] +[[package]] +name = "p3-challenger" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-monty-31", + "p3-symmetric", + "p3-util", + "tracing", +] + [[package]] name = "p3-dft" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-field", "p3-matrix", "p3-maybe-rayon", "p3-util", + "spin 0.10.1", "tracing", ] [[package]] name = "p3-field" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "num-bigint 0.4.6", - "num-integer", - "num-traits", - "nums", "p3-maybe-rayon", "p3-util", - "rand 0.8.5", + "paste", + "rand 0.10.3", "serde", "tracing", ] [[package]] name = "p3-koala-bear" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ + "p3-challenger", "p3-field", "p3-mds", "p3-monty-31", + "p3-poseidon1", "p3-poseidon2", "p3-symmetric", - "rand 0.8.5", - "serde", + "rand 0.10.3", ] [[package]] name = "p3-matrix" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-field", "p3-maybe-rayon", "p3-util", - "rand 0.8.5", + "rand 0.10.3", "serde", "tracing", - "transpose", ] [[package]] name = "p3-maybe-rayon" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" [[package]] name = "p3-mds" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", "p3-dft", "p3-field", - "p3-matrix", "p3-symmetric", "p3-util", - "rand 0.8.5", + "rand 0.10.3", ] [[package]] name = "p3-monty-31" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "num-bigint 0.4.6", "p3-dft", "p3-field", "p3-matrix", "p3-maybe-rayon", "p3-mds", + "p3-poseidon1", "p3-poseidon2", "p3-symmetric", "p3-util", - "rand 0.8.5", + "paste", + "rand 0.10.3", "serde", - "serde_json", + "spin 0.10.1", "tracing", - "transpose", +] + +[[package]] +name = "p3-poseidon1" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" +dependencies = [ + "p3-field", + "p3-symmetric", + "rand 0.10.3", ] [[package]] name = "p3-poseidon2" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "gcd", "p3-field", "p3-mds", "p3-symmetric", - "rand 0.8.5", - "serde", + "p3-util", + "rand 0.10.3", ] [[package]] name = "p3-symmetric" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "itertools 0.13.0", + "itertools 0.14.0", "p3-field", + "p3-util", "serde", ] [[package]] name = "p3-util" -version = "0.1.0" -source = "git+https://github.com/ProjectZKM/Plonky3#faa24ca4597eebeecbf71b194b71c7d1a99b3f01" +version = "0.5.1" +source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" dependencies = [ - "lock_api", "serde", + "transpose", ] [[package]] @@ -2626,7 +2628,7 @@ dependencies = [ [[package]] name = "primeorder" version = "0.13.1" -source = "git+https://github.com/ziren-patches/elliptic-curves?tag=patch-p256-0.13.2-ziren-1.2.7#91874d8de3e78b2f71d2096684189c687eb55cf3" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" dependencies = [ "elliptic-curve", ] @@ -2767,6 +2769,15 @@ dependencies = [ "serde", ] +[[package]] +name = "rand" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" +dependencies = [ + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -2806,6 +2817,12 @@ dependencies = [ "serde", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "rand_xorshift" version = "0.4.0" @@ -3803,6 +3820,15 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "spin" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "023a211cb3138dbc438680b32560ad89f699977624c9f8dbb95a47d5b4c07dd3" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.7.3" @@ -3861,7 +3887,7 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/ziren-patches/bn?tag=patch-0.6.0-ziren-1.2.7#0dfeeb1b7bfc21941b6e4964d678abd094a54a6f" +source = "git+https://github.com/ziren-patches/bn?branch=patch-0.6.0#aba71380457d798039111e6cc0fdf2e0718c6766" dependencies = [ "bytemuck", "byteorder", @@ -4477,8 +4503,8 @@ dependencies = [ [[package]] name = "zkm-lib" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "bincode", "cfg-if", @@ -4490,8 +4516,8 @@ dependencies = [ [[package]] name = "zkm-primitives" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "bincode", "blake3", @@ -4510,8 +4536,8 @@ dependencies = [ [[package]] name = "zkm-zkvm" -version = "1.2.7" -source = "git+https://github.com/ProjectZKM/Ziren?tag=v1.2.7#7dc2037c6ef99d5772c756556350698fad01c559" +version = "2.0.0" +source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" dependencies = [ "bincode", "cfg-if", diff --git a/bin/guest/Cargo.toml b/bin/guest/Cargo.toml index 833cab1..c4ddad3 100644 --- a/bin/guest/Cargo.toml +++ b/bin/guest/Cargo.toml @@ -18,7 +18,7 @@ bincode = "1.3.3" guest-executor = { path = "../../crates/executor/guest" } # Ziren -zkm-zkvm = { git = "https://github.com/ProjectZKM/Ziren", tag = "v1.2.7" } +zkm-zkvm = { git = "https://github.com/ProjectZKM/Ziren" } # zkm-zkvm = { path = "../../../Ziren/crates/zkvm/entrypoint" } # Statically turns off logging @@ -28,7 +28,7 @@ tracing = { version = "0.1", features = ["max_level_off", "release_max_level_off [patch.crates-io] # Precompile patches sha2 = { git = "https://github.com/ziren-patches/RustCrypto-hashes", branch = "patch-sha2-0.10.9", package = "sha2" } -bn = { git = "https://github.com/ziren-patches/bn", tag = "patch-0.6.0-ziren-1.2.7", package = "substrate-bn" } -k256 = { git = "https://github.com/ziren-patches/elliptic-curves", tag = "patch-k256-0.13.4-ziren-1.2.7" } -p256 = { git = "https://github.com/ziren-patches/elliptic-curves", tag = "patch-p256-0.13.2-ziren-1.2.7" } -alloy-primitives-v1-4-1 = { git = "https://github.com/ziren-patches/core.git", package = "alloy-primitives", tag = "patch-alloy-primitives-1.4.1-ziren-1.2.7" } +bn = { git = "https://github.com/ziren-patches/bn", branch = "patch-0.6.0", package = "substrate-bn" } +k256 = { git = "https://github.com/ziren-patches/elliptic-curves", branch = "patch-k256-0.13.4" } +p256 = { git = "https://github.com/ziren-patches/elliptic-curves", branch = "patch-p256-0.13.2" } +alloy-primitives-v1-4-1 = { git = "https://github.com/ziren-patches/core.git", package = "alloy-primitives", branch = "patch-alloy-primitives-1.4.1" } diff --git a/bin/host/input/1/24438200.bin b/bin/host/input/1/24438200.bin index 913a26674106985e5c59168e3b808a3e1da924fd..a08bdf4eca353da88eb696ac1281514dd59ff766 100644 GIT binary patch delta 4414 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 Vm-zO1b@oE9eFYm`nJ_QB@E=qVdT;;$ delta 164323 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

Gq@x8H*1KruhATW1vXB7; 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 Sc3-~ChV3?*Mn}X>diDTF*`4|T delta 25194 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 diff --git a/bin/host/input/48816/9831027.bin b/bin/host/input/48816/9831027.bin index c1775e23ee0ef0e51395dab736590fe140519854..e1b92bf76e66cc4e823347004496c789b23571b3 100644 GIT binary patch delta 223 zcmZ3!f^+Rvjt!BMCX24unf&>b&g6;fbS7ti)0sT~RLJD%-&Sw7T%RVrIdaklq0REA zU6dxj1WKm@vG});$(&0=CJU|$*&Mrc3&-ZC*cGYU_ikjQAqbe(UysxFiKcH<<*eSC}#+u4g5-8mRf zZ=YDhc!`;5PT+LiyNt5i%^De70~x1o*SX6$N1E~2_QpSq=d?JW=B?eXqRX^Jk+EsI MXE0MI8!K2C0OnOsxc~qF delta 10018 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 diff --git a/crates/executor/guest/examples/convert_input.rs b/crates/executor/guest/examples/convert_input.rs new file mode 100644 index 0000000..12385b2 --- /dev/null +++ b/crates/executor/guest/examples/convert_input.rs @@ -0,0 +1,47 @@ +//! Rewrites a cached client input from the layout that shipped revm `Bytecode` +//! (with the host's jump table) to the one that ships the deployed bytes. +//! +//! Usage: convert_input ... (each file is rewritten in place) + +use alloy_consensus::{Block, Header}; +use alloy_primitives::Address; +use guest_executor::io::EthClientExecutorInput; +use mpt::EthereumState; +use primitives::genesis::Genesis; +use reth_ethereum_primitives::TransactionSigned; +use revm::state::Bytecode; +use serde::Deserialize; +use serde_with::serde_as; + +#[serde_as] +#[derive(Deserialize)] +struct OldInput { + #[serde_as( + as = "reth_primitives_traits::serde_bincode_compat::Block<'_, TransactionSigned, Header>" + )] + current_block: Block, + #[serde_as(as = "Vec")] + ancestor_headers: Vec
    , + parent_state: EthereumState, + bytecodes: Vec, + genesis: Genesis, + custom_beneficiary: Option
    , + opcode_tracking: bool, +} + +fn main() { + for path in std::env::args().skip(1) { + let old: OldInput = bincode::deserialize(&std::fs::read(&path).unwrap()).unwrap(); + let new = EthClientExecutorInput { + current_block: old.current_block, + ancestor_headers: old.ancestor_headers, + parent_state: old.parent_state, + bytecodes: old.bytecodes.iter().map(|code| code.original_bytes()).collect(), + genesis: old.genesis, + custom_beneficiary: old.custom_beneficiary, + opcode_tracking: old.opcode_tracking, + }; + std::fs::write(&path, bincode::serialize(&new).unwrap()).unwrap(); + println!("{path}: {} bytecodes", new.bytecodes.len()); + } +} diff --git a/crates/executor/guest/src/executor.rs b/crates/executor/guest/src/executor.rs index 910090f..f8c695e 100644 --- a/crates/executor/guest/src/executor.rs +++ b/crates/executor/guest/src/executor.rs @@ -21,7 +21,7 @@ use crate::{ custom::{CustomCrypto, CustomEvmFactory}, error::ClientError, into_primitives::FromInput, - io::{ClientExecutorInput, TrieDB, WitnessInput}, + io::{analyze_bytecodes, ClientExecutorInput, TrieDB, WitnessInput}, tracking::OpCodesTrackingBlockExecutor, BlockValidator, }; @@ -169,10 +169,7 @@ where } } - let bytecodes_by_hash = input - .bytecodes() - .map(|code| (code.hash_slow(), code)) - .collect::>(); + let bytecodes_by_hash = analyze_bytecodes(input.bytecodes()); // Verify and build block hashes let mut block_hashes: HashMap = diff --git a/crates/executor/guest/src/io.rs b/crates/executor/guest/src/io.rs index 59465e8..2a87657 100644 --- a/crates/executor/guest/src/io.rs +++ b/crates/executor/guest/src/io.rs @@ -14,7 +14,7 @@ use revm::{ state::{AccountInfo, Bytecode}, DatabaseRef, }; -use revm_primitives::{keccak256, Address, B256, U256}; +use revm_primitives::{keccak256, Address, Bytes, B256, U256}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; @@ -42,8 +42,10 @@ pub struct ClientExecutorInput { pub ancestor_headers: Vec
    , /// Network state as of the parent block. pub parent_state: EthereumState, - /// Account bytecodes. - pub bytecodes: Vec, + /// Account bytecodes as deployed. The guest derives every jump table itself: a table + /// shipped by the host would decide which jumps are valid without being bound by the code + /// hash, which covers the code bytes only. + pub bytecodes: Vec, /// The genesis block, as a json string. pub genesis: Genesis, /// The genesis block, as a json string. @@ -77,7 +79,7 @@ impl WitnessInput for ClientExecutorInput

    { } #[inline(always)] - fn bytecodes(&self) -> impl Iterator { + fn bytecodes(&self) -> impl Iterator { self.bytecodes.iter() } @@ -106,14 +108,14 @@ impl From

    for CommittedHeader { pub struct TrieDB<'a> { inner: &'a EthereumState, block_hashes: HashMap, - bytecode_by_hash: HashMap, + bytecode_by_hash: HashMap, } impl<'a> TrieDB<'a> { pub fn new( inner: &'a EthereumState, block_hashes: HashMap, - bytecode_by_hash: HashMap, + bytecode_by_hash: HashMap, ) -> Self { Self { inner, block_hashes, bytecode_by_hash } } @@ -146,7 +148,7 @@ impl DatabaseRef for TrieDB<'_> { /// Get account code by its hash. fn code_by_hash_ref(&self, hash: B256) -> Result { - Ok(self.bytecode_by_hash.get(&hash).map(|code| (*code).clone()).unwrap()) + Ok(self.bytecode_by_hash.get(&hash).cloned().unwrap()) } /// Get storage value of address at index. @@ -175,6 +177,20 @@ impl DatabaseRef for TrieDB<'_> { } } +/// The shipped bytecodes analyzed in the guest, keyed by their hash: legacy code gets +/// the jump table revm derives from its bytes, EIP-7702 delegations their designator. +pub(crate) fn analyze_bytecodes<'b>( + codes: impl Iterator, +) -> HashMap { + codes + .map(|code| { + let code = Bytecode::new_raw_checked(code.clone()) + .expect("shipped bytecode must be legacy code or an EIP-7702 delegation"); + (code.hash_slow(), code) + }) + .collect() +} + /// A trait for constructing [`WitnessDb`]. pub trait WitnessInput { /// Gets a reference to the state from which account info and storage slots are loaded. @@ -184,8 +200,8 @@ pub trait WitnessInput { /// [state()](trait.WitnessInput#tymethod.state) must conform to. fn state_anchor(&self) -> B256; - /// Gets an iterator over account bytecodes. - fn bytecodes(&self) -> impl Iterator; + /// Gets an iterator over the account bytecodes, as deployed. + fn bytecodes(&self) -> impl Iterator; /// Gets an iterator over references to a consecutive, reverse-chronological block headers /// starting from the current block header. @@ -215,8 +231,7 @@ pub trait WitnessInput { } } - let bytecodes_by_hash = - self.bytecodes().map(|code| (code.hash_slow(), code)).collect::>(); + let bytecodes_by_hash = analyze_bytecodes(self.bytecodes()); // Verify and build block hashes let mut block_hashes: HashMap = HashMap::with_hasher(Default::default()); diff --git a/crates/executor/host/src/host_executor.rs b/crates/executor/host/src/host_executor.rs index a3db56e..8159784 100644 --- a/crates/executor/host/src/host_executor.rs +++ b/crates/executor/host/src/host_executor.rs @@ -229,7 +229,7 @@ impl HostExecutor { current_block: C::Primitives::into_input_block(current_block), ancestor_headers, parent_state: state, - bytecodes: rpc_db.bytecodes(), + bytecodes: rpc_db.bytecodes().iter().map(|code| code.original_bytes()).collect(), genesis, custom_beneficiary, opcode_tracking, From 805a8856a1f06b59d8ab5f92124c91b497832112 Mon Sep 17 00:00:00 2001 From: Blake <0xblake.sg@gmail.com> Date: Wed, 21 Oct 2026 12:09:27 +0800 Subject: [PATCH 12/12] chore: update dependencies --- Cargo.lock | 217 ++++--------------------------------------- bin/guest/Cargo.lock | 22 ++--- 2 files changed, 31 insertions(+), 208 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 82b4c2a..b5c7d2e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -361,7 +361,7 @@ dependencies = [ "either", "futures", "futures-utils-wasm", - "lru 0.13.0", + "lru", "parking_lot 0.12.5", "pin-project", "reqwest 0.12.28", @@ -2173,37 +2173,6 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" -[[package]] -name = "defmt" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" -dependencies = [ - "bitflags 1.3.2", - "defmt-macros", -] - -[[package]] -name = "defmt-macros" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" -dependencies = [ - "defmt-parser", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "defmt-parser" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" -dependencies = [ - "thiserror 2.0.18", -] - [[package]] name = "der" version = "0.7.10" @@ -2543,29 +2512,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "env_filter" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "jiff", - "log", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -3797,31 +3743,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" -[[package]] -name = "jiff" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961d16382652bfdd8c6f68b223b26a8c93e0d475c672f414411db31c6c5c900e" -dependencies = [ - "defmt", - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde_core", -] - -[[package]] -name = "jiff-static" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0879bd39df99c4c5e2c6615ccc026391a423dde10532c573e6086eb94a802cc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "jobserver" version = "0.1.34" @@ -4010,15 +3931,6 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.5", -] - [[package]] name = "lru" version = "0.13.0" @@ -4668,25 +4580,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "p3-circle" -version = "0.5.1" -source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" -dependencies = [ - "itertools 0.14.0", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "serde", - "thiserror 2.0.18", - "tracing", -] - [[package]] name = "p3-commit" version = "0.5.1" @@ -4764,16 +4657,6 @@ dependencies = [ "p3-util", ] -[[package]] -name = "p3-keccak" -version = "0.5.1" -source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" -dependencies = [ - "p3-symmetric", - "p3-util", - "tiny-keccak", -] - [[package]] name = "p3-keccak-air" version = "0.5.1" @@ -4855,27 +4738,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "p3-mersenne-31" -version = "0.5.1" -source = "git+https://github.com/ProjectZKM/Plonky3?rev=4dd0d47a8176503fbaa7293c9f0e3b20004e16b2#4dd0d47a8176503fbaa7293c9f0e3b20004e16b2" -dependencies = [ - "itertools 0.14.0", - "num-bigint 0.4.6", - "p3-challenger", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-mds", - "p3-poseidon1", - "p3-poseidon2", - "p3-symmetric", - "p3-util", - "paste", - "rand 0.10.0", - "serde", -] - [[package]] name = "p3-monty-31" version = "0.5.1" @@ -5256,15 +5118,6 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" -[[package]] -name = "portable-atomic-util" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" -dependencies = [ - "portable-atomic", -] - [[package]] name = "potential_utf" version = "0.1.4" @@ -7299,12 +7152,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" -[[package]] -name = "size" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" - [[package]] name = "slab" version = "0.4.12" @@ -9201,7 +9048,7 @@ dependencies = [ [[package]] name = "zkm-build" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "anyhow", "cargo_metadata", @@ -9212,14 +9059,13 @@ dependencies = [ [[package]] name = "zkm-core-executor" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "anyhow", "bincode", "bytemuck", "elf", "enum-map", - "env_logger", "eyre", "hashbrown 0.14.5", "hex", @@ -9233,18 +9079,14 @@ dependencies = [ "p3-koala-bear", "p3-maybe-rayon", "p3-symmetric", - "rand 0.8.5", - "rayon-scan", "rustc-hash 2.1.1", "serde", "serde_json", - "sha2", "strum 0.26.3", "strum_macros 0.26.4", "thiserror 1.0.69", "tiny-keccak", "tracing", - "tracing-subscriber", "typenum", "vec_map", "zkm-core-jit", @@ -9256,24 +9098,20 @@ dependencies = [ [[package]] name = "zkm-core-jit" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "dynasmrt", - "hashbrown 0.14.5", "libc", "memfd", "memmap2 0.9.11", - "p3-field", - "p3-koala-bear", "serde", "thiserror 1.0.69", - "tracing", ] [[package]] name = "zkm-core-machine" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "bincode", "cfg-if", @@ -9297,17 +9135,14 @@ dependencies = [ "p3-poseidon2", "p3-uni-stark", "p3-util", - "rand 0.8.5", "rayon", "rayon-scan", "serde", "serde_json", - "size", "snowbridge-amcl", "static_assertions", "strum 0.26.3", "strum_macros 0.26.4", - "tempfile", "thiserror 1.0.69", "tiny-keccak", "tracing", @@ -9325,7 +9160,7 @@ dependencies = [ [[package]] name = "zkm-cuda" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "bincode", "ctrlc", @@ -9343,7 +9178,7 @@ dependencies = [ [[package]] name = "zkm-curves" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "cfg-if", "curve25519-dalek", @@ -9367,7 +9202,7 @@ dependencies = [ [[package]] name = "zkm-derive" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "proc-macro2", "quote", @@ -9377,7 +9212,7 @@ dependencies = [ [[package]] name = "zkm-lib" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "bincode", "cfg-if", @@ -9390,7 +9225,7 @@ dependencies = [ [[package]] name = "zkm-pcs" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "arrayref", "bincode", @@ -9400,22 +9235,18 @@ dependencies = [ "num-traits", "p3-air", "p3-challenger", - "p3-circle", "p3-commit", "p3-dft", "p3-field", "p3-fri", - "p3-keccak", "p3-koala-bear", "p3-matrix", "p3-maybe-rayon", "p3-merkle-tree", - "p3-mersenne-31", "p3-poseidon2", "p3-symmetric", "p3-uni-stark", "p3-util", - "rand 0.8.5", "rayon", "rayon-scan", "rmp-serde", @@ -9424,18 +9255,15 @@ dependencies = [ "strum_macros 0.26.4", "sysinfo", "tracing", - "tracing-forest", - "tracing-subscriber", "zkm-derive", "zkm-poly", "zkm-primitives", - "zkm-zkvm", ] [[package]] name = "zkm-poly" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "itertools 0.13.0", "p3-field", @@ -9444,7 +9272,7 @@ dependencies = [ [[package]] name = "zkm-primitives" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "bincode", "blake3", @@ -9464,7 +9292,7 @@ dependencies = [ [[package]] name = "zkm-prover" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "anyhow", "bincode", @@ -9473,7 +9301,6 @@ dependencies = [ "eyre", "hex", "itertools 0.13.0", - "lru 0.12.5", "num-bigint 0.4.6", "p3-air", "p3-bn254", @@ -9504,11 +9331,10 @@ dependencies = [ [[package]] name = "zkm-recursion-circuit" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", - "num-traits", "p3-air", "p3-bn254", "p3-challenger", @@ -9520,7 +9346,6 @@ dependencies = [ "p3-matrix", "p3-symmetric", "p3-util", - "rand 0.8.5", "rayon", "serde", "tracing", @@ -9531,13 +9356,12 @@ dependencies = [ "zkm-primitives", "zkm-recursion-compiler", "zkm-recursion-core", - "zkm-recursion-gnark-ffi", ] [[package]] name = "zkm-recursion-compiler" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "backtrace", "itertools 0.13.0", @@ -9558,7 +9382,7 @@ dependencies = [ [[package]] name = "zkm-recursion-core" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "backtrace", "bincode", @@ -9597,7 +9421,7 @@ dependencies = [ [[package]] name = "zkm-recursion-derive" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "quote", "syn 1.0.109", @@ -9606,7 +9430,7 @@ dependencies = [ [[package]] name = "zkm-recursion-gnark-ffi" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "anyhow", "bincode", @@ -9630,9 +9454,8 @@ dependencies = [ [[package]] name = "zkm-sdk" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ - "alloy-primitives", "anyhow", "async-trait", "bincode", @@ -9677,7 +9500,7 @@ dependencies = [ [[package]] name = "zkm-zkvm" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "bincode", "cfg-if", diff --git a/bin/guest/Cargo.lock b/bin/guest/Cargo.lock index cf8078c..704c95c 100644 --- a/bin/guest/Cargo.lock +++ b/bin/guest/Cargo.lock @@ -252,7 +252,7 @@ dependencies = [ [[package]] name = "alloy-primitives" version = "1.4.1" -source = "git+https://github.com/ziren-patches/core.git?branch=patch-alloy-primitives-1.4.1#59313700f710f1373a5b4cdc05c51dc3227d8064" +source = "git+https://github.com/ziren-patches/core.git?branch=patch-alloy-primitives-1.4.1#9a486222bba5a50084aa1335bff9c66e051b80b1" dependencies = [ "alloy-rlp", "bytes", @@ -356,7 +356,7 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", - "itertools 0.13.0", + "itertools 0.14.0", "serde", "serde_json", "serde_with", @@ -919,7 +919,7 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/ziren-patches/bls12_381?branch=patch-0.8.0#bcf9397426410acc171ad625416b508dc913be8e" +source = "git+https://github.com/ziren-patches/bls12_381?branch=patch-0.8.0#1bee78db02337751d5334437c1bb3fe244e283d7" dependencies = [ "cfg-if", "ff", @@ -1993,7 +1993,7 @@ dependencies = [ [[package]] name = "k256" version = "0.13.4" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-k256-0.13.4#8266b228a39402a0ba68d644b7f26b85b5112fe3" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-k256-0.13.4#5eb7ea2e3d237d5f4bfc51d88d46e32ffb879765" dependencies = [ "cfg-if", "ecdsa", @@ -2027,7 +2027,7 @@ dependencies = [ [[package]] name = "kzg-rs" version = "0.2.7" -source = "git+https://github.com/ziren-patches/kzg-rs?branch=patch-0.2.7#855ea697cd8c5ca9038e3a3ceb2c0efcd88aec29" +source = "git+https://github.com/ziren-patches/kzg-rs?branch=patch-0.2.7#35725e54518a1b56ec908d12e77f3fc9891f643d" dependencies = [ "bls12_381", "ff", @@ -2302,7 +2302,7 @@ dependencies = [ [[package]] name = "p256" version = "0.13.2" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#3ebed19cd7069e9b1f883176c4b16e3dd3d2e747" dependencies = [ "ecdsa", "elliptic-curve", @@ -2628,7 +2628,7 @@ dependencies = [ [[package]] name = "primeorder" version = "0.13.1" -source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#a6f1a1fb07020d00f627725a20dc336983be3946" +source = "git+https://github.com/ziren-patches/elliptic-curves?branch=patch-p256-0.13.2#3ebed19cd7069e9b1f883176c4b16e3dd3d2e747" dependencies = [ "elliptic-curve", ] @@ -3887,7 +3887,7 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/ziren-patches/bn?branch=patch-0.6.0#aba71380457d798039111e6cc0fdf2e0718c6766" +source = "git+https://github.com/ziren-patches/bn?branch=patch-0.6.0#509192f90ef14511bfa64681b2d7c8333df13979" dependencies = [ "bytemuck", "byteorder", @@ -4504,7 +4504,7 @@ dependencies = [ [[package]] name = "zkm-lib" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "bincode", "cfg-if", @@ -4517,7 +4517,7 @@ dependencies = [ [[package]] name = "zkm-primitives" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "bincode", "blake3", @@ -4537,7 +4537,7 @@ dependencies = [ [[package]] name = "zkm-zkvm" version = "2.0.0" -source = "git+https://github.com/ProjectZKM/Ziren#31f6e8ebab62025d1c8350ae35e2636e3857a024" +source = "git+https://github.com/ProjectZKM/Ziren#a26a53d59718b192ae29919864fd7be7055030fe" dependencies = [ "bincode", "cfg-if",