From 8879c42837774181025a1fee5f41c15ce21a0239 Mon Sep 17 00:00:00 2001 From: dark64 Date: Mon, 17 Oct 2022 13:39:16 +0200 Subject: [PATCH] minor refactor --- zokrates_analysis/src/flatten_complex_types.rs | 3 +-- zokrates_ast/src/common/solvers.rs | 2 +- zokrates_ast/src/typed/mod.rs | 9 ++++----- zokrates_ast/src/zir/mod.rs | 2 +- zokrates_codegen/src/lib.rs | 2 -- zokrates_core/src/optimizer/directive.rs | 4 +++- zokrates_core/src/semantics.rs | 4 ++-- zokrates_interpreter/src/lib.rs | 10 ++++------ zokrates_js/index.d.ts | 2 +- zokrates_js/lib.js | 2 +- zokrates_js/package.json | 4 ++-- zokrates_js/tests/tests.js | 1 + zokrates_proof_systems/src/lib.rs | 2 +- 13 files changed, 22 insertions(+), 25 deletions(-) diff --git a/zokrates_analysis/src/flatten_complex_types.rs b/zokrates_analysis/src/flatten_complex_types.rs index 2964ff06..66647041 100644 --- a/zokrates_analysis/src/flatten_complex_types.rs +++ b/zokrates_analysis/src/flatten_complex_types.rs @@ -455,8 +455,7 @@ fn fold_assembly_statement<'ast, T: Field>( let mut statements_buffer: Vec> = statements_buffer .into_iter() .rev() - .map(|s| finder.fold_statement(s)) - .flatten() + .flat_map(|s| finder.fold_statement(s)) .collect(); statements_buffer.reverse(); diff --git a/zokrates_ast/src/common/solvers.rs b/zokrates_ast/src/common/solvers.rs index 598b35e8..b63a71d1 100644 --- a/zokrates_ast/src/common/solvers.rs +++ b/zokrates_ast/src/common/solvers.rs @@ -23,7 +23,7 @@ pub enum Solver<'ast, T> { impl<'ast, T: fmt::Debug + fmt::Display> fmt::Display for Solver<'ast, T> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { - Solver::Zir(func) => write!(f, "Zir({})", "ignored"), + Solver::Zir(_) => write!(f, "Zir(ignored)"), _ => write!(f, "{:?}", self), } } diff --git a/zokrates_ast/src/typed/mod.rs b/zokrates_ast/src/typed/mod.rs index f6f865a8..59e79303 100644 --- a/zokrates_ast/src/typed/mod.rs +++ b/zokrates_ast/src/typed/mod.rs @@ -1334,11 +1334,10 @@ impl<'ast, T> FieldElementExpression<'ast, T> { FieldElementExpression::Sub(box left, box right) => { left.is_linear() && right.is_linear() } - FieldElementExpression::Mult(box left, box right) => match (left, right) { - (FieldElementExpression::Number(_), _) => true, - (_, FieldElementExpression::Number(_)) => true, - _ => false, - }, + FieldElementExpression::Mult(box left, box right) => matches!( + (left, right), + (FieldElementExpression::Number(_), _) | (_, FieldElementExpression::Number(_)) + ), FieldElementExpression::Div(_, _) => false, FieldElementExpression::Pow(_, _) => false, FieldElementExpression::Conditional(_) => false, diff --git a/zokrates_ast/src/zir/mod.rs b/zokrates_ast/src/zir/mod.rs index c1752b52..d33ea7ef 100644 --- a/zokrates_ast/src/zir/mod.rs +++ b/zokrates_ast/src/zir/mod.rs @@ -209,7 +209,7 @@ impl<'ast, T: fmt::Display> ZirStatement<'ast, T> { match self { ZirStatement::Return(ref exprs) => { write!(f, "return")?; - if exprs.len() > 0 { + if !exprs.is_empty() { write!( f, " {}", diff --git a/zokrates_codegen/src/lib.rs b/zokrates_codegen/src/lib.rs index d80b7eef..3e7c2689 100644 --- a/zokrates_codegen/src/lib.rs +++ b/zokrates_codegen/src/lib.rs @@ -1579,8 +1579,6 @@ impl<'ast, T: Field> Flattener<'ast, T> { let left_metadata = left.metadata.clone().unwrap(); let right_metadata = right.metadata.clone().unwrap(); - println!("left {}, right {}", left, right); - match (left.into_inner(), right.into_inner()) { (UExpressionInner::And(box a, box b), UExpressionInner::And(box aa, box c)) => { if aa.clone().into_inner() == UExpressionInner::Not(box a.clone()) { diff --git a/zokrates_core/src/optimizer/directive.rs b/zokrates_core/src/optimizer/directive.rs index b216bef6..4d140637 100644 --- a/zokrates_core/src/optimizer/directive.rs +++ b/zokrates_core/src/optimizer/directive.rs @@ -14,9 +14,11 @@ use zokrates_ast::ir::folder::*; use zokrates_ast::ir::*; use zokrates_field::Field; +type SolverCall<'ast, T> = (Solver<'ast, T>, Vec>); + #[derive(Debug, Default)] pub struct DirectiveOptimizer<'ast, T> { - calls: HashMap<(Solver<'ast, T>, Vec>), Vec>, + calls: HashMap, Vec>, /// Map of renamings for reassigned variables while processing the program. substitution: HashMap, } diff --git a/zokrates_core/src/semantics.rs b/zokrates_core/src/semantics.rs index 5a325cb8..246f1166 100644 --- a/zokrates_core/src/semantics.rs +++ b/zokrates_core/src/semantics.rs @@ -1791,7 +1791,7 @@ impl<'ast, T: Field> Checker<'ast, T> { let e = match checked_e { TypedExpression::FieldElement(e) => Ok(e), - TypedExpression::Int(e) => Ok(FieldElementExpression::try_from_int(e).unwrap()), // todo: handle properly + TypedExpression::Int(e) => Ok(FieldElementExpression::try_from_int(e).unwrap()), _ => Err(ErrorInner { pos: Some(pos), message: "Only field element expressions are allowed in the assembly" @@ -3718,7 +3718,7 @@ impl<'ast, T: Field> Checker<'ast, T> { ty, is_mutable, }; - self.scope.insert(id.into(), info) + self.scope.insert(id, info) } fn find_functions( diff --git a/zokrates_interpreter/src/lib.rs b/zokrates_interpreter/src/lib.rs index 12eb7b90..6de06764 100644 --- a/zokrates_interpreter/src/lib.rs +++ b/zokrates_interpreter/src/lib.rs @@ -82,7 +82,7 @@ impl Interpreter { } _ => Self::execute_solver(&d.solver, &inputs), } - .map_err(|e| Error::Solver(e))?; + .map_err(Error::Solver)?; for (i, o) in d.outputs.iter().enumerate() { witness.insert(*o, res[i].clone()); @@ -193,8 +193,8 @@ impl Interpreter { .fold_function(func.clone()) .map_err(|e| e.to_string())?; - assert!(folded_function.statements.len() == 1); - let res = if let zokrates_ast::zir::ZirStatement::Return(v) = + assert_eq!(folded_function.statements.len(), 1); + if let zokrates_ast::zir::ZirStatement::Return(v) = folded_function.statements[0].clone() { v.into_iter() @@ -207,9 +207,7 @@ impl Interpreter { .collect() } else { unreachable!() - }; - - res + } } Solver::ConditionEq => match inputs[0].is_zero() { true => vec![T::zero(), T::one()], diff --git a/zokrates_js/index.d.ts b/zokrates_js/index.d.ts index 2aa5892a..7c7bc8e0 100644 --- a/zokrates_js/index.d.ts +++ b/zokrates_js/index.d.ts @@ -60,7 +60,7 @@ declare module "zokrates-js" { snarkjs?: { program: Uint8Array; }; - constraint_count: number; + constraintCount?: number; } export interface SetupKeypair { diff --git a/zokrates_js/lib.js b/zokrates_js/lib.js index 62886e3d..464e8cb5 100644 --- a/zokrates_js/lib.js +++ b/zokrates_js/lib.js @@ -16,7 +16,7 @@ module.exports = (pkg) => { { program: ptr.program(), abi: ptr.abi(), - constraint_count: ptr.constraint_count(), + constraintCount: ptr.constraint_count(), }, snarkjs ? { snarkjs: { program: ptr.snarkjs_program() } } : {}, ); diff --git a/zokrates_js/package.json b/zokrates_js/package.json index 5a0835ea..ba222692 100644 --- a/zokrates_js/package.json +++ b/zokrates_js/package.json @@ -32,9 +32,9 @@ "prebuild": "npm install", "build": "npm run build:bundler && npm run build:node", "build:dev": "npm run build:bundler:dev && npm run build:node:dev", - "build:bundler": "rimraf pkg && npm run wasm-pack -- --target bundler && npm run clean-pkg", + "build:bundler": "rimraf pkg && npm run wasm-pack -- --target bundler --release && npm run clean-pkg", "build:bundler:dev": "rimraf pkg && npm run wasm-pack -- --target bundler --dev && npm run clean-pkg", - "build:node": "rimraf node/pkg && npm run wasm-pack -- --target nodejs -d node/pkg && npm run clean-node-pkg", + "build:node": "rimraf node/pkg && npm run wasm-pack -- --target nodejs -d node/pkg --release && npm run clean-node-pkg", "build:node:dev": "rimraf node/pkg && npm run wasm-pack -- --target nodejs -d node/pkg --dev && npm run clean-node-pkg", "clean-pkg": "rimraf pkg/README.md pkg/.gitignore pkg/package.json pkg/*.d.ts", "clean-node-pkg": "rimraf node/pkg/README.md node/pkg/.gitignore node/pkg/package.json node/pkg/*.d.ts", diff --git a/zokrates_js/tests/tests.js b/zokrates_js/tests/tests.js index 86ed3bcd..d9b74b70 100644 --- a/zokrates_js/tests/tests.js +++ b/zokrates_js/tests/tests.js @@ -44,6 +44,7 @@ describe("tests", () => { ); assert.ok(artifacts); assert.ok(artifacts.snarkjs === undefined); + assert.eq(artifacts.constraintCount === 1); }); }); diff --git a/zokrates_proof_systems/src/lib.rs b/zokrates_proof_systems/src/lib.rs index 4184f6c9..7076cde0 100644 --- a/zokrates_proof_systems/src/lib.rs +++ b/zokrates_proof_systems/src/lib.rs @@ -126,7 +126,7 @@ pub trait MpcBackend> { output: &mut W, ) -> Result<(), String>; - fn contribute<'a, R: Read, W: Write, G: Rng>( + fn contribute( params: &mut R, rng: &mut G, output: &mut W,