introduce error handling

This commit is contained in:
Alex Vlasov 2019-02-07 17:25:24 +03:00
parent 056b7873cc
commit 614d486b99

@ -20,7 +20,7 @@ pub fn create_advice_on_information_and_srs<E: Engine, C: Circuit<E>, S: Synthes
proof: &Proof<E>, proof: &Proof<E>,
srs: &SRS<E>, srs: &SRS<E>,
n: usize n: usize
) -> SxyAdvice<E> ) -> Result<SxyAdvice<E>, SynthesisError>
{ {
let z: E::Fr; let z: E::Fr;
let y: E::Fr; let y: E::Fr;
@ -31,11 +31,11 @@ pub fn create_advice_on_information_and_srs<E: Engine, C: Circuit<E>, S: Synthes
transcript.commit_point(&proof.t); transcript.commit_point(&proof.t);
z = transcript.get_challenge_scalar(); z = transcript.get_challenge_scalar();
} }
let z_inv = z.inverse().unwrap(); // TODO let z_inv = z.inverse().ok_or(SynthesisError::DivisionByZero)?;
let (s_poly_negative, s_poly_positive) = { let (s_poly_negative, s_poly_positive) = {
let mut tmp = SxEval::new(y, n); let mut tmp = SxEval::new(y, n);
S::synthesize(&mut tmp, circuit).unwrap(); // TODO S::synthesize(&mut tmp, circuit)?;
tmp.poly() tmp.poly()
}; };
@ -87,18 +87,18 @@ pub fn create_advice_on_information_and_srs<E: Engine, C: Circuit<E>, S: Synthes
).into_affine() ).into_affine()
}; };
SxyAdvice { Ok(SxyAdvice {
s, s,
szy, szy,
opening opening
} })
} }
pub fn create_advice<E: Engine, C: Circuit<E>, S: SynthesisDriver>( pub fn create_advice<E: Engine, C: Circuit<E>, S: SynthesisDriver>(
circuit: &C, circuit: &C,
proof: &Proof<E>, proof: &Proof<E>,
parameters: &Parameters<E>, parameters: &Parameters<E>,
) -> SxyAdvice<E> ) -> Result<SxyAdvice<E>, SynthesisError>
{ {
let n = parameters.vk.n; let n = parameters.vk.n;
create_advice_on_information_and_srs::<E, C, S>(circuit, proof, &parameters.srs, n) create_advice_on_information_and_srs::<E, C, S>(circuit, proof, &parameters.srs, n)
@ -108,7 +108,7 @@ pub fn create_advice_on_srs<E: Engine, C: Circuit<E>, S: SynthesisDriver>(
circuit: &C, circuit: &C,
proof: &Proof<E>, proof: &Proof<E>,
srs: &SRS<E> srs: &SRS<E>
) -> SxyAdvice<E> ) -> Result<SxyAdvice<E>, SynthesisError>
{ {
// annoying, but we need n to compute s(z, y), and this isn't // annoying, but we need n to compute s(z, y), and this isn't
// precomputed anywhere yet // precomputed anywhere yet
@ -124,7 +124,7 @@ pub fn create_advice_on_srs<E: Engine, C: Circuit<E>, S: SynthesisDriver>(
} }
let mut tmp = CountN{n:0}; let mut tmp = CountN{n:0};
S::synthesize(&mut tmp, circuit).unwrap(); // TODO S::synthesize(&mut tmp, circuit)?;
tmp.n tmp.n
}; };
@ -216,7 +216,7 @@ pub fn create_proof<E: Engine, C: Circuit<E>, S: SynthesisDriver>(
rx1.extend(wires.a); rx1.extend(wires.a);
let mut rxy = rx1.clone(); let mut rxy = rx1.clone();
let y_inv = y.inverse().unwrap(); // TODO let y_inv = y.inverse().ok_or(SynthesisError::DivisionByZero)?;
let mut tmp = y.pow(&[n as u64]); let mut tmp = y.pow(&[n as u64]);
for rxy in rxy.iter_mut().rev() { for rxy in rxy.iter_mut().rev() {
@ -226,7 +226,7 @@ pub fn create_proof<E: Engine, C: Circuit<E>, S: SynthesisDriver>(
let (s_poly_negative, s_poly_positive) = { let (s_poly_negative, s_poly_positive) = {
let mut tmp = SxEval::new(y, n); let mut tmp = SxEval::new(y, n);
S::synthesize(&mut tmp, circuit).unwrap(); // TODO S::synthesize(&mut tmp, circuit)?;
tmp.poly() tmp.poly()
}; };
@ -262,7 +262,7 @@ pub fn create_proof<E: Engine, C: Circuit<E>, S: SynthesisDriver>(
transcript.commit_point(&t); transcript.commit_point(&t);
let z: E::Fr = transcript.get_challenge_scalar(); let z: E::Fr = transcript.get_challenge_scalar();
let z_inv = z.inverse().unwrap(); // TODO let z_inv = z.inverse().ok_or(SynthesisError::DivisionByZero)?;
// TODO: use the faster way to evaluate the polynomials // TODO: use the faster way to evaluate the polynomials
let mut rz = E::Fr::zero(); let mut rz = E::Fr::zero();