diff --git a/Cargo.toml b/Cargo.toml index b7878ae843..1f13590d08 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,3 +4,7 @@ members = [ "halo2_gadgets", "halo2_proofs", ] + +[patch.crates-io] +group = { git = "https://github.com/zkcrypto/group.git", rev = "696c2128529b5a9e18eed46d1da531753695db04" } +pasta_curves = { git = "https://github.com/zcash/pasta_curves.git", rev = "fb643a4e5ea25e035af758595f903b4002b0b7a3" } diff --git a/halo2_gadgets/src/ecc.rs b/halo2_gadgets/src/ecc.rs index 38fab0a49a..7b2849e951 100644 --- a/halo2_gadgets/src/ecc.rs +++ b/halo2_gadgets/src/ecc.rs @@ -578,7 +578,7 @@ impl> FixedPointShort { #[cfg(test)] pub(crate) mod tests { use ff::PrimeField; - use group::{prime::PrimeCurveAffine, Curve, Group}; + use group::{Curve, CurveAffine, Group}; use halo2_proofs::{ circuit::{Layouter, SimpleFloorPlanner, Value}, diff --git a/halo2_gadgets/src/ecc/chip.rs b/halo2_gadgets/src/ecc/chip.rs index 4d12057afb..32c9c62f91 100644 --- a/halo2_gadgets/src/ecc/chip.rs +++ b/halo2_gadgets/src/ecc/chip.rs @@ -8,7 +8,7 @@ use crate::{ use arrayvec::ArrayVec; use ff::PrimeField; -use group::prime::PrimeCurveAffine; +use group::CurveAffine as _; use halo2_proofs::{ circuit::{AssignedCell, Chip, Layouter, Value}, plonk::{Advice, Assigned, Column, ConstraintSystem, Error, Fixed}, diff --git a/halo2_gadgets/src/ecc/chip/add.rs b/halo2_gadgets/src/ecc/chip/add.rs index 8932b1282b..3c3a9e3d03 100644 --- a/halo2_gadgets/src/ecc/chip/add.rs +++ b/halo2_gadgets/src/ecc/chip/add.rs @@ -325,7 +325,7 @@ impl Config { #[cfg(test)] pub mod tests { - use group::{prime::PrimeCurveAffine, Curve}; + use group::{Curve, CurveAffine}; use halo2_proofs::{ circuit::{Layouter, Value}, plonk::Error, diff --git a/halo2_gadgets/src/ecc/chip/witness_point.rs b/halo2_gadgets/src/ecc/chip/witness_point.rs index 7cba8d6f87..a72c56277e 100644 --- a/halo2_gadgets/src/ecc/chip/witness_point.rs +++ b/halo2_gadgets/src/ecc/chip/witness_point.rs @@ -1,6 +1,6 @@ use super::{EccPoint, NonIdentityEccPoint}; -use group::prime::PrimeCurveAffine; +use group::CurveAffine as _; use halo2_proofs::{ circuit::{AssignedCell, Region, Value}, diff --git a/halo2_gadgets/src/sinsemilla/chip/hash_to_point.rs b/halo2_gadgets/src/sinsemilla/chip/hash_to_point.rs index 44beaa4259..fb85be2be7 100644 --- a/halo2_gadgets/src/sinsemilla/chip/hash_to_point.rs +++ b/halo2_gadgets/src/sinsemilla/chip/hash_to_point.rs @@ -127,7 +127,7 @@ where { use crate::sinsemilla::primitives::{K, S_PERSONALIZATION}; - use group::{prime::PrimeCurveAffine, Curve}; + use group::{Curve, CurveAffine}; use pasta_curves::arithmetic::CurveExt; let field_elems: Value> = message diff --git a/halo2_gadgets/src/sinsemilla/primitives/addition.rs b/halo2_gadgets/src/sinsemilla/primitives/addition.rs index 3949addaa1..2e4839eb74 100644 --- a/halo2_gadgets/src/sinsemilla/primitives/addition.rs +++ b/halo2_gadgets/src/sinsemilla/primitives/addition.rs @@ -1,6 +1,6 @@ use std::ops::Add; -use group::{cofactor::CofactorCurveAffine, Group}; +use group::{CurveAffine, Group}; use pasta_curves::pallas; use subtle::{ConstantTimeEq, CtOption}; diff --git a/halo2_proofs/src/poly/commitment.rs b/halo2_proofs/src/poly/commitment.rs index b10a2528de..a953467c7c 100644 --- a/halo2_proofs/src/poly/commitment.rs +++ b/halo2_proofs/src/poly/commitment.rs @@ -8,7 +8,7 @@ use crate::arithmetic::{best_fft, best_multiexp, parallelize, CurveAffine, Curve use crate::helpers::CurveRead; use ff::{Field, PrimeField}; -use group::{prime::PrimeCurveAffine, Curve, Group}; +use group::{Curve, Group}; use std::ops::{Add, AddAssign, Mul, MulAssign}; mod msm; @@ -74,7 +74,7 @@ impl Params { // Let's evaluate all of the Lagrange basis polynomials // using an inverse FFT. - let mut alpha_inv = <::Curve as Group>::Scalar::ROOT_OF_UNITY_INV; + let mut alpha_inv = ::Scalar::ROOT_OF_UNITY_INV; for _ in k..C::Scalar::S { alpha_inv = alpha_inv.square(); }