@semaphore-protocol/identity 4.0.0-beta → 4.0.0-beta.10
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.cjs +2171 -0
- package/dist/index.js +2169 -0
- package/dist/types/index.d.ts +86 -2
- package/package.json +14 -18
- package/src/index.ts +140 -3
- package/dist/index.browser.js +0 -1029
- package/dist/index.node.cjs +0 -233
- package/dist/index.node.js +0 -231
- package/dist/types/bytes-to-bigint.d.ts +0 -1
- package/dist/types/identity.d.ts +0 -81
- package/dist/types/random-number.browser.d.ts +0 -1
- package/dist/types/random-number.node.d.ts +0 -1
- package/src/bytes-to-bigint.ts +0 -9
- package/src/identity.ts +0 -121
- package/src/random-number.browser.ts +0 -8
- package/src/random-number.node.ts +0 -9
package/dist/index.browser.js
DELETED
|
@@ -1,1029 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @semaphore-protocol/identity
|
|
3
|
-
* @version 4.0.0-beta
|
|
4
|
-
* @file A library to create Semaphore identities.
|
|
5
|
-
* @copyright Ethereum Foundation 2024
|
|
6
|
-
* @license MIT
|
|
7
|
-
* @see [Github]{@link https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity}
|
|
8
|
-
*/
|
|
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$1 (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$1(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$1(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$1(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$1(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$1(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$1(blake384);
|
|
705
|
-
var lib = {
|
|
706
|
-
Blake224: blake224,
|
|
707
|
-
Blake256: blake256,
|
|
708
|
-
Blake384: blake384,
|
|
709
|
-
Blake512: blake512
|
|
710
|
-
};
|
|
711
|
-
getDefaultExportFromCjs$1(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
|
-
function getDefaultExportFromCjs (x) {
|
|
803
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
804
|
-
}
|
|
805
|
-
|
|
806
|
-
var poseidon2$1 = {};
|
|
807
|
-
|
|
808
|
-
const F = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
|
|
809
|
-
const N_ROUNDS_F = 8;
|
|
810
|
-
const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
|
|
811
|
-
const pow5 = v => {
|
|
812
|
-
let o = v * v;
|
|
813
|
-
return v * o * o % F;
|
|
814
|
-
};
|
|
815
|
-
function mix(state, M) {
|
|
816
|
-
const out = [];
|
|
817
|
-
for (let x = 0; x < state.length; x++) {
|
|
818
|
-
let o = 0n;
|
|
819
|
-
for (let y = 0; y < state.length; y++) {
|
|
820
|
-
o = o + M[x][y] * state[y];
|
|
821
|
-
}
|
|
822
|
-
out.push(o % F);
|
|
823
|
-
}
|
|
824
|
-
return out;
|
|
825
|
-
}
|
|
826
|
-
function poseidon(_inputs, opt) {
|
|
827
|
-
const inputs = _inputs.map(i => BigInt(i));
|
|
828
|
-
if (inputs.length <= 0) {
|
|
829
|
-
throw new Error('poseidon-lite: Not enough inputs');
|
|
830
|
-
}
|
|
831
|
-
if (inputs.length > N_ROUNDS_P.length) {
|
|
832
|
-
throw new Error('poseidon-lite: Too many inputs');
|
|
833
|
-
}
|
|
834
|
-
const t = inputs.length + 1;
|
|
835
|
-
const nRoundsF = N_ROUNDS_F;
|
|
836
|
-
const nRoundsP = N_ROUNDS_P[t - 2];
|
|
837
|
-
const {
|
|
838
|
-
C,
|
|
839
|
-
M
|
|
840
|
-
} = opt;
|
|
841
|
-
if (M.length !== t) {
|
|
842
|
-
throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
|
|
843
|
-
}
|
|
844
|
-
let state = [0n, ...inputs];
|
|
845
|
-
for (let x = 0; x < nRoundsF + nRoundsP; x++) {
|
|
846
|
-
for (let y = 0; y < state.length; y++) {
|
|
847
|
-
state[y] = state[y] + C[x * t + y];
|
|
848
|
-
if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5(state[y]);else if (y === 0) state[y] = pow5(state[y]);
|
|
849
|
-
}
|
|
850
|
-
state = mix(state, M);
|
|
851
|
-
}
|
|
852
|
-
return state[0];
|
|
853
|
-
}
|
|
854
|
-
var poseidon_1 = poseidon;
|
|
855
|
-
getDefaultExportFromCjs(poseidon_1);
|
|
856
|
-
|
|
857
|
-
var unstringify = {};
|
|
858
|
-
|
|
859
|
-
Object.defineProperty(unstringify, "__esModule", {
|
|
860
|
-
value: true
|
|
861
|
-
});
|
|
862
|
-
unstringify.default = unstringifyBigInts;
|
|
863
|
-
function unstringifyBigInts(o) {
|
|
864
|
-
if (Array.isArray(o)) {
|
|
865
|
-
return o.map(unstringifyBigInts);
|
|
866
|
-
} else if (typeof o == 'object') {
|
|
867
|
-
const res = {};
|
|
868
|
-
for (const [key, val] of Object.entries(o)) {
|
|
869
|
-
res[key] = unstringifyBigInts(val);
|
|
870
|
-
}
|
|
871
|
-
return res;
|
|
872
|
-
}
|
|
873
|
-
const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
|
|
874
|
-
const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
|
|
875
|
-
return BigInt(`0x${hex}`);
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
var _2 = {};
|
|
879
|
-
|
|
880
|
-
Object.defineProperty(_2, "__esModule", {
|
|
881
|
-
value: true
|
|
882
|
-
});
|
|
883
|
-
_2.default = void 0;
|
|
884
|
-
var _default = {
|
|
885
|
-
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='],
|
|
886
|
-
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=']]
|
|
887
|
-
};
|
|
888
|
-
_2.default = _default;
|
|
889
|
-
|
|
890
|
-
Object.defineProperty(poseidon2$1, "__esModule", {
|
|
891
|
-
value: true
|
|
892
|
-
});
|
|
893
|
-
var poseidon2_2 = poseidon2$1.poseidon2 = poseidon2;
|
|
894
|
-
var _poseidon = _interopRequireDefault(poseidon_1);
|
|
895
|
-
var _unstringify = _interopRequireDefault(unstringify);
|
|
896
|
-
var _ = _interopRequireDefault(_2);
|
|
897
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
898
|
-
const c = (0, _unstringify.default)(_.default);
|
|
899
|
-
function poseidon2(inputs) {
|
|
900
|
-
return (0, _poseidon.default)(inputs, c);
|
|
901
|
-
}
|
|
902
|
-
|
|
903
|
-
function bytesToBigint(bytes) {
|
|
904
|
-
var hex = "0x";
|
|
905
|
-
for (var i = 0; i < bytes.length; i += 1) {
|
|
906
|
-
hex += bytes[i].toString(16).padStart(2, "0");
|
|
907
|
-
}
|
|
908
|
-
return BigInt(hex);
|
|
909
|
-
}
|
|
910
|
-
|
|
911
|
-
/* istanbul ignore file */
|
|
912
|
-
function randomNumber() {
|
|
913
|
-
var bytes = crypto.getRandomValues(new Uint8Array(32));
|
|
914
|
-
return bytesToBigint(bytes);
|
|
915
|
-
}
|
|
916
|
-
|
|
917
|
-
/**
|
|
918
|
-
* The Semaphore identity is essentially an {@link https://www.rfc-editor.org/rfc/rfc8032 | EdDSA}
|
|
919
|
-
* public/private key pair. The {@link https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/eddsa-poseidon | EdDSA implementation}
|
|
920
|
-
* in this library uses {@link https://eips.ethereum.org/EIPS/eip-2494 | Baby Jubjub} for public key generation
|
|
921
|
-
* and {@link https://www.poseidon-hash.info | Poseidon} for signatures.
|
|
922
|
-
* In addition, the commitment, i.e. the hash of the public key, is used to represent
|
|
923
|
-
* Semaphore identities in groups, adding an additional layer of privacy and security.
|
|
924
|
-
*/
|
|
925
|
-
var Identity = /** @class */ (function () {
|
|
926
|
-
/**
|
|
927
|
-
* Initializes the class attributes based on a given private key.
|
|
928
|
-
* If the private key is not passed as a parameter, a random key is generated.
|
|
929
|
-
* The constructor calculates the secret scalar and public key from the private key,
|
|
930
|
-
* and computes a commitment of the public key using a hash function (Poseidon).
|
|
931
|
-
*
|
|
932
|
-
* @example
|
|
933
|
-
* // Generates an identity.
|
|
934
|
-
* const { privateKey, publicKey, commitment } = new Identity("private-key")
|
|
935
|
-
* @example
|
|
936
|
-
* // Generates an identity with a random private key.
|
|
937
|
-
* const { privateKey, publicKey, commitment } = new Identity()
|
|
938
|
-
*
|
|
939
|
-
* @param privateKey The private key used to derive the public key.
|
|
940
|
-
*/
|
|
941
|
-
function Identity(privateKey) {
|
|
942
|
-
if (privateKey === void 0) { privateKey = randomNumber().toString(); }
|
|
943
|
-
this._privateKey = privateKey;
|
|
944
|
-
this._secretScalar = deriveSecretScalar(privateKey);
|
|
945
|
-
this._publicKey = derivePublicKey(privateKey);
|
|
946
|
-
this._commitment = poseidon2_2(this._publicKey).toString();
|
|
947
|
-
}
|
|
948
|
-
Object.defineProperty(Identity.prototype, "privateKey", {
|
|
949
|
-
/**
|
|
950
|
-
* Returns the private key.
|
|
951
|
-
* @returns The private key as a {@link https://zkkit.pse.dev/types/_zk_kit_utils.BigNumberish.html | BigNumberish}.
|
|
952
|
-
*/
|
|
953
|
-
get: function () {
|
|
954
|
-
return this._privateKey;
|
|
955
|
-
},
|
|
956
|
-
enumerable: false,
|
|
957
|
-
configurable: true
|
|
958
|
-
});
|
|
959
|
-
Object.defineProperty(Identity.prototype, "secretScalar", {
|
|
960
|
-
/**
|
|
961
|
-
* Returns the secret scalar.
|
|
962
|
-
* @returns The secret scalar as a string.
|
|
963
|
-
*/
|
|
964
|
-
get: function () {
|
|
965
|
-
return this._secretScalar;
|
|
966
|
-
},
|
|
967
|
-
enumerable: false,
|
|
968
|
-
configurable: true
|
|
969
|
-
});
|
|
970
|
-
Object.defineProperty(Identity.prototype, "publicKey", {
|
|
971
|
-
/**
|
|
972
|
-
* Returns the public key as a Baby Jubjub {@link https://zkkit.pse.dev/types/_zk_kit_baby_jubjub.Point.html | Point}.
|
|
973
|
-
* @returns The public key as a point.
|
|
974
|
-
*/
|
|
975
|
-
get: function () {
|
|
976
|
-
return this._publicKey;
|
|
977
|
-
},
|
|
978
|
-
enumerable: false,
|
|
979
|
-
configurable: true
|
|
980
|
-
});
|
|
981
|
-
Object.defineProperty(Identity.prototype, "commitment", {
|
|
982
|
-
/**
|
|
983
|
-
* Returns the commitment hash of the public key.
|
|
984
|
-
* @returns The commitment as a string.
|
|
985
|
-
*/
|
|
986
|
-
get: function () {
|
|
987
|
-
return this._commitment;
|
|
988
|
-
},
|
|
989
|
-
enumerable: false,
|
|
990
|
-
configurable: true
|
|
991
|
-
});
|
|
992
|
-
/**
|
|
993
|
-
* Generates a signature for a given message using the private key.
|
|
994
|
-
* This method demonstrates how to sign a message and could be used
|
|
995
|
-
* for authentication or data integrity.
|
|
996
|
-
*
|
|
997
|
-
* @example
|
|
998
|
-
* const identity = new Identity()
|
|
999
|
-
* const signature = identity.signMessage("message")
|
|
1000
|
-
*
|
|
1001
|
-
* @param message The message to be signed.
|
|
1002
|
-
* @returns A {@link https://zkkit.pse.dev/types/_zk_kit_eddsa_poseidon.Signature.html | Signature} object containing the signature components.
|
|
1003
|
-
*/
|
|
1004
|
-
Identity.prototype.signMessage = function (message) {
|
|
1005
|
-
return signMessage(this.privateKey, message);
|
|
1006
|
-
};
|
|
1007
|
-
/**
|
|
1008
|
-
* Verifies a signature against a given message and public key.
|
|
1009
|
-
* This static method allows for the verification of signatures without needing
|
|
1010
|
-
* an instance of the Identity class. It's useful for cases where you only have
|
|
1011
|
-
* the public key, the message and a signature, and need to verify if they match.
|
|
1012
|
-
*
|
|
1013
|
-
* @example
|
|
1014
|
-
* const identity = new Identity()
|
|
1015
|
-
* const signature = identity.signMessage("message")
|
|
1016
|
-
* Identity.verifySignature("message", signature, identity.publicKey)
|
|
1017
|
-
*
|
|
1018
|
-
* @param message The message that was signed.
|
|
1019
|
-
* @param signature The signature to verify.
|
|
1020
|
-
* @param publicKey The public key to use for verification.
|
|
1021
|
-
* @returns A boolean indicating whether the signature is valid.
|
|
1022
|
-
*/
|
|
1023
|
-
Identity.verifySignature = function (message, signature, publicKey) {
|
|
1024
|
-
return verifySignature(message, signature, publicKey);
|
|
1025
|
-
};
|
|
1026
|
-
return Identity;
|
|
1027
|
-
}());
|
|
1028
|
-
|
|
1029
|
-
export { Identity };
|