@semaphore-protocol/proof 3.12.2 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.browser.mjs +3440 -0
- package/dist/index.node.js +2519 -165
- package/dist/index.node.mjs +3420 -0
- package/dist/types/groth16/prove.d.ts +4 -0
- package/dist/types/groth16/utils.d.ts +1 -0
- package/dist/types/groth16/verify.d.ts +1 -0
- package/dist/types/groth16/wtns-calculate.d.ts +1 -0
- package/dist/types/groth16/wtns-utils.d.ts +6 -0
- package/dist/types/groth16/zkey-utils.d.ts +1 -0
- package/package.json +19 -8
- package/src/calculateNullifierHash.ts +1 -1
- package/src/generateProof.ts +3 -2
- package/src/groth16/prove.ts +226 -0
- package/src/groth16/utils.ts +14 -0
- package/src/groth16/verify.ts +73 -0
- package/src/groth16/wtns-calculate.ts +39 -0
- package/src/groth16/wtns-utils.ts +32 -0
- package/src/groth16/zkey-utils.ts +60 -0
- package/src/verifyProof.ts +2 -2
- package/dist/index.mjs +0 -1084
package/dist/index.mjs
DELETED
|
@@ -1,1084 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @semaphore-protocol/proof
|
|
3
|
-
* @version 3.12.2
|
|
4
|
-
* @file A library to generate and verify Semaphore proofs.
|
|
5
|
-
* @copyright Ethereum Foundation 2022
|
|
6
|
-
* @license MIT
|
|
7
|
-
* @see [Github]{@link https://github.com/semaphore-protocol/semaphore/tree/main/packages/proof}
|
|
8
|
-
*/
|
|
9
|
-
import { BigNumber } from '@ethersproject/bignumber';
|
|
10
|
-
import { zeroPad } from '@ethersproject/bytes';
|
|
11
|
-
import { keccak256 } from '@ethersproject/keccak256';
|
|
12
|
-
import { groth16 } from 'snarkjs';
|
|
13
|
-
|
|
14
|
-
function getDefaultExportFromCjs (x) {
|
|
15
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
var poseidon2$1 = {};
|
|
19
|
-
|
|
20
|
-
const F = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
|
|
21
|
-
const N_ROUNDS_F = 8;
|
|
22
|
-
const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
|
|
23
|
-
const pow5 = v => {
|
|
24
|
-
let o = v * v;
|
|
25
|
-
return v * o * o % F;
|
|
26
|
-
};
|
|
27
|
-
function mix(state, M) {
|
|
28
|
-
const out = [];
|
|
29
|
-
for (let x = 0; x < state.length; x++) {
|
|
30
|
-
let o = 0n;
|
|
31
|
-
for (let y = 0; y < state.length; y++) {
|
|
32
|
-
o = o + M[x][y] * state[y];
|
|
33
|
-
}
|
|
34
|
-
out.push(o % F);
|
|
35
|
-
}
|
|
36
|
-
return out;
|
|
37
|
-
}
|
|
38
|
-
function poseidon(_inputs, opt) {
|
|
39
|
-
const inputs = _inputs.map(i => BigInt(i));
|
|
40
|
-
if (inputs.length <= 0) {
|
|
41
|
-
throw new Error('poseidon-lite: Not enough inputs');
|
|
42
|
-
}
|
|
43
|
-
if (inputs.length > N_ROUNDS_P.length) {
|
|
44
|
-
throw new Error('poseidon-lite: Too many inputs');
|
|
45
|
-
}
|
|
46
|
-
const t = inputs.length + 1;
|
|
47
|
-
const nRoundsF = N_ROUNDS_F;
|
|
48
|
-
const nRoundsP = N_ROUNDS_P[t - 2];
|
|
49
|
-
const {
|
|
50
|
-
C,
|
|
51
|
-
M
|
|
52
|
-
} = opt;
|
|
53
|
-
if (M.length !== t) {
|
|
54
|
-
throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
|
|
55
|
-
}
|
|
56
|
-
let state = [0n, ...inputs];
|
|
57
|
-
for (let x = 0; x < nRoundsF + nRoundsP; x++) {
|
|
58
|
-
for (let y = 0; y < state.length; y++) {
|
|
59
|
-
state[y] = state[y] + C[x * t + y];
|
|
60
|
-
if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5(state[y]);else if (y === 0) state[y] = pow5(state[y]);
|
|
61
|
-
}
|
|
62
|
-
state = mix(state, M);
|
|
63
|
-
}
|
|
64
|
-
return state[0];
|
|
65
|
-
}
|
|
66
|
-
var poseidon_1 = poseidon;
|
|
67
|
-
getDefaultExportFromCjs(poseidon_1);
|
|
68
|
-
|
|
69
|
-
var unstringify = {};
|
|
70
|
-
|
|
71
|
-
Object.defineProperty(unstringify, "__esModule", {
|
|
72
|
-
value: true
|
|
73
|
-
});
|
|
74
|
-
unstringify.default = unstringifyBigInts;
|
|
75
|
-
function unstringifyBigInts(o) {
|
|
76
|
-
if (Array.isArray(o)) {
|
|
77
|
-
return o.map(unstringifyBigInts);
|
|
78
|
-
} else if (typeof o == 'object') {
|
|
79
|
-
const res = {};
|
|
80
|
-
for (const [key, val] of Object.entries(o)) {
|
|
81
|
-
res[key] = unstringifyBigInts(val);
|
|
82
|
-
}
|
|
83
|
-
return res;
|
|
84
|
-
}
|
|
85
|
-
const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
|
|
86
|
-
const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
|
|
87
|
-
return BigInt(`0x${hex}`);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
var _2 = {};
|
|
91
|
-
|
|
92
|
-
Object.defineProperty(_2, "__esModule", {
|
|
93
|
-
value: true
|
|
94
|
-
});
|
|
95
|
-
_2.default = void 0;
|
|
96
|
-
var _default = {
|
|
97
|
-
C: ['DumlkrqalRjQWYbWVvQMIRTEmTwRuymTjSHUcwTNjm4=', 'APFEUjXyFIxZhlhxafwbzYh7CNTQCGjfVpb/9AlW6GQ=', 'CN/zSH6KyZ4fKaBY0PqAuTDHKHMLerNs6HnziQ7Pc/U=', 'Lye+aQ/a7kbDzij3UysTyFbDU0LIS9puIJZjEPrcAdA=', 'KyrhrPaLe40kFr6/PU9iNLdj/gS4BD7ki4MnvryhbPI=', 'AxnQYgcr737MperAb5fU1VlSwXWrawPq5ktEx9vxHPo=', 'KIE9yuuuqoKKN234evSmO8i3vyetScYpjvezh78oUm0=', 'JydnOyzLyQPxgb844cHUDSAzhlIAw1K8FQkord35y3g=', 'I07EXKJ3J8LnSr0rKhSUzW771D40BYfWuPueMeZcxjI=', 'FbUlNAMa4Y9/hiyyz3z3YKsQqBUKM3sczZn/boeX1Cg=', 'Dcj61tnks19e2aPRhrec444Oio0bWLEy1wHU7s9o0fY=', 'G82V/8IR+8pgD3BfrT+1Z+pOs3j2Lh/sl4BVGKR+TZw=', 'EFILCrchyt/p7/gbAW/DTcdto2wleJN4F8uXjQad5Vk=', 'H21IFJuOf32bJX2O1fu69CkySYB1/tCs6IqeuB9WJ/Y=', 'HZZV9lIwkBTSngDvNaIIm//43ByBbw3JyjS9tUYMhwU=', 'BN9aVv+VvK+wUfexzUOpm6cx/2fkcDIFj+PUGFaXzH0=', 'BnLZlfj/9kAVGz0pDO2vFIaQoQqMhCSn9uwoK25L6Cg=', 'CZlStBSIRFSyEgDX/6/dXwyancwG8nCOn8HYIJtcdbk=', 'BSy6IlXf0Ax8SDFDuo1GlEjkNYaptM2Rg/0OhDprn6Y=', 'C4ut7mkK246wvXRxK3mZr4LeVXByUa13Fgd8uTxGTdw=', 'EZsVkPEzB69aHuZRAgwHx0nBXWBoOoBQuWPQqOSyvdE=', 'AxULfNbV0XslKdNr4PZ7gyxKz8iE707lzhW+C/tKjQk=', 'LMYYLF4UVG488ZUfFzkSNVN077g9gImKvmnLMXyepWU=', 'AFAyVR5jeMRQz+EppASzdkIYyt7awU4rktLNcxEb8Pk=', 'IzI34yibqjS7FH6XLry5UWRpw5n8wGn7iPnaLMKCdrU=', 'Bcj09OvUpuPJgNMWdL++YyMDfyGzSuWk6AwtTCTWAoA=', 'CnsdsTBC05a6BdgYoxnyUlK8817zru2R7h8JslkPxls=', 'KnO3H5shDPWxQpZXLJ0y2/FW4rCG/0fcXfVCNlpATsA=', 'GsmwQXq8yaGTUQfp/8kdw+wY8sTb5/Ipdqdgu1xQxGA=', 'EsAzmuCDdII/q7B2cH70eSafPk1ssQQ0kBXuBG3JP8A=', 'C3R1sQKhZa1/WxjbTh5wT1KQCqMlO6rGgkZoLlbpoo4=', 'A3woSeGRyj7bHF5J9ui4kXyEPjeTZvLqMqs6qI1/hEg=', 'BaaBH4VW8BTpJnRmHiF+m9UgbFyToH3BRf2xdqcWNG8=', 'KaeV59mAKJRulHt11U6fBEB26Hp7KIO0e2de9fOL1m4=', 'IEOaDISzIutFo4V6/Bj1gm6Mc4LIoVhcUHvhmZgf0i8=', 'Lguo2U2ez0qU7CBQxzcf8btQ8neZqEttSipvKgmCyIc=', 'FD/RFc4I+yfKOOt8zoIrRReCLNIQkEjS5tDdzKF9ccg=', 'DGTL7LHHNLhXlo273PgTzfhhFlkyPby/yEMjYjvpyvE=', 'AoowWEfGg/ZG/KklwWP/WudPNI1iwrZw8UJs75QD2lM=', 'Lk71EP8Lb9pfqUCrTEOA8mpry2TYlCe4JNZ1W1254ww=', 'AIHJW8QzhOZj15JwyVbOO4kltPbQM7B4uWOE9QV5QA4=', 'LtXwyRy9l0kYfi+t5ofgXuJJGzScA5oLuoqfQCOguzg=', 'MFCZkfiNo1BLvzdO1ari8DRIoix2I0yMmQ8B8zpzUgY=', 'HD8g/VVAmlMiG3xNSaNWufChEZ+yBntBp1KQlEJOxq0=', 'ELTn86td8AMElRRFm24Y7sRrsiE+jhMeFwiHtH3cuWw=', 'KhmCl5w/9/Q93VQ9iRwqvd2A+ATAd9d1A5qjUC5Dre8=', 'HHTuZPFeHbb+3b6tVtbVXbpDHrw5bJr5XK0PExW9XJE=', 'B1M+yFC6f5jquTA8rOAbS55PLouCcIz6nC/kWgrhRqA=', 'IVdrQ45QBEmhUeTurxexVChcaPQtQsGAihGr83ZMB1A=', 'LxfAVZuP55YIrVyhk9YvELzoOEyBXwkGdD1pMINtSp4=', 'LUd+OGLQdwinnoqulGFwvJd1pCATGEdK5mWwsbficw4=', 'Fi9SQ5ZwZMOQ4JVXeYTyka+6ImbDj1q82Jvg9bJ0fqs=', 'K0yyM+3pukgmTs0siuUNGteoWWqH8p+Kd3enAJI5MxE=', 'LI+8st2Fc9wduvj0YihUd22y7s5thcTPQlTnw14DsHo=', 'HW80dyXkgWry/0U/DNVrGZ4bYen2Aemt5eiNuHCUnak=', 'IEsMOX9OvnHrwtiz31uRPfnmrAK2jTEyTNSa9cRWVSk=', 'DEy53DxP2BdPEUmzxjw8L57LgnzX3CVTT/j7dbx5xQI=', 'F0rWGhRIyJmiVBZHT0kwMB5cSUdSeeBjmmFt3EW8e1Q=', 'GpYXe89NjYn3Wd9OwvPN4uqqKMF3zA+hOpgW1Jo40u8=', 'Bm0EskMx1xzQ74BUvGDE/wUgLBJqIzwagkKs42C4owo=', 'KkxPxuwLDPUhlXgoccbdOzgcxl9y4CrVJwN6Yqob2AQ=', 'E6stE2zPN9RH6fLhSnztyV5yf4RG9tnX5Vr8ASGf1kk=', 'ESFVL8omBhYZ0k2EPcgnacGwT87Cb1UZTC4+hprMapo=', 'AO9lMyKxPWyIm8gXFcN9d6bNJn1ZXEqJCaVUbHyXz/E=', 'DiVIPkWmZSCLJh2Lp0BR5kAMd21lJZXZhFrKNdijl9M=', 'KfU23LnddoIkUmRlnhXYjjlaw9Td6S2MRkSNuXnuuok=', 'KlbvnyxT/rrf2jNXXb29iFoSTieAu+oXDkVrqs4Ppb4=', 'HINhx461z13s+3otF7XECfKuKZmkZ2Lo7kFiQKjLmvE=', 'FRr/XziyCg/ARzCJqvAga4Po5op2RQe/09CrS+dDGcU=', 'BMYYfkHtiB3BsjnIj3+dQ6n1L8jIts3R525HYVtR8QA=', 'E7N72A9NJ/sQ2EMx9vttU0uBxh7RV3ZEnoAbfdycKWc=', 'AaXFNic8LZ31eL+9MsF7eizjZkwqUgMskyHOscToqOQ=', 'KrNWGDTKc4Na0F9desuVC0qaLGZrlybagyI5Blt8OwI=', 'HU2OwpHnINsgD+bWhsDWE6yvavTpXTv2n37VFqWXtkY=', 'BBKU0sxITSKPV4T+eRn9K7klNRJAoEtxFRTJyAtlrx0=', 'FUrJjgFwjGEcT6cVmR8ASJj1eTnRJuOSBClx3ZDoH8Y=', 'CzOdisyn1Pg+7dhAk671EFCzaEyI+LCwRSRWO8bqTaQ=', 'CVXknmYQyUJUpPhM+6s0RZjw5x6v9Kfdge2VtQg5yC4=', 'BnRqYVbrpUQmueIiBvFavKmm9B5vU1xvNSVAHqBlRiY=', 'Dxj1oOzRQjxJbzggxUnCeDjleQ4r0KGWrJF8f/Mgd/s=', 'BPbuyhdR9zCKxZ7/W+smHku1Y1g+3nvJKnOCI9b3bhM=', 'K1aXM2TExPXBo+xNo83OA4gR6xFvs+RbwXaNJvwLN1g=', 'Ejdp3UnVsFTc12uJgEsby44TkrOFcWpdg/62XUN/Ke8=', 'IUe0JPxIyAqI7lK5EWmqzqmJ9kRkcRUJlCV7L7AcY+k=', 'D9wfWFSLhXAabFUF6jMqKWR+bzStQkPC6lStiXzr5U0=', 'Ejc6glH+oATfaKvPD3eG1Lzv8oxdu+DDlE9oXMCgsfI=', 'IeT06l81+FutfqUv90LJ6KZCdWtq9EID3YofNcGpADU=', 'FiQ5FtadLKPftHIiJNTEYrVzZkkvRekNioGTTxvDsUc=', 'HvvkbdeleLT2b5rbyItDeKvCFWbhoEU8oTpBWcrASsI=', 'B+pehTfPXdCIhgIOI6fzh9Ro1VJb5m+FO2csyWqIlpo=', 'BajE+ZaLiqO3tHijD5pbY2UPGadefOEcqf4WwLdsALw=', 'IPBXcSzCFlT7/lm9NF6NrD94GMcBuceILZ1Xtyoy6D8=', 'BKEu3tqd/WiWcvjGf+4xY23NjojQHUkBm9kLM+sz22k=', 'J+iNjBXzfc7kTx5UJaUd7L0TbOUJGmdn5J7JVEzNEBo=', 'L+7Re4QoXtm4pcjF6VpB9m4JZhmncDIjF2xB7kM95NE=', 'HtfMdu30XHxAQkFCD3Kc85TllCkRMSoNaXK4vVOv8rg=', 'FXQumbm/oyMVf/jFhvVmDqxng0dhRM3K3yh0vkVGaxo=', 'GqwoU4f2XoLIlfxoh930BXcQdFTG7AMXKE8DPyfQx4U=', 'JYUcPIRdR5D53a29tgVzV4MuLnpJd19x7HWpZVTWfHc=', 'FaWCFWXMLsLOeEV9sZft81O367osVSM3DdzMPZ8Uamc=', 'JBHVekgTuZgO+n4xodtZZtz2TzYEQndQLxVIXyjHFyc=', 'AC5vjWUgzUcT4zW4wLbS5kfpqY4S9M0lWIKLXvbLTJs=', 'L/e8j0OAzemX2gC2FrD80a+PDpHi/h7XOYg0YJ4DFdI=', 'ALmDG5SFJVle4CckRxvNGC6VIfa3u2jx6Tvk/rsNPL4=', 'Ci9TdouOv2qGkTsOV8BOARykCGSKR0OofXetvwycNRI=', 'ACSBVhQv0Dc6R5+R/yOelg9Zn/fpS+abfyopAwXhGY0=', 'Fx1WILh7+xMoz4wCqz8MmjlxlqpqVCwjUOtRKisrzak=', 'FwpPVVNvfclwCHx8ENb612DJUhct1U3ZnRBF5Ow0qAg=', 'KaujP3mf5mwu8xNK6gQzbsw344wc0hG6SC7KF+Lb+uE=', 'HpvBeaT911j90bsZRQiNR+cNEUoD9qDotbplA2nmSXM=', 'HdJpeZtmD61Y9/SJLfsLWv6q2GmpxLRPnJ4cQ72vjwk=', 'Is28i3ARetFAEYHQLhVFnnzNQm/oacfJXR3Syw8krzg=', 'DvBC5FR3HFM6n1elXFA/zv0xUPUu2Up81bqTucfazv0=', 'EWCeBq1sj+Lyh/MDYDfohRMY6LCKA1mgOzBP/KYugoQ=', 'EWbZ5VRhbbqedT7qQnwXt/7NWMB23+QnCLCPW3g6qa8=', 'LeUpiUMahZWTQTAmNUQT2xd/v0zSrAtW+FWoiDV+5GY=', 'MAbrT/x6hYGabaSS86isHfUa7lsXuOiddL8Bz19x6a0=', 'KvQfu2G6ioD9z2//nj9vQimT/o8KRjn5YjRMgiUUUIY=', 'EZ5oTeR2FV/lprQajryF24cYqyeInoXngbIUus5IJ8M=', 'GDW3huLokl4Yi+pZrjY1N7USSMI4KPBHz/eEuXs/2AA=', 'KCAaNMWU36NNeUmWxkM6INFSusKnkFySbEDihasy7rY=', 'CD79eifRdRCU6A/vr3iwAIZMgutXEYdySnYfiMIsxOc=', 'C2+Io1dxmVJhWOYc7qJ76BHBbfd3TdhRngeVZPYf0Ts=', 'Dsho5tFeUdlkT2bh1kcalFiVEcoA0p4QFDkObuQlT1s=', 'KvM+P4ZncScawMmz7S4RQuzT50uTnNQNANk3q4TJhZE=', 'C1ICEfkEtefQm12WHGrOdzRWjFR91oWLNkzl5HlR8Xg=', 'Cy1yLQkZoarY21jxAGKpLqDFasQnDoIsyiKGIBiKHUA=', 'H3kNTX+M8JTZgM6zfCRT6Ve1SpmRyji74AYdHtblYtQ=', 'AXHrld+/fR6uqXzThfeAFQiFwWI1oqao2pLOsB5QQjM=', 'DC0OO1/VdUkym/aIXaZrm3kLQN79LIZQdiMFOBsWiHM=', 'EWL7KGicJxVOWoIotOcrN3y8r6WJ4oPDXTgDBUQHoY0=', 'LxRZtl3uRBtkrThqkegxDygsWpKonhmSFiPvgklxG8A=', 'Hm/zIWtojD2ZbXQ2fVzUwbxInUZ1TrcSwkP3DRtTz7s=', 'AcqL5zgyuNBoFIfSfRV4AtdBpvNs3CoFdogfkyZHiHU=', 'H3c1cG/+n8WG+XbVvfIj3GgChggLEM6gC5td4xX5ZQ4=', 'JSK2D06jMHZAoMLc4EH7qSGsEKPV8JbvR0XKg4KF8Bk=', 'I/C+4AGxAp1SVQdd3JV/gzQYytT1K2w/jOFsI1VyV1s=', 'K8Gui43buB/KrC1EVV7VaF0UJjPp35BfZtlAEJMILVk=', 'D5QGuCllZKNzBFB7jbo+0WI3EnOgex/JgBH81q1yIF8=', 'I2Co6wzH3vpntymY3pBxThfnWxdKUu5KyxJsjNmV8Kg=', 'FYcaXN3q2XaATIA8uu8lXrSBWl6W34sAbcu8J2f4iUg=', 'GTpWdmmY7p4KhlLdLzsdoDYvT1T3I3lUT5V8ze77Qg8=', 'KjlKQ5NPhpgvm+Vv9PqxcDsuY8itM0g05DCYBed3rg8=', 'GFmVTP64aV8+i2NdyzRRkoks0RIjRDuntBZuiHbA0UI=', 'BOEYF2MFDlgBNETby5nxkCsRvCXZC73KQI04GfT+0ys=', 'D9slPe6Dhp1AwzXqZN6MW7EOuC2wi16LH15VUr/QXyM=', 'BYy+ippQJ72qTvtiOt6tYnXwhobxwImEqdfFuum08cA=', 'E4Ltzplx4YZJfq2xrrH1KyO0uDvvAjqw0VIotMzspZo=', 'A0ZJkPBFxu4IGcpR/RGwvn9huOuZ8Ut34eZjRgHZ6LU=', 'I/e/yHINwpb/8ztB+Y/4PG/KtGBdsutaqlvBN663Clg=', 'ClmhWOPuwhF+bpTn8OnezxjD/9XhUxqSGWNhWLuvYvI=', 'BuxUyAOBwFK1i/I7MS/9POLE66BlQgr49MI+0Adf0Hs=', 'EYhy3IMuDrVHa1ZkjoZ+yLCTQPenvLG0li8P+e0fnQE=', 'E9afoSfYNBZa1cfLp61Z7VLgsPDkLX/qleGQa1IJIbE=', 'FpoXf2PqaBJwscaHenPSG94UOUL7cdxV/YpJ8Z8Qx3s=', 'BO9RWRxurZfvQvKHrc5A2Tq+sDK5IvZv+36aWnRQVE0=', 'JW4XWh3AeTkOzXynA/suOxnsYYBdTwPO1fRe5t0Paew=', 'MBAtKGNqvV/l8q9BL/YAT3XMNg0yBd0toAKBPT4s7rI=', 'EJmOQt/NO78cBxS8c+sb9ARDo/qZvvSjH9Mb4YL8x5I=', 'GT7djp/PPXYl+n0ktZih2J8zYur01YLv7K12+HnjaGA=', 'GBaK/TTy2RXQNozoC3szR9HHpWHOYRQl8mZNeqUfC10=', 'KTg8AevTtqsMAXZW6+ZYtqMo7He8M2JuKeLpWzPqYRE=', 'EGRtLyYD3jmh9K5ed3GmSnAttuhvt2q2AL9XP5AQxxE=', 'C+teB9GycUX1dfE5WlW/Ey+QwltA2ns4ZNAkLcsRF/s=', 'FtaFJSB4wTPcDT7K1itciDD5W7LlS1mr3/vwGNlvozY=', 'Cmq9HYM5OPM8dBVOBAS0tApVW7vsId36/Wct1iBH8Bo=', 'GmefXTbre1yOoSpMLe3I/rEt/+7EUDFycKbxmzTPGGA=', 'CYD7IzvUVsI5dNUODr/eRyakI+raTo9v+8dZLj8bk9Y=', 'FhtCIy5huEy/GBCvk6OPwM7OPVYoySggA+ustcMSxys=', 'CtoQqQx/BSCVD31Hpg1eakk/CXh/FWTl0JID20feGgs=', 'GnMNNyMQuoIyA0WimsQjjtPweoorThIbtQ3bmvQH9FE=', 'LIEg8mjvBU+BcGTDad2n6pCDd/6rpcTf+9oQ71joxVY=', 'HHyIJPdYdT+lfAB4nGhCF7kw6VMTvLc+bnuGSaSWj3A=', 'LNntMfX4aRyOOeQHenT6oPQArYtJHrP3tHsn+j/Rz3c=', 'I/9PnUaBNFfPYNkvV2GDmaXgIqwyHKVQhUriORiiLuo=', 'CZRaXRR6T2bO7OZAXd3Z0K9aLFEDUpQH3/HqWPGAQm0=', 'GI2cUoAl1MK2dmDGt3G5D3x9puqinT8mim3SI+xvxjA=', 'MFDjeZZZa3+B9oMRQx2HNNun2SbTYzWV4MDY3fTw9H8=', 'Fa8RaTloMKkWAMqBAsNcQmzq5UYeP5XYnYKVGNMK/Xg=', 'HabQmIVDLqmgbZ83+HPZhdrpM+NRRmspBChNozINisw=', 'J5bqkNJpryn1+KzzOSESTk5PrT2+ZYlF5UbuQR3aqcs=', 'IC190doPa0sDJcizMHdC8B4VYS7I6TBKfLAxngHTLWA=', 'CW1nkNBbt1kVapUromPWcqLX+ceI9Mgxop2s5MD4vl8=', 'BU76H2Ww/OKDgIllJ12He0ONojzlsT4ZY3mMsUR9JaQ=', 'GxYvg9kX6T7bMwjCmALeudiqaQETsuFIZMz24Y5BZfE=', 'IeUkHhJWTdb9nxzdKg3jnu3+/BRmzFaOxc63RaBQbtw=', 'HPtWYujPWskiaoDuF7Nqvstzq1+H4WGSe0NJ4Q5L3wg=', 'DyEXfjAqdxu65tjR7LNztiyZrzRiIKwBKcU/Zm6yQQA=', 'FnFSI3RgaZKv+w3X9xsSvsQjau3mKQVGvO9+H1FcIyA=', 'D6PsW5SIJZwutM8kUBv62b4uyeQsXMjM1BnSppLK2HA=', 'GTwOBOC9KYNXyyZsFQYIDtNu3OhcZIzAhejFexq1S7o=', 'ECrfjvdHNaJ+kSgwbcvDyZ9vcpHNQGV4zhTqKtq6aPg=', 'D+CveFjkmFnipU1vGtlFsTFqokv73SOuQKbQy3DD6rE=', 'IW9nF7vH3tsIU2oiIIQ/Ti2l8dqp69796KXqc0R5jSI=', 'HaVcyQDw0h9KPmlDkZGKGzwjsqx3PGs++I4uQigyUWE='],
|
|
98
|
-
M: [['EJt/QRug5MmytwyvXDansZS+fBGtJDeL/ttoWSuoEYs=', 'Fu1B4Tu5wMZq4RlCT928vJMU3J/b3upV1sZFQ9xJA+A=', 'K5C7oA/KBYn2F+fcv+guDfcGq2QM6yR7eRqTt042c20='], ['KWnyfu0xpIC5w2x2Q3nbyizI/dFBXD3e1ilAvN4L13E=', 'LiQZ+ewC7DlMmHHIMpY9wbiddDyMe5ZAKbIxFoex/iM=', 'EBBx8AMjebaXMVh2aQ8FPRSNThCfX7BlyKrMVaD4m/o='], ['FDAh7GhqPzMNX55lRjgGXObNeeKMWzdTMmJE7mWhsac=', 'F2zAKWla0CWCpw7/CKb9mdBX4S5Y59e2sWzfq8juKRE=', 'GaP8ClZwK/QXun/uOAJZP6ZERwMHBD93cyec1x0l1eA=']]
|
|
99
|
-
};
|
|
100
|
-
_2.default = _default;
|
|
101
|
-
|
|
102
|
-
Object.defineProperty(poseidon2$1, "__esModule", {
|
|
103
|
-
value: true
|
|
104
|
-
});
|
|
105
|
-
var poseidon2_2 = poseidon2$1.poseidon2 = poseidon2;
|
|
106
|
-
var _poseidon = _interopRequireDefault(poseidon_1);
|
|
107
|
-
var _unstringify = _interopRequireDefault(unstringify);
|
|
108
|
-
var _ = _interopRequireDefault(_2);
|
|
109
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
110
|
-
const c = (0, _unstringify.default)(_.default);
|
|
111
|
-
function poseidon2(inputs) {
|
|
112
|
-
return (0, _poseidon.default)(inputs, c);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Creates a keccak256 hash of a message compatible with the SNARK scalar modulus.
|
|
117
|
-
* @param message The message to be hashed.
|
|
118
|
-
* @returns The message digest.
|
|
119
|
-
*/
|
|
120
|
-
function hash(message) {
|
|
121
|
-
message = BigNumber.from(message).toTwos(256).toHexString();
|
|
122
|
-
message = zeroPad(message, 32);
|
|
123
|
-
return (BigInt(keccak256(message)) >> BigInt(8)).toString();
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Given the identity nullifier and the external nullifier, it calculates nullifier hash.
|
|
128
|
-
* @param identityNullifier The identity nullifier.
|
|
129
|
-
* @param externalNullifier The external nullifier.
|
|
130
|
-
* @returns The nullifier hash.
|
|
131
|
-
*/
|
|
132
|
-
function calculateNullifierHash(identityNullifier, externalNullifier) {
|
|
133
|
-
return poseidon2_2([hash(externalNullifier), identityNullifier]);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/******************************************************************************
|
|
137
|
-
Copyright (c) Microsoft Corporation.
|
|
138
|
-
|
|
139
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
140
|
-
purpose with or without fee is hereby granted.
|
|
141
|
-
|
|
142
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
143
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
144
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
145
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
146
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
147
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
148
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
149
|
-
***************************************************************************** */
|
|
150
|
-
|
|
151
|
-
var __assign = function() {
|
|
152
|
-
__assign = Object.assign || function __assign(t) {
|
|
153
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
154
|
-
s = arguments[i];
|
|
155
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
156
|
-
}
|
|
157
|
-
return t;
|
|
158
|
-
};
|
|
159
|
-
return __assign.apply(this, arguments);
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
163
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
164
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
165
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
166
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
167
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
168
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
function __generator(thisArg, body) {
|
|
173
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
174
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
175
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
176
|
-
function step(op) {
|
|
177
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
178
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
179
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
180
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
181
|
-
switch (op[0]) {
|
|
182
|
-
case 0: case 1: t = op; break;
|
|
183
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
184
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
185
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
186
|
-
default:
|
|
187
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
188
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
189
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
190
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
191
|
-
if (t[2]) _.ops.pop();
|
|
192
|
-
_.trys.pop(); continue;
|
|
193
|
-
}
|
|
194
|
-
op = body.call(thisArg, _);
|
|
195
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
196
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Packs a proof into a format compatible with Semaphore.
|
|
202
|
-
* @param proof The Groth16 proof generated with SnarkJS.
|
|
203
|
-
* @returns The proof compatible with Semaphore.
|
|
204
|
-
*/
|
|
205
|
-
function packProof(proof) {
|
|
206
|
-
return [
|
|
207
|
-
proof.pi_a[0],
|
|
208
|
-
proof.pi_a[1],
|
|
209
|
-
proof.pi_b[0][1],
|
|
210
|
-
proof.pi_b[0][0],
|
|
211
|
-
proof.pi_b[1][1],
|
|
212
|
-
proof.pi_b[1][0],
|
|
213
|
-
proof.pi_c[0],
|
|
214
|
-
proof.pi_c[1]
|
|
215
|
-
];
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Generates a Semaphore proof.
|
|
220
|
-
* @param identity The Semaphore identity.
|
|
221
|
-
* @param groupOrMerkleProof The Semaphore group or its Merkle proof.
|
|
222
|
-
* @param externalNullifier The external nullifier.
|
|
223
|
-
* @param signal The Semaphore signal.
|
|
224
|
-
* @param snarkArtifacts The SNARK artifacts.
|
|
225
|
-
* @returns The Semaphore proof ready to be verified.
|
|
226
|
-
*/
|
|
227
|
-
function generateProof(_a, groupOrMerkleProof, externalNullifier, signal, snarkArtifacts) {
|
|
228
|
-
var trapdoor = _a.trapdoor, nullifier = _a.nullifier, commitment = _a.commitment;
|
|
229
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
230
|
-
var merkleProof, index, _b, proof, publicSignals;
|
|
231
|
-
return __generator(this, function (_c) {
|
|
232
|
-
switch (_c.label) {
|
|
233
|
-
case 0:
|
|
234
|
-
if ("depth" in groupOrMerkleProof) {
|
|
235
|
-
index = groupOrMerkleProof.indexOf(commitment);
|
|
236
|
-
if (index === -1) {
|
|
237
|
-
throw new Error("The identity is not part of the group");
|
|
238
|
-
}
|
|
239
|
-
merkleProof = groupOrMerkleProof.generateMerkleProof(index);
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
merkleProof = groupOrMerkleProof;
|
|
243
|
-
}
|
|
244
|
-
if (!snarkArtifacts) {
|
|
245
|
-
snarkArtifacts = {
|
|
246
|
-
wasmFilePath: "https://www.trusted-setup-pse.org/semaphore/".concat(merkleProof.siblings.length, "/semaphore.wasm"),
|
|
247
|
-
zkeyFilePath: "https://www.trusted-setup-pse.org/semaphore/".concat(merkleProof.siblings.length, "/semaphore.zkey")
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
return [4 /*yield*/, groth16.fullProve({
|
|
251
|
-
identityTrapdoor: trapdoor,
|
|
252
|
-
identityNullifier: nullifier,
|
|
253
|
-
treePathIndices: merkleProof.pathIndices,
|
|
254
|
-
treeSiblings: merkleProof.siblings,
|
|
255
|
-
externalNullifier: hash(externalNullifier),
|
|
256
|
-
signalHash: hash(signal)
|
|
257
|
-
}, snarkArtifacts.wasmFilePath, snarkArtifacts.zkeyFilePath)];
|
|
258
|
-
case 1:
|
|
259
|
-
_b = _c.sent(), proof = _b.proof, publicSignals = _b.publicSignals;
|
|
260
|
-
return [2 /*return*/, {
|
|
261
|
-
merkleTreeRoot: publicSignals[0],
|
|
262
|
-
nullifierHash: publicSignals[1],
|
|
263
|
-
signal: BigNumber.from(signal).toString(),
|
|
264
|
-
externalNullifier: BigNumber.from(externalNullifier).toString(),
|
|
265
|
-
proof: packProof(proof)
|
|
266
|
-
}];
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* Unpacks a proof into its original form.
|
|
274
|
-
* @param proof The proof compatible with Semaphore.
|
|
275
|
-
* @returns The proof compatible with SnarkJS.
|
|
276
|
-
*/
|
|
277
|
-
function unpackProof(proof) {
|
|
278
|
-
return {
|
|
279
|
-
pi_a: [proof[0], proof[1]],
|
|
280
|
-
pi_b: [
|
|
281
|
-
[proof[3], proof[2]],
|
|
282
|
-
[proof[5], proof[4]]
|
|
283
|
-
],
|
|
284
|
-
pi_c: [proof[6], proof[7]],
|
|
285
|
-
protocol: "groth16",
|
|
286
|
-
curve: "bn128"
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
var protocol = "groth16";
|
|
291
|
-
var curve = "bn128";
|
|
292
|
-
var nPublic = 4;
|
|
293
|
-
var vk_alpha_1 = [
|
|
294
|
-
"20491192805390485299153009773594534940189261866228447918068658471970481763042",
|
|
295
|
-
"9383485363053290200918347156157836566562967994039712273449902621266178545958",
|
|
296
|
-
"1"
|
|
297
|
-
];
|
|
298
|
-
var vk_beta_2 = [
|
|
299
|
-
[
|
|
300
|
-
"6375614351688725206403948262868962793625744043794305715222011528459656738731",
|
|
301
|
-
"4252822878758300859123897981450591353533073413197771768651442665752259397132"
|
|
302
|
-
],
|
|
303
|
-
[
|
|
304
|
-
"10505242626370262277552901082094356697409835680220590971873171140371331206856",
|
|
305
|
-
"21847035105528745403288232691147584728191162732299865338377159692350059136679"
|
|
306
|
-
],
|
|
307
|
-
[
|
|
308
|
-
"1",
|
|
309
|
-
"0"
|
|
310
|
-
]
|
|
311
|
-
];
|
|
312
|
-
var vk_gamma_2 = [
|
|
313
|
-
[
|
|
314
|
-
"10857046999023057135944570762232829481370756359578518086990519993285655852781",
|
|
315
|
-
"11559732032986387107991004021392285783925812861821192530917403151452391805634"
|
|
316
|
-
],
|
|
317
|
-
[
|
|
318
|
-
"8495653923123431417604973247489272438418190587263600148770280649306958101930",
|
|
319
|
-
"4082367875863433681332203403145435568316851327593401208105741076214120093531"
|
|
320
|
-
],
|
|
321
|
-
[
|
|
322
|
-
"1",
|
|
323
|
-
"0"
|
|
324
|
-
]
|
|
325
|
-
];
|
|
326
|
-
var vk_delta_2 = [
|
|
327
|
-
[
|
|
328
|
-
[
|
|
329
|
-
"16243966861079634958125511652590761846958471358623040426599000904006426210032",
|
|
330
|
-
"13406811599156507528361773763681356312643537981039994686313383243831956396116"
|
|
331
|
-
],
|
|
332
|
-
[
|
|
333
|
-
"15688083679237922164673518758181461582601853873216319711156397437601833996222",
|
|
334
|
-
"11781596534582143578120404722739278517564025497573071755253972265891888117374"
|
|
335
|
-
],
|
|
336
|
-
[
|
|
337
|
-
"1",
|
|
338
|
-
"0"
|
|
339
|
-
]
|
|
340
|
-
],
|
|
341
|
-
[
|
|
342
|
-
[
|
|
343
|
-
"13589689305661231568162336263197960570915890299814486885851912452076929115480",
|
|
344
|
-
"15629200772768268814959330350023920183087521275477047626405113853190187031523"
|
|
345
|
-
],
|
|
346
|
-
[
|
|
347
|
-
"16004221700357242255845535848024178544616388017965468694776181247983831995562",
|
|
348
|
-
"11464919285924930973853174493551975632739604254498590354200272115844983493029"
|
|
349
|
-
],
|
|
350
|
-
[
|
|
351
|
-
"1",
|
|
352
|
-
"0"
|
|
353
|
-
]
|
|
354
|
-
],
|
|
355
|
-
[
|
|
356
|
-
[
|
|
357
|
-
"19717684456458906358368865507225121991585492363133107109865920739019288468011",
|
|
358
|
-
"9218320951536642499143228327011901814587826948504871816273184688188019956292"
|
|
359
|
-
],
|
|
360
|
-
[
|
|
361
|
-
"18221695645112467945186983098720611586049108689347006136423489099202471884089",
|
|
362
|
-
"16717590750910963405756115910371408378114896008824240863060392362901176601412"
|
|
363
|
-
],
|
|
364
|
-
[
|
|
365
|
-
"1",
|
|
366
|
-
"0"
|
|
367
|
-
]
|
|
368
|
-
],
|
|
369
|
-
[
|
|
370
|
-
[
|
|
371
|
-
"15953239752392927777442331623182226063776310198012173504208557434319753428770",
|
|
372
|
-
"3995128789564535587814512245259203300137618476815456454931286633947953135662"
|
|
373
|
-
],
|
|
374
|
-
[
|
|
375
|
-
"2523786679709693946058523307330825034772478122295850507521258983130425334580",
|
|
376
|
-
"20957319343912866335583737646657534123362052690050674068142580221965936605075"
|
|
377
|
-
],
|
|
378
|
-
[
|
|
379
|
-
"1",
|
|
380
|
-
"0"
|
|
381
|
-
]
|
|
382
|
-
],
|
|
383
|
-
[
|
|
384
|
-
[
|
|
385
|
-
"1382518990777992893805140303684642328066746531257780279226677247567004248173",
|
|
386
|
-
"18976133691706015337908381757202123182841901611067930614519324084182946094218"
|
|
387
|
-
],
|
|
388
|
-
[
|
|
389
|
-
"21806956747910197517744499423107239699428979652113081469385876768212706694581",
|
|
390
|
-
"6627710380771660558660627878547223719795356903257079198333641681330388499309"
|
|
391
|
-
],
|
|
392
|
-
[
|
|
393
|
-
"1",
|
|
394
|
-
"0"
|
|
395
|
-
]
|
|
396
|
-
],
|
|
397
|
-
[
|
|
398
|
-
[
|
|
399
|
-
"9032545080831535702239063467087720597970266046938395860207839433937324718536",
|
|
400
|
-
"3811592683283527904145155808200366192489850711742363953668998371801696238057"
|
|
401
|
-
],
|
|
402
|
-
[
|
|
403
|
-
"12429982191499850873612518410809641163252887523090441166572590809691267943605",
|
|
404
|
-
"16308433125974933290258540904373317426123214107276055539769464205982500660715"
|
|
405
|
-
],
|
|
406
|
-
[
|
|
407
|
-
"1",
|
|
408
|
-
"0"
|
|
409
|
-
]
|
|
410
|
-
],
|
|
411
|
-
[
|
|
412
|
-
[
|
|
413
|
-
"17626503110323089701269363177710295379967225765713250625279671011873619640598",
|
|
414
|
-
"9485639152672984144988597737758037391807993615552051606205480347442429414340"
|
|
415
|
-
],
|
|
416
|
-
[
|
|
417
|
-
"18953587685067712486092665232725058638563458484886448540567142557894080640927",
|
|
418
|
-
"12391874700409435648975069978280047983726144854114915177376036190441913967689"
|
|
419
|
-
],
|
|
420
|
-
[
|
|
421
|
-
"1",
|
|
422
|
-
"0"
|
|
423
|
-
]
|
|
424
|
-
],
|
|
425
|
-
[
|
|
426
|
-
[
|
|
427
|
-
"11408965575174993375815840422438995549652812400401163392501956884932167624437",
|
|
428
|
-
"9830856103389248449121962275587399130605902703453384856543071762984116567573"
|
|
429
|
-
],
|
|
430
|
-
[
|
|
431
|
-
"19969543376625663966419118899515353499678204573709836615846115182224340858492",
|
|
432
|
-
"11814906841949499037550820576929552248172160643991870665022770052632331265834"
|
|
433
|
-
],
|
|
434
|
-
[
|
|
435
|
-
"1",
|
|
436
|
-
"0"
|
|
437
|
-
]
|
|
438
|
-
],
|
|
439
|
-
[
|
|
440
|
-
[
|
|
441
|
-
"10090041889587324002759549286390619541526396451963494627957072069124011137562",
|
|
442
|
-
"15035335306919942325459417688135340085377315274625768597233474641923619728582"
|
|
443
|
-
],
|
|
444
|
-
[
|
|
445
|
-
"10507786999799841055999967456762679569286329319056926475375760604262707147294",
|
|
446
|
-
"21342049717074059749518233491526445388158772701642182532370641230478027030319"
|
|
447
|
-
],
|
|
448
|
-
[
|
|
449
|
-
"1",
|
|
450
|
-
"0"
|
|
451
|
-
]
|
|
452
|
-
],
|
|
453
|
-
[
|
|
454
|
-
[
|
|
455
|
-
"43456740675249348549891878341522275183186932745162972528932808393415299552",
|
|
456
|
-
"15718373132479769904443326381037437528372212185108294117696143473979328398658"
|
|
457
|
-
],
|
|
458
|
-
[
|
|
459
|
-
"4289247401578837038775845192875793775418122783738936298355403103074020081838",
|
|
460
|
-
"11236864934894600819960883124570686936554376109344998527334431594565774237827"
|
|
461
|
-
],
|
|
462
|
-
[
|
|
463
|
-
"1",
|
|
464
|
-
"0"
|
|
465
|
-
]
|
|
466
|
-
],
|
|
467
|
-
[
|
|
468
|
-
[
|
|
469
|
-
"4023016874169005249382064394379671330447496454371261692205411970999350949293",
|
|
470
|
-
"1723458149089715907994189658689343304709709060535625667210252753337752162173"
|
|
471
|
-
],
|
|
472
|
-
[
|
|
473
|
-
"17710652158212212080502343565075513548898593397103675832636832371532093744857",
|
|
474
|
-
"7651670126664625790835334090273463062538865895183205964669372719235003083565"
|
|
475
|
-
],
|
|
476
|
-
[
|
|
477
|
-
"1",
|
|
478
|
-
"0"
|
|
479
|
-
]
|
|
480
|
-
],
|
|
481
|
-
[
|
|
482
|
-
[
|
|
483
|
-
"13132169670125192016391258838554965176628317453468870968867717287446623320643",
|
|
484
|
-
"745924679191739894055143748466112994378439645681039136007774787076115375124"
|
|
485
|
-
],
|
|
486
|
-
[
|
|
487
|
-
"20909608709868730010029182074820840312550443752829480953667886902663547957991",
|
|
488
|
-
"2126777833939378028304266129616145667925849332481755567268747182629795296580"
|
|
489
|
-
],
|
|
490
|
-
[
|
|
491
|
-
"1",
|
|
492
|
-
"0"
|
|
493
|
-
]
|
|
494
|
-
],
|
|
495
|
-
[
|
|
496
|
-
[
|
|
497
|
-
"16835654219229187428071649241190746119082269636345872682107941472241044260584",
|
|
498
|
-
"4553625243522856553165922942982108474187282402890756796515747778282922584601"
|
|
499
|
-
],
|
|
500
|
-
[
|
|
501
|
-
"873742823867191038535544062852920538566418819521732785500614249239215175476",
|
|
502
|
-
"3272293478534046729728233267765357195255129499603632413158978822084188871854"
|
|
503
|
-
],
|
|
504
|
-
[
|
|
505
|
-
"1",
|
|
506
|
-
"0"
|
|
507
|
-
]
|
|
508
|
-
],
|
|
509
|
-
[
|
|
510
|
-
[
|
|
511
|
-
"7601443214415704135008588588192028557655441716696726549510699770097979655628",
|
|
512
|
-
"7252337675475138150830402909353772156046809729627064992143762325769537840623"
|
|
513
|
-
],
|
|
514
|
-
[
|
|
515
|
-
"18500126298578278987997086114400065402270866280547473913420536595663876273004",
|
|
516
|
-
"436607343827794507835462908831699962173244647704538949914686722631806931932"
|
|
517
|
-
],
|
|
518
|
-
[
|
|
519
|
-
"1",
|
|
520
|
-
"0"
|
|
521
|
-
]
|
|
522
|
-
],
|
|
523
|
-
[
|
|
524
|
-
[
|
|
525
|
-
"15028154694713144242204861571552635520290993855826554325002991692907421516918",
|
|
526
|
-
"10202326166286888893675634318107715186834588694714750762952081034135561546271"
|
|
527
|
-
],
|
|
528
|
-
[
|
|
529
|
-
"12766289885372833812620582632847872978085960777075662988932200910695848591357",
|
|
530
|
-
"18486039841380105976272577521609866666900576498507352937328726490052296469859"
|
|
531
|
-
],
|
|
532
|
-
[
|
|
533
|
-
"1",
|
|
534
|
-
"0"
|
|
535
|
-
]
|
|
536
|
-
],
|
|
537
|
-
[
|
|
538
|
-
[
|
|
539
|
-
"13682963731073238132274278610660469286329368216526659590944079211949686450402",
|
|
540
|
-
"14930624777162656776068112402283260602512252179767747308433194885322661150422"
|
|
541
|
-
],
|
|
542
|
-
[
|
|
543
|
-
"21315724107376627085778492378001676935454590984229146391746301404292016287653",
|
|
544
|
-
"18705481657148807016785305378773304476425591636333098330324049960258682574070"
|
|
545
|
-
],
|
|
546
|
-
[
|
|
547
|
-
"1",
|
|
548
|
-
"0"
|
|
549
|
-
]
|
|
550
|
-
],
|
|
551
|
-
[
|
|
552
|
-
[
|
|
553
|
-
"18994803742708336446369128568423705404354655742604689352630273180469431952708",
|
|
554
|
-
"12315240965742683516581565369496371929586281338862761742109651525191835544242"
|
|
555
|
-
],
|
|
556
|
-
[
|
|
557
|
-
"12707009780301102830224094192984906206920666691015255692741008594808694787917",
|
|
558
|
-
"18019403342409608922812569436317484250134945386869657285229378095251425778096"
|
|
559
|
-
],
|
|
560
|
-
[
|
|
561
|
-
"1",
|
|
562
|
-
"0"
|
|
563
|
-
]
|
|
564
|
-
]
|
|
565
|
-
];
|
|
566
|
-
var vk_alphabeta_12 = [
|
|
567
|
-
[
|
|
568
|
-
[
|
|
569
|
-
"2029413683389138792403550203267699914886160938906632433982220835551125967885",
|
|
570
|
-
"21072700047562757817161031222997517981543347628379360635925549008442030252106"
|
|
571
|
-
],
|
|
572
|
-
[
|
|
573
|
-
"5940354580057074848093997050200682056184807770593307860589430076672439820312",
|
|
574
|
-
"12156638873931618554171829126792193045421052652279363021382169897324752428276"
|
|
575
|
-
],
|
|
576
|
-
[
|
|
577
|
-
"7898200236362823042373859371574133993780991612861777490112507062703164551277",
|
|
578
|
-
"7074218545237549455313236346927434013100842096812539264420499035217050630853"
|
|
579
|
-
]
|
|
580
|
-
],
|
|
581
|
-
[
|
|
582
|
-
[
|
|
583
|
-
"7077479683546002997211712695946002074877511277312570035766170199895071832130",
|
|
584
|
-
"10093483419865920389913245021038182291233451549023025229112148274109565435465"
|
|
585
|
-
],
|
|
586
|
-
[
|
|
587
|
-
"4595479056700221319381530156280926371456704509942304414423590385166031118820",
|
|
588
|
-
"19831328484489333784475432780421641293929726139240675179672856274388269393268"
|
|
589
|
-
],
|
|
590
|
-
[
|
|
591
|
-
"11934129596455521040620786944827826205713621633706285934057045369193958244500",
|
|
592
|
-
"8037395052364110730298837004334506829870972346962140206007064471173334027475"
|
|
593
|
-
]
|
|
594
|
-
]
|
|
595
|
-
];
|
|
596
|
-
var IC = [
|
|
597
|
-
[
|
|
598
|
-
[
|
|
599
|
-
"1964404930528116823793003656764176108669615750422202377358993070935069307720",
|
|
600
|
-
"2137714996673694828207437580381836490878070731768805974506391024595988817424",
|
|
601
|
-
"1"
|
|
602
|
-
],
|
|
603
|
-
[
|
|
604
|
-
"19568893707760843340848992184233194433177372925415116053368211122719346671126",
|
|
605
|
-
"11639469568629189918046964192305250472192697612201524135560178632824282818614",
|
|
606
|
-
"1"
|
|
607
|
-
],
|
|
608
|
-
[
|
|
609
|
-
"5317268879687484957437879782519918549127939892210247573193613900261494313825",
|
|
610
|
-
"528174394975085006443543773707702838726735933116136102590448357278717993744",
|
|
611
|
-
"1"
|
|
612
|
-
],
|
|
613
|
-
[
|
|
614
|
-
"14865918005176722116473730206622066845866539143554731094374354951675249722731",
|
|
615
|
-
"3197770568483953664363740385883457803041685902965668289308665954510373380344",
|
|
616
|
-
"1"
|
|
617
|
-
],
|
|
618
|
-
[
|
|
619
|
-
"6863358721495494421022713667808247652425178970453300712435830652679038918987",
|
|
620
|
-
"15025816433373311798308762709072064417001390853103872064614174594927359131281",
|
|
621
|
-
"1"
|
|
622
|
-
]
|
|
623
|
-
],
|
|
624
|
-
[
|
|
625
|
-
[
|
|
626
|
-
"17789438292552571310739605737896030466581277887660997531707911256058650850910",
|
|
627
|
-
"4112657509505371631825493224748310061184972897405589115208158208294581472016",
|
|
628
|
-
"1"
|
|
629
|
-
],
|
|
630
|
-
[
|
|
631
|
-
"3322052920119834475842380240689494113984887785733316517680891208549118967155",
|
|
632
|
-
"381029395779795399840019487059126246243641886087320875571067736504031557148",
|
|
633
|
-
"1"
|
|
634
|
-
],
|
|
635
|
-
[
|
|
636
|
-
"8777645223617381095463415690983421308854368583891690388850387317049320450400",
|
|
637
|
-
"11923582117369144413749726090967341613266070909169947059497952692052020331958",
|
|
638
|
-
"1"
|
|
639
|
-
],
|
|
640
|
-
[
|
|
641
|
-
"15493263571528401950994933073246603557158047091963487223668240334879173885581",
|
|
642
|
-
"6315532173951617115856055775098532808695228294437279844344466163873167020700",
|
|
643
|
-
"1"
|
|
644
|
-
],
|
|
645
|
-
[
|
|
646
|
-
"3481637421055377106140197938175958155334313900824697193932986771017625492245",
|
|
647
|
-
"20088416136090515091300914661950097694450984520235647990572441134215240947932",
|
|
648
|
-
"1"
|
|
649
|
-
]
|
|
650
|
-
],
|
|
651
|
-
[
|
|
652
|
-
[
|
|
653
|
-
"4691595252082380256698158158199364410440273386659834000993210659508747323919",
|
|
654
|
-
"9205801980459323513061837717352821162780471027241700646145937351740096374660",
|
|
655
|
-
"1"
|
|
656
|
-
],
|
|
657
|
-
[
|
|
658
|
-
"16150531426263112884093068164597994126623437929929609532055221646496813246000",
|
|
659
|
-
"20245743178241899668170758952526381872637304119026868520579207157118516761827",
|
|
660
|
-
"1"
|
|
661
|
-
],
|
|
662
|
-
[
|
|
663
|
-
"6063536446992770713985314309889717594240410784717230886576072989709763902848",
|
|
664
|
-
"18258781411255795973918859665416013869184055573057512603788635470145328981347",
|
|
665
|
-
"1"
|
|
666
|
-
],
|
|
667
|
-
[
|
|
668
|
-
"10109932964756104512054045207253535333686585863745296080906925765480296575285",
|
|
669
|
-
"4174640428253153601540284363759502713687021920150940723252842152556151210349",
|
|
670
|
-
"1"
|
|
671
|
-
],
|
|
672
|
-
[
|
|
673
|
-
"18049428534741480832385046397049175120355008065781483226058177421025493210952",
|
|
674
|
-
"591730261265040164434889324846001338201068482543108348317417391345612814922",
|
|
675
|
-
"1"
|
|
676
|
-
]
|
|
677
|
-
],
|
|
678
|
-
[
|
|
679
|
-
[
|
|
680
|
-
"9877211178693075145402462781884120278654771727348087433632224794894486095150",
|
|
681
|
-
"19972682062587174829535281061580296764150591339640180868104711395548066529340",
|
|
682
|
-
"1"
|
|
683
|
-
],
|
|
684
|
-
[
|
|
685
|
-
"6324578424031095537345184040149690238371517387586958921377481904541316423724",
|
|
686
|
-
"15513931720576048544404512239839508014664224085062729779520992909505663748296",
|
|
687
|
-
"1"
|
|
688
|
-
],
|
|
689
|
-
[
|
|
690
|
-
"11371337652479737143800707796204655130812036287859296372695832558127430723628",
|
|
691
|
-
"11757275188600040111649009832378343123994225623498773406233261322165903848967",
|
|
692
|
-
"1"
|
|
693
|
-
],
|
|
694
|
-
[
|
|
695
|
-
"13282496583564708104981015168203451877588903263486398132954741568835583461335",
|
|
696
|
-
"1746144324840370907926720490289700342734912534857331743685374514401176014195",
|
|
697
|
-
"1"
|
|
698
|
-
],
|
|
699
|
-
[
|
|
700
|
-
"7993952462467372951144011615584426050192046712674662254138390197508963352374",
|
|
701
|
-
"5156942148925224345709309361345680948125600198010285179548841917923439945819",
|
|
702
|
-
"1"
|
|
703
|
-
]
|
|
704
|
-
],
|
|
705
|
-
[
|
|
706
|
-
[
|
|
707
|
-
"19918517214839406678907482305035208173510172567546071380302965459737278553528",
|
|
708
|
-
"7151186077716310064777520690144511885696297127165278362082219441732663131220",
|
|
709
|
-
"1"
|
|
710
|
-
],
|
|
711
|
-
[
|
|
712
|
-
"690581125971423619528508316402701520070153774868732534279095503611995849608",
|
|
713
|
-
"21271996888576045810415843612869789314680408477068973024786458305950370465558",
|
|
714
|
-
"1"
|
|
715
|
-
],
|
|
716
|
-
[
|
|
717
|
-
"16461282535702132833442937829027913110152135149151199860671943445720775371319",
|
|
718
|
-
"2814052162479976678403678512565563275428791320557060777323643795017729081887",
|
|
719
|
-
"1"
|
|
720
|
-
],
|
|
721
|
-
[
|
|
722
|
-
"4319780315499060392574138782191013129592543766464046592208884866569377437627",
|
|
723
|
-
"13920930439395002698339449999482247728129484070642079851312682993555105218086",
|
|
724
|
-
"1"
|
|
725
|
-
],
|
|
726
|
-
[
|
|
727
|
-
"3554830803181375418665292545416227334138838284686406179598687755626325482686",
|
|
728
|
-
"5951609174746846070367113593675211691311013364421437923470787371738135276998",
|
|
729
|
-
"1"
|
|
730
|
-
]
|
|
731
|
-
],
|
|
732
|
-
[
|
|
733
|
-
[
|
|
734
|
-
"9494885690931955877467315318223108618392113101843890678090902614660136056680",
|
|
735
|
-
"11783514256715757384821021009301806722951917744219075907912683963173706887379",
|
|
736
|
-
"1"
|
|
737
|
-
],
|
|
738
|
-
[
|
|
739
|
-
"7562082660623781416745328104576133910743071878837764423695105915778139873834",
|
|
740
|
-
"17954307004260053757579194018551114133664721761483240877658498973152950708099",
|
|
741
|
-
"1"
|
|
742
|
-
],
|
|
743
|
-
[
|
|
744
|
-
"19338184851116432029108109461622579541195083625346674255186169347975445785058",
|
|
745
|
-
"38361206266360048012365562393026952048730052530888439195454086987795985927",
|
|
746
|
-
"1"
|
|
747
|
-
],
|
|
748
|
-
[
|
|
749
|
-
"21178537742782571863590222710872928190886000600239072595684369348717288330049",
|
|
750
|
-
"9786438258541172244884631831247223050494423968411444302812755467521949734320",
|
|
751
|
-
"1"
|
|
752
|
-
],
|
|
753
|
-
[
|
|
754
|
-
"11330504221972341797183339350494223413034293674225690456356444509688810101433",
|
|
755
|
-
"1490009915387901405464437253469086864085891770312035292355706249426866485365",
|
|
756
|
-
"1"
|
|
757
|
-
]
|
|
758
|
-
],
|
|
759
|
-
[
|
|
760
|
-
[
|
|
761
|
-
"21791720972262589799021600767292883644106575897307484548888696814333235336885",
|
|
762
|
-
"11092962469758788187888592619035811117815082357439060720677582048880121542623",
|
|
763
|
-
"1"
|
|
764
|
-
],
|
|
765
|
-
[
|
|
766
|
-
"9418924955930663972575130074928583215922927562059194231976193350658171304436",
|
|
767
|
-
"16113558481826020406162261319744796072664750077095575593106901121115073101408",
|
|
768
|
-
"1"
|
|
769
|
-
],
|
|
770
|
-
[
|
|
771
|
-
"20054934960262983176880675919444457578562219675808407582143519621873973120773",
|
|
772
|
-
"14877415271301547911435683263206245199959943680225555496786470669330176961657",
|
|
773
|
-
"1"
|
|
774
|
-
],
|
|
775
|
-
[
|
|
776
|
-
"4215199263810110748751715719957184804379752373072771007598572158043965517488",
|
|
777
|
-
"5225943468606602818132879686778547605180105897615251160509064537462109826521",
|
|
778
|
-
"1"
|
|
779
|
-
],
|
|
780
|
-
[
|
|
781
|
-
"6250242626034734280813142093008675407723196706248829741247204621913994561803",
|
|
782
|
-
"1472231555266678689888727724824566171966416459791722465278225775922487343641",
|
|
783
|
-
"1"
|
|
784
|
-
]
|
|
785
|
-
],
|
|
786
|
-
[
|
|
787
|
-
[
|
|
788
|
-
"3047486363455933831148688762823238723024952519326207356549121929667745957778",
|
|
789
|
-
"20241836359289449005887237560564358543646542598344362915541027571505243817211",
|
|
790
|
-
"1"
|
|
791
|
-
],
|
|
792
|
-
[
|
|
793
|
-
"5965631918800530319167124148627450454569264331058008407732200168631989208657",
|
|
794
|
-
"20463557477532480934514091877628554948892025887087712764683631108388998871350",
|
|
795
|
-
"1"
|
|
796
|
-
],
|
|
797
|
-
[
|
|
798
|
-
"16605042322692983282732511249912403956057999815658038166796858627082222971215",
|
|
799
|
-
"12219061498275616585164456833410962809536084885494309093787669879221959361956",
|
|
800
|
-
"1"
|
|
801
|
-
],
|
|
802
|
-
[
|
|
803
|
-
"1548998572074037722622224303222294716243074837074272552644853986075252666508",
|
|
804
|
-
"10393312002885367652301897874262367916506364670364584602554176742602334134772",
|
|
805
|
-
"1"
|
|
806
|
-
],
|
|
807
|
-
[
|
|
808
|
-
"16180907689593358346406392015123900260925622357393826746385511046141256905390",
|
|
809
|
-
"12267326749885120640972074479210537480053065569337817484467225562817467244765",
|
|
810
|
-
"1"
|
|
811
|
-
]
|
|
812
|
-
],
|
|
813
|
-
[
|
|
814
|
-
[
|
|
815
|
-
"19590996174696909242575628014943555633938195923520472786993379268302478708283",
|
|
816
|
-
"2673753072556442230312995111304911178679525806396134504594492458566941824354",
|
|
817
|
-
"1"
|
|
818
|
-
],
|
|
819
|
-
[
|
|
820
|
-
"13411253172375451489380472831999887223592471057462692619008484995624281735092",
|
|
821
|
-
"17181767455563581254432161119660408482332423481128600038352147258951772423229",
|
|
822
|
-
"1"
|
|
823
|
-
],
|
|
824
|
-
[
|
|
825
|
-
"19138864631164378176055647711995352935065134904103255748190268290992108588628",
|
|
826
|
-
"14282526277736365863821375748687709839392307698935143595732632710176778519757",
|
|
827
|
-
"1"
|
|
828
|
-
],
|
|
829
|
-
[
|
|
830
|
-
"20183773658676161990469276414858234178608794783112866811307579993999118293429",
|
|
831
|
-
"5223464433544489066271184294750886227362580875255044558831927430970236355539",
|
|
832
|
-
"1"
|
|
833
|
-
],
|
|
834
|
-
[
|
|
835
|
-
"12333466991139269670298178539679773509487545471126920233507132846828588847444",
|
|
836
|
-
"3787586478923104354547687861486563468235879611952775292288436085429794222238",
|
|
837
|
-
"1"
|
|
838
|
-
]
|
|
839
|
-
],
|
|
840
|
-
[
|
|
841
|
-
[
|
|
842
|
-
"18580370382199518848261939652153768394883698461842792002922164533882262019935",
|
|
843
|
-
"20516185953882700254387267244708111605796661864845495645678049276372075842359",
|
|
844
|
-
"1"
|
|
845
|
-
],
|
|
846
|
-
[
|
|
847
|
-
"20041291712709610738573661974551517833120775539593003477018637287434210072702",
|
|
848
|
-
"6326630253906616820412999166182553773360987412889775567442543181359104720511",
|
|
849
|
-
"1"
|
|
850
|
-
],
|
|
851
|
-
[
|
|
852
|
-
"13268971611130152315428629919012388924225656285593904211561391821918930327614",
|
|
853
|
-
"9247437189452353488017802041158840512956111558640958728149597697508914590433",
|
|
854
|
-
"1"
|
|
855
|
-
],
|
|
856
|
-
[
|
|
857
|
-
"6267384495557139339708615182113725421733376438932580472141549274050146739549",
|
|
858
|
-
"1832264154031452148715318442722960696977572389206897240030908464579133134237",
|
|
859
|
-
"1"
|
|
860
|
-
],
|
|
861
|
-
[
|
|
862
|
-
"16650684165487873559901140599157559153018449083939294496255590830891994564285",
|
|
863
|
-
"14140282729498011406186082176268025578697081678243955538935501306868500498994",
|
|
864
|
-
"1"
|
|
865
|
-
]
|
|
866
|
-
],
|
|
867
|
-
[
|
|
868
|
-
[
|
|
869
|
-
"4247947150009812467217672970806328247513830308400387953244764907353849211641",
|
|
870
|
-
"14500381439127180474801393438175928191199696177607750163263715436006533630877",
|
|
871
|
-
"1"
|
|
872
|
-
],
|
|
873
|
-
[
|
|
874
|
-
"21213779524495874664157797605662894019112036728653622806607467354233012380232",
|
|
875
|
-
"1429370857470083395421401524518861545167550347090873730934256398864585069083",
|
|
876
|
-
"1"
|
|
877
|
-
],
|
|
878
|
-
[
|
|
879
|
-
"12465277751642747637430517396067173985821959773399832969105187923427872239200",
|
|
880
|
-
"4377704428607835904642653580543541241155601291484645500691968624389522190030",
|
|
881
|
-
"1"
|
|
882
|
-
],
|
|
883
|
-
[
|
|
884
|
-
"11283027832501128633761619552392013253304972822086786857121687098087331014745",
|
|
885
|
-
"21463394238922953607096052056881931791797740737164052798044623278557203313720",
|
|
886
|
-
"1"
|
|
887
|
-
],
|
|
888
|
-
[
|
|
889
|
-
"19687293493101130967741578773742597470558958652351513582962108464055656171331",
|
|
890
|
-
"4445165696525061401582979300506082669540223774145877762689724631935313716632",
|
|
891
|
-
"1"
|
|
892
|
-
]
|
|
893
|
-
],
|
|
894
|
-
[
|
|
895
|
-
[
|
|
896
|
-
"3388767735894417381503201756905214431625081913405504580464345986403824999889",
|
|
897
|
-
"21014112837214011009096825602791072748195337199912773858499588477762724153070",
|
|
898
|
-
"1"
|
|
899
|
-
],
|
|
900
|
-
[
|
|
901
|
-
"10521317016331497094903116740581271122844131442882845700567581775404872949272",
|
|
902
|
-
"13201921794561774338466680421903602920184688290946713194187958007088351657367",
|
|
903
|
-
"1"
|
|
904
|
-
],
|
|
905
|
-
[
|
|
906
|
-
"16170260722059932609965743383032703380650557609693540121262881902248073364496",
|
|
907
|
-
"6004983491336500911294872035126141746032033211872472427212274143945425740617",
|
|
908
|
-
"1"
|
|
909
|
-
],
|
|
910
|
-
[
|
|
911
|
-
"10275615677574391293596971122111363003313434841806630200532546038183081960924",
|
|
912
|
-
"5955568702561336410725734958627459212680756023420452791680213386065159525989",
|
|
913
|
-
"1"
|
|
914
|
-
],
|
|
915
|
-
[
|
|
916
|
-
"19059081014385850734732058652137664919364805650872154944590269874395511868415",
|
|
917
|
-
"19202365837673729366500417038229950532560250566916189579621883380623278182155",
|
|
918
|
-
"1"
|
|
919
|
-
]
|
|
920
|
-
],
|
|
921
|
-
[
|
|
922
|
-
[
|
|
923
|
-
"7856986171681248404396064225772749784181602218562773063185003409958949630985",
|
|
924
|
-
"11707218736744382138692483591389641607570557654489363179025201039696228471230",
|
|
925
|
-
"1"
|
|
926
|
-
],
|
|
927
|
-
[
|
|
928
|
-
"2902255937308264958973169948617099471543255757887963647238093192858290079050",
|
|
929
|
-
"4092153880227661899721872164083575597602963673456107552146583620177664115673",
|
|
930
|
-
"1"
|
|
931
|
-
],
|
|
932
|
-
[
|
|
933
|
-
"18380478859138320895837407377103009470968863533040661874531861881638854174636",
|
|
934
|
-
"14502773952184441371657781525836310753176308880224816843041318743809785835984",
|
|
935
|
-
"1"
|
|
936
|
-
],
|
|
937
|
-
[
|
|
938
|
-
"2781117248053224106149213822307598926495461873135153638774638501111353469325",
|
|
939
|
-
"3500056595279027698683405880585654897391289317486204483344715855049598477604",
|
|
940
|
-
"1"
|
|
941
|
-
],
|
|
942
|
-
[
|
|
943
|
-
"8880120765926282932795149634761705738498809569874317407549203808931092257005",
|
|
944
|
-
"19080036326648068547894941015038877788526324720587349784852594495705578761000",
|
|
945
|
-
"1"
|
|
946
|
-
]
|
|
947
|
-
],
|
|
948
|
-
[
|
|
949
|
-
[
|
|
950
|
-
"18427701611614193839908361166447988195308352665132182219164437649866377475111",
|
|
951
|
-
"5299493942596042045861137432338955179078182570752746487573709678936617478454",
|
|
952
|
-
"1"
|
|
953
|
-
],
|
|
954
|
-
[
|
|
955
|
-
"4188155714164125069834512529839479682516489319499446390214266838952761728656",
|
|
956
|
-
"2720966082507704094346897998659841489771837229143573083003847010258396944787",
|
|
957
|
-
"1"
|
|
958
|
-
],
|
|
959
|
-
[
|
|
960
|
-
"13256461570028177373135283778770729308216900804505379897951455548375840027026",
|
|
961
|
-
"10722074030307391322177899534114921764931623271723882054692012663305322382747",
|
|
962
|
-
"1"
|
|
963
|
-
],
|
|
964
|
-
[
|
|
965
|
-
"9824147497244652955949696442395586567974424828238608972020527958186701134273",
|
|
966
|
-
"15755269950882650791869946186461432242513999576056199368058858215068920022191",
|
|
967
|
-
"1"
|
|
968
|
-
],
|
|
969
|
-
[
|
|
970
|
-
"21172488506061181949536573476893375313339715931330476837156243346077173297265",
|
|
971
|
-
"13892434487977776248366965108031841947713544939953824768291380177301871559945",
|
|
972
|
-
"1"
|
|
973
|
-
]
|
|
974
|
-
],
|
|
975
|
-
[
|
|
976
|
-
[
|
|
977
|
-
"1452272927738590248356371174422184656932731110936062990115610832462181634644",
|
|
978
|
-
"3608050114233210789542189629343107890943266759827387991788718454179833288695",
|
|
979
|
-
"1"
|
|
980
|
-
],
|
|
981
|
-
[
|
|
982
|
-
"14798240452388909327945424685903532333765637883272751382037716636327236955001",
|
|
983
|
-
"10773894897711848209682368488916121016695006898681985691467605219098835500201",
|
|
984
|
-
"1"
|
|
985
|
-
],
|
|
986
|
-
[
|
|
987
|
-
"17204267933132009093604099819536245144503489322639121825381131096467570698650",
|
|
988
|
-
"7704298975420304156332734115679983371345754866278811368869074990486717531131",
|
|
989
|
-
"1"
|
|
990
|
-
],
|
|
991
|
-
[
|
|
992
|
-
"8060465662017324080560848316478407038163145149983639907596180500095598669247",
|
|
993
|
-
"20475082166427284188002500222093571716651248980245637602667562336751029856573",
|
|
994
|
-
"1"
|
|
995
|
-
],
|
|
996
|
-
[
|
|
997
|
-
"7457566682692308112726332096733260585025339741083447785327706250123165087868",
|
|
998
|
-
"11904519443874922292602150685069370036383697877657723976244907400392778002614",
|
|
999
|
-
"1"
|
|
1000
|
-
]
|
|
1001
|
-
],
|
|
1002
|
-
[
|
|
1003
|
-
[
|
|
1004
|
-
"12628427235010608529869146871556870477182704310235373946877240509680742038961",
|
|
1005
|
-
"15093298104438768585559335868663959710321348106117735180051519837845319121254",
|
|
1006
|
-
"1"
|
|
1007
|
-
],
|
|
1008
|
-
[
|
|
1009
|
-
"6593907467779318957599440584793099005109789224774644007604434924706249001015",
|
|
1010
|
-
"18549596630007199540674697114946251030815675677713256327810772799104711621483",
|
|
1011
|
-
"1"
|
|
1012
|
-
],
|
|
1013
|
-
[
|
|
1014
|
-
"6271101737045248834759003849256661059806617144229427987717476992610974162336",
|
|
1015
|
-
"355748132218964841305454070022507122319085542484477110563322753565651576458",
|
|
1016
|
-
"1"
|
|
1017
|
-
],
|
|
1018
|
-
[
|
|
1019
|
-
"2116139772133141967317791473319540620104888687412078412336248003979594158546",
|
|
1020
|
-
"4004400204967325849492155713520296687406035356901102254880522534085890616486",
|
|
1021
|
-
"1"
|
|
1022
|
-
],
|
|
1023
|
-
[
|
|
1024
|
-
"4206647028595764233995379982714022410660284578620723510907006350595207905228",
|
|
1025
|
-
"19380634286337609988098517090003334645113675227742745065381519159322795845003",
|
|
1026
|
-
"1"
|
|
1027
|
-
]
|
|
1028
|
-
],
|
|
1029
|
-
[
|
|
1030
|
-
[
|
|
1031
|
-
"2592407181901686208061988776764501828311271519595797153264758207470081204331",
|
|
1032
|
-
"11847594161160074962679125411562687287595382335410213641115001866587988494499",
|
|
1033
|
-
"1"
|
|
1034
|
-
],
|
|
1035
|
-
[
|
|
1036
|
-
"3346927026869562921166545684451290646273836362895645367665514203662899621366",
|
|
1037
|
-
"15758185693543979820528128025093553492246135914029575732836221618882836493143",
|
|
1038
|
-
"1"
|
|
1039
|
-
],
|
|
1040
|
-
[
|
|
1041
|
-
"20528686657810499188368147206002308531447185877994439397529705707372170337045",
|
|
1042
|
-
"18025396678079701612906003769476076600196287001844168390936182972248852818155",
|
|
1043
|
-
"1"
|
|
1044
|
-
],
|
|
1045
|
-
[
|
|
1046
|
-
"9799815250059685769827017947834627563597884023490186073806184882963949644596",
|
|
1047
|
-
"4998495094322372762314630336611134866447406022687118703953312157819349892603",
|
|
1048
|
-
"1"
|
|
1049
|
-
],
|
|
1050
|
-
[
|
|
1051
|
-
"16176535527670849161173306151058200762642157343823553073439957507563856439772",
|
|
1052
|
-
"21877331533292960470552563236986670222564955589137303622102707801351340670855",
|
|
1053
|
-
"1"
|
|
1054
|
-
]
|
|
1055
|
-
]
|
|
1056
|
-
];
|
|
1057
|
-
var verificationKeys = {
|
|
1058
|
-
protocol: protocol,
|
|
1059
|
-
curve: curve,
|
|
1060
|
-
nPublic: nPublic,
|
|
1061
|
-
vk_alpha_1: vk_alpha_1,
|
|
1062
|
-
vk_beta_2: vk_beta_2,
|
|
1063
|
-
vk_gamma_2: vk_gamma_2,
|
|
1064
|
-
vk_delta_2: vk_delta_2,
|
|
1065
|
-
vk_alphabeta_12: vk_alphabeta_12,
|
|
1066
|
-
IC: IC
|
|
1067
|
-
};
|
|
1068
|
-
|
|
1069
|
-
/**
|
|
1070
|
-
* Verifies a Semaphore proof.
|
|
1071
|
-
* @param fullProof The SnarkJS Semaphore proof.
|
|
1072
|
-
* @param treeDepth The Merkle tree depth.
|
|
1073
|
-
* @returns True if the proof is valid, false otherwise.
|
|
1074
|
-
*/
|
|
1075
|
-
function verifyProof(_a, treeDepth) {
|
|
1076
|
-
var merkleTreeRoot = _a.merkleTreeRoot, nullifierHash = _a.nullifierHash, externalNullifier = _a.externalNullifier, signal = _a.signal, proof = _a.proof;
|
|
1077
|
-
if (treeDepth < 16 || treeDepth > 32) {
|
|
1078
|
-
throw new TypeError("The tree depth must be a number between 16 and 32");
|
|
1079
|
-
}
|
|
1080
|
-
var verificationKey = __assign(__assign({}, verificationKeys), { vk_delta_2: verificationKeys.vk_delta_2[treeDepth - 16], IC: verificationKeys.IC[treeDepth - 16] });
|
|
1081
|
-
return groth16.verify(verificationKey, [merkleTreeRoot, nullifierHash, hash(signal), hash(externalNullifier)], unpackProof(proof));
|
|
1082
|
-
}
|
|
1083
|
-
|
|
1084
|
-
export { calculateNullifierHash, generateProof, verifyProof };
|