zkjson 0.6.0 → 1.0.2

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.
Files changed (187) hide show
  1. package/README.md +537 -0
  2. package/assets/collection.png +0 -0
  3. package/assets/db.png +0 -0
  4. package/assets/encode.png +0 -0
  5. package/assets/query.png +0 -0
  6. package/assets/rollup.png +0 -0
  7. package/assets/structure.png +0 -0
  8. package/assets/weavedb.png +0 -0
  9. package/assets/zkjson.png +0 -0
  10. package/benchmark/components/ui/avatar.jsx +49 -0
  11. package/benchmark/components/ui/checkbox.jsx +17 -0
  12. package/benchmark/components/ui/close-button.jsx +20 -0
  13. package/benchmark/components/ui/color-mode.jsx +89 -0
  14. package/benchmark/components/ui/dialog.jsx +54 -0
  15. package/benchmark/components/ui/drawer.jsx +44 -0
  16. package/benchmark/components/ui/field.jsx +22 -0
  17. package/benchmark/components/ui/input-group.jsx +39 -0
  18. package/benchmark/components/ui/popover.jsx +49 -0
  19. package/benchmark/components/ui/provider.jsx +12 -0
  20. package/benchmark/components/ui/radio.jsx +17 -0
  21. package/benchmark/components/ui/slider.jsx +107 -0
  22. package/benchmark/components/ui/tooltip.jsx +35 -0
  23. package/benchmark/jsconfig.json +7 -0
  24. package/benchmark/lib/cbor.js +387 -0
  25. package/benchmark/lib/msgpack.js +651 -0
  26. package/benchmark/next.config.mjs +6 -0
  27. package/benchmark/package.json +22 -0
  28. package/benchmark/pages/_app.js +9 -0
  29. package/benchmark/pages/_document.js +13 -0
  30. package/benchmark/pages/api/hello.js +5 -0
  31. package/benchmark/pages/index.js +438 -0
  32. package/benchmark/public/favicon.ico +0 -0
  33. package/benchmark/public/file.svg +1 -0
  34. package/benchmark/public/globe.svg +1 -0
  35. package/benchmark/public/next.svg +1 -0
  36. package/benchmark/public/vercel.svg +1 -0
  37. package/benchmark/public/window.svg +1 -0
  38. package/benchmark/yarn.lock +2448 -0
  39. package/circom/collection/collection.circom +32 -0
  40. package/circom/collection/compile.sh +10 -0
  41. package/circom/collection/gen.js +34 -0
  42. package/circom/collection/generateInput.js +10 -0
  43. package/circom/collection/index.circom +4 -0
  44. package/circom/collection/test.js +21 -0
  45. package/circom/collection/verifier.sol +247 -0
  46. package/circom/db/compile.sh +10 -0
  47. package/circom/db/db.circom +39 -0
  48. package/circom/db/gen.js +30 -0
  49. package/circom/db/generateInput.js +10 -0
  50. package/circom/db/index.circom +4 -0
  51. package/circom/db/test.js +21 -0
  52. package/circom/db/verifier.sol +261 -0
  53. package/circom/ipfs/calculate_total.circom +17 -0
  54. package/circom/ipfs/compile.sh +10 -0
  55. package/circom/ipfs/gen.js +18 -0
  56. package/circom/ipfs/generateInput.js +10 -0
  57. package/circom/ipfs/index.circom +4 -0
  58. package/circom/ipfs/ipfs.circom +62 -0
  59. package/circom/ipfs/parse.circom +289 -0
  60. package/circom/ipfs/sha256.circom +99 -0
  61. package/circom/ipfs/test.js +167 -0
  62. package/circom/ipfs/verifier.sol +261 -0
  63. package/circom/json/compile.sh +10 -0
  64. package/circom/json/gen.js +22 -0
  65. package/circom/json/gen2.js +21 -0
  66. package/circom/json/generateInput.js +20 -0
  67. package/circom/json/index.circom +4 -0
  68. package/circom/json/json.circom +81 -0
  69. package/circom/json/test.js +100 -0
  70. package/circom/json/verifier.sol +247 -0
  71. package/circom/query/compile.sh +10 -0
  72. package/circom/query/gen.js +28 -0
  73. package/circom/query/generateInput.js +11 -0
  74. package/circom/query/index.circom +4 -0
  75. package/circom/query/query.circom +58 -0
  76. package/circom/query/test.js +20 -0
  77. package/circom/query/verifier.sol +177 -0
  78. package/circom/rollup/compile.sh +10 -0
  79. package/circom/rollup/gen.js +36 -0
  80. package/circom/rollup/generateInput.js +11 -0
  81. package/circom/rollup/index.circom +4 -0
  82. package/circom/rollup/rollup.circom +43 -0
  83. package/circom/rollup/test.js +35 -0
  84. package/circom/rollup/verifier.sol +240 -0
  85. package/circom/scripts/ceremony.js +39 -0
  86. package/circom/scripts/ceremony.sh +6 -0
  87. package/circom/scripts/compile.js +113 -0
  88. package/circom/scripts/compile.sh +16 -0
  89. package/circom/utils/uint.circom +512 -0
  90. package/circom/utils/utils.circom +628 -0
  91. package/demos/arweave/jsconfig.json +7 -0
  92. package/demos/arweave/lib/ZKArweave.json +617 -0
  93. package/demos/arweave/lib/encoder.js +375 -0
  94. package/demos/arweave/next.config.js +6 -0
  95. package/demos/arweave/package.json +26 -0
  96. package/demos/arweave/pages/_app.js +9 -0
  97. package/demos/arweave/pages/_document.js +19 -0
  98. package/demos/arweave/pages/api/arweave.js +31 -0
  99. package/demos/arweave/pages/api/hello.js +5 -0
  100. package/demos/arweave/pages/index.js +869 -0
  101. package/demos/arweave/public/circuit.wasm +0 -0
  102. package/demos/arweave/public/circuit_final.zkey +0 -0
  103. package/demos/arweave/public/verification_key.json +149 -0
  104. package/demos/arweave/vercel.json +7 -0
  105. package/demos/arweave/yarn.lock +2510 -0
  106. package/demos/simple/jsconfig.json +7 -0
  107. package/demos/simple/lib/encoder.js +375 -0
  108. package/demos/simple/next.config.js +6 -0
  109. package/demos/simple/package.json +24 -0
  110. package/demos/simple/pages/_app.js +9 -0
  111. package/demos/simple/pages/_document.js +13 -0
  112. package/demos/simple/pages/api/hello.js +5 -0
  113. package/demos/simple/pages/index.js +342 -0
  114. package/demos/simple/public/circuit.wasm +0 -0
  115. package/demos/simple/public/circuit_final.zkey +0 -0
  116. package/demos/simple/public/verification_key.json +149 -0
  117. package/demos/simple/yarn.lock +2519 -0
  118. package/docs/README.md +17 -0
  119. package/docs/simple-zkjson.md +210 -0
  120. package/docs/solidity-contracts.md +216 -0
  121. package/docs/zk-circuits.md +125 -0
  122. package/docs/zkdb-rollup.md +218 -0
  123. package/docs/zkjson-sdk.md +254 -0
  124. package/docs/zkjson-v1_5.md +365 -0
  125. package/package.json +16 -7
  126. package/sdk/contracts/NORollup.sol +13 -0
  127. package/sdk/package.json +15 -0
  128. package/sdk/yarn.lock +881 -0
  129. package/solidity/README.md +13 -0
  130. package/solidity/arguments.js +4 -0
  131. package/solidity/contracts/NORollup.sol +13 -0
  132. package/solidity/contracts/OPRollup.sol +14 -0
  133. package/solidity/contracts/ZKIPFS.sol +95 -0
  134. package/solidity/contracts/ZKJson.sol +21 -0
  135. package/solidity/contracts/ZKQuery.sol +286 -0
  136. package/solidity/contracts/ZKRollup.sol +35 -0
  137. package/solidity/contracts/apps/NORU.sol +66 -0
  138. package/solidity/contracts/apps/SimpleJSON.sol +64 -0
  139. package/solidity/contracts/apps/SimpleOPRU.sol +67 -0
  140. package/solidity/contracts/apps/SimpleRU.sol +67 -0
  141. package/solidity/contracts/apps/Token.sol +12 -0
  142. package/solidity/contracts/apps/ZKArweave.sol +89 -0
  143. package/solidity/contracts/apps/ZKBridge.sol +74 -0
  144. package/solidity/contracts/apps/ZKNFT.sol +63 -0
  145. package/solidity/contracts/verifiers/verifier_db.sol +275 -0
  146. package/solidity/contracts/verifiers/verifier_ipfs.sol +464 -0
  147. package/solidity/contracts/verifiers/verifier_json.sol +261 -0
  148. package/solidity/contracts/verifiers/verifier_rollup.sol +240 -0
  149. package/solidity/package.json +27 -0
  150. package/solidity/scripts/deploy.js +33 -0
  151. package/solidity/test/NORU.js +66 -0
  152. package/solidity/test/ZKArweave.js +97 -0
  153. package/solidity/test/arweave.js +55 -0
  154. package/solidity/test/bridge.js +71 -0
  155. package/solidity/test/simple.js +76 -0
  156. package/solidity/test/simpleOPRU.js +98 -0
  157. package/solidity/test/simpleRU.js +94 -0
  158. package/solidity/test/zknft.js +98 -0
  159. package/solidity/yarn.lock +4152 -0
  160. package/test/test.js +304 -0
  161. /package/{circomlibjs.js → sdk/circomlibjs.js} +0 -0
  162. /package/{collection.js → sdk/collection.js} +0 -0
  163. /package/{contracts → sdk/contracts}/OPRollup.sol +0 -0
  164. /package/{contracts → sdk/contracts}/ZKIPFS.sol +0 -0
  165. /package/{contracts → sdk/contracts}/ZKJson.sol +0 -0
  166. /package/{contracts → sdk/contracts}/ZKQuery.sol +0 -0
  167. /package/{contracts → sdk/contracts}/ZKRollup.sol +0 -0
  168. /package/{contracts → sdk/contracts}/apps/SimpleJSON.sol +0 -0
  169. /package/{contracts → sdk/contracts}/apps/SimpleOPRU.sol +0 -0
  170. /package/{contracts → sdk/contracts}/apps/SimpleRU.sol +0 -0
  171. /package/{contracts → sdk/contracts}/apps/Token.sol +0 -0
  172. /package/{contracts → sdk/contracts}/apps/ZKArweave.sol +0 -0
  173. /package/{contracts → sdk/contracts}/apps/ZKBridge.sol +0 -0
  174. /package/{contracts → sdk/contracts}/apps/ZKNFT.sol +0 -0
  175. /package/{contracts → sdk/contracts}/verifiers/verifier_db.sol +0 -0
  176. /package/{contracts → sdk/contracts}/verifiers/verifier_ipfs.sol +0 -0
  177. /package/{contracts → sdk/contracts}/verifiers/verifier_json.sol +0 -0
  178. /package/{contracts → sdk/contracts}/verifiers/verifier_rollup.sol +0 -0
  179. /package/{db.js → sdk/db.js} +0 -0
  180. /package/{doc.js → sdk/doc.js} +0 -0
  181. /package/{encoder-v1_5.js → sdk/encoder-v1_5.js} +0 -0
  182. /package/{encoder.js → sdk/encoder.js} +0 -0
  183. /package/{index.js → sdk/index.js} +0 -0
  184. /package/{json.js → sdk/json.js} +0 -0
  185. /package/{nft.js → sdk/nft.js} +0 -0
  186. /package/{parse.js → sdk/parse.js} +0 -0
  187. /package/{uint.js → sdk/uint.js} +0 -0
