refactors and typed config

This commit is contained in:
Erhan Tezcan
2023-03-31 15:00:57 +03:00
parent d46b5fae90
commit ddb2e296fa
19 changed files with 84 additions and 51 deletions

View File

@@ -1,5 +1,6 @@
<%#'this file is an EJS template to generate main component for circuits'-%>
<%#'configuration is read from config.js in the project root directory'-%>
<%#'do not edit this file!'-%>
// auto-generated by instantiate.js
pragma circom 2.0.0;
@@ -9,4 +10,4 @@ component main<%=
publicInputs.length == 0 ?
'' :
' {public[' + publicInputs.join(", ") + ']}'
%> = <%= template %>(<%= templateInputs.join(", ") %>);
%> = <%= template %>(<%= templateParams.join(", ") %>);

View File

@@ -1,6 +1,6 @@
// auto-generated by instantiate.js
pragma circom 2.0.0;
include "../../circuits/fibonacci.circom";
include "../fibonacci.circom";
component main = Fibonacci(11);

View File

@@ -1,6 +1,6 @@
// auto-generated by instantiate.js
pragma circom 2.0.0;
include "../../circuits/float_add.circom";
include "../float_add.circom";
component main = FloatAdd(8, 23);

View File

@@ -1,6 +1,6 @@
// auto-generated by instantiate.js
pragma circom 2.0.0;
include "../../circuits/float_add.circom";
include "../float_add.circom";
component main = FloatAdd(11, 52);

View File

@@ -1,6 +1,6 @@
// auto-generated by instantiate.js
pragma circom 2.0.0;
include "../../circuits/multiplier.circom";
include "../multiplier.circom";
component main = Multiplier(3);

View File

@@ -1,6 +1,6 @@
// auto-generated by instantiate.js
pragma circom 2.0.0;
include "../../circuits/sudoku.circom";
include "../sudoku.circom";
component main {public[puzzle]} = Sudoku(3);

View File

@@ -1,12 +1,9 @@
pragma circom 2.0.0;
// Multiplication of two numbers
template Multiplier2() {
signal input in1;
signal input in2;
signal output out;
out <== in1 * in2;
template MultiplicationGate() {
signal input in[2];
signal output out <== in[0] * in[1];
}
// Multiplication of N numbers
@@ -15,17 +12,15 @@ template Multiplier(N) {
signal output out;
component comp[N-1];
// instantiate multiplier2 gates
// instantiate gates
for (var i = 0; i < N-1; i++) {
comp[i] = Multiplier2();
comp[i] = MultiplicationGate();
}
// multiply
comp[0].in1 <== in[0];
comp[0].in2 <== in[1];
for(var i = 0; i < N-2; i++){
comp[i+1].in1 <== comp[i].out;
comp[i+1].in2 <== in[i+2];
comp[0].in <== [in[0], in[1]];
for(var i = 0; i < N-2; i++) {
comp[i+1].in <== [comp[i].out, in[i+2]];
}
out <== comp[N-2].out;
}

View File

@@ -1,5 +1,7 @@
pragma circom 2.0.0;
// include "circomlib/circuits/" TODO TODO
// Assert that two elements are not equal.
// Done via the check if in0 - in1 is non-zero.
template NonEqual() {

View File

@@ -1,6 +0,0 @@
// auto-generated by instantiate.js
pragma circom 2.0.0;
include "../float_add.circom";
component main = CheckBitLength(3);