mirror of
https://github.com/semaphore-protocol/semaphore.git
synced 2026-04-28 03:00:41 -04:00
feat: updates to latest mimc construction
This commit is contained in:
2
sbmtjs/package-lock.json
generated
2
sbmtjs/package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "zkp-sbmtjs",
|
||||
"version": "0.1.0",
|
||||
"version": "0.1.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -26,8 +26,8 @@ const bigInt = snarkjs.bigInt;
|
||||
|
||||
class Mimc7Hasher {
|
||||
hash(level, left, right) {
|
||||
return mimc7.multiHash([left, right]).toString();
|
||||
return mimc7.multiHash([bigInt(left), bigInt(right)]).toString();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Mimc7Hasher;
|
||||
module.exports = Mimc7Hasher;
|
||||
|
||||
@@ -51,8 +51,12 @@ contract MerkleTree {
|
||||
}
|
||||
|
||||
function HashLeftRight(uint256 left, uint256 right) public pure returns (uint256 mimc_hash) {
|
||||
uint256 intermediate = MiMC.MiMCpe7(15021630795539610737508582392395901278341266317943626182700664337106830745361, left);
|
||||
mimc_hash = MiMC.MiMCpe7(intermediate, right);
|
||||
uint256 r0 = 0;
|
||||
uint256 h0 = MiMC.MiMCpe7(left, r0);
|
||||
uint256 r1 = r0 + left + h0;
|
||||
uint256 h1 = MiMC.MiMCpe7(right, r1);
|
||||
uint256 r2 = r1 + right + h1;
|
||||
mimc_hash = r2;
|
||||
}
|
||||
|
||||
function insert(uint256 leaf) internal {
|
||||
|
||||
@@ -60,8 +60,13 @@ contract MultipleMerkleTree {
|
||||
}
|
||||
|
||||
function HashLeftRight(uint256 left, uint256 right) public pure returns (uint256 mimc_hash) {
|
||||
uint256 intermediate = MiMC.MiMCpe7(15021630795539610737508582392395901278341266317943626182700664337106830745361, left);
|
||||
mimc_hash = MiMC.MiMCpe7(intermediate, right);
|
||||
uint256 k = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
|
||||
uint256 r0 = 0;
|
||||
uint256 h0 = MiMC.MiMCpe7(left, r0);
|
||||
uint256 r1 = addmod(r0, addmod(left, h0, k), k);
|
||||
uint256 h1 = MiMC.MiMCpe7(right, r1);
|
||||
uint256 r2 = addmod(r1, addmod(right, h1, k), k);
|
||||
mimc_hash = r2;
|
||||
}
|
||||
|
||||
function insert(uint8 tree_index, uint256 leaf) internal {
|
||||
|
||||
423
semaphorejs/package-lock.json
generated
423
semaphorejs/package-lock.json
generated
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "semaphorejs",
|
||||
"name": "zkp-semaphorejs",
|
||||
"version": "0.1.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
@@ -326,6 +326,15 @@
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
|
||||
},
|
||||
"are-we-there-yet": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
|
||||
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
|
||||
"requires": {
|
||||
"delegates": "^1.0.0",
|
||||
"readable-stream": "^2.0.6"
|
||||
}
|
||||
},
|
||||
"argparse": {
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||
@@ -1645,6 +1654,14 @@
|
||||
"type-detect": "^4.0.5"
|
||||
}
|
||||
},
|
||||
"chai-as-promised": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
|
||||
"integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
|
||||
"requires": {
|
||||
"check-error": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
@@ -1725,9 +1742,8 @@
|
||||
}
|
||||
},
|
||||
"circom": {
|
||||
"version": "0.0.24",
|
||||
"resolved": "https://registry.npmjs.org/circom/-/circom-0.0.24.tgz",
|
||||
"integrity": "sha512-4ZY0jOeVEwCT7+WnoXbr2/+eEvie5QunMwCA8nfAXhVdUv32Na1eQQNKjqq2HtgnTdXxK2z/mN/4x2yyKIMoiw==",
|
||||
"version": "git+https://github.com/kobigurk/circom.git#b8068e8d052b8136896ca76aee87a3e63722b4aa",
|
||||
"from": "git+https://github.com/kobigurk/circom.git",
|
||||
"requires": {
|
||||
"big-integer": "^1.6.32",
|
||||
"optimist": "^0.6.1",
|
||||
@@ -1735,7 +1751,7 @@
|
||||
}
|
||||
},
|
||||
"circomlib": {
|
||||
"version": "git+https://github.com/kobigurk/circomlib.git#2c569a089d8ba3cdd993575c57b5346444cb7c44",
|
||||
"version": "git+https://github.com/kobigurk/circomlib.git#4186a9321e7c06a36f36ff8ca2c8909ca01a4e09",
|
||||
"from": "git+https://github.com/kobigurk/circomlib.git",
|
||||
"requires": {
|
||||
"blake-hash": "^1.1.0",
|
||||
@@ -1956,6 +1972,11 @@
|
||||
"date-now": "^0.1.4"
|
||||
}
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
|
||||
},
|
||||
"constants-browserify": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
|
||||
@@ -2270,6 +2291,11 @@
|
||||
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
|
||||
"integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
|
||||
},
|
||||
"deep-extend": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
||||
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
|
||||
},
|
||||
"deep-is": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
||||
@@ -2358,6 +2384,11 @@
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
||||
},
|
||||
"delegates": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
|
||||
},
|
||||
"depd": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||
@@ -2390,6 +2421,11 @@
|
||||
"repeating": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"detect-libc": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
|
||||
},
|
||||
"diagnostics": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
|
||||
@@ -2562,6 +2598,41 @@
|
||||
"iconv-lite": "~0.4.13"
|
||||
}
|
||||
},
|
||||
"encoding-down": {
|
||||
"version": "5.0.4",
|
||||
"resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz",
|
||||
"integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==",
|
||||
"requires": {
|
||||
"abstract-leveldown": "^5.0.0",
|
||||
"inherits": "^2.0.3",
|
||||
"level-codec": "^9.0.0",
|
||||
"level-errors": "^2.0.0",
|
||||
"xtend": "^4.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"abstract-leveldown": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz",
|
||||
"integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==",
|
||||
"requires": {
|
||||
"xtend": "~4.0.0"
|
||||
}
|
||||
},
|
||||
"level-codec": {
|
||||
"version": "9.0.1",
|
||||
"resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.1.tgz",
|
||||
"integrity": "sha512-ajFP0kJ+nyq4i6kptSM+mAvJKLOg1X5FiFPtLG9M5gCEZyBmgDi3FkDrvlMkEzrUn1cWxtvVmrvoS4ASyO/q+Q=="
|
||||
},
|
||||
"level-errors": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz",
|
||||
"integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==",
|
||||
"requires": {
|
||||
"errno": "~0.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
||||
@@ -3206,6 +3277,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"expand-template": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
||||
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
|
||||
},
|
||||
"expand-tilde": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
|
||||
@@ -3382,6 +3458,11 @@
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
|
||||
},
|
||||
"fast-future": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-future/-/fast-future-1.0.2.tgz",
|
||||
"integrity": "sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo="
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
||||
@@ -6460,6 +6541,22 @@
|
||||
"requires": {
|
||||
"bn.js": "^4.11.8",
|
||||
"ethereumjs-util": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ethereumjs-util": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz",
|
||||
"integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==",
|
||||
"requires": {
|
||||
"bn.js": "^4.11.0",
|
||||
"create-hash": "^1.1.2",
|
||||
"ethjs-util": "0.1.6",
|
||||
"keccak": "^1.0.2",
|
||||
"rlp": "^2.0.0",
|
||||
"safe-buffer": "^5.1.1",
|
||||
"secp256k1": "^3.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ethereumjs-block": {
|
||||
@@ -10147,6 +10244,22 @@
|
||||
"requires": {
|
||||
"bn.js": "^4.11.8",
|
||||
"ethereumjs-util": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ethereumjs-util": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz",
|
||||
"integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==",
|
||||
"requires": {
|
||||
"bn.js": "^4.11.0",
|
||||
"create-hash": "^1.1.2",
|
||||
"ethjs-util": "0.1.6",
|
||||
"keccak": "^1.0.2",
|
||||
"rlp": "^2.0.0",
|
||||
"safe-buffer": "^5.1.1",
|
||||
"secp256k1": "^3.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ethereumjs-block": {
|
||||
@@ -10428,6 +10541,54 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"gauge": {
|
||||
"version": "2.7.4",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
||||
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
|
||||
"requires": {
|
||||
"aproba": "^1.0.3",
|
||||
"console-control-strings": "^1.0.0",
|
||||
"has-unicode": "^2.0.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"string-width": "^1.0.1",
|
||||
"strip-ansi": "^3.0.1",
|
||||
"wide-align": "^1.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
"strip-ansi": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"get-caller-file": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
|
||||
@@ -10459,6 +10620,11 @@
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"github-from-package": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
||||
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
||||
@@ -10632,6 +10798,11 @@
|
||||
"has-symbol-support-x": "^1.4.1"
|
||||
}
|
||||
},
|
||||
"has-unicode": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
|
||||
},
|
||||
"has-value": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
|
||||
@@ -11434,6 +11605,72 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"level-packager": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz",
|
||||
"integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==",
|
||||
"requires": {
|
||||
"encoding-down": "~5.0.0",
|
||||
"levelup": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"abstract-leveldown": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz",
|
||||
"integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==",
|
||||
"requires": {
|
||||
"xtend": "~4.0.0"
|
||||
}
|
||||
},
|
||||
"deferred-leveldown": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz",
|
||||
"integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==",
|
||||
"requires": {
|
||||
"abstract-leveldown": "~5.0.0",
|
||||
"inherits": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"level-errors": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz",
|
||||
"integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==",
|
||||
"requires": {
|
||||
"errno": "~0.1.1"
|
||||
}
|
||||
},
|
||||
"level-iterator-stream": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz",
|
||||
"integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==",
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"readable-stream": "^2.3.6",
|
||||
"xtend": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"levelup": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz",
|
||||
"integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==",
|
||||
"requires": {
|
||||
"deferred-leveldown": "~4.0.0",
|
||||
"level-errors": "~2.0.0",
|
||||
"level-iterator-stream": "~3.0.0",
|
||||
"xtend": "~4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"level-rocksdb": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/level-rocksdb/-/level-rocksdb-3.0.1.tgz",
|
||||
"integrity": "sha512-ESbFU491UhmC9q1SPopqEeJOBN5OZm6j5T2H3a6bhPKBC60+98Ts21d5l8jgXtuvO5gCXh4eiYPhxz01tfXB4A==",
|
||||
"requires": {
|
||||
"level-packager": "^4.0.0",
|
||||
"rocksdb": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"level-ws": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz",
|
||||
@@ -12025,6 +12262,11 @@
|
||||
"to-regex": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"napi-build-utils": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz",
|
||||
"integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA=="
|
||||
},
|
||||
"natural-compare": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||
@@ -12053,6 +12295,14 @@
|
||||
"lower-case": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"node-abi": {
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.8.0.tgz",
|
||||
"integrity": "sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==",
|
||||
"requires": {
|
||||
"semver": "^5.4.1"
|
||||
}
|
||||
},
|
||||
"node-environment-flags": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.4.tgz",
|
||||
@@ -12118,6 +12368,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"noop-logger": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
||||
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
|
||||
},
|
||||
"normalize-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||
@@ -12131,6 +12386,34 @@
|
||||
"path-key": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"npm-update-git-deps": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/npm-update-git-deps/-/npm-update-git-deps-1.2.4.tgz",
|
||||
"integrity": "sha512-jsFLdNWocnwHsEiECMFEpb0r99NLw8xh2uVtsTbh/u0X90VQK2InZPuKI73eoG3s98uGNOnq5WVI/B34lTiEIA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "^2.20.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "2.20.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
|
||||
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"npmlog": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
||||
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
|
||||
"requires": {
|
||||
"are-we-there-yet": "~1.1.2",
|
||||
"console-control-strings": "~1.1.0",
|
||||
"gauge": "~2.7.3",
|
||||
"set-blocking": "~2.0.0"
|
||||
}
|
||||
},
|
||||
"nth-check": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
|
||||
@@ -12566,6 +12849,45 @@
|
||||
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
|
||||
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
|
||||
},
|
||||
"prebuild-install": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.0.tgz",
|
||||
"integrity": "sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==",
|
||||
"requires": {
|
||||
"detect-libc": "^1.0.3",
|
||||
"expand-template": "^2.0.3",
|
||||
"github-from-package": "0.0.0",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"napi-build-utils": "^1.0.1",
|
||||
"node-abi": "^2.7.0",
|
||||
"noop-logger": "^0.1.1",
|
||||
"npmlog": "^4.0.1",
|
||||
"os-homedir": "^1.0.1",
|
||||
"pump": "^2.0.1",
|
||||
"rc": "^1.2.7",
|
||||
"simple-get": "^2.7.0",
|
||||
"tar-fs": "^1.13.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"which-pm-runs": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
},
|
||||
"pump": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
|
||||
"integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
|
||||
"requires": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"precond": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz",
|
||||
@@ -12774,6 +13096,24 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"rc": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
|
||||
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
|
||||
"requires": {
|
||||
"deep-extend": "^0.6.0",
|
||||
"ini": "~1.3.0",
|
||||
"minimist": "^1.2.0",
|
||||
"strip-json-comments": "~2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||
@@ -13054,6 +13394,33 @@
|
||||
"safe-buffer": "^5.1.1"
|
||||
}
|
||||
},
|
||||
"rocksdb": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/rocksdb/-/rocksdb-3.1.0.tgz",
|
||||
"integrity": "sha512-oLrw6InTO/e2DRqaeeyV68cepRqwgjsGMdGB0u5/Wb2x7hBJAtD2UIS7XhGxFmPJAg3cTBgPmUxZ+sGz2ehwOg==",
|
||||
"requires": {
|
||||
"abstract-leveldown": "~5.0.0",
|
||||
"bindings": "~1.5.0",
|
||||
"fast-future": "~1.0.2",
|
||||
"nan": "~2.13.2",
|
||||
"prebuild-install": "^5.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"abstract-leveldown": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz",
|
||||
"integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==",
|
||||
"requires": {
|
||||
"xtend": "~4.0.0"
|
||||
}
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.13.2",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
|
||||
"integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"run-async": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
|
||||
@@ -13982,6 +14349,28 @@
|
||||
"yallist": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"tar-fs": {
|
||||
"version": "1.16.3",
|
||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz",
|
||||
"integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==",
|
||||
"requires": {
|
||||
"chownr": "^1.0.1",
|
||||
"mkdirp": "^0.5.1",
|
||||
"pump": "^1.0.0",
|
||||
"tar-stream": "^1.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"pump": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
|
||||
"integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
|
||||
"requires": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tar-stream": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
|
||||
@@ -16097,8 +16486,9 @@
|
||||
}
|
||||
},
|
||||
"websnark": {
|
||||
"version": "git+https://github.com/iden3/websnark.git#bbab2e4c7e396add1c8d240e92436e602f9f84d6",
|
||||
"from": "git+https://github.com/iden3/websnark.git",
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/websnark/-/websnark-0.0.2.tgz",
|
||||
"integrity": "sha512-qR/y2UxC/TK2Pnz+SfmFWAcqqvcPc+YWqy8N27zZGOuZoVTnffSj5QDj7+5/ZcGOgRm1P3pr+yCiJIWQxCQ+RA==",
|
||||
"requires": {
|
||||
"big-integer": "^1.6.42"
|
||||
}
|
||||
@@ -16146,6 +16536,11 @@
|
||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
|
||||
},
|
||||
"which-pm-runs": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
|
||||
"integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs="
|
||||
},
|
||||
"wide-align": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
||||
@@ -16381,6 +16776,20 @@
|
||||
"buffer-crc32": "~0.2.3",
|
||||
"fd-slicer": "~1.1.0"
|
||||
}
|
||||
},
|
||||
"zkp-sbmtjs": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/zkp-sbmtjs/-/zkp-sbmtjs-0.1.1.tgz",
|
||||
"integrity": "sha512-VwKOE6x4TNCIt6qAGR7y6vmoHoJ+K+z3G4026nOdL83F9T7+FuTdJWnO0h3FrC3PpxFbk9HcAK4eeAPUCpClBA==",
|
||||
"requires": {
|
||||
"chai": "^4.2.0",
|
||||
"chai-as-promised": "^7.1.1",
|
||||
"circomlib": "git+https://github.com/kobigurk/circomlib.git",
|
||||
"del": "^4.0.0",
|
||||
"level-rocksdb": "^3.0.1",
|
||||
"snarkjs": "^0.1.11",
|
||||
"uuid": "^3.3.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
"description": "Zero-knowledge signaling on Ethereum",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"npm-update-git-deps": "npm-update-git-deps"
|
||||
},
|
||||
"bin": {
|
||||
"semaphorejs-server": "./src/server/server.js",
|
||||
@@ -17,7 +18,7 @@
|
||||
"url": "https://github.com/kobigurk/semaphore.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"circom": "0.0.24",
|
||||
"circom": "git+https://github.com/kobigurk/circom.git",
|
||||
"circomlib": "git+https://github.com/kobigurk/circomlib.git",
|
||||
"cors": "^2.8.5",
|
||||
"del": "^4.1.0",
|
||||
@@ -36,10 +37,12 @@
|
||||
"truffle-privatekey-provider": "^1.1.0",
|
||||
"web3": "^1.0.0-beta.51",
|
||||
"webpack": "^4.30.0",
|
||||
"websnark": "git+https://github.com/iden3/websnark.git",
|
||||
"winston": "^3.2.1"
|
||||
"websnark": "0.0.2",
|
||||
"winston": "^3.2.1",
|
||||
"zkp-sbmtjs": "^0.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"npm-update-git-deps": "^1.2.4",
|
||||
"null-loader": "^0.1.1",
|
||||
"webpack-cli": "^3.3.0"
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ class SemaphoreClient {
|
||||
this.identity_nullifier = loaded_identity.identity_nullifier;
|
||||
this.identity_r = loaded_identity.identity_r;
|
||||
|
||||
this.identity_commitment = mimc7.multiHash([pubKey[0], pubKey[1], this.identity_nullifier, this.identity_r]);
|
||||
this.identity_commitment = mimc7.multiHash([bigInt(pubKey[0]), bigInt(pubKey[1]), bigInt(this.identity_nullifier), bigInt(this.identity_r)]);
|
||||
logger.verbose(`identity_commitment: ${this.identity_commitment}`);
|
||||
|
||||
this.web3 = new Web3(node_url);
|
||||
@@ -253,9 +253,9 @@ function generate_identity(logger) {
|
||||
|
||||
const identity_nullifier = '0x' + crypto.randomBytes(31).toString('hex');
|
||||
const identity_r = '0x' + crypto.randomBytes(31).toString('hex');
|
||||
logger.info(`generate identity from (private_key, identity_nullifier, identity_r): (${private_key}, ${identity_nullifier}, ${identity_r})`);
|
||||
logger.info(`generate identity from (private_key, public_key[0], public_key[1], identity_nullifier, identity_r): (${private_key}, ${pubKey[0]}, ${pubKey[1]}, ${identity_nullifier}, ${identity_r})`);
|
||||
|
||||
const identity_commitment = mimc7.multiHash([pubKey[0], pubKey[1], identity_nullifier, identity_r]);
|
||||
const identity_commitment = mimc7.multiHash([bigInt(pubKey[0]), bigInt(pubKey[1]), bigInt(identity_nullifier), bigInt(identity_r)]);
|
||||
|
||||
logger.info(`identity_commitment : ${identity_commitment}`);
|
||||
const generated_identity = {
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
* along with semaphorejs. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
const RocksDb = require('sbmtjs/src/storage/rocksdb');
|
||||
const MerkleTree = require('sbmtjs/src/tree');
|
||||
const Mimc7Hasher = require('sbmtjs/src/hasher/mimc7');
|
||||
const RocksDb = require('zkp-sbmtjs/src/storage/rocksdb');
|
||||
const MerkleTree = require('zkp-sbmtjs/src/tree');
|
||||
const Mimc7Hasher = require('zkp-sbmtjs/src/hasher/mimc7');
|
||||
|
||||
const Web3 = require('web3');
|
||||
const SemaphoreABI = require('../../build/contracts/Semaphore.json');
|
||||
|
||||
@@ -45,9 +45,9 @@ const Semaphore = artifacts.require('Semaphore');
|
||||
|
||||
const proof_util = require('../../src/util');
|
||||
|
||||
const RocksDb = require('sbmtjs/src/storage/rocksdb');
|
||||
const MerkleTree = require('sbmtjs/src/tree');
|
||||
const Mimc7Hasher = require('sbmtjs/src/hasher/mimc7');
|
||||
const RocksDb = require('zkp-sbmtjs/src/storage/rocksdb');
|
||||
const MerkleTree = require('zkp-sbmtjs/src/tree');
|
||||
const Mimc7Hasher = require('zkp-sbmtjs/src/hasher/mimc7');
|
||||
|
||||
beBuff2int = function(buff) {
|
||||
let res = bigInt.zero;
|
||||
|
||||
Reference in New Issue
Block a user