zkjson 0.6.3 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/circomlibjs.js +149 -0
- package/cjs/collection.js +196 -0
- package/cjs/db.js +731 -0
- package/cjs/doc.js +132 -0
- package/cjs/encoder-v1_5.js +1731 -0
- package/cjs/encoder.js +668 -0
- package/cjs/index.js +64 -0
- package/cjs/json.js +54 -0
- package/cjs/nft.js +165 -0
- package/cjs/parse.js +256 -0
- package/cjs/uint.js +580 -0
- package/{circomlibjs.js → esm/circomlibjs.js} +27 -35
- package/{collection.js → esm/collection.js} +4 -6
- package/{contracts → esm/contracts}/ZKIPFS.sol +3 -3
- package/esm/contracts/verifiers/verifier_ipfs.sol +667 -0
- package/{db.js → esm/db.js} +8 -10
- package/{doc.js → esm/doc.js} +7 -7
- package/{encoder-v1_5.js → esm/encoder-v1_5.js} +3 -3
- package/{encoder.js → esm/encoder.js} +2 -2
- package/esm/index.js +7 -0
- package/{json.js → esm/json.js} +2 -2
- package/{nft.js → esm/nft.js} +8 -10
- package/esm/package.json +3 -0
- package/{parse.js → esm/parse.js} +4 -4
- package/{uint.js → esm/uint.js} +1 -1
- package/package.json +21 -5
- package/contracts/verifiers/verifier_ipfs.sol +0 -464
- package/index.js +0 -6
- /package/{contracts → esm/contracts}/NORollup.sol +0 -0
- /package/{contracts → esm/contracts}/OPRollup.sol +0 -0
- /package/{contracts → esm/contracts}/ZKJson.sol +0 -0
- /package/{contracts → esm/contracts}/ZKQuery.sol +0 -0
- /package/{contracts → esm/contracts}/ZKRollup.sol +0 -0
- /package/{contracts → esm/contracts}/apps/SimpleJSON.sol +0 -0
- /package/{contracts → esm/contracts}/apps/SimpleOPRU.sol +0 -0
- /package/{contracts → esm/contracts}/apps/SimpleRU.sol +0 -0
- /package/{contracts → esm/contracts}/apps/Token.sol +0 -0
- /package/{contracts → esm/contracts}/apps/ZKArweave.sol +0 -0
- /package/{contracts → esm/contracts}/apps/ZKBridge.sol +0 -0
- /package/{contracts → esm/contracts}/apps/ZKNFT.sol +0 -0
- /package/{contracts → esm/contracts}/verifiers/verifier_db.sol +0 -0
- /package/{contracts → esm/contracts}/verifiers/verifier_json.sol +0 -0
- /package/{contracts → esm/contracts}/verifiers/verifier_rollup.sol +0 -0
package/cjs/uint.js
ADDED
@@ -0,0 +1,580 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.arr = arr;
|
7
|
+
exports.arrGet = arrGet;
|
8
|
+
exports.arrPush = arrPush;
|
9
|
+
exports.bn = bn;
|
10
|
+
exports.concat = concat;
|
11
|
+
exports.digits = digits;
|
12
|
+
exports.get = get;
|
13
|
+
exports.insert = insert;
|
14
|
+
exports.last = last;
|
15
|
+
exports.length = length;
|
16
|
+
exports.mul = mul;
|
17
|
+
exports.next = next;
|
18
|
+
exports.pop = pop;
|
19
|
+
exports.popArray = popArray;
|
20
|
+
exports.push = push;
|
21
|
+
exports.pushArray = pushArray;
|
22
|
+
exports.remove = remove;
|
23
|
+
exports.replace = replace;
|
24
|
+
exports.shift = shift;
|
25
|
+
exports.slice = slice;
|
26
|
+
exports.str = str;
|
27
|
+
exports.sum = sum;
|
28
|
+
exports.toArray = toArray;
|
29
|
+
exports.unshift = unshift;
|
30
|
+
function digits(x) {
|
31
|
+
if (x == 0) return 1n;
|
32
|
+
var p = 0n;
|
33
|
+
while (x > 0) {
|
34
|
+
x = x / 10n >> 0n;
|
35
|
+
p++;
|
36
|
+
}
|
37
|
+
return p;
|
38
|
+
}
|
39
|
+
function arr(row) {
|
40
|
+
var _arr = [];
|
41
|
+
for (var i = 0; i < row; i++) {
|
42
|
+
_arr.push(0n);
|
43
|
+
}
|
44
|
+
return _arr;
|
45
|
+
}
|
46
|
+
function toArray(json, size) {
|
47
|
+
json = bn(json);
|
48
|
+
var j = [];
|
49
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
50
|
+
while (c[5] == 0) {
|
51
|
+
c = next(json, c);
|
52
|
+
j.push(c[0]);
|
53
|
+
}
|
54
|
+
return j.map(function (n) {
|
55
|
+
return Number(n);
|
56
|
+
});
|
57
|
+
}
|
58
|
+
function arrPush(json, size, digit, index, val) {
|
59
|
+
json = bn(json);
|
60
|
+
index = bn(index);
|
61
|
+
var len = get(json, size, 0);
|
62
|
+
var _sum = sum(json, size, digit, 1, index + 2n);
|
63
|
+
var at = _sum + 1n + len;
|
64
|
+
json = insert(json, size, digit, at, val);
|
65
|
+
var alen = get(json, size, index + 1n);
|
66
|
+
json = replace(json, size, digit, index + 1n, alen + 1n);
|
67
|
+
return json;
|
68
|
+
}
|
69
|
+
function arrGet(json, size, digit, index, index2) {
|
70
|
+
json = bn(json);
|
71
|
+
index = bn(index);
|
72
|
+
index2 = bn(index2);
|
73
|
+
var len = get(json, size, 0);
|
74
|
+
var _sum = sum(json, size, digit, 1, index + 1n);
|
75
|
+
var at = _sum + 1n + len + index2;
|
76
|
+
return get(json, size, at);
|
77
|
+
}
|
78
|
+
function pushArray(json, size, digit, _arr, asize) {
|
79
|
+
json = bn(json);
|
80
|
+
var jlen = length(json, size);
|
81
|
+
var alen = 0n;
|
82
|
+
if (jlen == 0) {
|
83
|
+
json = push(json, size, digit, 1);
|
84
|
+
} else {
|
85
|
+
alen = get(json, size, 0);
|
86
|
+
json = replace(json, size, digit, 0, alen + 1n);
|
87
|
+
}
|
88
|
+
var len = length(_arr, size);
|
89
|
+
json = insert(json, size, digit, alen + 1n, len);
|
90
|
+
var c = bn([0, asize, 0, 0, 0, 0, 0, 0, 0]);
|
91
|
+
while (c[5] == 0) {
|
92
|
+
c = next(_arr, c);
|
93
|
+
json = push(json, size, digit, c[0]);
|
94
|
+
}
|
95
|
+
return json;
|
96
|
+
}
|
97
|
+
function popArray(json, size, digit) {
|
98
|
+
json = bn(json);
|
99
|
+
var jlen = length(json, size);
|
100
|
+
var alen = 0n;
|
101
|
+
if (jlen == 0) {
|
102
|
+
throw Error();
|
103
|
+
} else {
|
104
|
+
alen = get(json, size, 0);
|
105
|
+
}
|
106
|
+
if (alen == 1) return arr(size);
|
107
|
+
var len = get(json, size, alen);
|
108
|
+
json = replace(json, size, digit, 0, alen - 1n);
|
109
|
+
var _sum = sum(json, size, digit, 1, alen);
|
110
|
+
var start = alen + 1n + _sum;
|
111
|
+
var end = start + len + 1n;
|
112
|
+
json = remove(json, size, digit, start, end);
|
113
|
+
json = remove(json, size, digit, alen, alen + 1n);
|
114
|
+
return json;
|
115
|
+
}
|
116
|
+
function length(json, size) {
|
117
|
+
json = bn(json);
|
118
|
+
var _len = 0n;
|
119
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
120
|
+
while (c[5] == 0) {
|
121
|
+
c = next(json, c);
|
122
|
+
_len++;
|
123
|
+
}
|
124
|
+
if (json[0] != 0) {
|
125
|
+
return _len;
|
126
|
+
} else {
|
127
|
+
return 0;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
function sum(json, size, digit, start, end) {
|
131
|
+
json = bn(json);
|
132
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
133
|
+
var _sum = 0n;
|
134
|
+
var i = 0;
|
135
|
+
while (c[5] == 0) {
|
136
|
+
c = next(json, c);
|
137
|
+
if (i >= start && i < end) _sum += c[0];
|
138
|
+
i++;
|
139
|
+
}
|
140
|
+
return _sum;
|
141
|
+
}
|
142
|
+
function mul(json, size, digit, start, end) {
|
143
|
+
json = bn(json);
|
144
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
145
|
+
var _mul = 0;
|
146
|
+
var i = 0;
|
147
|
+
while (c[5] == 0) {
|
148
|
+
c = next(json, c);
|
149
|
+
if (i >= start && i < end) _mul *= c[0];
|
150
|
+
i++;
|
151
|
+
}
|
152
|
+
return _mul;
|
153
|
+
}
|
154
|
+
function remove(json, size, digit, start, end) {
|
155
|
+
json = bn(json);
|
156
|
+
var _arr = arr(size);
|
157
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
158
|
+
var i = 0;
|
159
|
+
while (c[5] == 0) {
|
160
|
+
c = next(json, c);
|
161
|
+
if (i < start || i >= end) {
|
162
|
+
_arr = push(_arr, size, digit, c[0]);
|
163
|
+
}
|
164
|
+
i++;
|
165
|
+
}
|
166
|
+
return _arr;
|
167
|
+
}
|
168
|
+
function slice(json, size, digit, start, end) {
|
169
|
+
json = bn(json);
|
170
|
+
var _arr = arr(size);
|
171
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
172
|
+
var i = 0;
|
173
|
+
while (c[5] == 0) {
|
174
|
+
c = next(json, c);
|
175
|
+
if (i >= start && i < end) _arr = push(_arr, size, digit, c[0]);
|
176
|
+
i++;
|
177
|
+
}
|
178
|
+
return _arr;
|
179
|
+
}
|
180
|
+
function get(json, size, index) {
|
181
|
+
json = bn(json);
|
182
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
183
|
+
var i = 0;
|
184
|
+
while (c[5] == 0) {
|
185
|
+
c = next(json, c);
|
186
|
+
if (i == index) return c[0];
|
187
|
+
i++;
|
188
|
+
}
|
189
|
+
throw Error();
|
190
|
+
}
|
191
|
+
function insert(json, size, digit, at, val) {
|
192
|
+
json = bn(json);
|
193
|
+
var _arr = arr(size);
|
194
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
195
|
+
var i = 0;
|
196
|
+
if (at == 0) {
|
197
|
+
_arr = push(_arr, size, digit, val);
|
198
|
+
}
|
199
|
+
while (c[5] == 0) {
|
200
|
+
c = next(json, c);
|
201
|
+
_arr = push(_arr, size, digit, c[0]);
|
202
|
+
i++;
|
203
|
+
if (at == i) _arr = push(_arr, size, digit, val);
|
204
|
+
}
|
205
|
+
return _arr;
|
206
|
+
}
|
207
|
+
function replace(json, size, digit, at, val) {
|
208
|
+
json = bn(json);
|
209
|
+
var _arr = arr(size);
|
210
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
211
|
+
var i = 0;
|
212
|
+
while (c[5] == 0) {
|
213
|
+
c = next(json, c);
|
214
|
+
if (at == i) {
|
215
|
+
_arr = push(_arr, size, digit, val);
|
216
|
+
} else {
|
217
|
+
_arr = push(_arr, size, digit, c[0]);
|
218
|
+
}
|
219
|
+
i++;
|
220
|
+
}
|
221
|
+
return _arr;
|
222
|
+
}
|
223
|
+
function last(json, size) {
|
224
|
+
json = bn(json);
|
225
|
+
var val = 0;
|
226
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
227
|
+
while (c[5] == 0) {
|
228
|
+
c = next(json, c);
|
229
|
+
val = c[0];
|
230
|
+
}
|
231
|
+
return val;
|
232
|
+
}
|
233
|
+
function lastRow(json, size) {
|
234
|
+
json = bn(json);
|
235
|
+
var v = 0;
|
236
|
+
for (var j = 0; j < size; j++) {
|
237
|
+
if (json[j] != 0) v = j;
|
238
|
+
}
|
239
|
+
return v;
|
240
|
+
}
|
241
|
+
function shift(json, size, digit) {
|
242
|
+
json = bn(json);
|
243
|
+
var _arr = arr(size);
|
244
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
245
|
+
var i = 0;
|
246
|
+
while (c[5] == 0) {
|
247
|
+
c = next(json, c);
|
248
|
+
if (i > 0) _arr = push(_arr, size, digit, c[0]);
|
249
|
+
i++;
|
250
|
+
}
|
251
|
+
return _arr;
|
252
|
+
}
|
253
|
+
function unshift(json, size, digit, num) {
|
254
|
+
json = bn(json);
|
255
|
+
var _arr = arr(size);
|
256
|
+
_arr = push(_arr, size, digit, num);
|
257
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
258
|
+
var i = 0;
|
259
|
+
if (json[0] != 0) {
|
260
|
+
while (c[5] == 0) {
|
261
|
+
c = next(json, c);
|
262
|
+
_arr = push(_arr, size, digit, c[0]);
|
263
|
+
i++;
|
264
|
+
}
|
265
|
+
}
|
266
|
+
return _arr;
|
267
|
+
}
|
268
|
+
function concat(json, json2, size, digit) {
|
269
|
+
json = bn(json);
|
270
|
+
var c = bn([0, size, 0, 0, 0, 0, 0, 0, 0]);
|
271
|
+
var i = 0;
|
272
|
+
if (json2[0] != 0) {
|
273
|
+
while (c[5] == 0) {
|
274
|
+
c = next(json2, c);
|
275
|
+
json = push(json, size, digit, c[0]);
|
276
|
+
i++;
|
277
|
+
}
|
278
|
+
}
|
279
|
+
return json;
|
280
|
+
}
|
281
|
+
function pop(json, size) {
|
282
|
+
var overflow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 8;
|
283
|
+
json = bn(json);
|
284
|
+
overflow = bn(overflow);
|
285
|
+
var l = 0n;
|
286
|
+
var ll = 0n;
|
287
|
+
var lnum = 0n;
|
288
|
+
var series = 0n;
|
289
|
+
var snum = 0n;
|
290
|
+
var link = 0n;
|
291
|
+
var _l = 0n;
|
292
|
+
var _d = 0n;
|
293
|
+
for (var l2 = 0n; l2 < size; l2++) {
|
294
|
+
if (json[l2] != 0) {
|
295
|
+
_l = l2;
|
296
|
+
var x = json[l2];
|
297
|
+
var d = digits(x);
|
298
|
+
var p = d;
|
299
|
+
var on = 0n;
|
300
|
+
var i = 0n;
|
301
|
+
while (x > 0) {
|
302
|
+
var n = x / Math.pow(10n, p - 1n) >> 0n;
|
303
|
+
x -= Math.pow(10n, p - 1n) * n;
|
304
|
+
p--;
|
305
|
+
i++;
|
306
|
+
if (on == 0) {
|
307
|
+
on = 1n;
|
308
|
+
} else {
|
309
|
+
var len = n;
|
310
|
+
if (link == 0) {
|
311
|
+
ll = i - 1n;
|
312
|
+
l = l2;
|
313
|
+
_d = d;
|
314
|
+
}
|
315
|
+
lnum = len;
|
316
|
+
snum = 0n;
|
317
|
+
if (len == 0) {
|
318
|
+
var n = x / Math.pow(10n, p - 1n) >> 0n;
|
319
|
+
var len2 = x / Math.pow(10n, p - 1n) >> 0n;
|
320
|
+
series = len2;
|
321
|
+
x -= Math.pow(10n, p - 1n) * n;
|
322
|
+
p--;
|
323
|
+
i++;
|
324
|
+
for (var i2 = 0n; i2 < len2; i2++) {
|
325
|
+
var n = x / Math.pow(10n, p - 1n) >> 0n;
|
326
|
+
snum = snum * 10n + n;
|
327
|
+
x -= Math.pow(10n, p - 1n) * n;
|
328
|
+
p--;
|
329
|
+
i++;
|
330
|
+
}
|
331
|
+
} else {
|
332
|
+
var _len = len;
|
333
|
+
if (len == overflow + 1n) {
|
334
|
+
link = 2n;
|
335
|
+
_len = overflow;
|
336
|
+
} else if (link > 0) {
|
337
|
+
link--;
|
338
|
+
}
|
339
|
+
series = 0n;
|
340
|
+
for (var i2 = 0n; i2 < _len; i2++) {
|
341
|
+
var n = x / Math.pow(10n, p - 1n) >> 0n;
|
342
|
+
x -= Math.pow(10n, p - 1n) * n;
|
343
|
+
p--;
|
344
|
+
i++;
|
345
|
+
}
|
346
|
+
}
|
347
|
+
}
|
348
|
+
}
|
349
|
+
}
|
350
|
+
}
|
351
|
+
if (link == 1) {
|
352
|
+
for (var i = l + 1n; i <= _l; i++) {
|
353
|
+
json[i] = 0n;
|
354
|
+
}
|
355
|
+
if (ll < 2) {
|
356
|
+
json[l] = 0n;
|
357
|
+
} else {
|
358
|
+
json[l] = json[l] / Math.pow(10n, _d - ll) >> 0n;
|
359
|
+
}
|
360
|
+
} else if (series != 0) {
|
361
|
+
if (series == 3) {
|
362
|
+
json[l] = json[l] / Math.pow(10n, _d - ll) >> 0n;
|
363
|
+
json[l] = json[l] * 10n + 1n;
|
364
|
+
var n = snum / Math.pow(10n, 2n) >> 0n;
|
365
|
+
json[l] = json[l] * 10n + n;
|
366
|
+
json[l] = json[l] * 10n + 1n;
|
367
|
+
var n2 = (snum / 10n >> 0n) - n * 10n;
|
368
|
+
json[l] = json[l] * 10n + n2;
|
369
|
+
} else {
|
370
|
+
json[l] = json[l] / Math.pow(10n, _d - ll - 1n) >> 0n;
|
371
|
+
json[l] = json[l] * 10n + (series - 1n);
|
372
|
+
snum = snum / 10n >> 0n;
|
373
|
+
json[l] = json[l] * Math.pow(10n, series - 1n) + snum;
|
374
|
+
}
|
375
|
+
} else if (ll < 2) {
|
376
|
+
json[l] = 0n;
|
377
|
+
} else {
|
378
|
+
json[l] = json[l] / Math.pow(10n, d - ll) >> 0n;
|
379
|
+
}
|
380
|
+
return json;
|
381
|
+
}
|
382
|
+
function push(json, size, digit, c) {
|
383
|
+
var overflow = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 8;
|
384
|
+
overflow = bn(overflow);
|
385
|
+
json = bn(json);
|
386
|
+
c = bn(c);
|
387
|
+
var i4 = 0n;
|
388
|
+
for (var i = i4; i < size; i++) {
|
389
|
+
if (json[i] != 0) i4 = i;
|
390
|
+
}
|
391
|
+
var init = 0n;
|
392
|
+
while (c > 0 || init == 0) {
|
393
|
+
init = 1;
|
394
|
+
var len = digits(c);
|
395
|
+
var _len = len;
|
396
|
+
var _len2 = len;
|
397
|
+
var _c = c;
|
398
|
+
if (overflow < len) {
|
399
|
+
_len = overflow;
|
400
|
+
_len2 = overflow + 1n;
|
401
|
+
_c = c / Math.pow(10n, len - overflow) >> 0n;
|
402
|
+
c -= _c * Math.pow(10n, len - overflow);
|
403
|
+
} else {
|
404
|
+
c = 0n;
|
405
|
+
}
|
406
|
+
var appended = 0;
|
407
|
+
for (var i = i4; i < size; i++) {
|
408
|
+
var d = digits(json[i]);
|
409
|
+
var one = 0n;
|
410
|
+
var ones = 0n;
|
411
|
+
var nums = 0n;
|
412
|
+
if (_len == 1 && digit > d) {
|
413
|
+
var x = json[i] - Math.pow(10n, d - 1n);
|
414
|
+
var i2 = 1n;
|
415
|
+
while (i2 < d) {
|
416
|
+
var len = 0n;
|
417
|
+
len = x / Math.pow(10n, d - i2 - 1n) >> 0n;
|
418
|
+
x = x - len * Math.pow(10n, d - i2 - 1n);
|
419
|
+
if (len == 1) {
|
420
|
+
if (ones == 0) one = i2;
|
421
|
+
ones++;
|
422
|
+
} else if (len != 0) {
|
423
|
+
ones = 0n;
|
424
|
+
nums = 0n;
|
425
|
+
} else {
|
426
|
+
one = i2;
|
427
|
+
}
|
428
|
+
i2++;
|
429
|
+
if (len == 0) {
|
430
|
+
var len3 = x / Math.pow(10n, d - i2 - 1n) >> 0n;
|
431
|
+
x = x - len3 * Math.pow(10n, d - i2 - 1n);
|
432
|
+
i2++;
|
433
|
+
ones = len3;
|
434
|
+
for (var i3 = 0n; i3 < len3; i3++) {
|
435
|
+
var len2 = x / Math.pow(10n, d - i2 - 1n) >> 0n;
|
436
|
+
x = x - len2 * Math.pow(10n, d - i2 - 1n);
|
437
|
+
nums = nums * 10n + len2;
|
438
|
+
i2++;
|
439
|
+
}
|
440
|
+
} else {
|
441
|
+
for (var i3 = 0n; i3 < len; i3++) {
|
442
|
+
var len2 = x / Math.pow(10n, d - i2 - 1n) >> 0n;
|
443
|
+
x = x - len2 * Math.pow(10n, d - i2 - 1n);
|
444
|
+
if (len == 1) nums = nums * 10n + len2;
|
445
|
+
i2++;
|
446
|
+
}
|
447
|
+
}
|
448
|
+
}
|
449
|
+
if (ones == 2) nums = nums * 10n + _c;
|
450
|
+
}
|
451
|
+
if (ones > 2 && ones < 9) {
|
452
|
+
var x = json[i] / Math.pow(10n, d - one - 1n) >> 0n;
|
453
|
+
x = x * 10n + ones + 1n;
|
454
|
+
x = x * Math.pow(10n, ones) + nums;
|
455
|
+
x = x * 10n + _c;
|
456
|
+
json[i] = x;
|
457
|
+
i4 = i;
|
458
|
+
appended = 1;
|
459
|
+
} else if (ones == 2) {
|
460
|
+
var x = json[i] / Math.pow(10n, d - one) >> 0n;
|
461
|
+
x = x * 10n + 0n;
|
462
|
+
x = x * 10n + ones + 1n;
|
463
|
+
x = x * Math.pow(10n, ones + 1n) + nums;
|
464
|
+
json[i] = x;
|
465
|
+
i4 = i;
|
466
|
+
appended = 1;
|
467
|
+
} else if (digit > d + _len && appended == 0) {
|
468
|
+
if (json[i] == 0) json[i] = 1n;
|
469
|
+
json[i] = json[i] * 10n + _len2;
|
470
|
+
json[i] = json[i] * Math.pow(10n, _len) + _c;
|
471
|
+
i4 = i;
|
472
|
+
appended = 1;
|
473
|
+
}
|
474
|
+
}
|
475
|
+
}
|
476
|
+
return json;
|
477
|
+
}
|
478
|
+
function str(arr) {
|
479
|
+
return arr.map(function (n) {
|
480
|
+
return n.toString();
|
481
|
+
});
|
482
|
+
}
|
483
|
+
function bn(arr) {
|
484
|
+
if (typeof arr == "number") return BigInt(arr);
|
485
|
+
if (!Array.isArray(arr)) return arr;
|
486
|
+
return arr.map(function (n) {
|
487
|
+
return typeof n != "number" ? n : BigInt(n);
|
488
|
+
});
|
489
|
+
}
|
490
|
+
function next(json, c) {
|
491
|
+
json = bn(json);
|
492
|
+
c = bn(c);
|
493
|
+
if (c[5] == 1) {
|
494
|
+
return bn([0, c[1], 0, 0, 0, 1, c[6], c[7], c[8]]);
|
495
|
+
}
|
496
|
+
var prev = 0n;
|
497
|
+
for (var j = c[2]; j < c[1]; j++) {
|
498
|
+
var d = digits(json[j]);
|
499
|
+
if (json[j] > 0) {
|
500
|
+
var p = c[4] == 0 ? digits(json[j]) : c[4];
|
501
|
+
var x = c[4] == 0 ? json[j] : c[3];
|
502
|
+
var cur = 0n;
|
503
|
+
var num = 0n;
|
504
|
+
var on = c[4] == 0 ? 0n : c[7];
|
505
|
+
var len = c[4] == 0 ? 0n : c[8];
|
506
|
+
while (p > 0) {
|
507
|
+
var n = x / Math.pow(10n, p - 1n) >> 0n;
|
508
|
+
if (on == 0) {
|
509
|
+
on = 1n;
|
510
|
+
} else if (on == 1) {
|
511
|
+
if (n == 0) {
|
512
|
+
on = 4n;
|
513
|
+
} else {
|
514
|
+
if (n == 9) {
|
515
|
+
len = 8n;
|
516
|
+
on = 3n;
|
517
|
+
} else {
|
518
|
+
on = 2n;
|
519
|
+
len = n;
|
520
|
+
}
|
521
|
+
cur = 0n;
|
522
|
+
}
|
523
|
+
} else if (on == 4) {
|
524
|
+
on = 5n;
|
525
|
+
len = n;
|
526
|
+
} else {
|
527
|
+
num += n * Math.pow(10n, len - cur - 1n);
|
528
|
+
cur++;
|
529
|
+
if (on == 5) {
|
530
|
+
num = n;
|
531
|
+
len--;
|
532
|
+
x -= Math.pow(10n, p - 1n) * n;
|
533
|
+
p--;
|
534
|
+
var done = 0n;
|
535
|
+
if (p == 0) {
|
536
|
+
j++;
|
537
|
+
if (c[1] == j || json[j] == 0) {
|
538
|
+
x = 0n;
|
539
|
+
done = 1n;
|
540
|
+
} else {
|
541
|
+
x = json[j];
|
542
|
+
}
|
543
|
+
}
|
544
|
+
if (len == 0) on = 1n;
|
545
|
+
return bn([num, c[1], j, x, p, done, c[6], on, len]);
|
546
|
+
} else if (cur == len) {
|
547
|
+
prev *= Math.pow(10n, len);
|
548
|
+
if (on == 3) {
|
549
|
+
prev += num;
|
550
|
+
} else {
|
551
|
+
num += prev;
|
552
|
+
x -= Math.pow(10n, p - 1n) * n;
|
553
|
+
p--;
|
554
|
+
var done = 0n;
|
555
|
+
if (p == 0) {
|
556
|
+
j++;
|
557
|
+
if (c[1] == j || json[j] == 0) {
|
558
|
+
x = 0n;
|
559
|
+
done = 1n;
|
560
|
+
} else {
|
561
|
+
x = json[j];
|
562
|
+
}
|
563
|
+
}
|
564
|
+
return bn([num, c[1], j, x, p, done, c[6], 1, len]);
|
565
|
+
}
|
566
|
+
cur = 0n;
|
567
|
+
on = 1n;
|
568
|
+
len = 0n;
|
569
|
+
num = 0n;
|
570
|
+
}
|
571
|
+
}
|
572
|
+
x -= Math.pow(10n, p - 1n) * n;
|
573
|
+
p--;
|
574
|
+
}
|
575
|
+
} else {
|
576
|
+
return bn([0, c[1], 0, 0, 0, 1, c[6], 0, 0]);
|
577
|
+
}
|
578
|
+
}
|
579
|
+
return bn([0, c[1], 0, 0, 0, 1, c[6], 0, 0]);
|
580
|
+
}
|
@@ -1,21 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
var ethers = require("ethers")
|
9
|
-
var assert = require("assert")
|
10
|
-
|
11
|
-
function _interopDefaultLegacy(e) {
|
12
|
-
return e && typeof e === "object" && "default" in e ? e : { default: e }
|
13
|
-
}
|
14
|
-
|
15
|
-
var blake2b__default = /*#__PURE__*/ _interopDefaultLegacy(blake2b)
|
16
|
-
var createBlakeHash__default =
|
17
|
-
/*#__PURE__*/ _interopDefaultLegacy(createBlakeHash)
|
18
|
-
var assert__default = /*#__PURE__*/ _interopDefaultLegacy(assert)
|
1
|
+
import { splitEvery } from "ramda"
|
2
|
+
import * as ffjavascript from "ffjavascript"
|
3
|
+
import blake2b from "blake2b"
|
4
|
+
import createBlakeHash from "blake-hash"
|
5
|
+
import * as ethers from "ethers"
|
6
|
+
import * as assert from "assert"
|
7
|
+
const assert__default = assert
|
19
8
|
|
20
9
|
async function buildBabyJub() {
|
21
10
|
const bn128 = await ffjavascript.getCurveFromName("bn128", true)
|
@@ -40546,20 +40535,23 @@ const mimc7Contract = _mimc7Contract
|
|
40546
40535
|
const mimcSpongecontract = _mimcSpongeContract
|
40547
40536
|
const poseidonContract = _poseidonContract
|
40548
40537
|
|
40549
|
-
exports
|
40550
|
-
|
40551
|
-
|
40552
|
-
|
40553
|
-
|
40554
|
-
|
40555
|
-
|
40556
|
-
|
40557
|
-
|
40558
|
-
|
40559
|
-
|
40560
|
-
|
40561
|
-
|
40562
|
-
|
40563
|
-
|
40564
|
-
|
40565
|
-
|
40538
|
+
// ESM exports mapped from original CommonJS names
|
40539
|
+
export {
|
40540
|
+
SMT,
|
40541
|
+
SMTMemDb,
|
40542
|
+
buildBabyJub as buildBabyjub,
|
40543
|
+
buildEddsa,
|
40544
|
+
buildMimc7,
|
40545
|
+
buildMimcSponge,
|
40546
|
+
buildPedersenHash,
|
40547
|
+
buildPoseidon$2 as buildPoseidon,
|
40548
|
+
buildPoseidon as buildPoseidonOpt,
|
40549
|
+
buildPoseidon$1 as buildPoseidonReference,
|
40550
|
+
buildPoseidonWasm,
|
40551
|
+
buildSMT,
|
40552
|
+
Contract as evmasm,
|
40553
|
+
mimc7Contract,
|
40554
|
+
mimcSpongecontract,
|
40555
|
+
newMemEmptyTrie,
|
40556
|
+
poseidonContract,
|
40557
|
+
}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
import { newMemEmptyTrie } from "./circomlibjs.js"
|
2
|
+
import { pad, toSignal, encode, toIndex } from "./encoder.js"
|
3
|
+
import Doc from "./doc.js"
|
4
4
|
|
5
|
-
class Collection {
|
5
|
+
export default class Collection {
|
6
6
|
constructor({ size_val = 8, size_path = 4, size_json = 256, level = 168 }) {
|
7
7
|
this.size_val = size_val
|
8
8
|
this.size_path = size_path
|
@@ -57,5 +57,3 @@ class Collection {
|
|
57
57
|
return await this.tree.find(id)
|
58
58
|
}
|
59
59
|
}
|
60
|
-
|
61
|
-
module.exports = Collection
|
@@ -4,12 +4,12 @@ pragma solidity >=0.7.0 <0.9.0;
|
|
4
4
|
import "./ZKQuery.sol";
|
5
5
|
|
6
6
|
interface VerifierIPFS {
|
7
|
-
function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[
|
7
|
+
function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[72] calldata _pubSignals) external view returns (bool);
|
8
8
|
}
|
9
9
|
|
10
10
|
contract ZKIPFS is ZKQuery{
|
11
11
|
uint constant SIZE_PATH = 5;
|
12
|
-
uint constant SIZE_VAL =
|
12
|
+
uint constant SIZE_VAL = 34;
|
13
13
|
address public verifierIPFS;
|
14
14
|
bytes constant ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
15
15
|
|
@@ -76,7 +76,7 @@ contract ZKIPFS is ZKQuery{
|
|
76
76
|
}
|
77
77
|
uint[] memory value = new uint[](size_val);
|
78
78
|
for(uint i = len + size_path; i < len + size_path + size_val; i++){
|
79
|
-
value[i - (len +
|
79
|
+
value[i - (len + size_path)] = zkp[i];
|
80
80
|
}
|
81
81
|
return toArr(value);
|
82
82
|
}
|