v1.4.1 pragma fix, tested w/ latest circom+snarkjs

This commit is contained in:
Cathie So
2022-12-03 21:13:47 +08:00
parent 6c36e090a8
commit 70ce72191b
48 changed files with 524 additions and 199 deletions

View File

@@ -1,6 +1,6 @@
// from 0xZKML/zk-mnist
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./circomlib/comparators.circom";
include "./circomlib/switcher.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./SumPooling2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
template BatchNormalization2D(nRows, nCols, nChannels) {
signal input in[nRows][nCols][nChannels];

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./circomlib-matrix/matElemMul.circom";
include "./circomlib-matrix/matElemSum.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./circomlib-matrix/matElemMul.circom";
include "./circomlib-matrix/matElemSum.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./circomlib-matrix/matMul.circom";
// Dense layer

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
// Flatten layer with that accepts a 2D input
template Flatten2D (nRows, nCols, nChannels) {

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./util.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
// Poly activation layer: https://arxiv.org/abs/2011.05530
template Poly (n) {

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./util.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./circomlib-matrix/matElemSum.circom";
include "./util.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
// matrix multiplication by element
template matElemMul (m,n) {

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
// sum of all elements in a matrix
template matElemSum (m,n) {

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "matElemMul.circom";
include "matElemSum.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "./circomlib/sign.circom";
include "./circomlib/bitify.circom";

605
package-lock.json generated
View File

@@ -1,21 +1,21 @@
{
"name": "circomlib-ml",
"version": "1.4.0",
"version": "1.4.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "circomlib-ml",
"version": "1.4.0",
"version": "1.4.1",
"license": "GPL-3.0",
"devDependencies": {
"@types/node": "^18.11.9",
"blake-hash": "^2.0.0",
"chai": "^4.3.4",
"circom_tester": "0.0.5",
"circomlib": "^2.0.3",
"circomlib-matrix": "^1.0.1",
"circomlibjs": "^0.1.0",
"circom_tester": "^0.0.19",
"circomlib": "^2.0.5",
"circomlib-matrix": "^1.0.2",
"circomlibjs": "^0.1.7",
"ethers": "^4.0.45",
"mocha": "^9.1.3",
"web3-utils": "^1.8.1"
@@ -740,6 +740,16 @@
"integrity": "sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g==",
"dev": true
},
"node_modules/@iden3/binfileutils": {
"version": "0.0.11",
"resolved": "https://registry.npmjs.org/@iden3/binfileutils/-/binfileutils-0.0.11.tgz",
"integrity": "sha512-LylnJoZ0CTdgErnKY8OxohvW4K+p6UHD3sxt+3P9AmMyBQjYR4IpoqoYZZ+9aMj89cmCQ21UvdhndAx04er3NA==",
"dev": true,
"dependencies": {
"fastfile": "0.0.20",
"ffjavascript": "^0.2.48"
}
},
"node_modules/@types/bn.js": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz",
@@ -846,6 +856,12 @@
"node": "*"
}
},
"node_modules/async": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
"dev": true
},
"node_modules/available-typed-arrays": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
@@ -885,13 +901,19 @@
"integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==",
"dev": true
},
"node_modules/big-integer": {
"version": "1.6.51",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
"integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
"node_modules/bfj": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz",
"integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==",
"dev": true,
"dependencies": {
"bluebird": "^3.5.5",
"check-types": "^11.1.1",
"hoopy": "^0.1.4",
"tryer": "^1.0.1"
},
"engines": {
"node": ">=0.6"
"node": ">= 8.0.0"
}
},
"node_modules/binary-extensions": {
@@ -944,6 +966,12 @@
"integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==",
"dev": true
},
"node_modules/bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
"dev": true
},
"node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
@@ -1104,6 +1132,12 @@
"node": "*"
}
},
"node_modules/check-types": {
"version": "11.2.2",
"resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz",
"integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==",
"dev": true
},
"node_modules/child_process": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
@@ -1147,37 +1181,61 @@
"safe-buffer": "^5.0.1"
}
},
"node_modules/circom_tester": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/circom_tester/-/circom_tester-0.0.5.tgz",
"integrity": "sha512-1nDR9quXif8GBrt6Tya+UoQHQAUcl0HDn551IK0bu0gcL7XHN/Ec2K1NNlcNdzsj610d7PqBD5dgZeZyNzHitQ==",
"node_modules/circom_runtime": {
"version": "0.1.21",
"resolved": "https://registry.npmjs.org/circom_runtime/-/circom_runtime-0.1.21.tgz",
"integrity": "sha512-qTkud630B/GK8y76hnOaaS1aNuF6prfV0dTrkeRsiJKnlP1ryQbP2FWLgDOPqn6aKyaPlam+Z+DTbBhkEzh8dA==",
"dev": true,
"dependencies": {
"chai": "^4.3.4",
"ffjavascript": "0.2.56"
},
"bin": {
"calcwit": "calcwit.js"
}
},
"node_modules/circom_runtime/node_modules/ffjavascript": {
"version": "0.2.56",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.56.tgz",
"integrity": "sha512-em6G5Lrj7ucIqj4TYEgyoHs/j99Urwwqa4+YxEVY2hggnpRimVj+noX5pZQTxI1pvtiekZI4rG65JBf0xraXrg==",
"dev": true,
"dependencies": {
"wasmbuilder": "0.0.16",
"wasmcurves": "0.2.0",
"web-worker": "^1.2.0"
}
},
"node_modules/circom_tester": {
"version": "0.0.19",
"resolved": "https://registry.npmjs.org/circom_tester/-/circom_tester-0.0.19.tgz",
"integrity": "sha512-SNHaBsGxcBH6XsVWfsRbRPA7NF8m8AMKJI9dtJJCFGUtOTT2+zsoIqAwi50z6XCnO4TtjyXq7AeXa1PLHqT0tw==",
"dev": true,
"dependencies": {
"chai": "^4.3.6",
"child_process": "^1.0.2",
"ffjavascript": "^0.2.38",
"ffjavascript": "^0.2.56",
"fnv-plus": "^1.3.1",
"r1csfile": "0.0.16",
"tmp-promise": "^3.0.2",
"r1csfile": "^0.0.41",
"snarkjs": "0.5.0",
"tmp-promise": "^3.0.3",
"util": "^0.12.4"
}
},
"node_modules/circomlib": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/circomlib/-/circomlib-2.0.3.tgz",
"integrity": "sha512-OeG1YBcqS8mnsOI1WAZePbyAVBMf398sSQfXetpPAb2HC0+1r9Q6kN/qQaHkJZ77BZmXn5dUqQTa5g6d5BDS3Q==",
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/circomlib/-/circomlib-2.0.5.tgz",
"integrity": "sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A==",
"dev": true
},
"node_modules/circomlib-matrix": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/circomlib-matrix/-/circomlib-matrix-1.0.1.tgz",
"integrity": "sha512-o+w7ENkvrey+MjRIuXnjJz7yDdv7Kw50R6HmYNpjNLs90rCwvD1vebArWYn+eNRI1IOJQ2rW9NMwE2TMOod5fg==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/circomlib-matrix/-/circomlib-matrix-1.0.2.tgz",
"integrity": "sha512-DD92sX0xNpqzsQFYYPS9KPT/o3uM5zdREik9TuwltZXSHmeikH5XFMVG/X/ZFqq2WE+VgiczzAHNvvJitx8jhQ==",
"dev": true
},
"node_modules/circomlibjs": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/circomlibjs/-/circomlibjs-0.1.1.tgz",
"integrity": "sha512-Bl7Mylf/VERdI5bRTIQ4hpi2EgbfIvEyJrn/MPh2pEqScbCkatX44RF8fuNGigoiQGdhItaIikgHKLTdlPPLPQ==",
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/circomlibjs/-/circomlibjs-0.1.7.tgz",
"integrity": "sha512-GRAUoAlKAsiiTa+PA725G9RmEmJJRc8tRFxw/zKktUxlQISGznT4hH4ESvW8FNTsrGg/nNd06sGP/Wlx0LUHVg==",
"dev": true,
"dependencies": {
"blake-hash": "^2.0.0",
@@ -1364,6 +1422,21 @@
"node": ">=0.3.1"
}
},
"node_modules/ejs": {
"version": "3.1.8",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
"integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
"dev": true,
"dependencies": {
"jake": "^10.8.5"
},
"bin": {
"ejs": "bin/cli.js"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/elliptic": {
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
@@ -1602,23 +1675,52 @@
}
},
"node_modules/fastfile": {
"version": "0.0.18",
"resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.18.tgz",
"integrity": "sha512-q03PTKc+wptis4WmuFOwPNQx2p5myFUrl/dMgRlW9mymc1Egyc14JPHgiGnWK+sJ0+dBl2Vwtfh5GfSQltYOpw==",
"version": "0.0.20",
"resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.20.tgz",
"integrity": "sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA==",
"dev": true
},
"node_modules/ffjavascript": {
"version": "0.2.51",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.51.tgz",
"integrity": "sha512-qshvFIjU6cWMQOtKwpU4JZOKfKHfN8TFJ0Tst1Bd/V8AfgzAUScqA+zRT6sLGdV9zlumLsMgrLzGVRK4kf6RQA==",
"version": "0.2.57",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.57.tgz",
"integrity": "sha512-V+vxZ/zPNcthrWmqfe/1YGgqdkTamJeXiED0tsk7B84g40DKlrTdx47IqZuiygqAVG6zMw4qYuvXftIJWsmfKQ==",
"dev": true,
"dependencies": {
"big-integer": "^1.6.48",
"wasmbuilder": "^0.0.12",
"wasmcurves": "0.1.0",
"wasmbuilder": "0.0.16",
"wasmcurves": "0.2.0",
"web-worker": "^1.2.0"
}
},
"node_modules/filelist": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
"integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
"dev": true,
"dependencies": {
"minimatch": "^5.0.1"
}
},
"node_modules/filelist/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/filelist/node_modules/minimatch": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
"integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -1896,6 +1998,15 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
"node_modules/hoopy": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
"integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
"dev": true,
"engines": {
"node": ">= 6.0.0"
}
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2213,6 +2324,36 @@
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
},
"node_modules/jake": {
"version": "10.8.5",
"resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
"integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
"dev": true,
"dependencies": {
"async": "^3.2.3",
"chalk": "^4.0.2",
"filelist": "^1.0.1",
"minimatch": "^3.0.4"
},
"bin": {
"jake": "bin/cli.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/jake/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/js-sha3": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
@@ -2283,6 +2424,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/logplease": {
"version": "1.2.15",
"resolved": "https://registry.npmjs.org/logplease/-/logplease-1.2.15.tgz",
"integrity": "sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA==",
"dev": true
},
"node_modules/loupe": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
@@ -2571,35 +2718,26 @@
}
},
"node_modules/r1csfile": {
"version": "0.0.16",
"resolved": "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.16.tgz",
"integrity": "sha512-A2jRVWzGgmXeG2lVAc0H4suJmzt50it5UvBnycJgBCpMXM3tH/M6RguP7nvs6suY/yYnkN6jX6iTScSiDUF3FA==",
"version": "0.0.41",
"resolved": "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.41.tgz",
"integrity": "sha512-Q1WDF3u1vYeAwjHo4YuddkA8Aq0TulbKjmGm99+Atn13Lf5fTsMZBnBV9T741w8iSyPFG6Uh6sapQby77sREqA==",
"dev": true,
"dependencies": {
"@iden3/bigarray": "0.0.2",
"fastfile": "0.0.18",
"ffjavascript": "0.2.22"
"@iden3/binfileutils": "0.0.11",
"fastfile": "0.0.20",
"ffjavascript": "0.2.56"
}
},
"node_modules/r1csfile/node_modules/ffjavascript": {
"version": "0.2.22",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.22.tgz",
"integrity": "sha512-EsVqap2Txm17bKW0z/jXCX3M7rQ++nQUAJY8alWDpyhjRj90xjl6GLeVSKZQ8rOFDQ/SFFXcEB8w9X8Boxid+w==",
"version": "0.2.56",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.56.tgz",
"integrity": "sha512-em6G5Lrj7ucIqj4TYEgyoHs/j99Urwwqa4+YxEVY2hggnpRimVj+noX5pZQTxI1pvtiekZI4rG65JBf0xraXrg==",
"dev": true,
"dependencies": {
"big-integer": "^1.6.48",
"wasmcurves": "0.0.12",
"worker-threads": "^1.0.0"
}
},
"node_modules/r1csfile/node_modules/wasmcurves": {
"version": "0.0.12",
"resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.0.12.tgz",
"integrity": "sha512-1Jl9mkatyHSNj80ILjf85SZUNuZQBCkTjJlhzqHnZQXUmIimCIWkugaVaYNjozLs1Gun4h/keZe1MBeBN0sRpg==",
"dev": true,
"dependencies": {
"big-integer": "^1.6.42",
"blakejs": "^1.1.0"
"wasmbuilder": "0.0.16",
"wasmcurves": "0.2.0",
"web-worker": "^1.2.0"
}
},
"node_modules/randombytes": {
@@ -2778,6 +2916,38 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/snarkjs": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/snarkjs/-/snarkjs-0.5.0.tgz",
"integrity": "sha512-KWz8mZ2Y+6wvn6GGkQo6/ZlKwETdAGohd40Lzpwp5TUZCn6N6O4Az1SuX1rw/qREGL6Im+ycb19suCFE8/xaKA==",
"dev": true,
"dependencies": {
"@iden3/binfileutils": "0.0.11",
"bfj": "^7.0.2",
"blake2b-wasm": "^2.4.0",
"circom_runtime": "0.1.21",
"ejs": "^3.1.6",
"fastfile": "0.0.20",
"ffjavascript": "0.2.56",
"js-sha3": "^0.8.0",
"logplease": "^1.2.15",
"r1csfile": "0.0.41"
},
"bin": {
"snarkjs": "build/cli.cjs"
}
},
"node_modules/snarkjs/node_modules/ffjavascript": {
"version": "0.2.56",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.56.tgz",
"integrity": "sha512-em6G5Lrj7ucIqj4TYEgyoHs/j99Urwwqa4+YxEVY2hggnpRimVj+noX5pZQTxI1pvtiekZI4rG65JBf0xraXrg==",
"dev": true,
"dependencies": {
"wasmbuilder": "0.0.16",
"wasmcurves": "0.2.0",
"web-worker": "^1.2.0"
}
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -2912,6 +3082,12 @@
"node": ">=8.0"
}
},
"node_modules/tryer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
"integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
"dev": true
},
"node_modules/type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
@@ -2970,22 +3146,18 @@
"dev": true
},
"node_modules/wasmbuilder": {
"version": "0.0.12",
"resolved": "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.12.tgz",
"integrity": "sha512-dTMpBgrnLOXrN58i2zakn2ScynsBhq9LfyQIsPz4CyxRF9k1GAORniuqn3xmE9NnI1l7g3iiVCkoB2Cl0/oG8w==",
"dev": true,
"dependencies": {
"big-integer": "^1.6.48"
}
"version": "0.0.16",
"resolved": "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.16.tgz",
"integrity": "sha512-Qx3lEFqaVvp1cEYW7Bfi+ebRJrOiwz2Ieu7ZG2l7YyeSJIok/reEQCQCuicj/Y32ITIJuGIM9xZQppGx5LrQdA==",
"dev": true
},
"node_modules/wasmcurves": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.1.0.tgz",
"integrity": "sha512-kIlcgbVUAv2uQ6lGsepGz/m5V40+Z6rvTBkqCYn3Y2+OcXst+UaP4filJYLh/xDxjJl62FFjZZeAnpeli1Y5/Q==",
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.2.0.tgz",
"integrity": "sha512-3e2rbxdujOwaod657gxgmdhZNn+i1qKdHO3Y/bK+8E7bV8ttV/fu5FO4/WLBACF375cK0QDLOP+65Na63qYuWA==",
"dev": true,
"dependencies": {
"big-integer": "^1.6.42",
"blakejs": "^1.1.0"
"wasmbuilder": "0.0.16"
}
},
"node_modules/web-worker": {
@@ -3069,12 +3241,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/worker-threads": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/worker-threads/-/worker-threads-1.0.0.tgz",
"integrity": "sha512-vK6Hhvph8oLxocEJIlc3YfGAZhm210uGzjZsXSu+JYLAQ/s/w4Tqgl60JrdH58hW8NSGP4m3bp8a92qPXgX05w==",
"dev": true
},
"node_modules/workerpool": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
@@ -3622,6 +3788,16 @@
"integrity": "sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g==",
"dev": true
},
"@iden3/binfileutils": {
"version": "0.0.11",
"resolved": "https://registry.npmjs.org/@iden3/binfileutils/-/binfileutils-0.0.11.tgz",
"integrity": "sha512-LylnJoZ0CTdgErnKY8OxohvW4K+p6UHD3sxt+3P9AmMyBQjYR4IpoqoYZZ+9aMj89cmCQ21UvdhndAx04er3NA==",
"dev": true,
"requires": {
"fastfile": "0.0.20",
"ffjavascript": "^0.2.48"
}
},
"@types/bn.js": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz",
@@ -3710,6 +3886,12 @@
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true
},
"async": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
"dev": true
},
"available-typed-arrays": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
@@ -3743,11 +3925,17 @@
"integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==",
"dev": true
},
"big-integer": {
"version": "1.6.51",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
"integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
"dev": true
"bfj": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz",
"integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==",
"dev": true,
"requires": {
"bluebird": "^3.5.5",
"check-types": "^11.1.1",
"hoopy": "^0.1.4",
"tryer": "^1.0.1"
}
},
"binary-extensions": {
"version": "2.2.0",
@@ -3792,6 +3980,12 @@
"integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==",
"dev": true
},
"bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
"dev": true
},
"bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
@@ -3927,6 +4121,12 @@
"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
"dev": true
},
"check-types": {
"version": "11.2.2",
"resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz",
"integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==",
"dev": true
},
"child_process": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
@@ -3959,37 +4159,60 @@
"safe-buffer": "^5.0.1"
}
},
"circom_tester": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/circom_tester/-/circom_tester-0.0.5.tgz",
"integrity": "sha512-1nDR9quXif8GBrt6Tya+UoQHQAUcl0HDn551IK0bu0gcL7XHN/Ec2K1NNlcNdzsj610d7PqBD5dgZeZyNzHitQ==",
"circom_runtime": {
"version": "0.1.21",
"resolved": "https://registry.npmjs.org/circom_runtime/-/circom_runtime-0.1.21.tgz",
"integrity": "sha512-qTkud630B/GK8y76hnOaaS1aNuF6prfV0dTrkeRsiJKnlP1ryQbP2FWLgDOPqn6aKyaPlam+Z+DTbBhkEzh8dA==",
"dev": true,
"requires": {
"chai": "^4.3.4",
"ffjavascript": "0.2.56"
},
"dependencies": {
"ffjavascript": {
"version": "0.2.56",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.56.tgz",
"integrity": "sha512-em6G5Lrj7ucIqj4TYEgyoHs/j99Urwwqa4+YxEVY2hggnpRimVj+noX5pZQTxI1pvtiekZI4rG65JBf0xraXrg==",
"dev": true,
"requires": {
"wasmbuilder": "0.0.16",
"wasmcurves": "0.2.0",
"web-worker": "^1.2.0"
}
}
}
},
"circom_tester": {
"version": "0.0.19",
"resolved": "https://registry.npmjs.org/circom_tester/-/circom_tester-0.0.19.tgz",
"integrity": "sha512-SNHaBsGxcBH6XsVWfsRbRPA7NF8m8AMKJI9dtJJCFGUtOTT2+zsoIqAwi50z6XCnO4TtjyXq7AeXa1PLHqT0tw==",
"dev": true,
"requires": {
"chai": "^4.3.6",
"child_process": "^1.0.2",
"ffjavascript": "^0.2.38",
"ffjavascript": "^0.2.56",
"fnv-plus": "^1.3.1",
"r1csfile": "0.0.16",
"tmp-promise": "^3.0.2",
"r1csfile": "^0.0.41",
"snarkjs": "0.5.0",
"tmp-promise": "^3.0.3",
"util": "^0.12.4"
}
},
"circomlib": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/circomlib/-/circomlib-2.0.3.tgz",
"integrity": "sha512-OeG1YBcqS8mnsOI1WAZePbyAVBMf398sSQfXetpPAb2HC0+1r9Q6kN/qQaHkJZ77BZmXn5dUqQTa5g6d5BDS3Q==",
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/circomlib/-/circomlib-2.0.5.tgz",
"integrity": "sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A==",
"dev": true
},
"circomlib-matrix": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/circomlib-matrix/-/circomlib-matrix-1.0.1.tgz",
"integrity": "sha512-o+w7ENkvrey+MjRIuXnjJz7yDdv7Kw50R6HmYNpjNLs90rCwvD1vebArWYn+eNRI1IOJQ2rW9NMwE2TMOod5fg==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/circomlib-matrix/-/circomlib-matrix-1.0.2.tgz",
"integrity": "sha512-DD92sX0xNpqzsQFYYPS9KPT/o3uM5zdREik9TuwltZXSHmeikH5XFMVG/X/ZFqq2WE+VgiczzAHNvvJitx8jhQ==",
"dev": true
},
"circomlibjs": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/circomlibjs/-/circomlibjs-0.1.1.tgz",
"integrity": "sha512-Bl7Mylf/VERdI5bRTIQ4hpi2EgbfIvEyJrn/MPh2pEqScbCkatX44RF8fuNGigoiQGdhItaIikgHKLTdlPPLPQ==",
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/circomlibjs/-/circomlibjs-0.1.7.tgz",
"integrity": "sha512-GRAUoAlKAsiiTa+PA725G9RmEmJJRc8tRFxw/zKktUxlQISGznT4hH4ESvW8FNTsrGg/nNd06sGP/Wlx0LUHVg==",
"dev": true,
"requires": {
"blake-hash": "^2.0.0",
@@ -4144,6 +4367,15 @@
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
"dev": true
},
"ejs": {
"version": "3.1.8",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
"integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
"dev": true,
"requires": {
"jake": "^10.8.5"
}
},
"elliptic": {
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
@@ -4360,23 +4592,51 @@
}
},
"fastfile": {
"version": "0.0.18",
"resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.18.tgz",
"integrity": "sha512-q03PTKc+wptis4WmuFOwPNQx2p5myFUrl/dMgRlW9mymc1Egyc14JPHgiGnWK+sJ0+dBl2Vwtfh5GfSQltYOpw==",
"version": "0.0.20",
"resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.20.tgz",
"integrity": "sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA==",
"dev": true
},
"ffjavascript": {
"version": "0.2.51",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.51.tgz",
"integrity": "sha512-qshvFIjU6cWMQOtKwpU4JZOKfKHfN8TFJ0Tst1Bd/V8AfgzAUScqA+zRT6sLGdV9zlumLsMgrLzGVRK4kf6RQA==",
"version": "0.2.57",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.57.tgz",
"integrity": "sha512-V+vxZ/zPNcthrWmqfe/1YGgqdkTamJeXiED0tsk7B84g40DKlrTdx47IqZuiygqAVG6zMw4qYuvXftIJWsmfKQ==",
"dev": true,
"requires": {
"big-integer": "^1.6.48",
"wasmbuilder": "^0.0.12",
"wasmcurves": "0.1.0",
"wasmbuilder": "0.0.16",
"wasmcurves": "0.2.0",
"web-worker": "^1.2.0"
}
},
"filelist": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
"integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
"dev": true,
"requires": {
"minimatch": "^5.0.1"
},
"dependencies": {
"brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
}
},
"minimatch": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
"integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
"dev": true,
"requires": {
"brace-expansion": "^2.0.1"
}
}
}
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -4580,6 +4840,12 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
"hoopy": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
"integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
"dev": true
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -4791,6 +5057,29 @@
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
},
"jake": {
"version": "10.8.5",
"resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
"integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
"dev": true,
"requires": {
"async": "^3.2.3",
"chalk": "^4.0.2",
"filelist": "^1.0.1",
"minimatch": "^3.0.4"
},
"dependencies": {
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
}
}
},
"js-sha3": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
@@ -4844,6 +5133,12 @@
"is-unicode-supported": "^0.1.0"
}
},
"logplease": {
"version": "1.2.15",
"resolved": "https://registry.npmjs.org/logplease/-/logplease-1.2.15.tgz",
"integrity": "sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA==",
"dev": true
},
"loupe": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
@@ -5060,35 +5355,26 @@
"dev": true
},
"r1csfile": {
"version": "0.0.16",
"resolved": "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.16.tgz",
"integrity": "sha512-A2jRVWzGgmXeG2lVAc0H4suJmzt50it5UvBnycJgBCpMXM3tH/M6RguP7nvs6suY/yYnkN6jX6iTScSiDUF3FA==",
"version": "0.0.41",
"resolved": "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.41.tgz",
"integrity": "sha512-Q1WDF3u1vYeAwjHo4YuddkA8Aq0TulbKjmGm99+Atn13Lf5fTsMZBnBV9T741w8iSyPFG6Uh6sapQby77sREqA==",
"dev": true,
"requires": {
"@iden3/bigarray": "0.0.2",
"fastfile": "0.0.18",
"ffjavascript": "0.2.22"
"@iden3/binfileutils": "0.0.11",
"fastfile": "0.0.20",
"ffjavascript": "0.2.56"
},
"dependencies": {
"ffjavascript": {
"version": "0.2.22",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.22.tgz",
"integrity": "sha512-EsVqap2Txm17bKW0z/jXCX3M7rQ++nQUAJY8alWDpyhjRj90xjl6GLeVSKZQ8rOFDQ/SFFXcEB8w9X8Boxid+w==",
"version": "0.2.56",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.56.tgz",
"integrity": "sha512-em6G5Lrj7ucIqj4TYEgyoHs/j99Urwwqa4+YxEVY2hggnpRimVj+noX5pZQTxI1pvtiekZI4rG65JBf0xraXrg==",
"dev": true,
"requires": {
"big-integer": "^1.6.48",
"wasmcurves": "0.0.12",
"worker-threads": "^1.0.0"
}
},
"wasmcurves": {
"version": "0.0.12",
"resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.0.12.tgz",
"integrity": "sha512-1Jl9mkatyHSNj80ILjf85SZUNuZQBCkTjJlhzqHnZQXUmIimCIWkugaVaYNjozLs1Gun4h/keZe1MBeBN0sRpg==",
"dev": true,
"requires": {
"big-integer": "^1.6.42",
"blakejs": "^1.1.0"
"wasmbuilder": "0.0.16",
"wasmcurves": "0.2.0",
"web-worker": "^1.2.0"
}
}
}
@@ -5231,6 +5517,37 @@
"object-inspect": "^1.9.0"
}
},
"snarkjs": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/snarkjs/-/snarkjs-0.5.0.tgz",
"integrity": "sha512-KWz8mZ2Y+6wvn6GGkQo6/ZlKwETdAGohd40Lzpwp5TUZCn6N6O4Az1SuX1rw/qREGL6Im+ycb19suCFE8/xaKA==",
"dev": true,
"requires": {
"@iden3/binfileutils": "0.0.11",
"bfj": "^7.0.2",
"blake2b-wasm": "^2.4.0",
"circom_runtime": "0.1.21",
"ejs": "^3.1.6",
"fastfile": "0.0.20",
"ffjavascript": "0.2.56",
"js-sha3": "^0.8.0",
"logplease": "^1.2.15",
"r1csfile": "0.0.41"
},
"dependencies": {
"ffjavascript": {
"version": "0.2.56",
"resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.56.tgz",
"integrity": "sha512-em6G5Lrj7ucIqj4TYEgyoHs/j99Urwwqa4+YxEVY2hggnpRimVj+noX5pZQTxI1pvtiekZI4rG65JBf0xraXrg==",
"dev": true,
"requires": {
"wasmbuilder": "0.0.16",
"wasmcurves": "0.2.0",
"web-worker": "^1.2.0"
}
}
}
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -5331,6 +5648,12 @@
"is-number": "^7.0.0"
}
},
"tryer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
"integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
"dev": true
},
"type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
@@ -5382,22 +5705,18 @@
"dev": true
},
"wasmbuilder": {
"version": "0.0.12",
"resolved": "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.12.tgz",
"integrity": "sha512-dTMpBgrnLOXrN58i2zakn2ScynsBhq9LfyQIsPz4CyxRF9k1GAORniuqn3xmE9NnI1l7g3iiVCkoB2Cl0/oG8w==",
"dev": true,
"requires": {
"big-integer": "^1.6.48"
}
"version": "0.0.16",
"resolved": "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.16.tgz",
"integrity": "sha512-Qx3lEFqaVvp1cEYW7Bfi+ebRJrOiwz2Ieu7ZG2l7YyeSJIok/reEQCQCuicj/Y32ITIJuGIM9xZQppGx5LrQdA==",
"dev": true
},
"wasmcurves": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.1.0.tgz",
"integrity": "sha512-kIlcgbVUAv2uQ6lGsepGz/m5V40+Z6rvTBkqCYn3Y2+OcXst+UaP4filJYLh/xDxjJl62FFjZZeAnpeli1Y5/Q==",
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.2.0.tgz",
"integrity": "sha512-3e2rbxdujOwaod657gxgmdhZNn+i1qKdHO3Y/bK+8E7bV8ttV/fu5FO4/WLBACF375cK0QDLOP+65Na63qYuWA==",
"dev": true,
"requires": {
"big-integer": "^1.6.42",
"blakejs": "^1.1.0"
"wasmbuilder": "0.0.16"
}
},
"web-worker": {
@@ -5465,12 +5784,6 @@
"is-typed-array": "^1.1.7"
}
},
"worker-threads": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/worker-threads/-/worker-threads-1.0.0.tgz",
"integrity": "sha512-vK6Hhvph8oLxocEJIlc3YfGAZhm210uGzjZsXSu+JYLAQ/s/w4Tqgl60JrdH58hW8NSGP4m3bp8a92qPXgX05w==",
"dev": true
},
"workerpool": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "circomlib-ml",
"version": "1.4.0",
"version": "1.4.1",
"description": "Circuits library for machine learning in circom",
"main": "index.js",
"directories": {
@@ -26,10 +26,10 @@
"@types/node": "^18.11.9",
"blake-hash": "^2.0.0",
"chai": "^4.3.4",
"circom_tester": "0.0.5",
"circomlib": "^2.0.3",
"circomlib-matrix": "^1.0.1",
"circomlibjs": "^0.1.0",
"circom_tester": "^0.0.19",
"circomlib": "^2.0.5",
"circomlib-matrix": "^1.0.2",
"circomlibjs": "^0.1.7",
"ethers": "^4.0.45",
"mocha": "^9.1.3",
"web3-utils": "^1.8.1"

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/AveragePooling2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/AveragePooling2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/BatchNormalization2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv1D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Dense.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Flatten2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/util.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/util.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/MaxPooling2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/MaxPooling2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/util.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/ReLU.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/SumPooling2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/SumPooling2D.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/crypto/encrypt.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/crypto/encrypt.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/crypto/ecdh.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/crypto/encrypt.circom";
include "../../circuits/crypto/ecdh.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/crypto/encrypt.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/crypto/encrypt.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv2D.circom";
include "../../circuits/Dense.circom";
@@ -8,9 +8,9 @@ include "../../circuits/AveragePooling2D.circom";
include "../../circuits/BatchNormalization2D.circom";
include "../../circuits/Flatten2D.circom";
include "../../circuits/crypto/encrypt.circom";
include "../../circuits/crypto/ecdh.circom";
template encrypted_mnist_latest() {
signal input shared_key;
signal input in[28][28][1];
signal input conv2d_1_weights[3][3][1][4];
signal input conv2d_1_bias[4];
@@ -23,10 +23,21 @@ template encrypted_mnist_latest() {
signal input dense_weights[200][10];
signal input dense_bias[10];
signal output out;
signal input private_key;
signal input public_key[2];
component ecdh = Ecdh();
ecdh.private_key <== private_key;
ecdh.public_key[0] <== public_key[0];
ecdh.public_key[1] <== public_key[1];
signal output message[3*3*1*4+4+4+4+3*3*4*8+8+8+8+200*10+10+1];
component enc = EncryptBits(3*3*1*4+4+4+4+3*3*4*8+8+8+8+200*10+10);
enc.shared_key <== shared_key;
enc.shared_key <== ecdh.shared_key;
var idx = 0;
component conv2d_1 = Conv2D(28,28,1,4,3,1);

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv2D.circom";
include "../../circuits/Dense.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv2D.circom";
include "../../circuits/Dense.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv2D.circom";
include "../../circuits/Dense.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv2D.circom";
include "../../circuits/Dense.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Conv2D.circom";
include "../../circuits/Dense.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/Dense.circom";
include "../../circuits/ReLU.circom";

View File

@@ -1,4 +1,4 @@
pragma circom 2.0.3;
pragma circom 2.0.0;
include "../../circuits/crypto/publickey_derivation.circom";

View File

@@ -243,7 +243,8 @@ describe("crypto circuits test", function () {
keypair2.pubKey,
);
INPUT['shared_key'] = ecdhSharedKey.toString();
INPUT['private_key'] = keypair.privKey.asCircuitInputs();
INPUT['public_key'] = keypair2.pubKey.asCircuitInputs();
const witness = await circuit.calculateWitness(INPUT, true);