@@ -0,0 +1,651 @@
1
+ /* jshint browser: true */
2
+ /* global define, module */
3
+ ;// Module boilerplate to support browser globals and browserify and AMD.
4
+ (typeof define === "function"
5
+ ? function (m) {
6
+ define("msgpack-js", m)
7
+ }
8
+ : typeof exports === "object"
9
+ ? function (m) {
10
+ module.exports = m()
11
+ }
12
+ : function (m) {
13
+ this.msgpack = m()
14
+ })(function () {
15
+ "use strict"
16
+
17
+ var exports = {}
18
+
19
+ exports.inspect = inspect
20
+ function inspect(buffer) {
21
+ if (buffer === undefined) return "undefined"
22
+ var view
23
+ var type
24
+ if (buffer instanceof ArrayBuffer) {
25
+ type = "ArrayBuffer"
26
+ view = new DataView(buffer)
27
+ } else if (buffer instanceof DataView) {
28
+ type = "DataView"
29
+ view = buffer
30
+ }
31
+ if (!view) return JSON.stringify(buffer)
32
+ var bytes = []
33
+ for (var i = 0; i < buffer.byteLength; i++) {
34
+ if (i > 20) {
35
+ bytes.push("...")
36
+ break
37
+ }
38
+ var byte = view.getUint8(i).toString(16)
39
+ if (byte.length === 1) byte = "0" + byte
40
+ bytes.push(byte)
41
+ }
42
+ return "<" + type + " " + bytes.join(" ") + ">"
43
+ }
44
+
45
+ // Encode string as utf8 into dataview at offset
46
+ exports.utf8Write = utf8Write
47
+ function utf8Write(view, offset, string) {
48
+ var byteLength = view.byteLength
49
+ for (var i = 0, l = string.length; i < l; i++) {
50
+ var codePoint = string.charCodeAt(i)
51
+
52
+ // One byte of UTF-8
53
+ if (codePoint < 0x80) {
54
+ view.setUint8(offset++, ((codePoint >>> 0) & 0x7f) | 0x00)
55
+ continue
56
+ }
57
+
58
+ // Two bytes of UTF-8
59
+ if (codePoint < 0x800) {
60
+ view.setUint8(offset++, ((codePoint >>> 6) & 0x1f) | 0xc0)
61
+ view.setUint8(offset++, ((codePoint >>> 0) & 0x3f) | 0x80)
62
+ continue
63
+ }
64
+
65
+ // Three bytes of UTF-8.
66
+ if (codePoint < 0x10000) {
67
+ view.setUint8(offset++, ((codePoint >>> 12) & 0x0f) | 0xe0)
68
+ view.setUint8(offset++, ((codePoint >>> 6) & 0x3f) | 0x80)
69
+ view.setUint8(offset++, ((codePoint >>> 0) & 0x3f) | 0x80)
70
+ continue
71
+ }
72
+
73
+ // Four bytes of UTF-8
74
+ if (codePoint < 0x110000) {
75
+ view.setUint8(offset++, ((codePoint >>> 18) & 0x07) | 0xf0)
76
+ view.setUint8(offset++, ((codePoint >>> 12) & 0x3f) | 0x80)
77
+ view.setUint8(offset++, ((codePoint >>> 6) & 0x3f) | 0x80)
78
+ view.setUint8(offset++, ((codePoint >>> 0) & 0x3f) | 0x80)
79
+ continue
80
+ }
81
+ throw new Error("bad codepoint " + codePoint)
82
+ }
83
+ }
84
+
85
+ exports.utf8Read = utf8Read
86
+ function utf8Read(view, offset, length) {
87
+ var string = ""
88
+ for (var i = offset, end = offset + length; i < end; i++) {
89
+ var byte = view.getUint8(i)
90
+ // One byte character
91
+ if ((byte & 0x80) === 0x00) {
92
+ string += String.fromCharCode(byte)
93
+ continue
94
+ }
95
+ // Two byte character
96
+ if ((byte & 0xe0) === 0xc0) {
97
+ string += String.fromCharCode(
98
+ ((byte & 0x1f) << 6) | (view.getUint8(++i) & 0x3f),
99
+ )
100
+ continue
101
+ }
102
+ // Three byte character
103
+ if ((byte & 0xf0) === 0xe0) {
104
+ string += String.fromCharCode(
105
+ ((byte & 0x0f) << 12) |
106
+ ((view.getUint8(++i) & 0x3f) << 6) |
107
+ ((view.getUint8(++i) & 0x3f) << 0),
108
+ )
109
+ continue
110
+ }
111
+ // Four byte character
112
+ if ((byte & 0xf8) === 0xf0) {
113
+ string += String.fromCharCode(
114
+ ((byte & 0x07) << 18) |
115
+ ((view.getUint8(++i) & 0x3f) << 12) |
116
+ ((view.getUint8(++i) & 0x3f) << 6) |
117
+ ((view.getUint8(++i) & 0x3f) << 0),
118
+ )
119
+ continue
120
+ }
121
+ throw new Error("Invalid byte " + byte.toString(16))
122
+ }
123
+ return string
124
+ }
125
+
126
+ exports.utf8ByteCount = utf8ByteCount
127
+ function utf8ByteCount(string) {
128
+ var count = 0
129
+ for (var i = 0, l = string.length; i < l; i++) {
130
+ var codePoint = string.charCodeAt(i)
131
+ if (codePoint < 0x80) {
132
+ count += 1
133
+ continue
134
+ }
135
+ if (codePoint < 0x800) {
136
+ count += 2
137
+ continue
138
+ }
139
+ if (codePoint < 0x10000) {
140
+ count += 3
141
+ continue
142
+ }
143
+ if (codePoint < 0x110000) {
144
+ count += 4
145
+ continue
146
+ }
147
+ throw new Error("bad codepoint " + codePoint)
148
+ }
149
+ return count
150
+ }
151
+
152
+ exports.encode = function (value) {
153
+ var buffer = new ArrayBuffer(encodedSize(value))
154
+ var view = new DataView(buffer)
155
+ encode(value, view, 0)
156
+ return buffer
157
+ }
158
+
159
+ exports.decode = decode
160
+
161
+ // https://github.com/msgpack/msgpack/blob/master/spec.md
162
+ // we reserve extension type 0x00 to encode javascript 'undefined'
163
+
164
+ function Decoder(view, offset) {
165
+ this.offset = offset || 0
166
+ this.view = view
167
+ }
168
+ Decoder.prototype.map = function (length) {
169
+ var value = {}
170
+ for (var i = 0; i < length; i++) {
171
+ var key = this.parse()
172
+ value[key] = this.parse()
173
+ }
174
+ return value
175
+ }
176
+ Decoder.prototype.bin = function (length) {
177
+ var value = new ArrayBuffer(length)
178
+ new Uint8Array(value).set(
179
+ new Uint8Array(this.view.buffer, this.offset, length),
180
+ 0,
181
+ )
182
+ this.offset += length
183
+ return value
184
+ }
185
+ Decoder.prototype.str = function (length) {
186
+ var value = utf8Read(this.view, this.offset, length)
187
+ this.offset += length
188
+ return value
189
+ }
190
+ Decoder.prototype.array = function (length) {
191
+ var value = new Array(length)
192
+ for (var i = 0; i < length; i++) {
193
+ value[i] = this.parse()
194
+ }
195
+ return value
196
+ }
197
+ Decoder.prototype.parse = function () {
198
+ var type = this.view.getUint8(this.offset)
199
+ var value, length
200
+ // FixStr
201
+ if ((type & 0xe0) === 0xa0) {
202
+ length = type & 0x1f
203
+ this.offset++
204
+ return this.str(length)
205
+ }
206
+ // FixMap
207
+ if ((type & 0xf0) === 0x80) {
208
+ length = type & 0x0f
209
+ this.offset++
210
+ return this.map(length)
211
+ }
212
+ // FixArray
213
+ if ((type & 0xf0) === 0x90) {
214
+ length = type & 0x0f
215
+ this.offset++
216
+ return this.array(length)
217
+ }
218
+ // Positive FixNum
219
+ if ((type & 0x80) === 0x00) {
220
+ this.offset++
221
+ return type
222
+ }
223
+ // Negative Fixnum
224
+ if ((type & 0xe0) === 0xe0) {
225
+ value = this.view.getInt8(this.offset)
226
+ this.offset++
227
+ return value
228
+ }
229
+ // Undefined as FixExt1
230
+ if (type === 0xd4 && this.view.getUint8(this.offset + 1) === 0x00) {
231
+ this.offset += 3
232
+ return undefined
233
+ }
234
+ switch (type) {
235
+ // str 8
236
+ case 0xd9:
237
+ length = this.view.getUint8(this.offset + 1)
238
+ this.offset += 2
239
+ return this.str(length)
240
+ // str 16
241
+ case 0xda:
242
+ length = this.view.getUint16(this.offset + 1)
243
+ this.offset += 3
244
+ return this.str(length)
245
+ // str 32
246
+ case 0xdb:
247
+ length = this.view.getUint32(this.offset + 1)
248
+ this.offset += 5
249
+ return this.str(length)
250
+ // bin 8
251
+ case 0xc4:
252
+ length = this.view.getUint8(this.offset + 1)
253
+ this.offset += 2
254
+ return this.bin(length)
255
+ // bin 16
256
+ case 0xc5:
257
+ length = this.view.getUint16(this.offset + 1)
258
+ this.offset += 3
259
+ return this.bin(length)
260
+ // bin 32
261
+ case 0xc6:
262
+ length = this.view.getUint32(this.offset + 1)
263
+ this.offset += 5
264
+ return this.bin(length)
265
+ // nil
266
+ case 0xc0:
267
+ this.offset++
268
+ return null
269
+ // false
270
+ case 0xc2:
271
+ this.offset++
272
+ return false
273
+ // true
274
+ case 0xc3:
275
+ this.offset++
276
+ return true
277
+ // uint8
278
+ case 0xcc:
279
+ value = this.view.getUint8(this.offset + 1)
280
+ this.offset += 2
281
+ return value
282
+ // uint 16
283
+ case 0xcd:
284
+ value = this.view.getUint16(this.offset + 1)
285
+ this.offset += 3
286
+ return value
287
+ // uint 32
288
+ case 0xce:
289
+ value = this.view.getUint32(this.offset + 1)
290
+ this.offset += 5
291
+ return value
292
+ // uint 64
293
+ case 0xcf:
294
+ var high = this.view.getUint32(this.offset + 1)
295
+ var low = this.view.getUint32(this.offset + 5)
296
+ value = high * 0x100000000 + low
297
+ this.offset += 9
298
+ return value
299
+ // int 8
300
+ case 0xd0:
301
+ value = this.view.getInt8(this.offset + 1)
302
+ this.offset += 2
303
+ return value
304
+ // int 16
305
+ case 0xd1:
306
+ value = this.view.getInt16(this.offset + 1)
307
+ this.offset += 3
308
+ return value
309
+ // int 32
310
+ case 0xd2:
311
+ value = this.view.getInt32(this.offset + 1)
312
+ this.offset += 5
313
+ return value
314
+ // int 64
315
+ case 0xd3:
316
+ var high = this.view.getInt32(this.offset + 1)
317
+ var low = this.view.getUint32(this.offset + 5)
318
+ value = high * 0x100000000 + low
319
+ this.offset += 9
320
+ return value
321
+ // map 16
322
+ case 0xde:
323
+ length = this.view.getUint16(this.offset + 1)
324
+ this.offset += 3
325
+ return this.map(length)
326
+ // map 32
327
+ case 0xdf:
328
+ length = this.view.getUint32(this.offset + 1)
329
+ this.offset += 5
330
+ return this.map(length)
331
+ // array 16
332
+ case 0xdc:
333
+ length = this.view.getUint16(this.offset + 1)
334
+ this.offset += 3
335
+ return this.array(length)
336
+ // array 32
337
+ case 0xdd:
338
+ length = this.view.getUint32(this.offset + 1)
339
+ this.offset += 5
340
+ return this.array(length)
341
+ // float
342
+ case 0xca:
343
+ value = this.view.getFloat32(this.offset + 1)
344
+ this.offset += 5
345
+ return value
346
+ // double
347
+ case 0xcb:
348
+ value = this.view.getFloat64(this.offset + 1)
349
+ this.offset += 9
350
+ return value
351
+ }
352
+ throw new Error("Unknown type 0x" + type.toString(16))
353
+ }
354
+ function decode(buffer) {
355
+ var view = new DataView(buffer)
356
+ var decoder = new Decoder(view)
357
+ var value = decoder.parse()
358
+ if (decoder.offset !== buffer.byteLength)
359
+ throw new Error(buffer.byteLength - decoder.offset + " trailing bytes")
360
+ return value
361
+ }
362
+
363
+ function encode(value, view, offset) {
364
+ var type = typeof value
365
+
366
+ // Strings Bytes
367
+ if (type === "string") {
368
+ var length = utf8ByteCount(value)
369
+ // fix str
370
+ if (length < 0x20) {
371
+ view.setUint8(offset, length | 0xa0)
372
+ utf8Write(view, offset + 1, value)
373
+ return 1 + length
374
+ }
375
+ // str 8
376
+ if (length < 0x100) {
377
+ view.setUint8(offset, 0xd9)
378
+ view.setUint8(offset + 1, length)
379
+ utf8Write(view, offset + 2, value)
380
+ return 2 + length
381
+ }
382
+ // str 16
383
+ if (length < 0x10000) {
384
+ view.setUint8(offset, 0xda)
385
+ view.setUint16(offset + 1, length)
386
+ utf8Write(view, offset + 3, value)
387
+ return 3 + length
388
+ }
389
+ // str 32
390
+ if (length < 0x100000000) {
391
+ view.setUint8(offset, 0xdb)
392
+ view.setUint32(offset + 1, length)
393
+ utf8Write(view, offset + 5, value)
394
+ return 5 + length
395
+ }
396
+ }
397
+
398
+ if (value instanceof ArrayBuffer) {
399
+ var length = value.byteLength
400
+ // bin 8
401
+ if (length < 0x100) {
402
+ view.setUint8(offset, 0xc4)
403
+ view.setUint8(offset + 1, length)
404
+ new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 2)
405
+ return 2 + length
406
+ }
407
+ // bin 16
408
+ if (length < 0x10000) {
409
+ view.setUint8(offset, 0xc5)
410
+ view.setUint16(offset + 1, length)
411
+ new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 3)
412
+ return 3 + length
413
+ }
414
+ // bin 32
415
+ if (length < 0x100000000) {
416
+ view.setUint8(offset, 0xc6)
417
+ view.setUint32(offset + 1, length)
418
+ new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 5)
419
+ return 5 + length
420
+ }
421
+ }
422
+
423
+ if (type === "number") {
424
+ // Floating Point
425
+ if (value << 0 !== value) {
426
+ view.setUint8(offset, 0xcb)
427
+ view.setFloat64(offset + 1, value)
428
+ return 9
429
+ }
430
+
431
+ // Integers
432
+ if (value >= 0) {
433
+ // positive fixnum
434
+ if (value < 0x80) {
435
+ view.setUint8(offset, value)
436
+ return 1
437
+ }
438
+ // uint 8
439
+ if (value < 0x100) {
440
+ view.setUint8(offset, 0xcc)
441
+ view.setUint8(offset + 1, value)
442
+ return 2
443
+ }
444
+ // uint 16
445
+ if (value < 0x10000) {
446
+ view.setUint8(offset, 0xcd)
447
+ view.setUint16(offset + 1, value)
448
+ return 3
449
+ }
450
+ // uint 32
451
+ if (value < 0x100000000) {
452
+ view.setUint8(offset, 0xce)
453
+ view.setUint32(offset + 1, value)
454
+ return 5
455
+ }
456
+ throw new Error("Number too big 0x" + value.toString(16))
457
+ }
458
+ // negative fixnum
459
+ if (value >= -0x20) {
460
+ view.setInt8(offset, value)
461
+ return 1
462
+ }
463
+ // int 8
464
+ if (value >= -0x80) {
465
+ view.setUint8(offset, 0xd0)
466
+ view.setInt8(offset + 1, value)
467
+ return 2
468
+ }
469
+ // int 16
470
+ if (value >= -0x8000) {
471
+ view.setUint8(offset, 0xd1)
472
+ view.setInt16(offset + 1, value)
473
+ return 3
474
+ }
475
+ // int 32
476
+ if (value >= -0x80000000) {
477
+ view.setUint8(offset, 0xd2)
478
+ view.setInt32(offset + 1, value)
479
+ return 5
480
+ }
481
+ throw new Error("Number too small -0x" + (-value).toString(16).substr(1))
482
+ }
483
+
484
+ // undefined
485
+ if (type === "undefined") {
486
+ view.setUint8(offset, 0xd4) // fixext 1
487
+ view.setUint8(offset + 1, 0) // type (undefined)
488
+ view.setUint8(offset + 2, 0) // data (ignored)
489
+ return 3
490
+ }
491
+
492
+ // null
493
+ if (value === null) {
494
+ view.setUint8(offset, 0xc0)
495
+ return 1
496
+ }
497
+
498
+ // Boolean
499
+ if (type === "boolean") {
500
+ view.setUint8(offset, value ? 0xc3 : 0xc2)
501
+ return 1
502
+ }
503
+
504
+ // Container Types
505
+ if (type === "object") {
506
+ var length,
507
+ size = 0
508
+ var isArray = Array.isArray(value)
509
+
510
+ if (isArray) {
511
+ length = value.length
512
+ } else {
513
+ var keys = Object.keys(value)
514
+ length = keys.length
515
+ }
516
+
517
+ var size
518
+ if (length < 0x10) {
519
+ view.setUint8(offset, length | (isArray ? 0x90 : 0x80))
520
+ size = 1
521
+ } else if (length < 0x10000) {
522
+ view.setUint8(offset, isArray ? 0xdc : 0xde)
523
+ view.setUint16(offset + 1, length)
524
+ size = 3
525
+ } else if (length < 0x100000000) {
526
+ view.setUint8(offset, isArray ? 0xdd : 0xdf)
527
+ view.setUint32(offset + 1, length)
528
+ size = 5
529
+ }
530
+
531
+ if (isArray) {
532
+ for (var i = 0; i < length; i++) {
533
+ size += encode(value[i], view, offset + size)
534
+ }
535
+ } else {
536
+ for (var i = 0; i < length; i++) {
537
+ var key = keys[i]
538
+ size += encode(key, view, offset + size)
539
+ size += encode(value[key], view, offset + size)
540
+ }
541
+ }
542
+
543
+ return size
544
+ }
545
+ throw new Error("Unknown type " + type)
546
+ }
547
+
548
+ function encodedSize(value) {
549
+ var type = typeof value
550
+
551
+ // Raw Bytes
552
+ if (type === "string") {
553
+ var length = utf8ByteCount(value)
554
+ if (length < 0x20) {
555
+ return 1 + length
556
+ }
557
+ if (length < 0x100) {
558
+ return 2 + length
559
+ }
560
+ if (length < 0x10000) {
561
+ return 3 + length
562
+ }
563
+ if (length < 0x100000000) {
564
+ return 5 + length
565
+ }
566
+ }
567
+
568
+ if (value instanceof ArrayBuffer) {
569
+ var length = value.byteLength
570
+ if (length < 0x100) {
571
+ return 2 + length
572
+ }
573
+ if (length < 0x10000) {
574
+ return 3 + length
575
+ }
576
+ if (length < 0x100000000) {
577
+ return 5 + length
578
+ }
579
+ }
580
+
581
+ if (type === "number") {
582
+ // Floating Point
583
+ // double
584
+ if (value << 0 !== value) return 9
585
+
586
+ // Integers
587
+ if (value >= 0) {
588
+ // positive fixnum
589
+ if (value < 0x80) return 1
590
+ // uint 8
591
+ if (value < 0x100) return 2
592
+ // uint 16
593
+ if (value < 0x10000) return 3
594
+ // uint 32
595
+ if (value < 0x100000000) return 5
596
+ // uint 64
597
+ if (value < 0x10000000000000000) return 9
598
+ throw new Error("Number too big 0x" + value.toString(16))
599
+ }
600
+ // negative fixnum
601
+ if (value >= -0x20) return 1
602
+ // int 8
603
+ if (value >= -0x80) return 2
604
+ // int 16
605
+ if (value >= -0x8000) return 3
606
+ // int 32
607
+ if (value >= -0x80000000) return 5
608
+ // int 64
609
+ if (value >= -0x8000000000000000) return 9
610
+ throw new Error("Number too small -0x" + value.toString(16).substr(1))
611
+ }
612
+
613
+ // undefined
614
+ if (type === "undefined") return 3
615
+
616
+ // Boolean, null
617
+ if (type === "boolean" || value === null) return 1
618
+
619
+ // Container Types
620
+ if (type === "object") {
621
+ var length,
622
+ size = 0
623
+ if (Array.isArray(value)) {
624
+ length = value.length
625
+ for (var i = 0; i < length; i++) {
626
+ size += encodedSize(value[i])
627
+ }
628
+ } else {
629
+ var keys = Object.keys(value)
630
+ length = keys.length
631
+ for (var i = 0; i < length; i++) {
632
+ var key = keys[i]
633
+ size += encodedSize(key) + encodedSize(value[key])
634
+ }
635
+ }
636
+ if (length < 0x10) {
637
+ return 1 + size
638
+ }
639
+ if (length < 0x10000) {
640
+ return 3 + size
641
+ }
642
+ if (length < 0x100000000) {
643
+ return 5 + size
644
+ }
645
+ throw new Error("Array or object too long 0x" + length.toString(16))
646
+ }
647
+ throw new Error("Unknown type " + type)
648
+ }
649
+
650
+ return exports
651
+ })
@@ -0,0 +1,6 @@
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ reactStrictMode: true,
4
+ };
5
+
6
+ export default nextConfig;
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "my-app",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "dev": "next dev",
7
+ "build": "next build",
8
+ "start": "next start",
9
+ "lint": "next lint"
10
+ },
11
+ "dependencies": {
12
+ "@chakra-ui/react": "^3.8.1",
13
+ "@emotion/react": "^11.14.0",
14
+ "bson": "^6.10.3",
15
+ "next": "15.1.7",
16
+ "next-themes": "^0.4.4",
17
+ "react": "^19.0.0",
18
+ "react-dom": "^19.0.0",
19
+ "react-icons": "^5.5.0",
20
+ "zkjson": "^0.5.1"
21
+ }
22
+ }
@@ -0,0 +1,9 @@
1
+ import { Provider } from "@/components/ui/provider"
2
+
3
+ export default function App({ Component, pageProps }) {
4
+ return (
5
+ <Provider>
6
+ <Component {...pageProps} />
7
+ </Provider>
8
+ )
9
+ }
@@ -0,0 +1,13 @@
1
+ import { Html, Head, Main, NextScript } from "next/document"
2
+
3
+ export default function Document() {
4
+ return (
5
+ <Html suppressHydrationWarning>
6
+ <Head />
7
+ <body>
8
+ <Main />
9
+ <NextScript />
10
+ </body>
11
+ </Html>
12
+ )
13
+ }
@@ -0,0 +1,5 @@
1
+ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction
2
+
3
+ export default function handler(req, res) {
4
+ res.status(200).json({ name: "John Doe" });
5
+ }