zkjson 0.6.1 → 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.
- package/README.md +537 -0
- package/assets/collection.png +0 -0
- package/assets/db.png +0 -0
- package/assets/encode.png +0 -0
- package/assets/query.png +0 -0
- package/assets/rollup.png +0 -0
- package/assets/structure.png +0 -0
- package/assets/weavedb.png +0 -0
- package/assets/zkjson.png +0 -0
- package/benchmark/components/ui/avatar.jsx +49 -0
- package/benchmark/components/ui/checkbox.jsx +17 -0
- package/benchmark/components/ui/close-button.jsx +20 -0
- package/benchmark/components/ui/color-mode.jsx +89 -0
- package/benchmark/components/ui/dialog.jsx +54 -0
- package/benchmark/components/ui/drawer.jsx +44 -0
- package/benchmark/components/ui/field.jsx +22 -0
- package/benchmark/components/ui/input-group.jsx +39 -0
- package/benchmark/components/ui/popover.jsx +49 -0
- package/benchmark/components/ui/provider.jsx +12 -0
- package/benchmark/components/ui/radio.jsx +17 -0
- package/benchmark/components/ui/slider.jsx +107 -0
- package/benchmark/components/ui/tooltip.jsx +35 -0
- package/benchmark/jsconfig.json +7 -0
- package/benchmark/lib/cbor.js +387 -0
- package/benchmark/lib/msgpack.js +651 -0
- package/benchmark/next.config.mjs +6 -0
- package/benchmark/package.json +22 -0
- package/benchmark/pages/_app.js +9 -0
- package/benchmark/pages/_document.js +13 -0
- package/benchmark/pages/api/hello.js +5 -0
- package/benchmark/pages/index.js +438 -0
- package/benchmark/public/favicon.ico +0 -0
- package/benchmark/public/file.svg +1 -0
- package/benchmark/public/globe.svg +1 -0
- package/benchmark/public/next.svg +1 -0
- package/benchmark/public/vercel.svg +1 -0
- package/benchmark/public/window.svg +1 -0
- package/benchmark/yarn.lock +2448 -0
- package/circom/collection/collection.circom +32 -0
- package/circom/collection/compile.sh +10 -0
- package/circom/collection/gen.js +34 -0
- package/circom/collection/generateInput.js +10 -0
- package/circom/collection/index.circom +4 -0
- package/circom/collection/test.js +21 -0
- package/circom/collection/verifier.sol +247 -0
- package/circom/db/compile.sh +10 -0
- package/circom/db/db.circom +39 -0
- package/circom/db/gen.js +30 -0
- package/circom/db/generateInput.js +10 -0
- package/circom/db/index.circom +4 -0
- package/circom/db/test.js +21 -0
- package/circom/db/verifier.sol +261 -0
- package/circom/ipfs/calculate_total.circom +17 -0
- package/circom/ipfs/compile.sh +10 -0
- package/circom/ipfs/gen.js +18 -0
- package/circom/ipfs/generateInput.js +10 -0
- package/circom/ipfs/index.circom +4 -0
- package/circom/ipfs/ipfs.circom +62 -0
- package/circom/ipfs/parse.circom +289 -0
- package/circom/ipfs/sha256.circom +99 -0
- package/circom/ipfs/test.js +167 -0
- package/circom/ipfs/verifier.sol +261 -0
- package/circom/json/compile.sh +10 -0
- package/circom/json/gen.js +22 -0
- package/circom/json/gen2.js +21 -0
- package/circom/json/generateInput.js +20 -0
- package/circom/json/index.circom +4 -0
- package/circom/json/json.circom +81 -0
- package/circom/json/test.js +100 -0
- package/circom/json/verifier.sol +247 -0
- package/circom/query/compile.sh +10 -0
- package/circom/query/gen.js +28 -0
- package/circom/query/generateInput.js +11 -0
- package/circom/query/index.circom +4 -0
- package/circom/query/query.circom +58 -0
- package/circom/query/test.js +20 -0
- package/circom/query/verifier.sol +177 -0
- package/circom/rollup/compile.sh +10 -0
- package/circom/rollup/gen.js +36 -0
- package/circom/rollup/generateInput.js +11 -0
- package/circom/rollup/index.circom +4 -0
- package/circom/rollup/rollup.circom +43 -0
- package/circom/rollup/test.js +35 -0
- package/circom/rollup/verifier.sol +240 -0
- package/circom/scripts/ceremony.js +39 -0
- package/circom/scripts/ceremony.sh +6 -0
- package/circom/scripts/compile.js +113 -0
- package/circom/scripts/compile.sh +16 -0
- package/circom/utils/uint.circom +512 -0
- package/circom/utils/utils.circom +628 -0
- package/demos/arweave/jsconfig.json +7 -0
- package/demos/arweave/lib/ZKArweave.json +617 -0
- package/demos/arweave/lib/encoder.js +375 -0
- package/demos/arweave/next.config.js +6 -0
- package/demos/arweave/package.json +26 -0
- package/demos/arweave/pages/_app.js +9 -0
- package/demos/arweave/pages/_document.js +19 -0
- package/demos/arweave/pages/api/arweave.js +31 -0
- package/demos/arweave/pages/api/hello.js +5 -0
- package/demos/arweave/pages/index.js +869 -0
- package/demos/arweave/public/circuit.wasm +0 -0
- package/demos/arweave/public/circuit_final.zkey +0 -0
- package/demos/arweave/public/verification_key.json +149 -0
- package/demos/arweave/vercel.json +7 -0
- package/demos/arweave/yarn.lock +2510 -0
- package/demos/simple/jsconfig.json +7 -0
- package/demos/simple/lib/encoder.js +375 -0
- package/demos/simple/next.config.js +6 -0
- package/demos/simple/package.json +24 -0
- package/demos/simple/pages/_app.js +9 -0
- package/demos/simple/pages/_document.js +13 -0
- package/demos/simple/pages/api/hello.js +5 -0
- package/demos/simple/pages/index.js +342 -0
- package/demos/simple/public/circuit.wasm +0 -0
- package/demos/simple/public/circuit_final.zkey +0 -0
- package/demos/simple/public/verification_key.json +149 -0
- package/demos/simple/yarn.lock +2519 -0
- package/docs/README.md +17 -0
- package/docs/simple-zkjson.md +210 -0
- package/docs/solidity-contracts.md +216 -0
- package/docs/zk-circuits.md +125 -0
- package/docs/zkdb-rollup.md +218 -0
- package/docs/zkjson-sdk.md +254 -0
- package/docs/zkjson-v1_5.md +365 -0
- package/package.json +16 -7
- package/{contracts → sdk/contracts}/NORollup.sol +0 -2
- package/sdk/package.json +15 -0
- package/sdk/yarn.lock +881 -0
- package/solidity/README.md +13 -0
- package/solidity/arguments.js +4 -0
- package/solidity/contracts/NORollup.sol +13 -0
- package/solidity/contracts/OPRollup.sol +14 -0
- package/solidity/contracts/ZKIPFS.sol +95 -0
- package/solidity/contracts/ZKJson.sol +21 -0
- package/solidity/contracts/ZKQuery.sol +286 -0
- package/solidity/contracts/ZKRollup.sol +35 -0
- package/solidity/contracts/apps/NORU.sol +66 -0
- package/solidity/contracts/apps/SimpleJSON.sol +64 -0
- package/solidity/contracts/apps/SimpleOPRU.sol +67 -0
- package/solidity/contracts/apps/SimpleRU.sol +67 -0
- package/solidity/contracts/apps/Token.sol +12 -0
- package/solidity/contracts/apps/ZKArweave.sol +89 -0
- package/solidity/contracts/apps/ZKBridge.sol +74 -0
- package/solidity/contracts/apps/ZKNFT.sol +63 -0
- package/solidity/contracts/verifiers/verifier_db.sol +275 -0
- package/solidity/contracts/verifiers/verifier_ipfs.sol +464 -0
- package/solidity/contracts/verifiers/verifier_json.sol +261 -0
- package/solidity/contracts/verifiers/verifier_rollup.sol +240 -0
- package/solidity/package.json +27 -0
- package/solidity/scripts/deploy.js +33 -0
- package/solidity/test/NORU.js +66 -0
- package/solidity/test/ZKArweave.js +97 -0
- package/solidity/test/arweave.js +55 -0
- package/solidity/test/bridge.js +71 -0
- package/solidity/test/simple.js +76 -0
- package/solidity/test/simpleOPRU.js +98 -0
- package/solidity/test/simpleRU.js +94 -0
- package/solidity/test/zknft.js +98 -0
- package/solidity/yarn.lock +4152 -0
- package/test/test.js +304 -0
- /package/{circomlibjs.js → sdk/circomlibjs.js} +0 -0
- /package/{collection.js → sdk/collection.js} +0 -0
- /package/{contracts → sdk/contracts}/OPRollup.sol +0 -0
- /package/{contracts → sdk/contracts}/ZKIPFS.sol +0 -0
- /package/{contracts → sdk/contracts}/ZKJson.sol +0 -0
- /package/{contracts → sdk/contracts}/ZKQuery.sol +0 -0
- /package/{contracts → sdk/contracts}/ZKRollup.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/SimpleJSON.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/SimpleOPRU.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/SimpleRU.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/Token.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/ZKArweave.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/ZKBridge.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/ZKNFT.sol +0 -0
- /package/{contracts → sdk/contracts}/verifiers/verifier_db.sol +0 -0
- /package/{contracts → sdk/contracts}/verifiers/verifier_ipfs.sol +0 -0
- /package/{contracts → sdk/contracts}/verifiers/verifier_json.sol +0 -0
- /package/{contracts → sdk/contracts}/verifiers/verifier_rollup.sol +0 -0
- /package/{db.js → sdk/db.js} +0 -0
- /package/{doc.js → sdk/doc.js} +0 -0
- /package/{encoder-v1_5.js → sdk/encoder-v1_5.js} +0 -0
- /package/{encoder.js → sdk/encoder.js} +0 -0
- /package/{index.js → sdk/index.js} +0 -0
- /package/{json.js → sdk/json.js} +0 -0
- /package/{nft.js → sdk/nft.js} +0 -0
- /package/{parse.js → sdk/parse.js} +0 -0
- /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,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
|
+
}
|