From 768244fd6bc3d4299a77f7364370578a607dc36b Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 4 Dec 2025 13:47:22 +0800 Subject: [PATCH 01/26] save --- crates/types/base/src/public_inputs.rs | 2 ++ crates/types/base/src/public_inputs/dogeos.rs | 3 +++ .../base/src/public_inputs/dogeos/batch.rs | 1 + .../base/src/public_inputs/dogeos/bundle.rs | 1 + .../base/src/public_inputs/dogeos/chunk.rs | 26 +++++++++++++++++++ crates/types/chunk/src/dogeos.rs | 5 ++++ crates/types/chunk/src/dogeos/execute.rs | 20 ++++++++++++++ crates/types/chunk/src/dogeos/types.rs | 0 crates/types/chunk/src/dogeos/witness.rs | 10 +++++++ crates/types/chunk/src/lib.rs | 3 +++ 10 files changed, 71 insertions(+) create mode 100644 crates/types/base/src/public_inputs/dogeos.rs create mode 100644 crates/types/base/src/public_inputs/dogeos/batch.rs create mode 100644 crates/types/base/src/public_inputs/dogeos/bundle.rs create mode 100644 crates/types/base/src/public_inputs/dogeos/chunk.rs create mode 100644 crates/types/chunk/src/dogeos.rs create mode 100644 crates/types/chunk/src/dogeos/execute.rs create mode 100644 crates/types/chunk/src/dogeos/types.rs create mode 100644 crates/types/chunk/src/dogeos/witness.rs diff --git a/crates/types/base/src/public_inputs.rs b/crates/types/base/src/public_inputs.rs index bd0f168e..e2e2f081 100644 --- a/crates/types/base/src/public_inputs.rs +++ b/crates/types/base/src/public_inputs.rs @@ -3,6 +3,8 @@ use alloy_primitives::B256; pub mod scroll; +pub mod dogeos; + pub use crate::{fork_name::ForkName, version::Version}; /// Defines behaviour to be implemented by types representing the public-input values of a circuit. diff --git a/crates/types/base/src/public_inputs/dogeos.rs b/crates/types/base/src/public_inputs/dogeos.rs new file mode 100644 index 00000000..be5d054c --- /dev/null +++ b/crates/types/base/src/public_inputs/dogeos.rs @@ -0,0 +1,3 @@ +pub mod chunk; +pub mod batch; +pub mod bundle; diff --git a/crates/types/base/src/public_inputs/dogeos/batch.rs b/crates/types/base/src/public_inputs/dogeos/batch.rs new file mode 100644 index 00000000..0c13d06b --- /dev/null +++ b/crates/types/base/src/public_inputs/dogeos/batch.rs @@ -0,0 +1 @@ +pub type BatchInfo = crate::public_inputs::scroll::batch::BatchInfo; diff --git a/crates/types/base/src/public_inputs/dogeos/bundle.rs b/crates/types/base/src/public_inputs/dogeos/bundle.rs new file mode 100644 index 00000000..5093ab5a --- /dev/null +++ b/crates/types/base/src/public_inputs/dogeos/bundle.rs @@ -0,0 +1 @@ +pub type BundleInfo = crate::public_inputs::scroll::bundle::BundleInfo; diff --git a/crates/types/base/src/public_inputs/dogeos/chunk.rs b/crates/types/base/src/public_inputs/dogeos/chunk.rs new file mode 100644 index 00000000..1b9e75a6 --- /dev/null +++ b/crates/types/base/src/public_inputs/dogeos/chunk.rs @@ -0,0 +1,26 @@ +use alloy_primitives::B256; +use crate::public_inputs::{scroll, Version}; +use crate::public_inputs::MultiVersionPublicInputs; +use crate::utils::keccak256; + +/// Represents header-like information for the chunk. +#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)] +pub struct DogeOsChunkInfo { + /// Scroll ChunkInfo + pub inner: scroll::chunk::ChunkInfo, + /// Other DogeOs-specific fields can be added here + /// ... +} + + +impl MultiVersionPublicInputs for DogeOsChunkInfo { + fn pi_by_version(&self, version: Version) -> Vec { + let scroll_chunk_pi = self.inner.pi_by_version(version); + + scroll_chunk_pi + } + + fn validate(&self, prev_pi: &Self, version: crate::version::Version) { + self.inner.validate(&prev_pi.inner, version) + } +} diff --git a/crates/types/chunk/src/dogeos.rs b/crates/types/chunk/src/dogeos.rs new file mode 100644 index 00000000..2ab76ce1 --- /dev/null +++ b/crates/types/chunk/src/dogeos.rs @@ -0,0 +1,5 @@ +mod types; + +mod execute; + +mod witness; diff --git a/crates/types/chunk/src/dogeos/execute.rs b/crates/types/chunk/src/dogeos/execute.rs new file mode 100644 index 00000000..91146ae5 --- /dev/null +++ b/crates/types/chunk/src/dogeos/execute.rs @@ -0,0 +1,20 @@ +use sbv_primitives::types::consensus::TxL1Message; +use types_base::public_inputs::dogeos::DogeOsChunkInfo; +use super::witness::DogeOsChunkWitness; + +pub fn execute(witness: DogeOsChunkWitness) -> Result { + let l1_messages = witness + .inner.blocks.iter() + .flat_map(|block| block.transactions.iter()) + .filter_map(|tx| tx.as_l1_message()) + .map(|tx| tx.inner().clone()) + .collect::>(); + + let chunk_info = crate::scroll::execute(witness.inner)?; + + Ok(DogeOsChunkInfo { + inner: chunk_info, + // Other DogeOs-specific fields can be initialized here + // ... + }) +} diff --git a/crates/types/chunk/src/dogeos/types.rs b/crates/types/chunk/src/dogeos/types.rs new file mode 100644 index 00000000..e69de29b diff --git a/crates/types/chunk/src/dogeos/witness.rs b/crates/types/chunk/src/dogeos/witness.rs new file mode 100644 index 00000000..437f8a29 --- /dev/null +++ b/crates/types/chunk/src/dogeos/witness.rs @@ -0,0 +1,10 @@ +use crate::scroll::ChunkWitness; + +/// The witness type accepted by the chunk-circuit. +#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] +pub struct DogeOsChunkWitness { + /// Scroll ChunkWitness + pub inner: ChunkWitness, + /// Other DogeOs-specific fields can be added here + /// ... +} diff --git a/crates/types/chunk/src/lib.rs b/crates/types/chunk/src/lib.rs index d65c2d33..4d3a7f9d 100644 --- a/crates/types/chunk/src/lib.rs +++ b/crates/types/chunk/src/lib.rs @@ -4,5 +4,8 @@ pub use crypto::Crypto; #[cfg(feature = "scroll")] pub mod scroll; +#[cfg(feature = "scroll")] +mod dogeos; + #[cfg(not(feature = "scroll"))] pub mod ethereum; From a4430ffb47e36074f129dd34eee349906a8b38b3 Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 4 Dec 2025 14:18:01 +0800 Subject: [PATCH 02/26] copy circuit --- .../dogeos-circuits/batch-circuit/.gitignore | 1 + .../dogeos-circuits/batch-circuit/Cargo.toml | 25 +++++ .../dogeos-circuits/batch-circuit/openvm.toml | 35 +++++++ .../batch-circuit/openvm_init.rs | 4 + .../src/child_commitments/chunk_exe_commit.rs | 1 + .../src/child_commitments/chunk_vm_commit.rs | 1 + .../src/child_commitments/mod.rs | 5 + .../batch-circuit/src/circuit.rs | 98 +++++++++++++++++++ .../dogeos-circuits/batch-circuit/src/main.rs | 35 +++++++ .../dogeos-circuits/bundle-circuit/.gitignore | 1 + .../dogeos-circuits/bundle-circuit/Cargo.toml | 19 ++++ .../bundle-circuit/openvm.toml | 17 ++++ .../src/child_commitments/batch_exe_commit.rs | 1 + .../src/child_commitments/batch_vm_commit.rs | 1 + .../src/child_commitments/mod.rs | 4 + .../bundle-circuit/src/circuit.rs | 91 +++++++++++++++++ .../bundle-circuit/src/main.rs | 38 +++++++ .../dogeos-circuits/chunk-circuit/.gitignore | 1 + .../dogeos-circuits/chunk-circuit/Cargo.toml | 27 +++++ .../dogeos-circuits/chunk-circuit/openvm.toml | 58 +++++++++++ .../chunk-circuit/openvm_init.rs | 4 + .../chunk-circuit/src/circuit.rs | 50 ++++++++++ .../dogeos-circuits/chunk-circuit/src/main.rs | 19 ++++ 23 files changed, 536 insertions(+) create mode 100644 crates/dogeos-circuits/batch-circuit/.gitignore create mode 100644 crates/dogeos-circuits/batch-circuit/Cargo.toml create mode 100644 crates/dogeos-circuits/batch-circuit/openvm.toml create mode 100644 crates/dogeos-circuits/batch-circuit/openvm_init.rs create mode 120000 crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs create mode 120000 crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs create mode 100644 crates/dogeos-circuits/batch-circuit/src/child_commitments/mod.rs create mode 100644 crates/dogeos-circuits/batch-circuit/src/circuit.rs create mode 100644 crates/dogeos-circuits/batch-circuit/src/main.rs create mode 100644 crates/dogeos-circuits/bundle-circuit/.gitignore create mode 100644 crates/dogeos-circuits/bundle-circuit/Cargo.toml create mode 100644 crates/dogeos-circuits/bundle-circuit/openvm.toml create mode 120000 crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs create mode 120000 crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs create mode 100644 crates/dogeos-circuits/bundle-circuit/src/child_commitments/mod.rs create mode 100644 crates/dogeos-circuits/bundle-circuit/src/circuit.rs create mode 100644 crates/dogeos-circuits/bundle-circuit/src/main.rs create mode 100644 crates/dogeos-circuits/chunk-circuit/.gitignore create mode 100644 crates/dogeos-circuits/chunk-circuit/Cargo.toml create mode 100644 crates/dogeos-circuits/chunk-circuit/openvm.toml create mode 100644 crates/dogeos-circuits/chunk-circuit/openvm_init.rs create mode 100644 crates/dogeos-circuits/chunk-circuit/src/circuit.rs create mode 100644 crates/dogeos-circuits/chunk-circuit/src/main.rs diff --git a/crates/dogeos-circuits/batch-circuit/.gitignore b/crates/dogeos-circuits/batch-circuit/.gitignore new file mode 100644 index 00000000..ca2c3285 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/.gitignore @@ -0,0 +1 @@ +/openvm \ No newline at end of file diff --git a/crates/dogeos-circuits/batch-circuit/Cargo.toml b/crates/dogeos-circuits/batch-circuit/Cargo.toml new file mode 100644 index 00000000..134cd9e3 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "dogeos-zkvm-batch-circuit" +edition.workspace = true +readme.workspace = true +repository.workspace = true +version = "0.7.1" + +[dependencies] +scroll-zkvm-types-circuit.workspace = true +scroll-zkvm-types-batch.workspace = true + +openvm = { workspace = true, features = ["std"] } +openvm-algebra-guest.workspace = true +openvm-pairing = { workspace = true, features = ["bls12_381"] } +openvm-keccak256-guest.workspace = true +openvm-sha256-guest.workspace = true +openvm-ecc-guest = { workspace = true, features = ["halo2curves"] } + +alloy-primitives = { workspace = true, features = ["native-keccak"] } +bincode.workspace = true + +[features] +default = [] + +[dev-dependencies] diff --git a/crates/dogeos-circuits/batch-circuit/openvm.toml b/crates/dogeos-circuits/batch-circuit/openvm.toml new file mode 100644 index 00000000..3222ad82 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/openvm.toml @@ -0,0 +1,35 @@ +[app_fri_params.fri_params] +log_blowup = 1 +log_final_poly_len = 0 +num_queries = 100 +proof_of_work_bits = 16 + +[app_vm_config.rv32i] + +[app_vm_config.rv32m] + +[app_vm_config.io] + +[app_vm_config.keccak] + +[app_vm_config.castf] + +[app_vm_config.modular] +supported_moduli = [ + "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", + "52435875175126190479447740508185965837690552500527637822603658699938581184513", +] +[app_vm_config.native] +[app_vm_config.pairing] +supported_curves = ["Bls12_381"] +[app_vm_config.sha256] +[app_vm_config.fp2] +supported_moduli = [ + ["Bls12_381Fp2","4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787"] +] +[[app_vm_config.ecc.supported_curves]] +struct_name = "Bls12_381G1Affine" +modulus = "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787" +scalar = "52435875175126190479447740508185965837690552500527637822603658699938581184513" +a = "0" +b = "4" diff --git a/crates/dogeos-circuits/batch-circuit/openvm_init.rs b/crates/dogeos-circuits/batch-circuit/openvm_init.rs new file mode 100644 index 00000000..9a303b40 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/openvm_init.rs @@ -0,0 +1,4 @@ +// This file is automatically generated by cargo openvm. Do not rename or edit. +openvm_algebra_guest::moduli_macros::moduli_init! { "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", "52435875175126190479447740508185965837690552500527637822603658699938581184513" } +openvm_algebra_guest::complex_macros::complex_init! { "Bls12_381Fp2" { mod_idx = 0 } } +openvm_ecc_guest::sw_macros::sw_init! { "Bls12_381G1Affine" } diff --git a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs new file mode 120000 index 00000000..1bdee157 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs @@ -0,0 +1 @@ +../../../chunk-circuit/chunk_exe_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs new file mode 120000 index 00000000..b9822325 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs @@ -0,0 +1 @@ +../../../chunk-circuit/chunk_vm_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/batch-circuit/src/child_commitments/mod.rs b/crates/dogeos-circuits/batch-circuit/src/child_commitments/mod.rs new file mode 100644 index 00000000..d5b4271a --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/src/child_commitments/mod.rs @@ -0,0 +1,5 @@ +mod chunk_exe_commit; +mod chunk_vm_commit; + +pub const EXE_COMMIT: [u32; 8] = chunk_exe_commit::COMMIT; +pub const VM_COMMIT: [u32; 8] = chunk_vm_commit::COMMIT; diff --git a/crates/dogeos-circuits/batch-circuit/src/circuit.rs b/crates/dogeos-circuits/batch-circuit/src/circuit.rs new file mode 100644 index 00000000..83a24da4 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/src/circuit.rs @@ -0,0 +1,98 @@ +use alloy_primitives::B256; +use scroll_zkvm_types_batch::BatchWitness; +use scroll_zkvm_types_circuit::{ + AggCircuit, AggregationInput, Circuit, ProgramCommitment, + io::read_witnesses, + public_inputs::{ + Version, + scroll::{ + batch::{BatchInfo, VersionedBatchInfo}, + chunk::VersionedChunkInfo, + }, + }, +}; + +use crate::child_commitments; + +#[allow(unused_imports, clippy::single_component_path_imports)] +use { + openvm_algebra_guest::{IntMod, field::FieldExtension}, + openvm_ecc_guest::AffinePoint, + openvm_keccak256_guest, // trigger extern native-keccak256 + openvm_pairing::bls12_381::{Bls12_381, Bls12_381G1Affine, Fp, Fp2}, + openvm_sha256_guest, +}; + +openvm::init!(); + +pub struct BatchCircuit; + +impl Circuit for BatchCircuit { + type Witness = BatchWitness; + + type PublicInputs = VersionedBatchInfo; + + fn read_witness_bytes() -> Vec { + read_witnesses() + } + + fn deserialize_witness(witness_bytes: &[u8]) -> Self::Witness { + let config = bincode::config::standard(); + let (witness, _): (Self::Witness, _) = + bincode::serde::decode_from_slice(witness_bytes, config) + .expect("BatchCircuit: deserialisation of witness bytes failed"); + witness + } + + fn validate(witness: Self::Witness) -> Self::PublicInputs { + let version = Version::from(witness.version); + assert_eq!(version.fork, witness.fork_name); + + (BatchInfo::from(&witness), version) + } +} + +impl AggCircuit for BatchCircuit { + type AggregatedPublicInputs = VersionedChunkInfo; + + fn verify_commitments(commitment: &ProgramCommitment) { + assert_eq!( + commitment.vm, + child_commitments::VM_COMMIT, + "mismatch chunk-proof leaf commitment: expected={:?}, got={:?}", + child_commitments::VM_COMMIT, + commitment.vm, + ); + assert_eq!( + commitment.exe, + child_commitments::EXE_COMMIT, + "mismatch chunk-proof exe commitment: expected={:?}, got={:?}", + child_commitments::EXE_COMMIT, + commitment.exe, + ); + } + + fn aggregated_public_inputs(witness: &Self::Witness) -> Vec { + let version = Version::from(witness.version); + witness + .chunk_infos + .iter() + .cloned() + .map(|chunk_info| (chunk_info, version)) + .collect() + } + + fn aggregated_pi_hashes(proofs: &[AggregationInput]) -> Vec { + proofs + .iter() + .map(|proof| { + let transformed = proof + .public_values + .iter() + .map(|&val| u8::try_from(val).expect("0 < public value < 256")) + .collect::>(); + B256::from_slice(transformed.as_slice()) + }) + .collect() + } +} diff --git a/crates/dogeos-circuits/batch-circuit/src/main.rs b/crates/dogeos-circuits/batch-circuit/src/main.rs new file mode 100644 index 00000000..ad3cb9b8 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/src/main.rs @@ -0,0 +1,35 @@ +use scroll_zkvm_types_circuit::{AggCircuit, Circuit}; + +mod circuit; +use circuit::BatchCircuit as C; + +mod child_commitments; + +openvm::entry!(main); + +fn main() { + // Read witness bytes from openvm StdIn. + let witness_bytes = C::read_witness_bytes(); + + // Deserialize witness bytes to the witness data type. + let witness = C::deserialize_witness(&witness_bytes); + + // Verify the root proofs being aggregated in the circuit. + let agg_proofs = C::verify_proofs(&witness); + + // Get the public-input values of the proofs being aggregated from witness. + let agg_pis = C::aggregated_public_inputs(&witness); + + // Derive the digests of the public-input values of proofs being aggregated. + let agg_pi_hashes = C::aggregated_pi_hashes(&agg_proofs); + + // Validate that the pi hashes derived from the root proofs are in fact the digests of the + // public-input values of the previous circuit layer. + C::validate_aggregated_pi(&agg_pis, &agg_pi_hashes); + + // Validate the witness for the current circuit layer. + let public_inputs = C::validate(witness); + + // Reveal the public-input values of the current circuit layer. + C::reveal_pi(&public_inputs); +} diff --git a/crates/dogeos-circuits/bundle-circuit/.gitignore b/crates/dogeos-circuits/bundle-circuit/.gitignore new file mode 100644 index 00000000..f9cd8a70 --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/.gitignore @@ -0,0 +1 @@ +/openvm diff --git a/crates/dogeos-circuits/bundle-circuit/Cargo.toml b/crates/dogeos-circuits/bundle-circuit/Cargo.toml new file mode 100644 index 00000000..6e2b4c9f --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "dogeos-zkvm-bundle-circuit" +edition.workspace = true +readme.workspace = true +repository.workspace = true +version = "0.7.1" + +[dependencies] +bincode.workspace = true +scroll-zkvm-types-circuit.workspace = true +scroll-zkvm-types-bundle.workspace = true + +openvm = { workspace = true, features = ["std"] } +openvm-keccak256-guest.workspace = true + +alloy-primitives = { workspace = true } + +[features] +default = [] diff --git a/crates/dogeos-circuits/bundle-circuit/openvm.toml b/crates/dogeos-circuits/bundle-circuit/openvm.toml new file mode 100644 index 00000000..2aa640c8 --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/openvm.toml @@ -0,0 +1,17 @@ +[app_fri_params.fri_params] +log_blowup = 1 +log_final_poly_len = 0 +num_queries = 100 +proof_of_work_bits = 16 + +[app_vm_config.rv32i] + +[app_vm_config.rv32m] + +[app_vm_config.io] + +[app_vm_config.keccak] + +[app_vm_config.castf] + +[app_vm_config.native] diff --git a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs new file mode 120000 index 00000000..cc86c9b9 --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs @@ -0,0 +1 @@ +../../../batch-circuit/batch_exe_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs new file mode 120000 index 00000000..4bf3d07f --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs @@ -0,0 +1 @@ +../../../batch-circuit/batch_vm_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/mod.rs b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/mod.rs new file mode 100644 index 00000000..77435dd0 --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/mod.rs @@ -0,0 +1,4 @@ +mod batch_exe_commit; +mod batch_vm_commit; +pub const EXE_COMMIT: [u32; 8] = batch_exe_commit::COMMIT; +pub const VM_COMMIT: [u32; 8] = batch_vm_commit::COMMIT; diff --git a/crates/dogeos-circuits/bundle-circuit/src/circuit.rs b/crates/dogeos-circuits/bundle-circuit/src/circuit.rs new file mode 100644 index 00000000..a7e8b4dc --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/src/circuit.rs @@ -0,0 +1,91 @@ +use alloy_primitives::B256; +use scroll_zkvm_types_bundle::BundleWitness; +use scroll_zkvm_types_circuit::{ + AggCircuit, AggregationInput, Circuit, ProgramCommitment, + io::read_witnesses, + public_inputs::{ + Version, + scroll::{ + batch::VersionedBatchInfo, + bundle::{BundleInfo, VersionedBundleInfo}, + }, + }, +}; + +use crate::child_commitments; + +#[allow(unused_imports, clippy::single_component_path_imports)] +use openvm_keccak256_guest; + +#[derive(Default)] +pub struct BundleCircuit; + +impl Circuit for BundleCircuit { + type Witness = BundleWitness; + + type PublicInputs = VersionedBundleInfo; + + fn read_witness_bytes() -> Vec { + read_witnesses() + } + + fn deserialize_witness(witness_bytes: &[u8]) -> Self::Witness { + let config = bincode::config::standard(); + let (witness, _): (Self::Witness, _) = + bincode::serde::decode_from_slice(witness_bytes, config) + .expect("BundleCircuit: deserialization of witness bytes failed"); + witness + } + + fn validate(witness: Self::Witness) -> Self::PublicInputs { + let version = Version::from(witness.version); + assert_eq!(version.fork, witness.fork_name); + + (BundleInfo::from(&witness), version) + } +} + +impl AggCircuit for BundleCircuit { + type AggregatedPublicInputs = VersionedBatchInfo; + + fn verify_commitments(commitment: &ProgramCommitment) { + assert_eq!( + commitment.vm, + child_commitments::VM_COMMIT, + "mismatch batch-proof leaf commitment: expected={:?}, got={:?}", + child_commitments::VM_COMMIT, + commitment.vm, + ); + assert_eq!( + commitment.exe, + child_commitments::EXE_COMMIT, + "mismatch batch-proof exe commitment: expected={:?}, got={:?}", + child_commitments::EXE_COMMIT, + commitment.exe, + ); + } + + fn aggregated_public_inputs(witness: &Self::Witness) -> Vec { + let version = Version::from(witness.version); + witness + .batch_infos + .iter() + .cloned() + .map(|batch_info| (batch_info, version)) + .collect() + } + + fn aggregated_pi_hashes(proofs: &[AggregationInput]) -> Vec { + proofs + .iter() + .map(|proof| { + let transformed = proof + .public_values + .iter() + .map(|&val| u8::try_from(val).expect("0 < public value < 256")) + .collect::>(); + B256::from_slice(transformed.as_slice()) + }) + .collect() + } +} diff --git a/crates/dogeos-circuits/bundle-circuit/src/main.rs b/crates/dogeos-circuits/bundle-circuit/src/main.rs new file mode 100644 index 00000000..7efe4566 --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/src/main.rs @@ -0,0 +1,38 @@ +use scroll_zkvm_types_circuit::{AggCircuit, Circuit}; + +mod circuit; + +type C = circuit::BundleCircuit; + +// TODO: feature handling for feynman to use bundle info v3. + +openvm::entry!(main); + +mod child_commitments; + +fn main() { + // Read witness bytes from openvm StdIn. + let witness_bytes = C::read_witness_bytes(); + + // Deserialize witness bytes to the witness data type. + let witness = C::deserialize_witness(&witness_bytes); + + // Verify the root proofs being aggregated in the circuit. + let agg_proofs = C::verify_proofs(&witness); + + // Get the public-input values of the proofs being aggregated from witness. + let agg_pis = C::aggregated_public_inputs(&witness); + + // Derive the digests of the public-input values of the proofs being aggregated. + let agg_pi_hashes = C::aggregated_pi_hashes(&agg_proofs); + + // Validate that the pi hashes derived from the stark proofs are in fact the digests of the + // public-input values of the previous circuit layer. + C::validate_aggregated_pi(&agg_pis, &agg_pi_hashes); + + // Validate the witness for the current circuit layer. + let public_inputs = C::validate(witness); + + // Reveal the public input values of the current circuit layer. + C::reveal_pi(&public_inputs); +} diff --git a/crates/dogeos-circuits/chunk-circuit/.gitignore b/crates/dogeos-circuits/chunk-circuit/.gitignore new file mode 100644 index 00000000..f9cd8a70 --- /dev/null +++ b/crates/dogeos-circuits/chunk-circuit/.gitignore @@ -0,0 +1 @@ +/openvm diff --git a/crates/dogeos-circuits/chunk-circuit/Cargo.toml b/crates/dogeos-circuits/chunk-circuit/Cargo.toml new file mode 100644 index 00000000..ec46d849 --- /dev/null +++ b/crates/dogeos-circuits/chunk-circuit/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "dogeos-zkvm-chunk-circuit" +edition.workspace = true +readme.workspace = true +repository.workspace = true +version = "0.7.1" + +[dependencies] +bincode = { workspace = true } +scroll-zkvm-types-circuit = { workspace = true } +scroll-zkvm-types-chunk = { workspace = true, features = ["scroll"] } + +openvm = { workspace = true, features = ["std", "getrandom-unsupported"] } +openvm-k256 = { workspace = true } +openvm-p256 = { workspace = true } +openvm-pairing = { workspace = true, features = ["bn254"] } +openvm-algebra-complex-macros = { workspace = true } +openvm-algebra-guest = { workspace = true } +openvm-bigint-guest = { workspace = true } +openvm-ecc-guest = { workspace = true } +openvm-keccak256-guest= { workspace = true } +openvm-pairing-guest = { workspace = true, features = ["bn254"] } +openvm-sha2 = { workspace = true } +openvm-rv32im-guest= { workspace = true } + + +[features] diff --git a/crates/dogeos-circuits/chunk-circuit/openvm.toml b/crates/dogeos-circuits/chunk-circuit/openvm.toml new file mode 100644 index 00000000..c1463017 --- /dev/null +++ b/crates/dogeos-circuits/chunk-circuit/openvm.toml @@ -0,0 +1,58 @@ +[app_fri_params.fri_params] +log_blowup = 1 +log_final_poly_len = 0 +num_queries = 100 +proof_of_work_bits = 16 + +[app_vm_config.rv32i] + +[app_vm_config.io] + +[app_vm_config.keccak] + +[app_vm_config.rv32m] +range_tuple_checker_sizes = [256, 8192] + +[app_vm_config.bigint] +range_tuple_checker_sizes = [256, 8192] + +[app_vm_config.modular] +supported_moduli = [ + "21888242871839275222246405745257275088696311157297823662689037894645226208583", + "21888242871839275222246405745257275088548364400416034343698204186575808495617", + "115792089237316195423570985008687907853269984665640564039457584007908834671663", + "115792089237316195423570985008687907852837564279074904382605163141518161494337", + "115792089210356248762697446949407573530086143415290314195533631308867097853951", + "115792089210356248762697446949407573529996955224135760342422259061068512044369" +] + +[app_vm_config.fp2] +supported_moduli = [ + ["Bn254Fp2","21888242871839275222246405745257275088696311157297823662689037894645226208583"] +] + +[app_vm_config.pairing] +supported_curves = ["Bn254"] + +[app_vm_config.sha256] + +[[app_vm_config.ecc.supported_curves]] +struct_name = "Secp256k1Point" +modulus = "115792089237316195423570985008687907853269984665640564039457584007908834671663" +scalar = "115792089237316195423570985008687907852837564279074904382605163141518161494337" +a = "0" +b = "7" + +[[app_vm_config.ecc.supported_curves]] +struct_name = "P256Point" +modulus = "115792089210356248762697446949407573530086143415290314195533631308867097853951" +scalar = "115792089210356248762697446949407573529996955224135760342422259061068512044369" +a = "115792089210356248762697446949407573530086143415290314195533631308867097853948" +b = "41058363725152142129326129780047268409114441015993725554835256314039467401291" + +[[app_vm_config.ecc.supported_curves]] +struct_name = "Bn254G1Affine" +modulus = "21888242871839275222246405745257275088696311157297823662689037894645226208583" +scalar = "21888242871839275222246405745257275088548364400416034343698204186575808495617" +a = "0" +b = "3" diff --git a/crates/dogeos-circuits/chunk-circuit/openvm_init.rs b/crates/dogeos-circuits/chunk-circuit/openvm_init.rs new file mode 100644 index 00000000..7c9f2870 --- /dev/null +++ b/crates/dogeos-circuits/chunk-circuit/openvm_init.rs @@ -0,0 +1,4 @@ +// This file is automatically generated by cargo openvm. Do not rename or edit. +openvm_algebra_guest::moduli_macros::moduli_init! { "21888242871839275222246405745257275088696311157297823662689037894645226208583", "21888242871839275222246405745257275088548364400416034343698204186575808495617", "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337", "115792089210356248762697446949407573530086143415290314195533631308867097853951", "115792089210356248762697446949407573529996955224135760342422259061068512044369" } +openvm_algebra_guest::complex_macros::complex_init! { "Bn254Fp2" { mod_idx = 0 } } +openvm_ecc_guest::sw_macros::sw_init! { "Secp256k1Point", "P256Point", "Bn254G1Affine" } diff --git a/crates/dogeos-circuits/chunk-circuit/src/circuit.rs b/crates/dogeos-circuits/chunk-circuit/src/circuit.rs new file mode 100644 index 00000000..fe950731 --- /dev/null +++ b/crates/dogeos-circuits/chunk-circuit/src/circuit.rs @@ -0,0 +1,50 @@ +use openvm::init; +use scroll_zkvm_types_chunk::dogeos::DogeOsChunkWitness; +use scroll_zkvm_types_circuit::{ + Circuit, + io::read_witnesses, + public_inputs::{ + Version, + dogeos::chunk::{DogeOsChunkInfo, VersionedDogeOsChunkInfo}, + }, +}; + +#[allow(unused_imports, clippy::single_component_path_imports)] +use { + openvm::platform as openvm_platform, + openvm_algebra_guest::IntMod, + openvm_bigint_guest, // trigger extern u256 (this may be unneeded) + openvm_k256::Secp256k1Point, + openvm_keccak256_guest, // trigger extern native-keccak256 + openvm_p256::P256Point, + openvm_pairing::bn254::Bn254G1Affine, +}; + +init!(); + +pub struct ChunkCircuit; + +impl Circuit for ChunkCircuit { + type Witness = DogeOsChunkWitness; + type PublicInputs = VersionedDogeOsChunkInfo; + + fn read_witness_bytes() -> Vec { + read_witnesses() + } + + fn deserialize_witness(witness_bytes: &[u8]) -> Self::Witness { + let config = bincode::config::standard(); + let (witness, _): (Self::Witness, _) = + bincode::serde::decode_from_slice(witness_bytes, config) + .expect("ChunkCircuit: deserialisation of witness bytes failed"); + witness + } + + fn validate(witness: Self::Witness) -> Self::PublicInputs { + let version = Version::from(witness.inner.version); + assert_eq!(version.fork, witness.inner.fork_name); + + let chunk_info = DogeOsChunkInfo::try_from(witness).expect("failed to execute chunk"); + (chunk_info, version) + } +} diff --git a/crates/dogeos-circuits/chunk-circuit/src/main.rs b/crates/dogeos-circuits/chunk-circuit/src/main.rs new file mode 100644 index 00000000..737390f8 --- /dev/null +++ b/crates/dogeos-circuits/chunk-circuit/src/main.rs @@ -0,0 +1,19 @@ +use scroll_zkvm_types_chunk::Crypto; +use scroll_zkvm_types_circuit::{Circuit, public_inputs::PublicInputs, reveal_pi_hash}; + +mod circuit; +use circuit::ChunkCircuit as C; + +openvm::entry!(main); + +fn main() { + Crypto::install(); + + let witness_bytes = C::read_witness_bytes(); + + let witness = C::deserialize_witness(&witness_bytes); + + let public_inputs = C::validate(witness); + + reveal_pi_hash(public_inputs.pi_hash()); +} From 1eccda70e7ab540461fb785c687de2f93649380f Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 4 Dec 2025 14:23:20 +0800 Subject: [PATCH 03/26] can compile --- Cargo.lock | 49 +++++++++++++++++++ Cargo.toml | 3 ++ crates/build-guest/src/main.rs | 12 +---- .../batch-circuit/batch_exe_commit.rs | 4 ++ .../batch-circuit/batch_vm_commit.rs | 4 ++ .../bundle-circuit/bundle_exe_commit.rs | 4 ++ .../bundle-circuit/bundle_vm_commit.rs | 4 ++ .../chunk-circuit/chunk_exe_commit.rs | 4 ++ .../chunk-circuit/chunk_vm_commit.rs | 4 ++ .../base/src/public_inputs/dogeos/chunk.rs | 10 ++-- crates/types/chunk/src/dogeos.rs | 2 + crates/types/chunk/src/dogeos/execute.rs | 4 +- crates/types/chunk/src/dogeos/witness.rs | 17 +++++-- crates/types/chunk/src/lib.rs | 2 +- crates/types/src/lib.rs | 17 +++++++ 15 files changed, 118 insertions(+), 22 deletions(-) create mode 100644 crates/dogeos-circuits/batch-circuit/batch_exe_commit.rs create mode 100644 crates/dogeos-circuits/batch-circuit/batch_vm_commit.rs create mode 100644 crates/dogeos-circuits/bundle-circuit/bundle_exe_commit.rs create mode 100644 crates/dogeos-circuits/bundle-circuit/bundle_vm_commit.rs create mode 100644 crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs create mode 100644 crates/dogeos-circuits/chunk-circuit/chunk_vm_commit.rs diff --git a/Cargo.lock b/Cargo.lock index 12339500..a134fe76 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2345,6 +2345,55 @@ dependencies = [ "litrs", ] +[[package]] +name = "dogeos-zkvm-batch-circuit" +version = "0.7.1" +dependencies = [ + "alloy-primitives", + "bincode 2.0.1", + "openvm", + "openvm-algebra-guest", + "openvm-ecc-guest", + "openvm-keccak256-guest", + "openvm-pairing", + "openvm-sha256-guest", + "scroll-zkvm-types-batch", + "scroll-zkvm-types-circuit", +] + +[[package]] +name = "dogeos-zkvm-bundle-circuit" +version = "0.7.1" +dependencies = [ + "alloy-primitives", + "bincode 2.0.1", + "openvm", + "openvm-keccak256-guest", + "scroll-zkvm-types-bundle", + "scroll-zkvm-types-circuit", +] + +[[package]] +name = "dogeos-zkvm-chunk-circuit" +version = "0.7.1" +dependencies = [ + "bincode 2.0.1", + "k256 0.13.4 (git+https://github.com/openvm-org/openvm.git?tag=v1.4.1)", + "openvm", + "openvm-algebra-complex-macros", + "openvm-algebra-guest", + "openvm-bigint-guest", + "openvm-ecc-guest", + "openvm-keccak256-guest", + "openvm-pairing", + "openvm-pairing-guest", + "openvm-rv32im-guest", + "openvm-sha2", + "p256 0.13.2 (git+https://github.com/openvm-org/openvm.git?tag=v1.4.1)", + "scroll-zkvm-types-chunk", + "scroll-zkvm-types-circuit", +] + [[package]] name = "dotenvy" version = "0.15.7" diff --git a/Cargo.toml b/Cargo.toml index 049cc9f2..e82f2814 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,9 @@ members = [ "crates/integration", "crates/build-guest", "crates/tools/upload-axiom", + "crates/dogeos-circuits/chunk-circuit", + "crates/dogeos-circuits/batch-circuit", + "crates/dogeos-circuits/bundle-circuit", ] resolver = "2" diff --git a/crates/build-guest/src/main.rs b/crates/build-guest/src/main.rs index 964e3409..a47196df 100644 --- a/crates/build-guest/src/main.rs +++ b/crates/build-guest/src/main.rs @@ -141,7 +141,7 @@ fn generate_app_assets(workspace_dir: &Path, release_output_dir: &PathBuf) -> Re for project_name in projects_to_build { let project_path = workspace_dir .join("crates") - .join("circuits") + .join("dogeos-circuits") .join(format!("{project_name}-circuit")); println!("{LOG_PREFIX} Processing project: {project_name}"); @@ -176,15 +176,7 @@ fn generate_app_assets(workspace_dir: &Path, release_output_dir: &PathBuf) -> Re "{LOG_PREFIX} Changed working directory to: {}", project_path.display() ); - let guest_opts = GuestOptions { - features: if project_name == "chunk" && cfg!(feature = "scroll") { - vec!["scroll".to_string()] - } else { - vec![] - }, - ..Default::default() - }; - let guest_opts = guest_opts.with_profile("maxperf".to_string()); + let guest_opts = GuestOptions::default().with_profile("maxperf".to_string()); let sdk = Sdk::new(app_config)?; let elf = sdk .build(guest_opts, project_dir, &Default::default(), None) diff --git a/crates/dogeos-circuits/batch-circuit/batch_exe_commit.rs b/crates/dogeos-circuits/batch-circuit/batch_exe_commit.rs new file mode 100644 index 00000000..ebe6f592 --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/batch_exe_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [1303559324, 1894411562, 683816819, 1138777461, 5450950, 1920371602, 1646997810, 1849856934]; diff --git a/crates/dogeos-circuits/batch-circuit/batch_vm_commit.rs b/crates/dogeos-circuits/batch-circuit/batch_vm_commit.rs new file mode 100644 index 00000000..44734bac --- /dev/null +++ b/crates/dogeos-circuits/batch-circuit/batch_vm_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [1143979762, 1252839784, 728295280, 80130475, 1981604375, 1538642995, 55047256, 1521517292]; diff --git a/crates/dogeos-circuits/bundle-circuit/bundle_exe_commit.rs b/crates/dogeos-circuits/bundle-circuit/bundle_exe_commit.rs new file mode 100644 index 00000000..b67f1903 --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/bundle_exe_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [1327831041, 1333938578, 1465924054, 265598051, 217303637, 1482374516, 658833638, 1874751238]; diff --git a/crates/dogeos-circuits/bundle-circuit/bundle_vm_commit.rs b/crates/dogeos-circuits/bundle-circuit/bundle_vm_commit.rs new file mode 100644 index 00000000..5271f85c --- /dev/null +++ b/crates/dogeos-circuits/bundle-circuit/bundle_vm_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [702922786, 974900043, 1870917533, 1628966797, 1650497578, 697799835, 298481193, 1937656708]; diff --git a/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs b/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs new file mode 100644 index 00000000..86d7b7a6 --- /dev/null +++ b/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [258286775, 1730996537, 1506947376, 1543524989, 653280630, 1028288165, 259337800, 1416761391]; diff --git a/crates/dogeos-circuits/chunk-circuit/chunk_vm_commit.rs b/crates/dogeos-circuits/chunk-circuit/chunk_vm_commit.rs new file mode 100644 index 00000000..739a25bf --- /dev/null +++ b/crates/dogeos-circuits/chunk-circuit/chunk_vm_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [636098662, 1159240103, 1476249019, 1206808598, 446929719, 1171493582, 43492796, 756143264]; diff --git a/crates/types/base/src/public_inputs/dogeos/chunk.rs b/crates/types/base/src/public_inputs/dogeos/chunk.rs index 1b9e75a6..ee0ac396 100644 --- a/crates/types/base/src/public_inputs/dogeos/chunk.rs +++ b/crates/types/base/src/public_inputs/dogeos/chunk.rs @@ -1,17 +1,17 @@ -use alloy_primitives::B256; use crate::public_inputs::{scroll, Version}; use crate::public_inputs::MultiVersionPublicInputs; -use crate::utils::keccak256; /// Represents header-like information for the chunk. #[derive(Debug, Clone, serde::Deserialize, serde::Serialize)] pub struct DogeOsChunkInfo { /// Scroll ChunkInfo pub inner: scroll::chunk::ChunkInfo, - /// Other DogeOs-specific fields can be added here - /// ... + // Other DogeOs-specific fields can be added here + // ... } +pub type VersionedDogeOsChunkInfo = (DogeOsChunkInfo, Version); + impl MultiVersionPublicInputs for DogeOsChunkInfo { fn pi_by_version(&self, version: Version) -> Vec { @@ -20,7 +20,7 @@ impl MultiVersionPublicInputs for DogeOsChunkInfo { scroll_chunk_pi } - fn validate(&self, prev_pi: &Self, version: crate::version::Version) { + fn validate(&self, prev_pi: &Self, version: Version) { self.inner.validate(&prev_pi.inner, version) } } diff --git a/crates/types/chunk/src/dogeos.rs b/crates/types/chunk/src/dogeos.rs index 2ab76ce1..efacb5d1 100644 --- a/crates/types/chunk/src/dogeos.rs +++ b/crates/types/chunk/src/dogeos.rs @@ -1,5 +1,7 @@ mod types; mod execute; +pub use execute::execute; mod witness; +pub use witness::DogeOsChunkWitness; diff --git a/crates/types/chunk/src/dogeos/execute.rs b/crates/types/chunk/src/dogeos/execute.rs index 91146ae5..188dac38 100644 --- a/crates/types/chunk/src/dogeos/execute.rs +++ b/crates/types/chunk/src/dogeos/execute.rs @@ -1,9 +1,9 @@ use sbv_primitives::types::consensus::TxL1Message; -use types_base::public_inputs::dogeos::DogeOsChunkInfo; +use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfo; use super::witness::DogeOsChunkWitness; pub fn execute(witness: DogeOsChunkWitness) -> Result { - let l1_messages = witness + let _l1_messages = witness .inner.blocks.iter() .flat_map(|block| block.transactions.iter()) .filter_map(|tx| tx.as_l1_message()) diff --git a/crates/types/chunk/src/dogeos/witness.rs b/crates/types/chunk/src/dogeos/witness.rs index 437f8a29..6f48a2fb 100644 --- a/crates/types/chunk/src/dogeos/witness.rs +++ b/crates/types/chunk/src/dogeos/witness.rs @@ -1,10 +1,19 @@ -use crate::scroll::ChunkWitness; +use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfo; +use crate::scroll; /// The witness type accepted by the chunk-circuit. #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] pub struct DogeOsChunkWitness { /// Scroll ChunkWitness - pub inner: ChunkWitness, - /// Other DogeOs-specific fields can be added here - /// ... + pub inner: scroll::ChunkWitness, + // Other DogeOs-specific fields can be added here + // ... +} + +impl TryFrom for DogeOsChunkInfo { + type Error = String; + + fn try_from(value: DogeOsChunkWitness) -> Result { + super::execute(value) + } } diff --git a/crates/types/chunk/src/lib.rs b/crates/types/chunk/src/lib.rs index 4d3a7f9d..685b0cf8 100644 --- a/crates/types/chunk/src/lib.rs +++ b/crates/types/chunk/src/lib.rs @@ -5,7 +5,7 @@ pub use crypto::Crypto; pub mod scroll; #[cfg(feature = "scroll")] -mod dogeos; +pub mod dogeos; #[cfg(not(feature = "scroll"))] pub mod ethereum; diff --git a/crates/types/src/lib.rs b/crates/types/src/lib.rs index 6abd706c..551a9e8b 100644 --- a/crates/types/src/lib.rs +++ b/crates/types/src/lib.rs @@ -19,6 +19,23 @@ pub mod scroll { } } +pub mod dogeos { + pub mod bundle { + pub use types_base::public_inputs::scroll::bundle::BundleInfo; + pub use types_bundle::*; + } + + pub mod batch { + pub use types_base::public_inputs::scroll::batch::{BatchInfo, VersionedBatchInfo}; + pub use types_batch::*; + } + + pub mod chunk { + pub use types_base::public_inputs::dogeos::chunk::{DogeOsChunkInfo}; + pub use types_chunk::dogeos::*; + } +} + pub use types_base::{aggregation as types_agg, public_inputs, version}; pub mod proof; From 47be5deea18d01d2534865889e1256ecbec91270 Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 4 Dec 2025 16:45:44 +0800 Subject: [PATCH 04/26] save --- Cargo.lock | 902 +++++++++++------- Cargo.toml | 5 + .../chunk-circuit/chunk_exe_commit.rs | 2 +- .../base/src/public_inputs/dogeos/chunk.rs | 15 +- crates/types/chunk/Cargo.toml | 4 + crates/types/chunk/src/dogeos/execute.rs | 46 +- crates/types/chunk/src/dogeos/types.rs | 68 ++ crates/types/chunk/src/dogeos/witness.rs | 8 +- 8 files changed, 715 insertions(+), 335 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a134fe76..7e926573 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,9 +92,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaa9ea039a6f9304b4a593d780b1f23e1ae183acdee938b11b38795acacc9f1" +checksum = "1b9ebac8ff9c2f07667e1803dc777304337e160ce5153335beb45e8ec0751808" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -105,20 +105,20 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad704069c12f68d0c742d0cad7e0a03882b42767350584627fbf8a47b1bf1846" +checksum = "8b6440213a22df93a87ed512d2f668e7dc1d62a05642d107f82d61edc9e12370" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "alloy-trie 0.9.1", "alloy-tx-macros", "auto_impl", "borsh", "c-kzg", - "derive_more 2.0.1", + "derive_more 2.1.0", "either", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell", @@ -132,15 +132,15 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc374f640a5062224d7708402728e3d6879a514ba10f377da62e7dfb14c673e6" +checksum = "15d0bea09287942405c4f9d2a4f22d1e07611c2dbd9d5bf94b75366340f9e6e0" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "serde", ] @@ -198,7 +198,7 @@ dependencies = [ "alloy-serde 0.14.0", "auto_impl", "c-kzg", - "derive_more 2.0.1", + "derive_more 2.1.0", "either", "serde", "sha2 0.10.9", @@ -206,20 +206,20 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e867b5fd52ed0372a95016f3a37cbff95a9d5409230fbaef2d8ea00e8618098" +checksum = "4bd2c7ae05abcab4483ce821f12f285e01c0b33804e6883dd9ca1569a87ee2be" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "auto_impl", "borsh", "c-kzg", - "derive_more 2.0.1", + "derive_more 2.1.0", "either", "ethereum_ssz", "ethereum_ssz_derive", @@ -236,15 +236,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08e9e656d58027542447c1ca5aa4ca96293f09e6920c4651953b7451a7c35e4e" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-hardforks", "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", - "derive_more 2.0.1", - "op-alloy-consensus 0.22.1", + "derive_more 2.1.0", + "op-alloy-consensus 0.22.4", "op-alloy-rpc-types-engine", "op-revm", "revm 30.1.1", @@ -253,13 +253,13 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b90be17e9760a6ba6d13cebdb049cea405ebc8bf57d90664ed708cc5bc348342" +checksum = "fc47eaae86488b07ea8e20236184944072a78784a1f4993f8ec17b3aa5d08c21" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "alloy-trie 0.9.1", "borsh", "serde", @@ -294,9 +294,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcab4c51fb1273e3b0f59078e0cdf8aa99f697925b09f0d2055c18be46b4d48c" +checksum = "003f46c54f22854a32b9cc7972660a476968008ad505427eabab49225309ec40" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -309,24 +309,24 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196d7fd3f5d414f7bbd5886a628b7c42bd98d1b126f9a7cff69dbfd72007b39c" +checksum = "4f4029954d9406a40979f3a3b46950928a0fdcfe3ea8a9b0c17490d57e8aa0e3" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "alloy-signer", "alloy-sol-types", "async-trait", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.0", "futures-utils-wasm", "serde", "serde_json", @@ -335,14 +335,14 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3ae2777e900a7a47ad9e3b8ab58eff3d93628265e73bbdee09acf90bf68f75" +checksum = "7805124ad69e57bbae7731c9c344571700b2a18d351bda9e0eba521c991d1bcb" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "serde", ] @@ -356,10 +356,10 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more 2.0.1", + "derive_more 2.1.0", "foldhash 0.2.0", - "hashbrown 0.16.0", - "indexmap 2.12.0", + "hashbrown 0.16.1", + "indexmap 2.12.1", "itoa", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-asm", @@ -376,13 +376,13 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9bf40c9b2a90c7677f9c39bccd9f06af457f35362439c0497a706f16557703" +checksum = "d369e12c92870d069e0c9dc5350377067af8a056e29e3badf8446099d7e00889" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -432,14 +432,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "alloy-rpc-client" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c2630fde9ff6033a780635e1af6ef40e92d74a9cacb8af3defc1b15cfebca5" +checksum = "31c89883fe6b7381744cbe80fef638ac488ead4f1956a4278956a1362c71cd2e" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -460,39 +460,39 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b8429b5b62d21bf3691eb1ae12aaae9bb496894d5a114e3cc73e27e6800ec8" +checksum = "b43c1622aac2508d528743fd4cfdac1dea92d5a8fa894038488ff7edd0af0b32" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01731601ea631bd825c652a225701ab466c09457f446b8d8129368a095389c5d" +checksum = "1b2ca3a434a6d49910a7e8e51797eb25db42ef8a5578c52d877fcb26d0afe7bc" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.0", "serde", "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9981491bb98e76099983f516ec7de550db0597031f5828c994961eb4bb993cce" +checksum = "d9c4c53a8b0905d931e7921774a1830609713bd3e8222347963172b03a3ecc68" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", - "derive_more 2.0.1", + "alloy-serde 1.1.2", + "derive_more 2.1.0", "ethereum_ssz", "ethereum_ssz_derive", "serde", @@ -501,17 +501,17 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29031a6bf46177d65efce661f7ab37829ca09dd341bc40afb5194e97600655cc" +checksum = "ed5fafb741c19b3cca4cdd04fa215c89413491f9695a3e928dee2ae5657f607e" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "alloy-sol-types", "itertools 0.14.0", "serde", @@ -533,9 +533,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e856112bfa0d9adc85bd7c13db03fad0e71d1d6fb4c2010e475b6718108236" +checksum = "a6f180c399ca7c1e2fe17ea58343910cad0090878a696ff5a50241aee12fc529" dependencies = [ "alloy-primitives", "serde", @@ -544,9 +544,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a4f629da632d5279bbc5731634f0f5c9484ad9c4cad0cd974d9669dc1f46d6" +checksum = "ecc39ad2c0a3d2da8891f4081565780703a593f090f768f884049aa3aa929cbc" dependencies = [ "alloy-primitives", "async-trait", @@ -568,7 +568,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -580,11 +580,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.12.0", + "indexmap 2.12.1", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "syn-solidity", "tiny-keccak", ] @@ -601,7 +601,7 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "syn-solidity", ] @@ -629,14 +629,14 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe215a2f9b51d5f1aa5c8cf22c8be8cdb354934de09c9a4e37aefb79b77552fd" +checksum = "cae82426d98f8bc18f53c5223862907cac30ab8fc5e4cd2bb50808e6d3ab43d8" dependencies = [ "alloy-json-rpc", "auto_impl", - "base64", - "derive_more 2.0.1", + "base64 0.22.1", + "derive_more 2.1.0", "futures", "futures-utils-wasm", "governor", @@ -653,9 +653,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b37b1a30d23deb3a8746e882c70b384c574d355bc2bbea9ea918b0c31366e" +checksum = "90aa6825760905898c106aba9c804b131816a15041523e80b6d4fe7af6380ada" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -675,7 +675,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 2.0.1", + "derive_more 2.1.0", "nybbles 0.3.4", "serde", "smallvec", @@ -691,7 +691,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 2.0.1", + "derive_more 2.1.0", "nybbles 0.4.6", "serde", "smallvec", @@ -700,14 +700,14 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccf423f6de62e8ce1d6c7a11fb7508ae3536d02e0d68aaeb05c8669337d0937" +checksum = "ae109e33814b49fc0a62f2528993aa8a2dd346c26959b151f05441dc0b9da292" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -923,7 +923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -961,7 +961,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1050,7 +1050,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1118,7 +1118,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1129,7 +1129,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1156,7 +1156,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1217,6 +1217,12 @@ 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.22.1" @@ -1229,6 +1235,12 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "bincode" version = "1.3.3" @@ -1294,20 +1306,41 @@ checksum = "ffebfc2d28a12b262c303cb3860ee77b91bd83b1f20f0bd2a9693008e2f55a9e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "bitcoin-io" -version = "0.1.3" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "git+https://github.com/DogeOS69/rust-dogecoin.git?branch=dogeos#ea3c4f9891fa061696b96c91147ab1ef2fe0705d" [[package]] name = "bitcoin_hashes" -version = "0.14.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" dependencies = [ "bitcoin-io", "hex-conservative", @@ -1448,14 +1481,14 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "borsh" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1463,15 +1496,73 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", +] + +[[package]] +name = "bridge_adapters_zk" +version = "0.3.0" +dependencies = [ + "bincode 2.0.1", + "bridge_core", + "bridge_protocol", + "openvm", + "serde", +] + +[[package]] +name = "bridge_core" +version = "0.3.0" +dependencies = [ + "bincode 2.0.1", + "thiserror 2.0.17", +] + +[[package]] +name = "bridge_protocol" +version = "0.3.0" +dependencies = [ + "bincode 2.0.1", + "bridge_core", + "serde", + "serde_bytes", +] + +[[package]] +name = "bridge_steps_deposit" +version = "0.3.0" +dependencies = [ + "bitcoin_hashes 0.12.0", + "bridge_core", + "bridge_protocol", + "bridge_transforms", + "byteorder", + "common_types", + "hex", + "nintondo-dogecoin", + "tracing", + "tracing-subscriber 0.3.22", + "url", +] + +[[package]] +name = "bridge_transforms" +version = "0.3.0" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "bridge_protocol", + "common_types", + "hex", + "thiserror 2.0.17", ] [[package]] @@ -1506,7 +1597,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1532,9 +1623,9 @@ dependencies = [ [[package]] name = "bytesize" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c99fa31e08a43eaa5913ef68d7e01c37a2bdce6ed648168239ad33b7d30a9cd8" +checksum = "6bd91ee7b2422bcb158d90ef4d14f75ef67f340943fc4149891dcce8f8b972a3" [[package]] name = "c-kzg" @@ -1648,9 +1739,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.46" +version = "1.2.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36" +checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a" dependencies = [ "find-msvc-tools", "jobserver", @@ -1697,9 +1788,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.51" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -1707,9 +1798,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.51" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -1726,7 +1817,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1778,6 +1869,20 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "common_types" +version = "0.3.0" +dependencies = [ + "alloy-primitives", + "hex", + "nintondo-dogecoin", + "prost", + "prost-build", + "serde", + "thiserror 2.0.17", + "tracing", +] + [[package]] name = "console" version = "0.16.1" @@ -1837,9 +1942,9 @@ checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" -version = "0.7.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" dependencies = [ "unicode-segmentation", ] @@ -1871,9 +1976,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" dependencies = [ "crc-catalog", ] @@ -1963,7 +2068,7 @@ checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ "bitflags", "crossterm_winapi", - "derive_more 2.0.1", + "derive_more 2.1.0", "document-features", "mio", "parking_lot", @@ -2121,7 +2226,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2136,7 +2241,7 @@ dependencies = [ "quote", "serde", "strsim", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2147,7 +2252,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2158,7 +2263,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2215,7 +2320,7 @@ checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2226,7 +2331,7 @@ checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2237,7 +2342,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2251,11 +2356,11 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "10b768e943bed7bf2cab53df09f4bc34bfd217cdb57d971e769874c9a6710618" dependencies = [ - "derive_more-impl 2.0.1", + "derive_more-impl 2.1.0", ] [[package]] @@ -2266,20 +2371,21 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "unicode-xid", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "6d286bfdaf75e988b4a78e013ecd79c581e06399ab53fbacd2d916c2f904f30b" dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.110", + "rustc_version 0.4.1", + "syn 2.0.111", "unicode-xid", ] @@ -2333,7 +2439,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2470,7 +2576,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2517,7 +2623,7 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoder-standard" version = "0.1.0" -source = "git+https://github.com/scroll-tech/da-codec.git#7a92e859b55094ba5b5c7d556c49c4dbd3f47ddb" +source = "git+https://github.com/scroll-tech/da-codec.git#54929786434f00efd00431517a332f1ec8ca58d4" dependencies = [ "zstd", ] @@ -2554,7 +2660,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2566,7 +2672,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2577,7 +2683,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2667,7 +2773,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2777,6 +2883,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.1.5" @@ -2891,7 +3003,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2996,7 +3108,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3031,7 +3143,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3112,7 +3224,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.12.0", + "indexmap 2.12.1", "slab", "tokio", "tokio-util", @@ -3304,12 +3416,13 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "foldhash 0.2.0", "serde", + "serde_core", ] [[package]] @@ -3341,9 +3454,9 @@ dependencies = [ [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" dependencies = [ "arrayvec", ] @@ -3354,6 +3467,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hex_lit" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" + [[package]] name = "hkdf" version = "0.12.4" @@ -3374,12 +3493,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -3477,11 +3595,11 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-channel", "futures-core", @@ -3513,7 +3631,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.2", ] [[package]] @@ -3650,7 +3768,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3672,12 +3790,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -3792,7 +3910,7 @@ checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3822,9 +3940,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.82" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -3908,9 +4026,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.178" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" [[package]] name = "libm" @@ -3936,7 +4054,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64", + "base64 0.22.1", "digest 0.9.0", "libsecp256k1-core", "libsecp256k1-gen-ecmult", @@ -4010,9 +4128,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lru" @@ -4040,7 +4158,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4099,7 +4217,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62a6a1f7141f1d9bc7a886b87536bbfc97752e08b369e1e0453a9acfab5f5da4" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "itoa", "lockfree-object-pool", "metrics", @@ -4107,7 +4225,7 @@ dependencies = [ "once_cell", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -4120,7 +4238,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.14.5", - "indexmap 2.12.0", + "indexmap 2.12.1", "metrics", "num_cpus", "ordered-float 4.6.0", @@ -4188,6 +4306,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "multimap" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" + [[package]] name = "munge" version = "0.4.7" @@ -4205,7 +4329,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4234,6 +4358,21 @@ dependencies = [ "smallvec", ] +[[package]] +name = "nintondo-dogecoin" +version = "0.30.7" +source = "git+https://github.com/DogeOS69/rust-dogecoin.git?branch=dogeos#ea3c4f9891fa061696b96c91147ab1ef2fe0705d" +dependencies = [ + "base64 0.13.1", + "bech32", + "bitcoin-private 0.1.0 (git+https://github.com/DogeOS69/rust-dogecoin.git?branch=dogeos)", + "bitcoin_hashes 0.12.0", + "hex-conservative", + "hex_lit", + "secp256k1 0.27.0", + "serde", +] + [[package]] name = "no-std-compat" version = "0.4.1" @@ -4413,7 +4552,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4515,11 +4654,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", - "derive_more 2.0.1", + "alloy-serde 1.1.2", + "derive_more 2.1.0", "serde", "serde_with", "thiserror 2.0.17", @@ -4527,33 +4666,33 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.22.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d7ec388eb83a3e6c71774131dbbb2ba9c199b6acac7dce172ed8de2f819e91" +checksum = "726da827358a547be9f1e37c2a756b9e3729cb0350f43408164794b370cad8ae" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", - "derive_more 2.0.1", + "derive_more 2.1.0", "thiserror 2.0.17", ] [[package]] name = "op-alloy-rpc-types-engine" -version = "0.22.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1abe694cd6718b8932da3f824f46778be0f43289e4103c88abc505c63533a04" +checksum = "d8f24b8cb66e4b33e6c9e508bf46b8ecafc92eadd0b93fedd306c0accb477657" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", - "derive_more 2.0.1", + "derive_more 2.1.0", "ethereum_ssz", "ethereum_ssz_derive", - "op-alloy-consensus 0.22.1", + "op-alloy-consensus 0.22.4", "snap", "thiserror 2.0.17", ] @@ -4598,7 +4737,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4673,7 +4812,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4701,7 +4840,7 @@ dependencies = [ "num-prime", "openvm-macros-common", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4757,7 +4896,7 @@ dependencies = [ "openvm-transpiler", "tempfile", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -4869,7 +5008,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4897,7 +5036,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "itertools 0.14.0", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4977,7 +5116,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5038,7 +5177,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5078,7 +5217,7 @@ version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5136,7 +5275,7 @@ name = "openvm-macros-common" version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5220,7 +5359,7 @@ version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5634,7 +5773,7 @@ dependencies = [ "toml", "tracing", "tracing-forest", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", "zkhash", ] @@ -6097,7 +6236,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6167,14 +6306,24 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" +checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" dependencies = [ "memchr", "ucd-trie", ] +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap 2.12.1", +] + [[package]] name = "phf" version = "0.11.3" @@ -6227,7 +6376,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6240,7 +6389,7 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6278,7 +6427,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6381,7 +6530,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6432,7 +6581,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6463,6 +6612,58 @@ dependencies = [ "unarray", ] +[[package]] +name = "prost" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +dependencies = [ + "heck 0.5.0", + "itertools 0.14.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.111", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "prost-types" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +dependencies = [ + "prost", +] + [[package]] name = "psm" version = "0.1.28" @@ -6490,7 +6691,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6700,7 +6901,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6747,7 +6948,7 @@ version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "encoding_rs", "futures-channel", @@ -6791,13 +6992,13 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-evm", "alloy-genesis", "alloy-primitives", "alloy-trie 0.9.1", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.0", "reth-ethereum-forks", "reth-network-peers", "reth-primitives-traits", @@ -6810,7 +7011,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-genesis", "alloy-primitives", "alloy-trie 0.9.1", @@ -6829,7 +7030,7 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6851,7 +7052,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -6862,7 +7063,7 @@ name = "reth-db-models" version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "reth-primitives-traits", ] @@ -6884,7 +7085,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -6912,11 +7113,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "reth-codecs", "reth-primitives-traits", "serde", @@ -6929,11 +7130,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-evm", "alloy-primitives", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.0", "futures-util", "reth-execution-errors", "reth-execution-types", @@ -6951,7 +7152,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", @@ -6984,10 +7185,10 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-evm", "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.0", "reth-ethereum-primitives", "reth-primitives-traits", "reth-trie-common", @@ -7025,7 +7226,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -7033,7 +7234,7 @@ dependencies = [ "alloy-trie 0.9.1", "auto_impl", "bytes", - "derive_more 2.0.1", + "derive_more 2.1.0", "once_cell", "op-alloy-consensus 0.20.0", "reth-codecs", @@ -7053,7 +7254,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.0", "thiserror 2.0.17", ] @@ -7076,12 +7277,12 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-genesis", "alloy-primitives", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.0", "once_cell", "reth-chainspec", "reth-ethereum-forks", @@ -7100,11 +7301,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", - "derive_more 2.0.1", + "derive_more 2.1.0", "reth-chainspec", "reth-evm", "reth-execution-types", @@ -7144,7 +7345,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", "bytes", @@ -7196,7 +7397,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.0", "serde", "strum 0.27.2", ] @@ -7207,7 +7408,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", @@ -7228,10 +7429,10 @@ name = "reth-storage-errors" version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", - "derive_more 2.0.1", + "derive_more 2.1.0", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", @@ -7245,7 +7446,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", @@ -7270,7 +7471,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", - "derive_more 2.0.1", + "derive_more 2.1.0", "itertools 0.14.0", "nybbles 0.4.6", "reth-primitives-traits", @@ -7372,7 +7573,7 @@ dependencies = [ "revm-inspector 11.2.0", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", ] @@ -7484,7 +7685,7 @@ dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -7546,7 +7747,7 @@ dependencies = [ "auto_impl", "either", "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -7571,7 +7772,7 @@ version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "revm-bytecode 6.2.2", "revm-database-interface 7.0.5", "revm-primitives 20.2.1", @@ -7584,7 +7785,7 @@ name = "revm-database" version = "9.0.1" source = "git+https://github.com/scroll-tech/revm?tag=scroll-v91#10e11b985ed28bd383e624539868bcc3f613d77c" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "revm-bytecode 7.0.1", "revm-database-interface 8.0.2", "revm-primitives 21.0.1", @@ -7598,7 +7799,7 @@ version = "9.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "980d8d6bba78c5dd35b83abbb6585b0b902eb25ea4448ed7bfba6283b0337191" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "revm-bytecode 7.1.1", "revm-database-interface 8.0.5", "revm-primitives 21.0.2", @@ -7725,7 +7926,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -7794,7 +7995,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-handler 11.2.0", "revm-interpreter 28.0.0", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", "serde_json", @@ -7844,7 +8045,7 @@ checksum = "f1de5c790122f8ded67992312af8acd41ccfcee629b25b819e10c5b1f69caf57" dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -8066,7 +8267,7 @@ dependencies = [ [[package]] name = "risc0-ethereum-trie" version = "0.1.0" -source = "git+https://github.com/risc0/risc0-ethereum#c1ddb41a44dc0730da883bbfa9fbe75ad335df1b" +source = "git+https://github.com/risc0/risc0-ethereum#e475fe6c8dcff92fb5e67d6556cb11ba3ab4e494" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8087,7 +8288,7 @@ dependencies = [ "bytecheck", "bytes", "hashbrown 0.15.5", - "indexmap 2.12.0", + "indexmap 2.12.1", "munge", "ptr_meta", "rancor", @@ -8105,7 +8306,7 @@ checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -8245,9 +8446,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" +checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c" dependencies = [ "zeroize", ] @@ -8327,13 +8528,13 @@ version = "2.0.0" source = "git+https://github.com/scroll-tech/stateless-block-verifier?tag=scroll-v91.2#3a32848c9438432125751eae8837757f6b87562e" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-evm", "alloy-network", "alloy-primitives", "alloy-rpc-types-debug", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "reth-chainspec", "reth-ethereum-forks", "reth-evm", @@ -8429,11 +8630,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", - "derive_more 2.0.1", + "alloy-serde 1.1.2", + "derive_more 2.1.0", "reth-codecs", "serde", "serde_with", @@ -8445,7 +8646,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-evm", "alloy-primitives", "auto_impl", @@ -8488,12 +8689,12 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.2", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", - "derive_more 2.0.1", + "alloy-serde 1.1.2", + "derive_more 2.1.0", "scroll-alloy-consensus", "serde", "serde_json", @@ -8579,7 +8780,7 @@ dependencies = [ "alloy-rpc-client", "alloy-transport", "axiom-sdk", - "base64", + "base64 0.22.1", "bincode 2.0.1", "bytesize", "cargo_metadata 0.23.1", @@ -8613,7 +8814,7 @@ dependencies = [ "sysinfo", "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", "url", "vm-zstd", ] @@ -8622,7 +8823,7 @@ dependencies = [ name = "scroll-zkvm-prover" version = "0.7.1" dependencies = [ - "base64", + "base64 0.22.1", "bincode 1.3.3", "cudarc", "eyre", @@ -8649,7 +8850,7 @@ name = "scroll-zkvm-types" version = "0.7.1" dependencies = [ "alloy-primitives", - "base64", + "base64 0.22.1", "bincode 1.3.3", "eyre", "hex", @@ -8672,7 +8873,7 @@ name = "scroll-zkvm-types-base" version = "0.7.1" dependencies = [ "alloy-primitives", - "alloy-serde 1.1.1", + "alloy-serde 1.1.2", "rkyv", "serde", "sha2 0.10.9", @@ -8716,6 +8917,9 @@ dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-sol-types", + "bridge_adapters_zk", + "bridge_core", + "bridge_steps_deposit", "ecies", "itertools 0.14.0", "k256 0.13.4 (git+https://github.com/openvm-org/openvm.git?tag=v1.4.1)", @@ -8798,13 +9002,25 @@ dependencies = [ "zeroize", ] +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes 0.12.0", + "rand 0.8.5", + "secp256k1-sys 0.8.2", + "serde", +] + [[package]] name = "secp256k1" version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ - "bitcoin_hashes", + "bitcoin_hashes 0.14.1", "rand 0.8.5", "secp256k1-sys 0.10.1", "serde", @@ -8816,11 +9032,20 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ - "bitcoin_hashes", + "bitcoin_hashes 0.14.1", "rand 0.9.2", "secp256k1-sys 0.11.0", ] +[[package]] +name = "secp256k1-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4473013577ec77b4ee3668179ef1186df3146e2cf2d927bd200974c6fe60fd99" +dependencies = [ + "cc", +] + [[package]] name = "secp256k1-sys" version = "0.10.1" @@ -8940,6 +9165,16 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_bytes" +version = "0.11.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" +dependencies = [ + "serde", + "serde_core", +] + [[package]] name = "serde_core" version = "1.0.228" @@ -8957,7 +9192,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -8966,7 +9201,7 @@ version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "itoa", "memchr", "ryu", @@ -9008,15 +9243,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" dependencies = [ - "base64", + "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.0", + "indexmap 2.12.1", "schemars 0.9.0", "schemars 1.1.0", "serde_core", @@ -9027,14 +9262,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9142,9 +9377,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" dependencies = [ "libc", ] @@ -9356,7 +9591,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9369,7 +9604,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9381,7 +9616,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9403,9 +9638,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.110" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -9421,7 +9656,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9441,7 +9676,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9526,7 +9761,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9537,7 +9772,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "test-case-core", ] @@ -9567,7 +9802,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9578,7 +9813,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9709,7 +9944,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9793,7 +10028,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -9807,7 +10042,7 @@ version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "toml_datetime 0.7.3", "toml_parser", "toml_writer", @@ -9852,9 +10087,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" dependencies = [ "bitflags", "bytes", @@ -9882,9 +10117,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -9893,20 +10128,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" dependencies = [ "once_cell", "valuable", @@ -9919,7 +10154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -9932,7 +10167,7 @@ dependencies = [ "smallvec", "thiserror 1.0.69", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -9957,9 +10192,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", @@ -10113,9 +10348,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ "js-sys", "wasm-bindgen", @@ -10204,9 +10439,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", @@ -10217,9 +10452,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.55" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -10230,9 +10465,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10240,22 +10475,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] @@ -10276,9 +10511,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.82" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -10332,7 +10567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core", + "windows-core 0.61.2", "windows-future", "windows-link 0.1.3", "windows-numerics", @@ -10344,7 +10579,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -10360,13 +10595,26 @@ dependencies = [ "windows-strings 0.4.2", ] +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + [[package]] name = "windows-future" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core", + "windows-core 0.61.2", "windows-link 0.1.3", "windows-threading", ] @@ -10379,7 +10627,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10390,7 +10638,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10411,7 +10659,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core", + "windows-core 0.61.2", "windows-link 0.1.3", ] @@ -10638,9 +10886,9 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] @@ -10685,28 +10933,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10726,7 +10974,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "synstructure", ] @@ -10747,7 +10995,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10780,7 +11028,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e82f2814..7b3e6287 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -150,6 +150,11 @@ scroll-zkvm-integration = { path = "crates/integration" } scroll-zkvm-prover = { path = "crates/prover" } scroll-zkvm-verifier = { path = "crates/verifier" } +# dogeos crates +bridge_core = { path = "../dogeos-core/crates/bridge_core", default-features = false } +bridge_adapters_zk = { path = "../dogeos-core/crates/bridge_adapters_zk", default-features = false } +bridge_steps_deposit = { path = "../dogeos-core/crates/bridge_steps_deposit", default-features = false } + [patch.crates-io] revm = { git = "https://github.com/scroll-tech/revm", tag = "scroll-v91" } revm-bytecode = { git = "https://github.com/scroll-tech/revm", tag = "scroll-v91" } diff --git a/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs b/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs index 86d7b7a6..71a4467a 100644 --- a/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs +++ b/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs @@ -1,4 +1,4 @@ #![cfg_attr(rustfmt, rustfmt_skip)] //! Generated by crates/build-guest. DO NOT EDIT! -pub const COMMIT: [u32; 8] = [258286775, 1730996537, 1506947376, 1543524989, 653280630, 1028288165, 259337800, 1416761391]; +pub const COMMIT: [u32; 8] = [1564750536, 1199068721, 1357124636, 509005417, 850566565, 719694908, 1451454140, 1537636711]; diff --git a/crates/types/base/src/public_inputs/dogeos/chunk.rs b/crates/types/base/src/public_inputs/dogeos/chunk.rs index ee0ac396..2893cfb6 100644 --- a/crates/types/base/src/public_inputs/dogeos/chunk.rs +++ b/crates/types/base/src/public_inputs/dogeos/chunk.rs @@ -6,8 +6,11 @@ use crate::public_inputs::MultiVersionPublicInputs; pub struct DogeOsChunkInfo { /// Scroll ChunkInfo pub inner: scroll::chunk::ChunkInfo, - // Other DogeOs-specific fields can be added here - // ... + // DogeOs-specific fields can be added here + /// The starting dogecoin blockhash of the chunk. + pub start_blockhash: [u8; 32], + /// The ending dogecoin blockhash of the chunk. + pub end_blockhash: [u8; 32], } pub type VersionedDogeOsChunkInfo = (DogeOsChunkInfo, Version); @@ -15,12 +18,16 @@ pub type VersionedDogeOsChunkInfo = (DogeOsChunkInfo, Version); impl MultiVersionPublicInputs for DogeOsChunkInfo { fn pi_by_version(&self, version: Version) -> Vec { - let scroll_chunk_pi = self.inner.pi_by_version(version); + let mut scroll_chunk_pi = self.inner.pi_by_version(version); + scroll_chunk_pi.extend_from_slice(&self.start_blockhash); + scroll_chunk_pi.extend_from_slice(&self.end_blockhash); scroll_chunk_pi } fn validate(&self, prev_pi: &Self, version: Version) { - self.inner.validate(&prev_pi.inner, version) + self.inner.validate(&prev_pi.inner, version); + // dogecoin blockhash linkage check enforce no deposit tx can be skipped + assert_eq!(self.start_blockhash, prev_pi.end_blockhash); } } diff --git a/crates/types/chunk/Cargo.toml b/crates/types/chunk/Cargo.toml index 0d758c68..703a893f 100644 --- a/crates/types/chunk/Cargo.toml +++ b/crates/types/chunk/Cargo.toml @@ -29,6 +29,10 @@ openvm-pairing = { workspace = true, features = ["bn254"] } types-base = { path = "../base", package = "scroll-zkvm-types-base"} +bridge_core = { workspace = true } +bridge_adapters_zk = { workspace = true, features = ["verifier"] } +bridge_steps_deposit = { workspace = true, features = ["verifier"] } + [dev-dependencies] serde_json.workspace = true diff --git a/crates/types/chunk/src/dogeos/execute.rs b/crates/types/chunk/src/dogeos/execute.rs index 188dac38..c9464ab9 100644 --- a/crates/types/chunk/src/dogeos/execute.rs +++ b/crates/types/chunk/src/dogeos/execute.rs @@ -1,9 +1,12 @@ +use bridge_adapters_zk::{StepInputEnvelope, ZkVerifierExt}; +use bridge_steps_deposit::{HeaderVerifier, MidstateVerifier}; +use itertools::Itertools; use sbv_primitives::types::consensus::TxL1Message; use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfo; use super::witness::DogeOsChunkWitness; pub fn execute(witness: DogeOsChunkWitness) -> Result { - let _l1_messages = witness + let l1_messages = witness .inner.blocks.iter() .flat_map(|block| block.transactions.iter()) .filter_map(|tx| tx.as_l1_message()) @@ -12,9 +15,48 @@ pub fn execute(witness: DogeOsChunkWitness) -> Result let chunk_info = crate::scroll::execute(witness.inner)?; + verify_deposits( + &witness.verifier_context, + &witness.header, + &witness.midstate, + &l1_messages + )?; + + let start_blockhash = witness + .header + .statement + .start_blockhash + .expect("start_blockhash must be present in header statement"); + let end_blockhash = witness + .header + .statement + .end_blockhash + .expect("end_blockhash must be present in header statement"); Ok(DogeOsChunkInfo { inner: chunk_info, // Other DogeOs-specific fields can be initialized here - // ... + start_blockhash, + end_blockhash, }) } + +fn verify_deposits( + verifier_context: &bridge_core::VerifierContext, + header_envelope: &StepInputEnvelope, + midstate_envelope: &StepInputEnvelope, + l1_messages: &[TxL1Message], +) -> Result<(), String> { + HeaderVerifier.verify_envelope(&header_envelope, &verifier_context) + .map_err(|e| format!("dogeos deposit header verification failed: {e}"))?; + assert_eq!(header_envelope.statement, midstate_envelope.statement.header_range); + MidstateVerifier.verify_envelope(&midstate_envelope, &verifier_context) + .map_err(|e| format!("dogeos deposit midstate verification failed: {e}"))?; + + for (deposit, l1_message) in midstate_envelope.statement.expected_deposits.iter().zip_eq(l1_messages) { + l1_message.input + + } + + Ok(()) + +} diff --git a/crates/types/chunk/src/dogeos/types.rs b/crates/types/chunk/src/dogeos/types.rs index e69de29b..3d962572 100644 --- a/crates/types/chunk/src/dogeos/types.rs +++ b/crates/types/chunk/src/dogeos/types.rs @@ -0,0 +1,68 @@ +use alloy_sol_types::{sol, SolCall}; + +sol! { + /// L2ScrollMessenger.relayMessage function + /// This is what gets stored in L1MessageQueue and executed on L2 + /// Signature: relayMessage(address,address,uint256,uint256,bytes) + /// Method selector: 0x8ef1332e + function relayMessage( + address from, + address to, + uint256 value, + uint256 nonce, + bytes message + ) external; + + /// Moat.handleL1Message function + /// This is the final L2 execution target + /// Signature: handleL1Message(address,bytes32) + function handleL1Message( + address _target, + bytes32 _depositID + ) external; + + /// L1ScrollMessenger.sendMessage function + /// This is the L1 interface (for reference/validation only) + /// NOT used in queue construction - only for validation + function sendMessage( + address target, + uint256 value, + bytes calldata message, + uint256 gasLimit, + address refundAddress + ) external payable; +} + +#[cfg(test)] +mod tests { + use alloy_primitives::{Address, B256, U256}; + use alloy_sol_types::SolCall; + use crate::dogeos::types::{handleL1MessageCall, relayMessageCall}; + + fn create_queue_transaction_calldata( + moat_contract_address: Address, + from: Address, + to: Address, + value: U256, + nonce: u64, + deposit_id: B256, + ) -> Vec { + // Step 1: Create Moat.handleL1Message calldata (innermost call) + // This is what will ultimately be executed when relayMessage calls the Moat contract + let moat_call = handleL1MessageCall { _target: to, _depositID: deposit_id }; + let moat_calldata = moat_call.abi_encode(); + + // Step 2: Create L2ScrollMessenger.relayMessage calldata (what gets queued) + // This is the call that L1MessageQueue stores and L2ScrollMessenger will execute + let relay_call = relayMessageCall { + from, // Original L1 sender + to: moat_contract_address, // Moat contract (intermediate target) + value, // ETH value to transfer + nonce: U256::from(nonce), // Queue index as nonce + message: moat_calldata.into(), // Nested Moat.handleL1Message call + }; + + relay_call.abi_encode() + } + +} diff --git a/crates/types/chunk/src/dogeos/witness.rs b/crates/types/chunk/src/dogeos/witness.rs index 6f48a2fb..796580db 100644 --- a/crates/types/chunk/src/dogeos/witness.rs +++ b/crates/types/chunk/src/dogeos/witness.rs @@ -1,3 +1,7 @@ +use bridge_adapters_zk::serde::SerdeWrapper; +use bridge_adapters_zk::StepInputEnvelope; +use bridge_core::VerifierContext; +use bridge_steps_deposit::{HeaderVerifier, MidstateVerifier}; use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfo; use crate::scroll; @@ -7,7 +11,9 @@ pub struct DogeOsChunkWitness { /// Scroll ChunkWitness pub inner: scroll::ChunkWitness, // Other DogeOs-specific fields can be added here - // ... + pub verifier_context: SerdeWrapper, + pub header: SerdeWrapper>, + pub midstate: SerdeWrapper>, } impl TryFrom for DogeOsChunkInfo { From bc6d49fd42a24ce37522964371a21c10257c4e1d Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 4 Dec 2025 16:49:26 +0800 Subject: [PATCH 05/26] save --- Cargo.lock | 662 ++++++++++++------------- crates/types/chunk/src/dogeos/types.rs | 26 +- 2 files changed, 326 insertions(+), 362 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7e926573..361cafa5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,9 +92,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.21" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ebac8ff9c2f07667e1803dc777304337e160ce5153335beb45e8ec0751808" +checksum = "bfaa9ea039a6f9304b4a593d780b1f23e1ae183acdee938b11b38795acacc9f1" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -105,20 +105,20 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6440213a22df93a87ed512d2f668e7dc1d62a05642d107f82d61edc9e12370" +checksum = "ad704069c12f68d0c742d0cad7e0a03882b42767350584627fbf8a47b1bf1846" dependencies = [ - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "alloy-trie 0.9.1", "alloy-tx-macros", "auto_impl", "borsh", "c-kzg", - "derive_more 2.1.0", + "derive_more 2.0.1", "either", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell", @@ -132,15 +132,15 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d0bea09287942405c4f9d2a4f22d1e07611c2dbd9d5bf94b75366340f9e6e0" +checksum = "bc374f640a5062224d7708402728e3d6879a514ba10f377da62e7dfb14c673e6" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "serde", ] @@ -198,7 +198,7 @@ dependencies = [ "alloy-serde 0.14.0", "auto_impl", "c-kzg", - "derive_more 2.1.0", + "derive_more 2.0.1", "either", "serde", "sha2 0.10.9", @@ -206,20 +206,20 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd2c7ae05abcab4483ce821f12f285e01c0b33804e6883dd9ca1569a87ee2be" +checksum = "7e867b5fd52ed0372a95016f3a37cbff95a9d5409230fbaef2d8ea00e8618098" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "auto_impl", "borsh", "c-kzg", - "derive_more 2.1.0", + "derive_more 2.0.1", "either", "ethereum_ssz", "ethereum_ssz_derive", @@ -236,30 +236,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08e9e656d58027542447c1ca5aa4ca96293f09e6920c4651953b7451a7c35e4e" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-hardforks", "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", - "derive_more 2.1.0", - "op-alloy-consensus 0.22.4", + "derive_more 2.0.1", + "op-alloy-consensus 0.22.1", "op-alloy-rpc-types-engine", "op-revm", - "revm 30.1.1", + "revm 30.2.0", "thiserror 2.0.17", ] [[package]] name = "alloy-genesis" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc47eaae86488b07ea8e20236184944072a78784a1f4993f8ec17b3aa5d08c21" +checksum = "b90be17e9760a6ba6d13cebdb049cea405ebc8bf57d90664ed708cc5bc348342" dependencies = [ - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "alloy-trie 0.9.1", "borsh", "serde", @@ -294,9 +294,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003f46c54f22854a32b9cc7972660a476968008ad505427eabab49225309ec40" +checksum = "dcab4c51fb1273e3b0f59078e0cdf8aa99f697925b09f0d2055c18be46b4d48c" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -309,24 +309,24 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4029954d9406a40979f3a3b46950928a0fdcfe3ea8a9b0c17490d57e8aa0e3" +checksum = "196d7fd3f5d414f7bbd5886a628b7c42bd98d1b126f9a7cff69dbfd72007b39c" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "alloy-signer", "alloy-sol-types", "async-trait", "auto_impl", - "derive_more 2.1.0", + "derive_more 2.0.1", "futures-utils-wasm", "serde", "serde_json", @@ -335,14 +335,14 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7805124ad69e57bbae7731c9c344571700b2a18d351bda9e0eba521c991d1bcb" +checksum = "0d3ae2777e900a7a47ad9e3b8ab58eff3d93628265e73bbdee09acf90bf68f75" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "serde", ] @@ -356,10 +356,10 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more 2.1.0", + "derive_more 2.0.1", "foldhash 0.2.0", - "hashbrown 0.16.1", - "indexmap 2.12.1", + "hashbrown 0.16.0", + "indexmap 2.12.0", "itoa", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-asm", @@ -376,13 +376,13 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d369e12c92870d069e0c9dc5350377067af8a056e29e3badf8446099d7e00889" +checksum = "9f9bf40c9b2a90c7677f9c39bccd9f06af457f35362439c0497a706f16557703" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -432,14 +432,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] name = "alloy-rpc-client" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c89883fe6b7381744cbe80fef638ac488ead4f1956a4278956a1362c71cd2e" +checksum = "e7c2630fde9ff6033a780635e1af6ef40e92d74a9cacb8af3defc1b15cfebca5" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -460,39 +460,39 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b43c1622aac2508d528743fd4cfdac1dea92d5a8fa894038488ff7edd0af0b32" +checksum = "50b8429b5b62d21bf3691eb1ae12aaae9bb496894d5a114e3cc73e27e6800ec8" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2ca3a434a6d49910a7e8e51797eb25db42ef8a5578c52d877fcb26d0afe7bc" +checksum = "01731601ea631bd825c652a225701ab466c09457f446b8d8129368a095389c5d" dependencies = [ "alloy-primitives", - "derive_more 2.1.0", + "derive_more 2.0.1", "serde", "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4c53a8b0905d931e7921774a1830609713bd3e8222347963172b03a3ecc68" +checksum = "9981491bb98e76099983f516ec7de550db0597031f5828c994961eb4bb993cce" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.2", - "derive_more 2.1.0", + "alloy-serde 1.1.1", + "derive_more 2.0.1", "ethereum_ssz", "ethereum_ssz_derive", "serde", @@ -501,17 +501,17 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5fafb741c19b3cca4cdd04fa215c89413491f9695a3e928dee2ae5657f607e" +checksum = "29031a6bf46177d65efce661f7ab37829ca09dd341bc40afb5194e97600655cc" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "alloy-sol-types", "itertools 0.14.0", "serde", @@ -533,9 +533,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f180c399ca7c1e2fe17ea58343910cad0090878a696ff5a50241aee12fc529" +checksum = "01e856112bfa0d9adc85bd7c13db03fad0e71d1d6fb4c2010e475b6718108236" dependencies = [ "alloy-primitives", "serde", @@ -544,9 +544,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc39ad2c0a3d2da8891f4081565780703a593f090f768f884049aa3aa929cbc" +checksum = "66a4f629da632d5279bbc5731634f0f5c9484ad9c4cad0cd974d9669dc1f46d6" dependencies = [ "alloy-primitives", "async-trait", @@ -568,7 +568,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -580,11 +580,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.12.1", + "indexmap 2.12.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", "syn-solidity", "tiny-keccak", ] @@ -601,7 +601,7 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", "syn-solidity", ] @@ -629,14 +629,14 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae82426d98f8bc18f53c5223862907cac30ab8fc5e4cd2bb50808e6d3ab43d8" +checksum = "fe215a2f9b51d5f1aa5c8cf22c8be8cdb354934de09c9a4e37aefb79b77552fd" dependencies = [ "alloy-json-rpc", "auto_impl", "base64 0.22.1", - "derive_more 2.1.0", + "derive_more 2.0.1", "futures", "futures-utils-wasm", "governor", @@ -653,9 +653,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90aa6825760905898c106aba9c804b131816a15041523e80b6d4fe7af6380ada" +checksum = "dc1b37b1a30d23deb3a8746e882c70b384c574d355bc2bbea9ea918b0c31366e" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -675,7 +675,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 2.1.0", + "derive_more 2.0.1", "nybbles 0.3.4", "serde", "smallvec", @@ -691,7 +691,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 2.1.0", + "derive_more 2.0.1", "nybbles 0.4.6", "serde", "smallvec", @@ -700,14 +700,14 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae109e33814b49fc0a62f2528993aa8a2dd346c26959b151f05441dc0b9da292" +checksum = "7ccf423f6de62e8ce1d6c7a11fb7508ae3536d02e0d68aaeb05c8669337d0937" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -923,7 +923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -961,7 +961,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -1050,7 +1050,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -1118,7 +1118,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -1129,7 +1129,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -1156,7 +1156,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -1306,14 +1306,14 @@ checksum = "ffebfc2d28a12b262c303cb3860ee77b91bd83b1f20f0bd2a9693008e2f55a9e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] name = "bitcoin-io" -version = "0.1.4" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" [[package]] name = "bitcoin-private" @@ -1338,9 +1338,9 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.14.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" dependencies = [ "bitcoin-io", "hex-conservative", @@ -1481,14 +1481,14 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] name = "borsh" -version = "1.6.0" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1496,15 +1496,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.6.0" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -1549,7 +1549,7 @@ dependencies = [ "hex", "nintondo-dogecoin", "tracing", - "tracing-subscriber 0.3.22", + "tracing-subscriber 0.3.20", "url", ] @@ -1597,7 +1597,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -1623,9 +1623,9 @@ dependencies = [ [[package]] name = "bytesize" -version = "2.3.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd91ee7b2422bcb158d90ef4d14f75ef67f340943fc4149891dcce8f8b972a3" +checksum = "c99fa31e08a43eaa5913ef68d7e01c37a2bdce6ed648168239ad33b7d30a9cd8" [[package]] name = "c-kzg" @@ -1739,9 +1739,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.48" +version = "1.2.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a" +checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36" dependencies = [ "find-msvc-tools", "jobserver", @@ -1788,9 +1788,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.53" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" +checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" dependencies = [ "clap_builder", "clap_derive", @@ -1798,9 +1798,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.53" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" +checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" dependencies = [ "anstream", "anstyle", @@ -1817,7 +1817,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -1942,9 +1942,9 @@ checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" -version = "0.10.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" dependencies = [ "unicode-segmentation", ] @@ -1976,9 +1976,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.4.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" +checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" dependencies = [ "crc-catalog", ] @@ -2068,7 +2068,7 @@ checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ "bitflags", "crossterm_winapi", - "derive_more 2.1.0", + "derive_more 2.0.1", "document-features", "mio", "parking_lot", @@ -2226,7 +2226,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2241,7 +2241,7 @@ dependencies = [ "quote", "serde", "strsim", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2252,7 +2252,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2263,7 +2263,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2320,7 +2320,7 @@ checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2331,7 +2331,7 @@ checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2342,7 +2342,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2356,11 +2356,11 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b768e943bed7bf2cab53df09f4bc34bfd217cdb57d971e769874c9a6710618" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" dependencies = [ - "derive_more-impl 2.1.0", + "derive_more-impl 2.0.1", ] [[package]] @@ -2371,21 +2371,20 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", "unicode-xid", ] [[package]] name = "derive_more-impl" -version = "2.1.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d286bfdaf75e988b4a78e013ecd79c581e06399ab53fbacd2d916c2f904f30b" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.1", - "syn 2.0.111", + "syn 2.0.110", "unicode-xid", ] @@ -2439,7 +2438,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2576,7 +2575,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2623,7 +2622,7 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoder-standard" version = "0.1.0" -source = "git+https://github.com/scroll-tech/da-codec.git#54929786434f00efd00431517a332f1ec8ca58d4" +source = "git+https://github.com/scroll-tech/da-codec.git#7a92e859b55094ba5b5c7d556c49c4dbd3f47ddb" dependencies = [ "zstd", ] @@ -2660,7 +2659,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2672,7 +2671,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2683,7 +2682,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -2773,7 +2772,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -3003,7 +3002,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -3108,7 +3107,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -3143,7 +3142,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -3224,7 +3223,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.12.1", + "indexmap 2.12.0", "slab", "tokio", "tokio-util", @@ -3416,13 +3415,12 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" dependencies = [ "foldhash 0.2.0", "serde", - "serde_core", ] [[package]] @@ -3454,9 +3452,9 @@ dependencies = [ [[package]] name = "hex-conservative" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" dependencies = [ "arrayvec", ] @@ -3493,11 +3491,12 @@ dependencies = [ [[package]] name = "http" -version = "1.4.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", + "fnv", "itoa", ] @@ -3595,9 +3594,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.19" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" +checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" dependencies = [ "base64 0.22.1", "bytes", @@ -3631,7 +3630,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core", ] [[package]] @@ -3768,7 +3767,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -3790,12 +3789,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.16.0", "serde", "serde_core", ] @@ -3910,7 +3909,7 @@ checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -3940,9 +3939,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -4026,9 +4025,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.178" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libm" @@ -4128,9 +4127,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.29" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "lru" @@ -4158,7 +4157,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -4217,7 +4216,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62a6a1f7141f1d9bc7a886b87536bbfc97752e08b369e1e0453a9acfab5f5da4" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.12.0", "itoa", "lockfree-object-pool", "metrics", @@ -4225,7 +4224,7 @@ dependencies = [ "once_cell", "tracing", "tracing-core", - "tracing-subscriber 0.3.22", + "tracing-subscriber 0.3.20", ] [[package]] @@ -4238,7 +4237,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.14.5", - "indexmap 2.12.1", + "indexmap 2.12.0", "metrics", "num_cpus", "ordered-float 4.6.0", @@ -4329,7 +4328,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -4552,7 +4551,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -4654,11 +4653,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.2", - "derive_more 2.1.0", + "alloy-serde 1.1.1", + "derive_more 2.0.1", "serde", "serde_with", "thiserror 2.0.17", @@ -4666,33 +4665,33 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.22.4" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726da827358a547be9f1e37c2a756b9e3729cb0350f43408164794b370cad8ae" +checksum = "a0d7ec388eb83a3e6c71774131dbbb2ba9c199b6acac7dce172ed8de2f819e91" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", - "derive_more 2.1.0", + "derive_more 2.0.1", "thiserror 2.0.17", ] [[package]] name = "op-alloy-rpc-types-engine" -version = "0.22.4" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8f24b8cb66e4b33e6c9e508bf46b8ecafc92eadd0b93fedd306c0accb477657" +checksum = "c1abe694cd6718b8932da3f824f46778be0f43289e4103c88abc505c63533a04" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", - "derive_more 2.1.0", + "derive_more 2.0.1", "ethereum_ssz", "ethereum_ssz_derive", - "op-alloy-consensus 0.22.4", + "op-alloy-consensus 0.22.1", "snap", "thiserror 2.0.17", ] @@ -4737,7 +4736,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -4812,7 +4811,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -4840,7 +4839,7 @@ dependencies = [ "num-prime", "openvm-macros-common", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -4896,7 +4895,7 @@ dependencies = [ "openvm-transpiler", "tempfile", "tracing", - "tracing-subscriber 0.3.22", + "tracing-subscriber 0.3.20", ] [[package]] @@ -5008,7 +5007,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -5036,7 +5035,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "itertools 0.14.0", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -5116,7 +5115,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -5177,7 +5176,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -5217,7 +5216,7 @@ version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -5275,7 +5274,7 @@ name = "openvm-macros-common" version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -5359,7 +5358,7 @@ version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -5773,7 +5772,7 @@ dependencies = [ "toml", "tracing", "tracing-forest", - "tracing-subscriber 0.3.22", + "tracing-subscriber 0.3.20", "zkhash", ] @@ -6236,7 +6235,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6306,9 +6305,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.4" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ "memchr", "ucd-trie", @@ -6321,7 +6320,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.12.1", + "indexmap 2.12.0", ] [[package]] @@ -6376,7 +6375,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6389,7 +6388,7 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6427,7 +6426,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6530,7 +6529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6581,7 +6580,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6638,7 +6637,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.111", + "syn 2.0.110", "tempfile", ] @@ -6652,7 +6651,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6691,7 +6690,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6901,7 +6900,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -6992,13 +6991,13 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-evm", "alloy-genesis", "alloy-primitives", "alloy-trie 0.9.1", "auto_impl", - "derive_more 2.1.0", + "derive_more 2.0.1", "reth-ethereum-forks", "reth-network-peers", "reth-primitives-traits", @@ -7011,7 +7010,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-genesis", "alloy-primitives", "alloy-trie 0.9.1", @@ -7030,7 +7029,7 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -7052,7 +7051,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -7063,7 +7062,7 @@ name = "reth-db-models" version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "reth-primitives-traits", ] @@ -7085,7 +7084,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -7113,11 +7112,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "reth-codecs", "reth-primitives-traits", "serde", @@ -7130,11 +7129,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-evm", "alloy-primitives", "auto_impl", - "derive_more 2.1.0", + "derive_more 2.0.1", "futures-util", "reth-execution-errors", "reth-execution-types", @@ -7152,7 +7151,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", @@ -7185,10 +7184,10 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-evm", "alloy-primitives", - "derive_more 2.1.0", + "derive_more 2.0.1", "reth-ethereum-primitives", "reth-primitives-traits", "reth-trie-common", @@ -7226,7 +7225,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -7234,7 +7233,7 @@ dependencies = [ "alloy-trie 0.9.1", "auto_impl", "bytes", - "derive_more 2.1.0", + "derive_more 2.0.1", "once_cell", "op-alloy-consensus 0.20.0", "reth-codecs", @@ -7254,7 +7253,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-primitives", - "derive_more 2.1.0", + "derive_more 2.0.1", "thiserror 2.0.17", ] @@ -7277,12 +7276,12 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-genesis", "alloy-primitives", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "auto_impl", - "derive_more 2.1.0", + "derive_more 2.0.1", "once_cell", "reth-chainspec", "reth-ethereum-forks", @@ -7301,11 +7300,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", - "derive_more 2.1.0", + "derive_more 2.0.1", "reth-chainspec", "reth-evm", "reth-execution-types", @@ -7345,7 +7344,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", "bytes", @@ -7397,7 +7396,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-primitives", - "derive_more 2.1.0", + "derive_more 2.0.1", "serde", "strum 0.27.2", ] @@ -7408,7 +7407,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", @@ -7429,10 +7428,10 @@ name = "reth-storage-errors" version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", - "derive_more 2.1.0", + "derive_more 2.0.1", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", @@ -7446,7 +7445,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", @@ -7471,7 +7470,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", - "derive_more 2.1.0", + "derive_more 2.0.1", "itertools 0.14.0", "nybbles 0.4.6", "reth-primitives-traits", @@ -7573,7 +7572,7 @@ dependencies = [ "revm-inspector 11.2.0", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", ] @@ -7685,7 +7684,7 @@ dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", "revm-database-interface 8.0.5", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", ] @@ -7747,7 +7746,7 @@ dependencies = [ "auto_impl", "either", "revm-database-interface 8.0.5", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", ] @@ -7772,7 +7771,7 @@ version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" dependencies = [ - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "revm-bytecode 6.2.2", "revm-database-interface 7.0.5", "revm-primitives 20.2.1", @@ -7785,7 +7784,7 @@ name = "revm-database" version = "9.0.1" source = "git+https://github.com/scroll-tech/revm?tag=scroll-v91#10e11b985ed28bd383e624539868bcc3f613d77c" dependencies = [ - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "revm-bytecode 7.0.1", "revm-database-interface 8.0.2", "revm-primitives 21.0.1", @@ -7799,7 +7798,7 @@ version = "9.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "980d8d6bba78c5dd35b83abbb6585b0b902eb25ea4448ed7bfba6283b0337191" dependencies = [ - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "revm-bytecode 7.1.1", "revm-database-interface 8.0.5", "revm-primitives 21.0.2", @@ -7926,7 +7925,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", ] @@ -7995,7 +7994,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-handler 11.2.0", "revm-interpreter 28.0.0", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", "serde_json", @@ -8045,7 +8044,7 @@ checksum = "f1de5c790122f8ded67992312af8acd41ccfcee629b25b819e10c5b1f69caf57" dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", ] @@ -8267,7 +8266,7 @@ dependencies = [ [[package]] name = "risc0-ethereum-trie" version = "0.1.0" -source = "git+https://github.com/risc0/risc0-ethereum#e475fe6c8dcff92fb5e67d6556cb11ba3ab4e494" +source = "git+https://github.com/risc0/risc0-ethereum#c1ddb41a44dc0730da883bbfa9fbe75ad335df1b" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8288,7 +8287,7 @@ dependencies = [ "bytecheck", "bytes", "hashbrown 0.15.5", - "indexmap 2.12.1", + "indexmap 2.12.0", "munge", "ptr_meta", "rancor", @@ -8306,7 +8305,7 @@ checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -8446,9 +8445,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.13.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ "zeroize", ] @@ -8528,13 +8527,13 @@ version = "2.0.0" source = "git+https://github.com/scroll-tech/stateless-block-verifier?tag=scroll-v91.2#3a32848c9438432125751eae8837757f6b87562e" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-evm", "alloy-network", "alloy-primitives", "alloy-rpc-types-debug", "alloy-rpc-types-eth", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "reth-chainspec", "reth-ethereum-forks", "reth-evm", @@ -8630,11 +8629,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.2", - "derive_more 2.1.0", + "alloy-serde 1.1.1", + "derive_more 2.0.1", "reth-codecs", "serde", "serde_with", @@ -8646,7 +8645,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-evm", "alloy-primitives", "auto_impl", @@ -8689,12 +8688,12 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.2", + "alloy-eips 1.1.1", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.1.2", - "derive_more 2.1.0", + "alloy-serde 1.1.1", + "derive_more 2.0.1", "scroll-alloy-consensus", "serde", "serde_json", @@ -8814,7 +8813,7 @@ dependencies = [ "sysinfo", "tokio", "tracing", - "tracing-subscriber 0.3.22", + "tracing-subscriber 0.3.20", "url", "vm-zstd", ] @@ -8873,7 +8872,7 @@ name = "scroll-zkvm-types-base" version = "0.7.1" dependencies = [ "alloy-primitives", - "alloy-serde 1.1.2", + "alloy-serde 1.1.1", "rkyv", "serde", "sha2 0.10.9", @@ -9020,7 +9019,7 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ - "bitcoin_hashes 0.14.1", + "bitcoin_hashes 0.14.0", "rand 0.8.5", "secp256k1-sys 0.10.1", "serde", @@ -9032,7 +9031,7 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ - "bitcoin_hashes 0.14.1", + "bitcoin_hashes 0.14.0", "rand 0.9.2", "secp256k1-sys 0.11.0", ] @@ -9192,7 +9191,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9201,7 +9200,7 @@ version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.12.0", "itoa", "memchr", "ryu", @@ -9243,15 +9242,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.1", + "indexmap 2.12.0", "schemars 0.9.0", "schemars 1.1.0", "serde_core", @@ -9262,14 +9261,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9377,9 +9376,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.7" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -9591,7 +9590,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9604,7 +9603,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9616,7 +9615,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9638,9 +9637,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -9656,7 +9655,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9676,7 +9675,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9761,7 +9760,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9772,7 +9771,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", "test-case-core", ] @@ -9802,7 +9801,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9813,7 +9812,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -9944,7 +9943,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -10028,7 +10027,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.12.0", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -10042,7 +10041,7 @@ version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.12.0", "toml_datetime 0.7.3", "toml_parser", "toml_writer", @@ -10087,9 +10086,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.7" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "bitflags", "bytes", @@ -10117,9 +10116,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.43" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -10128,20 +10127,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.31" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] name = "tracing-core" -version = "0.1.35" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -10154,7 +10153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", - "tracing-subscriber 0.3.22", + "tracing-subscriber 0.3.20", ] [[package]] @@ -10167,7 +10166,7 @@ dependencies = [ "smallvec", "thiserror 1.0.69", "tracing", - "tracing-subscriber 0.3.22", + "tracing-subscriber 0.3.20", ] [[package]] @@ -10192,9 +10191,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", @@ -10348,9 +10347,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.19.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "js-sys", "wasm-bindgen", @@ -10439,9 +10438,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", @@ -10452,9 +10451,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", @@ -10465,9 +10464,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10475,22 +10474,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ "unicode-ident", ] @@ -10511,9 +10510,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -10567,7 +10566,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core 0.61.2", + "windows-core", "windows-future", "windows-link 0.1.3", "windows-numerics", @@ -10579,7 +10578,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core 0.61.2", + "windows-core", ] [[package]] @@ -10595,26 +10594,13 @@ dependencies = [ "windows-strings 0.4.2", ] -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - [[package]] name = "windows-future" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core 0.61.2", + "windows-core", "windows-link 0.1.3", "windows-threading", ] @@ -10627,7 +10613,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -10638,7 +10624,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -10659,7 +10645,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core 0.61.2", + "windows-core", "windows-link 0.1.3", ] @@ -10886,9 +10872,9 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.14" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -10933,28 +10919,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.31" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.31" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -10974,7 +10960,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", "synstructure", ] @@ -10995,7 +10981,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] @@ -11028,7 +11014,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.110", ] [[package]] diff --git a/crates/types/chunk/src/dogeos/types.rs b/crates/types/chunk/src/dogeos/types.rs index 3d962572..2a922cf4 100644 --- a/crates/types/chunk/src/dogeos/types.rs +++ b/crates/types/chunk/src/dogeos/types.rs @@ -1,18 +1,6 @@ use alloy_sol_types::{sol, SolCall}; sol! { - /// L2ScrollMessenger.relayMessage function - /// This is what gets stored in L1MessageQueue and executed on L2 - /// Signature: relayMessage(address,address,uint256,uint256,bytes) - /// Method selector: 0x8ef1332e - function relayMessage( - address from, - address to, - uint256 value, - uint256 nonce, - bytes message - ) external; - /// Moat.handleL1Message function /// This is the final L2 execution target /// Signature: handleL1Message(address,bytes32) @@ -20,24 +8,14 @@ sol! { address _target, bytes32 _depositID ) external; - - /// L1ScrollMessenger.sendMessage function - /// This is the L1 interface (for reference/validation only) - /// NOT used in queue construction - only for validation - function sendMessage( - address target, - uint256 value, - bytes calldata message, - uint256 gasLimit, - address refundAddress - ) external payable; } #[cfg(test)] mod tests { use alloy_primitives::{Address, B256, U256}; use alloy_sol_types::SolCall; - use crate::dogeos::types::{handleL1MessageCall, relayMessageCall}; + use crate::dogeos::types::{handleL1MessageCall}; + use crate::scroll::relayMessageCall; fn create_queue_transaction_calldata( moat_contract_address: Address, From ae9c264e113e66dbc2909739dc6e71754fcc31d7 Mon Sep 17 00:00:00 2001 From: lightsing Date: Thu, 4 Dec 2025 17:05:11 +0800 Subject: [PATCH 06/26] poc --- Cargo.lock | 1 + Cargo.toml | 1 + crates/types/chunk/Cargo.toml | 1 + crates/types/chunk/src/dogeos/execute.rs | 25 +++++++++++++++++++++-- crates/types/chunk/src/dogeos/types.rs | 26 +++++++++++++----------- 5 files changed, 40 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 361cafa5..615ab405 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8919,6 +8919,7 @@ dependencies = [ "bridge_adapters_zk", "bridge_core", "bridge_steps_deposit", + "bridge_transforms", "ecies", "itertools 0.14.0", "k256 0.13.4 (git+https://github.com/openvm-org/openvm.git?tag=v1.4.1)", diff --git a/Cargo.toml b/Cargo.toml index 7b3e6287..aa35cf49 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -154,6 +154,7 @@ scroll-zkvm-verifier = { path = "crates/verifier" } bridge_core = { path = "../dogeos-core/crates/bridge_core", default-features = false } bridge_adapters_zk = { path = "../dogeos-core/crates/bridge_adapters_zk", default-features = false } bridge_steps_deposit = { path = "../dogeos-core/crates/bridge_steps_deposit", default-features = false } +bridge_transforms = { path = "../dogeos-core/crates/bridge_transforms", default-features = false } [patch.crates-io] revm = { git = "https://github.com/scroll-tech/revm", tag = "scroll-v91" } diff --git a/crates/types/chunk/Cargo.toml b/crates/types/chunk/Cargo.toml index 703a893f..c0370fc8 100644 --- a/crates/types/chunk/Cargo.toml +++ b/crates/types/chunk/Cargo.toml @@ -32,6 +32,7 @@ types-base = { path = "../base", package = "scroll-zkvm-types-base"} bridge_core = { workspace = true } bridge_adapters_zk = { workspace = true, features = ["verifier"] } bridge_steps_deposit = { workspace = true, features = ["verifier"] } +bridge_transforms = { workspace = true } [dev-dependencies] serde_json.workspace = true diff --git a/crates/types/chunk/src/dogeos/execute.rs b/crates/types/chunk/src/dogeos/execute.rs index c9464ab9..bacdcf42 100644 --- a/crates/types/chunk/src/dogeos/execute.rs +++ b/crates/types/chunk/src/dogeos/execute.rs @@ -1,8 +1,12 @@ +use alloy_primitives::U256; +use alloy_sol_types::SolCall; use bridge_adapters_zk::{StepInputEnvelope, ZkVerifierExt}; use bridge_steps_deposit::{HeaderVerifier, MidstateVerifier}; use itertools::Itertools; use sbv_primitives::types::consensus::TxL1Message; use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfo; +use crate::dogeos::types::{handleL1MessageCall, MOAT_CONTRACT_ADDRESS}; +use crate::scroll::relayMessageCall; use super::witness::DogeOsChunkWitness; pub fn execute(witness: DogeOsChunkWitness) -> Result { @@ -40,6 +44,7 @@ pub fn execute(witness: DogeOsChunkWitness) -> Result }) } + fn verify_deposits( verifier_context: &bridge_core::VerifierContext, header_envelope: &StepInputEnvelope, @@ -52,9 +57,25 @@ fn verify_deposits( MidstateVerifier.verify_envelope(&midstate_envelope, &verifier_context) .map_err(|e| format!("dogeos deposit midstate verification failed: {e}"))?; - for (deposit, l1_message) in midstate_envelope.statement.expected_deposits.iter().zip_eq(l1_messages) { - l1_message.input + for (deposit, l1_message) in midstate_envelope + .statement + .expected_deposits + .iter() + .zip_eq(l1_messages) { + let relay_call: relayMessageCall = relayMessageCall::abi_decode(l1_message.input.as_ref()) + .map_err(|e| format!("dogeos relay call decode failed: {e}"))?; + // relay call checks + assert_eq!(relay_call.sender, deposit.txid[..20], "dogeos synthetic relay call sender mismatch"); + assert_eq!(relay_call.target, MOAT_CONTRACT_ADDRESS, "dogeos relay call target mismatch"); + let amount = U256::from(bridge_transforms::convert_doge_to_eth_units(deposit.amount_sats)); + assert_eq!(relay_call.value, amount, "dogeos relay call amount mismatch"); + // nonce/queueIndex check is skipped, as it's guaranteed by rolling hash + let moat_call: handleL1MessageCall = handleL1MessageCall::abi_decode(relay_call.message.as_ref()) + .map_err(|e| format!("dogeos moat call decode failed: {e}"))?; + // moat call checks + assert_eq!(moat_call.target, deposit.evm_recipient, "dogeos deposit recipient mismatch"); + assert_eq!(moat_call.depositID, deposit.txid); } Ok(()) diff --git a/crates/types/chunk/src/dogeos/types.rs b/crates/types/chunk/src/dogeos/types.rs index 2a922cf4..11e1f874 100644 --- a/crates/types/chunk/src/dogeos/types.rs +++ b/crates/types/chunk/src/dogeos/types.rs @@ -1,3 +1,4 @@ +use alloy_primitives::{address, Address}; use alloy_sol_types::{sol, SolCall}; sol! { @@ -5,21 +6,22 @@ sol! { /// This is the final L2 execution target /// Signature: handleL1Message(address,bytes32) function handleL1Message( - address _target, - bytes32 _depositID + address target, + bytes32 depositID ) external; } +pub const MOAT_CONTRACT_ADDRESS: Address = address!("0xcccccccccccccccccccccccccccccccccccccccc"); + #[cfg(test)] mod tests { - use alloy_primitives::{Address, B256, U256}; - use alloy_sol_types::SolCall; + use super::*; + use alloy_primitives::{B256, U256}; use crate::dogeos::types::{handleL1MessageCall}; use crate::scroll::relayMessageCall; fn create_queue_transaction_calldata( - moat_contract_address: Address, - from: Address, + sender: Address, to: Address, value: U256, nonce: u64, @@ -27,17 +29,17 @@ mod tests { ) -> Vec { // Step 1: Create Moat.handleL1Message calldata (innermost call) // This is what will ultimately be executed when relayMessage calls the Moat contract - let moat_call = handleL1MessageCall { _target: to, _depositID: deposit_id }; + let moat_call = handleL1MessageCall { target: to, depositID: deposit_id }; let moat_calldata = moat_call.abi_encode(); // Step 2: Create L2ScrollMessenger.relayMessage calldata (what gets queued) // This is the call that L1MessageQueue stores and L2ScrollMessenger will execute let relay_call = relayMessageCall { - from, // Original L1 sender - to: moat_contract_address, // Moat contract (intermediate target) - value, // ETH value to transfer - nonce: U256::from(nonce), // Queue index as nonce - message: moat_calldata.into(), // Nested Moat.handleL1Message call + sender, // Original L1 sender + target: MOAT_CONTRACT_ADDRESS, // Moat contract (intermediate target) + value, // ETH value to transfer + messageNonce: U256::from(nonce), // Queue index as nonce + message: moat_calldata.into(), // Nested Moat.handleL1Message call }; relay_call.abi_encode() From 07d9db16708a2be79c17d7c1dc78518b0bf2b8b2 Mon Sep 17 00:00:00 2001 From: lightsing Date: Fri, 5 Dec 2025 10:08:18 +0800 Subject: [PATCH 07/26] add ref --- crates/types/chunk/src/dogeos/execute.rs | 36 ++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/crates/types/chunk/src/dogeos/execute.rs b/crates/types/chunk/src/dogeos/execute.rs index bacdcf42..b3ea2dc7 100644 --- a/crates/types/chunk/src/dogeos/execute.rs +++ b/crates/types/chunk/src/dogeos/execute.rs @@ -64,17 +64,49 @@ fn verify_deposits( .zip_eq(l1_messages) { let relay_call: relayMessageCall = relayMessageCall::abi_decode(l1_message.input.as_ref()) .map_err(|e| format!("dogeos relay call decode failed: {e}"))?; - // relay call checks + // -- l1 message checks -- + // possibly redundant checks, kept for clarity + + // ref: https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L531-L552 + // assert_eq!(l1_message.sender, aliased_l1_messenger); + + // ref: + // - https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L507-L512 + // - https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L556 + // assert_eq!(l1_message.to, messenger_target); + + // ref: https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L557 + // assert_eq!(l1_message.value, U256::ZERO); + + // -- relay call checks -- + + // ref: + // - https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L490 + // - https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L102 assert_eq!(relay_call.sender, deposit.txid[..20], "dogeos synthetic relay call sender mismatch"); + + // ref: https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L103 assert_eq!(relay_call.target, MOAT_CONTRACT_ADDRESS, "dogeos relay call target mismatch"); + + // ref: https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L503 let amount = U256::from(bridge_transforms::convert_doge_to_eth_units(deposit.amount_sats)); + // ref: https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L104 assert_eq!(relay_call.value, amount, "dogeos relay call amount mismatch"); // nonce/queueIndex check is skipped, as it's guaranteed by rolling hash let moat_call: handleL1MessageCall = handleL1MessageCall::abi_decode(relay_call.message.as_ref()) .map_err(|e| format!("dogeos moat call decode failed: {e}"))?; - // moat call checks + + // -- moat call checks -- + + // ref: + // - https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L500 + // - https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L96 assert_eq!(moat_call.target, deposit.evm_recipient, "dogeos deposit recipient mismatch"); + + // ref: + // - https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L514-L518 + // - https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L96 assert_eq!(moat_call.depositID, deposit.txid); } From db0776a6cadc50c581d51afc253cdfc9d08826fe Mon Sep 17 00:00:00 2001 From: lightsing Date: Fri, 5 Dec 2025 10:14:34 +0800 Subject: [PATCH 08/26] add fixme --- crates/types/chunk/src/dogeos/types.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/types/chunk/src/dogeos/types.rs b/crates/types/chunk/src/dogeos/types.rs index 11e1f874..af7ef2a5 100644 --- a/crates/types/chunk/src/dogeos/types.rs +++ b/crates/types/chunk/src/dogeos/types.rs @@ -11,6 +11,7 @@ sol! { ) external; } +/// FIXME: replace with actual Moat contract address pub const MOAT_CONTRACT_ADDRESS: Address = address!("0xcccccccccccccccccccccccccccccccccccccccc"); #[cfg(test)] From 7a8a269da2ab8f59b6daff7cdbccb9ead31e1a13 Mon Sep 17 00:00:00 2001 From: lightsing Date: Mon, 8 Dec 2025 15:04:22 +0800 Subject: [PATCH 09/26] add openvm-blobstream --- Cargo.lock | 15 +++++++++++++++ Cargo.toml | 1 + crates/types/batch/Cargo.toml | 2 ++ 3 files changed, 18 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 615ab405..7e7d2ef9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -577,6 +577,7 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ + "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck 0.5.0", @@ -595,12 +596,14 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ + "alloy-json-abi", "const-hex", "dunce", "heck 0.5.0", "macro-string", "proc-macro2", "quote", + "serde_json", "syn 2.0.110", "syn-solidity", ] @@ -4948,6 +4951,17 @@ dependencies = [ "strum 0.26.3", ] +[[package]] +name = "openvm-blobstream" +version = "0.1.0" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "eyre", + "revm 29.0.1", + "serde", +] + [[package]] name = "openvm-build" version = "1.4.1" @@ -8889,6 +8903,7 @@ dependencies = [ "itertools 0.14.0", "openvm", "openvm-algebra-guest", + "openvm-blobstream", "openvm-ecc-guest", "openvm-pairing", "openvm-pairing-guest", diff --git a/Cargo.toml b/Cargo.toml index aa35cf49..5ca11d06 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -155,6 +155,7 @@ bridge_core = { path = "../dogeos-core/crates/bridge_core", default-features = f bridge_adapters_zk = { path = "../dogeos-core/crates/bridge_adapters_zk", default-features = false } bridge_steps_deposit = { path = "../dogeos-core/crates/bridge_steps_deposit", default-features = false } bridge_transforms = { path = "../dogeos-core/crates/bridge_transforms", default-features = false } +openvm-blobstream = { path = "../blobstream" } [patch.crates-io] revm = { git = "https://github.com/scroll-tech/revm", tag = "scroll-v91" } diff --git a/crates/types/batch/Cargo.toml b/crates/types/batch/Cargo.toml index 108d0c5b..5b9e2e03 100644 --- a/crates/types/batch/Cargo.toml +++ b/crates/types/batch/Cargo.toml @@ -26,6 +26,8 @@ halo2curves-axiom = "0.7.0" sbv-primitives = { workspace = true, optional = true } c-kzg = { workspace = true, optional = true } +openvm-blobstream = { workspace = true } + [features] default = [] host = ["dep:sbv-primitives", "dep:c-kzg"] From d5a8ca7db4328fa8369b594423af59ff47231b9d Mon Sep 17 00:00:00 2001 From: lightsing Date: Mon, 8 Dec 2025 16:08:58 +0800 Subject: [PATCH 10/26] adapt batch & bundle --- Cargo.lock | 684 +++++++++--------- .../dogeos-circuits/batch-circuit/Cargo.toml | 1 + .../batch-circuit/src/circuit.rs | 29 +- .../bundle-circuit/src/circuit.rs | 24 +- .../base/src/public_inputs/dogeos/batch.rs | 30 +- .../base/src/public_inputs/dogeos/bundle.rs | 20 +- .../base/src/public_inputs/dogeos/chunk.rs | 26 +- crates/types/batch/src/dogeos.rs | 2 + crates/types/batch/src/dogeos/witness.rs | 37 + crates/types/batch/src/lib.rs | 2 + crates/types/bundle/Cargo.toml | 1 + crates/types/bundle/src/dogeos.rs | 34 + crates/types/bundle/src/lib.rs | 2 + crates/types/chunk/src/dogeos/execute.rs | 9 +- crates/types/chunk/src/dogeos/types.rs | 2 +- 15 files changed, 534 insertions(+), 369 deletions(-) create mode 100644 crates/types/batch/src/dogeos.rs create mode 100644 crates/types/batch/src/dogeos/witness.rs create mode 100644 crates/types/bundle/src/dogeos.rs diff --git a/Cargo.lock b/Cargo.lock index 7e7d2ef9..7d6e053d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,9 +92,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaa9ea039a6f9304b4a593d780b1f23e1ae183acdee938b11b38795acacc9f1" +checksum = "1b9ebac8ff9c2f07667e1803dc777304337e160ce5153335beb45e8ec0751808" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -105,20 +105,20 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad704069c12f68d0c742d0cad7e0a03882b42767350584627fbf8a47b1bf1846" +checksum = "2e318e25fb719e747a7e8db1654170fc185024f3ed5b10f86c08d448a912f6e2" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "alloy-trie 0.9.1", "alloy-tx-macros", "auto_impl", "borsh", "c-kzg", - "derive_more 2.0.1", + "derive_more 2.1.0", "either", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell", @@ -132,15 +132,15 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc374f640a5062224d7708402728e3d6879a514ba10f377da62e7dfb14c673e6" +checksum = "364380a845193a317bcb7a5398fc86cdb66c47ebe010771dde05f6869bf9e64a" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "serde", ] @@ -198,7 +198,7 @@ dependencies = [ "alloy-serde 0.14.0", "auto_impl", "c-kzg", - "derive_more 2.0.1", + "derive_more 2.1.0", "either", "serde", "sha2 0.10.9", @@ -206,20 +206,20 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e867b5fd52ed0372a95016f3a37cbff95a9d5409230fbaef2d8ea00e8618098" +checksum = "a4c4d7c5839d9f3a467900c625416b24328450c65702eb3d8caff8813e4d1d33" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "auto_impl", "borsh", "c-kzg", - "derive_more 2.0.1", + "derive_more 2.1.0", "either", "ethereum_ssz", "ethereum_ssz_derive", @@ -236,30 +236,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08e9e656d58027542447c1ca5aa4ca96293f09e6920c4651953b7451a7c35e4e" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-hardforks", "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", - "derive_more 2.0.1", - "op-alloy-consensus 0.22.1", + "derive_more 2.1.0", + "op-alloy-consensus 0.22.4", "op-alloy-rpc-types-engine", "op-revm", - "revm 30.2.0", + "revm 30.1.1", "thiserror 2.0.17", ] [[package]] name = "alloy-genesis" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b90be17e9760a6ba6d13cebdb049cea405ebc8bf57d90664ed708cc5bc348342" +checksum = "1ba4b1be0988c11f0095a2380aa596e35533276b8fa6c9e06961bbfe0aebcac5" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "alloy-trie 0.9.1", "borsh", "serde", @@ -268,9 +268,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e29d7eacf42f89c21d7f089916d0bdb4f36139a31698790e8837d2dbbd4b2c3" +checksum = "2d9a33550fc21fd77a3f8b63e99969d17660eec8dcc50a95a80f7c9964f7680b" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -294,9 +294,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcab4c51fb1273e3b0f59078e0cdf8aa99f697925b09f0d2055c18be46b4d48c" +checksum = "f72cf87cda808e593381fb9f005ffa4d2475552b7a6c5ac33d087bf77d82abd0" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -309,24 +309,24 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196d7fd3f5d414f7bbd5886a628b7c42bd98d1b126f9a7cff69dbfd72007b39c" +checksum = "12aeb37b6f2e61b93b1c3d34d01ee720207c76fe447e2a2c217e433ac75b17f5" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "alloy-signer", "alloy-sol-types", "async-trait", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.0", "futures-utils-wasm", "serde", "serde_json", @@ -335,14 +335,14 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3ae2777e900a7a47ad9e3b8ab58eff3d93628265e73bbdee09acf90bf68f75" +checksum = "abd29ace62872083e30929cd9b282d82723196d196db589f3ceda67edcc05552" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "serde", ] @@ -356,10 +356,10 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more 2.0.1", + "derive_more 2.1.0", "foldhash 0.2.0", - "hashbrown 0.16.0", - "indexmap 2.12.0", + "hashbrown 0.16.1", + "indexmap 2.12.1", "itoa", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-asm", @@ -376,13 +376,13 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9bf40c9b2a90c7677f9c39bccd9f06af457f35362439c0497a706f16557703" +checksum = "9b710636d7126e08003b8217e24c09f0cca0b46d62f650a841736891b1ed1fc1" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -432,14 +432,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "alloy-rpc-client" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c2630fde9ff6033a780635e1af6ef40e92d74a9cacb8af3defc1b15cfebca5" +checksum = "d0882e72d2c1c0c79dcf4ab60a67472d3f009a949f774d4c17d0bdb669cfde05" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -460,39 +460,39 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b8429b5b62d21bf3691eb1ae12aaae9bb496894d5a114e3cc73e27e6800ec8" +checksum = "6a63fb40ed24e4c92505f488f9dd256e2afaed17faa1b7a221086ebba74f4122" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01731601ea631bd825c652a225701ab466c09457f446b8d8129368a095389c5d" +checksum = "4936f579d9d10eae01772b2ab3497f9d568684f05f26f8175e12f9a1a2babc33" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.0", "serde", "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9981491bb98e76099983f516ec7de550db0597031f5828c994961eb4bb993cce" +checksum = "4c60bdce3be295924122732b7ecd0b2495ce4790bedc5370ca7019c08ad3f26e" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", - "derive_more 2.0.1", + "alloy-serde 1.1.3", + "derive_more 2.1.0", "ethereum_ssz", "ethereum_ssz_derive", "serde", @@ -501,17 +501,17 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29031a6bf46177d65efce661f7ab37829ca09dd341bc40afb5194e97600655cc" +checksum = "9eae0c7c40da20684548cbc8577b6b7447f7bf4ddbac363df95e3da220e41e72" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "alloy-sol-types", "itertools 0.14.0", "serde", @@ -533,9 +533,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e856112bfa0d9adc85bd7c13db03fad0e71d1d6fb4c2010e475b6718108236" +checksum = "c0df1987ed0ff2d0159d76b52e7ddfc4e4fbddacc54d2fbee765e0d14d7c01b5" dependencies = [ "alloy-primitives", "serde", @@ -544,9 +544,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a4f629da632d5279bbc5731634f0f5c9484ad9c4cad0cd974d9669dc1f46d6" +checksum = "6ff69deedee7232d7ce5330259025b868c5e6a52fa8dffda2c861fb3a5889b24" dependencies = [ "alloy-primitives", "async-trait", @@ -568,7 +568,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -581,11 +581,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.12.0", + "indexmap 2.12.1", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "syn-solidity", "tiny-keccak", ] @@ -604,7 +604,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.110", + "syn 2.0.111", "syn-solidity", ] @@ -632,14 +632,14 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe215a2f9b51d5f1aa5c8cf22c8be8cdb354934de09c9a4e37aefb79b77552fd" +checksum = "be98b07210d24acf5b793c99b759e9a696e4a2e67593aec0487ae3b3e1a2478c" dependencies = [ "alloy-json-rpc", "auto_impl", "base64 0.22.1", - "derive_more 2.0.1", + "derive_more 2.1.0", "futures", "futures-utils-wasm", "governor", @@ -656,9 +656,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b37b1a30d23deb3a8746e882c70b384c574d355bc2bbea9ea918b0c31366e" +checksum = "4198a1ee82e562cab85e7f3d5921aab725d9bd154b6ad5017f82df1695877c97" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -678,7 +678,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 2.0.1", + "derive_more 2.1.0", "nybbles 0.3.4", "serde", "smallvec", @@ -694,7 +694,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 2.0.1", + "derive_more 2.1.0", "nybbles 0.4.6", "serde", "smallvec", @@ -703,14 +703,14 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccf423f6de62e8ce1d6c7a11fb7508ae3536d02e0d68aaeb05c8669337d0937" +checksum = "333544408503f42d7d3792bfc0f7218b643d968a03d2c0ed383ae558fb4a76d0" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -926,7 +926,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -964,7 +964,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1053,7 +1053,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1121,7 +1121,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1132,7 +1132,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1159,7 +1159,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1187,7 +1187,7 @@ dependencies = [ "serde", "serde_json", "tar", - "toml_edit 0.23.7", + "toml_edit 0.23.9", "url", "walkdir", ] @@ -1234,9 +1234,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" [[package]] name = "bech32" @@ -1309,14 +1309,14 @@ checksum = "ffebfc2d28a12b262c303cb3860ee77b91bd83b1f20f0bd2a9693008e2f55a9e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "bitcoin-io" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" +checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" [[package]] name = "bitcoin-private" @@ -1341,9 +1341,9 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" dependencies = [ "bitcoin-io", "hex-conservative", @@ -1484,14 +1484,14 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "borsh" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1499,15 +1499,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1552,7 +1552,7 @@ dependencies = [ "hex", "nintondo-dogecoin", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", "url", ] @@ -1600,7 +1600,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1626,9 +1626,9 @@ dependencies = [ [[package]] name = "bytesize" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c99fa31e08a43eaa5913ef68d7e01c37a2bdce6ed648168239ad33b7d30a9cd8" +checksum = "6bd91ee7b2422bcb158d90ef4d14f75ef67f340943fc4149891dcce8f8b972a3" [[package]] name = "c-kzg" @@ -1742,9 +1742,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.46" +version = "1.2.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36" +checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" dependencies = [ "find-msvc-tools", "jobserver", @@ -1791,9 +1791,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.51" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -1801,9 +1801,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.51" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -1820,7 +1820,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -1945,9 +1945,9 @@ checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" -version = "0.7.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" dependencies = [ "unicode-segmentation", ] @@ -1979,9 +1979,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" dependencies = [ "crc-catalog", ] @@ -2071,7 +2071,7 @@ checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ "bitflags", "crossterm_winapi", - "derive_more 2.0.1", + "derive_more 2.1.0", "document-features", "mio", "parking_lot", @@ -2229,7 +2229,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2244,7 +2244,7 @@ dependencies = [ "quote", "serde", "strsim", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2255,7 +2255,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2266,7 +2266,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2323,7 +2323,7 @@ checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2334,7 +2334,7 @@ checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2345,7 +2345,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2359,11 +2359,11 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "10b768e943bed7bf2cab53df09f4bc34bfd217cdb57d971e769874c9a6710618" dependencies = [ - "derive_more-impl 2.0.1", + "derive_more-impl 2.1.0", ] [[package]] @@ -2374,20 +2374,21 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "unicode-xid", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "6d286bfdaf75e988b4a78e013ecd79c581e06399ab53fbacd2d916c2f904f30b" dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.110", + "rustc_version 0.4.1", + "syn 2.0.111", "unicode-xid", ] @@ -2441,7 +2442,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2459,6 +2460,7 @@ version = "0.7.1" dependencies = [ "alloy-primitives", "bincode 2.0.1", + "itertools 0.14.0", "openvm", "openvm-algebra-guest", "openvm-ecc-guest", @@ -2578,7 +2580,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2625,7 +2627,7 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoder-standard" version = "0.1.0" -source = "git+https://github.com/scroll-tech/da-codec.git#7a92e859b55094ba5b5c7d556c49c4dbd3f47ddb" +source = "git+https://github.com/scroll-tech/da-codec.git#54929786434f00efd00431517a332f1ec8ca58d4" dependencies = [ "zstd", ] @@ -2662,7 +2664,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2674,7 +2676,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2685,7 +2687,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -2775,7 +2777,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3005,7 +3007,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3110,7 +3112,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3145,7 +3147,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3226,7 +3228,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.12.0", + "indexmap 2.12.1", "slab", "tokio", "tokio-util", @@ -3418,12 +3420,13 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "foldhash 0.2.0", "serde", + "serde_core", ] [[package]] @@ -3455,9 +3458,9 @@ dependencies = [ [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" dependencies = [ "arrayvec", ] @@ -3494,12 +3497,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -3597,9 +3599,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" +checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" dependencies = [ "base64 0.22.1", "bytes", @@ -3633,7 +3635,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.2", ] [[package]] @@ -3770,7 +3772,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3792,12 +3794,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -3912,7 +3914,7 @@ checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -3942,9 +3944,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.82" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -4028,9 +4030,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.178" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" [[package]] name = "libm" @@ -4130,9 +4132,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lru" @@ -4160,7 +4162,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4219,7 +4221,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62a6a1f7141f1d9bc7a886b87536bbfc97752e08b369e1e0453a9acfab5f5da4" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "itoa", "lockfree-object-pool", "metrics", @@ -4227,7 +4229,7 @@ dependencies = [ "once_cell", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -4240,7 +4242,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.14.5", - "indexmap 2.12.0", + "indexmap 2.12.1", "metrics", "num_cpus", "ordered-float 4.6.0", @@ -4277,9 +4279,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", "log", @@ -4331,7 +4333,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4554,7 +4556,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4656,11 +4658,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", - "derive_more 2.0.1", + "alloy-serde 1.1.3", + "derive_more 2.1.0", "serde", "serde_with", "thiserror 2.0.17", @@ -4668,33 +4670,33 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.22.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d7ec388eb83a3e6c71774131dbbb2ba9c199b6acac7dce172ed8de2f819e91" +checksum = "726da827358a547be9f1e37c2a756b9e3729cb0350f43408164794b370cad8ae" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", - "derive_more 2.0.1", + "derive_more 2.1.0", "thiserror 2.0.17", ] [[package]] name = "op-alloy-rpc-types-engine" -version = "0.22.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1abe694cd6718b8932da3f824f46778be0f43289e4103c88abc505c63533a04" +checksum = "d8f24b8cb66e4b33e6c9e508bf46b8ecafc92eadd0b93fedd306c0accb477657" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", - "derive_more 2.0.1", + "derive_more 2.1.0", "ethereum_ssz", "ethereum_ssz_derive", - "op-alloy-consensus 0.22.1", + "op-alloy-consensus 0.22.4", "snap", "thiserror 2.0.17", ] @@ -4739,7 +4741,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4814,7 +4816,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4842,7 +4844,7 @@ dependencies = [ "num-prime", "openvm-macros-common", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -4898,7 +4900,7 @@ dependencies = [ "openvm-transpiler", "tempfile", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -5021,7 +5023,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5049,7 +5051,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "itertools 0.14.0", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5129,7 +5131,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5190,7 +5192,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5230,7 +5232,7 @@ version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5288,7 +5290,7 @@ name = "openvm-macros-common" version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5372,7 +5374,7 @@ version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -5786,7 +5788,7 @@ dependencies = [ "toml", "tracing", "tracing-forest", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", "zkhash", ] @@ -6249,7 +6251,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6319,9 +6321,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.3" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" +checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" dependencies = [ "memchr", "ucd-trie", @@ -6334,7 +6336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.12.0", + "indexmap 2.12.1", ] [[package]] @@ -6389,7 +6391,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6402,7 +6404,7 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6440,7 +6442,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6543,7 +6545,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6572,7 +6574,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit 0.23.7", + "toml_edit 0.23.9", ] [[package]] @@ -6594,7 +6596,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6651,7 +6653,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.110", + "syn 2.0.111", "tempfile", ] @@ -6665,7 +6667,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6704,7 +6706,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -6914,7 +6916,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7005,13 +7007,13 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-evm", "alloy-genesis", "alloy-primitives", "alloy-trie 0.9.1", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.0", "reth-ethereum-forks", "reth-network-peers", "reth-primitives-traits", @@ -7024,7 +7026,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-genesis", "alloy-primitives", "alloy-trie 0.9.1", @@ -7043,7 +7045,7 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -7065,7 +7067,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -7076,7 +7078,7 @@ name = "reth-db-models" version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "reth-primitives-traits", ] @@ -7098,7 +7100,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -7126,11 +7128,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "reth-codecs", "reth-primitives-traits", "serde", @@ -7143,11 +7145,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-evm", "alloy-primitives", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.0", "futures-util", "reth-execution-errors", "reth-execution-types", @@ -7165,7 +7167,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", @@ -7198,10 +7200,10 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-evm", "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.0", "reth-ethereum-primitives", "reth-primitives-traits", "reth-trie-common", @@ -7239,7 +7241,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -7247,7 +7249,7 @@ dependencies = [ "alloy-trie 0.9.1", "auto_impl", "bytes", - "derive_more 2.0.1", + "derive_more 2.1.0", "once_cell", "op-alloy-consensus 0.20.0", "reth-codecs", @@ -7267,7 +7269,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.0", "thiserror 2.0.17", ] @@ -7290,12 +7292,12 @@ source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186d dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-genesis", "alloy-primitives", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.0", "once_cell", "reth-chainspec", "reth-ethereum-forks", @@ -7314,11 +7316,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", - "derive_more 2.0.1", + "derive_more 2.1.0", "reth-chainspec", "reth-evm", "reth-execution-types", @@ -7358,7 +7360,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", "bytes", @@ -7410,7 +7412,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.0", "serde", "strum 0.27.2", ] @@ -7421,7 +7423,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", @@ -7442,10 +7444,10 @@ name = "reth-storage-errors" version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", - "derive_more 2.0.1", + "derive_more 2.1.0", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", @@ -7459,7 +7461,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", @@ -7484,7 +7486,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", - "derive_more 2.0.1", + "derive_more 2.1.0", "itertools 0.14.0", "nybbles 0.4.6", "reth-primitives-traits", @@ -7586,7 +7588,7 @@ dependencies = [ "revm-inspector 11.2.0", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", ] @@ -7698,7 +7700,7 @@ dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -7760,7 +7762,7 @@ dependencies = [ "auto_impl", "either", "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -7785,7 +7787,7 @@ version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "revm-bytecode 6.2.2", "revm-database-interface 7.0.5", "revm-primitives 20.2.1", @@ -7798,7 +7800,7 @@ name = "revm-database" version = "9.0.1" source = "git+https://github.com/scroll-tech/revm?tag=scroll-v91#10e11b985ed28bd383e624539868bcc3f613d77c" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "revm-bytecode 7.0.1", "revm-database-interface 8.0.2", "revm-primitives 21.0.1", @@ -7812,7 +7814,7 @@ version = "9.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "980d8d6bba78c5dd35b83abbb6585b0b902eb25ea4448ed7bfba6283b0337191" dependencies = [ - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "revm-bytecode 7.1.1", "revm-database-interface 8.0.5", "revm-primitives 21.0.2", @@ -7939,7 +7941,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -8008,7 +8010,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-handler 11.2.0", "revm-interpreter 28.0.0", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", "serde_json", @@ -8058,7 +8060,7 @@ checksum = "f1de5c790122f8ded67992312af8acd41ccfcee629b25b819e10c5b1f69caf57" dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -8280,7 +8282,7 @@ dependencies = [ [[package]] name = "risc0-ethereum-trie" version = "0.1.0" -source = "git+https://github.com/risc0/risc0-ethereum#c1ddb41a44dc0730da883bbfa9fbe75ad335df1b" +source = "git+https://github.com/risc0/risc0-ethereum#e475fe6c8dcff92fb5e67d6556cb11ba3ab4e494" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8301,7 +8303,7 @@ dependencies = [ "bytecheck", "bytes", "hashbrown 0.15.5", - "indexmap 2.12.0", + "indexmap 2.12.1", "munge", "ptr_meta", "rancor", @@ -8319,7 +8321,7 @@ checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -8459,9 +8461,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" +checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c" dependencies = [ "zeroize", ] @@ -8541,13 +8543,13 @@ version = "2.0.0" source = "git+https://github.com/scroll-tech/stateless-block-verifier?tag=scroll-v91.2#3a32848c9438432125751eae8837757f6b87562e" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-evm", "alloy-network", "alloy-primitives", "alloy-rpc-types-debug", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "reth-chainspec", "reth-ethereum-forks", "reth-evm", @@ -8643,11 +8645,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.1.1", - "derive_more 2.0.1", + "alloy-serde 1.1.3", + "derive_more 2.1.0", "reth-codecs", "serde", "serde_with", @@ -8659,7 +8661,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-evm", "alloy-primitives", "auto_impl", @@ -8702,12 +8704,12 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?tag=scroll-v91.2#11d0a3f73186dee7a1ba0d51ea5416dc8fef3e46" dependencies = [ "alloy-consensus", - "alloy-eips 1.1.1", + "alloy-eips 1.1.3", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.1.1", - "derive_more 2.0.1", + "alloy-serde 1.1.3", + "derive_more 2.1.0", "scroll-alloy-consensus", "serde", "serde_json", @@ -8827,7 +8829,7 @@ dependencies = [ "sysinfo", "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", "url", "vm-zstd", ] @@ -8886,7 +8888,7 @@ name = "scroll-zkvm-types-base" version = "0.7.1" dependencies = [ "alloy-primitives", - "alloy-serde 1.1.1", + "alloy-serde 1.1.3", "rkyv", "serde", "sha2 0.10.9", @@ -8921,6 +8923,7 @@ version = "0.7.1" dependencies = [ "rkyv", "scroll-zkvm-types-base", + "scroll-zkvm-types-batch", "serde", ] @@ -9035,7 +9038,7 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ - "bitcoin_hashes 0.14.0", + "bitcoin_hashes 0.14.1", "rand 0.8.5", "secp256k1-sys 0.10.1", "serde", @@ -9047,7 +9050,7 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ - "bitcoin_hashes 0.14.0", + "bitcoin_hashes 0.14.1", "rand 0.9.2", "secp256k1-sys 0.11.0", ] @@ -9207,7 +9210,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9216,7 +9219,7 @@ version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "itoa", "memchr", "ryu", @@ -9258,15 +9261,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.0", + "indexmap 2.12.1", "schemars 0.9.0", "schemars 1.1.0", "serde_core", @@ -9277,14 +9280,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9392,9 +9395,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" dependencies = [ "libc", ] @@ -9606,7 +9609,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9619,7 +9622,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9631,7 +9634,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9653,9 +9656,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.110" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -9671,7 +9674,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9691,7 +9694,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9776,7 +9779,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9787,7 +9790,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "test-case-core", ] @@ -9817,7 +9820,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9828,7 +9831,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -9959,7 +9962,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10043,7 +10046,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -10053,11 +10056,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.23.7" +version = "0.23.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +checksum = "5d7cbc3b4b49633d57a0509303158ca50de80ae32c265093b24c414705807832" dependencies = [ - "indexmap 2.12.0", + "indexmap 2.12.1", "toml_datetime 0.7.3", "toml_parser", "toml_writer", @@ -10102,9 +10105,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" dependencies = [ "bitflags", "bytes", @@ -10132,9 +10135,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -10143,20 +10146,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" dependencies = [ "once_cell", "valuable", @@ -10169,7 +10172,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -10182,7 +10185,7 @@ dependencies = [ "smallvec", "thiserror 1.0.69", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -10207,9 +10210,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", @@ -10363,9 +10366,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ "js-sys", "wasm-bindgen", @@ -10454,9 +10457,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", @@ -10467,9 +10470,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.55" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -10480,9 +10483,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10490,22 +10493,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] @@ -10526,9 +10529,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.82" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -10582,7 +10585,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core", + "windows-core 0.61.2", "windows-future", "windows-link 0.1.3", "windows-numerics", @@ -10594,7 +10597,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -10610,13 +10613,26 @@ dependencies = [ "windows-strings 0.4.2", ] +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + [[package]] name = "windows-future" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core", + "windows-core 0.61.2", "windows-link 0.1.3", "windows-threading", ] @@ -10629,7 +10645,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10640,7 +10656,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10661,7 +10677,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core", + "windows-core 0.61.2", "windows-link 0.1.3", ] @@ -10888,9 +10904,9 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] @@ -10935,28 +10951,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -10976,7 +10992,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", "synstructure", ] @@ -10997,7 +11013,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] @@ -11030,7 +11046,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.110", + "syn 2.0.111", ] [[package]] diff --git a/crates/dogeos-circuits/batch-circuit/Cargo.toml b/crates/dogeos-circuits/batch-circuit/Cargo.toml index 134cd9e3..a7526fd9 100644 --- a/crates/dogeos-circuits/batch-circuit/Cargo.toml +++ b/crates/dogeos-circuits/batch-circuit/Cargo.toml @@ -18,6 +18,7 @@ openvm-ecc-guest = { workspace = true, features = ["halo2curves"] } alloy-primitives = { workspace = true, features = ["native-keccak"] } bincode.workspace = true +itertools.workspace = true [features] default = [] diff --git a/crates/dogeos-circuits/batch-circuit/src/circuit.rs b/crates/dogeos-circuits/batch-circuit/src/circuit.rs index 83a24da4..ac3bf0f0 100644 --- a/crates/dogeos-circuits/batch-circuit/src/circuit.rs +++ b/crates/dogeos-circuits/batch-circuit/src/circuit.rs @@ -1,16 +1,17 @@ use alloy_primitives::B256; -use scroll_zkvm_types_batch::BatchWitness; +use scroll_zkvm_types_batch::dogeos::{DogeOsBatchWitness}; use scroll_zkvm_types_circuit::{ AggCircuit, AggregationInput, Circuit, ProgramCommitment, io::read_witnesses, public_inputs::{ Version, - scroll::{ - batch::{BatchInfo, VersionedBatchInfo}, - chunk::VersionedChunkInfo, + dogeos::{ + batch::{DogeOsBatchInfo, VersionedDogeOsBatchInfo}, + chunk::VersionedDogeOsChunkInfo, }, }, }; +use itertools::Itertools; use crate::child_commitments; @@ -22,15 +23,16 @@ use { openvm_pairing::bls12_381::{Bls12_381, Bls12_381G1Affine, Fp, Fp2}, openvm_sha256_guest, }; +use scroll_zkvm_types_circuit::public_inputs::dogeos::chunk::DogeOsChunkInfo; openvm::init!(); pub struct BatchCircuit; impl Circuit for BatchCircuit { - type Witness = BatchWitness; + type Witness = DogeOsBatchWitness; - type PublicInputs = VersionedBatchInfo; + type PublicInputs = VersionedDogeOsBatchInfo; fn read_witness_bytes() -> Vec { read_witnesses() @@ -45,15 +47,15 @@ impl Circuit for BatchCircuit { } fn validate(witness: Self::Witness) -> Self::PublicInputs { - let version = Version::from(witness.version); - assert_eq!(version.fork, witness.fork_name); + let version = Version::from(witness.inner.version); + assert_eq!(version.fork, witness.inner.fork_name); - (BatchInfo::from(&witness), version) + (DogeOsBatchInfo::from(&witness), version) } } impl AggCircuit for BatchCircuit { - type AggregatedPublicInputs = VersionedChunkInfo; + type AggregatedPublicInputs = VersionedDogeOsChunkInfo; fn verify_commitments(commitment: &ProgramCommitment) { assert_eq!( @@ -73,16 +75,19 @@ impl AggCircuit for BatchCircuit { } fn aggregated_public_inputs(witness: &Self::Witness) -> Vec { - let version = Version::from(witness.version); + let version = Version::from(witness.inner.version); witness + .inner .chunk_infos .iter() .cloned() + .zip_eq(witness.extras.chunk_info_extras.iter().cloned()) + .map(DogeOsChunkInfo::from) .map(|chunk_info| (chunk_info, version)) .collect() } - fn aggregated_pi_hashes(proofs: &[AggregationInput]) -> Vec { + fn aggregated_pi_hashes(proofs: &[AggregationInput]) -> Vec { proofs .iter() .map(|proof| { diff --git a/crates/dogeos-circuits/bundle-circuit/src/circuit.rs b/crates/dogeos-circuits/bundle-circuit/src/circuit.rs index a7e8b4dc..c7c32312 100644 --- a/crates/dogeos-circuits/bundle-circuit/src/circuit.rs +++ b/crates/dogeos-circuits/bundle-circuit/src/circuit.rs @@ -1,13 +1,13 @@ use alloy_primitives::B256; -use scroll_zkvm_types_bundle::BundleWitness; +use scroll_zkvm_types_bundle::dogeos::DogeOsBundleWitness; use scroll_zkvm_types_circuit::{ AggCircuit, AggregationInput, Circuit, ProgramCommitment, io::read_witnesses, public_inputs::{ Version, - scroll::{ - batch::VersionedBatchInfo, - bundle::{BundleInfo, VersionedBundleInfo}, + dogeos::{ + batch::{VersionedDogeOsBatchInfo, DogeOsBatchInfo}, + bundle::{DogeOsBundleInfo, VersionedDogeOsBundleInfo}, }, }, }; @@ -21,9 +21,9 @@ use openvm_keccak256_guest; pub struct BundleCircuit; impl Circuit for BundleCircuit { - type Witness = BundleWitness; + type Witness = DogeOsBundleWitness; - type PublicInputs = VersionedBundleInfo; + type PublicInputs = VersionedDogeOsBundleInfo; fn read_witness_bytes() -> Vec { read_witnesses() @@ -38,15 +38,15 @@ impl Circuit for BundleCircuit { } fn validate(witness: Self::Witness) -> Self::PublicInputs { - let version = Version::from(witness.version); - assert_eq!(version.fork, witness.fork_name); + let version = Version::from(witness.inner.version); + assert_eq!(version.fork, witness.inner.fork_name); - (BundleInfo::from(&witness), version) + (DogeOsBundleInfo::from(&witness), version) } } impl AggCircuit for BundleCircuit { - type AggregatedPublicInputs = VersionedBatchInfo; + type AggregatedPublicInputs = VersionedDogeOsBatchInfo; fn verify_commitments(commitment: &ProgramCommitment) { assert_eq!( @@ -66,11 +66,13 @@ impl AggCircuit for BundleCircuit { } fn aggregated_public_inputs(witness: &Self::Witness) -> Vec { - let version = Version::from(witness.version); + let version = Version::from(witness.inner.version); witness + .inner .batch_infos .iter() .cloned() + .map(|inner| DogeOsBatchInfo { inner }) .map(|batch_info| (batch_info, version)) .collect() } diff --git a/crates/types/base/src/public_inputs/dogeos/batch.rs b/crates/types/base/src/public_inputs/dogeos/batch.rs index 0c13d06b..ce9ce047 100644 --- a/crates/types/base/src/public_inputs/dogeos/batch.rs +++ b/crates/types/base/src/public_inputs/dogeos/batch.rs @@ -1 +1,29 @@ -pub type BatchInfo = crate::public_inputs::scroll::batch::BatchInfo; +use crate::public_inputs::{scroll, MultiVersionPublicInputs}; +use crate::version::Version; + +/// Represents public-input values for a batch. +#[derive( + Clone, + Debug, + rkyv::Archive, + rkyv::Deserialize, + rkyv::Serialize, + serde::Deserialize, + serde::Serialize, +)] +#[rkyv(derive(Debug))] +pub struct DogeOsBatchInfo { + pub inner: scroll::batch::BatchInfo +} + +pub type VersionedDogeOsBatchInfo = (DogeOsBatchInfo, Version); + +impl MultiVersionPublicInputs for DogeOsBatchInfo { + fn pi_by_version(&self, version: Version) -> Vec { + self.inner.pi_by_version(version) + } + + fn validate(&self, prev_pi: &Self, version: Version) { + self.inner.validate(&prev_pi.inner, version) + } +} diff --git a/crates/types/base/src/public_inputs/dogeos/bundle.rs b/crates/types/base/src/public_inputs/dogeos/bundle.rs index 5093ab5a..137bd260 100644 --- a/crates/types/base/src/public_inputs/dogeos/bundle.rs +++ b/crates/types/base/src/public_inputs/dogeos/bundle.rs @@ -1 +1,19 @@ -pub type BundleInfo = crate::public_inputs::scroll::bundle::BundleInfo; +use crate::public_inputs::{scroll, MultiVersionPublicInputs, Version}; + +/// Represents fields required to compute the public-inputs digest of a bundle. +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] +pub struct DogeOsBundleInfo { + pub inner: scroll::bundle::BundleInfo, +} + +pub type VersionedDogeOsBundleInfo = (DogeOsBundleInfo, Version); + +impl MultiVersionPublicInputs for DogeOsBundleInfo { + fn pi_by_version(&self, version: Version) -> Vec { + self.inner.pi_by_version(version) + } + + fn validate(&self, prev_pi: &Self, version: Version) { + self.inner.validate(&prev_pi.inner, version) + } +} diff --git a/crates/types/base/src/public_inputs/dogeos/chunk.rs b/crates/types/base/src/public_inputs/dogeos/chunk.rs index 2893cfb6..dbbd4736 100644 --- a/crates/types/base/src/public_inputs/dogeos/chunk.rs +++ b/crates/types/base/src/public_inputs/dogeos/chunk.rs @@ -6,28 +6,44 @@ use crate::public_inputs::MultiVersionPublicInputs; pub struct DogeOsChunkInfo { /// Scroll ChunkInfo pub inner: scroll::chunk::ChunkInfo, - // DogeOs-specific fields can be added here + /// DogeOs-specific fields + pub extras: DogeOsChunkInfoExtras, +} + +/// DogeOs-specific fields can be added here +#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)] +pub struct DogeOsChunkInfoExtras { /// The starting dogecoin blockhash of the chunk. pub start_blockhash: [u8; 32], /// The ending dogecoin blockhash of the chunk. pub end_blockhash: [u8; 32], } -pub type VersionedDogeOsChunkInfo = (DogeOsChunkInfo, Version); +impl From<(scroll::chunk::ChunkInfo, DogeOsChunkInfoExtras)> for DogeOsChunkInfo { + fn from( + value: (scroll::chunk::ChunkInfo, DogeOsChunkInfoExtras), + ) -> Self { + DogeOsChunkInfo { + inner: value.0, + extras: value.1, + } + } +} +pub type VersionedDogeOsChunkInfo = (DogeOsChunkInfo, Version); impl MultiVersionPublicInputs for DogeOsChunkInfo { fn pi_by_version(&self, version: Version) -> Vec { let mut scroll_chunk_pi = self.inner.pi_by_version(version); - scroll_chunk_pi.extend_from_slice(&self.start_blockhash); - scroll_chunk_pi.extend_from_slice(&self.end_blockhash); + scroll_chunk_pi.extend_from_slice(&self.extras.start_blockhash); + scroll_chunk_pi.extend_from_slice(&self.extras.end_blockhash); scroll_chunk_pi } fn validate(&self, prev_pi: &Self, version: Version) { self.inner.validate(&prev_pi.inner, version); // dogecoin blockhash linkage check enforce no deposit tx can be skipped - assert_eq!(self.start_blockhash, prev_pi.end_blockhash); + assert_eq!(self.extras.start_blockhash, prev_pi.extras.end_blockhash); } } diff --git a/crates/types/batch/src/dogeos.rs b/crates/types/batch/src/dogeos.rs new file mode 100644 index 00000000..6170020b --- /dev/null +++ b/crates/types/batch/src/dogeos.rs @@ -0,0 +1,2 @@ +mod witness; +pub use witness::*; diff --git a/crates/types/batch/src/dogeos/witness.rs b/crates/types/batch/src/dogeos/witness.rs new file mode 100644 index 00000000..bc7f33e4 --- /dev/null +++ b/crates/types/batch/src/dogeos/witness.rs @@ -0,0 +1,37 @@ +use types_base::aggregation::{AggregationInput, ProofCarryingWitness}; +use types_base::public_inputs::dogeos::batch::DogeOsBatchInfo; +use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfoExtras; +use types_base::public_inputs::scroll; + +/// Witness to the batch circuit. +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] +pub struct DogeOsBatchWitness { + /// Scroll ChunkWitness + pub inner: crate::BatchWitness, + pub extras: DogeOsBatchWitnessExtras, +} + +/// Other DogeOs-specific fields can be added here +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] +pub struct DogeOsBatchWitnessExtras { + pub chunk_info_extras: Vec, + pub blobstream: openvm_blobstream::GuestInput, +} + +impl ProofCarryingWitness for DogeOsBatchWitness { + fn get_proofs(&self) -> Vec { + self.inner.chunk_proofs.clone() + } +} + +impl From<&DogeOsBatchWitness> for DogeOsBatchInfo { + fn from(witness: &DogeOsBatchWitness) -> Self { + let scroll_batch_info = scroll::batch::BatchInfo::from(&witness.inner); + + // TODO: verify blobstream DA proofs + + DogeOsBatchInfo { + inner: scroll_batch_info, + } + } +} diff --git a/crates/types/batch/src/lib.rs b/crates/types/batch/src/lib.rs index 85795e1e..397f0a7d 100644 --- a/crates/types/batch/src/lib.rs +++ b/crates/types/batch/src/lib.rs @@ -22,4 +22,6 @@ pub use witness::{ build_point_eval_witness, }; +pub mod dogeos; + pub mod utils; diff --git a/crates/types/bundle/Cargo.toml b/crates/types/bundle/Cargo.toml index 0304e485..ce8fbff7 100644 --- a/crates/types/bundle/Cargo.toml +++ b/crates/types/bundle/Cargo.toml @@ -12,6 +12,7 @@ rkyv.workspace = true serde.workspace = true types-base = { path = "../base", package = "scroll-zkvm-types-base"} +types-batch = { path = "../batch", package = "scroll-zkvm-types-batch" } [features] default = [] diff --git a/crates/types/bundle/src/dogeos.rs b/crates/types/bundle/src/dogeos.rs new file mode 100644 index 00000000..72813274 --- /dev/null +++ b/crates/types/bundle/src/dogeos.rs @@ -0,0 +1,34 @@ +use types_base::aggregation::{AggregationInput, ProofCarryingWitness}; +use types_base::public_inputs::dogeos::bundle::DogeOsBundleInfo; +use types_batch::dogeos::DogeOsBatchWitnessExtras; + +/// The witness for the bundle circuit. +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] +pub struct DogeOsBundleWitness { + pub inner: crate::BundleWitness, + pub batch_info_extras: Vec +} + +impl From<(crate::BundleWitness, Vec)> for DogeOsBundleWitness { + fn from(value: (crate::BundleWitness, Vec)) -> Self { + Self { + inner: value.0, + batch_info_extras: value.1, + } + } +} + +impl ProofCarryingWitness for DogeOsBundleWitness { + fn get_proofs(&self) -> Vec { + self.inner.batch_proofs.clone() + } +} + +impl From<&DogeOsBundleWitness> for DogeOsBundleInfo { + fn from(witness: &DogeOsBundleWitness) -> Self { + let scroll_bundle_info = types_base::public_inputs::scroll::bundle::BundleInfo::from(&witness.inner); + DogeOsBundleInfo { + inner: scroll_bundle_info, + } + } +} diff --git a/crates/types/bundle/src/lib.rs b/crates/types/bundle/src/lib.rs index 622170a7..7cf00368 100644 --- a/crates/types/bundle/src/lib.rs +++ b/crates/types/bundle/src/lib.rs @@ -1,2 +1,4 @@ mod witness; pub use witness::{ArchivedLegacyBundleWitness, BundleWitness, LegacyBundleWitness}; + +pub mod dogeos; diff --git a/crates/types/chunk/src/dogeos/execute.rs b/crates/types/chunk/src/dogeos/execute.rs index b3ea2dc7..4e68227f 100644 --- a/crates/types/chunk/src/dogeos/execute.rs +++ b/crates/types/chunk/src/dogeos/execute.rs @@ -4,7 +4,7 @@ use bridge_adapters_zk::{StepInputEnvelope, ZkVerifierExt}; use bridge_steps_deposit::{HeaderVerifier, MidstateVerifier}; use itertools::Itertools; use sbv_primitives::types::consensus::TxL1Message; -use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfo; +use types_base::public_inputs::dogeos::chunk::{DogeOsChunkInfo, DogeOsChunkInfoExtras}; use crate::dogeos::types::{handleL1MessageCall, MOAT_CONTRACT_ADDRESS}; use crate::scroll::relayMessageCall; use super::witness::DogeOsChunkWitness; @@ -38,9 +38,10 @@ pub fn execute(witness: DogeOsChunkWitness) -> Result .expect("end_blockhash must be present in header statement"); Ok(DogeOsChunkInfo { inner: chunk_info, - // Other DogeOs-specific fields can be initialized here - start_blockhash, - end_blockhash, + extras: DogeOsChunkInfoExtras { + start_blockhash, + end_blockhash, + }, }) } diff --git a/crates/types/chunk/src/dogeos/types.rs b/crates/types/chunk/src/dogeos/types.rs index af7ef2a5..cc8bc6d8 100644 --- a/crates/types/chunk/src/dogeos/types.rs +++ b/crates/types/chunk/src/dogeos/types.rs @@ -1,5 +1,5 @@ use alloy_primitives::{address, Address}; -use alloy_sol_types::{sol, SolCall}; +use alloy_sol_types::sol; sol! { /// Moat.handleL1Message function From e5ad0c80a8834cf723620672d8cffbb9881d5b1b Mon Sep 17 00:00:00 2001 From: lightsing Date: Mon, 8 Dec 2025 16:40:13 +0800 Subject: [PATCH 11/26] update soft link --- .../batch-circuit/src/child_commitments/chunk_exe_commit.rs | 2 +- .../batch-circuit/src/child_commitments/chunk_vm_commit.rs | 2 +- .../bundle-circuit/src/child_commitments/batch_exe_commit.rs | 2 +- .../bundle-circuit/src/child_commitments/batch_vm_commit.rs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs index 1bdee157..5e1c03f4 120000 --- a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs +++ b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs @@ -1 +1 @@ -../../../chunk-circuit/chunk_exe_commit.rs \ No newline at end of file +../../../../dogeos-circuits/chunk-circuit/chunk_exe_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs index b9822325..a58a1cd4 120000 --- a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs +++ b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs @@ -1 +1 @@ -../../../chunk-circuit/chunk_vm_commit.rs \ No newline at end of file +../../../../dogeos-circuits/chunk-circuit/chunk_vm_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs index cc86c9b9..80978e90 120000 --- a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs +++ b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs @@ -1 +1 @@ -../../../batch-circuit/batch_exe_commit.rs \ No newline at end of file +../../../../dogeos-circuits/batch-circuit/batch_exe_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs index 4bf3d07f..0495dd55 120000 --- a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs +++ b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs @@ -1 +1 @@ -../../../batch-circuit/batch_vm_commit.rs \ No newline at end of file +../../../../dogeos-circuits/batch-circuit/batch_vm_commit.rs \ No newline at end of file From 2923257ebaf73183c90bcd20b2656cb55f675a5b Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 09:36:00 +0800 Subject: [PATCH 12/26] add DaInclusionVerifier --- Cargo.lock | 773 ++++++++++++++++++++++- Cargo.toml | 1 + crates/types/batch/Cargo.toml | 3 + crates/types/batch/src/dogeos/witness.rs | 18 +- 4 files changed, 768 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7d6e053d..ac2ba6fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -90,11 +90,20 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] +name = "alloy" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f07655fedc35188f3c50ff8fc6ee45703ae14ef1bc7ae7d80e23a747012184e3" +dependencies = [ + "alloy-core", +] + [[package]] name = "alloy-chains" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ebac8ff9c2f07667e1803dc777304337e160ce5153335beb45e8ec0751808" +checksum = "ff8c665521d11efbb11d5e5c5d63971426bb63df00d24545baf97e7f3dc91c0c" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -144,6 +153,15 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-core" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca96214615ec8cf3fa2a54b32f486eb49100ca7fe7eb0b8c1137cd316e7250a" +dependencies = [ + "alloy-primitives", +] + [[package]] name = "alloy-eip2124" version = "0.2.0" @@ -1214,12 +1232,28 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + [[package]] name = "base16ct" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base256emoji" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e9430d9a245a77c92176e649af6e275f20839a48389859d1661e9a128d077c" +dependencies = [ + "const-str", + "match-lookup", +] + [[package]] name = "base64" version = "0.13.1" @@ -1244,6 +1278,18 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bech32" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" + [[package]] name = "bincode" version = "1.3.3" @@ -1437,6 +1483,18 @@ dependencies = [ "hybrid-array", ] +[[package]] +name = "blockstore" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "509096e88e431095763b3f5ee1e1cdb09212e4d5b2eccc91ddea965deefedb7d" +dependencies = [ + "cid", + "dashmap", + "multihash", + "thiserror 2.0.17", +] + [[package]] name = "bls12_381" version = "0.7.1" @@ -1529,6 +1587,16 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "bridge_integrity" +version = "0.2.0" +dependencies = [ + "common_types", + "hex", + "thiserror 2.0.17", + "tracing", +] + [[package]] name = "bridge_protocol" version = "0.3.0" @@ -1539,6 +1607,25 @@ dependencies = [ "serde_bytes", ] +[[package]] +name = "bridge_steps_da" +version = "0.3.0" +dependencies = [ + "bincode 2.0.1", + "bridge_core", + "bridge_integrity", + "bridge_protocol", + "celestia-proto", + "celestia-types", + "common_types", + "da_codec", + "hex", + "prost", + "serde", + "thiserror 2.0.17", + "tracing", +] + [[package]] name = "bridge_steps_deposit" version = "0.3.0" @@ -1568,6 +1655,15 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + [[package]] name = "bumpalo" version = "3.19.0" @@ -1752,6 +1848,58 @@ dependencies = [ "shlex", ] +[[package]] +name = "celestia-proto" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a6bc833fe0048c158f4740cb4b08cbfb6f407f2bf8ff369d3f6ade932d628f" +dependencies = [ + "bytes", + "prost", + "prost-build", + "prost-types", + "protox", + "serde", + "subtle-encoding", + "tendermint-proto", + "tonic", + "tonic-build", +] + +[[package]] +name = "celestia-types" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68d248009d2b38857ad5d0b6d6c754754132b19e836ba205bdda14631065fa98" +dependencies = [ + "base64 0.22.1", + "bech32 0.11.1", + "bitvec", + "blockstore", + "bytes", + "celestia-proto", + "cid", + "const_format", + "enum_dispatch", + "getrandom 0.2.16", + "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", + "leopard-codec", + "libp2p-identity", + "lumina-utils", + "multiaddr", + "multihash", + "nmt-rs", + "prost", + "rust_decimal", + "serde", + "serde_repr", + "sha2 0.10.9", + "tendermint", + "tendermint-proto", + "thiserror 2.0.17", + "time", +] + [[package]] name = "cfg-if" version = "1.0.4" @@ -1778,6 +1926,18 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "cid" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" +dependencies = [ + "core2", + "multibase", + "multihash", + "unsigned-varint", +] + [[package]] name = "cipher" version = "0.5.0-rc.1" @@ -1895,7 +2055,7 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "unicode-width", + "unicode-width 0.2.2", "windows-sys 0.61.2", ] @@ -1917,6 +2077,12 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const-str" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" + [[package]] name = "const_format" version = "0.2.35" @@ -1968,6 +2134,15 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -2198,6 +2373,36 @@ version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1871a911a2b9a3f66a285896a719159985683bf9903aa2cf89e0c9f53e14552" +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "da_codec" +version = "0.3.0" +dependencies = [ + "alloy", + "common_types", + "duct", + "hex", + "once_cell", + "prost", + "scroll-codec", + "serde", + "serde_json", + "thiserror 2.0.17", + "tracing", +] + [[package]] name = "darling" version = "0.20.11" @@ -2284,6 +2489,32 @@ dependencies = [ "rayon", ] +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + +[[package]] +name = "data-encoding-macro" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" +dependencies = [ + "data-encoding", + "syn 2.0.111", +] + [[package]] name = "der" version = "0.7.10" @@ -2531,6 +2762,18 @@ version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" +[[package]] +name = "duct" +version = "0.13.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c" +dependencies = [ + "libc", + "once_cell", + "os_pipe", + "shared_child", +] + [[package]] name = "dunce" version = "1.0.5" @@ -2571,6 +2814,29 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "sha2 0.9.9", + "zeroize", +] + [[package]] name = "educe" version = "0.6.0" @@ -2903,6 +3169,15 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "flex-error" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" +dependencies = [ + "paste", +] + [[package]] name = "fnv" version = "1.0.7" @@ -3085,8 +3360,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -3824,7 +4101,7 @@ dependencies = [ "dyn-clone", "fuzzy-matcher", "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -4028,6 +4305,16 @@ dependencies = [ "spin", ] +[[package]] +name = "leopard-codec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b397c7217467c5e5582fe413bc2f0e9f804367af8bc0f0374dc966f99d00f9c" +dependencies = [ + "bytes", + "thiserror 2.0.17", +] + [[package]] name = "libc" version = "0.2.178" @@ -4040,6 +4327,21 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +[[package]] +name = "libp2p-identity" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" +dependencies = [ + "bs58", + "hkdf", + "multihash", + "quick-protobuf", + "sha2 0.10.9", + "thiserror 2.0.17", + "tracing", +] + [[package]] name = "libredox" version = "0.1.10" @@ -4136,6 +4438,40 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "logos" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff472f899b4ec2d99161c51f60ff7075eeb3097069a36050d8037a6325eb8154" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "192a3a2b90b0c05b27a0b2c43eecdb7c415e29243acc3f89cc8247a5b693045c" +dependencies = [ + "beef", + "fnv", + "lazy_static", + "proc-macro2", + "quote", + "regex-syntax", + "rustc_version 0.4.1", + "syn 2.0.111", +] + +[[package]] +name = "logos-derive" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "605d9697bcd5ef3a42d38efc51541aa3d6a4a25f7ab6d1ed0da5ac632a26b470" +dependencies = [ + "logos-codegen", +] + [[package]] name = "lru" version = "0.12.5" @@ -4154,6 +4490,15 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "lumina-utils" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6be0fedf4b4ddbdd34a2541f36b63daa004064b5465b7b9f52ebdc5fe1c64187" +dependencies = [ + "js-sys", +] + [[package]] name = "macro-string" version = "0.1.4" @@ -4165,6 +4510,17 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "match-lookup" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "matchers" version = "0.2.0" @@ -4251,6 +4607,28 @@ dependencies = [ "sketches-ddsketch", ] +[[package]] +name = "miette" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" +dependencies = [ + "cfg-if", + "miette-derive", + "unicode-width 0.1.14", +] + +[[package]] +name = "miette-derive" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "mime" version = "0.3.17" @@ -4310,6 +4688,47 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "multiaddr" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "libp2p-identity", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" +dependencies = [ + "base-x", + "base256emoji", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" +dependencies = [ + "core2", + "unsigned-varint", +] + [[package]] name = "multimap" version = "0.10.1" @@ -4368,7 +4787,7 @@ version = "0.30.7" source = "git+https://github.com/DogeOS69/rust-dogecoin.git?branch=dogeos#ea3c4f9891fa061696b96c91147ab1ef2fe0705d" dependencies = [ "base64 0.13.1", - "bech32", + "bech32 0.9.1", "bitcoin-private 0.1.0 (git+https://github.com/DogeOS69/rust-dogecoin.git?branch=dogeos)", "bitcoin_hashes 0.12.0", "hex-conservative", @@ -4377,6 +4796,18 @@ dependencies = [ "serde", ] +[[package]] +name = "nmt-rs" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d9149cb486570ac43944740ac8ea83d309d44d6a2cd2cd856606f43e40c6429" +dependencies = [ + "borsh", + "bytes", + "serde", + "sha2 0.10.9", +] + [[package]] name = "no-std-compat" version = "0.4.1" @@ -5831,6 +6262,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "owo-colors" version = "4.2.3" @@ -6670,6 +7111,18 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "prost-reflect" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37587d5a8a1b3dc9863403d084fc2254b91ab75a702207098837950767e2260b" +dependencies = [ + "logos", + "miette", + "prost", + "prost-types", +] + [[package]] name = "prost-types" version = "0.13.5" @@ -6679,6 +7132,33 @@ dependencies = [ "prost", ] +[[package]] +name = "protox" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "424c2bd294b69c49b949f3619362bc3c5d28298cd1163b6d1a62df37c16461aa" +dependencies = [ + "bytes", + "miette", + "prost", + "prost-reflect", + "prost-types", + "protox-parse", + "thiserror 2.0.17", +] + +[[package]] +name = "protox-parse" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57927f9dbeeffcce7192404deee6157a640cbb3fe8ac11eabbe571565949ab75" +dependencies = [ + "logos", + "miette", + "prost-types", + "thiserror 2.0.17", +] + [[package]] name = "psm" version = "0.1.28" @@ -6730,6 +7210,15 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" +dependencies = [ + "byteorder", +] + [[package]] name = "quote" version = "1.0.42" @@ -6959,9 +7448,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.24" +version = "0.12.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +checksum = "b6eff9328d40131d43bd911d42d79eb6a47312002a4daefc9e37f17e74a7701a" dependencies = [ "base64 0.22.1", "bytes", @@ -7033,8 +7522,26 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus 0.20.0", - "reth-codecs-derive", - "reth-zstd-compressors", + "reth-codecs-derive 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", + "reth-zstd-compressors 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", + "serde", +] + +[[package]] +name = "reth-codecs" +version = "1.8.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +dependencies = [ + "alloy-consensus", + "alloy-eips 1.1.3", + "alloy-genesis", + "alloy-primitives", + "alloy-trie 0.9.1", + "bytes", + "modular-bitfield", + "op-alloy-consensus 0.20.0", + "reth-codecs-derive 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "reth-zstd-compressors 1.8.2 (git+https://github.com/scroll-tech/reth.git)", "serde", ] @@ -7048,6 +7555,16 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "reth-codecs-derive" +version = "1.8.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "reth-consensus" version = "1.8.2" @@ -7133,7 +7650,7 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde 1.1.3", - "reth-codecs", + "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "reth-primitives-traits", "serde", "serde_with", @@ -7252,11 +7769,11 @@ dependencies = [ "derive_more 2.1.0", "once_cell", "op-alloy-consensus 0.20.0", - "reth-codecs", + "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "revm-bytecode 7.0.1", "revm-primitives 21.0.1", "revm-state 8.0.1", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "secp256k1 0.30.0", "serde", "serde_with", @@ -7333,7 +7850,7 @@ dependencies = [ "revm 30.1.1", "revm-primitives 21.0.1", "revm-scroll", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "scroll-alloy-evm", "scroll-alloy-hardforks", "thiserror 2.0.17", @@ -7365,9 +7882,9 @@ dependencies = [ "alloy-rlp", "bytes", "once_cell", - "reth-codecs", + "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "reth-primitives-traits", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "serde", ] @@ -7517,6 +8034,14 @@ dependencies = [ "zstd", ] +[[package]] +name = "reth-zstd-compressors" +version = "1.8.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +dependencies = [ + "zstd", +] + [[package]] name = "revm" version = "22.0.1" @@ -8391,6 +8916,17 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +[[package]] +name = "rust_decimal" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35affe401787a9bd846712274d97654355d21b2a2c092a3139aabe31e9022282" +dependencies = [ + "arrayvec", + "num-traits", + "serde", +] + [[package]] name = "rustc-demangle" version = "0.1.26" @@ -8565,7 +9101,7 @@ dependencies = [ "revm-scroll", "rkyv", "sbv-helpers", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "scroll-alloy-evm", "scroll-alloy-network", "scroll-alloy-rpc-types", @@ -8650,7 +9186,23 @@ dependencies = [ "alloy-rlp", "alloy-serde 1.1.3", "derive_more 2.1.0", - "reth-codecs", + "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", + "serde", + "serde_with", +] + +[[package]] +name = "scroll-alloy-consensus" +version = "1.8.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +dependencies = [ + "alloy-consensus", + "alloy-eips 1.1.3", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 1.1.3", + "derive_more 2.1.0", + "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth.git)", "serde", "serde_with", ] @@ -8668,7 +9220,7 @@ dependencies = [ "encoder-standard", "revm 30.1.1", "revm-scroll", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "scroll-alloy-hardforks", "serde", ] @@ -8694,7 +9246,7 @@ dependencies = [ "alloy-provider", "alloy-rpc-types-eth", "alloy-signer", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "scroll-alloy-rpc-types", ] @@ -8710,11 +9262,41 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde 1.1.3", "derive_more 2.1.0", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth?tag=scroll-v91.2)", "serde", "serde_json", ] +[[package]] +name = "scroll-codec" +version = "0.1.0" +source = "git+https://github.com/scroll-tech/rollup-node?tag=v0.0.1-rc65#78999f4d4d9efca9a733dac59d6b685970783b5e" +dependencies = [ + "alloy-eips 1.1.3", + "alloy-primitives", + "alloy-rlp", + "alloy-sol-types", + "bitvec", + "derive_more 2.1.0", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "scroll-l1", + "thiserror 2.0.17", + "zstd", +] + +[[package]] +name = "scroll-l1" +version = "0.0.1" +source = "git+https://github.com/scroll-tech/rollup-node?tag=v0.0.1-rc65#78999f4d4d9efca9a733dac59d6b685970783b5e" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "bitvec", + "derive_more 2.1.0", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "thiserror 2.0.17", +] + [[package]] name = "scroll-zkvm-batch-circuit" version = "0.7.1" @@ -8900,6 +9482,9 @@ name = "scroll-zkvm-types-batch" version = "0.7.1" dependencies = [ "alloy-primitives", + "bridge_adapters_zk", + "bridge_core", + "bridge_steps_da", "c-kzg", "halo2curves-axiom", "itertools 0.14.0", @@ -9227,6 +9812,17 @@ dependencies = [ "serde_core", ] +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "serde_spanned" version = "0.6.9" @@ -9366,12 +9962,34 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shared_child" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" +dependencies = [ + "libc", + "sigchld", + "windows-sys 0.60.2", +] + [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "sigchld" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" +dependencies = [ + "libc", + "os_pipe", + "signal-hook", +] + [[package]] name = "signal-hook" version = "0.3.18" @@ -9414,9 +10032,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" [[package]] name = "simdutf8" @@ -9643,6 +10261,21 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + [[package]] name = "syn" version = "1.0.109" @@ -9761,6 +10394,51 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "tendermint" +version = "0.40.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc997743ecfd4864bbca8170d68d9b2bee24653b034210752c2d883ef4b838b1" +dependencies = [ + "bytes", + "digest 0.10.7", + "ed25519", + "ed25519-consensus", + "flex-error", + "futures", + "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits", + "once_cell", + "prost", + "ripemd", + "serde", + "serde_bytes", + "serde_json", + "serde_repr", + "sha2 0.10.9", + "signature", + "subtle", + "subtle-encoding", + "tendermint-proto", + "time", + "zeroize", +] + +[[package]] +name = "tendermint-proto" +version = "0.40.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c40e13d39ca19082d8a7ed22de7595979350319833698f8b1080f29620a094" +dependencies = [ + "bytes", + "flex-error", + "prost", + "serde", + "serde_bytes", + "subtle-encoding", + "time", +] + [[package]] name = "test-case" version = "3.3.1" @@ -10088,6 +10766,41 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" +[[package]] +name = "tonic" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bytes", + "http", + "http-body", + "http-body-util", + "percent-encoding", + "pin-project", + "prost", + "tokio-stream", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.111", +] + [[package]] name = "tower" version = "0.5.2" @@ -10105,9 +10818,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "bitflags", "bytes", @@ -10296,6 +11009,12 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "unicode-width" version = "0.2.2" @@ -10328,6 +11047,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "unsigned-varint" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" + [[package]] name = "untrusted" version = "0.9.0" diff --git a/Cargo.toml b/Cargo.toml index 5ca11d06..e4c19555 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -153,6 +153,7 @@ scroll-zkvm-verifier = { path = "crates/verifier" } # dogeos crates bridge_core = { path = "../dogeos-core/crates/bridge_core", default-features = false } bridge_adapters_zk = { path = "../dogeos-core/crates/bridge_adapters_zk", default-features = false } +bridge_steps_da = { path = "../dogeos-core/crates/bridge_steps_da", default-features = false } bridge_steps_deposit = { path = "../dogeos-core/crates/bridge_steps_deposit", default-features = false } bridge_transforms = { path = "../dogeos-core/crates/bridge_transforms", default-features = false } openvm-blobstream = { path = "../blobstream" } diff --git a/crates/types/batch/Cargo.toml b/crates/types/batch/Cargo.toml index 5b9e2e03..04abeac1 100644 --- a/crates/types/batch/Cargo.toml +++ b/crates/types/batch/Cargo.toml @@ -26,6 +26,9 @@ halo2curves-axiom = "0.7.0" sbv-primitives = { workspace = true, optional = true } c-kzg = { workspace = true, optional = true } +bridge_core = { workspace = true } +bridge_adapters_zk = { workspace = true, features = ["verifier"] } +bridge_steps_da = { workspace = true, features = ["verifier"] } openvm-blobstream = { workspace = true } [features] diff --git a/crates/types/batch/src/dogeos/witness.rs b/crates/types/batch/src/dogeos/witness.rs index bc7f33e4..222b81d7 100644 --- a/crates/types/batch/src/dogeos/witness.rs +++ b/crates/types/batch/src/dogeos/witness.rs @@ -1,7 +1,11 @@ +use bridge_adapters_zk::serde::SerdeWrapper; +use bridge_adapters_zk::{StepInputEnvelope, ZkVerifierExt}; +use bridge_core::VerifierContext; use types_base::aggregation::{AggregationInput, ProofCarryingWitness}; use types_base::public_inputs::dogeos::batch::DogeOsBatchInfo; use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfoExtras; use types_base::public_inputs::scroll; +use bridge_steps_da::DaInclusionVerifier; /// Witness to the batch circuit. #[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] @@ -15,7 +19,10 @@ pub struct DogeOsBatchWitness { #[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct DogeOsBatchWitnessExtras { pub chunk_info_extras: Vec, - pub blobstream: openvm_blobstream::GuestInput, + pub verifier_context: SerdeWrapper, + pub inclusion: SerdeWrapper>, + // TODO: to be decided later how to handle celestia consensus + // pub blobstream: openvm_blobstream::GuestInput, } impl ProofCarryingWitness for DogeOsBatchWitness { @@ -26,9 +33,14 @@ impl ProofCarryingWitness for DogeOsBatchWitness { impl From<&DogeOsBatchWitness> for DogeOsBatchInfo { fn from(witness: &DogeOsBatchWitness) -> Self { - let scroll_batch_info = scroll::batch::BatchInfo::from(&witness.inner); + DaInclusionVerifier.verify_envelope( + &witness.extras.inclusion, + &witness.extras.verifier_context, + ).expect("failed to verify inclusion proof"); + + // TODO: verifying mapping between extras.chunk_info_extras and inner.chunks - // TODO: verify blobstream DA proofs + let scroll_batch_info = scroll::batch::BatchInfo::from(&witness.inner); DogeOsBatchInfo { inner: scroll_batch_info, From 7e502b899f0ecbc252bf30323f06a0b402659dd4 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 10:31:00 +0800 Subject: [PATCH 13/26] add assertions. --- crates/types/batch/src/dogeos/witness.rs | 47 ++++++++++++++++++++---- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/crates/types/batch/src/dogeos/witness.rs b/crates/types/batch/src/dogeos/witness.rs index 222b81d7..7b0eb531 100644 --- a/crates/types/batch/src/dogeos/witness.rs +++ b/crates/types/batch/src/dogeos/witness.rs @@ -33,17 +33,50 @@ impl ProofCarryingWitness for DogeOsBatchWitness { impl From<&DogeOsBatchWitness> for DogeOsBatchInfo { fn from(witness: &DogeOsBatchWitness) -> Self { - DaInclusionVerifier.verify_envelope( - &witness.extras.inclusion, - &witness.extras.verifier_context, - ).expect("failed to verify inclusion proof"); - - // TODO: verifying mapping between extras.chunk_info_extras and inner.chunks - let scroll_batch_info = scroll::batch::BatchInfo::from(&witness.inner); + verify_da_inclusion(witness, &scroll_batch_info); + DogeOsBatchInfo { inner: scroll_batch_info, } } } + + +fn verify_da_inclusion( + witness: &DogeOsBatchWitness, + scroll_batch_info: &scroll::batch::BatchInfo, +) { + DaInclusionVerifier.verify_envelope( + &witness.extras.inclusion, + &witness.extras.verifier_context, + ).expect("failed to verify inclusion proof"); + + let (first_chunk_extras, last_chunk_extras) = ( + witness.extras.chunk_info_extras.first().expect("at least one chunk in batch"), + witness.extras.chunk_info_extras.last().expect("at least one chunk in batch"), + ); + + let da_header = &witness.extras.inclusion.artifact.v2_header; + + // See: https://github.com/DogeOS69/dogeos-core/tree/feat/trust-minimized-bridge-crates/crates/common_types/src/protos#blobheader-v2-fields-wip + // | Field | Type / Size | Meaning | Source / Notes | + // |-------|-------------|---------|----------------| + // | `prev_state_root` | bytes (32) | L2 state root before batch | DogeOS RPC | + assert_eq!(da_header.prev_state_root, scroll_batch_info.parent_state_root); + // | `state_root` | bytes (32) | L2 state root after batch | DogeOS RPC | + assert_eq!(da_header.state_root, scroll_batch_info.state_root); + // | `prev_batch_hash` | bytes (32) | Hash of previous batch | From `commitBatches` inputs | + assert_eq!(da_header.prev_batch_hash, scroll_batch_info.parent_batch_hash); // FIXME: is this same thing? + // | `batch_hash` | bytes (32) | Hash of current batch | `calculate_batch_hash` (codec version, batch index, blob commitment, prev batch hash) | + assert_eq!(da_header.batch_hash, scroll_batch_info.batch_hash); // FIXME: is this same thing? + // | `prev_l1_message_queue_hash` | bytes (32) | Pre-batch queue hash | Scroll codec `prev_l1_message_queue_hash` | + assert_eq!(da_header.prev_l1_message_queue_hash, scroll_batch_info.prev_msg_queue_hash); + // | `l1_message_queue_hash` | bytes (32) | Post-batch L1 message queue hash | Scroll codec `post_l1_message_queue_hash` | + assert_eq!(da_header.l1_message_queue_hash, scroll_batch_info.post_msg_queue_hash); + // | `deposit_queue_block_hash` | bytes (32) | Dogecoin block hash at current deposit queue height | From Dogecoin indexer / `l1_interface` | + assert_eq!(da_header.prev_deposit_queue_block_hash, first_chunk_extras.start_blockhash); + assert_eq!(da_header.deposit_queue_block_hash, last_chunk_extras.end_blockhash); + +} From a1142b2e2315076370b359ccab88a89f2d34a2c0 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 10:39:50 +0800 Subject: [PATCH 14/26] update --- crates/types/batch/src/dogeos/witness.rs | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/crates/types/batch/src/dogeos/witness.rs b/crates/types/batch/src/dogeos/witness.rs index 7b0eb531..f423ea1f 100644 --- a/crates/types/batch/src/dogeos/witness.rs +++ b/crates/types/batch/src/dogeos/witness.rs @@ -53,14 +53,9 @@ fn verify_da_inclusion( &witness.extras.verifier_context, ).expect("failed to verify inclusion proof"); - let (first_chunk_extras, last_chunk_extras) = ( - witness.extras.chunk_info_extras.first().expect("at least one chunk in batch"), - witness.extras.chunk_info_extras.last().expect("at least one chunk in batch"), - ); - let da_header = &witness.extras.inclusion.artifact.v2_header; - // See: https://github.com/DogeOS69/dogeos-core/tree/feat/trust-minimized-bridge-crates/crates/common_types/src/protos#blobheader-v2-fields-wip + // See: https://github.com/DogeOS69/dogeos-core/tree/feat/trust-minimized-bridge-crates/crates/common_types/src/protos // | Field | Type / Size | Meaning | Source / Notes | // |-------|-------------|---------|----------------| // | `prev_state_root` | bytes (32) | L2 state root before batch | DogeOS RPC | @@ -68,15 +63,11 @@ fn verify_da_inclusion( // | `state_root` | bytes (32) | L2 state root after batch | DogeOS RPC | assert_eq!(da_header.state_root, scroll_batch_info.state_root); // | `prev_batch_hash` | bytes (32) | Hash of previous batch | From `commitBatches` inputs | - assert_eq!(da_header.prev_batch_hash, scroll_batch_info.parent_batch_hash); // FIXME: is this same thing? + assert_eq!(da_header.prev_batch_hash, scroll_batch_info.parent_batch_hash); // | `batch_hash` | bytes (32) | Hash of current batch | `calculate_batch_hash` (codec version, batch index, blob commitment, prev batch hash) | - assert_eq!(da_header.batch_hash, scroll_batch_info.batch_hash); // FIXME: is this same thing? + assert_eq!(da_header.batch_hash, scroll_batch_info.batch_hash); // | `prev_l1_message_queue_hash` | bytes (32) | Pre-batch queue hash | Scroll codec `prev_l1_message_queue_hash` | assert_eq!(da_header.prev_l1_message_queue_hash, scroll_batch_info.prev_msg_queue_hash); // | `l1_message_queue_hash` | bytes (32) | Post-batch L1 message queue hash | Scroll codec `post_l1_message_queue_hash` | assert_eq!(da_header.l1_message_queue_hash, scroll_batch_info.post_msg_queue_hash); - // | `deposit_queue_block_hash` | bytes (32) | Dogecoin block hash at current deposit queue height | From Dogecoin indexer / `l1_interface` | - assert_eq!(da_header.prev_deposit_queue_block_hash, first_chunk_extras.start_blockhash); - assert_eq!(da_header.deposit_queue_block_hash, last_chunk_extras.end_blockhash); - } From fad2ad17fc691490d74de8dd30d1501a2ba744ab Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 15:39:42 +0800 Subject: [PATCH 15/26] add chunk/batch --- Cargo.lock | 103 ++++++++---------- Cargo.toml | 10 +- Makefile | 6 +- crates/build-guest/src/main.rs | 3 +- .../batch-circuit/batch_exe_commit.rs | 4 - .../src/child_commitments/chunk_exe_commit.rs | 1 - .../src/child_commitments/chunk_vm_commit.rs | 1 - .../bundle-circuit/bundle_exe_commit.rs | 4 - .../src/child_commitments/batch_exe_commit.rs | 1 - .../src/child_commitments/batch_vm_commit.rs | 1 - .../chunk-circuit/chunk_exe_commit.rs | 4 - .../circuits}/batch-circuit/.gitignore | 0 .../circuits}/batch-circuit/Cargo.toml | 0 .../batch-circuit/batch_exe_commit.rs | 4 + .../batch-circuit/batch_vm_commit.rs | 0 .../circuits}/batch-circuit/openvm.toml | 0 .../circuits}/batch-circuit/openvm_init.rs | 0 .../src/child_commitments/chunk_exe_commit.rs | 1 + .../src/child_commitments/chunk_vm_commit.rs | 1 + .../src/child_commitments/mod.rs | 0 .../circuits}/batch-circuit/src/circuit.rs | 0 .../circuits}/batch-circuit/src/main.rs | 0 .../circuits}/bundle-circuit/.gitignore | 0 .../circuits}/bundle-circuit/Cargo.toml | 0 .../bundle-circuit/bundle_exe_commit.rs | 4 + .../bundle-circuit/bundle_vm_commit.rs | 0 .../circuits}/bundle-circuit/openvm.toml | 0 .../src/child_commitments/batch_exe_commit.rs | 1 + .../src/child_commitments/batch_vm_commit.rs | 1 + .../src/child_commitments/mod.rs | 0 .../circuits}/bundle-circuit/src/circuit.rs | 0 .../circuits}/bundle-circuit/src/main.rs | 0 .../circuits}/chunk-circuit/.gitignore | 0 .../circuits}/chunk-circuit/Cargo.toml | 0 .../chunk-circuit/chunk_exe_commit.rs | 4 + .../chunk-circuit/chunk_vm_commit.rs | 0 .../circuits}/chunk-circuit/openvm.toml | 0 .../circuits}/chunk-circuit/openvm_init.rs | 0 .../circuits}/chunk-circuit/src/circuit.rs | 0 .../circuits}/chunk-circuit/src/main.rs | 0 crates/dogeos/integration/src/testers.rs | 2 + .../dogeos/integration/src/testers/batch.rs | 73 +++++++++++++ .../dogeos/integration/src/testers/chunk.rs | 80 ++++++++++++++ .../dogeos/integration/tests/batch_circuit.rs | 22 ++++ .../dogeos/integration/tests/chunk_circuit.rs | 12 ++ crates/integration/src/testers/batch.rs | 16 ++- crates/integration/src/testers/chunk.rs | 15 +++ crates/types/base/src/public_inputs/dogeos.rs | 2 +- .../base/src/public_inputs/dogeos/batch.rs | 4 +- .../base/src/public_inputs/dogeos/bundle.rs | 2 +- .../base/src/public_inputs/dogeos/chunk.rs | 15 ++- .../batch/src/blob_consistency/openvm.rs | 4 +- crates/types/batch/src/dogeos/witness.rs | 36 +++--- crates/types/bundle/src/dogeos.rs | 5 +- crates/types/chunk/src/dogeos.rs | 2 +- crates/types/chunk/src/dogeos/execute.rs | 89 +++++++++------ crates/types/chunk/src/dogeos/types.rs | 22 ++-- crates/types/chunk/src/dogeos/witness.rs | 21 +++- crates/types/chunk/src/scroll.rs | 5 +- crates/types/src/lib.rs | 2 +- 60 files changed, 420 insertions(+), 163 deletions(-) delete mode 100644 crates/dogeos-circuits/batch-circuit/batch_exe_commit.rs delete mode 120000 crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs delete mode 120000 crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs delete mode 100644 crates/dogeos-circuits/bundle-circuit/bundle_exe_commit.rs delete mode 120000 crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs delete mode 120000 crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs delete mode 100644 crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs rename crates/{dogeos-circuits => dogeos/circuits}/batch-circuit/.gitignore (100%) rename crates/{dogeos-circuits => dogeos/circuits}/batch-circuit/Cargo.toml (100%) create mode 100644 crates/dogeos/circuits/batch-circuit/batch_exe_commit.rs rename crates/{dogeos-circuits => dogeos/circuits}/batch-circuit/batch_vm_commit.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/batch-circuit/openvm.toml (100%) rename crates/{dogeos-circuits => dogeos/circuits}/batch-circuit/openvm_init.rs (100%) create mode 120000 crates/dogeos/circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs create mode 120000 crates/dogeos/circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs rename crates/{dogeos-circuits => dogeos/circuits}/batch-circuit/src/child_commitments/mod.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/batch-circuit/src/circuit.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/batch-circuit/src/main.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/bundle-circuit/.gitignore (100%) rename crates/{dogeos-circuits => dogeos/circuits}/bundle-circuit/Cargo.toml (100%) create mode 100644 crates/dogeos/circuits/bundle-circuit/bundle_exe_commit.rs rename crates/{dogeos-circuits => dogeos/circuits}/bundle-circuit/bundle_vm_commit.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/bundle-circuit/openvm.toml (100%) create mode 120000 crates/dogeos/circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs create mode 120000 crates/dogeos/circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs rename crates/{dogeos-circuits => dogeos/circuits}/bundle-circuit/src/child_commitments/mod.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/bundle-circuit/src/circuit.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/bundle-circuit/src/main.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/chunk-circuit/.gitignore (100%) rename crates/{dogeos-circuits => dogeos/circuits}/chunk-circuit/Cargo.toml (100%) create mode 100644 crates/dogeos/circuits/chunk-circuit/chunk_exe_commit.rs rename crates/{dogeos-circuits => dogeos/circuits}/chunk-circuit/chunk_vm_commit.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/chunk-circuit/openvm.toml (100%) rename crates/{dogeos-circuits => dogeos/circuits}/chunk-circuit/openvm_init.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/chunk-circuit/src/circuit.rs (100%) rename crates/{dogeos-circuits => dogeos/circuits}/chunk-circuit/src/main.rs (100%) create mode 100644 crates/dogeos/integration/src/testers.rs create mode 100644 crates/dogeos/integration/src/testers/batch.rs create mode 100644 crates/dogeos/integration/src/testers/chunk.rs create mode 100644 crates/dogeos/integration/tests/batch_circuit.rs create mode 100644 crates/dogeos/integration/tests/chunk_circuit.rs diff --git a/Cargo.lock b/Cargo.lock index ac2ba6fd..3b6d79b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1576,6 +1576,7 @@ dependencies = [ "bridge_core", "bridge_protocol", "openvm", + "openvm-sdk", "serde", ] @@ -2392,7 +2393,6 @@ version = "0.3.0" dependencies = [ "alloy", "common_types", - "duct", "hex", "once_cell", "prost", @@ -2735,6 +2735,22 @@ dependencies = [ "scroll-zkvm-types-circuit", ] +[[package]] +name = "dogeos-zkvm-integration" +version = "0.7.1" +dependencies = [ + "bridge_adapters_zk", + "bridge_core", + "bridge_protocol", + "bridge_steps_da", + "eyre", + "sbv-primitives", + "scroll-zkvm-integration", + "scroll-zkvm-prover", + "scroll-zkvm-types", + "serde_json", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -2762,18 +2778,6 @@ version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" -[[package]] -name = "duct" -version = "0.13.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c" -dependencies = [ - "libc", - "once_cell", - "os_pipe", - "shared_child", -] - [[package]] name = "dunce" version = "1.0.5" @@ -6262,16 +6266,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "os_pipe" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "owo-colors" version = "4.2.3" @@ -7530,7 +7524,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" dependencies = [ "alloy-consensus", "alloy-eips 1.1.3", @@ -7540,8 +7534,8 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus 0.20.0", - "reth-codecs-derive 1.8.2 (git+https://github.com/scroll-tech/reth.git)", - "reth-zstd-compressors 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "reth-codecs-derive 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", + "reth-zstd-compressors 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", "serde", ] @@ -7558,7 +7552,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" dependencies = [ "proc-macro2", "quote", @@ -8037,7 +8031,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" dependencies = [ "zstd", ] @@ -9033,6 +9027,15 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "ruzstd" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01" +dependencies = [ + "twox-hash", +] + [[package]] name = "ryu" version = "1.0.20" @@ -9194,7 +9197,7 @@ dependencies = [ [[package]] name = "scroll-alloy-consensus" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" dependencies = [ "alloy-consensus", "alloy-eips 1.1.3", @@ -9202,7 +9205,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 1.1.3", "derive_more 2.1.0", - "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", "serde", "serde_with", ] @@ -9270,7 +9273,7 @@ dependencies = [ [[package]] name = "scroll-codec" version = "0.1.0" -source = "git+https://github.com/scroll-tech/rollup-node?tag=v0.0.1-rc65#78999f4d4d9efca9a733dac59d6b685970783b5e" +source = "git+https://github.com/scroll-tech/rollup-node?rev=c955480#c9554802273f535042cca5dbe44f0ceda65d33a8" dependencies = [ "alloy-eips 1.1.3", "alloy-primitives", @@ -9278,22 +9281,22 @@ dependencies = [ "alloy-sol-types", "bitvec", "derive_more 2.1.0", - "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "ruzstd", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", "scroll-l1", "thiserror 2.0.17", - "zstd", ] [[package]] name = "scroll-l1" -version = "0.0.1" -source = "git+https://github.com/scroll-tech/rollup-node?tag=v0.0.1-rc65#78999f4d4d9efca9a733dac59d6b685970783b5e" +version = "1.0.3" +source = "git+https://github.com/scroll-tech/rollup-node?rev=c955480#c9554802273f535042cca5dbe44f0ceda65d33a8" dependencies = [ "alloy-primitives", "alloy-sol-types", "bitvec", "derive_more 2.1.0", - "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", "thiserror 2.0.17", ] @@ -9962,34 +9965,12 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shared_child" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" -dependencies = [ - "libc", - "sigchld", - "windows-sys 0.60.2", -] - [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "sigchld" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" -dependencies = [ - "libc", - "os_pipe", - "signal-hook", -] - [[package]] name = "signal-hook" version = "0.3.18" @@ -10955,6 +10936,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "twox-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" + [[package]] name = "typeid" version = "1.0.3" diff --git a/Cargo.toml b/Cargo.toml index e4c19555..e5f6f6e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,9 +14,10 @@ members = [ "crates/integration", "crates/build-guest", "crates/tools/upload-axiom", - "crates/dogeos-circuits/chunk-circuit", - "crates/dogeos-circuits/batch-circuit", - "crates/dogeos-circuits/bundle-circuit", + "crates/dogeos/circuits/chunk-circuit", + "crates/dogeos/circuits/batch-circuit", + "crates/dogeos/circuits/bundle-circuit", + "crates/dogeos/integration", ] resolver = "2" @@ -146,12 +147,13 @@ scroll-zkvm-types-circuit = { path = "crates/types/circuit" } scroll-zkvm-types-chunk = { path = "crates/types/chunk" } scroll-zkvm-types-batch = { path = "crates/types/batch" } scroll-zkvm-types-bundle = { path = "crates/types/bundle" } -scroll-zkvm-integration = { path = "crates/integration" } +scroll-zkvm-integration = { path = "crates/integration", default-features = false } scroll-zkvm-prover = { path = "crates/prover" } scroll-zkvm-verifier = { path = "crates/verifier" } # dogeos crates bridge_core = { path = "../dogeos-core/crates/bridge_core", default-features = false } +bridge_protocol = { path = "../dogeos-core/crates/bridge_protocol", default-features = false } bridge_adapters_zk = { path = "../dogeos-core/crates/bridge_adapters_zk", default-features = false } bridge_steps_da = { path = "../dogeos-core/crates/bridge_steps_da", default-features = false } bridge_steps_deposit = { path = "../dogeos-core/crates/bridge_steps_deposit", default-features = false } diff --git a/Makefile b/Makefile index 016ef9f8..2638e290 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,7 @@ export-onchain-verifier: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test onchain_verifier export_onchain_verifier -- --exact --nocapture test-execute-chunk: - @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test chunk_circuit test_execute -- --exact --nocapture + @cargo test $(CARGO_CONFIG_FLAG) --release -p dogeos-zkvm-integration --test chunk_circuit test_execute -- --exact --nocapture test-execute-chunk-multi: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test chunk_circuit test_execute_multi -- --exact --nocapture @@ -76,7 +76,7 @@ test-cycle: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test chunk_circuit test_cycle -- --exact --nocapture test-execute-batch: - @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test batch_circuit test_e2e_execute -- --exact --nocapture + @cargo test $(CARGO_CONFIG_FLAG) --release -p dogeos-zkvm-integration --test batch_circuit test_e2e_execute -- --exact --nocapture test-execute-batch-fast: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test batch_circuit test_execute -- --exact --nocapture @@ -100,7 +100,7 @@ test-single-batch: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test batch_circuit setup_prove_verify_single -- --exact --nocapture test-e2e-batch: - @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test batch_circuit e2e -- --exact --nocapture + @cargo test $(CARGO_CONFIG_FLAG) --release -p dogeos-zkvm-integration --test batch_circuit e2e -- --exact --nocapture test-axiom-e2e-batch: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test batch_circuit axiom_e2e -- --exact --nocapture diff --git a/crates/build-guest/src/main.rs b/crates/build-guest/src/main.rs index a47196df..6af8a7af 100644 --- a/crates/build-guest/src/main.rs +++ b/crates/build-guest/src/main.rs @@ -141,7 +141,8 @@ fn generate_app_assets(workspace_dir: &Path, release_output_dir: &PathBuf) -> Re for project_name in projects_to_build { let project_path = workspace_dir .join("crates") - .join("dogeos-circuits") + .join("dogeos") + .join("circuits") .join(format!("{project_name}-circuit")); println!("{LOG_PREFIX} Processing project: {project_name}"); diff --git a/crates/dogeos-circuits/batch-circuit/batch_exe_commit.rs b/crates/dogeos-circuits/batch-circuit/batch_exe_commit.rs deleted file mode 100644 index ebe6f592..00000000 --- a/crates/dogeos-circuits/batch-circuit/batch_exe_commit.rs +++ /dev/null @@ -1,4 +0,0 @@ -#![cfg_attr(rustfmt, rustfmt_skip)] -//! Generated by crates/build-guest. DO NOT EDIT! - -pub const COMMIT: [u32; 8] = [1303559324, 1894411562, 683816819, 1138777461, 5450950, 1920371602, 1646997810, 1849856934]; diff --git a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs deleted file mode 120000 index 5e1c03f4..00000000 --- a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs +++ /dev/null @@ -1 +0,0 @@ -../../../../dogeos-circuits/chunk-circuit/chunk_exe_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs b/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs deleted file mode 120000 index a58a1cd4..00000000 --- a/crates/dogeos-circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs +++ /dev/null @@ -1 +0,0 @@ -../../../../dogeos-circuits/chunk-circuit/chunk_vm_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/bundle-circuit/bundle_exe_commit.rs b/crates/dogeos-circuits/bundle-circuit/bundle_exe_commit.rs deleted file mode 100644 index b67f1903..00000000 --- a/crates/dogeos-circuits/bundle-circuit/bundle_exe_commit.rs +++ /dev/null @@ -1,4 +0,0 @@ -#![cfg_attr(rustfmt, rustfmt_skip)] -//! Generated by crates/build-guest. DO NOT EDIT! - -pub const COMMIT: [u32; 8] = [1327831041, 1333938578, 1465924054, 265598051, 217303637, 1482374516, 658833638, 1874751238]; diff --git a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs deleted file mode 120000 index 80978e90..00000000 --- a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs +++ /dev/null @@ -1 +0,0 @@ -../../../../dogeos-circuits/batch-circuit/batch_exe_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs b/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs deleted file mode 120000 index 0495dd55..00000000 --- a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs +++ /dev/null @@ -1 +0,0 @@ -../../../../dogeos-circuits/batch-circuit/batch_vm_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs b/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs deleted file mode 100644 index 71a4467a..00000000 --- a/crates/dogeos-circuits/chunk-circuit/chunk_exe_commit.rs +++ /dev/null @@ -1,4 +0,0 @@ -#![cfg_attr(rustfmt, rustfmt_skip)] -//! Generated by crates/build-guest. DO NOT EDIT! - -pub const COMMIT: [u32; 8] = [1564750536, 1199068721, 1357124636, 509005417, 850566565, 719694908, 1451454140, 1537636711]; diff --git a/crates/dogeos-circuits/batch-circuit/.gitignore b/crates/dogeos/circuits/batch-circuit/.gitignore similarity index 100% rename from crates/dogeos-circuits/batch-circuit/.gitignore rename to crates/dogeos/circuits/batch-circuit/.gitignore diff --git a/crates/dogeos-circuits/batch-circuit/Cargo.toml b/crates/dogeos/circuits/batch-circuit/Cargo.toml similarity index 100% rename from crates/dogeos-circuits/batch-circuit/Cargo.toml rename to crates/dogeos/circuits/batch-circuit/Cargo.toml diff --git a/crates/dogeos/circuits/batch-circuit/batch_exe_commit.rs b/crates/dogeos/circuits/batch-circuit/batch_exe_commit.rs new file mode 100644 index 00000000..c6458baa --- /dev/null +++ b/crates/dogeos/circuits/batch-circuit/batch_exe_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [123293429, 661502243, 1332640210, 533174887, 1591197618, 1101567153, 1899493398, 49094928]; diff --git a/crates/dogeos-circuits/batch-circuit/batch_vm_commit.rs b/crates/dogeos/circuits/batch-circuit/batch_vm_commit.rs similarity index 100% rename from crates/dogeos-circuits/batch-circuit/batch_vm_commit.rs rename to crates/dogeos/circuits/batch-circuit/batch_vm_commit.rs diff --git a/crates/dogeos-circuits/batch-circuit/openvm.toml b/crates/dogeos/circuits/batch-circuit/openvm.toml similarity index 100% rename from crates/dogeos-circuits/batch-circuit/openvm.toml rename to crates/dogeos/circuits/batch-circuit/openvm.toml diff --git a/crates/dogeos-circuits/batch-circuit/openvm_init.rs b/crates/dogeos/circuits/batch-circuit/openvm_init.rs similarity index 100% rename from crates/dogeos-circuits/batch-circuit/openvm_init.rs rename to crates/dogeos/circuits/batch-circuit/openvm_init.rs diff --git a/crates/dogeos/circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs b/crates/dogeos/circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs new file mode 120000 index 00000000..f24a9102 --- /dev/null +++ b/crates/dogeos/circuits/batch-circuit/src/child_commitments/chunk_exe_commit.rs @@ -0,0 +1 @@ +../../../../circuits/chunk-circuit/chunk_exe_commit.rs \ No newline at end of file diff --git a/crates/dogeos/circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs b/crates/dogeos/circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs new file mode 120000 index 00000000..3acd48a7 --- /dev/null +++ b/crates/dogeos/circuits/batch-circuit/src/child_commitments/chunk_vm_commit.rs @@ -0,0 +1 @@ +../../../../circuits/chunk-circuit/chunk_vm_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/batch-circuit/src/child_commitments/mod.rs b/crates/dogeos/circuits/batch-circuit/src/child_commitments/mod.rs similarity index 100% rename from crates/dogeos-circuits/batch-circuit/src/child_commitments/mod.rs rename to crates/dogeos/circuits/batch-circuit/src/child_commitments/mod.rs diff --git a/crates/dogeos-circuits/batch-circuit/src/circuit.rs b/crates/dogeos/circuits/batch-circuit/src/circuit.rs similarity index 100% rename from crates/dogeos-circuits/batch-circuit/src/circuit.rs rename to crates/dogeos/circuits/batch-circuit/src/circuit.rs diff --git a/crates/dogeos-circuits/batch-circuit/src/main.rs b/crates/dogeos/circuits/batch-circuit/src/main.rs similarity index 100% rename from crates/dogeos-circuits/batch-circuit/src/main.rs rename to crates/dogeos/circuits/batch-circuit/src/main.rs diff --git a/crates/dogeos-circuits/bundle-circuit/.gitignore b/crates/dogeos/circuits/bundle-circuit/.gitignore similarity index 100% rename from crates/dogeos-circuits/bundle-circuit/.gitignore rename to crates/dogeos/circuits/bundle-circuit/.gitignore diff --git a/crates/dogeos-circuits/bundle-circuit/Cargo.toml b/crates/dogeos/circuits/bundle-circuit/Cargo.toml similarity index 100% rename from crates/dogeos-circuits/bundle-circuit/Cargo.toml rename to crates/dogeos/circuits/bundle-circuit/Cargo.toml diff --git a/crates/dogeos/circuits/bundle-circuit/bundle_exe_commit.rs b/crates/dogeos/circuits/bundle-circuit/bundle_exe_commit.rs new file mode 100644 index 00000000..f34d1d1b --- /dev/null +++ b/crates/dogeos/circuits/bundle-circuit/bundle_exe_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [1427402185, 1459064843, 317464538, 1274190978, 466682983, 1321271389, 1187009604, 1464042898]; diff --git a/crates/dogeos-circuits/bundle-circuit/bundle_vm_commit.rs b/crates/dogeos/circuits/bundle-circuit/bundle_vm_commit.rs similarity index 100% rename from crates/dogeos-circuits/bundle-circuit/bundle_vm_commit.rs rename to crates/dogeos/circuits/bundle-circuit/bundle_vm_commit.rs diff --git a/crates/dogeos-circuits/bundle-circuit/openvm.toml b/crates/dogeos/circuits/bundle-circuit/openvm.toml similarity index 100% rename from crates/dogeos-circuits/bundle-circuit/openvm.toml rename to crates/dogeos/circuits/bundle-circuit/openvm.toml diff --git a/crates/dogeos/circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs b/crates/dogeos/circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs new file mode 120000 index 00000000..40076d1f --- /dev/null +++ b/crates/dogeos/circuits/bundle-circuit/src/child_commitments/batch_exe_commit.rs @@ -0,0 +1 @@ +../../../../circuits/batch-circuit/batch_exe_commit.rs \ No newline at end of file diff --git a/crates/dogeos/circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs b/crates/dogeos/circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs new file mode 120000 index 00000000..9197500a --- /dev/null +++ b/crates/dogeos/circuits/bundle-circuit/src/child_commitments/batch_vm_commit.rs @@ -0,0 +1 @@ +../../../../circuits/batch-circuit/batch_vm_commit.rs \ No newline at end of file diff --git a/crates/dogeos-circuits/bundle-circuit/src/child_commitments/mod.rs b/crates/dogeos/circuits/bundle-circuit/src/child_commitments/mod.rs similarity index 100% rename from crates/dogeos-circuits/bundle-circuit/src/child_commitments/mod.rs rename to crates/dogeos/circuits/bundle-circuit/src/child_commitments/mod.rs diff --git a/crates/dogeos-circuits/bundle-circuit/src/circuit.rs b/crates/dogeos/circuits/bundle-circuit/src/circuit.rs similarity index 100% rename from crates/dogeos-circuits/bundle-circuit/src/circuit.rs rename to crates/dogeos/circuits/bundle-circuit/src/circuit.rs diff --git a/crates/dogeos-circuits/bundle-circuit/src/main.rs b/crates/dogeos/circuits/bundle-circuit/src/main.rs similarity index 100% rename from crates/dogeos-circuits/bundle-circuit/src/main.rs rename to crates/dogeos/circuits/bundle-circuit/src/main.rs diff --git a/crates/dogeos-circuits/chunk-circuit/.gitignore b/crates/dogeos/circuits/chunk-circuit/.gitignore similarity index 100% rename from crates/dogeos-circuits/chunk-circuit/.gitignore rename to crates/dogeos/circuits/chunk-circuit/.gitignore diff --git a/crates/dogeos-circuits/chunk-circuit/Cargo.toml b/crates/dogeos/circuits/chunk-circuit/Cargo.toml similarity index 100% rename from crates/dogeos-circuits/chunk-circuit/Cargo.toml rename to crates/dogeos/circuits/chunk-circuit/Cargo.toml diff --git a/crates/dogeos/circuits/chunk-circuit/chunk_exe_commit.rs b/crates/dogeos/circuits/chunk-circuit/chunk_exe_commit.rs new file mode 100644 index 00000000..c20c4ecc --- /dev/null +++ b/crates/dogeos/circuits/chunk-circuit/chunk_exe_commit.rs @@ -0,0 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] +//! Generated by crates/build-guest. DO NOT EDIT! + +pub const COMMIT: [u32; 8] = [1014022064, 465731548, 1523753209, 176670569, 1674631214, 1423438392, 1005554882, 394958993]; diff --git a/crates/dogeos-circuits/chunk-circuit/chunk_vm_commit.rs b/crates/dogeos/circuits/chunk-circuit/chunk_vm_commit.rs similarity index 100% rename from crates/dogeos-circuits/chunk-circuit/chunk_vm_commit.rs rename to crates/dogeos/circuits/chunk-circuit/chunk_vm_commit.rs diff --git a/crates/dogeos-circuits/chunk-circuit/openvm.toml b/crates/dogeos/circuits/chunk-circuit/openvm.toml similarity index 100% rename from crates/dogeos-circuits/chunk-circuit/openvm.toml rename to crates/dogeos/circuits/chunk-circuit/openvm.toml diff --git a/crates/dogeos-circuits/chunk-circuit/openvm_init.rs b/crates/dogeos/circuits/chunk-circuit/openvm_init.rs similarity index 100% rename from crates/dogeos-circuits/chunk-circuit/openvm_init.rs rename to crates/dogeos/circuits/chunk-circuit/openvm_init.rs diff --git a/crates/dogeos-circuits/chunk-circuit/src/circuit.rs b/crates/dogeos/circuits/chunk-circuit/src/circuit.rs similarity index 100% rename from crates/dogeos-circuits/chunk-circuit/src/circuit.rs rename to crates/dogeos/circuits/chunk-circuit/src/circuit.rs diff --git a/crates/dogeos-circuits/chunk-circuit/src/main.rs b/crates/dogeos/circuits/chunk-circuit/src/main.rs similarity index 100% rename from crates/dogeos-circuits/chunk-circuit/src/main.rs rename to crates/dogeos/circuits/chunk-circuit/src/main.rs diff --git a/crates/dogeos/integration/src/testers.rs b/crates/dogeos/integration/src/testers.rs new file mode 100644 index 00000000..73d6edfe --- /dev/null +++ b/crates/dogeos/integration/src/testers.rs @@ -0,0 +1,2 @@ +pub mod chunk; +pub mod batch; diff --git a/crates/dogeos/integration/src/testers/batch.rs b/crates/dogeos/integration/src/testers/batch.rs new file mode 100644 index 00000000..bcf52a14 --- /dev/null +++ b/crates/dogeos/integration/src/testers/batch.rs @@ -0,0 +1,73 @@ +use std::sync::Arc; +use bridge_adapters_zk::serde::SerdeWrapper; +use bridge_adapters_zk::{StepInputEnvelope}; +use bridge_core::{BuilderContext, BuilderStep}; +use bridge_protocol::{DaInclusionStmtV1, PipelineMetadata}; +use bridge_steps_da::{DaInclusionBuilder, DaInclusionVerifier, SyntheticBlobSource}; +use scroll_zkvm_integration::{ProverTester, PROGRAM_COMMITMENTS}; +use scroll_zkvm_integration::utils::build_batch_witnesses; +use scroll_zkvm_types::dogeos::batch::dogeos::{DogeOsBatchWitness, DogeOsBatchWitnessExtras}; +use scroll_zkvm_types::dogeos::chunk::execute; +use scroll_zkvm_types::public_inputs::dogeos::batch::DogeOsBatchInfo; +use scroll_zkvm_types::utils::serialize_vk; + +pub struct BatchProverTester; + +impl ProverTester for BatchProverTester { + type Metadata = DogeOsBatchInfo; + + type Witness = DogeOsBatchWitness; + + const NAME: &str = "batch"; + + const PATH_PROJECT_ROOT: &str = "crates/dogeos/circuits/batch-circuit"; + + const DIR_ASSETS: &str = "batch"; +} + +fn mock_inclusion_envelope() -> eyre::Result> { + let statement = DaInclusionStmtV1 { + metadata: PipelineMetadata { + pipeline: "da".into(), ..PipelineMetadata::default() }, + celestia_height: 100, + namespace: [0u8; 10], + share_version: 1, + commitment: [0u8; 32], + data_root: [0u8; 32], + expected_signer: None, + bridge_state_hash: [0u8; 32], + versioned_hash_witness: None, + }; + + let source = Arc::new(SyntheticBlobSource::new()); + let builder = DaInclusionBuilder::new(source); + let artifact = builder.build(&statement, &BuilderContext::default())?; + Ok(StepInputEnvelope { + statement, + artifact, + }) +} + +pub fn mock_batch_witness() -> eyre::Result { + let chunk_witness = super::chunk::mock_chunk_witness()?; + + let last_info = execute(chunk_witness.clone()).expect("execute chunk"); + // let chunks = vec![chunk_witness.clone()]; + + let commitment = PROGRAM_COMMITMENTS["chunk"]; + let inner = build_batch_witnesses( + &[chunk_witness.inner], + &serialize_vk::serialize(&commitment), + Default::default() + )?; + let extras = DogeOsBatchWitnessExtras { + chunk_info_extras: vec![last_info.extras], + verifier_context: SerdeWrapper(Default::default()), + inclusion: SerdeWrapper(mock_inclusion_envelope()?), + }; + + Ok(DogeOsBatchWitness { + inner, + extras, + }) +} diff --git a/crates/dogeos/integration/src/testers/chunk.rs b/crates/dogeos/integration/src/testers/chunk.rs new file mode 100644 index 00000000..45440e39 --- /dev/null +++ b/crates/dogeos/integration/src/testers/chunk.rs @@ -0,0 +1,80 @@ +use crate::DOGEOS_TESTDATA_ROOT; +use bridge_adapters_zk::serde::SerdeWrapper; +use bridge_core::VerifierContext; +use sbv_primitives::B256; +use scroll_zkvm_integration::testers::chunk::read_block_witness; +use scroll_zkvm_integration::{ProverTester, tester_execute}; +use scroll_zkvm_prover::utils::vm::ExecutionResult; +use scroll_zkvm_types::dogeos::chunk::{ + DogeOsChunkInfo, DogeOsChunkWitness, DogeOsChunkWitnessExtras, +}; +use scroll_zkvm_types::public_inputs::{ForkName, Version}; +use scroll_zkvm_types::scroll::chunk::ChunkWitness; +use std::fs::File; + +pub struct ChunkProverTester; + +impl ProverTester for ChunkProverTester { + type Metadata = DogeOsChunkInfo; + + type Witness = DogeOsChunkWitness; + + const NAME: &str = "chunk"; + + const PATH_PROJECT_ROOT: &str = "crates/dogeos/circuits/chunk-circuit"; + + const DIR_ASSETS: &str = "chunk"; +} + +pub fn mock_chunk_witness() -> eyre::Result { + let block_witness_path = DOGEOS_TESTDATA_ROOT + .join("mock") + .join("witnesses") + .join("1161273.json"); + let block_witness = read_block_witness(block_witness_path)?; + + let inner = ChunkWitness::new_scroll( + Version::feynman().as_version_byte(), + &[block_witness], + B256::ZERO, + ForkName::Feynman, + ); + + let header = serde_json::from_reader(File::open( + DOGEOS_TESTDATA_ROOT + .join("mock") + .join("header_step_input.json"), + )?)?; + let midstate = serde_json::from_reader(File::open( + DOGEOS_TESTDATA_ROOT + .join("mock") + .join("midstate_step_input.json"), + )?)?; + let extras = DogeOsChunkWitnessExtras { + verifier_context: SerdeWrapper(VerifierContext::default()), + header, + midstate, + }; + + Ok(DogeOsChunkWitness { inner, extras }) +} + +pub fn exec_chunk(wit: &DogeOsChunkWitness) -> eyre::Result<(ExecutionResult, u64)> { + let blk = wit.blocks[0].header.number; + println!( + "task block num: {}, block[0] idx: {}", + wit.inner.blocks.len(), + blk + ); + let stats = wit.stats(); + println!("chunk stats {:#?}", stats); + let exec_result = tester_execute::(wit, &[])?; + let cycle_count = exec_result.total_cycle; + let cycle_per_gas = cycle_count / stats.total_gas_used; + println!( + "blk {blk}->{}, cycle {cycle_count}, gas {}, cycle-per-gas {cycle_per_gas}", + wit.blocks.last().unwrap().header.number, + stats.total_gas_used, + ); + eyre::Ok((exec_result, stats.total_gas_used)) +} diff --git a/crates/dogeos/integration/tests/batch_circuit.rs b/crates/dogeos/integration/tests/batch_circuit.rs new file mode 100644 index 00000000..156dd726 --- /dev/null +++ b/crates/dogeos/integration/tests/batch_circuit.rs @@ -0,0 +1,22 @@ +use dogeos_zkvm_integration::testers::batch::{mock_batch_witness, BatchProverTester}; +use dogeos_zkvm_integration::testers::chunk::{mock_chunk_witness, ChunkProverTester}; +use scroll_zkvm_integration::{prove_verify, ProverTester}; + +#[test] +fn test_e2e_execute() -> eyre::Result<()> { + BatchProverTester::setup(true)?; + + let prover = BatchProverTester::load_prover(false)?; + let mut chunk_prover = ChunkProverTester::load_prover(false)?; + + + let chunk_proof = prove_verify::(&mut chunk_prover, &mock_chunk_witness()?, &[])?; + + let stdin = BatchProverTester::build_guest_input( + &mock_batch_witness()?, + [chunk_proof.as_stark_proof().unwrap()].into_iter(), + )?; + let _ = prover.execute_and_check_with_full_result(&stdin)?; + + Ok(()) +} diff --git a/crates/dogeos/integration/tests/chunk_circuit.rs b/crates/dogeos/integration/tests/chunk_circuit.rs new file mode 100644 index 00000000..a318d129 --- /dev/null +++ b/crates/dogeos/integration/tests/chunk_circuit.rs @@ -0,0 +1,12 @@ +use dogeos_zkvm_integration::testers::chunk::{ChunkProverTester, exec_chunk, mock_chunk_witness}; +use scroll_zkvm_integration::ProverTester; + +#[test] +fn test_execute() -> eyre::Result<()> { + ChunkProverTester::setup(true)?; + + let wit = mock_chunk_witness()?; + exec_chunk(&wit)?; + + Ok(()) +} diff --git a/crates/integration/src/testers/batch.rs b/crates/integration/src/testers/batch.rs index 3b5e0bc3..687b293d 100644 --- a/crates/integration/src/testers/batch.rs +++ b/crates/integration/src/testers/batch.rs @@ -7,7 +7,7 @@ use scroll_zkvm_types::{ }, utils::serialize_vk, }; - +use scroll_zkvm_types::dogeos::batch::dogeos::DogeOsBatchWitness; use crate::{ PROGRAM_COMMITMENTS, PartialProvingTask, ProverTester, TaskProver, prove_verify, testers::chunk::{ChunkTaskGenerator, preset_chunk_multiple, preset_chunk_validium}, @@ -36,6 +36,20 @@ impl PartialProvingTask for BatchWitness { } } +impl PartialProvingTask for DogeOsBatchWitness { + fn identifier(&self) -> String { + self.inner.identifier() + } + + fn legacy_rkyv_archive(&self) -> eyre::Result> { + unreachable!() + } + + fn fork_name(&self) -> ForkName { + self.inner.fork_name() + } +} + pub struct BatchProverTester; impl ProverTester for BatchProverTester { diff --git a/crates/integration/src/testers/chunk.rs b/crates/integration/src/testers/chunk.rs index e0e34170..5f330f28 100644 --- a/crates/integration/src/testers/chunk.rs +++ b/crates/integration/src/testers/chunk.rs @@ -8,6 +8,7 @@ use sbv_core::BlockWitness; use sbv_primitives::{B256, types::consensus::TxL1Message}; use scroll_zkvm_prover::utils::read_json; use scroll_zkvm_prover::utils::vm::ExecutionResult; +use scroll_zkvm_types::dogeos::chunk::DogeOsChunkWitness; use scroll_zkvm_types::{ proof::ProofEnum, public_inputs::{ForkName, Version}, @@ -94,6 +95,20 @@ impl PartialProvingTask for ChunkWitness { } } +impl PartialProvingTask for DogeOsChunkWitness { + fn identifier(&self) -> String { + self.inner.identifier() + } + + fn fork_name(&self) -> ForkName { + self.inner.fork_name + } + + fn legacy_rkyv_archive(&self) -> eyre::Result> { + unreachable!() + } +} + impl ProverTester for ChunkProverTester { type Metadata = ChunkInfo; diff --git a/crates/types/base/src/public_inputs/dogeos.rs b/crates/types/base/src/public_inputs/dogeos.rs index be5d054c..988b7407 100644 --- a/crates/types/base/src/public_inputs/dogeos.rs +++ b/crates/types/base/src/public_inputs/dogeos.rs @@ -1,3 +1,3 @@ -pub mod chunk; pub mod batch; pub mod bundle; +pub mod chunk; diff --git a/crates/types/base/src/public_inputs/dogeos/batch.rs b/crates/types/base/src/public_inputs/dogeos/batch.rs index ce9ce047..66f16063 100644 --- a/crates/types/base/src/public_inputs/dogeos/batch.rs +++ b/crates/types/base/src/public_inputs/dogeos/batch.rs @@ -1,4 +1,4 @@ -use crate::public_inputs::{scroll, MultiVersionPublicInputs}; +use crate::public_inputs::{MultiVersionPublicInputs, scroll}; use crate::version::Version; /// Represents public-input values for a batch. @@ -13,7 +13,7 @@ use crate::version::Version; )] #[rkyv(derive(Debug))] pub struct DogeOsBatchInfo { - pub inner: scroll::batch::BatchInfo + pub inner: scroll::batch::BatchInfo, } pub type VersionedDogeOsBatchInfo = (DogeOsBatchInfo, Version); diff --git a/crates/types/base/src/public_inputs/dogeos/bundle.rs b/crates/types/base/src/public_inputs/dogeos/bundle.rs index 137bd260..61669291 100644 --- a/crates/types/base/src/public_inputs/dogeos/bundle.rs +++ b/crates/types/base/src/public_inputs/dogeos/bundle.rs @@ -1,4 +1,4 @@ -use crate::public_inputs::{scroll, MultiVersionPublicInputs, Version}; +use crate::public_inputs::{MultiVersionPublicInputs, Version, scroll}; /// Represents fields required to compute the public-inputs digest of a bundle. #[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] diff --git a/crates/types/base/src/public_inputs/dogeos/chunk.rs b/crates/types/base/src/public_inputs/dogeos/chunk.rs index dbbd4736..9e7ac2d1 100644 --- a/crates/types/base/src/public_inputs/dogeos/chunk.rs +++ b/crates/types/base/src/public_inputs/dogeos/chunk.rs @@ -1,5 +1,6 @@ -use crate::public_inputs::{scroll, Version}; use crate::public_inputs::MultiVersionPublicInputs; +use crate::public_inputs::{Version, scroll}; +use alloy_primitives::B256; /// Represents header-like information for the chunk. #[derive(Debug, Clone, serde::Deserialize, serde::Serialize)] @@ -14,15 +15,13 @@ pub struct DogeOsChunkInfo { #[derive(Debug, Clone, serde::Deserialize, serde::Serialize)] pub struct DogeOsChunkInfoExtras { /// The starting dogecoin blockhash of the chunk. - pub start_blockhash: [u8; 32], + pub start_blockhash: B256, /// The ending dogecoin blockhash of the chunk. - pub end_blockhash: [u8; 32], + pub end_blockhash: B256, } impl From<(scroll::chunk::ChunkInfo, DogeOsChunkInfoExtras)> for DogeOsChunkInfo { - fn from( - value: (scroll::chunk::ChunkInfo, DogeOsChunkInfoExtras), - ) -> Self { + fn from(value: (scroll::chunk::ChunkInfo, DogeOsChunkInfoExtras)) -> Self { DogeOsChunkInfo { inner: value.0, extras: value.1, @@ -36,8 +35,8 @@ impl MultiVersionPublicInputs for DogeOsChunkInfo { fn pi_by_version(&self, version: Version) -> Vec { let mut scroll_chunk_pi = self.inner.pi_by_version(version); - scroll_chunk_pi.extend_from_slice(&self.extras.start_blockhash); - scroll_chunk_pi.extend_from_slice(&self.extras.end_blockhash); + scroll_chunk_pi.extend_from_slice(self.extras.start_blockhash.as_slice()); + scroll_chunk_pi.extend_from_slice(self.extras.end_blockhash.as_slice()); scroll_chunk_pi } diff --git a/crates/types/batch/src/blob_consistency/openvm.rs b/crates/types/batch/src/blob_consistency/openvm.rs index e5d44356..8cde912a 100644 --- a/crates/types/batch/src/blob_consistency/openvm.rs +++ b/crates/types/batch/src/blob_consistency/openvm.rs @@ -63,9 +63,9 @@ pub fn verify_kzg_proof(z: Scalar, y: Scalar, commitment: G1Affine, proof: G1Aff .expect("kzg proof not G1 identity"); let p_minus_y = G1Affine::from_xy_nonidentity(commitment.x().clone(), commitment.y().clone()) .expect("kzg commitment not G1 identity") - - msm(&[y], std::slice::from_ref(&G1Affine::GENERATOR)); + - msm::(&[y], std::slice::from_ref(&G1Affine::GENERATOR)); let g2_generator: &G2Affine = &G2_GENERATOR; - let x_minus_z = msm(&[z], std::slice::from_ref(g2_generator)) - KZG_G2_SETUP.clone(); + let x_minus_z = msm::(&[z], std::slice::from_ref(g2_generator)) - KZG_G2_SETUP.clone(); let p0_proof = AffinePoint::new(proof_q.x().clone(), proof_q.y().clone()); let q0 = AffinePoint::new(p_minus_y.x().clone(), p_minus_y.y().clone()); diff --git a/crates/types/batch/src/dogeos/witness.rs b/crates/types/batch/src/dogeos/witness.rs index f423ea1f..65b9e86c 100644 --- a/crates/types/batch/src/dogeos/witness.rs +++ b/crates/types/batch/src/dogeos/witness.rs @@ -1,11 +1,11 @@ use bridge_adapters_zk::serde::SerdeWrapper; use bridge_adapters_zk::{StepInputEnvelope, ZkVerifierExt}; use bridge_core::VerifierContext; +use bridge_steps_da::DaInclusionVerifier; use types_base::aggregation::{AggregationInput, ProofCarryingWitness}; use types_base::public_inputs::dogeos::batch::DogeOsBatchInfo; use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfoExtras; use types_base::public_inputs::scroll; -use bridge_steps_da::DaInclusionVerifier; /// Witness to the batch circuit. #[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] @@ -36,22 +36,16 @@ impl From<&DogeOsBatchWitness> for DogeOsBatchInfo { let scroll_batch_info = scroll::batch::BatchInfo::from(&witness.inner); verify_da_inclusion(witness, &scroll_batch_info); - DogeOsBatchInfo { inner: scroll_batch_info, } } } - -fn verify_da_inclusion( - witness: &DogeOsBatchWitness, - scroll_batch_info: &scroll::batch::BatchInfo, -) { - DaInclusionVerifier.verify_envelope( - &witness.extras.inclusion, - &witness.extras.verifier_context, - ).expect("failed to verify inclusion proof"); +fn verify_da_inclusion(witness: &DogeOsBatchWitness, scroll_batch_info: &scroll::batch::BatchInfo) { + DaInclusionVerifier + .verify_envelope(&witness.extras.inclusion, &witness.extras.verifier_context) + .expect("failed to verify inclusion proof"); let da_header = &witness.extras.inclusion.artifact.v2_header; @@ -59,15 +53,27 @@ fn verify_da_inclusion( // | Field | Type / Size | Meaning | Source / Notes | // |-------|-------------|---------|----------------| // | `prev_state_root` | bytes (32) | L2 state root before batch | DogeOS RPC | - assert_eq!(da_header.prev_state_root, scroll_batch_info.parent_state_root); + assert_eq!( + da_header.prev_state_root, + scroll_batch_info.parent_state_root + ); // | `state_root` | bytes (32) | L2 state root after batch | DogeOS RPC | assert_eq!(da_header.state_root, scroll_batch_info.state_root); // | `prev_batch_hash` | bytes (32) | Hash of previous batch | From `commitBatches` inputs | - assert_eq!(da_header.prev_batch_hash, scroll_batch_info.parent_batch_hash); + assert_eq!( + da_header.prev_batch_hash, + scroll_batch_info.parent_batch_hash + ); // | `batch_hash` | bytes (32) | Hash of current batch | `calculate_batch_hash` (codec version, batch index, blob commitment, prev batch hash) | assert_eq!(da_header.batch_hash, scroll_batch_info.batch_hash); // | `prev_l1_message_queue_hash` | bytes (32) | Pre-batch queue hash | Scroll codec `prev_l1_message_queue_hash` | - assert_eq!(da_header.prev_l1_message_queue_hash, scroll_batch_info.prev_msg_queue_hash); + assert_eq!( + da_header.prev_l1_message_queue_hash, + scroll_batch_info.prev_msg_queue_hash + ); // | `l1_message_queue_hash` | bytes (32) | Post-batch L1 message queue hash | Scroll codec `post_l1_message_queue_hash` | - assert_eq!(da_header.l1_message_queue_hash, scroll_batch_info.post_msg_queue_hash); + assert_eq!( + da_header.l1_message_queue_hash, + scroll_batch_info.post_msg_queue_hash + ); } diff --git a/crates/types/bundle/src/dogeos.rs b/crates/types/bundle/src/dogeos.rs index 72813274..3c9aa3fa 100644 --- a/crates/types/bundle/src/dogeos.rs +++ b/crates/types/bundle/src/dogeos.rs @@ -6,7 +6,7 @@ use types_batch::dogeos::DogeOsBatchWitnessExtras; #[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct DogeOsBundleWitness { pub inner: crate::BundleWitness, - pub batch_info_extras: Vec + pub batch_info_extras: Vec, } impl From<(crate::BundleWitness, Vec)> for DogeOsBundleWitness { @@ -26,7 +26,8 @@ impl ProofCarryingWitness for DogeOsBundleWitness { impl From<&DogeOsBundleWitness> for DogeOsBundleInfo { fn from(witness: &DogeOsBundleWitness) -> Self { - let scroll_bundle_info = types_base::public_inputs::scroll::bundle::BundleInfo::from(&witness.inner); + let scroll_bundle_info = + types_base::public_inputs::scroll::bundle::BundleInfo::from(&witness.inner); DogeOsBundleInfo { inner: scroll_bundle_info, } diff --git a/crates/types/chunk/src/dogeos.rs b/crates/types/chunk/src/dogeos.rs index efacb5d1..d3473299 100644 --- a/crates/types/chunk/src/dogeos.rs +++ b/crates/types/chunk/src/dogeos.rs @@ -4,4 +4,4 @@ mod execute; pub use execute::execute; mod witness; -pub use witness::DogeOsChunkWitness; +pub use witness::{DogeOsChunkWitness, DogeOsChunkWitnessExtras}; diff --git a/crates/types/chunk/src/dogeos/execute.rs b/crates/types/chunk/src/dogeos/execute.rs index 4e68227f..c5035c66 100644 --- a/crates/types/chunk/src/dogeos/execute.rs +++ b/crates/types/chunk/src/dogeos/execute.rs @@ -1,17 +1,20 @@ +use super::witness::DogeOsChunkWitness; +use crate::dogeos::DogeOsChunkWitnessExtras; +use crate::dogeos::types::{MOAT_CONTRACT_ADDRESS, handleL1MessageCall}; +use crate::scroll::relayMessageCall; use alloy_primitives::U256; use alloy_sol_types::SolCall; -use bridge_adapters_zk::{StepInputEnvelope, ZkVerifierExt}; +use bridge_adapters_zk::ZkVerifierExt; use bridge_steps_deposit::{HeaderVerifier, MidstateVerifier}; use itertools::Itertools; use sbv_primitives::types::consensus::TxL1Message; use types_base::public_inputs::dogeos::chunk::{DogeOsChunkInfo, DogeOsChunkInfoExtras}; -use crate::dogeos::types::{handleL1MessageCall, MOAT_CONTRACT_ADDRESS}; -use crate::scroll::relayMessageCall; -use super::witness::DogeOsChunkWitness; -pub fn execute(witness: DogeOsChunkWitness) -> Result { +pub fn execute(witness: DogeOsChunkWitness) -> Result { let l1_messages = witness - .inner.blocks.iter() + .inner + .blocks + .iter() .flat_map(|block| block.transactions.iter()) .filter_map(|tx| tx.as_l1_message()) .map(|tx| tx.inner().clone()) @@ -19,50 +22,55 @@ pub fn execute(witness: DogeOsChunkWitness) -> Result let chunk_info = crate::scroll::execute(witness.inner)?; - verify_deposits( - &witness.verifier_context, - &witness.header, - &witness.midstate, - &l1_messages - )?; + verify_deposits(&witness.extras, &l1_messages)?; let start_blockhash = witness + .extras .header .statement .start_blockhash .expect("start_blockhash must be present in header statement"); let end_blockhash = witness + .extras .header .statement .end_blockhash .expect("end_blockhash must be present in header statement"); + + let info_extras = DogeOsChunkInfoExtras { + start_blockhash: start_blockhash.into(), + end_blockhash: end_blockhash.into(), + }; + println!("info_extras = {:?}", info_extras); + Ok(DogeOsChunkInfo { inner: chunk_info, - extras: DogeOsChunkInfoExtras { - start_blockhash, - end_blockhash, - }, + extras: info_extras, }) } - fn verify_deposits( - verifier_context: &bridge_core::VerifierContext, - header_envelope: &StepInputEnvelope, - midstate_envelope: &StepInputEnvelope, + extras: &DogeOsChunkWitnessExtras, l1_messages: &[TxL1Message], ) -> Result<(), String> { - HeaderVerifier.verify_envelope(&header_envelope, &verifier_context) + HeaderVerifier + .verify_envelope(&extras.header, &extras.verifier_context) .map_err(|e| format!("dogeos deposit header verification failed: {e}"))?; - assert_eq!(header_envelope.statement, midstate_envelope.statement.header_range); - MidstateVerifier.verify_envelope(&midstate_envelope, &verifier_context) + assert_eq!( + &extras.header.statement, + &extras.midstate.statement.header_range + ); + MidstateVerifier + .verify_envelope(&extras.midstate, &extras.verifier_context) .map_err(|e| format!("dogeos deposit midstate verification failed: {e}"))?; - for (deposit, l1_message) in midstate_envelope + for (deposit, l1_message) in extras + .midstate .statement .expected_deposits .iter() - .zip_eq(l1_messages) { + .zip_eq(l1_messages) + { let relay_call: relayMessageCall = relayMessageCall::abi_decode(l1_message.input.as_ref()) .map_err(|e| format!("dogeos relay call decode failed: {e}"))?; // -- l1 message checks -- @@ -84,26 +92,42 @@ fn verify_deposits( // ref: // - https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L490 // - https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L102 - assert_eq!(relay_call.sender, deposit.txid[..20], "dogeos synthetic relay call sender mismatch"); + assert_eq!( + relay_call.sender, + deposit.txid[..20], + "dogeos synthetic relay call sender mismatch" + ); // ref: https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L103 - assert_eq!(relay_call.target, MOAT_CONTRACT_ADDRESS, "dogeos relay call target mismatch"); + assert_eq!( + relay_call.target, MOAT_CONTRACT_ADDRESS, + "dogeos relay call target mismatch" + ); // ref: https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L503 - let amount = U256::from(bridge_transforms::convert_doge_to_eth_units(deposit.amount_sats)); + let amount = U256::from(bridge_transforms::convert_doge_to_eth_units( + deposit.amount_sats, + )); // ref: https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L104 - assert_eq!(relay_call.value, amount, "dogeos relay call amount mismatch"); + assert_eq!( + relay_call.value, amount, + "dogeos relay call amount mismatch" + ); // nonce/queueIndex check is skipped, as it's guaranteed by rolling hash - let moat_call: handleL1MessageCall = handleL1MessageCall::abi_decode(relay_call.message.as_ref()) - .map_err(|e| format!("dogeos moat call decode failed: {e}"))?; + let moat_call: handleL1MessageCall = + handleL1MessageCall::abi_decode(relay_call.message.as_ref()) + .map_err(|e| format!("dogeos moat call decode failed: {e}"))?; // -- moat call checks -- // ref: // - https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L500 // - https://github.com/DogeOS69/dogeos-core/blob/d0f71b8596f116d7fef5859c5a44eb385bf55499/crates/l1_interface/src/deposit/calldata_builder.rs#L96 - assert_eq!(moat_call.target, deposit.evm_recipient, "dogeos deposit recipient mismatch"); + assert_eq!( + moat_call.target, deposit.evm_recipient, + "dogeos deposit recipient mismatch" + ); // ref: // - https://github.com/DogeOS69/dogeos-core/blob/73ff17223d3bdb473b164bd87798207b5df7275e/crates/l1_interface/src/state/log_generator.rs#L514-L518 @@ -112,5 +136,4 @@ fn verify_deposits( } Ok(()) - } diff --git a/crates/types/chunk/src/dogeos/types.rs b/crates/types/chunk/src/dogeos/types.rs index cc8bc6d8..b0da142c 100644 --- a/crates/types/chunk/src/dogeos/types.rs +++ b/crates/types/chunk/src/dogeos/types.rs @@ -1,4 +1,4 @@ -use alloy_primitives::{address, Address}; +use alloy_primitives::{Address, address}; use alloy_sol_types::sol; sol! { @@ -17,9 +17,9 @@ pub const MOAT_CONTRACT_ADDRESS: Address = address!("0xccccccccccccccccccccccccc #[cfg(test)] mod tests { use super::*; - use alloy_primitives::{B256, U256}; - use crate::dogeos::types::{handleL1MessageCall}; + use crate::dogeos::types::handleL1MessageCall; use crate::scroll::relayMessageCall; + use alloy_primitives::{B256, U256}; fn create_queue_transaction_calldata( sender: Address, @@ -30,20 +30,22 @@ mod tests { ) -> Vec { // Step 1: Create Moat.handleL1Message calldata (innermost call) // This is what will ultimately be executed when relayMessage calls the Moat contract - let moat_call = handleL1MessageCall { target: to, depositID: deposit_id }; + let moat_call = handleL1MessageCall { + target: to, + depositID: deposit_id, + }; let moat_calldata = moat_call.abi_encode(); // Step 2: Create L2ScrollMessenger.relayMessage calldata (what gets queued) // This is the call that L1MessageQueue stores and L2ScrollMessenger will execute let relay_call = relayMessageCall { - sender, // Original L1 sender - target: MOAT_CONTRACT_ADDRESS, // Moat contract (intermediate target) - value, // ETH value to transfer - messageNonce: U256::from(nonce), // Queue index as nonce - message: moat_calldata.into(), // Nested Moat.handleL1Message call + sender, // Original L1 sender + target: MOAT_CONTRACT_ADDRESS, // Moat contract (intermediate target) + value, // ETH value to transfer + messageNonce: U256::from(nonce), // Queue index as nonce + message: moat_calldata.into(), // Nested Moat.handleL1Message call }; relay_call.abi_encode() } - } diff --git a/crates/types/chunk/src/dogeos/witness.rs b/crates/types/chunk/src/dogeos/witness.rs index 796580db..b79a82b0 100644 --- a/crates/types/chunk/src/dogeos/witness.rs +++ b/crates/types/chunk/src/dogeos/witness.rs @@ -1,16 +1,23 @@ -use bridge_adapters_zk::serde::SerdeWrapper; +use crate::scroll; use bridge_adapters_zk::StepInputEnvelope; +use bridge_adapters_zk::serde::SerdeWrapper; use bridge_core::VerifierContext; use bridge_steps_deposit::{HeaderVerifier, MidstateVerifier}; +use std::ops::Deref; use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfo; -use crate::scroll; /// The witness type accepted by the chunk-circuit. #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] pub struct DogeOsChunkWitness { /// Scroll ChunkWitness pub inner: scroll::ChunkWitness, - // Other DogeOs-specific fields can be added here + /// Other DogeOs-specific fields can be added here + pub extras: DogeOsChunkWitnessExtras, +} + +/// Other DogeOs-specific fields can be added here +#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] +pub struct DogeOsChunkWitnessExtras { pub verifier_context: SerdeWrapper, pub header: SerdeWrapper>, pub midstate: SerdeWrapper>, @@ -23,3 +30,11 @@ impl TryFrom for DogeOsChunkInfo { super::execute(value) } } + +impl Deref for DogeOsChunkWitness { + type Target = scroll::ChunkWitness; + + fn deref(&self) -> &Self::Target { + &self.inner + } +} diff --git a/crates/types/chunk/src/scroll.rs b/crates/types/chunk/src/scroll.rs index 443691e5..b6f6b099 100644 --- a/crates/types/chunk/src/scroll.rs +++ b/crates/types/chunk/src/scroll.rs @@ -1,5 +1,8 @@ mod types; -pub use types::{validium::SecretKey, relayMessageCall, finalizeDepositERC20Call, finalizeDepositERC20EncryptedCall}; +pub use types::{ + finalizeDepositERC20Call, finalizeDepositERC20EncryptedCall, relayMessageCall, + validium::SecretKey, +}; mod execute; pub use execute::execute; diff --git a/crates/types/src/lib.rs b/crates/types/src/lib.rs index 551a9e8b..b5f3f417 100644 --- a/crates/types/src/lib.rs +++ b/crates/types/src/lib.rs @@ -31,7 +31,7 @@ pub mod dogeos { } pub mod chunk { - pub use types_base::public_inputs::dogeos::chunk::{DogeOsChunkInfo}; + pub use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfo; pub use types_chunk::dogeos::*; } } From d2580a4e811d17ea802ae4397feb895cb5e76821 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 15:45:53 +0800 Subject: [PATCH 16/26] add files --- Cargo.toml | 1 - crates/dogeos/integration/Cargo.toml | 23 +++++ .../testdata/mock/header_step_input.json | 1 + .../testdata/mock/midstate_step_input.json | 1 + .../testdata/mock/witnesses/1161273.json | 85 +++++++++++++++++++ crates/types/batch/Cargo.toml | 1 - 6 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 crates/dogeos/integration/Cargo.toml create mode 100644 crates/dogeos/integration/testdata/mock/header_step_input.json create mode 100644 crates/dogeos/integration/testdata/mock/midstate_step_input.json create mode 100644 crates/dogeos/integration/testdata/mock/witnesses/1161273.json diff --git a/Cargo.toml b/Cargo.toml index e5f6f6e5..874f5e96 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -158,7 +158,6 @@ bridge_adapters_zk = { path = "../dogeos-core/crates/bridge_adapters_zk", defaul bridge_steps_da = { path = "../dogeos-core/crates/bridge_steps_da", default-features = false } bridge_steps_deposit = { path = "../dogeos-core/crates/bridge_steps_deposit", default-features = false } bridge_transforms = { path = "../dogeos-core/crates/bridge_transforms", default-features = false } -openvm-blobstream = { path = "../blobstream" } [patch.crates-io] revm = { git = "https://github.com/scroll-tech/revm", tag = "scroll-v91" } diff --git a/crates/dogeos/integration/Cargo.toml b/crates/dogeos/integration/Cargo.toml new file mode 100644 index 00000000..b2a9e6bc --- /dev/null +++ b/crates/dogeos/integration/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "dogeos-zkvm-integration" +authors.workspace = true +edition.workspace = true +homepage.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true + +[dependencies] +scroll-zkvm-types.workspace = true +scroll-zkvm-prover.workspace = true +scroll-zkvm-integration = { workspace = true, default-features = false, features = ["scroll"] } + +sbv-primitives = { workspace = true } + +eyre.workspace = true +serde_json.workspace = true + +bridge_core = { workspace = true } +bridge_protocol = { workspace = true } +bridge_adapters_zk = { workspace = true, features = ["verifier", "builder"] } +bridge_steps_da = { workspace = true, features = ["verifier", "builder"] } diff --git a/crates/dogeos/integration/testdata/mock/header_step_input.json b/crates/dogeos/integration/testdata/mock/header_step_input.json new file mode 100644 index 00000000..553393c2 --- /dev/null +++ b/crates/dogeos/integration/testdata/mock/header_step_input.json @@ -0,0 +1 @@ +[0,7,100,101,112,111,115,105,116,2,118,49,252,167,250,213,0,252,170,250,213,0,1,240,42,248,140,51,27,213,214,135,195,244,155,103,90,28,65,164,153,150,48,217,51,240,247,97,56,184,206,199,8,103,86,1,146,144,63,213,20,167,121,214,114,148,194,223,121,205,48,92,167,160,31,127,58,63,218,78,94,77,101,67,26,95,30,136,0,7,100,101,112,111,115,105,116,2,118,49,252,167,250,213,0,252,170,250,213,0,3,252,167,250,213,0,240,42,248,140,51,27,213,214,135,195,244,155,103,90,28,65,164,153,150,48,217,51,240,247,97,56,184,206,199,8,103,86,252,8,2,196,0,183,217,233,84,152,112,213,144,126,65,84,26,16,43,190,229,225,127,39,233,188,44,27,114,244,59,99,79,203,208,221,201,184,209,47,76,73,186,72,36,77,94,2,167,143,144,157,211,169,147,105,86,179,122,95,119,50,161,43,248,90,128,164,169,252,65,226,231,104,252,162,248,5,30,0,12,181,68,20,164,134,236,16,169,28,102,221,49,78,254,27,4,182,235,43,24,83,242,183,184,143,80,87,224,85,127,72,86,101,20,15,109,187,169,106,5,12,14,53,228,29,11,0,162,135,105,180,146,145,18,108,123,182,94,32,100,130,30,8,94,227,239,49,71,204,129,249,130,126,193,151,24,60,249,196,98,203,115,64,184,118,171,76,10,252,251,144,21,70,3,86,117,46,73,50,80,167,32,189,207,34,136,110,119,239,40,15,221,142,20,189,45,33,155,113,31,98,158,43,21,72,218,2,69,60,66,177,56,59,25,190,25,245,22,7,125,181,84,150,222,157,33,226,126,106,97,50,91,195,7,0,60,162,131,208,173,183,122,228,80,90,123,125,162,181,87,2,8,199,216,116,129,58,79,102,245,6,59,229,142,191,123,205,120,19,186,2,241,6,86,76,153,129,50,230,117,215,110,160,88,138,249,153,172,82,144,106,86,37,127,203,149,123,85,241,6,140,155,220,103,80,142,229,128,159,99,48,200,107,203,149,179,3,169,65,170,234,56,235,173,107,234,108,106,16,127,27,208,10,168,102,199,120,202,218,142,31,103,58,53,66,248,50,230,18,178,58,57,161,252,164,113,78,117,204,25,136,68,76,159,7,217,181,126,140,77,36,251,12,199,214,252,11,170,253,5,13,116,192,215,57,73,204,215,118,110,126,57,186,48,81,117,123,192,179,207,174,139,153,80,138,252,127,111,115,236,193,4,49,40,211,175,145,89,110,83,154,250,95,213,75,107,136,21,107,249,228,211,202,153,58,38,34,142,172,188,4,63,182,188,82,109,211,101,132,230,147,163,253,185,175,74,249,39,85,252,31,38,103,1,252,168,250,213,0,63,86,175,100,132,20,210,86,140,253,212,232,224,152,236,117,102,154,255,83,61,57,204,147,216,113,13,222,44,206,150,41,252,8,2,196,0,240,42,248,140,51,27,213,214,135,195,244,155,103,90,28,65,164,153,150,48,217,51,240,247,97,56,184,206,199,8,103,86,238,193,34,19,48,122,74,35,156,14,194,147,243,169,252,248,70,82,224,17,164,230,104,221,57,66,193,158,88,48,251,168,252,75,226,231,104,252,197,95,5,30,0,1,238,193,34,19,48,122,74,35,156,14,194,147,243,169,252,248,70,82,224,17,164,230,104,221,57,66,193,158,88,48,251,168,252,169,250,213,0,146,144,63,213,20,167,121,214,114,148,194,223,121,205,48,92,167,160,31,127,58,63,218,78,94,77,101,67,26,95,30,136,252,8,2,196,0,63,86,175,100,132,20,210,86,140,253,212,232,224,152,236,117,102,154,255,83,61,57,204,147,216,113,13,222,44,206,150,41,63,120,28,235,19,228,106,98,7,174,84,105,219,209,11,116,63,67,221,216,24,253,248,21,215,65,146,177,248,60,6,10,252,80,226,231,104,252,49,214,4,30,0,1,63,120,28,235,19,228,106,98,7,174,84,105,219,209,11,116,63,67,221,216,24,253,248,21,215,65,146,177,248,60,6,10] \ No newline at end of file diff --git a/crates/dogeos/integration/testdata/mock/midstate_step_input.json b/crates/dogeos/integration/testdata/mock/midstate_step_input.json new file mode 100644 index 00000000..94f239be --- /dev/null +++ b/crates/dogeos/integration/testdata/mock/midstate_step_input.json @@ -0,0 +1 @@ +[0,7,100,101,112,111,115,105,116,2,118,49,0,7,100,101,112,111,115,105,116,2,118,49,252,167,250,213,0,252,170,250,213,0,1,240,42,248,140,51,27,213,214,135,195,244,155,103,90,28,65,164,153,150,48,217,51,240,247,97,56,184,206,199,8,103,86,1,146,144,63,213,20,167,121,214,114,148,194,223,121,205,48,92,167,160,31,127,58,63,218,78,94,77,101,67,26,95,30,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,100,101,112,111,115,105,116,2,118,49,3,240,42,248,140,51,27,213,214,135,195,244,155,103,90,28,65,164,153,150,48,217,51,240,247,97,56,184,206,199,8,103,86,184,209,47,76,73,186,72,36,77,94,2,167,143,144,157,211,169,147,105,86,179,122,95,119,50,161,43,248,90,128,164,169,12,12,0,106,9,230,103,187,103,174,133,60,110,243,114,165,79,245,58,81,14,82,127,155,5,104,140,31,131,217,171,91,224,205,25,0,53,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,7,4,167,250,213,0,1,1,255,255,255,255,39,1,32,214,14,213,232,0,0,0,25,118,169,20,14,5,164,202,113,210,103,156,106,192,246,147,171,213,52,219,52,183,170,120,136,172,0,0,0,0,1,181,68,20,164,134,236,16,169,28,102,221,49,78,254,27,4,182,235,43,24,83,242,183,184,143,80,87,224,85,127,72,86,1,212,75,153,242,77,151,63,223,199,193,154,242,242,56,219,18,213,15,217,123,107,169,64,255,149,77,7,104,8,46,43,78,128,25,118,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,251,241,2,22,8,236,129,2,0,0,0,0,25,118,169,20,99,90,137,155,108,74,169,37,126,216,240,10,65,250,18,180,8,126,63,183,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,225,245,5,0,0,0,0,25,118,169,20,4,15,164,116,243,7,229,249,100,187,14,87,104,107,129,114,23,157,41,63,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,53,213,29,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,216,117,127,235,0,0,0,0,25,118,169,20,185,180,207,55,10,190,1,12,116,95,166,14,177,196,248,90,202,81,1,144,136,172,0,0,0,0,1,101,20,15,109,187,169,106,5,12,14,53,228,29,11,0,162,135,105,180,146,145,18,108,123,182,94,32,100,130,30,8,94,2,64,232,148,83,228,174,118,174,229,80,234,5,18,236,131,62,212,28,152,29,95,17,192,65,65,238,195,106,53,67,160,186,128,24,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,227,239,49,71,204,129,249,130,126,193,151,24,60,249,196,98,203,115,64,184,118,171,76,10,252,251,144,21,70,3,86,117,3,81,70,32,253,174,95,226,177,141,188,90,200,34,103,69,248,175,207,253,172,54,234,165,244,202,201,213,58,71,118,103,239,128,24,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,46,73,50,80,167,32,189,207,34,136,110,119,239,40,15,221,142,20,189,45,33,155,113,31,98,158,43,21,72,218,2,69,4,251,104,92,239,12,27,27,232,160,175,110,84,0,166,106,41,83,169,198,140,189,86,104,114,192,230,88,95,189,213,235,76,128,24,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,60,66,177,56,59,25,190,25,245,22,7,125,181,84,150,222,157,33,226,126,106,97,50,91,195,7,0,60,162,131,208,173,5,118,98,1,187,153,164,22,115,248,77,245,103,125,19,90,226,138,107,42,163,87,8,53,28,113,216,25,116,96,105,223,127,128,24,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,183,122,228,80,90,123,125,162,181,87,2,8,199,216,116,129,58,79,102,245,6,59,229,142,191,123,205,120,19,186,2,241,6,117,64,22,182,200,188,83,32,174,149,109,61,203,139,71,188,248,134,144,149,6,73,44,46,118,129,16,255,118,151,25,156,128,25,118,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,6,86,76,153,129,50,230,117,215,110,160,88,138,249,153,172,82,144,106,86,37,127,203,149,123,85,241,6,140,155,220,103,7,94,67,106,212,147,181,132,249,68,115,120,61,248,75,163,195,244,202,210,36,30,228,90,131,17,149,97,249,0,99,98,9,128,25,118,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,80,142,229,128,159,99,48,200,107,203,149,179,3,169,65,170,234,56,235,173,107,234,108,106,16,127,27,208,10,168,102,199,8,38,218,183,136,113,74,66,227,30,63,174,104,53,235,12,132,33,125,97,219,238,209,17,221,133,204,30,133,172,125,133,61,128,25,118,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,120,202,218,142,31,103,58,53,66,248,50,230,18,178,58,57,161,252,164,113,78,117,204,25,136,68,76,159,7,217,181,126,9,200,19,215,76,101,33,237,244,37,156,253,13,0,246,14,190,131,233,213,245,217,217,241,228,211,162,91,4,160,114,178,8,128,25,118,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,140,77,36,251,12,199,214,252,11,170,253,5,13,116,192,215,57,73,204,215,118,110,126,57,186,48,81,117,123,192,179,207,10,252,143,223,42,59,4,118,169,202,196,238,56,199,3,167,146,39,47,56,189,181,179,88,9,114,163,43,105,99,254,16,254,128,25,118,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,174,139,153,80,138,252,127,111,115,236,193,4,49,40,211,175,145,89,110,83,154,250,95,213,75,107,136,21,107,249,228,211,11,149,8,79,55,134,147,30,11,190,76,0,186,217,184,168,203,246,21,149,28,104,150,215,222,88,118,49,159,19,97,26,229,128,25,118,161,141,193,41,93,213,36,152,114,225,142,207,94,201,255,217,25,21,77,96,255,255,255,255,69,2,0,101,205,29,0,0,0,0,23,169,20,173,92,38,113,204,12,53,134,6,33,58,149,63,13,86,223,185,162,121,132,135,0,0,0,0,0,0,0,0,23,106,21,0,189,109,83,186,217,101,131,110,25,86,93,123,88,215,142,143,135,216,8,88,0,0,0,0,1,202,153,58,38,34,142,172,188,4,63,182,188,82,109,211,101,132,230,147,163,253,185,175,74,249,39,85,252,31,38,103,1,63,86,175,100,132,20,210,86,140,253,212,232,224,152,236,117,102,154,255,83,61,57,204,147,216,113,13,222,44,206,150,41,238,193,34,19,48,122,74,35,156,14,194,147,243,169,252,248,70,82,224,17,164,230,104,221,57,66,193,158,88,48,251,168,1,1,0,106,9,230,103,187,103,174,133,60,110,243,114,165,79,245,58,81,14,82,127,155,5,104,140,31,131,217,171,91,224,205,25,0,53,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,7,4,168,250,213,0,1,1,255,255,255,255,39,1,0,16,165,212,232,0,0,0,25,118,169,20,14,5,164,202,113,210,103,156,106,192,246,147,171,213,52,219,52,183,170,120,136,172,0,0,0,0,1,238,193,34,19,48,122,74,35,156,14,194,147,243,169,252,248,70,82,224,17,164,230,104,221,57,66,193,158,88,48,251,168,146,144,63,213,20,167,121,214,114,148,194,223,121,205,48,92,167,160,31,127,58,63,218,78,94,77,101,67,26,95,30,136,63,120,28,235,19,228,106,98,7,174,84,105,219,209,11,116,63,67,221,216,24,253,248,21,215,65,146,177,248,60,6,10,1,1,0,106,9,230,103,187,103,174,133,60,110,243,114,165,79,245,58,81,14,82,127,155,5,104,140,31,131,217,171,91,224,205,25,0,53,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,7,4,169,250,213,0,1,1,255,255,255,255,39,1,0,16,165,212,232,0,0,0,25,118,169,20,14,5,164,202,113,210,103,156,106,192,246,147,171,213,52,219,52,183,170,120,136,172,0,0,0,0,1,63,120,28,235,19,228,106,98,7,174,84,105,219,209,11,116,63,67,221,216,24,253,248,21,215,65,146,177,248,60,6,10,0] \ No newline at end of file diff --git a/crates/dogeos/integration/testdata/mock/witnesses/1161273.json b/crates/dogeos/integration/testdata/mock/witnesses/1161273.json new file mode 100644 index 00000000..eab23f71 --- /dev/null +++ b/crates/dogeos/integration/testdata/mock/witnesses/1161273.json @@ -0,0 +1,85 @@ +{ + "chain_id": 6281971, + "header": { + "parent_hash": "0xca5758cd5ea7a1d709058f81b115eb87e621de0255f44189993aca8a4bf50fd2", + "ommers_hash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "state_root": "0xfcfc085ade2de957064285d360616757f87a6ffb615bd92044f713097c477dfe", + "transactions_root": "0x42ad590e7db0b7811c90f5cee1d9eb8a7eafa32284bee357db828ed2ec09a31f", + "receipts_root": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", + "withdrawals_root": null, + "logs_bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x1", + "number": 1161273, + "gas_limit": 10000000, + "gas_used": 21000, + "timestamp": 1765254971, + "mix_hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "base_fee_per_gas": 15680008, + "blob_gas_used": null, + "excess_blob_gas": null, + "parent_beacon_block_root": null, + "requests_hash": null, + "extra_data": "0x" + }, + "prev_state_root": "0x2d5872e16517a0a5e91b07079b5ee6315f2da5edc87a4b0d0caec06c57d6427e", + "transactions": [ + { + "Eip1559": { + "signature": { + "r": "0xa8fd825c8d8cd7910c29704b5988fb256fd6f9a9e96b1983a533c50ac2576571", + "s": "0x5b504e8e5c0b4ec32a5a1bf138972e6f9ef0e5f16de4521963e3a27fa246c938", + "yParity": "0x1", + "v": "0x1" + }, + "transaction": { + "chain_id": 6281971, + "nonce": 982031, + "gas_limit": 21000, + "max_fee_per_gas": 31360116, + "max_priority_fee_per_gas": 100, + "to": "0xbd6d53bad965836e19565d7b58d78e8f87d80858", + "value": "0x5f5e100", + "access_list": [], + "input": "0x" + } + } + } + ], + "withdrawals": null, + "states": [ + "0xf90211a0bcd81ab47671d262626a7112f2a373f785c2eeb04171b636635469600a559cf8a0d46ce93f90fc9b29600deb77b4d2571a2d9c21fada7c889d6bb722e8510b311ba0a2b42d3d0b8ec1c44938028b61c8ccbf325548efe88fd155bd0ec4249d394758a03dacca3865f4a75b498afabedd4c889bfe43715ff2eb77a708fd36c363a5d664a0ad5f9ff1a6e9bea50d3471b3663e02aaf17523483be11b74bee4e9dc880d61a4a0082b8597747b5de8702987d2e5a5cab2bbfead5fe804b5d39d700194d7408a1ea01e67423214739fcb5749b6221a6b22a7ff28bf6474ef43a1f6f6baaaae69eb77a0e2641b71f89c3b481ab270e20af8ac28e9532c95d7620d2184ff0ff1275f572ea01be05be1bfdd6679da255c987c78a7c898956415c8b077f47ad4c0b8f3032038a09507a51ef6e91e1cea098e88b93ee9d51c8a6755651b647ed585d03f83b23f5ba0c8a54c998f645b57e057608dc67e876966a896c90842a960da46561257a297d8a0e0084a6eee0f7aedbca2d6568b9af930659a6ffe983b0606d943b740de4b42a2a0af0960d68e8e2d2d5a8efcf9d6fc2fc3394e6dabbd0971cc7f48439125903db7a0d5d3679c634df97ba59ccc56db7f00930fe70bdc6a3d85f4868f4192fabe3d4ca0513895121c015e3ac32ba64c224bdae11a6ec427426a6433424a3a72efbf39b2a01d58917bf6db4900142518b5f74d93ad114ca29919d2ec7cff267a1af6e5897c80", + "0xf90211a0f6acda83d39e352efbb8708785a5cb389ae69b21b33965abdf039875c10f4015a0ae9b24fa2a35e347ca63cbf78e597b8e3d66fbc6e4c24158a7bf6ad087f1b361a0ccf61cfadf8ada65904ef83719ddddcdd0ebaa9d7ef52b47c19501a3b0e082c4a04d1efdf9748f52a3f60b583c0ca0ed2faaa29214b7ee2d3eb1b7b7800856f369a04e8efd4c7ccd17c25e274c046880ce105f38155031da68d1ea9f9f390c6ebd39a06238af396a25ee64d0f2f87df0246ffafba5a5a5492e20a49faa3f4e172f59d7a0f0712dec82bc382acf2852c96c42b7f4f9fd1a729528156549f16a3311c34470a03567b480789748c827fb26c256eacb92c7a1d1c24ce2aa777759acedca518fd3a015d1447b5f3f5016fd523b7046626c4fa7bedeafffd2da0b3816818748c17114a0c8cfc90807e322a82f19646ff01cebd89f86d88061cabb33668fa15ee85248f0a007a7472ba4cecfaa2616f14655341f084e3f4f622482c8e2aef4e365daa29444a08c4a24aa2d05f18f32f6a922bd74fe2979ad9eb25e6ab2d2ec052b739934fb02a0783c3095315f988c441b49b7a8c46ee6e5d2ed7cb76dde9ef4bcb685bbd51396a016ec2cdf0b49472bace94235804821131846851662aa5d92f87fb3b114dfff37a0b0b3f19d7ea0f5d71792897a8a522dccbb18d4f748483092201b3e884d1b44f4a0442ada95689db191b60ae7ccfeb68696b23abd1aa5a055d2e322b1b597bae17b80", + "0xf90191a07e92a5f50bd57d63183d464de838f5c1c102ff429074d19ee53a3ac7edb0df74a07ba1eb56d6e18499710f790567cb0300ce7bb13498196c6670d81404a4f00e84a05e556f9984f8a1c22c8a0b2d854577c86ae3d4ef3fe2d7fd2a5960220a66d8248080a0f8a87e5af6615d1532d2d9a5d79b4e476f68aa1002c54f59b0160c780308cb3c80a0bccba643c7aa50ef7a27e38842e305d11682f04a4542e5b37715f2c80fa8679ca003aec6e66d3d97f5429731c424a293cb28adc483cf07f3a09cb99c3a0121ebd5a0e953802b568950f350fedf3407dcf23b94094ae8573dbef4bbc218d674f093cea0d35606f3d8e5c52c52aff822c66c72781bd2c3a07795923cf3c3d1b8e578f48aa0c3cad5b80c5fd08f5309fb32215bdbb8472ade4b8dc46b5f99e3b84f4ef794c780a0bbef236720a8f06196367f0331e0b23db841bc9d2a5a06d41b612780b2eda2d9a028007d781cd72dea5f3d17588dfc45bee048bd38b9f4088651b1b141c62d06a5a0477f698a26a9b4476d48fb892e5aecd0ad5c97c2090af01da405650ef28acdb880", + "0xe2a0366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68812", + "0xf901b1a0862b2cd38abed49ba009ccdd12b3d338efde74882d23f366f7ef99d988ced764a07f25470eb598e32da976c280c09e6e8cc0e96b1a92f408c220a63d0484e1b759a0ef6dc2a2d8adabffe8570f9ecd3174eb463353d1c2b5f7b21a91d8f809e2403ba0d8e640ef9285407021b5b09d3150c554441039d0ee952234aa8b9db61c03029fa098dd35a7d26c1cb4911013bcdff58746a598472b0c86a342600dc8e264b22550a0345d34bacd449818f0182521ffa21fe48b3c19b8abb39ae11ddc8f7653fb72b5a0850a4415284028962599451fe67c546fcfe1fcbac02c18b376539b2a39fe4cd9a09e4834ed0239ccee8c69f152820856eed2887af23e44c24369b60ad88619b7dea030c69424b2d54eea930074993dbcb133529e8c871f3586d2a884158d3ee2bf9c80a08a73a1d9c64aeb3b572e4e9dcc78d184c2afd494a89193064aea97c09d59739ca0cd95edbee3ebb2aa3e2df8b01b56c5600b75ffcea43729a4393f00c5d4b0dc728080a0c688f1d77a560612f7b6f4d7effc022eed4806915808c2103a93ea014a4bde2ba0bdbf07b012e80f0caa974d4ba1d03897f9998ecab874a94d2d23d29dee9374e180", + "0xe2a02075b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db901", + "0xf90211a0323a259db3810e95b44c2d99ad85128195d697985e5235f14175e83f0a83d600a00b0477e133a31db7543759a4b89d6660d736cb2d8d97cc52ec26cd32d1423701a0b04a97097a65898cfe763cc241a28338376397011760548d2d86279fed6151b7a0c0a8a42946fecea2dab412caf665613fe95cb9ecd0932249b0c410f73344a780a05d7a497077ffff421c9b67d551c47bd31e79bd834319a23e3f940a2b8379a3f5a0db76e57dd9e3895d37f30201980318e617661991552b1c10c849c4039822d9a6a05be7a38d223088d12be3358efb81e23268c79283ca0919860465650f3aab042fa04e2e5cd78d4cbb5b83f84bc12d023406a9f282265360dfbc451370eb7671cddfa0d7757f8b31fcf9a9366e0d53c72edc06f71eaad76fea18eeb7ed9672d5a2ffe8a0adb4b63ecfbce1c1b237748efb2ff93abd2bf5cf8569e8a91d6a775b5519ee16a049fba22c38a1007c5e3a6f3882c8244d0be5894817dbf658a8bf84080503c61ca0d2e49cd2c2164c86d6c07e6045a1acae34dd70339b59144e7c314268112568b8a0263a86890097dfe969e8353778bbf24e2e1d408cb73614a2d9e15375feeab921a06548dd33f993ddc1114bd1d5e0a4825c8db7bf225ab46e108025aa1cc047706aa07ab4a5e27c8749e8c15604e4d6d67c2ffbefdb80de8adde4e2e2c2420f0e059ba0695d06b1591db20680e4e726212bea8864c54d36740688ad8edffec9fcabb88980", + "0xf90211a0fddc48abd11e323178af23d0917fbacee21b2b789022185a8c29bac602ea27d1a02d8e3f19362060179ac32fdee0cbeb73e6c9dcd4579371a5e84b9f01939029caa0b2546006c3abcd25112cd8600cbe79e6ee35f145ab39438660f1c9d63df70bd7a09dbbc675748f63d7dc6cd68fd16889bcf779c7e4a059e1d0e2e12a5a54742097a0a00c475b5e1623317dd4565cb86d82e5fa32a41ca94ad7a16edc3804cbdf2423a051e61df659201fdc8645144c5e04851cd166e457cd62c1fcc1d447976a5c0bcba07500098545716c30e8896394675c715eb6d85ac426c3fcd3e21d637b2ab841e6a02ff166210df12f43fe1668f8539d85c5d5ac66c64e7d6968a279770cc31b0215a01a779801b6404d0e1f01a624a7f59738f9f9c8150f3b14829d36b0574b4d26e2a03fc517e31e7ab278f02495abee1bb9d0ce32c256a533f487608b2b8471a5ab25a0ec7f4b71f840de3dd494ab0eebb43216eb3a886e07642fd536876e875fc690aea05345e5792c171510b02be8e8372176026554f173f708435eede929fb6ef04b0da02bdfaaf6a5324ae74d2cc761ea74d7ef0df2e6b28e3dfdfd699eed4c4ff25a1aa0079d2f79aba7c3e5734d6690f011fb96b4fe20eb86af1fb8e6d3e8b99bc50edaa0bc46b8a810468e1b96d48d9c66f0ec9331b777ee97e81daa5e55f231cc258736a0373c238d66e27ad16b2144e1eef6810be844a3eeda6d63f26b292fa11cacc11580", + "0xe6a020575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b84830e535e", + "0xeaa0206b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db088874ef151655cda34", + "0xe7a0205a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a88584878a2b73", + "0xf8518080a08ba1c6cd6ec16293f448cfaf602bfd2610918fa18a527d1e92f55db4820fde84808080a0178648afa486d4f09b64cafc7a86f65858d830305b9e7a7e0fb8ea1226afc47080808080808080808080", + "0xf90211a05ad4596d0b34cb6f4fa49d3f4858e221ea40fe6ee95b023ddd2f20a84993d31aa02b96be6b2ff17f9032b35b0722bb713834358cb5f1064c3fc69f7292409dfda5a0e6d1e4bae4aeb441164c893797d713b1c0aac47a752a1e72238b6d08d678cb7da0da46b9e314572076eff4b08b52c0fb1bd7beb203a37c0b403fca49656d90775ba0cfa8da47f8428f8e1483b88d21d905677b217dda8829b53f67563c71c3feb2f5a004adeaf55735b24785800e687d84ad645b3030f863a3e5b9246620767f599c04a0df9dfcb8d68aabf3c0fd8db273ca0cae2d47dabbfe4530395210db50107b7dafa0029897853f3a46cfb3a2d2691568aa63c024c42865edf57e7d050263ac234a46a0294e32392757e8c439cd7fd1e537cf618f8a66814cef782b88b9f345b33b72a3a0d1443249f7c096abbc36d9adf4efcce401ace41a63abc0e5a17626c2fe3a48baa0a02cbe4700fc1ebac9dc5e891b061ce62d50d75f248e6fd5690bcf243f547f7ba01b53829e37073945c7131ab7b47dfed34248a589e033866c95723be19c9c31a4a0c1a3499ce15bf116ba8eec5dd22680e92eb08c2119bc0fd4b7c2ad7344850614a0b1739ed0588bd41aee2b8cacd1000cf315a21db1c4b4bb3c94dc597a115178d2a0336d11872917f1d0d1168cefd9666c2acc026798a939bccc355950c55d9510dda09a9eb27cae020f82dc1c2a6ad5ad9f1abdcdf122e3b02944e34648bc2173135280", + "0xf871a0fbc3a7886ff9825cba8776ed60a551b95478a8d0ba7386ac17abd9ac0cd5f1c7a059ac0deb3d5c2956f3d2b6db62cccdee1272d6ad01e8dedb78ca5aa1af8b6d8880808080808080a0f2450d8b1cb6c55122230dd957099dd5789e0bd0b156b572e516b4b435ae3f1880808080808080", + "0xf90111a0cbb2a818cafb8e9b9014f01693fae7511af86d8258294141f057f114cedbaaa080a05e83f37c5ee25c24be1bd18131d530e70ed5745127cdcb6bfe304dab045d12e0808080a0153f45918e0419ce0d46d9d799ac190f66b2ce0c991e8ddfeb2fbed23252bb5480a0b4913e81d4d65b898fd33855cd20cc3d44e495af5d130ecfe54b7f344646159c80a05b51f6f0bba78fb258af7a13f34a0e57030eb7931591ab46fc0758fce9262635a0b28ab1f66b23b921f5e63871f99eeb43b762ab3ad30299b3dd492c52fad17b16a008343d936c265af66752ec0287199d769104c9b00eb6f05b8e76f5103b16a8de8080a03a1e44d3669992d3ac3f750a1159442ba1d83432cb03e5815d7eed7d97c7e90380", + "0xe7a03e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af85845a5c1cf7", + "0xf90191a05cccd83162a2be8e4589a28c172e60fdb484d9aca8c3d3efba32dc644fc8e82ca00970f8c291e48e0dcadb73fd4cc38c9dc3bb3a25f018d3f44ced90a1fae74ddca05f3a440846cb5af6cdd03876513ef1ffa999a3a9483bcea9b7051cc498d83019a04e226bb0c56691c5b82d3a192d0af65cfa3c5e1ebc3c47f68eaefced2aa568a3a035eec27741ba7764afa456a85bdc65bc510a6c8273518be9eb0ce3b9a9d423a8a06f18513153eb094493abc553939a10031661ef00a33f987eb408d0d84e605ad1a04e6697d61a9c209018c46128c44c2cbe822ea37500fe3b934f830e539aed190d80a0384e3b0d16b0970a893a03dacd1b024985954547a5b3769d6a0f1d60636c88e880a043d5fb86980bbfc5460b0938adc589871389739211d85d0570ccbcfd2c171c7b80a0723a346260f388d53dc4f2f55049db1ea5c24fac1430abe9429c25d34cf225d780a0a7ec548f44d0fbdee110fdf7471fc240fd22cb61e01ac4fc3cdf7856dc456ef8a0f2661e61e51eccbe8954a064d489cd0a9692f53346d6c0d67ce0ec4abd68b32b80", + "0xe2a033f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301", + "0xeaa0310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68887354a6ba7a18000", + "0xf8689f2067596300e542c7cd2a1c5fca601da42a2739f790ad422b4f59fba0844e61b846f8448080a0124bca4e2cb90c6ebfaf1b3a0c09e0b6d089afc6f0ee1d86b95c2f9903b95628a0dc3a5ee2e8f8bcfd3a6ae7d2b5f38c8bf5c77b9a3fad31aa5dfe1ffed7aad50c", + "0xf843a0390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563a1a0ca6795e67b70f84a3d42eb5112efe6e89df1f7a2ea1d4b7271c3258f40cb0bfa", + "0xf8719f2084cdcd164a6b73972dc6625ecb078be7e607b54459f3edfaada99be20644b84ff84d80890706f22d44eb22127ca0fccb2010eacc7575952377d2750afbe4f1da5ef4b075f1c307ac91cd918b5a7aa016c283a285466785d9df98d63618dd1640392d6dd816a845b7750add4ef95569", + "0xf90211a060f0b4ec59df9b94b81a12f1f286ac5adab5acc1f451e775d6534987a7661d91a05f56a45cb7f8085b63dc83505db0029b87a46f6c4ddcb6b69a38d3f481680ce1a0a4c5ac32df7086888f58cedc01d5f3525cdedd60b24a728d42d70166a95f43e8a005851c3eb33c46b68b0c55ef24ff0a4357566a3fc70b38cc1602eb23a8e966a2a08942165c881099851bf6994fc4c286a36e20c977c739f6a22d3cd5ec4dffd3c5a01d8a532ce1e9873ec8683def2787e709ad28188fde9c409196db94b0da33f774a07e8c3937da3bdb8fcb48be528fa0e2fdc55bb2213a14bb1b6abdd085a46745e8a09373128feee1251476a8eb8d6242742f0d77d4722c2606c25a8625e682021cb5a02e784faf923b2e0e9445759645014238cdb34984733084fb6ce6d4bbd3e2b3c3a01d6b349f1df6cc4d4fedb5a9a8be02b0f2353a92d627d6f1d9391bb9372def45a07eb1d7f189651ae9161681796c7854bdf0c04297533187825c44e333cf437800a09c402ee4e11e8716b83d5055097803776e6d2c1d95f7cb7c815aa7da89afaec0a0ee04a3f387e6b1998ed2e227529784860e36dbe691ae395eb901b127f580f7bda02d308482cae48dc8ceb3e47b1f7d20aa23ec250e7ca089f49f9da4bc8eecaad5a0e5cddc66fedf0a4e88c1c978cc8132ca70beb42e5c806b3f2d2dc0e39a716461a0e13a609649fd76f676f3111652ed1ff8698b983fe18c75793cd0b5d44a2af62380", + "0xf90211a0ecb04a835b89eb6bb8f91a0e974bbd792fdd6c02ba54e81b46e4110af62bbf9ca06d8d72fca737214a37efcbe79e407e7ba8933f24218718793cad0f47c279a524a0f46e9223b6101196c58e03d02ad64d5df3313c9d1c5301b881f07931ad86f63ba02a05c3e94347e1931abe80c46f9f25e1c64caee10ada7ff7bb3933457f84e656a096ef6b0a739f1f7db742a99db15d215087991ded6d64c4d717ac40f7408fa853a04cb3eeb92f50ffd45d26c52c744fc56b424f25db81ef234e45a94b51781d583ea0dbda5c03880bbdf9b199812b0dd42085cdf49ff65279fede4b0d67839eb6f9cba0751b77d23e7e9d92e1104cd59f3b2a27ebed4f9870f44a9401a7408f8e102429a0a3bd74e9891cc206d6942e85e6c5476a93eaa98f5a2c56b4fdfe02cac5606c26a0339a5d5d6879a15dc7bee014323c3b88960401ec0ea7c7d71881998c287cdf02a021b50aa3aa8f836f113683075ad1fcb09026686776fc06e062e16daabfae46e6a00cc0c1093c8460580835c160f74c4aab357dd8871cf615812ef77d443c2bff3ea034932179f4426f94787f3a6565b5c1b493a26ab3b19d4f5539f87c7738df22e5a0d8de7dd6b51121181e272d56abb9fe2385210874c626683adc0d41eb89b539f1a0dc01747ab227571256844b56aaca2deaa9c59cc9184cfa1e96899983c9d3a823a05f71b5e9793e10c122d5d7b5e0a6132d74aa0255b3ccc2baebb04371e759e4fe80", + "0xf87180808080808080808080a088a948324f8827eedcf6815f745228dccff61c9d70734d53d20a40b13abf268d808080a01a6bc9281a5f5c0cb11ca2c2c30d8f1c93833c3819a2a5e5e6a4858e82572579a048154a4094eb988a91067201c980a4b2cd58c70530add2b12304117bf25da22980", + "0xf90211a0f5509071821d2953b53448397715aab3c8436b35cc877e14ddb459a25ab3a690a0ff777367e7795cba67f0641c160bbbd6e28896c446a81e72d4dae34e2ea39c73a0f54e5e209f391454e6ef206a20aa245c644d61766c79c56833ba7976e1a5779aa0b8c37231daa89cb3803f41f9d9f3156d6bc663a3f5f12ee40eda69533592f582a06f8a775802e9c1882bb3461e94d706bdf443e90b70a6234dc8f1801b6e4e2ca6a03e860edf66403d134ea6f254e5b983f34575d1ccfbcdb6c6d332b45da5ab7207a0c3d51113c1009a5bc0e82011023ecb9c35ed69a20fda9c60c105d60c55a9c8cca06a94edfd9e2318bbee1ee68e22c1e5f51fd1dbfcecf95ed217c1629063acf7f4a0c3c034c0abec19053c7d8992366e07e5a58c32620ca0258c1a196eb45173ac41a095707bb25b4f2c902d2ee2749673b6a15f4e4021fea65b96cb73f6df9f50f003a07d69fc3f999bd014c80d622ad394073eca23b51bc827c6e07bc438f0c6af32b0a000d91f4d069c6e62b71eebf5e8f596b21232e864dcb3b5915b62b7d65e31c7dda07867c505e41f7b896a8942ae2e2c4e0e86a7ee4605f6b927eb1ea0fb414711c6a0938755b85dad2e9f473d24e3555244d6ec01e91dc5ffd7fdd2e5d899d46ddc6ba07b85a5161815b739a0e6fe6c6e12bf600af6b6aa406e4a4c1dbf3ee88db2a3e9a0306dbf2a7ae616d4aa59e0b705e1fb7e9bb32d07a74fd851c5b01719235d089080", + "0xf85180a0f7f39013c4759f2594dac138beea31291091e113c4d5fc601554651cce42cc8480a0f4813602065c9d08bff1a8fe71a6a940d21d17f09d6e1b992cf9b828b772b6c880808080808080808080808080", + "0xf871808080a08a470df0a03114138e000bad5e556aa277095bdf9f7d38bf87d12d491ed7d0ba80808080a05ee5180eca1b55bfc469cfd6f9f9a525205f3f191bf683d8aa86aa7b100a82e8a0e52a6b14d4a5f25876aae04ddce6dec0c6952c3d5eedb04f579b19efe7783a2580808080808080", + "0xf8749f20e8aabb1c0290e3180045ec7a750c8328837c76ce9124464236c92568c0a7b852f850830efc0f89046f7f5510d72c652aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "0xf901d1a0ec4c83b46c0f99b26969d4f1e51948e3cb4c38b6d8598b77b5edcc83d82eee8ba0639b7096ab00ed3fea8dc5ca135f0fb21092b07ce64a6162fec266a7a2552145a068c2e31725e0fdf0b99986159e327e94861a02779191d6fd6220f948da37bcfb80a0d0249c5f9b75582cef41dc3045b0cbc9f2d935f4e9d7cc6ea09b0d6dc24d7041a051b17ee4fda084b2a680cecd6f749442fa7d7ea811b228dd1135c102c58c47aea0eeba0dadb43ef6d6a97521ad89a9b6dd39fc4759beb20981eddc16609bb7cc5ba002698e2421f183802ee7502dfe55061108de353b5bd0d84c152817f151ec29ac80a0d073d8b4b1d2bde00440ab279c3e4b07bc15a6f62954d5eeedcd4c36fb10f0e6a01f24aad38848389cd81076c8dc503100eb765d4433678fa56b17182d52abf723a0bbcd665af63be1ff1ebdff26f5621d71212ecbac20227bda119db6e0f4334645a0f0c3c7aa40c83ef73aea49289ff1333e4aab579cce8b71a15875586082bab8c7a061b3aff0b184d8d74e1f1f9c557b2e460a8072110d3f7eafd787ff77f5b5c182a0747be07964880fec7545a09da6b17779caa4bc182bdb052207aa5e03e3ed262aa058d8dc342be17061da710b897b1bc398d414dfd53023c08ebf93a388b949a75180", + "0xf8689f38a0b8246d45a5a396db3b461bf4a56bd646d9274adeadb5471dd31e30574fb846f8448080a023c1078f7ca82d2d303835230ef375c0a95dd3650d3fad7b9516376bc27d4ae9a0c0be97aa0ca343d23e56a121da166078248b2ddd5f5c4886213c4d236c0ce9d2" + ], + "codes": [] +} \ No newline at end of file diff --git a/crates/types/batch/Cargo.toml b/crates/types/batch/Cargo.toml index 04abeac1..c173a4d8 100644 --- a/crates/types/batch/Cargo.toml +++ b/crates/types/batch/Cargo.toml @@ -29,7 +29,6 @@ c-kzg = { workspace = true, optional = true } bridge_core = { workspace = true } bridge_adapters_zk = { workspace = true, features = ["verifier"] } bridge_steps_da = { workspace = true, features = ["verifier"] } -openvm-blobstream = { workspace = true } [features] default = [] From d9b09660127777e6103f774173a4d67fd7311580 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 15:51:32 +0800 Subject: [PATCH 17/26] add files --- crates/dogeos/integration/src/lib.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 crates/dogeos/integration/src/lib.rs diff --git a/crates/dogeos/integration/src/lib.rs b/crates/dogeos/integration/src/lib.rs new file mode 100644 index 00000000..71944945 --- /dev/null +++ b/crates/dogeos/integration/src/lib.rs @@ -0,0 +1,17 @@ +use scroll_zkvm_integration::WORKSPACE_ROOT; +use std::path::Path; +use std::sync::LazyLock; +pub static DOGEOS_CRATES_ROOT: LazyLock<&Path> = LazyLock::new(|| { + Box::leak( + WORKSPACE_ROOT + .join("crates") + .join("dogeos") + .into_boxed_path(), + ) +}); +pub static DOGEOS_INTEGRATION_ROOT: LazyLock<&Path> = + LazyLock::new(|| Box::leak(DOGEOS_CRATES_ROOT.join("integration").into_boxed_path())); +pub static DOGEOS_TESTDATA_ROOT: LazyLock<&Path> = + LazyLock::new(|| Box::leak(DOGEOS_INTEGRATION_ROOT.join("testdata").into_boxed_path())); + +pub mod testers; From 08a64ab8c020f4863889472c1542b74dca9a99da Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 15:51:34 +0800 Subject: [PATCH 18/26] add files --- Cargo.lock | 115 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 65 insertions(+), 50 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b6d79b6..36140d59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -265,7 +265,7 @@ dependencies = [ "op-alloy-consensus 0.22.4", "op-alloy-rpc-types-engine", "op-revm", - "revm 30.1.1", + "revm 30.2.0", "thiserror 2.0.17", ] @@ -595,7 +595,6 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ - "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck 0.5.0", @@ -614,14 +613,12 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ - "alloy-json-abi", "const-hex", "dunce", "heck 0.5.0", "macro-string", "proc-macro2", "quote", - "serde_json", "syn 2.0.111", "syn-solidity", ] @@ -2393,6 +2390,7 @@ version = "0.3.0" dependencies = [ "alloy", "common_types", + "duct", "hex", "once_cell", "prost", @@ -2778,6 +2776,18 @@ version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" +[[package]] +name = "duct" +version = "0.13.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c" +dependencies = [ + "libc", + "once_cell", + "os_pipe", + "shared_child", +] + [[package]] name = "dunce" version = "1.0.5" @@ -5388,17 +5398,6 @@ dependencies = [ "strum 0.26.3", ] -[[package]] -name = "openvm-blobstream" -version = "0.1.0" -dependencies = [ - "alloy-primitives", - "alloy-sol-types", - "eyre", - "revm 29.0.1", - "serde", -] - [[package]] name = "openvm-build" version = "1.4.1" @@ -6266,6 +6265,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "owo-colors" version = "4.2.3" @@ -7524,7 +7533,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" +source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" dependencies = [ "alloy-consensus", "alloy-eips 1.1.3", @@ -7534,8 +7543,8 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus 0.20.0", - "reth-codecs-derive 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", - "reth-zstd-compressors 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", + "reth-codecs-derive 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "reth-zstd-compressors 1.8.2 (git+https://github.com/scroll-tech/reth.git)", "serde", ] @@ -7552,7 +7561,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" +source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" dependencies = [ "proc-macro2", "quote", @@ -8031,7 +8040,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" +source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" dependencies = [ "zstd", ] @@ -8107,7 +8116,7 @@ dependencies = [ "revm-inspector 11.2.0", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", ] @@ -8219,7 +8228,7 @@ dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", "revm-database-interface 8.0.5", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", ] @@ -8281,7 +8290,7 @@ dependencies = [ "auto_impl", "either", "revm-database-interface 8.0.5", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", ] @@ -8460,7 +8469,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", ] @@ -8529,7 +8538,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-handler 11.2.0", "revm-interpreter 28.0.0", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", "serde_json", @@ -8579,7 +8588,7 @@ checksum = "f1de5c790122f8ded67992312af8acd41ccfcee629b25b819e10c5b1f69caf57" dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", - "revm-primitives 21.0.1", + "revm-primitives 21.0.2", "revm-state 8.1.1", "serde", ] @@ -9027,15 +9036,6 @@ dependencies = [ "wait-timeout", ] -[[package]] -name = "ruzstd" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01" -dependencies = [ - "twox-hash", -] - [[package]] name = "ryu" version = "1.0.20" @@ -9197,7 +9197,7 @@ dependencies = [ [[package]] name = "scroll-alloy-consensus" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" +source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" dependencies = [ "alloy-consensus", "alloy-eips 1.1.3", @@ -9205,7 +9205,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 1.1.3", "derive_more 2.1.0", - "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", + "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth.git)", "serde", "serde_with", ] @@ -9273,7 +9273,7 @@ dependencies = [ [[package]] name = "scroll-codec" version = "0.1.0" -source = "git+https://github.com/scroll-tech/rollup-node?rev=c955480#c9554802273f535042cca5dbe44f0ceda65d33a8" +source = "git+https://github.com/scroll-tech/rollup-node?tag=v0.0.1-rc65#78999f4d4d9efca9a733dac59d6b685970783b5e" dependencies = [ "alloy-eips 1.1.3", "alloy-primitives", @@ -9281,22 +9281,22 @@ dependencies = [ "alloy-sol-types", "bitvec", "derive_more 2.1.0", - "ruzstd", - "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git)", "scroll-l1", "thiserror 2.0.17", + "zstd", ] [[package]] name = "scroll-l1" -version = "1.0.3" -source = "git+https://github.com/scroll-tech/rollup-node?rev=c955480#c9554802273f535042cca5dbe44f0ceda65d33a8" +version = "0.0.1" +source = "git+https://github.com/scroll-tech/rollup-node?tag=v0.0.1-rc65#78999f4d4d9efca9a733dac59d6b685970783b5e" dependencies = [ "alloy-primitives", "alloy-sol-types", "bitvec", "derive_more 2.1.0", - "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git)", "thiserror 2.0.17", ] @@ -9493,7 +9493,6 @@ dependencies = [ "itertools 0.14.0", "openvm", "openvm-algebra-guest", - "openvm-blobstream", "openvm-ecc-guest", "openvm-pairing", "openvm-pairing-guest", @@ -9965,12 +9964,34 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shared_child" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" +dependencies = [ + "libc", + "sigchld", + "windows-sys 0.60.2", +] + [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "sigchld" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" +dependencies = [ + "libc", + "os_pipe", + "signal-hook", +] + [[package]] name = "signal-hook" version = "0.3.18" @@ -10936,12 +10957,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "twox-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" - [[package]] name = "typeid" version = "1.0.3" From 0dc44d27a34d02d0989a397b2310f9145d55bbe5 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 15:53:12 +0800 Subject: [PATCH 19/26] update lock --- Cargo.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 36140d59..a288b30b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -265,7 +265,7 @@ dependencies = [ "op-alloy-consensus 0.22.4", "op-alloy-rpc-types-engine", "op-revm", - "revm 30.2.0", + "revm 30.1.1", "thiserror 2.0.17", ] @@ -8116,7 +8116,7 @@ dependencies = [ "revm-inspector 11.2.0", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", ] @@ -8228,7 +8228,7 @@ dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -8290,7 +8290,7 @@ dependencies = [ "auto_impl", "either", "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -8469,7 +8469,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-interpreter 28.0.0", "revm-precompile 28.1.1", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] @@ -8538,7 +8538,7 @@ dependencies = [ "revm-database-interface 8.0.5", "revm-handler 11.2.0", "revm-interpreter 28.0.0", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", "serde_json", @@ -8588,7 +8588,7 @@ checksum = "f1de5c790122f8ded67992312af8acd41ccfcee629b25b819e10c5b1f69caf57" dependencies = [ "revm-bytecode 7.1.1", "revm-context-interface 11.1.2", - "revm-primitives 21.0.2", + "revm-primitives 21.0.1", "revm-state 8.1.1", "serde", ] From 956f1a026cd784b79eb59e32402c491774780016 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 15:55:52 +0800 Subject: [PATCH 20/26] mock da_inclusion --- crates/types/batch/src/dogeos/witness.rs | 61 ++++++++++++------------ 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/crates/types/batch/src/dogeos/witness.rs b/crates/types/batch/src/dogeos/witness.rs index 65b9e86c..44f02d4c 100644 --- a/crates/types/batch/src/dogeos/witness.rs +++ b/crates/types/batch/src/dogeos/witness.rs @@ -42,38 +42,39 @@ impl From<&DogeOsBatchWitness> for DogeOsBatchInfo { } } -fn verify_da_inclusion(witness: &DogeOsBatchWitness, scroll_batch_info: &scroll::batch::BatchInfo) { +fn verify_da_inclusion(witness: &DogeOsBatchWitness, _scroll_batch_info: &scroll::batch::BatchInfo) { DaInclusionVerifier .verify_envelope(&witness.extras.inclusion, &witness.extras.verifier_context) .expect("failed to verify inclusion proof"); - let da_header = &witness.extras.inclusion.artifact.v2_header; - - // See: https://github.com/DogeOS69/dogeos-core/tree/feat/trust-minimized-bridge-crates/crates/common_types/src/protos - // | Field | Type / Size | Meaning | Source / Notes | - // |-------|-------------|---------|----------------| - // | `prev_state_root` | bytes (32) | L2 state root before batch | DogeOS RPC | - assert_eq!( - da_header.prev_state_root, - scroll_batch_info.parent_state_root - ); - // | `state_root` | bytes (32) | L2 state root after batch | DogeOS RPC | - assert_eq!(da_header.state_root, scroll_batch_info.state_root); - // | `prev_batch_hash` | bytes (32) | Hash of previous batch | From `commitBatches` inputs | - assert_eq!( - da_header.prev_batch_hash, - scroll_batch_info.parent_batch_hash - ); - // | `batch_hash` | bytes (32) | Hash of current batch | `calculate_batch_hash` (codec version, batch index, blob commitment, prev batch hash) | - assert_eq!(da_header.batch_hash, scroll_batch_info.batch_hash); - // | `prev_l1_message_queue_hash` | bytes (32) | Pre-batch queue hash | Scroll codec `prev_l1_message_queue_hash` | - assert_eq!( - da_header.prev_l1_message_queue_hash, - scroll_batch_info.prev_msg_queue_hash - ); - // | `l1_message_queue_hash` | bytes (32) | Post-batch L1 message queue hash | Scroll codec `post_l1_message_queue_hash` | - assert_eq!( - da_header.l1_message_queue_hash, - scroll_batch_info.post_msg_queue_hash - ); + // TODO: uncomment and complete these checks + // let da_header = &witness.extras.inclusion.artifact.v2_header; + // + // // See: https://github.com/DogeOS69/dogeos-core/tree/feat/trust-minimized-bridge-crates/crates/common_types/src/protos + // // | Field | Type / Size | Meaning | Source / Notes | + // // |-------|-------------|---------|----------------| + // // | `prev_state_root` | bytes (32) | L2 state root before batch | DogeOS RPC | + // assert_eq!( + // da_header.prev_state_root, + // scroll_batch_info.parent_state_root + // ); + // // | `state_root` | bytes (32) | L2 state root after batch | DogeOS RPC | + // assert_eq!(da_header.state_root, scroll_batch_info.state_root); + // // | `prev_batch_hash` | bytes (32) | Hash of previous batch | From `commitBatches` inputs | + // assert_eq!( + // da_header.prev_batch_hash, + // scroll_batch_info.parent_batch_hash + // ); + // // | `batch_hash` | bytes (32) | Hash of current batch | `calculate_batch_hash` (codec version, batch index, blob commitment, prev batch hash) | + // assert_eq!(da_header.batch_hash, scroll_batch_info.batch_hash); + // // | `prev_l1_message_queue_hash` | bytes (32) | Pre-batch queue hash | Scroll codec `prev_l1_message_queue_hash` | + // assert_eq!( + // da_header.prev_l1_message_queue_hash, + // scroll_batch_info.prev_msg_queue_hash + // ); + // // | `l1_message_queue_hash` | bytes (32) | Post-batch L1 message queue hash | Scroll codec `post_l1_message_queue_hash` | + // assert_eq!( + // da_header.l1_message_queue_hash, + // scroll_batch_info.post_msg_queue_hash + // ); } From 1c8167e2931fa2719ec4f58c9e4a2951ed607ceb Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 16:07:32 +0800 Subject: [PATCH 21/26] override --- crates/integration/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/integration/src/lib.rs b/crates/integration/src/lib.rs index 138aeb63..b130e0a0 100644 --- a/crates/integration/src/lib.rs +++ b/crates/integration/src/lib.rs @@ -50,7 +50,7 @@ pub fn testing_hardfork() -> ForkName { /// Test settings (version). pub fn testing_version() -> Version { - Version::galileo_v2() + Version::feynman() } pub fn testing_version_validium() -> Version { From 43d6742f6b7cad46e29cd7f65d392418edcf365d Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 16:13:00 +0800 Subject: [PATCH 22/26] update --- crates/dogeos/integration/src/testers/batch.rs | 6 ++---- crates/dogeos/integration/tests/batch_circuit.rs | 7 +++++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/crates/dogeos/integration/src/testers/batch.rs b/crates/dogeos/integration/src/testers/batch.rs index bcf52a14..c0dc99fa 100644 --- a/crates/dogeos/integration/src/testers/batch.rs +++ b/crates/dogeos/integration/src/testers/batch.rs @@ -7,7 +7,7 @@ use bridge_steps_da::{DaInclusionBuilder, DaInclusionVerifier, SyntheticBlobSour use scroll_zkvm_integration::{ProverTester, PROGRAM_COMMITMENTS}; use scroll_zkvm_integration::utils::build_batch_witnesses; use scroll_zkvm_types::dogeos::batch::dogeos::{DogeOsBatchWitness, DogeOsBatchWitnessExtras}; -use scroll_zkvm_types::dogeos::chunk::execute; +use scroll_zkvm_types::dogeos::chunk::{execute, DogeOsChunkWitness}; use scroll_zkvm_types::public_inputs::dogeos::batch::DogeOsBatchInfo; use scroll_zkvm_types::utils::serialize_vk; @@ -48,9 +48,7 @@ fn mock_inclusion_envelope() -> eyre::Result eyre::Result { - let chunk_witness = super::chunk::mock_chunk_witness()?; - +pub fn mock_batch_witness(chunk_witness: &DogeOsChunkWitness) -> eyre::Result { let last_info = execute(chunk_witness.clone()).expect("execute chunk"); // let chunks = vec![chunk_witness.clone()]; diff --git a/crates/dogeos/integration/tests/batch_circuit.rs b/crates/dogeos/integration/tests/batch_circuit.rs index 156dd726..bd5cf216 100644 --- a/crates/dogeos/integration/tests/batch_circuit.rs +++ b/crates/dogeos/integration/tests/batch_circuit.rs @@ -10,10 +10,13 @@ fn test_e2e_execute() -> eyre::Result<()> { let mut chunk_prover = ChunkProverTester::load_prover(false)?; - let chunk_proof = prove_verify::(&mut chunk_prover, &mock_chunk_witness()?, &[])?; + let chunk_witness = mock_chunk_witness()?; + let chunk_proof = prove_verify::(&mut chunk_prover, &chunk_witness, &[])?; + let batch_witness = mock_batch_witness(&chunk_witness)?; + println!("batch witness = {batch_witness:#?}"); let stdin = BatchProverTester::build_guest_input( - &mock_batch_witness()?, + &batch_witness, [chunk_proof.as_stark_proof().unwrap()].into_iter(), )?; let _ = prover.execute_and_check_with_full_result(&stdin)?; From 61c82675356b09c9385725a0316e3da272cf9cd3 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 16:18:04 +0800 Subject: [PATCH 23/26] try fix --- .../dogeos/integration/src/testers/batch.rs | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/crates/dogeos/integration/src/testers/batch.rs b/crates/dogeos/integration/src/testers/batch.rs index c0dc99fa..a8a791b3 100644 --- a/crates/dogeos/integration/src/testers/batch.rs +++ b/crates/dogeos/integration/src/testers/batch.rs @@ -9,7 +9,10 @@ use scroll_zkvm_integration::utils::build_batch_witnesses; use scroll_zkvm_types::dogeos::batch::dogeos::{DogeOsBatchWitness, DogeOsBatchWitnessExtras}; use scroll_zkvm_types::dogeos::chunk::{execute, DogeOsChunkWitness}; use scroll_zkvm_types::public_inputs::dogeos::batch::DogeOsBatchInfo; +use scroll_zkvm_types::public_inputs::MultiVersionPublicInputs; +use scroll_zkvm_types::types_agg::AggregationInput; use scroll_zkvm_types::utils::serialize_vk; +use scroll_zkvm_types::version::Version; pub struct BatchProverTester; @@ -50,14 +53,25 @@ fn mock_inclusion_envelope() -> eyre::Result eyre::Result { let last_info = execute(chunk_witness.clone()).expect("execute chunk"); - // let chunks = vec![chunk_witness.clone()]; let commitment = PROGRAM_COMMITMENTS["chunk"]; - let inner = build_batch_witnesses( - &[chunk_witness.inner], + let mut inner = build_batch_witnesses( + &[chunk_witness.inner.clone()], &serialize_vk::serialize(&commitment), Default::default() )?; + + inner.chunk_proofs = vec![ + AggregationInput { + public_values: last_info.pi_hash_by_version(Version::feynman()) + .as_slice() + .iter() + .map(|&b| b as u32) + .collect::>(), + commitment, + } + ]; + let extras = DogeOsBatchWitnessExtras { chunk_info_extras: vec![last_info.extras], verifier_context: SerdeWrapper(Default::default()), From 63ecbb29679d317763a69c1be588c77d2db4761a Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 16:23:10 +0800 Subject: [PATCH 24/26] remove --- crates/dogeos/integration/tests/batch_circuit.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/dogeos/integration/tests/batch_circuit.rs b/crates/dogeos/integration/tests/batch_circuit.rs index bd5cf216..0b603c0d 100644 --- a/crates/dogeos/integration/tests/batch_circuit.rs +++ b/crates/dogeos/integration/tests/batch_circuit.rs @@ -14,7 +14,7 @@ fn test_e2e_execute() -> eyre::Result<()> { let chunk_proof = prove_verify::(&mut chunk_prover, &chunk_witness, &[])?; let batch_witness = mock_batch_witness(&chunk_witness)?; - println!("batch witness = {batch_witness:#?}"); + let stdin = BatchProverTester::build_guest_input( &batch_witness, [chunk_proof.as_stark_proof().unwrap()].into_iter(), From cc6a9d46f22edc604ffef57dcc3c246e545971d9 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 16:56:15 +0800 Subject: [PATCH 25/26] add bundle --- Cargo.lock | 86 ++++++------------- Makefile | 2 +- crates/dogeos/integration/src/testers.rs | 1 + .../dogeos/integration/src/testers/bundle.rs | 60 +++++++++++++ .../integration/tests/bundle_circuit.rs | 56 ++++++++++++ crates/integration/src/testers/bundle.rs | 16 +++- .../base/src/public_inputs/dogeos/batch.rs | 17 ++-- crates/types/batch/src/dogeos/witness.rs | 3 +- crates/types/bundle/src/dogeos.rs | 8 +- 9 files changed, 174 insertions(+), 75 deletions(-) create mode 100644 crates/dogeos/integration/src/testers/bundle.rs create mode 100644 crates/dogeos/integration/tests/bundle_circuit.rs diff --git a/Cargo.lock b/Cargo.lock index a288b30b..9409b60a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2390,7 +2390,6 @@ version = "0.3.0" dependencies = [ "alloy", "common_types", - "duct", "hex", "once_cell", "prost", @@ -2776,18 +2775,6 @@ version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" -[[package]] -name = "duct" -version = "0.13.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c" -dependencies = [ - "libc", - "once_cell", - "os_pipe", - "shared_child", -] - [[package]] name = "dunce" version = "1.0.5" @@ -6265,16 +6252,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "os_pipe" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "owo-colors" version = "4.2.3" @@ -7533,7 +7510,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" dependencies = [ "alloy-consensus", "alloy-eips 1.1.3", @@ -7543,8 +7520,8 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus 0.20.0", - "reth-codecs-derive 1.8.2 (git+https://github.com/scroll-tech/reth.git)", - "reth-zstd-compressors 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "reth-codecs-derive 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", + "reth-zstd-compressors 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", "serde", ] @@ -7561,7 +7538,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" dependencies = [ "proc-macro2", "quote", @@ -8040,7 +8017,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" dependencies = [ "zstd", ] @@ -9036,6 +9013,15 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "ruzstd" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01" +dependencies = [ + "twox-hash", +] + [[package]] name = "ryu" version = "1.0.20" @@ -9197,7 +9183,7 @@ dependencies = [ [[package]] name = "scroll-alloy-consensus" version = "1.8.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd53a73daee0f9870e8f548df9f6390c4297dcb" +source = "git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3#f636225ec0c8d968374768796540e8bf9adb3615" dependencies = [ "alloy-consensus", "alloy-eips 1.1.3", @@ -9205,7 +9191,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 1.1.3", "derive_more 2.1.0", - "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "reth-codecs 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", "serde", "serde_with", ] @@ -9273,7 +9259,7 @@ dependencies = [ [[package]] name = "scroll-codec" version = "0.1.0" -source = "git+https://github.com/scroll-tech/rollup-node?tag=v0.0.1-rc65#78999f4d4d9efca9a733dac59d6b685970783b5e" +source = "git+https://github.com/scroll-tech/rollup-node?rev=c955480#c9554802273f535042cca5dbe44f0ceda65d33a8" dependencies = [ "alloy-eips 1.1.3", "alloy-primitives", @@ -9281,22 +9267,22 @@ dependencies = [ "alloy-sol-types", "bitvec", "derive_more 2.1.0", - "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "ruzstd", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", "scroll-l1", "thiserror 2.0.17", - "zstd", ] [[package]] name = "scroll-l1" -version = "0.0.1" -source = "git+https://github.com/scroll-tech/rollup-node?tag=v0.0.1-rc65#78999f4d4d9efca9a733dac59d6b685970783b5e" +version = "1.0.3" +source = "git+https://github.com/scroll-tech/rollup-node?rev=c955480#c9554802273f535042cca5dbe44f0ceda65d33a8" dependencies = [ "alloy-primitives", "alloy-sol-types", "bitvec", "derive_more 2.1.0", - "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git)", + "scroll-alloy-consensus 1.8.2 (git+https://github.com/scroll-tech/reth.git?tag=scroll-v91.3)", "thiserror 2.0.17", ] @@ -9964,34 +9950,12 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shared_child" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" -dependencies = [ - "libc", - "sigchld", - "windows-sys 0.60.2", -] - [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "sigchld" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" -dependencies = [ - "libc", - "os_pipe", - "signal-hook", -] - [[package]] name = "signal-hook" version = "0.3.18" @@ -10957,6 +10921,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "twox-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" + [[package]] name = "typeid" version = "1.0.3" diff --git a/Makefile b/Makefile index 2638e290..a80b0e85 100644 --- a/Makefile +++ b/Makefile @@ -112,7 +112,7 @@ test-bundle-local: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test bundle_circuit setup_prove_verify_local_task -- --exact --nocapture test-e2e-bundle: - @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test bundle_circuit e2e -- --exact --nocapture + @cargo test $(CARGO_CONFIG_FLAG) --release -p dogeos-zkvm-integration --test bundle_circuit e2e -- --exact --nocapture test-axiom-e2e-bundle: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test bundle_circuit axiom_e2e -- --exact --nocapture diff --git a/crates/dogeos/integration/src/testers.rs b/crates/dogeos/integration/src/testers.rs index 73d6edfe..be5d054c 100644 --- a/crates/dogeos/integration/src/testers.rs +++ b/crates/dogeos/integration/src/testers.rs @@ -1,2 +1,3 @@ pub mod chunk; pub mod batch; +pub mod bundle; diff --git a/crates/dogeos/integration/src/testers/bundle.rs b/crates/dogeos/integration/src/testers/bundle.rs new file mode 100644 index 00000000..a595b0b8 --- /dev/null +++ b/crates/dogeos/integration/src/testers/bundle.rs @@ -0,0 +1,60 @@ +use scroll_zkvm_integration::{ProverTester, PROGRAM_COMMITMENTS}; +use scroll_zkvm_integration::utils::metadata_from_batch_witnesses; +use scroll_zkvm_types::dogeos::batch::dogeos::DogeOsBatchWitness; +use scroll_zkvm_types::dogeos::bundle::BundleWitness; +use scroll_zkvm_types::dogeos::bundle::dogeos::DogeOsBundleWitness; +use scroll_zkvm_types::public_inputs::dogeos::batch::{DogeOsBatchInfo, DogeOsBatchInfoExtras}; +use scroll_zkvm_types::public_inputs::dogeos::bundle::DogeOsBundleInfo; +use scroll_zkvm_types::public_inputs::{ForkName, MultiVersionPublicInputs}; +use scroll_zkvm_types::types_agg::AggregationInput; +use scroll_zkvm_types::version::Version; + +pub struct BundleProverTester; + +impl ProverTester for BundleProverTester { + type Metadata = DogeOsBundleInfo; + + type Witness = DogeOsBundleWitness; + + const NAME: &str = "bundle"; + + const PATH_PROJECT_ROOT: &str = "crates/dogeos/circuits/bundle-circuit"; + + const DIR_ASSETS: &str = "bundle"; +} + + +pub fn mock_bundle_witness( + batch_witness: &DogeOsBatchWitness +) -> eyre::Result { + let commitment = PROGRAM_COMMITMENTS["batch"]; + + let info_inner = metadata_from_batch_witnesses(&batch_witness.inner)?; + let info = DogeOsBatchInfo { + inner: info_inner, + extras: DogeOsBatchInfoExtras {}, + }; + + let pi_hash = info.pi_hash_by_version(Version::feynman()); + + let proof = AggregationInput { + public_values: pi_hash + .as_slice() + .iter() + .map(|&b| b as u32) + .collect::>(), + commitment, + }; + + let bundle_witness = BundleWitness { + version: Version::feynman().as_version_byte(), + batch_infos: vec![info.inner], + batch_proofs: vec![proof], + fork_name: ForkName::Feynman, + }; + + Ok(DogeOsBundleWitness { + inner: bundle_witness, + batch_info_extras: vec![info.extras] + }) +} diff --git a/crates/dogeos/integration/tests/bundle_circuit.rs b/crates/dogeos/integration/tests/bundle_circuit.rs new file mode 100644 index 00000000..c7f7d0b4 --- /dev/null +++ b/crates/dogeos/integration/tests/bundle_circuit.rs @@ -0,0 +1,56 @@ +use sbv_primitives::alloy_primitives; +use dogeos_zkvm_integration::testers::batch::{mock_batch_witness, BatchProverTester}; +use dogeos_zkvm_integration::testers::bundle::{mock_bundle_witness, BundleProverTester}; +use dogeos_zkvm_integration::testers::chunk::{mock_chunk_witness, ChunkProverTester}; +use scroll_zkvm_integration::{prove_verify, prove_verify_single_evm, testing_version, ProverTester, TaskProver}; +use scroll_zkvm_integration::utils::metadata_from_bundle_witnesses; +use scroll_zkvm_types::proof::OpenVmEvmProof; +use scroll_zkvm_types::public_inputs::dogeos::bundle::DogeOsBundleInfo; +use scroll_zkvm_types::public_inputs::{ForkName, MultiVersionPublicInputs}; +use scroll_zkvm_types::version::Version; + +#[test] +fn e2e() -> eyre::Result<()> { + BundleProverTester::setup(true)?; + + let mut chunk_prover = ChunkProverTester::load_prover(false)?; + let mut batch_prover = BatchProverTester::load_prover(false)?; + let mut bundle_prover = BundleProverTester::load_prover(true)?; + e2e_inner(&mut chunk_prover, &mut batch_prover, &mut bundle_prover)?; + + Ok(()) +} + +fn e2e_inner( + chunk_prover: &mut impl TaskProver, + batch_prover: &mut impl TaskProver, + bundle_prover: &mut impl TaskProver, +) -> eyre::Result<()> { + let chunk_witness = mock_chunk_witness()?; + let batch_witness = mock_batch_witness(&chunk_witness)?; + let bundle_witness = mock_bundle_witness(&batch_witness)?; + let bundle_info = DogeOsBundleInfo::from(&bundle_witness); + let expected_pi_hash = bundle_info.pi_hash_by_version(Version::feynman()); + + let chunk_proof = prove_verify::(chunk_prover, &chunk_witness, &[])?; + let batch_proof = prove_verify::(batch_prover, &batch_witness, &[chunk_proof])?; + let bundle_proof = prove_verify_single_evm::(bundle_prover, &bundle_witness, &[batch_proof])?; + + + let evm_proof: OpenVmEvmProof = bundle_proof.into_evm_proof().unwrap().into(); + + let observed_instances = &evm_proof.user_public_values; + + for (i, (&expected, &observed)) in expected_pi_hash + .iter() + .zip(observed_instances.iter()) + .enumerate() + { + assert_eq!( + expected, observed, + "pi inconsistent at index {i}: expected={expected}, observed={observed:?}" + ); + } + + Ok(()) +} diff --git a/crates/integration/src/testers/bundle.rs b/crates/integration/src/testers/bundle.rs index 67bb9bf3..042dc70d 100644 --- a/crates/integration/src/testers/bundle.rs +++ b/crates/integration/src/testers/bundle.rs @@ -5,8 +5,8 @@ use scroll_zkvm_types::{ batch::BatchInfo, bundle::{BundleInfo, BundleWitness, LegacyBundleWitness}, }, + dogeos::bundle::dogeos::DogeOsBundleWitness }; - // Only related to hardcoded commitments. Can be refactored later. use crate::{ PROGRAM_COMMITMENTS, PartialProvingTask, ProverTester, TaskProver, prove_verify_single_evm, @@ -34,6 +34,20 @@ impl PartialProvingTask for BundleWitness { } } +impl PartialProvingTask for DogeOsBundleWitness { + fn identifier(&self) -> String { + self.inner.identifier() + } + + fn legacy_rkyv_archive(&self) -> eyre::Result> { + unreachable!() + } + + fn fork_name(&self) -> ForkName { + self.inner.fork_name() + } +} + pub struct BundleProverTester; impl ProverTester for BundleProverTester { diff --git a/crates/types/base/src/public_inputs/dogeos/batch.rs b/crates/types/base/src/public_inputs/dogeos/batch.rs index 66f16063..92dd04a1 100644 --- a/crates/types/base/src/public_inputs/dogeos/batch.rs +++ b/crates/types/base/src/public_inputs/dogeos/batch.rs @@ -2,18 +2,15 @@ use crate::public_inputs::{MultiVersionPublicInputs, scroll}; use crate::version::Version; /// Represents public-input values for a batch. -#[derive( - Clone, - Debug, - rkyv::Archive, - rkyv::Deserialize, - rkyv::Serialize, - serde::Deserialize, - serde::Serialize, -)] -#[rkyv(derive(Debug))] +#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)] pub struct DogeOsBatchInfo { pub inner: scroll::batch::BatchInfo, + pub extras: DogeOsBatchInfoExtras, +} + +#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)] +pub struct DogeOsBatchInfoExtras { + // Add DogeOs-specific extra fields here if needed in the future } pub type VersionedDogeOsBatchInfo = (DogeOsBatchInfo, Version); diff --git a/crates/types/batch/src/dogeos/witness.rs b/crates/types/batch/src/dogeos/witness.rs index 44f02d4c..becbe1cb 100644 --- a/crates/types/batch/src/dogeos/witness.rs +++ b/crates/types/batch/src/dogeos/witness.rs @@ -3,7 +3,7 @@ use bridge_adapters_zk::{StepInputEnvelope, ZkVerifierExt}; use bridge_core::VerifierContext; use bridge_steps_da::DaInclusionVerifier; use types_base::aggregation::{AggregationInput, ProofCarryingWitness}; -use types_base::public_inputs::dogeos::batch::DogeOsBatchInfo; +use types_base::public_inputs::dogeos::batch::{DogeOsBatchInfo, DogeOsBatchInfoExtras}; use types_base::public_inputs::dogeos::chunk::DogeOsChunkInfoExtras; use types_base::public_inputs::scroll; @@ -38,6 +38,7 @@ impl From<&DogeOsBatchWitness> for DogeOsBatchInfo { DogeOsBatchInfo { inner: scroll_batch_info, + extras: DogeOsBatchInfoExtras {} } } } diff --git a/crates/types/bundle/src/dogeos.rs b/crates/types/bundle/src/dogeos.rs index 3c9aa3fa..272361b5 100644 --- a/crates/types/bundle/src/dogeos.rs +++ b/crates/types/bundle/src/dogeos.rs @@ -1,16 +1,16 @@ use types_base::aggregation::{AggregationInput, ProofCarryingWitness}; +use types_base::public_inputs::dogeos::batch::DogeOsBatchInfoExtras; use types_base::public_inputs::dogeos::bundle::DogeOsBundleInfo; -use types_batch::dogeos::DogeOsBatchWitnessExtras; /// The witness for the bundle circuit. #[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct DogeOsBundleWitness { pub inner: crate::BundleWitness, - pub batch_info_extras: Vec, + pub batch_info_extras: Vec, } -impl From<(crate::BundleWitness, Vec)> for DogeOsBundleWitness { - fn from(value: (crate::BundleWitness, Vec)) -> Self { +impl From<(crate::BundleWitness, Vec)> for DogeOsBundleWitness { + fn from(value: (crate::BundleWitness, Vec)) -> Self { Self { inner: value.0, batch_info_extras: value.1, From 8ad121538831968a75dcc412e2ca0385f9e46394 Mon Sep 17 00:00:00 2001 From: lightsing Date: Tue, 9 Dec 2025 16:58:47 +0800 Subject: [PATCH 26/26] add missing --- crates/dogeos/circuits/bundle-circuit/src/circuit.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/dogeos/circuits/bundle-circuit/src/circuit.rs b/crates/dogeos/circuits/bundle-circuit/src/circuit.rs index c7c32312..9e12b082 100644 --- a/crates/dogeos/circuits/bundle-circuit/src/circuit.rs +++ b/crates/dogeos/circuits/bundle-circuit/src/circuit.rs @@ -16,6 +16,7 @@ use crate::child_commitments; #[allow(unused_imports, clippy::single_component_path_imports)] use openvm_keccak256_guest; +use scroll_zkvm_types_circuit::public_inputs::dogeos::batch::DogeOsBatchInfoExtras; #[derive(Default)] pub struct BundleCircuit; @@ -72,7 +73,7 @@ impl AggCircuit for BundleCircuit { .batch_infos .iter() .cloned() - .map(|inner| DogeOsBatchInfo { inner }) + .map(|inner| DogeOsBatchInfo { inner, extras: DogeOsBatchInfoExtras { } }) .map(|batch_info| (batch_info, version)) .collect() }