Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
fad9298
make submodules allow adding other pi inputs to customize scroll tool…
lightsing Dec 4, 2025
b64063e
expose encoded pi api
lightsing Dec 4, 2025
3b8baa1
apply review
lightsing Dec 4, 2025
f60d32e
group types
lightsing Dec 4, 2025
79eae51
move sol types out
lightsing Dec 4, 2025
b740e6d
re-export
lightsing Dec 4, 2025
768244f
save
lightsing Dec 4, 2025
a4430ff
copy circuit
lightsing Dec 4, 2025
1eccda7
can compile
lightsing Dec 4, 2025
47be5de
save
lightsing Dec 4, 2025
bc6d49f
save
lightsing Dec 4, 2025
ae9c264
poc
lightsing Dec 4, 2025
07d9db1
add ref
lightsing Dec 5, 2025
db0776a
add fixme
lightsing Dec 5, 2025
7a8a269
add openvm-blobstream
lightsing Dec 8, 2025
d5a8ca7
adapt batch & bundle
lightsing Dec 8, 2025
e5ad0c8
update soft link
lightsing Dec 8, 2025
2923257
add DaInclusionVerifier
lightsing Dec 9, 2025
7e502b8
add assertions.
lightsing Dec 9, 2025
a1142b2
update
lightsing Dec 9, 2025
fad2ad1
add chunk/batch
lightsing Dec 9, 2025
d2580a4
add files
lightsing Dec 9, 2025
d9b0966
add files
lightsing Dec 9, 2025
08a64ab
add files
lightsing Dec 9, 2025
0dc44d2
update lock
lightsing Dec 9, 2025
956f1a0
mock da_inclusion
lightsing Dec 9, 2025
1c8167e
override
lightsing Dec 9, 2025
43d6742
update
lightsing Dec 9, 2025
61c8267
try fix
lightsing Dec 9, 2025
63ecbb2
remove
lightsing Dec 9, 2025
cc6a9d4
add bundle
lightsing Dec 9, 2025
8ad1215
add missing
lightsing Dec 9, 2025
2fb95b4
Merge branch 'tmp/debug-master-base' into feat/dogeos
lightsing Jan 14, 2026
5fdeed3
upgrade openvm
lightsing Jan 14, 2026
5205025
fix upgrade
lightsing Jan 14, 2026
40dcea3
update trace
lightsing Jan 13, 2026
b55e50d
add batch e2e
lightsing Jan 13, 2026
412e9e7
add test-single-chunk
lightsing Jan 13, 2026
faa4a37
fix
lightsing Jan 14, 2026
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
2,284 changes: 1,767 additions & 517 deletions Cargo.lock

Large diffs are not rendered by default.

70 changes: 41 additions & 29 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +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/integration",
]
resolver = "2"

Expand All @@ -27,48 +31,48 @@ version = "0.7.1"

