diff --git a/zokrates_bellman/src/lib.rs b/zokrates_bellman/src/lib.rs index 9828b974..040683bf 100644 --- a/zokrates_bellman/src/lib.rs +++ b/zokrates_bellman/src/lib.rs @@ -11,7 +11,7 @@ use bellman::{ }; use std::collections::BTreeMap; use zokrates_ast::common::Variable; -use zokrates_ast::ir::{CanonicalLinComb, ProgIterator, Statement, Witness}; +use zokrates_ast::ir::{LinComb, ProgIterator, Statement, Witness}; use zokrates_field::BellmanFieldExtensions; use zokrates_field::Field; @@ -45,7 +45,7 @@ impl<'a, T: Field, I: IntoIterator>> Computation<'a, T, } fn bellman_combination>( - l: CanonicalLinComb, + l: LinComb, cs: &mut CS, symbols: &mut BTreeMap, witness: &mut Witness, @@ -127,19 +127,9 @@ impl<'a, T: BellmanFieldExtensions + Field, I: IntoIterator ::Fr { - use bellman_ce::pairing::ff::PrimeField; - let s = self.to_dec_string(); - ::Fr::from_str(&s).unwrap() + use bellman_ce::pairing::ff::{PrimeField, PrimeFieldRepr}; + let bytes = self.to_byte_vector(); + let mut repr = + <::Fr as PrimeField>::Repr::default(); + repr.read_le(bytes.as_slice()).unwrap(); + ::Fr::from_repr(repr).unwrap() } fn new_fq2(