diff --git a/stwo_cairo_verifier/.tool-versions b/stwo_cairo_verifier/.tool-versions index aed7d7d5..c64f642c 100644 --- a/stwo_cairo_verifier/.tool-versions +++ b/stwo_cairo_verifier/.tool-versions @@ -1 +1,2 @@ -scarb nightly-2024-06-15 +scarb nightly-2024-08-31 +starknet-foundry 0.30.0 \ No newline at end of file diff --git a/stwo_cairo_verifier/Scarb.toml b/stwo_cairo_verifier/Scarb.toml index 53c84a92..ab88f3ec 100644 --- a/stwo_cairo_verifier/Scarb.toml +++ b/stwo_cairo_verifier/Scarb.toml @@ -1,8 +1,12 @@ [package] name = "stwo_cairo_verifier" version = "0.1.0" -edition = "2023_11" +edition = "2024_07" -# See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html +[lib] +casm = true [dependencies] + +[dev-dependencies] +cairo_test = "2.8.0" diff --git a/stwo_cairo_verifier/src/circle.cairo b/stwo_cairo_verifier/src/circle.cairo index df2a9b18..d29bf1ce 100644 --- a/stwo_cairo_verifier/src/circle.cairo +++ b/stwo_cairo_verifier/src/circle.cairo @@ -32,7 +32,7 @@ pub const CIRCLE_ORDER_BIT_MASK: u32 = 0x7fffffff; pub const U32_BIT_MASK: u64 = 0xffffffff; /// A point on the complex circle. Treated as an additive group. -#[derive(Drop, Copy, Debug, PartialEq, Eq)] +#[derive(Drop, Copy, Debug, PartialEq)] pub struct CirclePoint { pub x: F, pub y: F @@ -106,7 +106,7 @@ pub impl ComplexConjugateImpl of ComplexConjugateTrait { } /// Represents the coset `initial + `. -#[derive(Copy, Clone, Debug, PartialEq, Eq, Drop)] +#[derive(Copy, Clone, Debug, PartialEq, Drop)] pub struct Coset { // This is an index in the range [0, 2^31) pub initial_index: usize, diff --git a/stwo_cairo_verifier/src/fields/cm31.cairo b/stwo_cairo_verifier/src/fields/cm31.cairo index 0f17441d..3363d3a0 100644 --- a/stwo_cairo_verifier/src/fields/cm31.cairo +++ b/stwo_cairo_verifier/src/fields/cm31.cairo @@ -1,7 +1,7 @@ use core::num::traits::{One, Zero}; use super::m31::{M31, m31, M31Trait}; -#[derive(Copy, Drop, Debug, PartialEq, Eq)] +#[derive(Copy, Drop, Debug, PartialEq)] pub struct CM31 { pub a: M31, pub b: M31, diff --git a/stwo_cairo_verifier/src/fields/m31.cairo b/stwo_cairo_verifier/src/fields/m31.cairo index 7258bf4a..69491fe5 100644 --- a/stwo_cairo_verifier/src/fields/m31.cairo +++ b/stwo_cairo_verifier/src/fields/m31.cairo @@ -6,7 +6,7 @@ pub const P: u32 = 0x7fffffff; const P32NZ: NonZero = 0x7fffffff; const P64NZ: NonZero = 0x7fffffff; -#[derive(Copy, Drop, Debug, PartialEq, Eq)] +#[derive(Copy, Drop, Debug, PartialEq)] pub struct M31 { pub inner: u32 } diff --git a/stwo_cairo_verifier/src/fields/qm31.cairo b/stwo_cairo_verifier/src/fields/qm31.cairo index d1ab5fd1..f8ba678a 100644 --- a/stwo_cairo_verifier/src/fields/qm31.cairo +++ b/stwo_cairo_verifier/src/fields/qm31.cairo @@ -5,7 +5,7 @@ use core::num::traits::one::One; pub const R: CM31 = CM31 { a: M31 { inner: 2 }, b: M31 { inner: 1 } }; -#[derive(Copy, Drop, Debug, PartialEq, Eq)] +#[derive(Copy, Drop, Debug, PartialEq)] pub struct QM31 { pub a: CM31, pub b: CM31, diff --git a/stwo_cairo_verifier/src/fri.cairo b/stwo_cairo_verifier/src/fri.cairo index 8a59533a..23fe23b8 100644 --- a/stwo_cairo_verifier/src/fri.cairo +++ b/stwo_cairo_verifier/src/fri.cairo @@ -1,3 +1,4 @@ +use core::dict::Felt252Dict; use stwo_cairo_verifier::fields::m31::M31Trait; use stwo_cairo_verifier::circle::{Coset, CosetImpl}; use stwo_cairo_verifier::poly::line::{LineDomain, LineDomainImpl}; diff --git a/stwo_cairo_verifier/src/poly/circle.cairo b/stwo_cairo_verifier/src/poly/circle.cairo index d8e0ab5e..34668fd4 100644 --- a/stwo_cairo_verifier/src/poly/circle.cairo +++ b/stwo_cairo_verifier/src/poly/circle.cairo @@ -15,7 +15,7 @@ use core::num::traits::ops::wrapping::WrappingSub; /// /// Valid domains are a disjoint union of two conjugate cosets: `+-C + `. /// The ordering defined on this domain is `C + iG_n`, and then `-C - iG_n`. -#[derive(Debug, Copy, Drop, PartialEq, Eq)] +#[derive(Debug, Copy, Drop, PartialEq)] pub struct CircleDomain { pub half_coset: Coset } @@ -61,7 +61,7 @@ pub impl CircleDomainImpl of CircleDomainTrait { /// An evaluation defined on a [CircleDomain]. /// /// The values are ordered according to the [CircleDomain] ordering. -#[derive(Debug, Drop, Clone, PartialEq, Eq)] +#[derive(Debug, Drop, Clone, PartialEq)] pub struct CircleEvaluation { pub values: Array, pub domain: CircleDomain, diff --git a/stwo_cairo_verifier/src/queries.cairo b/stwo_cairo_verifier/src/queries.cairo index 6748a068..279b701f 100644 --- a/stwo_cairo_verifier/src/queries.cairo +++ b/stwo_cairo_verifier/src/queries.cairo @@ -9,7 +9,7 @@ use stwo_cairo_verifier::sort::MinimumToMaximumSortedIterator; /// An ordered set of query indices over a bit reversed [CircleDomain]. -#[derive(Drop, Clone, Debug, PartialEq, Eq)] +#[derive(Drop, Clone, Debug, PartialEq)] pub struct Queries { pub positions: Array, pub log_domain_size: u32, diff --git a/stwo_cairo_verifier/src/utils.cairo b/stwo_cairo_verifier/src/utils.cairo index 190c8cbf..3b5e32f3 100644 --- a/stwo_cairo_verifier/src/utils.cairo +++ b/stwo_cairo_verifier/src/utils.cairo @@ -1,4 +1,5 @@ use core::array::SpanTrait; +use core::dict::Felt252Dict; use core::traits::PanicDestruct; use core::option::OptionTrait; use core::box::BoxTrait;