[workspace.dependencies]
# openvm guest libs
openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1" }
openvm-algebra-complex-macros = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-custom-insn = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-sha2 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1" }
openvm-sha256-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-p256 = { git = "https://github.com/openvm-org/openvm.git", package = "p256", tag = "v1.4.1", features = [
openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" }
openvm-algebra-complex-macros = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-custom-insn = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-sha2 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" }
openvm-sha256-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-p256 = { git = "https://github.com/openvm-org/openvm.git", package = "p256", tag = "v1.4.2", features = [
"std",
] }
openvm-k256 = { git = "https://github.com/openvm-org/openvm.git", package = "k256", tag = "v1.4.1", features = [
openvm-k256 = { git = "https://github.com/openvm-org/openvm.git", package = "k256", tag = "v1.4.2", features = [
"std",
] }
openvm-pairing = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1" }
openvm-keccak256-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-bigint-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-rv32im-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-pairing = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" }
openvm-keccak256-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-bigint-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-rv32im-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }

# openvm host libs
openvm-benchmarks-prove = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-benchmarks-utils = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-build = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-circuit = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-continuations = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-instructions = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-native-circuit = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-native-compiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-native-recursion = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-native-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-rv32im-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false, features = [
openvm-benchmarks-prove = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-benchmarks-utils = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-build = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-circuit = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-continuations = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-instructions = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-native-circuit = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-native-compiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-native-recursion = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-native-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-rv32im-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false, features = [
"parallel",
"evm-prove",
"legacy-v1-3-evm-verifier",
"tco",
"unprotected"
] }
openvm-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", default-features = false }
openvm-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }

# more openvm related libs
openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.1" }
openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.2" }

sbv-core = { git = "https://github.com/scroll-tech/stateless-block-verifier", tag = "scroll-v91.2" }
sbv-helpers = { git = "https://github.com/scroll-tech/stateless-block-verifier", tag = "scroll-v91.2", features = ["dev"] }
Expand Down Expand Up @@ -143,10 +147,18 @@ 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 = { git = "ssh://[email protected]/DogeOS69/dogeos-core.git", branch = "scroll/openvm/upgrade", default-features = false }
bridge_protocol = { git = "ssh://[email protected]/DogeOS69/dogeos-core.git", branch = "scroll/openvm/upgrade", default-features = false }
bridge_adapters_zk = { git = "ssh://[email protected]/DogeOS69/dogeos-core.git", branch = "scroll/openvm/upgrade", default-features = false }
bridge_steps_da = { git = "ssh://[email protected]/DogeOS69/dogeos-core.git", branch = "scroll/openvm/upgrade", default-features = false }
bridge_steps_deposit = { git = "ssh://[email protected]/DogeOS69/dogeos-core.git", branch = "scroll/openvm/upgrade", default-features = false }
bridge_transforms = { git = "ssh://[email protected]/DogeOS69/dogeos-core.git", branch = "scroll/openvm/upgrade", 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" }
Expand Down
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -88,7 +88,7 @@ test-execute-validium-e2e:
@cargo test --release -p scroll-zkvm-integration --test bundle_circuit test_execute_validium -- --exact --nocapture

test-single-chunk:
@cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test chunk_circuit setup_prove_verify_single -- --exact --nocapture
@cargo test $(CARGO_CONFIG_FLAG) --release -p dogeos-zkvm-integration --test chunk_circuit setup_prove_verify_single -- --exact --nocapture

test-axiom-single-chunk:
@cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test chunk_circuit setup_axiom_prove_verify_single -- --exact --nocapture
Expand All @@ -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
Expand All @@ -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
13 changes: 3 additions & 10 deletions crates/build-guest/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +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("dogeos")
.join("circuits")
.join(format!("{project_name}-circuit"));

Expand Down Expand Up @@ -176,15 +177,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)
Expand All @@ -207,7 +200,7 @@ fn generate_app_assets(workspace_dir: &Path, release_output_dir: &PathBuf) -> Re
.join("target")
.join("riscv32im-risc0-zkvm-elf")
.join("maxperf")
.join(format!("scroll-zkvm-{project_name}-circuit"));
.join(format!("dogeos-zkvm-{project_name}-circuit"));
let path_app_elf: PathBuf = path_assets.join("app.elf");
fs::copy(&elf_src, &path_app_elf)?;
println!("{LOG_PREFIX} elf written to {path_app_elf:?}");
Expand Down
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
1 change: 1 addition & 0 deletions crates/dogeos/circuits/batch-circuit/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/openvm
26 changes: 26 additions & 0 deletions crates/dogeos/circuits/batch-circuit/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[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
itertools.workspace = true

[features]
default = []

[dev-dependencies]
4 changes: 4 additions & 0 deletions crates/dogeos/circuits/batch-circuit/batch_exe_commit.rs
Original file line number Diff line number Diff line change
@@ -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];
4 changes: 4 additions & 0 deletions crates/dogeos/circuits/batch-circuit/batch_vm_commit.rs
Original file line number Diff line number Diff line change
@@ -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];
35 changes: 35 additions & 0 deletions crates/dogeos/circuits/batch-circuit/openvm.toml
Original file line number Diff line number Diff line change
@@ -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"
4 changes: 4 additions & 0 deletions crates/dogeos/circuits/batch-circuit/openvm_init.rs
Original file line number Diff line number Diff line change
@@ -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" }
Original file line number Diff line number Diff line change
@@ -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;
Loading