diff --git a/README.md b/README.md index 71df845a6..20852e034 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ In addition, the [`curves`](https://github.com/arkworks-rs/curves) repository co ## Build guide -The library compiles on the `stable` toolchain of the Rust compiler. To install the latest version of Rust, first install `rustup` by following the instructions [here](https://rustup.rs/), or via your platform's package manager. Once `rustup` is installed, install the Rust toolchain by invoking: +The library compiles on the `stable (1.46+)` toolchain of the Rust compiler. To install the latest version of Rust, first install `rustup` by following the instructions [here](https://rustup.rs/), or via your platform's package manager. Once `rustup` is installed, install the Rust toolchain by invoking: ```bash rustup install stable ``` diff --git a/ec/src/lib.rs b/ec/src/lib.rs index 64dff019c..18127521d 100644 --- a/ec/src/lib.rs +++ b/ec/src/lib.rs @@ -330,6 +330,8 @@ where pub trait CurveCycle where + ::BaseField: PrimeField + SquareRootField, + ::BaseField: PrimeField + SquareRootField, ::Projective: MulAssign<::BaseField>, ::Projective: MulAssign<::BaseField>, { @@ -340,7 +342,19 @@ where type E2: AffineCurve; } -pub trait PairingFriendlyCycle: CurveCycle { +pub trait PairingFriendlyCycle: CurveCycle +where + ::BaseField: PrimeField + SquareRootField, + ::BaseField: PrimeField + SquareRootField, + ::Projective: MulAssign<::BaseField>, + ::Projective: MulAssign<::BaseField>, + ::G1Prepared: From, + ::G1Prepared: From, + ::G2Projective: + MulAssign<::ScalarField>, + ::G2Projective: + MulAssign<::ScalarField>, +{ type Engine1: PairingEngine< G1Affine = Self::E1, G1Projective = ::Projective,