diff --git a/src/lib.rs b/src/lib.rs index f7e7396..ae5e99f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -17,7 +17,7 @@ use arrayref::array_ref; // extern crate blake; // compatible version with Blake used at circomlib use blake2::{Blake2b512, Digest}; // use hex_literal::hex; -use std::{cmp::min, io::Bytes}; +use std::{cmp::min, io::Bytes, str::FromStr}; use num_bigint::{BigInt, RandBigInt, Sign, ToBigInt}; use num_traits::One; @@ -161,6 +161,15 @@ impl ToDecimalString for Fr { BigInt::from_str_radix(&hex_str, 16).unwrap().to_string() } } +pub trait FrToBigInt { + fn to_bigint(&self) -> BigInt; +} + +impl FrToBigInt for Fr { + fn to_bigint(&self) -> BigInt { + BigInt::from_str(&self.to_dec_string()).unwrap() + } +} impl Serialize for Point { fn serialize(&self, serializer: S) -> Result