Skip to content

Commit

Permalink
Merge pull request #14 from iosis-tech/layouts
Browse files Browse the repository at this point in the history
Layouts
  • Loading branch information
Okm165 authored Jul 15, 2024
2 parents 51daa72 + 1baa1ee commit 9e21877
Show file tree
Hide file tree
Showing 17 changed files with 21,111 additions and 187 deletions.
2 changes: 0 additions & 2 deletions .cargo/.config.toml

This file was deleted.

3 changes: 3 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[env]
RUST_LOG = "info"
RUST_MIN_STACK = "16777216"
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ cargo test
- [x] dex
- [x] recursive
- [x] recursive_with_poseidon
- [ ] small
- [ ] starknet
- [ ] starknet_with_keccak
- [x] small
- [x] starknet
- [x] starknet_with_keccak

- **WASM Support:**
- [ ] Wasm bindings for integration with web applications
Expand Down
358 changes: 179 additions & 179 deletions crates/air/src/layout/dex/autogenerated.rs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion crates/air/src/layout/dex/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ impl LayoutTrait for RecursiveLayout {
segment: crate::layout::segments::OUTPUT,
})?
.begin_addr)
.field_div(&NonZeroFelt::from_felt_unchecked(Felt::from(0x5)));
.field_div(&NonZeroFelt::from_felt_unchecked(Felt::TWO));
ensure!(ecdsa_uses < ecdsa_copies, PublicInputError::UsesInvalid);
Ok(())
}
Expand Down
3 changes: 3 additions & 0 deletions crates/air/src/layout/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ use starknet_crypto::Felt;
pub mod dex;
pub mod recursive;
pub mod recursive_with_poseidon;
pub mod small;
pub mod starknet;
pub mod starknet_with_keccak;

// StarkCurve
pub mod stark_curve {
Expand Down
2 changes: 1 addition & 1 deletion crates/air/src/layout/recursive/autogenerated.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use super::global_values::GlobalValues;
use crate::layout::recursive::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND};
use super::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use super::global_values::GlobalValues;
use crate::layout::recursive::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND};
use super::{CONSTRAINT_DEGREE, NUM_COLUMNS_FIRST, NUM_COLUMNS_SECOND};
use starknet_core::types::NonZeroFelt;
use starknet_crypto::Felt;

Expand Down
2,313 changes: 2,313 additions & 0 deletions crates/air/src/layout/small/autogenerated.rs

Large diffs are not rendered by default.

102 changes: 102 additions & 0 deletions crates/air/src/layout/small/global_values.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
use cairovm_verifier_transcript::transcript::Transcript;
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
use starknet_core::serde::unsigned_field_element::UfeHex;
use starknet_crypto::Felt;

#[serde_as]
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct EcPoint {
#[serde_as(as = "UfeHex")]
pub x: Felt,
#[serde_as(as = "UfeHex")]
pub y: Felt,
}

#[serde_as]
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct EcdsaSigConfig {
#[serde_as(as = "UfeHex")]
pub alpha: Felt,
#[serde_as(as = "UfeHex")]
pub beta: Felt,
pub shift_point: EcPoint,
}

// Accumulation of member expressions for auto generated composition polynomial code.
#[serde_as]
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct GlobalValues {
// Public input.
#[serde_as(as = "UfeHex")]
pub trace_length: Felt,
#[serde_as(as = "UfeHex")]
pub initial_pc: Felt,
#[serde_as(as = "UfeHex")]
pub final_pc: Felt,
#[serde_as(as = "UfeHex")]
pub initial_ap: Felt,
#[serde_as(as = "UfeHex")]
pub final_ap: Felt,
#[serde_as(as = "UfeHex")]
pub initial_pedersen_addr: Felt,
#[serde_as(as = "UfeHex")]
pub initial_range_check_addr: Felt,
#[serde_as(as = "UfeHex")]
pub initial_ecdsa_addr: Felt,
#[serde_as(as = "UfeHex")]
pub range_check_min: Felt,
#[serde_as(as = "UfeHex")]
pub range_check_max: Felt,
// Constants.
#[serde_as(as = "UfeHex")]
pub offset_size: Felt,
#[serde_as(as = "UfeHex")]
pub half_offset_size: Felt,
pub pedersen_shift_point: EcPoint,
pub ecdsa_sig_config: EcdsaSigConfig,
// Periodic columns.
#[serde_as(as = "UfeHex")]
pub pedersen_points_x: Felt,
#[serde_as(as = "UfeHex")]
pub pedersen_points_y: Felt,
#[serde_as(as = "UfeHex")]
pub ecdsa_generator_points_x: Felt,
#[serde_as(as = "UfeHex")]
pub ecdsa_generator_points_y: Felt,
// Interaction elements.
#[serde_as(as = "UfeHex")]
pub memory_multi_column_perm_perm_interaction_elm: Felt,
#[serde_as(as = "UfeHex")]
pub memory_multi_column_perm_hash_interaction_elm0: Felt,
#[serde_as(as = "UfeHex")]
pub range_check16_perm_interaction_elm: Felt,
// Permutation products.
#[serde_as(as = "UfeHex")]
pub memory_multi_column_perm_perm_public_memory_prod: Felt,
#[serde_as(as = "UfeHex")]
pub range_check16_perm_public_memory_prod: Felt,
}

// Elements that are sent from the prover after the commitment on the original trace.
// Used for components after the first interaction, e.g., memory and range check.
#[serde_as]
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct InteractionElements {
#[serde_as(as = "UfeHex")]
pub memory_multi_column_perm_perm_interaction_elm: Felt,
#[serde_as(as = "UfeHex")]
pub memory_multi_column_perm_hash_interaction_elm0: Felt,
#[serde_as(as = "UfeHex")]
pub range_check16_perm_interaction_elm: Felt,
}

impl InteractionElements {
pub fn new(transcript: &mut Transcript) -> Self {
Self {
memory_multi_column_perm_perm_interaction_elm: transcript.random_felt_to_prover(),
memory_multi_column_perm_hash_interaction_elm0: transcript.random_felt_to_prover(),
range_check16_perm_interaction_elm: transcript.random_felt_to_prover(),
}
}
}
Loading

0 comments on commit 9e21877

Please sign in to comment.