@semaphore-protocol/identity 4.0.0-alpha.2 → 4.0.0-alpha.3
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/dist/index.browser.mjs +890 -4
- package/dist/index.node.js +98 -3
- package/dist/index.node.mjs +98 -3
- package/package.json +1 -1
package/dist/index.browser.mjs
CHANGED
|
@@ -1,13 +1,899 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module @semaphore-protocol/identity
|
|
3
|
-
* @version 4.0.0-alpha.
|
|
3
|
+
* @version 4.0.0-alpha.3
|
|
4
4
|
* @file A library to create Semaphore identities.
|
|
5
5
|
* @copyright Ethereum Foundation 2024
|
|
6
6
|
* @license MIT
|
|
7
7
|
* @see [Github]{@link https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity}
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* @module @zk-kit/eddsa-poseidon
|
|
11
|
+
* @version 0.4.1
|
|
12
|
+
* @file A JavaScript EdDSA library for secure signing and verification using Poseidon the Baby Jubjub elliptic curve.
|
|
13
|
+
* @copyright Ethereum Foundation 2023
|
|
14
|
+
* @license MIT
|
|
15
|
+
* @see [Github]{@link https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/eddsa-poseidon}
|
|
16
|
+
*/
|
|
17
|
+
function getDefaultExportFromCjs (x) {
|
|
18
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
19
|
+
}
|
|
20
|
+
var poseidon5$1 = {};
|
|
21
|
+
const F$1 = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
|
|
22
|
+
const N_ROUNDS_F$1 = 8;
|
|
23
|
+
const N_ROUNDS_P$1 = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
|
|
24
|
+
const pow5$1 = v => {
|
|
25
|
+
let o = v * v;
|
|
26
|
+
return v * o * o % F$1;
|
|
27
|
+
};
|
|
28
|
+
function mix$1(state, M) {
|
|
29
|
+
const out = [];
|
|
30
|
+
for (let x = 0; x < state.length; x++) {
|
|
31
|
+
let o = 0n;
|
|
32
|
+
for (let y = 0; y < state.length; y++) {
|
|
33
|
+
o = o + M[x][y] * state[y];
|
|
34
|
+
}
|
|
35
|
+
out.push(o % F$1);
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
function poseidon$1(_inputs, opt) {
|
|
40
|
+
const inputs = _inputs.map(i => BigInt(i));
|
|
41
|
+
if (inputs.length <= 0) {
|
|
42
|
+
throw new Error('poseidon-lite: Not enough inputs');
|
|
43
|
+
}
|
|
44
|
+
if (inputs.length > N_ROUNDS_P$1.length) {
|
|
45
|
+
throw new Error('poseidon-lite: Too many inputs');
|
|
46
|
+
}
|
|
47
|
+
const t = inputs.length + 1;
|
|
48
|
+
const nRoundsF = N_ROUNDS_F$1;
|
|
49
|
+
const nRoundsP = N_ROUNDS_P$1[t - 2];
|
|
50
|
+
const {
|
|
51
|
+
C,
|
|
52
|
+
M
|
|
53
|
+
} = opt;
|
|
54
|
+
if (M.length !== t) {
|
|
55
|
+
throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
|
|
56
|
+
}
|
|
57
|
+
let state = [0n, ...inputs];
|
|
58
|
+
for (let x = 0; x < nRoundsF + nRoundsP; x++) {
|
|
59
|
+
for (let y = 0; y < state.length; y++) {
|
|
60
|
+
state[y] = state[y] + C[x * t + y];
|
|
61
|
+
if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5$1(state[y]);else if (y === 0) state[y] = pow5$1(state[y]);
|
|
62
|
+
}
|
|
63
|
+
state = mix$1(state, M);
|
|
64
|
+
}
|
|
65
|
+
return state[0];
|
|
66
|
+
}
|
|
67
|
+
var poseidon_1$1 = poseidon$1;
|
|
68
|
+
getDefaultExportFromCjs(poseidon_1$1);
|
|
69
|
+
var unstringify$1 = {};
|
|
70
|
+
Object.defineProperty(unstringify$1, "__esModule", {
|
|
71
|
+
value: true
|
|
72
|
+
});
|
|
73
|
+
unstringify$1.default = unstringifyBigInts$1;
|
|
74
|
+
function unstringifyBigInts$1(o) {
|
|
75
|
+
if (Array.isArray(o)) {
|
|
76
|
+
return o.map(unstringifyBigInts$1);
|
|
77
|
+
} else if (typeof o == 'object') {
|
|
78
|
+
const res = {};
|
|
79
|
+
for (const [key, val] of Object.entries(o)) {
|
|
80
|
+
res[key] = unstringifyBigInts$1(val);
|
|
81
|
+
}
|
|
82
|
+
return res;
|
|
83
|
+
}
|
|
84
|
+
const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
|
|
85
|
+
const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
|
|
86
|
+
return BigInt(`0x${hex}`);
|
|
87
|
+
}
|
|
88
|
+
var _5 = {};
|
|
89
|
+
Object.defineProperty(_5, "__esModule", {
|
|
90
|
+
value: true
|
|
91
|
+
});
|
|
92
|
+
_5.default = void 0;
|
|
93
|
+
var _default$1 = {
|
|
94
|
+
C: ['FEhhRZjgD5jnrn3qRfvYO9loZT74OQzeLoa3Bq1AxlE=', 'CreykTiOXJ5DwNwfWR+4Ps22UCLhtwr0O4p7QMHf98M=', 'K3y7IXiW9SyajAiOZUryHoTN51SjzvWxXE1UZmEtat8=', 'K8aw3b4dcBtlcEKL3Byhvw2ln/O7u5X8K8ccDG5nplw=', 'EjpVoxmAOE89ILLOy8RO1gw4wR99IOknHvq5qQXu/Tw=', 'A3UBzIydyBkwmnafTfCY5YiwGFi8jrfieeKIO+n7jFM=', 'HCEW5H4DqGuxFpWwpfbatrmkYLHrlRqwHCWeyj/UfVE=', 'LBghNIkDLoWpyMuOmmWDm/rtE+V7wPrknb2uv1T1b5M=', 'Luj+09TSxxoEKer9jl2xcY8p4iJ5hf3yrYcDyDW54DE=', 'KMZNj17XqsAEySAp2em/kbqUNtHM6UuTFtERxwoMFxQ=', 'GKAdn/t0euDePoPHB/iyT2gshPFav1cbNCVKA0eGZeA=', 'HCHZK+8ZfnOyNOR3e2DbFOZCpWzucVFdVOGscc3nK9M=', 'CtQEzLyx4ZWJfLYMgJgeu51mpmd9u+2ti2RV/mLYB7E=', 'Cptt6DMGT5O2rbma9sAFlFy2VMt70UyLl6+LYMwfs4c=', 'ExKeP5MK7W1HaQMx/wncUWDvpY3c4sPmGA1FvsOqOm8=', 'DXphTImRUIqxzkiVgTuxyC8Yv3v8nigMzKGAeYOTh/E=', 'BTL37DbjAEGwSGmGh1yROkm93y9a9f6+jDHy9AlP/qU=', 'BrvLjo4YAgEpPnEvSVDxsLvugIydZCY8hNnYrhVcuJI=', 'D1WKTbGjrAf2Hi5r7pR/c1hr9A8hHOtPaHylZ4qdyzM=', 'K+FApgtbXy+O3XioGKlpsgxkPkGbzwtXfCSg0Oes/pg=', 'HEnEuanwn3ua1fdOusxxBRK46Ge6zifLDeoG6JuW9jE=', 'FwwacychsSzefzPkdqOaGqd6gcBuLqxQOEewDVl2Uts=', 'GcJ9DlL2XKNPTjGgaOSTMca/w52SQfnUwwIEFhXPJ/E=', 'LxvcUlT5Igwacx/FJ2lk2rJrOF+kC2sEvtmWDiVDugg=', 'BbQtL7zL9NOdK+kznKvp0Nxtkh6FXNkRVLY50o1KHPA=', 'EiAEBxWkGtWfT0EODAWkLF/TKsUv6dBviBiNcfYeCTU=', 'JflSZSYVW4OUZgn3u5UH3Ukl74cd7pFtkUTrtOzhNDw=', 'AXv+QoQpmud0C20OIElR4xSopdBFJBkUeXipWzR0JEQ=', 'Kl1HZAIcpx14qWdMtnCPFYjSzq81eMQRHPizWe7wic8=', 'F/Atq3RfvjwIEyH+XO+EXnuNBwslFNKbKnt9icwIFdo=', 'GdpiYm23GZtl9K3PV/pKPbqhdkp70VVwjubzeMie8BM=', 'D4jilfou2BtCbJH6aTZqc+33Xzm/GGNM0mbsQDiCngU=', 'H+McVUhUbHlI/k7hvXQS4ygO/30gywmqhfSfJ2YUgBc=', 'EP3BYTvb9n84vd5WGy+R5MxItZ+Y1kNjj9wK+tv+Em4=', 'HyYYwuvpV0UIucUvAADjPr/drRoD/da8pu9/AJMSe+8=', 'Ep/n/D76xqirI9um2IbzlNoR9ZU8+Y4oJpoNuip0XdM=', 'Fa/UzfHk+CDBYx1KuFykujuvz+5yvq3p+uYFIxAkSOM=', 'Hyx0ulw2fjcNco5x4VsmiFGnu4tFUoy3NJVgeayZsBI=', 'ETDhhy128vk2nPWble35zhnwH6icnDaybgne9nhtrTw=', 'E1I9Fz9+a623O2P8HJu9vuJCxhvGhlZJMydTOlwbHco=', 'FNpA0K9CemXxhBta3JZThlM2j3JUy1Zn3a27rXpXTNQ=', 'AJH5ZADkKX6oW7GGwXswToJjjlf9Yx/2MVl24aXdi4Y=', 'MDMpv5AxxVFbmjTUmmS7agJnvHtUoN7KXEUCd6ACzcs=', 'FO1H5VwdocLwXTwaGy5sGFCfyDNuz+nbc3kW4oP6ghs=', 'EWHxCzV3ddgQrVO8xKINWt0rAyUcdH3rBO6UxWXljWs=', 'F6ilCucs5wfyK8Bw65koUcqRTrlMxo6vu4qWpxTrgiE=', 'Gmxh15Xbr2L5klCzfsXfiGRaHBU3kdtjErky3CUOT2I=', 'H4vSq4qoQGZMTu4ZjEaE3EsFdyuyoIadpnIrFfRHoTM=', 'H/y4UqTwAnqXmfExzXS5jM+4y8BjSdj+/MYvEMj7Pi8=', 'A150LsUvGbNtSJxyD0Z/+td81TvC213dskayMCH3nxg=', 'Hfqu5BvflNeDqin8Yrfse1VnOqgY0wX9QtF1oF8uPYY=', 'KCE3hHegLplQBaVjUIhUCUW9Mz8tFFXwOKIZuMR5azo=', 'HbSk0PI4pXCxBhxu7IHALzH/3Up8GedjF08jjQSJdCE=', 'FL94iUV7ILehNns0o6U4IX1pO1JCav9ApLtyiTsXhMo=', 'LO1Swr8pb4fldBDD7JqUg6eW0WT2BJEnEJ/w06nAhGU=', 'Hd6sWAWn9K2k0EQe0QjjFJ1M5lhPSa5b39RtZ2buozQ=', 'Lja05enJe0YjBOjitfnciOHJ8hYboEBnP5ERI/BCrnA=', 'DGhA0csGZtxZ6JsYZSddihZLRHxe1kNHyu5jUCwjjV4=', 'E34uPonnHUYfTJvD6PEhgyYqTR21XFibLK6qwBI49Yw=', 'JQky57CtzyyE7Uv7YKNra4LlWqlHURV7HUV5Swgciq0=', 'FwpykvVjTAbdO/CatcnE7NSwDVzi81+XK0VVOR8WtC0=', 'DWjLvnconnjVy/UdcPG3W6IV30570BSdELLFDypPO4E=', 'DK90VjuQUl9kWm0gNuzRMG+h3GgLSdnOTtJMl0mXMXg=', 'IKfRwKJ/zOeP/jcvTFgwaxZvlFbtRs3rJV45W30w1Co=', 'BiPzImtUcLJ4m4pTBA5ERDOF6Wuc+gvk01AVFYpGhGU=', 'FjIwhojCXnkPV9aKU1AkEkKlYwU0feSlAJzka4zcuR8=', 'LeR5Om+ZzRTj9mQiEfTQt7z6NhWXxUT/y1pWfpB29H8=', 'HU0G0Z6hsJyteQhtUb3hFyWlVPqZVZyi8J87tz1yjGY=', 'BIDnR5pmp82ephyLKJdDiZCDUKvEqvwYzXXjPdEwwUQ=', 'MEMLAzaOvKqRJGlgSQvPkX14aBRj4ufXRL+0QzXawk0=', 'C1ezcyASfUxQ8mkSSw29yysfE1IkGl0SEDKD4InAx0I=', 'LPSJBlDSckDhlfYKT2mO2iSbjdYUsjN2tQF40t9tK48=', 'HiIcVSaJi/0S3oaFGg2XA3UaLyOQCKtfm307aRHGQYQ=', 'KOB0ha19mS7RpY8ynKEq3OTsaT6927KVLlTTOfLuvaU=', 'L0TWT4TeFtxnvV6tUe+x3IOByEUgwShU3V7zoHms1OA=', 'BQp2vDLr0d/ivjMPME7ces5xZ6t7oVFvQCHGLPDU+sI=', 'L1jEXl1lmmfXgTZyQfbDXYy0Y2HZeyiUfSlCHCcFlKk=', 'JejamuDkLoQOBLIwNw54K9tnU0hEMlujb8fl4WDGanQ=', 'L+xzTaIP4yAD6gTxJ/hEck84o2i6EMKVRCUr55YED38=', 'KIpnePOoOYio7Rcn8V6TtMsU9OOju7kd1tH6yv/9Xu8=', 'INzGx1/Yklm+f0BnULPbZ5olqM0nFdJFuRdTkKySLIQ=', 'F/QroQlC3yXLilQXgqGLb9Mc+WXREXjHsErEW03qXdM=', 'Ao7rhdEVqQQCDgxhSO7GYD6c7avGZKvudkqv1FWYa6U=', 'Cx187POnmyrT+imPbOp66V2AwCmezJGOn4ycPTjVnUA=', 'BEAznJdkzsecFu/bg0omJh244/Es4c9yLSPA4R/0zwc=', 'BspkfClyfBlioAIXfaLVBPSwel9+tXx5uI5reru9rVw=', 'LqEgqGT1xAk90ali6PATx7jvd4sE0rpb/DyrKGGbqeM=', 'K7c3VGxK7nwMwrqHwRV+KnfEeev7Xcdq27Oc+Gl2M/0=', 'DjDaZJBiXTPnnNUBdvVo+aLCjC9EmivVGiXRVoaAOpM=', 'DffKcnihNlC5GdhUl7LrsPcQNafCBDDUEx2QOrf1dSE=', 'J8xYn1v1hXlKus5Yn7inSi94TAmQuA/KppRAl/hw4tU=', 'IlXDajjIc13kXO30Uq+oQjMtMwQveOYMQ8dFVCGzJb8=', 'Ez2WAr0zeNafaBwnsFvf/Ji32GzKY9c6YMrtSFeE0Ic=', 'DhVI6UKunT4mhgaZuTcnyBeplIYWyT70rM2YGx3D14o=', 'DyDw5V2TaJ/gnsMS9q9HYnSC5L3goWAqjiyNboTopq4=', 'LlIyhIPLW3/y605FsS5RsmIyybwXtykpVMCp9r+lG7k=', 'ArIWLVM+BZpu2iq7dHEu2zp4YL7qld2KSr/JV2YIBPQ=', 'GeCSdxXRzG04lCmUf7Nzfa1zOXTGsuE+Wz1DJRlRbHQ=', 'DTqABFfXd4VjYwO4uU8X3P/LRgSIcqyfdO9/J+5XNwU=', 'LJdNGVJVehqsX3uuSZZhbaYZtz9EHE5QTcj+nPtVnjI=', 'B2a/7u3izPNwjhtP8wcUwiwdQ0zb6PVVFLq8LdXZe+8=', 'I9rI6lQIL8Ex4XOuVeRjDNTKfIcbKgpHnB505/GR5iw=', 'F9X7bCyzcBDj41irLVdTdocO0zGGuOrkmtO0fjQKjX8=', 'F13Kx22KgSYTm1g644hTKQJG5D54P6aQPsgAfxeMACM=', 'DE/Qj+3l0iGtt6v1SYmMkeW+foW/H9KmEb8YLMLnFlU=', 'J3k0uQnnLTo0dbsex2arejitWbEoMD/FAC8Cplvf5yk=', 'Dog0mZjf5wPxsYRST5w5TWAEzKz5y5UolujP2wsHi2g=', 'HxsgeLYLD84Hgk4qK8jK6O5nNRSwBwqLRXEMx4y7mUI=', 'LrFVlWbFNt28MW9kgtUfo0BVdldwD1uKhG6BKg7TNNE=', 'HE29wzXPZ2Q1Ugi0ydJD00VB1iPGad7Cw7oGa76vZ3M=', 'I3SmstpvjKuOXP6NgF3Tot/KHot+ul3IV0Ah/RJB47Q=', 'Gd00JTPMxgOplzjj+1pWm5TvcbPkn5D7h09hYXMwcvQ=', 'IX1m22x/s+/6UIgAWH0us8bQPYOFEy8vzOfzXycFzM8=', 'CBX7hZH+AQOM06OziyNvnvynfGGNO/xsKn+okpbH5k8=', 'K7lDtAwr1FamwXhTscqI6w/zb1l0sv+aX1CT6b9joW8=', 'EaUVP85llRPufLmXSubLpYHjtM0UVwxXCf7D2NP8guk=', 'G3K/0HY12FAbLv+HhaJJW650x2U8+Q5tXJ8URCaDbfQ=', 'FJAsBwDuyJeuF4uoyvhQ15Px2HUSvqDs6jnPax/uIz0=', 'CcE4xuCmFqSf+Q1DprBD87dFt4hlhW3EwaReL9hMs/Q=', 'BbWKPc5XsoGicdaYlQUtiHRYpxV4PoMX4CSmGjXsELw=', 'K+jSlSXAz91eazEl473jv1WOVfvoZ/AkRXqWdlR00Dc=', 'Bh1y948bqdxrTX93hCJdaoG9/Bta1sJDafnAVgUj2a0=', 'C/GK78rP+r30ES7drcphRXOLSAOzYUW7lRbbUBoGkuk=', 'LnPdEF+osuyTHYzfKexnnjqYAakwcafV6jBlklXwO8Y=', 'D4RA72Z8mugTN7pdjJJ6U0fecpaGCyEcrR7L+101mO8=', 'AE0wOy3qYnsnMb6D+TrDTn0U0XihOABVjKc5Y5XrEY8=', 'I0VBrXIECnDaKZajUmkjDJRpnu8xOk1IBQgAjLw9N8E=', 'DRI/HnLSa5K92P1z0UKGwxKtTCOstGsuCMFXEEQJ4XQ=', 'L7Ngd28N551wmO56pBI8Be5rBai+Rgp3TzoEjhOFRbs=', 'A2hcB5Q04WcnbFfTzHlwO339xBwVbqHot/mbaValUyY=', 'Jgrw4P/8yXcsFjGxeTRFZrR6qto2geuQNMb3XDcFwcc=', 'KGK0E3T4m2lSdLM7dz8lVJFuK/+f9nJUX8L0lWP2J2c=', 'AqmRL+FwMQInGJ6h5pHQNi8Ys4tACw7/GSyllRPrqNU=', 'COUTreaUoNisHz6/GpZEDTLHE9UFjhIk4HA0jCgfSm8=', 'FApKQx4u55QA7XRll42EdzITxigmT/gPIax6a2c9Cas=', 'KWr00BnLXffZWbKdVJw/BxICtOuotT3F7pee0UM3eSc=', 'AYMuKEp/TIFhSIK2k5/A8YVXO9ICPj5QV2VHC7gSs0k=', 'GoTVame/3T2WWr3NMpqnjU/pNDRJby0QOGH9GdZtcmA=', 'BAy4KEd3OSfSrv3AdIkDep0fdjHsp1yfsN2gy5294UM=', 'AQ3PCEzCnLfK7PJqpjO85O0rAZ8oh87nsaePidP6vi8=', 'B+3CKgkR6iFEJe9UK3dtsjsP5YF4ENQMcsqYqr2a+oM=', 'LupKsIrsd18hSEeeo2+7lpNtpYuki9HS06zUgXOqq+c=', 'HkDA6CV/5KYQBc3PrRSM9/R9G1z936oIJzhpVRgkXxk=', 'I6J4CVg70epR9DbeVEPhCPadRM31HcHwPiGUi0mAuHY=', 'LkZSsETb/kDmO2sjL81fPzmr+9IFHuaK3HVAgNSSUKk=', 'Eeer227Lr8Ln2M3v6ce5xQR160dds8LK9/fWf0hXdfI=', 'GZ1SNQzDDoxzgh+AIJbw5UehNVGye/a4mTlvY6xc+Oc=', 'D1ddbuZ8vs2YNFYk4DKjfIWafL7zCz/dyUnNCXhIQQE=', 'HEtvmiritBjmJlrLqclrBhhNBwKOX7eE80da53cv8Fc=', 'Lctc+Ilt458ijhV8DFWT9GJvubwiUgY4PbIDYKvwySU=', 'E0CrufThExhr3CbL30vMpQtTGhB/hjylRFdePPhw+OE=', 'I2jmkrcnh8uIcOqIjnFOAG9Z0rRGDPt0xIqMxzsdGls=', 'H6ua3ZuqSk9W8jFld1xvLZIqdjKpT5Y3S33IUnVvVLY=', 'DH97gjANPGzj+JV7oeSt1UxMAV4g2XZdIgVxwWq4aA8=', 'FdY+hr6s2Txgg2iOXZyPPGlHkp+fH5mrV4pMOpIu/wM=', 'C+hDrl+bB+UlcheK99ro7QXTaxLAYHhikpNV6nQCPZ4=', 'EzJ0nFI2lMtpNeCWOgfoGwWWfOHZUMC3MQWOySp6DJo=', 'JUOUCIEOB0wL3UWYuYFf7okruVylECns8Am/+lubloI=', 'BX6NGd2ZmpGNopsJQLODup/RXbCw9kmW3/Z/61X5p0I=', 'HgFON+mxF887SHDZmfK1XTU00Ka+mOnjV/pD8B5wop0=', 'Gk7STm4DrrzWvbEAUz3JZll6/hXIUbS4Y/boiQhMZHk=', 'JTQgAHCD8aqGOtR2CQXBA57UERyfBT8ncQRS+DzjapA=', 'InahRBlxcJr/5tKpkyAAHsRexyFVxXXd7srA4ydZqwY=', 'KJV90SGOp5n9NBHrGTJYU633rorhKB91MwL+fTHfp7A=', 'L9klcmq3lMiL11eWqj5/HmaS8pFM+AImfd8B43kCoAg=', 'HPilycdqhLFHyCONklPNVbR8DEPYKWbEY2ooZ0cF/Zo=', 'A3PLvDBuG6uecHc2hxXmIwtLLi5KHbnGdLjDWaQekQg=', 'BgKD0v5/I9/1E9kRCz3GJEi8SPUxzgweq1kgvyMpCkA=', 'DatGXW2RB0DzPvbMDq3HG/gRm9/Vo1J9yLv636pAJjw=', 'DLp7y8giSyqOSroXl3IwpobNZCHcDKU0bzRGtiQ5xMM=', 'HkNl2weQycT0RbBlPEZv8h25bDi0B2uovWi8tN6mkR0=', 'G7LbohmamrO8hu9fnef2xcoT1g6rQs7WjemPxkOACo0=', 'CtPBhwxtbvQO661SEjzRopE9nWLoC/usroEuCCAh+co=', 'AbCYyR57DLtcNFiAd8Dd+VMA3fYUk1YwwM46JickUwg=', 'Gf1cDqwU+udZi9TO6jseKZiwwWhJO21yrkG1duVbnD8=', 'DUdJ15zBY/FxEKQEpG/kJ8ZDTz/me357TM+mq5W9fhg=', 'Hrv+gRSkG7gJ4LMzmSQSMuuUCthyjIpRbUCtpEDb/c8=', 'JwTlthM9l2TW0/F9SdgzIj45N/gOufrqu/upuvS0wbg=', 'IWXhyAJzBbGuDjI1cWNeXVQNE9cQw/mjkLaRPxTQNeM=', 'LjSX5NNf2llsBq+mO8Og8uVdTuukrOtg5lCBrWOqi4o=', 'Ax2kNF7s1ttsD3sHx4Fdet0f4FRtc49NeatcV6qEHt8=', 'CJ7OVOR6pckI5D5fCHN8FDaWcIkAasqxyc0Z6sSiCHY=', 'L1PBXire0zxH9VoHBIPmzH84Ifv4qkBnfQVS7Z0Q2Ec=', 'FCqjT0suitDfeiGz45wAyLCqKFcJSAHqr9cr7+0Hf5M=', 'F66k2kx7zw11iLAU64tAl53Scl7aTmrOMxmCRnx/8r8=', 'DpcMGdGXSNjEZRBNjwIgA2P5pBeG8C8YJ3QrINwNFyc=', 'BLytnlU3lWQvWbr3FKa9tDL8RaCgt38aujqYI0dt+bk=', 'JCwL+82qdvcV29S6glxx/P7WccGxkB+khMh/gQMV0M4=', 'JdsTQ8JBBAcQI/tu002ZCQeDEeHv6FrwoRsZEU+p55A=', 'L/5NnEIKWenNx8Masr81GHyhR8uJijlC3rNnd4YDaoA=', 'EluwOvPizxi75vW1kOs7+NDRumO+aWSD6Y8oO8fNB6M=', 'CBa+QnRbfbtM7/5bjiTqYP2LcZ3rpQA3rHt1lIdFxrw=', 'ERFg+az27DYNG2pxIxOg28viPmRCAFVHHS7kxd7bNdQ=', 'E3eXjhsfaokl+o57eUG9+PtZq5VCNCQZKD2CA0Nck5E=', 'De/B2IghZu88zeU6TyNvuoPThGIZN87lfkIaUT0NM5c=', 'L4+lx4xwbjpdSgPyp6OVMEbX6Uy4in7zUOZ7W6Dw3r8=', 'GiqVfsCnI9phwhNLqwvxe+sA5tzYRpDCMNy55Y2pSCc=', 'HN+HEJlfXgNBK0p/aZUy+f0B8OoWeo38Hd834oBa3e8=', 'Jv0xRxgow2rjbCe3SAVLDAxP5SObMBaZ43Ze6+zBiUY=', 'B3XZlswsRFbzA6LB+QB2R+Eakh2f6j97kmFDuZ0voL4=', 'AW+5M3cIymOM39qRvQ2uprlyJO97IGJnKt3RvRi7iQA=', 'LDkvvn0/3kL8pPlHi7Q5MxJYJVNW8YSvb3bxGQVBF9c=', 'GHoqO/eaafo+UInvnx/Vb9tHxV7s53qiKKo94bSGvLE=', 'AnGoY6KAoyZB/6M1ELLt0njJhjA1lTLz5Qaydf1dIM4=', 'FVdFnJx0yUqgDlr2mh4xEvtpU3zol+wMcYlY2WUW8qs=', 'Ko4myo1kfZpjiFFuqdz/iQg9U55YFowqUMba4w8QnyE=', 'Ict1IZTPQ/O1GULrAEDrqd4rz7HCo/rpeSS3EPJoMs0=', 'LCba+Za+JHrNbdSsrWDTi1pHHmMiGI0CwTfny0hDd+w=', 'AkAXbuDnmC7r6Spo0+OjjCaCGswPXQWM+ME3vKLSbxs=', 'JjbglzyGXBvZdN142qqNCoTNr2vhrUfs8qDRjxFzGPI=', 'GehPTyWnmUlgQWYdxdl1toH24GdEzuibe+XZ/eF0SsA=', 'Dr+JBko68kfKHzb281cBiOJx4LMmxPsmZk6J4UVMoRA=', 'Jcfpe0db4A6LVZo4xFI2T0ycUx/suKxpj3/XPOIucew=', 'BETJnlkjU+WuyqMCrdkBwU2MVScKFgr+1EKe9VmK108=', 'E424iHgwVl8mk9Dg8C5OeeFEln8LpTsDUZq6dktcmUo=', 'JNQPRiEU/p7gKq/PdLT8ok4a42XcdcO1K7E8u7LyHt0=', 'IeZdbY7kN2C8pA5zC130xM86inMtsUj0spUbTGHWjow=', 'JI3XlmnsCdvwNQoV1sdcapvarO/KFNUTAJePE9GrbRw=', 'K4I4wVSPnL4p/TXPkee0jw69p+Y57faf6NWrp5JNU2I=', 'JDn9I5JX84GBx7489RPxv3I166lPa4lCqUy93s9vYvc=', 'IAlYI1KBphuixL4KoygqGMdLbSYvXefC4z0rs+iT3+w=', 'Dh7KXfiO5fYM+n4f5b77txn62CEfqbLQL8wjMZDBfxI=', 'JrU0J/mz6ix2nZxmD8YIgaFpwScy0AG3FY7ksbhCyiQ=', 'IPOz9Kyv6fivPgZmGzqPd4+igSUiudcKZ0As/42ysbQ=', 'IR5dKznWJSCnpifs6MrLrJ+XUG3vTsKGkoumwn1GOxc=', 'C7dD7jSAISnFVnMa7Z0wLc0IUxPOVy9iQtE4MuU2tLQ=', 'I8smYbSI7nHkx1P/I65L0l2KRAlPZrZTKXfiIUDrpcs=', 'A6NaoxI5Ec20U1uu0zWfX2pSBbnJPvMdNTI6R4B7i8k=', 'J4A4SKCu2WqT+pQ7ZjXkUCF+E39K3nSmLXkXMicUtpc=', 'DLN4OcLJp/95iEy+x19B6b5eR8dtYVOCMb2BYpltb2c=', 'HwAm0L8fjh3VQjzC/sH7XNqh7NxMPLIY287vd8ANL5M=', 'AqfXu5cLim7S7mb6u7qVa22jsQD1tfuSju9C+XCCc8k=', 'DP1/QhXkNMjaF+wyWLC8YFrRqy6QqklDUeTuQLvEkfo=', 'GAsRtyBiKhVoSdxvf25/VxZZvmloIjDF7ZrDOXAKfN4=', 'BOlqllvOPToKJKSkV8lRWCyHE0nOfu4aq/5XipTGUBE=', 'FZMfeCtF9/tlbyzb0fdwXDU6I/4dMKWkahUi7RYN860=', 'LiluV8l6Uwms0m/r9VrJY6VETBxfcDrYig17l7ndOLE=', 'JhV7zreOhGu7Ji+aHgbUJxveWlvOjwQZlS+X/9E+rKg=', 'IZTriYR9aw8Yl/Z18ZwMVrYbEySO/zyjbjT7nRx57kM=', 'I1C/NUd2VomRUa193pbqeFfhVQFEcAjatrPSfI/6J08=', 'GkhvCuWRys2vCcWKScTReVQFQ1NAgZ4APwRp0RC3dSs=', 'G1bc92+yPMSoNNRVpAZeEzVxQCt98wnVm8MQXUKowwE=', 'GnSdeWSvC3ICkT7yBMZT8rS/tlzqt7aFIzq1nOO7aSU=', 'GK5ZAHP5aWlq92L/pOjw67+X+Mx4fjfN3R8yG+O+rbs=', 'IcR7J12C3eZGDV52mplCEUSxxanaWSlK3py7MXED8kk=', 'BHPdvVLnN+UnNk6OtjIHl1w41f1swysnIQKwgs0VGPs=', 'CxL6yVttOogdiSZXyEJOZFrE5rAFFfkC1ZRXQwKybgI=', 'CK52FqJgz2ZX+Pc6woRYjSxfB/9CXYN6p83O9j4+IQM=', 'A52vaHYoC4Doc78qMv0oNKg8aXV7rdWKiI74Gekmzig=', 'Jeex10cKPHXxPwtWVGyOCfLY7+/wbvdm+ceDyoadEw0=', 'Ho/TY0w/92QYTQNDX5hYSxG1sVrrnHUmLaPx6iwqnno=', 'JB3MUaw3gIpBXdHjwoHwWv8ReJ3Ayv3XejVITgmT+aQ=', 'H/wxU8Vu+XVZMs6ivgVzdJva/hxPoHgaS4tAeM6ddUc=', 'F2MNYtmj5RDIik1Dw2D5K8D6ALZgMa3sKb2VQ/06F+4=', 'KYBADt0ddOPWnbVFjSzNX6vbI27BaoKkMBoKtZ6kpuk=', 'MDT7JDZhI+xtyvytNXJtv7FhlMA23NZI+mlDm/zQDNQ=', 'Gqfo9Bicqd/z2yq3ZIvgojkplc5GBB4EaA3KitcjLfA=', 'H6GV+DSmnmI3L2DrSX2hZ2RurhQVPYA7OdxdEfXXgAs=', 'DyPxx01fv2GVrVpq7l5WmTxUd+hFP1uToNe6/TMwNtM=', 'AWVW+sk0inNatQqgiclxUbPKrwogo0+52TcFBaFRVyk=', 'I9kreTZIEQ/Fru8GM/DHfKyw27yhh5uKb25d9EXl9ws=', 'LkwQ7F5l4vI5u8Q8EwMd8mhqtA/XmjBLBdYRuCPyO3M=', 'EkGLv9d7Y61eFoZK2cMv+/xaPdm3jsK3kyn+XgqNKVM=', 'HkqKrOFavB1bdqnoSEMdLAanj3K2vrsSk+bFjlGFaW0=', 'Dz6WEH3s29aHLCDqCaz5LN8Xo+4dEzFIgJLZYXbet1U=', 'ASw3gCB/OVzCHesKvZUWge6jJJjdumzol6j58MI1cGc=', 'E+qxtOZyuhscG7kBdpMB8eVlnQPqEMYd4kd/8KwiFCE=', 'INxmSrsgt0VsBmKc43oeyxonpOiyTjG0i5xGNaowMj4=', 'LGseLP6njiw2eF52qM+xsFfpRx8k9bORF1w97LAeAA8=', 'GIySYlX1t689qWNVcpwqhnCrTCxwQASBsqyQN0Dgxas=', 'L5kTII4J49bp5vumOE/QdquJ8mYpduPjDghwuzDrVPI=', 'KzOAPZCIlwbnFPcgtWKNJvtgtUWh8+nOSaaukSsCQIY=', 'JsyrwQ6wQyfLXMPd4quzbwlwhsl+c4wTPJ9XB350iwk=', 'GxauDXxUQIy3X9kx8kZ1HysMPcINeegqJTG3bCK01d8=', 'EdC7RhvYryhE9J8PhAyU75UYslETRHQtH1Q4/j1BWuQ=', 'IzAxhHtHa+rQEY09szjokTPsQg1nPlBK1kclnfZVVx4=', 'H4TpeJW+5DjrPJLcmxhGya0pwWQ4ewautu0YQe2MTco=', 'J39/m1QvDCu19FvtBU8JYkU2AQw8+UUtInMZMyf4AdY=', 'HvyckGnlBouqwT0uZkVkG30n6A/CMHcWFTXERoLuV6k=', 'DW7Ed3YeLvusTxSzvz1SV6meZMPyX+EE+vmIsg/l/0Q=', 'Dg59fFUBmZt9Fhc7WbfK4fIDvvIa6/ACUYgUOcz5MBM=', 'IXvvL08SxtzJHCBYojORy3feU8puRNzcbqPTb+oybqY=', 'BXgMiK3wFTG1D4F+P+RER9KbNaqKOJxx6M8SJqzvaLo=', 'GHM4h6ays7TJDY5JkBluI0ReR9fqWTnr+4mj7j1ntL0=', 'ILrOY6z8rgscnyvuJLjp2oW6WX03sJBXIMTxXbIxsHo=', 'Fm6llTdaZ4asUn7p7O1z7Wv1UIdqvK86yStCyAiwDY8=', 'MEJiqe/0BArPQ+Mi1vUmdq4vhT7C56gNsAxIjPkXx04=', 'ImuscFAWbl9tt4zQsS028wW26MmgVRFK13Ceb1ckW2s=', 'JrL1OcVzgp9qypG6qVRQW8XD604d8dY4WCcX+98jiMw=', 'BqD79M1S6Tul5MbEr2XbAu6WKX+K0gDy8c/yUudptVE=', 'LLnCQRLTU0Gs6siDYPtSiSTli27KwyG5+ynmqjNo/yM=', 'IOiKTWB1Jt0H/gijVSpEZpEp64f8wLE6rI/or9kwFSE=', 'FURkmivXPjunLzlt+R3WVAHdj69R3jJfuu251TatlPw=', 'GYAHdFeZVxLETafhdxMljj+Os1S/2A7Z6vPsuvaWAQU=', 'JdHSL/E+dwXTwIX5f8Tk9pFLgv+qXSCR7GTaxCN2Xvc=', 'L+yZDvVW7+EDWkZP9VgedAZ0Rc1Uq8r2uMA5n+DSTPw=', 'G9lWNQbZVE7z5IMOE1RQEsV5N5wtzBMwQWxK5JvE7GE=', 'AK/80XumADxW36hVcfwpc3siWoDUgOfdft7AHxTyMBA=', 'I2cNuu+WaIHwf5GaLYgxKMeyPPdnpHeysuB2K8DbwYs=', 'H5OlMpFzlMfiL9F6vupjicZv164t2fAvhg9tlpR/Dt0=', 'LeQun1N7fWGwITdxwOdPVVUSvge2pQk0c04sW+tAvjc=', 'JcVX9FuZeBzTfTuyKTFmKmf3izd4LIhbRWu5bVXohAQ=', 'IHTItwlwXJiIU4p/ijxK/2R3Mb0W+OJU+nTqnyvnZiw=', 'Jzg1WVYpgTiUnkQhcdak5LdO8gZXQNt8/DoLYP1XOss=', 'E9Nq0KTr64GWl3hkllnGXLfQxBzFGYcf23Gp6moMqlY=', 'CKLBi6QTgTSMGs+/lhdxaAa0YqFpG8LjQ7ebgIXjdrA=', 'BZCS/Dla7ShYB7v1V62aEEH1nAeYIrEIhFeIL+57YSw=', 'FhkkFRtaWtLYysEZUiqZGpBvFehTHccFZ/ayg3HMJOM=', 'HGjKj3qhdlkHVAXvY0G45popi5pNcvO7hUswnkuoehs=', 'J/XQO8ocggf3I5pLLPc65VmhWqN+e93fOqsF7sXOVZI=', 'Dsv/SEaWKpddNH6pqPxGX7RoYVV2IvLCVkp+Y5gzwWk=', 'J3xN4jY9i1tFbPxaf/jkb/LsjapZhV9a1kvAUh86xWc=', 'GxGGLFKs01G3pGR5P0+7V/7Jn4MrYyJvldF1yNL8CLI=', 'BqcZxYTHT/vdchjrVly0yL2GyS49+zxz4VJyAapRI04=', 'Iw5K3uy3mYd/fOmljINrmdUzWEoZXB13oxOr4cfRJr0=', 'ELEJuGSAnEdnoTPM5sutbIhigXO46lHozKhYMMp95SI=', 'DiEReXDc+9SxUmslNjbzd1ONO0+q61qLJL9iANFMxZE=', 'Jmc0mXhAE2L2sXk57rDmT/VWB+vbNccHHbRrs+e6R3g=', 'BQAPpf2lBeApoTv+MEwmew2GxywDm6v20/8C7iRr4C4=', 'Jk2eCUrtX0GmAkIiCjSihAiQh7JDapv86BdMyb6MLiA=', 'CAdvnEdD3mEw/2Is9AHt0skvJL/hFPPF5ySJF0YxXEc=', 'EyNwq927Cx3VfypSDCUza9fO3pS5W79cIVHW2I5kG2Q=', 'CP8RFreiJ7/f1EZaZ4kIgrYVyMTBfyjY0klY7fYC3cs=', 'K8sLDbi54+ArfpwclGD92cbNmFYjMuZI2KPgq5RZdSA=', 'EupozmiBvsrX+KaxF7A6uXb3q9WX+QOwvyMNINIalDo=', 'J0OcmKdmiAZ6CXsZtv3X141fiOJ04Nj+peprdAb92n8=', 'AvQNCtBfVlLjHvlECtcevIQZ45NJOTfwXwBJnQKpnjY=', 'L78EKEMn7k9oDwa9OQ4wnQ0TrMdLnFsUtjBZuMx6v/U=', 'G+aG1T4qitV6gosGUUJc/Gl4xwJ+2/JH9rZyPCHfhuc=', 'JoO0JehaUI+WhS8UtCIPz+n3rYsXv+/A40jEfKeLtX8=', 'FtrOmy6AEuMdscfr5nLYa75hoao+FpPg7d/A3gqd2VE=', 'J6Mh+MfTyQIuli9/7y48hItFOdu3WqE58wQw/lRbzts=', 'BszXIQ3uHWsOIreeEtGQgtgHi3iNcQB7leendO2GplE=', 'CkHdQiIWU3Ur7zUPbXSpF7bLsf12o6EhZvTQvpeOQCY=', 'IgoCiB5NR6yU2VDN+DhidNF4LifL0NhFl43uyRKY8WU=', 'DiFVpUX+Xzy7Y5dgZYnqwZzZJjkznGsBcpikrTQItLk=', 'Dw8ZxikeUVRqJnxgzHdOX7nQiLrFMHgtiR7Br0uEcHM=', 'DpJbzRxt20o6HGfsje771AxTwNM+eu7xtGeVrtWUPJ0=', 'KtAAsXSKu4Es1uVBEoa5/z7wpb09JZo25F7wW561vus=', 'CmWqIy0y7W6N5j0c3/68Lz+mFkZcJ6r5fozT3P9khlI=', 'AmPYRwq0scYddNjoliQvTyYdyxZ6OgaSOJPXyyyT1qE=', 'KQHZRq3clLBA/VgATZpfjNGSZUDHqGEs7BxYy2DCs6U=', 'GInPqCCfSVLfkCLbncWDtXF6BpbaQc7mSTfQzWMh5pM=', 'I2Bk1xy2xkyEdHrCX8+NiBUC5fA7/4dWG4WhFrHzmso=', 'L/ehdP/Owphi4E9dvcc+vzZhVwAzV2KQwMH2zYztJ64=', 'GeckoddCyrEDRV8AQO33RaJpanEITJPjInFUUN1Nb1s=', 'A+7TiStvDmxdoQWcXzeTmFg1qig1AKgSmQSpTIfxYb8=', 'COK4Jzv6MMGshQMG2R5Gip6NBQkq7ky8gMaHJIRjujA=', 'B63Mp22DN3KIOaG2rDs+1Cr7h9cq+Y9S9Bby7FiyjOw=', 'Fx7zeJa64rECCgpYOb1ReEzhG7QjfVSMFxFp0y+hm0A=', 'IP/fy4b00AUGTtvClpGMMy0y++/xcp3lBWomq7w6Nfo=', 'COzXpvFzXu2GuqCU5gj0iPONuzmPz+1LmUODoMqORkc=', 'HD9dhuWSH96YkBifHYxhh1QohgDmkovBgqxNXkyfDMs=', 'KcYRhO2dRg8zdVihr2Oap+PAl15AFO2OvK1KJdUeq/M=', 'De/UWyiVhygiituy29rval6bGmSQKnNPQCuM77irO1Y=', 'CnTqItigkzYGBhAXmsHYL/+pSS33be7U6mDgEzsIEag=', 'A6N78S2vFADSl6xKwTuiTBfcJi2xbIUj3u5ODM3ppoA=', 'Ef4XkNWrv1k1/yIxjk9//mmWatovkTa1T4MOrLCmU2g=', 'AYFlhC9AY3XyNGaGkVr7FL8f4FZMiFjuO94Kuj3l9o8=', 'Jh2yXnz/Wp+3LydrH5JgtmcwD7fTYbUP1cDotplbBfk=', 'KjrDMUsrZueW++Nt93jF5GlyMgzEPsgHBIgmtnBLp8Q=', 'I8qkuA7PqZ6dP+orvB2782nRv8iTfQPQdAYcMP2M12s=', 'J9smAIXiJImN8UXyP2NfIGbY5OEk5YHoxiYZKbHf4Qc=', 'J09sX9NKeE1rkV7wXUJO5sC6u/Np55qxOLgWe1YY7H8=', 'LDop4TqE0moJEckona8apM9YQKraBwHVfiPfx5babaE=', 'HqIQ8gAaM00+gB9OUycNQtp6rzF6VTtCgqp46qIoLm0=', 'JU2+tSiEtpnBun+g1ugNYQkDsYo+UJw2NRzMOwJJRuM=', 'BZ54HWWJbr4OS6JtwvKZB/R7ze2kososcT2FBeox/V0=', 'C1sc7GPULV5hXcJpuIWiTO8wPseMly3RfNuz6RXMT/s=', 'KnwBXpw7LFfKi30m05obzIXW/6y32fvWbSqPHWTtDJI=', 'Kbc2uRHXGnnPY9im94bxG9Wr7iQWHcVnp8hR6uHkO1E=', 'KFdFqQp/49Ca9agIcEvGnG8XAeVzkS31zB4mXVlsQUE=', 'LZAbgZXDyWyMNuuZ/sATTsK4MEroEL0w2lVOMICCZxU=', 'GQXTUYNV6rp4WbWR7XuMnCU5gPBFDb31TXp3groFg5I=', 'I+gTAm/AuABk0ZtcVCiUL99+/qgL+o7ECVJyv9t7TJ8=', 'I8ChmiUsh+axwcIbGnmAAgDD+/8+MwDn5VaAcd6e+4E=', 'EcSuYHuuSSQTv2LNqiwoaO0f7G3AYxsGfKYPqxJbnio=', 'LNBV67fuRoY2XepFDwRv9iQF+uGxr8n7AXB8+B2g47k=', 'BTyf7y4CH6miD62iL96hUFtYoxWbu0czfb95GyFbFFI=', 'CjW9dOh8urqr6JrRMZ0snoY7TGMcIZOMmlOVv5eHKp8=', 'HBFQVlOc4gzVoE0aXEPisA++g7JZAb429d3EZm/Dg/4=', 'JClUBH5Xcv073tWQ7IvrTFQvLiZMjD4oTNxHNQXFGpA=', 'Diq9MVtHwNyThJwM3yZ+gRy9vbIApufCtn7ffLAXQhQ=', 'KCs3AgwIkNdRw/12lQ2AaGaOHf6uYh3VUtLeiH2i6nU=', 'KJM4UiZrUtnqa1u5I9nZTy5aW+XHeOdeB5QsI0tkO9k=', 'CZq2dlUFuhGY7xQOd7eVTU++eaBWznK6zjnASMANo88=', 'KvIR2OCsLY/af4SbjyKaIlxhhrVXYsensq4tHdhcV8s=', 'DNBw8jQBSigJq5DHHB2mHpipYyL+3Zm2qq4coQTz+s8=', 'Jnk+KryNPDDGBib7qhWPJjWH1r0Vgz1EixFiZLkwJWo=', 'IlvjbtDuheH4Ra2oTldIpWaZFSET/2G1BWtti95gwZ0=', 'AhdPSe2wLVFU0r7KLckrnMWVOD2h/ejwnkte4+paBl4=', 'D2SJHCyLAg5Gw1lMt1jwvdzb0JvQMIgW+0FzSoaYcsM=', 'GSqEyi+Z02mR4tKx3v85idHBVsI54Q6fVhQOGFRXYGc=', 'Kd/Ne2PwWr8nU6jDQda3pgxiQ7BMmhuLMyC7oEpNR4c=', 'HuJ61rm1qGdzOvxhorPnalK6PkvV5let6R/AOIGduls=', 'CrR3PxUMP4rTvJU49DzsOVp+NzGulz/v62I6CSF+ZMc=', 'E8NSoC9ZUYYgLLC5n6WMVUKrZ/m206Cv0QPe7/bYD0E=', 'KpfPLBDEv7/SmfZ8UqFp+SwFt9rFakHE3U/ofIJGzhQ=', 'AL7LtHBCvX+Mn2u0IhYtGu0ImihIL3/RarBqEyhf5wI=', 'AI5E2iHXOGkbiBdX7zftKcW9n3pEUPz1MpCpLMLKIXY=', 'KyBai21LcGPZMfO7XTRkBThD/n++S4PBeIP4ZSeIKhg=', 'LZ4yp8kFVv4QjSVawB513zOPzWOyv4TBkoDUJymIY/w=', 'KaMiqEwlvS3fbi5CACKNlavWNJoCJmrB27pSBzjOypc=', 'BnjJv8by3wEvT+VeM7torBTO0d8NAhUnkgidBG2CjEM=', 'D6/zpedCV5T+IKfg62FbixdgOUt/IwQoajrkAJEk2yM=', 'H49bYRr5/rnOqGwIQFgSBVPkBBA67iE/WkHR0CVBwNM=', 'Fgh12EeWAvlvQKzC0ELuUsFYi2op3kKEllptxskw6gc=', 'Fth6UYOjFqHXCvyVHv4s1mfHcyj8/aRYy/X+MEX0bZ4='],
|
|
95
|
+
M: [['EkZm+AVh7VkW8vBwsb0kjG1T9E0nPZVqDIe5F2kqTRg=', 'EZJPAv0ZsJJVqqHPRuoFGOPXv+70dCFglJEBHbC9CwI=', 'JH+n8CIwShmU/1BUVsIgHvm3FzaUmNP/zkRmAe2d+EU=', 'A/17Ge8shh8i93/4EPVOJ3vJTrdsAtedmGvj3N8FHD8=', 'GL1BI5w+cVeaZ3RD7P+9VVqB7u6mk1Kmi2fIVjwMKgY=', 'LXjDpdKN6f81vwoldjUZblcwyn9ASTJ3B4zXXai069w='], ['ClFKXCJ/TOyV36Ap6N0STDSJWqRrsnwJEfN4DVAVVAo=', 'GS4W0X2VayV7haZS7v3y7glYnqxb6AkVd1cj0ssdoG0=', 'KYzgweMRO7k1xwWOd3K1M7GqnbDAkmvciRflYFyjrBA=', 'CUy06DYhr9Jx5BvHFyfwFY69YSI5rJ1pixf+S+Bbf8g=', 'A9iAOVvpPCfWSa9f0ULnazORjLiEHVooFzvVz30yh5E=', 'KO6ua1hmrWjkQ7uvkWgNt9fiswN+OP72G0LLzP/OyoE='], ['J4u0mntORK6kbrD4gstpKAGm5g/dW1wjxjzWXMzk/go=', 'Bj7ewb7YMfUGr422SNb96hRTRYh+i9z/EJA1odm2dNc=', 'G67xy1UJtSakIGH7U2V/mbMjJQDoVRksvoyUDgaMR18=', 'EyRWSse9+eIhZOmFjX+o42ixZerqPa9Otn7lnA3y5dQ=', 'AFdhuMauyxqMpOpN/CyDdgZKSoAEzu2iEKVSQFYt3BM=', 'EMnigxWdWMtMsuNf3oOjuh/cKAAu2ZY9KpnxhheKFI0='], ['DDmen2eqQHB6ID/u+wuVi72tzsXKNJAdJT0CaiQZ9qI=', 'CD8N8/GgNR0DMOw/9gLKjMNTt/bnYscQcYTNe0I0SfY=', 'Gmdk1ZQ/xKcgtMChn9uMcRmEMHKHpYubX59dWCEssmM=', 'ARpjom/qv4f6Zr3mbMJakiyWOC12xqf/SPFTe+rtaDo=', 'CMp7ZGV8NUjzK+9bY60kKIpBwLJRCZrSf5Q0MH4+ZNQ=', 'AZmCcEcek2GVVEawzbi+qRXsBnXxzWSN3LBDA1B6RIk='], ['HWs9X26jacJvgl0jYpM+qjHqNewKd8H72eAcoVI+RDI=', 'EZ7xiLs90NMjBpdsGZQehmS+aH56aWkton2iFabwbUA=', 'LZ4KtcBok9/f0DSBOBuoa25ikt9WCdcfLGSy2aefgJ4=', 'JfFmMb93Bg9+o0CHwCW/E1eEMZ7wjNouMUGe4KUp5lg=', 'FEx6EdpafF2rrj8z+9A8rYbRi8WUx5pJfsuYlO21VPE=', 'D5cRYmJ3I/P+rayyiwwQTLj3TeUIdS+o18DbKvE96O4='], ['JL5RAJVDYgbdCr0LDLuVyIOrMEqlJZixppMG7JgaaI0=', 'IRYQ4q1KN3Qm+t9waLDBpsKZoWTBwaYD6u2USHDQubk=', 'FaZ9mBBBsfbwnz+evv2GTnedOvCBV3hqwHdQXlDsefw=', 'BJMn+nnSjBKiyCQGlH938Gd1sCh0aLMTaHdwHb58lZg=', 'IwlA3MUjJlj/nClpej/UFtFw6MmY8aqF3qDELXn5Uao=', 'GxIcBJzRFZ4okAfgydqZlcxLq0wm+4iOw5cqii5laWQ=']]
|
|
96
|
+
};
|
|
97
|
+
_5.default = _default$1;
|
|
98
|
+
Object.defineProperty(poseidon5$1, "__esModule", {
|
|
99
|
+
value: true
|
|
100
|
+
});
|
|
101
|
+
var poseidon5_2 = poseidon5$1.poseidon5 = poseidon5;
|
|
102
|
+
var _poseidon$1 = _interopRequireDefault$1(poseidon_1$1);
|
|
103
|
+
var _unstringify$1 = _interopRequireDefault$1(unstringify$1);
|
|
104
|
+
var _$1 = _interopRequireDefault$1(_5);
|
|
105
|
+
function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
106
|
+
const c$1 = (0, _unstringify$1.default)(_$1.default);
|
|
107
|
+
function poseidon5(inputs) {
|
|
108
|
+
return (0, _poseidon$1.default)(inputs, c$1);
|
|
109
|
+
}
|
|
110
|
+
function isZero(a) {
|
|
111
|
+
return !a;
|
|
112
|
+
}
|
|
113
|
+
function isOdd(a) {
|
|
114
|
+
return (a & BigInt(1)) === BigInt(1);
|
|
115
|
+
}
|
|
116
|
+
function shiftRight(a, n) {
|
|
117
|
+
return a >> n;
|
|
118
|
+
}
|
|
119
|
+
function mul(a, b) {
|
|
120
|
+
return a * b;
|
|
121
|
+
}
|
|
122
|
+
function bits(n) {
|
|
123
|
+
var res = [];
|
|
124
|
+
var E = n;
|
|
125
|
+
while (E) {
|
|
126
|
+
if (E & BigInt(1)) {
|
|
127
|
+
res.push(1);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
res.push(0);
|
|
131
|
+
}
|
|
132
|
+
E >>= BigInt(1);
|
|
133
|
+
}
|
|
134
|
+
return res;
|
|
135
|
+
}
|
|
136
|
+
var Field = /** @class */ (function () {
|
|
137
|
+
function Field(order) {
|
|
138
|
+
this.one = BigInt(1);
|
|
139
|
+
this.zero = BigInt(0);
|
|
140
|
+
this._order = order;
|
|
141
|
+
this._half = order >> this.one;
|
|
142
|
+
this._negone = this._order - this.one;
|
|
143
|
+
}
|
|
144
|
+
Field.prototype.e = function (res) {
|
|
145
|
+
return res >= this._order ? res % this._order : res;
|
|
146
|
+
};
|
|
147
|
+
Field.prototype.mul = function (a, b) {
|
|
148
|
+
return (a * b) % this._order;
|
|
149
|
+
};
|
|
150
|
+
Field.prototype.sub = function (a, b) {
|
|
151
|
+
return a >= b ? a - b : this._order - b + a;
|
|
152
|
+
};
|
|
153
|
+
Field.prototype.add = function (a, b) {
|
|
154
|
+
var res = a + b;
|
|
155
|
+
return res >= this._order ? res - this._order : res;
|
|
156
|
+
};
|
|
157
|
+
Field.prototype.inv = function (a) {
|
|
158
|
+
var _a, _b;
|
|
159
|
+
var t = this.zero;
|
|
160
|
+
var r = this._order;
|
|
161
|
+
var newt = this.one;
|
|
162
|
+
var newr = a % this._order;
|
|
163
|
+
while (newr) {
|
|
164
|
+
var q = r / newr;
|
|
165
|
+
_a = [newt, t - q * newt], t = _a[0], newt = _a[1];
|
|
166
|
+
_b = [newr, r - q * newr], r = _b[0], newr = _b[1];
|
|
167
|
+
}
|
|
168
|
+
if (t < this.zero) {
|
|
169
|
+
t += this._order;
|
|
170
|
+
}
|
|
171
|
+
return t;
|
|
172
|
+
};
|
|
173
|
+
Field.prototype.div = function (a, b) {
|
|
174
|
+
return this.mul(a, this.inv(b));
|
|
175
|
+
};
|
|
176
|
+
Field.prototype.eq = function (a, b) {
|
|
177
|
+
return a === b;
|
|
178
|
+
};
|
|
179
|
+
Field.prototype.square = function (a) {
|
|
180
|
+
return (a * a) % this._order;
|
|
181
|
+
};
|
|
182
|
+
Field.prototype.lt = function (a, b) {
|
|
183
|
+
var aa = a > this._half ? a - this._order : a;
|
|
184
|
+
var bb = b > this._half ? b - this._order : b;
|
|
185
|
+
return aa < bb;
|
|
186
|
+
};
|
|
187
|
+
Field.prototype.geq = function (a, b) {
|
|
188
|
+
var aa = a > this._half ? a - this._order : a;
|
|
189
|
+
var bb = b > this._half ? b - this._order : b;
|
|
190
|
+
return aa >= bb;
|
|
191
|
+
};
|
|
192
|
+
Field.prototype.neg = function (a) {
|
|
193
|
+
return a ? this._order - a : a;
|
|
194
|
+
};
|
|
195
|
+
Field.prototype.isZero = function (a) {
|
|
196
|
+
return a === this.zero;
|
|
197
|
+
};
|
|
198
|
+
Field.prototype.pow = function (base, e) {
|
|
199
|
+
if (isZero(e)) {
|
|
200
|
+
return this.one;
|
|
201
|
+
}
|
|
202
|
+
var n = bits(e);
|
|
203
|
+
if (n.length === 0) {
|
|
204
|
+
return this.one;
|
|
205
|
+
}
|
|
206
|
+
var res = base;
|
|
207
|
+
for (var i = n.length - 2; i >= 0; i -= 1) {
|
|
208
|
+
res = this.square(res);
|
|
209
|
+
if (n[i]) {
|
|
210
|
+
res = this.mul(res, base);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return res;
|
|
214
|
+
};
|
|
215
|
+
return Field;
|
|
216
|
+
}());
|
|
217
|
+
function pruneBuffer(buff) {
|
|
218
|
+
buff[0] &= 0xf8;
|
|
219
|
+
buff[31] &= 0x7f;
|
|
220
|
+
buff[31] |= 0x40;
|
|
221
|
+
return buff;
|
|
222
|
+
}
|
|
223
|
+
function isStringifiedBigint(s) {
|
|
224
|
+
try {
|
|
225
|
+
BigInt(s);
|
|
226
|
+
return true;
|
|
227
|
+
}
|
|
228
|
+
catch (e) {
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function isHexadecimal(s) {
|
|
233
|
+
return /^(0x|0X)[0-9a-fA-F]+$/.test(s);
|
|
234
|
+
}
|
|
235
|
+
function isBigNumberish(value) {
|
|
236
|
+
return (typeof value === "number" ||
|
|
237
|
+
typeof value === "bigint" ||
|
|
238
|
+
(typeof value === "string" && isStringifiedBigint(value)) ||
|
|
239
|
+
(typeof value === "string" && isHexadecimal(value)) ||
|
|
240
|
+
Buffer.isBuffer(value));
|
|
241
|
+
}
|
|
242
|
+
function isPoint(point) {
|
|
243
|
+
return Array.isArray(point) && point.length === 2 && isStringifiedBigint(point[0]) && isStringifiedBigint(point[1]);
|
|
244
|
+
}
|
|
245
|
+
function isSignature(signature) {
|
|
246
|
+
return (typeof signature === "object" &&
|
|
247
|
+
Object.prototype.hasOwnProperty.call(signature, "R8") &&
|
|
248
|
+
Object.prototype.hasOwnProperty.call(signature, "S") &&
|
|
249
|
+
isPoint(signature.R8) &&
|
|
250
|
+
isStringifiedBigint(signature.S));
|
|
251
|
+
}
|
|
252
|
+
function int2hex(n) {
|
|
253
|
+
var hex = n.toString(16);
|
|
254
|
+
if (hex.length % 2 !== 0) {
|
|
255
|
+
hex = "0".concat(hex);
|
|
256
|
+
}
|
|
257
|
+
return hex;
|
|
258
|
+
}
|
|
259
|
+
function bigNumberish2Buff(value) {
|
|
260
|
+
if (typeof value === "number" ||
|
|
261
|
+
typeof value === "bigint" ||
|
|
262
|
+
(typeof value === "string" && isStringifiedBigint(value))) {
|
|
263
|
+
var hex = int2hex(BigInt(value));
|
|
264
|
+
return Buffer.from(hex, "hex");
|
|
265
|
+
}
|
|
266
|
+
return value;
|
|
267
|
+
}
|
|
268
|
+
function buff2int(buffer) {
|
|
269
|
+
return BigInt("0x".concat(buffer.toString("hex")));
|
|
270
|
+
}
|
|
271
|
+
function bigNumberish2BigNumber(value) {
|
|
272
|
+
if (typeof value === "number" ||
|
|
273
|
+
typeof value === "bigint" ||
|
|
274
|
+
(typeof value === "string" && isStringifiedBigint(value)) ||
|
|
275
|
+
(typeof value === "string" && isHexadecimal(value))) {
|
|
276
|
+
return BigInt(value);
|
|
277
|
+
}
|
|
278
|
+
return buff2int(value);
|
|
279
|
+
}
|
|
280
|
+
function leBuff2int(buffer) {
|
|
281
|
+
return BigInt("0x".concat(buffer.reverse().toString("hex")));
|
|
282
|
+
}
|
|
283
|
+
function leInt2Buff(n) {
|
|
284
|
+
var hex = int2hex(n);
|
|
285
|
+
var buffer = Buffer.alloc(32, 0);
|
|
286
|
+
Buffer.from(hex, "hex").reverse().copy(buffer);
|
|
287
|
+
return buffer;
|
|
288
|
+
}
|
|
289
|
+
function checkPrivateKey(privateKey) {
|
|
290
|
+
if (isBigNumberish(privateKey)) {
|
|
291
|
+
return bigNumberish2Buff(privateKey);
|
|
292
|
+
}
|
|
293
|
+
if (typeof privateKey !== "string") {
|
|
294
|
+
throw TypeError("Invalid private key type. Supported types: number, bigint, buffer, string.");
|
|
295
|
+
}
|
|
296
|
+
return Buffer.from(privateKey);
|
|
297
|
+
}
|
|
298
|
+
function checkMessage(message) {
|
|
299
|
+
if (isBigNumberish(message)) {
|
|
300
|
+
return bigNumberish2BigNumber(message);
|
|
301
|
+
}
|
|
302
|
+
if (typeof message !== "string") {
|
|
303
|
+
throw TypeError("Invalid message type. Supported types: number, bigint, buffer, string.");
|
|
304
|
+
}
|
|
305
|
+
return buff2int(Buffer.from(message));
|
|
306
|
+
}
|
|
307
|
+
var r = BigInt("21888242871839275222246405745257275088548364400416034343698204186575808495617");
|
|
308
|
+
var Fr = new Field(r);
|
|
309
|
+
var Base8 = [
|
|
310
|
+
Fr.e(BigInt("5299619240641551281634865583518297030282874472190772894086521144482721001553")),
|
|
311
|
+
Fr.e(BigInt("16950150798460657717958625567821834550301663161624707787222815936182638968203"))
|
|
312
|
+
];
|
|
313
|
+
var a = Fr.e(BigInt("168700"));
|
|
314
|
+
var d = Fr.e(BigInt("168696"));
|
|
315
|
+
var order = BigInt("21888242871839275222246405745257275088614511777268538073601725287587578984328");
|
|
316
|
+
var subOrder = shiftRight(order, BigInt(3));
|
|
317
|
+
/**
|
|
318
|
+
* Performs point addition on the Baby Jubjub elliptic curve,
|
|
319
|
+
* calculating a third point from two given points.
|
|
320
|
+
* Let P1 = (x1, y1) and P2 = (x2, y2) be two arbitrary points of the curve.
|
|
321
|
+
* Then P1 + P2 = (x3, y3) is calculated in the following way:
|
|
322
|
+
* x3 = (x1*y2 + y1*x2)/(1 + d*x1*x2*y1*y2)
|
|
323
|
+
* y3 = (y1*y2 - a*x1*x2)/(1 - d*x1*x2*y1*y2)
|
|
324
|
+
* @param p1 - First point on the curve.
|
|
325
|
+
* @param p2 - Second point on the curve.
|
|
326
|
+
* @returns Resultant third point on the curve.
|
|
327
|
+
*/
|
|
328
|
+
function addPoint(p1, p2) {
|
|
329
|
+
var beta = Fr.mul(p1[0], p2[1]);
|
|
330
|
+
var gamma = Fr.mul(p1[1], p2[0]);
|
|
331
|
+
var delta = Fr.mul(Fr.sub(p1[1], Fr.mul(a, p1[0])), Fr.add(p2[0], p2[1]));
|
|
332
|
+
var tau = Fr.mul(beta, gamma);
|
|
333
|
+
var dtau = Fr.mul(d, tau);
|
|
334
|
+
var p3x = Fr.div(Fr.add(beta, gamma), Fr.add(Fr.one, dtau));
|
|
335
|
+
var p3y = Fr.div(Fr.add(delta, Fr.sub(Fr.mul(a, beta), gamma)), Fr.sub(Fr.one, dtau));
|
|
336
|
+
return [p3x, p3y];
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Performs a scalar multiplication by starting from the 'base' point and 'adding'
|
|
340
|
+
* it to itself 'e' times.
|
|
341
|
+
* @param base - The base point used as a starting point.
|
|
342
|
+
* @param e - A secret number representing the private key.
|
|
343
|
+
* @returns The resulting point representing the public key.
|
|
344
|
+
*/
|
|
345
|
+
function mulPointEscalar(base, e) {
|
|
346
|
+
var res = [Fr.e(BigInt(0)), Fr.e(BigInt(1))];
|
|
347
|
+
var rem = e;
|
|
348
|
+
var exp = base;
|
|
349
|
+
while (!isZero(rem)) {
|
|
350
|
+
if (isOdd(rem)) {
|
|
351
|
+
res = addPoint(res, exp);
|
|
352
|
+
}
|
|
353
|
+
exp = addPoint(exp, exp);
|
|
354
|
+
rem = shiftRight(rem, BigInt(1));
|
|
355
|
+
}
|
|
356
|
+
return res;
|
|
357
|
+
}
|
|
358
|
+
function inCurve(p) {
|
|
359
|
+
var x1 = BigInt(p[0]);
|
|
360
|
+
var y1 = BigInt(p[1]);
|
|
361
|
+
var x2 = Fr.square(x1);
|
|
362
|
+
var y2 = Fr.square(y1);
|
|
363
|
+
return Fr.eq(Fr.add(Fr.mul(a, x2), y2), Fr.add(Fr.one, Fr.mul(Fr.mul(x2, y2), d)));
|
|
364
|
+
}
|
|
365
|
+
class Blake$2 {
|
|
366
|
+
_lengthCarry (arr) {
|
|
367
|
+
for (let j = 0; j < arr.length; ++j) {
|
|
368
|
+
if (arr[j] < 0x0100000000) break
|
|
369
|
+
arr[j] -= 0x0100000000;
|
|
370
|
+
arr[j + 1] += 1;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
update (data) {
|
|
374
|
+
const block = this._block;
|
|
375
|
+
let offset = 0;
|
|
376
|
+
while (this._blockOffset + data.length - offset >= block.length) {
|
|
377
|
+
for (let i = this._blockOffset; i < block.length;) block[i++] = data[offset++];
|
|
378
|
+
this._length[0] += block.length * 8;
|
|
379
|
+
this._lengthCarry(this._length);
|
|
380
|
+
this._compress();
|
|
381
|
+
this._blockOffset = 0;
|
|
382
|
+
}
|
|
383
|
+
while (offset < data.length) block[this._blockOffset++] = data[offset++];
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
Blake$2.sigma = [
|
|
387
|
+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
388
|
+
[14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],
|
|
389
|
+
[11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],
|
|
390
|
+
[7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],
|
|
391
|
+
[9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],
|
|
392
|
+
[2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9],
|
|
393
|
+
[12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11],
|
|
394
|
+
[13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10],
|
|
395
|
+
[6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5],
|
|
396
|
+
[10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0],
|
|
397
|
+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
398
|
+
[14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],
|
|
399
|
+
[11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],
|
|
400
|
+
[7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],
|
|
401
|
+
[9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],
|
|
402
|
+
[2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9]
|
|
403
|
+
];
|
|
404
|
+
Blake$2.u256 = [
|
|
405
|
+
0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
|
|
406
|
+
0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
|
|
407
|
+
0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
|
|
408
|
+
0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917
|
|
409
|
+
];
|
|
410
|
+
Blake$2.u512 = [
|
|
411
|
+
0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
|
|
412
|
+
0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
|
|
413
|
+
0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
|
|
414
|
+
0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
|
|
415
|
+
0x9216d5d9, 0x8979fb1b, 0xd1310ba6, 0x98dfb5ac,
|
|
416
|
+
0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96,
|
|
417
|
+
0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7,
|
|
418
|
+
0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69
|
|
419
|
+
];
|
|
420
|
+
Blake$2.padding = Buffer.from([
|
|
421
|
+
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
422
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
423
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
424
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
425
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
426
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
427
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
428
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
429
|
+
]);
|
|
430
|
+
var blake = Blake$2;
|
|
431
|
+
getDefaultExportFromCjs(blake);
|
|
432
|
+
const Blake$1 = blake;
|
|
433
|
+
const zo$3 = Buffer.from([0x01]);
|
|
434
|
+
const oo$3 = Buffer.from([0x81]);
|
|
435
|
+
const rot$1 = (x, n) => ((x << (32 - n)) | (x >>> n)) >>> 0;
|
|
436
|
+
function g$1 (v, m, i, a, b, c, d, e) {
|
|
437
|
+
const sigma = Blake$1.sigma;
|
|
438
|
+
const u256 = Blake$1.u256;
|
|
439
|
+
v[a] = (v[a] + ((m[sigma[i][e]] ^ u256[sigma[i][e + 1]]) >>> 0) + v[b]) >>> 0;
|
|
440
|
+
v[d] = rot$1(v[d] ^ v[a], 16);
|
|
441
|
+
v[c] = (v[c] + v[d]) >>> 0;
|
|
442
|
+
v[b] = rot$1(v[b] ^ v[c], 12);
|
|
443
|
+
v[a] = (v[a] + ((m[sigma[i][e + 1]] ^ u256[sigma[i][e]]) >>> 0) + v[b]) >>> 0;
|
|
444
|
+
v[d] = rot$1(v[d] ^ v[a], 8);
|
|
445
|
+
v[c] = (v[c] + v[d]) >>> 0;
|
|
446
|
+
v[b] = rot$1(v[b] ^ v[c], 7);
|
|
447
|
+
}
|
|
448
|
+
var blake256 = class Blake256 extends Blake$1 {
|
|
449
|
+
constructor () {
|
|
450
|
+
super();
|
|
451
|
+
this._h = [
|
|
452
|
+
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
|
|
453
|
+
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
|
|
454
|
+
];
|
|
455
|
+
this._s = [0, 0, 0, 0];
|
|
456
|
+
this._block = Buffer.alloc(64);
|
|
457
|
+
this._blockOffset = 0;
|
|
458
|
+
this._length = [0, 0];
|
|
459
|
+
this._nullt = false;
|
|
460
|
+
this._zo = zo$3;
|
|
461
|
+
this._oo = oo$3;
|
|
462
|
+
}
|
|
463
|
+
_compress () {
|
|
464
|
+
const u256 = Blake$1.u256;
|
|
465
|
+
const v = new Array(16);
|
|
466
|
+
const m = new Array(16);
|
|
467
|
+
let i;
|
|
468
|
+
for (i = 0; i < 16; ++i) m[i] = this._block.readUInt32BE(i * 4);
|
|
469
|
+
for (i = 0; i < 8; ++i) v[i] = this._h[i] >>> 0;
|
|
470
|
+
for (i = 8; i < 12; ++i) v[i] = (this._s[i - 8] ^ u256[i - 8]) >>> 0;
|
|
471
|
+
for (i = 12; i < 16; ++i) v[i] = u256[i - 8];
|
|
472
|
+
if (!this._nullt) {
|
|
473
|
+
v[12] = (v[12] ^ this._length[0]) >>> 0;
|
|
474
|
+
v[13] = (v[13] ^ this._length[0]) >>> 0;
|
|
475
|
+
v[14] = (v[14] ^ this._length[1]) >>> 0;
|
|
476
|
+
v[15] = (v[15] ^ this._length[1]) >>> 0;
|
|
477
|
+
}
|
|
478
|
+
for (i = 0; i < 14; ++i) {
|
|
479
|
+
g$1(v, m, i, 0, 4, 8, 12, 0);
|
|
480
|
+
g$1(v, m, i, 1, 5, 9, 13, 2);
|
|
481
|
+
g$1(v, m, i, 2, 6, 10, 14, 4);
|
|
482
|
+
g$1(v, m, i, 3, 7, 11, 15, 6);
|
|
483
|
+
g$1(v, m, i, 0, 5, 10, 15, 8);
|
|
484
|
+
g$1(v, m, i, 1, 6, 11, 12, 10);
|
|
485
|
+
g$1(v, m, i, 2, 7, 8, 13, 12);
|
|
486
|
+
g$1(v, m, i, 3, 4, 9, 14, 14);
|
|
487
|
+
}
|
|
488
|
+
for (i = 0; i < 16; ++i) this._h[i % 8] = (this._h[i % 8] ^ v[i]) >>> 0;
|
|
489
|
+
for (i = 0; i < 8; ++i) this._h[i] = (this._h[i] ^ this._s[i % 4]) >>> 0;
|
|
490
|
+
}
|
|
491
|
+
_padding () {
|
|
492
|
+
let lo = this._length[0] + this._blockOffset * 8;
|
|
493
|
+
let hi = this._length[1];
|
|
494
|
+
if (lo >= 0x0100000000) {
|
|
495
|
+
lo -= 0x0100000000;
|
|
496
|
+
hi += 1;
|
|
497
|
+
}
|
|
498
|
+
const msglen = Buffer.alloc(8);
|
|
499
|
+
msglen.writeUInt32BE(hi, 0);
|
|
500
|
+
msglen.writeUInt32BE(lo, 4);
|
|
501
|
+
if (this._blockOffset === 55) {
|
|
502
|
+
this._length[0] -= 8;
|
|
503
|
+
this.update(this._oo);
|
|
504
|
+
} else {
|
|
505
|
+
if (this._blockOffset < 55) {
|
|
506
|
+
if (this._blockOffset === 0) this._nullt = true;
|
|
507
|
+
this._length[0] -= (55 - this._blockOffset) * 8;
|
|
508
|
+
this.update(Blake$1.padding.slice(0, 55 - this._blockOffset));
|
|
509
|
+
} else {
|
|
510
|
+
this._length[0] -= (64 - this._blockOffset) * 8;
|
|
511
|
+
this.update(Blake$1.padding.slice(0, 64 - this._blockOffset));
|
|
512
|
+
this._length[0] -= 55 * 8;
|
|
513
|
+
this.update(Blake$1.padding.slice(1, 1 + 55));
|
|
514
|
+
this._nullt = true;
|
|
515
|
+
}
|
|
516
|
+
this.update(this._zo);
|
|
517
|
+
this._length[0] -= 8;
|
|
518
|
+
}
|
|
519
|
+
this._length[0] -= 64;
|
|
520
|
+
this.update(msglen);
|
|
521
|
+
}
|
|
522
|
+
digest () {
|
|
523
|
+
this._padding();
|
|
524
|
+
const buffer = Buffer.alloc(32);
|
|
525
|
+
for (let i = 0; i < 8; ++i) buffer.writeUInt32BE(this._h[i], i * 4);
|
|
526
|
+
return buffer
|
|
527
|
+
}
|
|
528
|
+
};
|
|
529
|
+
getDefaultExportFromCjs(blake256);
|
|
530
|
+
const Blake256 = blake256;
|
|
531
|
+
const zo$2 = Buffer.from([0x00]);
|
|
532
|
+
const oo$2 = Buffer.from([0x80]);
|
|
533
|
+
var blake224 = class Blake224 extends Blake256 {
|
|
534
|
+
constructor () {
|
|
535
|
+
super();
|
|
536
|
+
this._h = [
|
|
537
|
+
0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
|
|
538
|
+
0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
|
|
539
|
+
];
|
|
540
|
+
this._zo = zo$2;
|
|
541
|
+
this._oo = oo$2;
|
|
542
|
+
}
|
|
543
|
+
digest () {
|
|
544
|
+
this._padding();
|
|
545
|
+
const buffer = Buffer.alloc(28);
|
|
546
|
+
for (let i = 0; i < 7; ++i) buffer.writeUInt32BE(this._h[i], i * 4);
|
|
547
|
+
return buffer
|
|
548
|
+
}
|
|
549
|
+
};
|
|
550
|
+
getDefaultExportFromCjs(blake224);
|
|
551
|
+
const Blake = blake;
|
|
552
|
+
const zo$1 = Buffer.from([0x01]);
|
|
553
|
+
const oo$1 = Buffer.from([0x81]);
|
|
554
|
+
function rot (v, i, j, n) {
|
|
555
|
+
let hi = v[i * 2] ^ v[j * 2];
|
|
556
|
+
let lo = v[i * 2 + 1] ^ v[j * 2 + 1];
|
|
557
|
+
if (n >= 32) {
|
|
558
|
+
lo = lo ^ hi;
|
|
559
|
+
hi = lo ^ hi;
|
|
560
|
+
lo = lo ^ hi;
|
|
561
|
+
n -= 32;
|
|
562
|
+
}
|
|
563
|
+
if (n === 0) {
|
|
564
|
+
v[i * 2] = hi >>> 0;
|
|
565
|
+
v[i * 2 + 1] = lo >>> 0;
|
|
566
|
+
} else {
|
|
567
|
+
v[i * 2] = ((hi >>> n) | (lo << (32 - n))) >>> 0;
|
|
568
|
+
v[i * 2 + 1] = ((lo >>> n) | (hi << (32 - n))) >>> 0;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
function g (v, m, i, a, b, c, d, e) {
|
|
572
|
+
const sigma = Blake.sigma;
|
|
573
|
+
const u512 = Blake.u512;
|
|
574
|
+
let lo;
|
|
575
|
+
lo = v[a * 2 + 1] + ((m[sigma[i][e] * 2 + 1] ^ u512[sigma[i][e + 1] * 2 + 1]) >>> 0) + v[b * 2 + 1];
|
|
576
|
+
v[a * 2] = (v[a * 2] + ((m[sigma[i][e] * 2] ^ u512[sigma[i][e + 1] * 2]) >>> 0) + v[b * 2] + ~~(lo / 0x0100000000)) >>> 0;
|
|
577
|
+
v[a * 2 + 1] = lo >>> 0;
|
|
578
|
+
rot(v, d, a, 32);
|
|
579
|
+
lo = v[c * 2 + 1] + v[d * 2 + 1];
|
|
580
|
+
v[c * 2] = (v[c * 2] + v[d * 2] + ~~(lo / 0x0100000000)) >>> 0;
|
|
581
|
+
v[c * 2 + 1] = lo >>> 0;
|
|
582
|
+
rot(v, b, c, 25);
|
|
583
|
+
lo = v[a * 2 + 1] + ((m[sigma[i][e + 1] * 2 + 1] ^ u512[sigma[i][e] * 2 + 1]) >>> 0) + v[b * 2 + 1];
|
|
584
|
+
v[a * 2] = (v[a * 2] + ((m[sigma[i][e + 1] * 2] ^ u512[sigma[i][e] * 2]) >>> 0) + v[b * 2] + ~~(lo / 0x0100000000)) >>> 0;
|
|
585
|
+
v[a * 2 + 1] = lo >>> 0;
|
|
586
|
+
rot(v, d, a, 16);
|
|
587
|
+
lo = v[c * 2 + 1] + v[d * 2 + 1];
|
|
588
|
+
v[c * 2] = (v[c * 2] + v[d * 2] + ~~(lo / 0x0100000000)) >>> 0;
|
|
589
|
+
v[c * 2 + 1] = lo >>> 0;
|
|
590
|
+
rot(v, b, c, 11);
|
|
591
|
+
}
|
|
592
|
+
var blake512 = class Blake512 extends Blake {
|
|
593
|
+
constructor () {
|
|
594
|
+
super();
|
|
595
|
+
this._h = [
|
|
596
|
+
0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b,
|
|
597
|
+
0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,
|
|
598
|
+
0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f,
|
|
599
|
+
0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179
|
|
600
|
+
];
|
|
601
|
+
this._s = [0, 0, 0, 0, 0, 0, 0, 0];
|
|
602
|
+
this._block = Buffer.alloc(128);
|
|
603
|
+
this._blockOffset = 0;
|
|
604
|
+
this._length = [0, 0, 0, 0];
|
|
605
|
+
this._nullt = false;
|
|
606
|
+
this._zo = zo$1;
|
|
607
|
+
this._oo = oo$1;
|
|
608
|
+
}
|
|
609
|
+
_compress () {
|
|
610
|
+
const u512 = Blake.u512;
|
|
611
|
+
const v = new Array(32);
|
|
612
|
+
const m = new Array(32);
|
|
613
|
+
let i;
|
|
614
|
+
for (i = 0; i < 32; ++i) m[i] = this._block.readUInt32BE(i * 4);
|
|
615
|
+
for (i = 0; i < 16; ++i) v[i] = this._h[i] >>> 0;
|
|
616
|
+
for (i = 16; i < 24; ++i) v[i] = (this._s[i - 16] ^ u512[i - 16]) >>> 0;
|
|
617
|
+
for (i = 24; i < 32; ++i) v[i] = u512[i - 16];
|
|
618
|
+
if (!this._nullt) {
|
|
619
|
+
v[24] = (v[24] ^ this._length[1]) >>> 0;
|
|
620
|
+
v[25] = (v[25] ^ this._length[0]) >>> 0;
|
|
621
|
+
v[26] = (v[26] ^ this._length[1]) >>> 0;
|
|
622
|
+
v[27] = (v[27] ^ this._length[0]) >>> 0;
|
|
623
|
+
v[28] = (v[28] ^ this._length[3]) >>> 0;
|
|
624
|
+
v[29] = (v[29] ^ this._length[2]) >>> 0;
|
|
625
|
+
v[30] = (v[30] ^ this._length[3]) >>> 0;
|
|
626
|
+
v[31] = (v[31] ^ this._length[2]) >>> 0;
|
|
627
|
+
}
|
|
628
|
+
for (i = 0; i < 16; ++i) {
|
|
629
|
+
g(v, m, i, 0, 4, 8, 12, 0);
|
|
630
|
+
g(v, m, i, 1, 5, 9, 13, 2);
|
|
631
|
+
g(v, m, i, 2, 6, 10, 14, 4);
|
|
632
|
+
g(v, m, i, 3, 7, 11, 15, 6);
|
|
633
|
+
g(v, m, i, 0, 5, 10, 15, 8);
|
|
634
|
+
g(v, m, i, 1, 6, 11, 12, 10);
|
|
635
|
+
g(v, m, i, 2, 7, 8, 13, 12);
|
|
636
|
+
g(v, m, i, 3, 4, 9, 14, 14);
|
|
637
|
+
}
|
|
638
|
+
for (i = 0; i < 16; ++i) {
|
|
639
|
+
this._h[(i % 8) * 2] = (this._h[(i % 8) * 2] ^ v[i * 2]) >>> 0;
|
|
640
|
+
this._h[(i % 8) * 2 + 1] = (this._h[(i % 8) * 2 + 1] ^ v[i * 2 + 1]) >>> 0;
|
|
641
|
+
}
|
|
642
|
+
for (i = 0; i < 8; ++i) {
|
|
643
|
+
this._h[i * 2] = (this._h[i * 2] ^ this._s[(i % 4) * 2]) >>> 0;
|
|
644
|
+
this._h[i * 2 + 1] = (this._h[i * 2 + 1] ^ this._s[(i % 4) * 2 + 1]) >>> 0;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
_padding () {
|
|
648
|
+
const len = this._length.slice();
|
|
649
|
+
len[0] += this._blockOffset * 8;
|
|
650
|
+
this._lengthCarry(len);
|
|
651
|
+
const msglen = Buffer.alloc(16);
|
|
652
|
+
for (let i = 0; i < 4; ++i) msglen.writeUInt32BE(len[3 - i], i * 4);
|
|
653
|
+
if (this._blockOffset === 111) {
|
|
654
|
+
this._length[0] -= 8;
|
|
655
|
+
this.update(this._oo);
|
|
656
|
+
} else {
|
|
657
|
+
if (this._blockOffset < 111) {
|
|
658
|
+
if (this._blockOffset === 0) this._nullt = true;
|
|
659
|
+
this._length[0] -= (111 - this._blockOffset) * 8;
|
|
660
|
+
this.update(Blake.padding.slice(0, 111 - this._blockOffset));
|
|
661
|
+
} else {
|
|
662
|
+
this._length[0] -= (128 - this._blockOffset) * 8;
|
|
663
|
+
this.update(Blake.padding.slice(0, 128 - this._blockOffset));
|
|
664
|
+
this._length[0] -= 111 * 8;
|
|
665
|
+
this.update(Blake.padding.slice(1, 1 + 111));
|
|
666
|
+
this._nullt = true;
|
|
667
|
+
}
|
|
668
|
+
this.update(this._zo);
|
|
669
|
+
this._length[0] -= 8;
|
|
670
|
+
}
|
|
671
|
+
this._length[0] -= 128;
|
|
672
|
+
this.update(msglen);
|
|
673
|
+
}
|
|
674
|
+
digest () {
|
|
675
|
+
this._padding();
|
|
676
|
+
const buffer = Buffer.alloc(64);
|
|
677
|
+
for (let i = 0; i < 16; ++i) buffer.writeUInt32BE(this._h[i], i * 4);
|
|
678
|
+
return buffer
|
|
679
|
+
}
|
|
680
|
+
};
|
|
681
|
+
getDefaultExportFromCjs(blake512);
|
|
682
|
+
const Blake512 = blake512;
|
|
683
|
+
const zo = Buffer.from([0x00]);
|
|
684
|
+
const oo = Buffer.from([0x80]);
|
|
685
|
+
var blake384 = class Blake384 extends Blake512 {
|
|
686
|
+
constructor () {
|
|
687
|
+
super();
|
|
688
|
+
this._h = [
|
|
689
|
+
0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507,
|
|
690
|
+
0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,
|
|
691
|
+
0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511,
|
|
692
|
+
0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4
|
|
693
|
+
];
|
|
694
|
+
this._zo = zo;
|
|
695
|
+
this._oo = oo;
|
|
696
|
+
}
|
|
697
|
+
digest () {
|
|
698
|
+
this._padding();
|
|
699
|
+
const buffer = Buffer.alloc(48);
|
|
700
|
+
for (let i = 0; i < 12; ++i) buffer.writeUInt32BE(this._h[i], i * 4);
|
|
701
|
+
return buffer
|
|
702
|
+
}
|
|
703
|
+
};
|
|
704
|
+
getDefaultExportFromCjs(blake384);
|
|
705
|
+
var lib = {
|
|
706
|
+
Blake224: blake224,
|
|
707
|
+
Blake256: blake256,
|
|
708
|
+
Blake384: blake384,
|
|
709
|
+
Blake512: blake512
|
|
710
|
+
};
|
|
711
|
+
getDefaultExportFromCjs(lib);
|
|
712
|
+
function hash(message) {
|
|
713
|
+
var engine = new lib.Blake512();
|
|
714
|
+
engine.update(message);
|
|
715
|
+
return engine.digest();
|
|
716
|
+
}
|
|
717
|
+
/**
|
|
718
|
+
* Hashes the 32-byte private key using Blake1, prunes the lower 32 bytes
|
|
719
|
+
* of the buffer and converts it to a little-endian integer.
|
|
720
|
+
* This function is used to obtain the secret scalar to be used as
|
|
721
|
+
* the input of the private key in the circuits, since the circuit only
|
|
722
|
+
* performs a fixed-base scalar multiplication.
|
|
723
|
+
* For more info about these steps: {@link https://datatracker.ietf.org/doc/html/rfc8032#section-5.1.5}.
|
|
724
|
+
* @param privateKey - The private key used for generating the public key.
|
|
725
|
+
* @returns The secret scalar to be used to calculate public key.
|
|
726
|
+
*/
|
|
727
|
+
function deriveSecretScalar(privateKey) {
|
|
728
|
+
privateKey = checkPrivateKey(privateKey);
|
|
729
|
+
var hash$1 = hash(privateKey);
|
|
730
|
+
hash$1 = hash$1.slice(0, 32);
|
|
731
|
+
hash$1 = pruneBuffer(hash$1);
|
|
732
|
+
return shiftRight(leBuff2int(hash$1), BigInt(3)).toString();
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Derives a public key from a given private key using the
|
|
736
|
+
* {@link https://eips.ethereum.org/EIPS/eip-2494|Baby Jubjub} elliptic curve.
|
|
737
|
+
* This function utilizes the Baby Jubjub elliptic curve for cryptographic operations.
|
|
738
|
+
* The private key should be securely stored and managed, and it should never be exposed
|
|
739
|
+
* or transmitted in an unsecured manner.
|
|
740
|
+
* @param privateKey - The private key used for generating the public key.
|
|
741
|
+
* @returns The derived public key.
|
|
742
|
+
*/
|
|
743
|
+
function derivePublicKey(privateKey) {
|
|
744
|
+
var s = deriveSecretScalar(privateKey);
|
|
745
|
+
var publicKey = mulPointEscalar(Base8, BigInt(s));
|
|
746
|
+
return [publicKey[0].toString(), publicKey[1].toString()];
|
|
747
|
+
}
|
|
748
|
+
/**
|
|
749
|
+
* Signs a message using the provided private key, employing Poseidon hashing and
|
|
750
|
+
* EdDSA with the Baby Jubjub elliptic curve.
|
|
751
|
+
* @param privateKey - The private key used to sign the message.
|
|
752
|
+
* @param message - The message to be signed.
|
|
753
|
+
* @returns The signature object, containing properties relevant to EdDSA signatures, such as 'R8' and 'S' values.
|
|
754
|
+
*/
|
|
755
|
+
function signMessage(privateKey, message) {
|
|
756
|
+
privateKey = checkPrivateKey(privateKey);
|
|
757
|
+
message = checkMessage(message);
|
|
758
|
+
var hash$1 = hash(privateKey);
|
|
759
|
+
var sBuff = pruneBuffer(hash$1.slice(0, 32));
|
|
760
|
+
var s = leBuff2int(sBuff);
|
|
761
|
+
var A = mulPointEscalar(Base8, shiftRight(s, BigInt(3)));
|
|
762
|
+
var msgBuff = leInt2Buff(message);
|
|
763
|
+
var rBuff = hash(Buffer.concat([hash$1.slice(32, 64), msgBuff]));
|
|
764
|
+
var Fr = new Field(subOrder);
|
|
765
|
+
var r = Fr.e(leBuff2int(rBuff));
|
|
766
|
+
var R8 = mulPointEscalar(Base8, r);
|
|
767
|
+
var hm = poseidon5_2([R8[0], R8[1], A[0], A[1], message]);
|
|
768
|
+
var S = Fr.add(r, Fr.mul(hm, s));
|
|
769
|
+
return {
|
|
770
|
+
R8: [R8[0].toString(), R8[1].toString()],
|
|
771
|
+
S: S.toString()
|
|
772
|
+
};
|
|
773
|
+
}
|
|
774
|
+
/**
|
|
775
|
+
* Verifies an EdDSA signature using the Baby Jubjub elliptic curve and Poseidon hash function.
|
|
776
|
+
* @param message - The original message that was be signed.
|
|
777
|
+
* @param signature - The EdDSA signature to be verified.
|
|
778
|
+
* @param publicKey - The public key associated with the private key used to sign the message.
|
|
779
|
+
* @returns Returns true if the signature is valid and corresponds to the message and public key, false otherwise.
|
|
780
|
+
*/
|
|
781
|
+
function verifySignature(message, signature, publicKey) {
|
|
782
|
+
if (!isPoint(publicKey) ||
|
|
783
|
+
!isSignature(signature) ||
|
|
784
|
+
!inCurve(signature.R8) ||
|
|
785
|
+
!inCurve(publicKey) ||
|
|
786
|
+
BigInt(signature.S) >= subOrder) {
|
|
787
|
+
return false;
|
|
788
|
+
}
|
|
789
|
+
message = checkMessage(message);
|
|
790
|
+
var _signature = {
|
|
791
|
+
R8: [BigInt(signature.R8[0]), BigInt(signature.R8[1])],
|
|
792
|
+
S: BigInt(signature.S)
|
|
793
|
+
};
|
|
794
|
+
var _publicKey = [BigInt(publicKey[0]), BigInt(publicKey[1])];
|
|
795
|
+
var hm = poseidon5_2([signature.R8[0], signature.R8[1], publicKey[0], publicKey[1], message]);
|
|
796
|
+
var pLeft = mulPointEscalar(Base8, BigInt(signature.S));
|
|
797
|
+
var pRight = mulPointEscalar(_publicKey, mul(hm, BigInt(8)));
|
|
798
|
+
pRight = addPoint(_signature.R8, pRight);
|
|
799
|
+
return Fr.eq(BigInt(pLeft[0]), pRight[0]) && Fr.eq(pLeft[1], pRight[1]);
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
var poseidon2$1 = {};
|
|
803
|
+
|
|
804
|
+
const F = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
|
|
805
|
+
const N_ROUNDS_F = 8;
|
|
806
|
+
const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
|
|
807
|
+
const pow5 = v => {
|
|
808
|
+
let o = v * v;
|
|
809
|
+
return v * o * o % F;
|
|
810
|
+
};
|
|
811
|
+
function mix(state, M) {
|
|
812
|
+
const out = [];
|
|
813
|
+
for (let x = 0; x < state.length; x++) {
|
|
814
|
+
let o = 0n;
|
|
815
|
+
for (let y = 0; y < state.length; y++) {
|
|
816
|
+
o = o + M[x][y] * state[y];
|
|
817
|
+
}
|
|
818
|
+
out.push(o % F);
|
|
819
|
+
}
|
|
820
|
+
return out;
|
|
821
|
+
}
|
|
822
|
+
function poseidon(_inputs, opt) {
|
|
823
|
+
const inputs = _inputs.map(i => BigInt(i));
|
|
824
|
+
if (inputs.length <= 0) {
|
|
825
|
+
throw new Error('poseidon-lite: Not enough inputs');
|
|
826
|
+
}
|
|
827
|
+
if (inputs.length > N_ROUNDS_P.length) {
|
|
828
|
+
throw new Error('poseidon-lite: Too many inputs');
|
|
829
|
+
}
|
|
830
|
+
const t = inputs.length + 1;
|
|
831
|
+
const nRoundsF = N_ROUNDS_F;
|
|
832
|
+
const nRoundsP = N_ROUNDS_P[t - 2];
|
|
833
|
+
const {
|
|
834
|
+
C,
|
|
835
|
+
M
|
|
836
|
+
} = opt;
|
|
837
|
+
if (M.length !== t) {
|
|
838
|
+
throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
|
|
839
|
+
}
|
|
840
|
+
let state = [0n, ...inputs];
|
|
841
|
+
for (let x = 0; x < nRoundsF + nRoundsP; x++) {
|
|
842
|
+
for (let y = 0; y < state.length; y++) {
|
|
843
|
+
state[y] = state[y] + C[x * t + y];
|
|
844
|
+
if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5(state[y]);else if (y === 0) state[y] = pow5(state[y]);
|
|
845
|
+
}
|
|
846
|
+
state = mix(state, M);
|
|
847
|
+
}
|
|
848
|
+
return state[0];
|
|
849
|
+
}
|
|
850
|
+
var poseidon_1 = poseidon;
|
|
851
|
+
|
|
852
|
+
var unstringify = {};
|
|
853
|
+
|
|
854
|
+
Object.defineProperty(unstringify, "__esModule", {
|
|
855
|
+
value: true
|
|
856
|
+
});
|
|
857
|
+
unstringify.default = unstringifyBigInts;
|
|
858
|
+
function unstringifyBigInts(o) {
|
|
859
|
+
if (Array.isArray(o)) {
|
|
860
|
+
return o.map(unstringifyBigInts);
|
|
861
|
+
} else if (typeof o == 'object') {
|
|
862
|
+
const res = {};
|
|
863
|
+
for (const [key, val] of Object.entries(o)) {
|
|
864
|
+
res[key] = unstringifyBigInts(val);
|
|
865
|
+
}
|
|
866
|
+
return res;
|
|
867
|
+
}
|
|
868
|
+
const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
|
|
869
|
+
const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
|
|
870
|
+
return BigInt(`0x${hex}`);
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
var _2 = {};
|
|
874
|
+
|
|
875
|
+
Object.defineProperty(_2, "__esModule", {
|
|
876
|
+
value: true
|
|
877
|
+
});
|
|
878
|
+
_2.default = void 0;
|
|
879
|
+
var _default = {
|
|
880
|
+
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='],
|
|
881
|
+
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=']]
|
|
882
|
+
};
|
|
883
|
+
_2.default = _default;
|
|
884
|
+
|
|
885
|
+
Object.defineProperty(poseidon2$1, "__esModule", {
|
|
886
|
+
value: true
|
|
887
|
+
});
|
|
888
|
+
var poseidon2_2 = poseidon2$1.poseidon2 = poseidon2;
|
|
889
|
+
var _poseidon = _interopRequireDefault(poseidon_1);
|
|
890
|
+
var _unstringify = _interopRequireDefault(unstringify);
|
|
891
|
+
var _ = _interopRequireDefault(_2);
|
|
892
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
893
|
+
const c = (0, _unstringify.default)(_.default);
|
|
894
|
+
function poseidon2(inputs) {
|
|
895
|
+
return (0, _poseidon.default)(inputs, c);
|
|
896
|
+
}
|
|
11
897
|
|
|
12
898
|
function bytesToBigint(bytes) {
|
|
13
899
|
var hex = "0x";
|
|
@@ -33,7 +919,7 @@ var Identity = /** @class */ (function () {
|
|
|
33
919
|
this._privateKey = privateKey;
|
|
34
920
|
this._secretScalar = deriveSecretScalar(privateKey);
|
|
35
921
|
this._publicKey = derivePublicKey(privateKey);
|
|
36
|
-
this._commitment =
|
|
922
|
+
this._commitment = poseidon2_2(this._publicKey).toString();
|
|
37
923
|
}
|
|
38
924
|
Object.defineProperty(Identity.prototype, "privateKey", {
|
|
39
925
|
/**
|
package/dist/index.node.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module @semaphore-protocol/identity
|
|
3
|
-
* @version 4.0.0-alpha.
|
|
3
|
+
* @version 4.0.0-alpha.3
|
|
4
4
|
* @file A library to create Semaphore identities.
|
|
5
5
|
* @copyright Ethereum Foundation 2024
|
|
6
6
|
* @license MIT
|
|
@@ -11,9 +11,104 @@
|
|
|
11
11
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
12
12
|
|
|
13
13
|
var eddsaPoseidon = require('@zk-kit/eddsa-poseidon');
|
|
14
|
-
var poseidon2 = require('poseidon-lite/poseidon2');
|
|
15
14
|
var node_crypto = require('node:crypto');
|
|
16
15
|
|
|
16
|
+
var poseidon2$1 = {};
|
|
17
|
+
|
|
18
|
+
const F = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
|
|
19
|
+
const N_ROUNDS_F = 8;
|
|
20
|
+
const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
|
|
21
|
+
const pow5 = v => {
|
|
22
|
+
let o = v * v;
|
|
23
|
+
return v * o * o % F;
|
|
24
|
+
};
|
|
25
|
+
function mix(state, M) {
|
|
26
|
+
const out = [];
|
|
27
|
+
for (let x = 0; x < state.length; x++) {
|
|
28
|
+
let o = 0n;
|
|
29
|
+
for (let y = 0; y < state.length; y++) {
|
|
30
|
+
o = o + M[x][y] * state[y];
|
|
31
|
+
}
|
|
32
|
+
out.push(o % F);
|
|
33
|
+
}
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
function poseidon(_inputs, opt) {
|
|
37
|
+
const inputs = _inputs.map(i => BigInt(i));
|
|
38
|
+
if (inputs.length <= 0) {
|
|
39
|
+
throw new Error('poseidon-lite: Not enough inputs');
|
|
40
|
+
}
|
|
41
|
+
if (inputs.length > N_ROUNDS_P.length) {
|
|
42
|
+
throw new Error('poseidon-lite: Too many inputs');
|
|
43
|
+
}
|
|
44
|
+
const t = inputs.length + 1;
|
|
45
|
+
const nRoundsF = N_ROUNDS_F;
|
|
46
|
+
const nRoundsP = N_ROUNDS_P[t - 2];
|
|
47
|
+
const {
|
|
48
|
+
C,
|
|
49
|
+
M
|
|
50
|
+
} = opt;
|
|
51
|
+
if (M.length !== t) {
|
|
52
|
+
throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
|
|
53
|
+
}
|
|
54
|
+
let state = [0n, ...inputs];
|
|
55
|
+
for (let x = 0; x < nRoundsF + nRoundsP; x++) {
|
|
56
|
+
for (let y = 0; y < state.length; y++) {
|
|
57
|
+
state[y] = state[y] + C[x * t + y];
|
|
58
|
+
if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5(state[y]);else if (y === 0) state[y] = pow5(state[y]);
|
|
59
|
+
}
|
|
60
|
+
state = mix(state, M);
|
|
61
|
+
}
|
|
62
|
+
return state[0];
|
|
63
|
+
}
|
|
64
|
+
var poseidon_1 = poseidon;
|
|
65
|
+
|
|
66
|
+
var unstringify = {};
|
|
67
|
+
|
|
68
|
+
Object.defineProperty(unstringify, "__esModule", {
|
|
69
|
+
value: true
|
|
70
|
+
});
|
|
71
|
+
unstringify.default = unstringifyBigInts;
|
|
72
|
+
function unstringifyBigInts(o) {
|
|
73
|
+
if (Array.isArray(o)) {
|
|
74
|
+
return o.map(unstringifyBigInts);
|
|
75
|
+
} else if (typeof o == 'object') {
|
|
76
|
+
const res = {};
|
|
77
|
+
for (const [key, val] of Object.entries(o)) {
|
|
78
|
+
res[key] = unstringifyBigInts(val);
|
|
79
|
+
}
|
|
80
|
+
return res;
|
|
81
|
+
}
|
|
82
|
+
const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
|
|
83
|
+
const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
|
|
84
|
+
return BigInt(`0x${hex}`);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
var _2 = {};
|
|
88
|
+
|
|
89
|
+
Object.defineProperty(_2, "__esModule", {
|
|
90
|
+
value: true
|
|
91
|
+
});
|
|
92
|
+
_2.default = void 0;
|
|
93
|
+
var _default = {
|
|
94
|
+
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='],
|
|
95
|
+
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=']]
|
|
96
|
+
};
|
|
97
|
+
_2.default = _default;
|
|
98
|
+
|
|
99
|
+
Object.defineProperty(poseidon2$1, "__esModule", {
|
|
100
|
+
value: true
|
|
101
|
+
});
|
|
102
|
+
var poseidon2_2 = poseidon2$1.poseidon2 = poseidon2;
|
|
103
|
+
var _poseidon = _interopRequireDefault(poseidon_1);
|
|
104
|
+
var _unstringify = _interopRequireDefault(unstringify);
|
|
105
|
+
var _ = _interopRequireDefault(_2);
|
|
106
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
107
|
+
const c = (0, _unstringify.default)(_.default);
|
|
108
|
+
function poseidon2(inputs) {
|
|
109
|
+
return (0, _poseidon.default)(inputs, c);
|
|
110
|
+
}
|
|
111
|
+
|
|
17
112
|
function randomNumber() {
|
|
18
113
|
var bytes = node_crypto.randomBytes(32);
|
|
19
114
|
var hex = "0x".concat(bytes.toString("hex"));
|
|
@@ -30,7 +125,7 @@ var Identity = /** @class */ (function () {
|
|
|
30
125
|
this._privateKey = privateKey;
|
|
31
126
|
this._secretScalar = eddsaPoseidon.deriveSecretScalar(privateKey);
|
|
32
127
|
this._publicKey = eddsaPoseidon.derivePublicKey(privateKey);
|
|
33
|
-
this._commitment =
|
|
128
|
+
this._commitment = poseidon2_2(this._publicKey).toString();
|
|
34
129
|
}
|
|
35
130
|
Object.defineProperty(Identity.prototype, "privateKey", {
|
|
36
131
|
/**
|
package/dist/index.node.mjs
CHANGED
|
@@ -1,15 +1,110 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module @semaphore-protocol/identity
|
|
3
|
-
* @version 4.0.0-alpha.
|
|
3
|
+
* @version 4.0.0-alpha.3
|
|
4
4
|
* @file A library to create Semaphore identities.
|
|
5
5
|
* @copyright Ethereum Foundation 2024
|
|
6
6
|
* @license MIT
|
|
7
7
|
* @see [Github]{@link https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity}
|
|
8
8
|
*/
|
|
9
9
|
import { signMessage, verifySignature, deriveSecretScalar, derivePublicKey } from '@zk-kit/eddsa-poseidon';
|
|
10
|
-
import { poseidon2 } from 'poseidon-lite/poseidon2';
|
|
11
10
|
import { randomBytes } from 'node:crypto';
|
|
12
11
|
|
|
12
|
+
var poseidon2$1 = {};
|
|
13
|
+
|
|
14
|
+
const F = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
|
|
15
|
+
const N_ROUNDS_F = 8;
|
|
16
|
+
const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
|
|
17
|
+
const pow5 = v => {
|
|
18
|
+
let o = v * v;
|
|
19
|
+
return v * o * o % F;
|
|
20
|
+
};
|
|
21
|
+
function mix(state, M) {
|
|
22
|
+
const out = [];
|
|
23
|
+
for (let x = 0; x < state.length; x++) {
|
|
24
|
+
let o = 0n;
|
|
25
|
+
for (let y = 0; y < state.length; y++) {
|
|
26
|
+
o = o + M[x][y] * state[y];
|
|
27
|
+
}
|
|
28
|
+
out.push(o % F);
|
|
29
|
+
}
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
function poseidon(_inputs, opt) {
|
|
33
|
+
const inputs = _inputs.map(i => BigInt(i));
|
|
34
|
+
if (inputs.length <= 0) {
|
|
35
|
+
throw new Error('poseidon-lite: Not enough inputs');
|
|
36
|
+
}
|
|
37
|
+
if (inputs.length > N_ROUNDS_P.length) {
|
|
38
|
+
throw new Error('poseidon-lite: Too many inputs');
|
|
39
|
+
}
|
|
40
|
+
const t = inputs.length + 1;
|
|
41
|
+
const nRoundsF = N_ROUNDS_F;
|
|
42
|
+
const nRoundsP = N_ROUNDS_P[t - 2];
|
|
43
|
+
const {
|
|
44
|
+
C,
|
|
45
|
+
M
|
|
46
|
+
} = opt;
|
|
47
|
+
if (M.length !== t) {
|
|
48
|
+
throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
|
|
49
|
+
}
|
|
50
|
+
let state = [0n, ...inputs];
|
|
51
|
+
for (let x = 0; x < nRoundsF + nRoundsP; x++) {
|
|
52
|
+
for (let y = 0; y < state.length; y++) {
|
|
53
|
+
state[y] = state[y] + C[x * t + y];
|
|
54
|
+
if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5(state[y]);else if (y === 0) state[y] = pow5(state[y]);
|
|
55
|
+
}
|
|
56
|
+
state = mix(state, M);
|
|
57
|
+
}
|
|
58
|
+
return state[0];
|
|
59
|
+
}
|
|
60
|
+
var poseidon_1 = poseidon;
|
|
61
|
+
|
|
62
|
+
var unstringify = {};
|
|
63
|
+
|
|
64
|
+
Object.defineProperty(unstringify, "__esModule", {
|
|
65
|
+
value: true
|
|
66
|
+
});
|
|
67
|
+
unstringify.default = unstringifyBigInts;
|
|
68
|
+
function unstringifyBigInts(o) {
|
|
69
|
+
if (Array.isArray(o)) {
|
|
70
|
+
return o.map(unstringifyBigInts);
|
|
71
|
+
} else if (typeof o == 'object') {
|
|
72
|
+
const res = {};
|
|
73
|
+
for (const [key, val] of Object.entries(o)) {
|
|
74
|
+
res[key] = unstringifyBigInts(val);
|
|
75
|
+
}
|
|
76
|
+
return res;
|
|
77
|
+
}
|
|
78
|
+
const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
|
|
79
|
+
const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
|
|
80
|
+
return BigInt(`0x${hex}`);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
var _2 = {};
|
|
84
|
+
|
|
85
|
+
Object.defineProperty(_2, "__esModule", {
|
|
86
|
+
value: true
|
|
87
|
+
});
|
|
88
|
+
_2.default = void 0;
|
|
89
|
+
var _default = {
|
|
90
|
+
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='],
|
|
91
|
+
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=']]
|
|
92
|
+
};
|
|
93
|
+
_2.default = _default;
|
|
94
|
+
|
|
95
|
+
Object.defineProperty(poseidon2$1, "__esModule", {
|
|
96
|
+
value: true
|
|
97
|
+
});
|
|
98
|
+
var poseidon2_2 = poseidon2$1.poseidon2 = poseidon2;
|
|
99
|
+
var _poseidon = _interopRequireDefault(poseidon_1);
|
|
100
|
+
var _unstringify = _interopRequireDefault(unstringify);
|
|
101
|
+
var _ = _interopRequireDefault(_2);
|
|
102
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
103
|
+
const c = (0, _unstringify.default)(_.default);
|
|
104
|
+
function poseidon2(inputs) {
|
|
105
|
+
return (0, _poseidon.default)(inputs, c);
|
|
106
|
+
}
|
|
107
|
+
|
|
13
108
|
function randomNumber() {
|
|
14
109
|
var bytes = randomBytes(32);
|
|
15
110
|
var hex = "0x".concat(bytes.toString("hex"));
|
|
@@ -26,7 +121,7 @@ var Identity = /** @class */ (function () {
|
|
|
26
121
|
this._privateKey = privateKey;
|
|
27
122
|
this._secretScalar = deriveSecretScalar(privateKey);
|
|
28
123
|
this._publicKey = derivePublicKey(privateKey);
|
|
29
|
-
this._commitment =
|
|
124
|
+
this._commitment = poseidon2_2(this._publicKey).toString();
|
|
30
125
|
}
|
|
31
126
|
Object.defineProperty(Identity.prototype, "privateKey", {
|
|
32
127
|
/**
|