From c7b879770ab9a5d6080d8fdb196199336bc8db2c Mon Sep 17 00:00:00 2001 From: Ary Borenszweig Date: Fri, 20 Dec 2024 12:56:49 -0300 Subject: [PATCH 1/2] chore: explicitly import `CurveTrait` for `sub` trait method --- src/test.nr | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test.nr b/src/test.nr index 8f218f1..0aab732 100644 --- a/src/test.nr +++ b/src/test.nr @@ -2,6 +2,7 @@ use crate::bjj::BabyJubJubParams; use crate::Curve; use crate::scalar_field::ScalarField; +use crate::CurveTrait; use ec::{consts::te::baby_jubjub, tecurve::affine::Point as TEPoint}; type BabyJubJub = Curve; From a80a56d4fa7a6e6d656721d8e23ff54aaf32b5e3 Mon Sep 17 00:00:00 2001 From: Ary Borenszweig Date: Thu, 2 Jan 2025 10:45:39 -0300 Subject: [PATCH 2/2] Remove default implementations that error --- src/lib.nr | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/lib.nr b/src/lib.nr index 86342ec..2aa4a8c 100644 --- a/src/lib.nr +++ b/src/lib.nr @@ -3,6 +3,7 @@ mod test; mod bjj; pub use crate::scalar_field::ScalarField; +use std::ops::{Add, Neg, Sub}; pub struct Curve { x: Field, @@ -23,23 +24,10 @@ trait TECurveParameterTrait { } /// Defines methods that a valid Curve implementation must satisfy -trait CurveTrait: std::ops::Add + std::ops::Sub + std::cmp::Eq + std::ops::Neg { - fn default() -> Self { - std::default::Default::default() - } +trait CurveTrait: Add + Sub + Eq + Neg + Default { fn new(x: Field, y: Field) -> Self; fn zero() -> Self; fn one() -> Self; - - fn add(self, x: Self) -> Self { - self + x - } - fn sub(self, x: Self) -> Self { - self - x - } - fn neg(self) -> Self { - std::ops::Neg::neg(self) - } fn dbl(self) -> Self; fn mul(self, x: ScalarField) -> Self; fn msm(