Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions crates/circuits/batch-circuit/src/circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ use scroll_zkvm_types_circuit::{
io::read_witnesses,
public_inputs::{
Version,
batch::{BatchInfo, VersionedBatchInfo},
chunk::VersionedChunkInfo,
scroll::{
batch::{BatchInfo, VersionedBatchInfo},
chunk::VersionedChunkInfo,
},
},
};

Expand Down
6 changes: 4 additions & 2 deletions crates/circuits/bundle-circuit/src/circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ use scroll_zkvm_types_circuit::{
io::read_witnesses,
public_inputs::{
Version,
batch::VersionedBatchInfo,
bundle::{BundleInfo, VersionedBundleInfo},
scroll::{
batch::VersionedBatchInfo,
bundle::{BundleInfo, VersionedBundleInfo},
},
},
};

Expand Down
4 changes: 2 additions & 2 deletions crates/circuits/chunk-circuit/src/circuit.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use openvm::init;
use scroll_zkvm_types_chunk::ChunkWitness;
use scroll_zkvm_types_chunk::scroll::ChunkWitness;
use scroll_zkvm_types_circuit::{
Circuit,
io::read_witnesses,
public_inputs::{
Version,
chunk::{ChunkInfo, VersionedChunkInfo},
scroll::chunk::{ChunkInfo, VersionedChunkInfo},
},
};

Expand Down
2 changes: 1 addition & 1 deletion crates/integration/src/bin/chunk-scanner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use scroll_zkvm_integration::{
ProverTester,
testers::chunk::{ChunkProverTester, exec_chunk},
};
use scroll_zkvm_types::{chunk::ChunkWitness, version};
use scroll_zkvm_types::{scroll::chunk::ChunkWitness, version};
use std::collections::HashMap;
use std::{fs::File, path::PathBuf, slice};
use url::Url;
Expand Down
6 changes: 4 additions & 2 deletions crates/integration/src/testers/batch.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
use scroll_zkvm_types::{
batch::{BatchHeader, BatchInfo, BatchWitness, LegacyBatchWitness, ReferenceHeader},
chunk::ChunkInfo,
proof::ProofEnum,
public_inputs::{ForkName, Version},
scroll::{
batch::{BatchHeader, BatchInfo, BatchWitness, LegacyBatchWitness, ReferenceHeader},
chunk::ChunkInfo,
},
utils::serialize_vk,
};

Expand Down
6 changes: 4 additions & 2 deletions crates/integration/src/testers/bundle.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
use scroll_zkvm_types::{
batch::BatchInfo,
bundle::{BundleInfo, BundleWitness, LegacyBundleWitness},
proof::ProofEnum,
public_inputs::ForkName,
scroll::{
batch::BatchInfo,
bundle::{BundleInfo, BundleWitness, LegacyBundleWitness},
},
};

