@@ -29,13 +29,16 @@ pub trait Pairing: Sized + 'static + Copy + Debug + Sync + Send + Eq {
29
29
type ScalarField : PrimeField ;
30
30
31
31
/// An element in G1.
32
- type G1 : CurveGroup < ScalarField = Self :: ScalarField , Affine = Self :: G1Affine >
33
- + From < Self :: G1Affine >
32
+ type G1 : CurveGroup <
33
+ BaseField = Self :: BaseField ,
34
+ ScalarField = Self :: ScalarField ,
35
+ Affine = Self :: G1Affine ,
36
+ > + From < Self :: G1Affine >
34
37
+ Into < Self :: G1Affine >
35
38
// needed due to https://github.com/rust-lang/rust/issues/69640
36
39
+ MulAssign < Self :: ScalarField > ;
37
40
38
- type G1Affine : AffineRepr < Group = Self :: G1 , ScalarField = Self :: ScalarField >
41
+ type G1Affine : AffineRepr < Group = Self :: G1 , BaseField = Self :: BaseField , ScalarField = Self :: ScalarField >
39
42
+ From < Self :: G1 >
40
43
+ Into < Self :: G1 >
41
44
+ Into < Self :: G1Prepared > ;
@@ -54,15 +57,21 @@ pub trait Pairing: Sized + 'static + Copy + Debug + Sync + Send + Eq {
54
57
+ From < Self :: G1Affine > ;
55
58
56
59
/// An element of G2.
57
- type G2 : CurveGroup < ScalarField = Self :: ScalarField , Affine = Self :: G2Affine >
58
- + From < Self :: G2Affine >
60
+ type G2 : CurveGroup <
61
+ ScalarField = Self :: ScalarField ,
62
+ Affine = Self :: G2Affine ,
63
+ BaseField : Field < BasePrimeField = Self :: BaseField > ,
64
+ > + From < Self :: G2Affine >
59
65
+ Into < Self :: G2Affine >
60
66
// needed due to https://github.com/rust-lang/rust/issues/69640
61
67
+ MulAssign < Self :: ScalarField > ;
62
68
63
69
/// The affine representation of an element in G2.
64
- type G2Affine : AffineRepr < Group = Self :: G2 , ScalarField = Self :: ScalarField >
65
- + From < Self :: G2 >
70
+ type G2Affine : AffineRepr <
71
+ Group = Self :: G2 ,
72
+ ScalarField = Self :: ScalarField ,
73
+ BaseField : Field < BasePrimeField = Self :: BaseField > ,
74
+ > + From < Self :: G2 >
66
75
+ Into < Self :: G2 >
67
76
+ Into < Self :: G2Prepared > ;
68
77
0 commit comments