Skip to content

Commit 5c252c3

Browse files
Bump stwo-cairo. (#458)
1 parent 5eb0587 commit 5c252c3

13 files changed

Lines changed: 68 additions & 43 deletions

File tree

Cargo.lock

Lines changed: 32 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ edition = "2024"
1818
[workspace.dependencies]
1919
blake2 = { version = "0.10.6", default-features = false }
2020
hashbrown = ">=0.15.2"
21-
indexmap = { version = "2.10.0", default-features = false }
21+
indexmap = { version = "2.10.0", default-features = false, features = ["std"] }
2222
indoc = "2.0.6"
2323
itertools = { version = "0.12", default-features = false, features = [
2424
"use_alloc",
@@ -33,21 +33,21 @@ serde = "1.0.219"
3333
serde_json = "1.0"
3434

3535
# stwo
36-
stwo = { git = "https://github.com/starkware-libs/stwo", rev = "aeceb74c", features = [
36+
stwo = { version = "2.2.0", features = [
3737
"parallel",
3838
], default-features = false }
39-
stwo-constraint-framework = { git = "https://github.com/starkware-libs/stwo", rev = "aeceb74c", features = [
39+
stwo-constraint-framework = { version = "2.2.0", features = [
4040
"parallel",
4141
] }
42-
stwo-air-utils-derive = { git = "https://github.com/starkware-libs/stwo", rev = "aeceb74c" }
43-
stwo-air-utils = { git = "https://github.com/starkware-libs/stwo", rev = "aeceb74c" }
42+
stwo-air-utils-derive = { version = "2.2.0" }
43+
stwo-air-utils = { version = "2.2.0" }
4444

4545
# stwo-cairo
46-
cairo-air = { git = "https://github.com/starkware-libs/stwo-cairo", rev = "467d5c6d" }
47-
stwo_cairo_prover = { package = "stwo-cairo-prover", git = "https://github.com/starkware-libs/stwo-cairo", rev = "467d5c6d" }
48-
stwo_cairo_common = { package = "stwo-cairo-common", git = "https://github.com/starkware-libs/stwo-cairo", rev = "467d5c6d" }
49-
stwo_cairo_dev_utils = { package = "stwo-cairo-dev-utils", git = "https://github.com/starkware-libs/stwo-cairo", rev = "467d5c6d" }
50-
stwo_cairo_utils = { package = "stwo-cairo-utils", git = "https://github.com/starkware-libs/stwo-cairo", rev = "467d5c6d" }
46+
cairo-air = { git = "https://github.com/starkware-libs/stwo-cairo", rev = "8a3950c2" }
47+
stwo_cairo_prover = { package = "stwo-cairo-prover", git = "https://github.com/starkware-libs/stwo-cairo", rev = "8a3950c2" }
48+
stwo_cairo_common = { package = "stwo-cairo-common", git = "https://github.com/starkware-libs/stwo-cairo", rev = "8a3950c2" }
49+
stwo_cairo_dev_utils = { package = "stwo-cairo-dev-utils", git = "https://github.com/starkware-libs/stwo-cairo", rev = "8a3950c2" }
50+
stwo_cairo_utils = { package = "stwo-cairo-utils", git = "https://github.com/starkware-libs/stwo-cairo", rev = "8a3950c2" }
5151

5252
# local crates
5353
circuits = { path = "crates/circuits"}

crates/cairo_air/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ circuits-stark-verifier.workspace = true
1717
serde_json.workspace = true
1818

1919
[dev-dependencies]
20+
cairo-vm = "3.2.0"
2021
stwo_cairo_prover.workspace = true
2122
stwo_cairo_dev_utils.workspace = true
2223
stwo_cairo_utils.workspace = true

crates/cairo_air/src/all_components.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,15 @@ pub fn all_components<Value: IValue>() -> IndexMap<&'static str, Box<dyn Circuit
147147
"range_check_builtin",
148148
Box::new(components::range_check_builtin::Component {}) as Box<dyn CircuitEval<Value>>,
149149
),
150+
(
151+
"ec_op_builtin",
152+
Box::new(components::ec_op_builtin::Component {}) as Box<dyn CircuitEval<Value>>,
153+
),
154+
(
155+
"partial_ec_mul_generic",
156+
Box::new(components::partial_ec_mul_generic::Component {})
157+
as Box<dyn CircuitEval<Value>>,
158+
),
150159
(
151160
"pedersen_aggregator_window_bits_18",
152161
Box::new(components::pedersen_aggregator_window_bits_18::Component {})

crates/cairo_air/src/privacy.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use cairo_air::PreProcessedTraceVariant;
21
use cairo_air::verifier::INTERACTION_POW_BITS;
32
use circuits::ivalue::NoValue;
43
use circuits_stark_verifier::constraint_eval::CircuitEval;
@@ -8,6 +7,7 @@ use indexmap::IndexMap;
87
use std::collections::HashSet;
98
use stwo::core::fri::FriConfig;
109
use stwo::core::pcs::PcsConfig;
10+
use stwo_cairo_common::preprocessed_columns::preprocessed_trace::PreProcessedTraceVariant;
1111

1212
use crate::all_components::all_components;
1313
use crate::utils::{get_test_data_dir, load_program};

crates/cairo_air/src/privacy_test.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ fn test_verify_privacy() {
8585

8686
#[test]
8787
fn test_verify_privacy_with_recursion() {
88+
// The proof file was generated from the proving-utils repo using:
89+
// cargo run -r --bin stwo-run-and-prove -- \
90+
// --prover_params_json ../stwo-circuits/test_data/privacy/prover_params.json \
91+
// --program ../stwo-circuits/test_data/privacy/privacy_simple_bootloader_compiled.json \
92+
// --program_input ../stwo-circuits/test_data/privacy/program_input.json \
93+
// --proof_path ../stwo-circuits/test_data/privacy/proof.bin --proof-format extended-binary
8894
let proof_path = get_proof_file_path("privacy");
8995
let proof_file = File::open(proof_path).unwrap();
9096
let cairo_proof = binary_deserialize_from_file(&proof_file).unwrap();

crates/cairo_air/src/sample_evaluations.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// AIR version 42672126
1+
// AIR version 77f11bb4
22
use stwo::core::fields::{cm31::CM31, m31::M31, qm31::QM31};
33
pub const ADD_AP_OPCODE_SAMPLE_EVAL_RESULT: QM31 =
44
QM31(CM31(M31(1435814162), M31(1618992457)), CM31(M31(840348268), M31(442754761)));

crates/cairo_air/src/statement.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::collections::HashMap;
33
use std::sync::Arc;
44

55
use crate::preprocessed_columns::MAX_SEQUENCE_LOG_SIZE;
6-
use cairo_air::PreProcessedTraceVariant;
76
use cairo_air::components::memory_address_to_id::MEMORY_ADDRESS_TO_ID_SPLIT;
87
use cairo_air::relations::{
98
MEMORY_ADDRESS_TO_ID_RELATION_ID, MEMORY_ID_TO_BIG_RELATION_ID, OPCODES_RELATION_ID,
@@ -29,6 +28,7 @@ use stwo_cairo_common::builtins::{
2928
BITWISE_BUILTIN_MEMORY_CELLS, PEDERSEN_BUILTIN_MEMORY_CELLS, POSEIDON_BUILTIN_MEMORY_CELLS,
3029
RANGE_CHECK_BUILTIN_MEMORY_CELLS,
3130
};
31+
use stwo_cairo_common::preprocessed_columns::preprocessed_trace::PreProcessedTraceVariant;
3232
use stwo_constraint_framework::preprocessed_columns::PreProcessedColumnId;
3333

3434
#[cfg(test)]

crates/cairo_air/src/test.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ use std::fs::{File, OpenOptions};
44
use std::sync::Arc;
55

66
use cairo_air::CairoProof;
7-
use cairo_air::PreProcessedTraceVariant;
87
use cairo_air::flat_claims::FlatClaim;
98
use cairo_air::utils::{binary_deserialize_from_file, binary_serialize_to_file};
109
use cairo_air::verifier::INTERACTION_POW_BITS;
10+
use cairo_vm::types::layout_name::LayoutName;
1111
use circuits::context::Context;
1212
use circuits::ivalue::NoValue;
1313
use circuits::ops::Guess;
@@ -23,6 +23,7 @@ use stwo::core::fields::qm31::QM31;
2323
use stwo::core::fri::FriConfig;
2424
use stwo::core::pcs::PcsConfig;
2525
use stwo::core::vcs_lifted::blake2_merkle::{Blake2sM31MerkleChannel, Blake2sM31MerkleHasher};
26+
use stwo_cairo_common::preprocessed_columns::preprocessed_trace::PreProcessedTraceVariant;
2627
use stwo_cairo_dev_utils::utils::get_compiled_cairo_program_path;
2728
use stwo_cairo_dev_utils::vm_utils::{ProgramType, run_and_adapt};
2829
use stwo_cairo_prover::prover::{ChannelHash, ProverParameters, prove_cairo};
@@ -156,7 +157,9 @@ fn test_verify_all_opcodes() {
156157
if std::env::var("FIX_PROOF").is_ok() {
157158
let compiled_program =
158159
get_compiled_cairo_program_path("test_prove_verify_all_opcode_components");
159-
let input = run_and_adapt(&compiled_program, ProgramType::Json, None).unwrap();
160+
let input =
161+
run_and_adapt(&compiled_program, ProgramType::Json, LayoutName::all_cairo_stwo, None)
162+
.unwrap();
160163
let prover_params = ProverParameters {
161164
channel_hash: ChannelHash::Blake2sM31,
162165
pcs_config: PcsConfig {

crates/cairo_air/src/verify.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::sync::Arc;
33
use crate::all_components::all_components;
44
use crate::statement::{CairoStatement, MEMORY_VALUES_LIMBS, PUBLIC_DATA_LEN};
55
use cairo_air::CairoProof;
6-
use cairo_air::PreProcessedTraceVariant;
76
use cairo_air::air::PublicData;
87
use cairo_air::flat_claims::FlatClaim;
98
use circuits::blake::HashValue;
@@ -21,6 +20,7 @@ use num_traits::Zero;
2120
use stwo::core::fields::m31::M31;
2221
use stwo::core::fields::qm31::QM31;
2322
use stwo::core::vcs_lifted::blake2_merkle::Blake2sM31MerkleHasher;
23+
use stwo_cairo_common::preprocessed_columns::preprocessed_trace::PreProcessedTraceVariant;
2424

2525
/// Logup security is defined by the `QM31` space (~124 bits) + `INTERACTION_POW_BITS` -
2626
/// log2(number of relation terms).

0 commit comments

Comments
 (0)