// Only related to hardcoded commitments. Can be refactored later.
Expand Down
5 changes: 3 additions & 2 deletions crates/integration/src/testers/chunk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ 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::chunk::ChunkWitnessUpgradeCompact;
use scroll_zkvm_types::{
chunk::{ChunkInfo, ChunkWitness, LegacyChunkWitness, SecretKey},
proof::ProofEnum,
public_inputs::{ForkName, Version},
scroll::chunk::{
ChunkInfo, ChunkWitness, ChunkWitnessUpgradeCompact, LegacyChunkWitness, SecretKey,
},
};
use std::{
fs::File,
Expand Down
19 changes: 10 additions & 9 deletions crates/integration/src/utils/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@ use bytesize::ByteSize;
use sbv_core::BlockWitness;
use sbv_primitives::types::consensus::ScrollTransaction;
use sbv_primitives::{B256, types::eips::Encodable2718};
use scroll_zkvm_types::batch::{N_BLOB_BYTES, build_point_eval_witness};
use scroll_zkvm_types::{
batch::{
BatchHeader, BatchHeaderV6, BatchHeaderV7, BatchHeaderValidium, BatchHeaderValidiumV1,
BatchInfo, BatchWitness, ReferenceHeader,
},
bundle::{BundleInfo, BundleWitness},
chunk::{ChunkInfo, ChunkWitness},
public_inputs::{ForkName, MultiVersionPublicInputs},
scroll::{
batch::{
BatchHeader, BatchHeaderV6, BatchHeaderV7, BatchHeaderValidium, BatchHeaderValidiumV1,
BatchInfo, BatchWitness, N_BLOB_BYTES, ReferenceHeader, build_point_eval_witness,
},
bundle::{BundleInfo, BundleWitness},
chunk::{ChunkInfo, ChunkWitness},
},
types_agg::AggregationInput,
utils::{keccak256, point_eval, serialize_vk},
};
Expand Down Expand Up @@ -299,7 +300,7 @@ pub fn build_batch_witnesses(
})
}
ForkName::EuclidV2 | ForkName::Feynman | ForkName::Galileo | ForkName::GalileoV2 => {
use scroll_zkvm_types::batch::BatchHeaderV7;
use scroll_zkvm_types::scroll::batch::BatchHeaderV7;
ReferenceHeader::V7_V8_V9(BatchHeaderV7 {
version: last_header.version,
batch_index: last_header.batch_index + 1,
Expand Down Expand Up @@ -412,7 +413,7 @@ pub fn build_batch_witnesses_validium(
#[test]
fn test_build_and_parse_batch_task() -> eyre::Result<()> {
use crate::testers::chunk::ChunkTaskGenerator;
use scroll_zkvm_types::batch::{self, Envelope, Payload};
use scroll_zkvm_types::scroll::batch::{self, Envelope, Payload};

let witness = match testing_hardfork() {
ForkName::EuclidV2 => ChunkTaskGenerator {
Expand Down
7 changes: 4 additions & 3 deletions crates/integration/tests/bundle_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ use scroll_zkvm_integration::{
utils::metadata_from_bundle_witnesses,
};
use scroll_zkvm_prover::{Prover, ProverConfig};
use scroll_zkvm_types::version::Version;
use scroll_zkvm_types::{
proof::OpenVmEvmProof,
public_inputs::{ForkName, MultiVersionPublicInputs},
public_inputs::{ForkName, MultiVersionPublicInputs, PublicInputs},
};
use std::str::FromStr;

Expand Down Expand Up @@ -84,7 +85,7 @@ fn setup_prove_verify_local_task() -> eyre::Result<()> {

#[test]
fn verify_bundle_info_pi() {
use scroll_zkvm_types::bundle::BundleInfo;
use scroll_zkvm_types::scroll::bundle::BundleInfo;

let info = BundleInfo {
chain_id: 534352,
Expand Down Expand Up @@ -114,7 +115,7 @@ fn verify_bundle_info_pi() {
};

assert_eq!(
info.pi_hash_euclidv1(),
(info, Version::euclid_v1()).pi_hash(),
B256::from_str("0x5e49fc59ce02b42a2f693c738c582b36bd08e9cfe3acb8cee299216743869bd4")
.unwrap()
);
Expand Down
2 changes: 1 addition & 1 deletion crates/integration/tests/chunk_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ use scroll_zkvm_integration::{
utils::metadata_from_chunk_witnesses,
};
use scroll_zkvm_prover::utils::read_json;
use scroll_zkvm_types::chunk::{ChunkWitness, SecretKey};
use scroll_zkvm_types::public_inputs::Version;
use scroll_zkvm_types::scroll::chunk::{ChunkWitness, SecretKey};
use std::env;
use std::path::Path;

Expand Down
23 changes: 16 additions & 7 deletions crates/types/base/src/public_inputs.rs
Original file line number Diff line number Diff line change
@@ -1,30 +1,39 @@
use crate::utils::keccak256;
use alloy_primitives::B256;

pub mod batch;
pub mod bundle;
pub mod chunk;
pub mod scroll;

pub use crate::{fork_name::ForkName, version::Version};

/// Defines behaviour to be implemented by types representing the public-input values of a circuit.
pub trait PublicInputs {
/// Public inputs encoded.
fn pi(&self) -> Vec<u8>;

/// Keccak-256 digest of the public inputs. The public-input hash are revealed as public values
/// via [`openvm::io::reveal`].
fn pi_hash(&self) -> B256;
fn pi_hash(&self) -> B256 {
keccak256(self.pi())
}

/// Validation logic between public inputs of two contiguous instances.
fn validate(&self, prev_pi: &Self);
}

/// helper trait to extend PublicInputs
pub trait MultiVersionPublicInputs {
fn pi_hash_by_version(&self, version: Version) -> B256;
/// Public inputs encoded for a specific version.
fn pi_by_version(&self, version: Version) -> Vec<u8>;
/// Keccak-256 digest of the public inputs for a specific version.
fn pi_hash_by_version(&self, version: Version) -> B256 {
keccak256(self.pi_by_version(version))
}
fn validate(&self, prev_pi: &Self, version: Version);
}

impl<T: MultiVersionPublicInputs> PublicInputs for (T, Version) {
fn pi_hash(&self) -> B256 {
self.0.pi_hash_by_version(self.1)
fn pi(&self) -> Vec<u8> {
self.0.pi_by_version(self.1)
}

fn validate(&self, prev_pi: &Self) {
Expand Down
3 changes: 3 additions & 0 deletions crates/types/base/src/public_inputs/scroll.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pub mod batch;
pub mod bundle;
pub mod chunk;
Loading
Loading