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.
Files changed (43) hide show
  1. package/cjs/circomlibjs.js +149 -0
  2. package/cjs/collection.js +196 -0
  3. package/cjs/db.js +731 -0
  4. package/cjs/doc.js +132 -0
  5. package/cjs/encoder-v1_5.js +1731 -0
  6. package/cjs/encoder.js +668 -0
  7. package/cjs/index.js +64 -0
  8. package/cjs/json.js +54 -0
  9. package/cjs/nft.js +165 -0
  10. package/cjs/parse.js +256 -0
  11. package/cjs/uint.js +580 -0
  12. package/{circomlibjs.js → esm/circomlibjs.js} +27 -35
  13. package/{collection.js → esm/collection.js} +4 -6
  14. package/{contracts → esm/contracts}/ZKIPFS.sol +3 -3
  15. package/esm/contracts/verifiers/verifier_ipfs.sol +667 -0
  16. package/{db.js → esm/db.js} +8 -10
  17. package/{doc.js → esm/doc.js} +7 -7
  18. package/{encoder-v1_5.js → esm/encoder-v1_5.js} +3 -3
  19. package/{encoder.js → esm/encoder.js} +2 -2
  20. package/esm/index.js +7 -0
  21. package/{json.js → esm/json.js} +2 -2
  22. package/{nft.js → esm/nft.js} +8 -10
  23. package/esm/package.json +3 -0
  24. package/{parse.js → esm/parse.js} +4 -4
  25. package/{uint.js → esm/uint.js} +1 -1
  26. package/package.json +21 -5
  27. package/contracts/verifiers/verifier_ipfs.sol +0 -464
  28. package/index.js +0 -6
  29. /package/{contracts → esm/contracts}/NORollup.sol +0 -0
  30. /package/{contracts → esm/contracts}/OPRollup.sol +0 -0
  31. /package/{contracts → esm/contracts}/ZKJson.sol +0 -0
  32. /package/{contracts → esm/contracts}/ZKQuery.sol +0 -0
  33. /package/{contracts → esm/contracts}/ZKRollup.sol +0 -0
  34. /package/{contracts → esm/contracts}/apps/SimpleJSON.sol +0 -0
  35. /package/{contracts → esm/contracts}/apps/SimpleOPRU.sol +0 -0
  36. /package/{contracts → esm/contracts}/apps/SimpleRU.sol +0 -0
  37. /package/{contracts → esm/contracts}/apps/Token.sol +0 -0
  38. /package/{contracts → esm/contracts}/apps/ZKArweave.sol +0 -0
  39. /package/{contracts → esm/contracts}/apps/ZKBridge.sol +0 -0
  40. /package/{contracts → esm/contracts}/apps/ZKNFT.sol +0 -0
  41. /package/{contracts → esm/contracts}/verifiers/verifier_db.sol +0 -0
  42. /package/{contracts → esm/contracts}/verifiers/verifier_json.sol +0 -0
  43. /package/{contracts → esm/contracts}/verifiers/verifier_rollup.sol +0 -0
@@ -1,10 +1,10 @@
1
- const newMemEmptyTrie = require("./circomlibjs").newMemEmptyTrie
2
- const snarkjs = require("snarkjs")
3
- const { is, indexOf, range, isNil } = require("ramda")
4
- const { pad, toSignal, encode, toIndex } = require("./encoder")
5
- const Collection = require("./collection")
1
+ import { newMemEmptyTrie } from "./circomlibjs.js"
2
+ import { groth16 } from "snarkjs"
3
+ import { is, indexOf, range, isNil } from "ramda"
4
+ import { pad, toSignal, encode, toIndex } from "./encoder.js"
5
+ import Collection from "./collection.js"
6
6
 
7
- class DB {
7
+ export default class DB {
8
8
  constructor({
9
9
  size_val = 8,
10
10
  size_path = 4,
@@ -78,7 +78,7 @@ class DB {
78
78
  val: this.getVal(json, path),
79
79
  query,
80
80
  })
81
- const { proof, publicSignals } = await snarkjs.groth16.fullProve(
81
+ const { proof, publicSignals } = await groth16.fullProve(
82
82
  inputs,
83
83
  this.wasm,
84
84
  this.zkey,
@@ -94,7 +94,7 @@ class DB {
94
94
 
95
95
  async genRollupProof(txs) {
96
96
  const inputs = await this.getRollupInputs({ queries: txs })
97
- const { proof, publicSignals } = await snarkjs.groth16.fullProve(
97
+ const { proof, publicSignals } = await groth16.fullProve(
98
98
  inputs,
99
99
  this.wasmRU,
100
100
  this.zkeyRU,
@@ -356,5 +356,3 @@ class DB {
356
356
  return await this.tree.find(col)
357
357
  }
358
358
  }
359
-
360
- module.exports = DB
@@ -1,16 +1,16 @@
1
- const snarkjs = require("snarkjs")
2
- const { resolve } = require("path")
3
- const { isNil } = require("ramda")
4
- const {
1
+ import { groth16 } from "snarkjs"
2
+ import { resolve } from "path"
3
+ import { isNil } from "ramda"
4
+ import {
5
5
  encodeQuery,
6
6
  pad,
7
7
  toSignal,
8
8
  encode,
9
9
  encodePath,
10
10
  encodeVal,
11
- } = require("./encoder")
11
+ } from "./encoder.js"
12
12
 
13
- module.exports = class Doc {
13
+ export default class Doc {
14
14
  constructor({ size_val = 8, size_path = 4, size_json = 256, wasm, zkey }) {
15
15
  this.size_val = size_val
16
16
  this.size_path = size_path
@@ -48,7 +48,7 @@ module.exports = class Doc {
48
48
  }
49
49
  async genProof({ json, path, query }) {
50
50
  const inputs = await this.getInputs({ json, path, query })
51
- const { proof, publicSignals } = await snarkjs.groth16.fullProve(
51
+ const { proof, publicSignals } = await groth16.fullProve(
52
52
  inputs,
53
53
  this.wasm,
54
54
  this.zkey,
@@ -1,4 +1,4 @@
1
- const {
1
+ import {
2
2
  clone,
3
3
  uniq,
4
4
  sortBy,
@@ -16,7 +16,7 @@ const {
16
16
  includes,
17
17
  splitEvery,
18
18
  flatten,
19
- } = require("ramda")
19
+ } from "ramda"
20
20
  const ops = {
21
21
  $eq: 10,
22
22
  $ne: 11,
@@ -1299,7 +1299,7 @@ const unshift = (vals, _num) => {
1299
1299
  }
1300
1300
  return addedCount
1301
1301
  }
1302
- module.exports = {
1302
+ export {
1303
1303
  from128s,
1304
1304
  to128s,
1305
1305
  to128,
@@ -1,4 +1,4 @@
1
- const { clone, isNil, includes, splitEvery, flatten } = require("ramda")
1
+ import { clone, isNil, includes, splitEvery, flatten } from "ramda"
2
2
  const ops = {
3
3
  $eq: 10,
4
4
  $ne: 11,
@@ -564,7 +564,7 @@ function decodeQuery(v) {
564
564
  return [op, decodeVal(v.slice(1))]
565
565
  }
566
566
 
567
- module.exports = {
567
+ export {
568
568
  encode,
569
569
  decode,
570
570
  encodePath,
package/esm/index.js ADDED
@@ -0,0 +1,7 @@
1
+ import DB from "./db.js"
2
+ import Doc from "./doc.js"
3
+ import Collection from "./collection.js"
4
+ import NFT from "./nft.js"
5
+ export { DB, Collection, Doc, NFT }
6
+ export * from "./encoder.js"
7
+ export * from "./parse.js"
@@ -1,6 +1,6 @@
1
- const { pad, toSignal, encode, encodePath, encodeVal } = require("./encoder")
1
+ import { pad, toSignal, encode, encodePath, encodeVal } from "./encoder"
2
2
 
3
- module.exports = class Json {
3
+ export default class Json {
4
4
  constructor({ size_val = 8, size_path = 4, size_json = 256 }) {
5
5
  this.size_val = size_val
6
6
  this.size_path = size_path
@@ -1,8 +1,8 @@
1
- const crypto = require("crypto")
2
- const snarkjs = require("snarkjs")
3
- const { query, pad, path, val } = require("./encoder")
4
- const { push, arr } = require("./uint")
5
- const { parse } = require("./parse")
1
+ import crypto from "crypto"
2
+ import { groth16 } from "snarkjs"
3
+ import { query, pad, path, val } from "./encoder.js"
4
+ import { push, arr } from "./uint.js"
5
+ import { parse } from "./parse.js"
6
6
 
7
7
  function coerce(o) {
8
8
  if (o instanceof Uint8Array && o.constructor.name === "Uint8Array") return o
@@ -71,12 +71,11 @@ function toCID(source) {
71
71
  return str
72
72
  }
73
73
 
74
- module.exports = class NFT {
74
+ export default class NFT {
75
75
  constructor({
76
- size_val = 5,
76
+ size_val = 34,
77
77
  size_path = 5,
78
78
  size_json = 256,
79
- nBlocks = 10,
80
79
  wasm,
81
80
  zkey,
82
81
  json,
@@ -84,7 +83,6 @@ module.exports = class NFT {
84
83
  this.json = json
85
84
  this.wasm = wasm
86
85
  this.zkey = zkey
87
- this.nBlocks = nBlocks
88
86
  this.size_val = size_val
89
87
  this.size_path = size_path
90
88
  this.size_json = size_json
@@ -108,7 +106,7 @@ module.exports = class NFT {
108
106
  const _path = this.path(pth)
109
107
  const _val = Array.isArray(cond) ? this.query(pth, cond) : this.val(pth)
110
108
  const inputs = { path: _path, val: _val, encoded }
111
- const { proof, publicSignals } = await snarkjs.groth16.fullProve(
109
+ const { proof, publicSignals } = await groth16.fullProve(
112
110
  inputs,
113
111
  this.wasm,
114
112
  this.zkey,
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -1,4 +1,4 @@
1
- const {
1
+ import {
2
2
  toArray,
3
3
  concat,
4
4
  sum,
@@ -7,12 +7,12 @@ const {
7
7
  pushArray,
8
8
  length,
9
9
  next,
10
- arr: _arr,
10
+ arr as _arr,
11
11
  push,
12
12
  pop,
13
13
  last,
14
14
  bn,
15
- } = require("./uint")
15
+ } from "./uint.js"
16
16
  const _null_ = [110, 117, 108, 108]
17
17
  const _true_ = [116, 114, 117, 101]
18
18
  const _false_ = [102, 97, 108, 115, 101]
@@ -311,4 +311,4 @@ const parse = (str, size = 100, digit = 9) => {
311
311
  return json
312
312
  }
313
313
 
314
- module.exports = { parse }
314
+ export { parse }
@@ -567,7 +567,7 @@ function next(json, c) {
567
567
  return bn([0, c[1], 0, 0, 0, 1, c[6], 0, 0])
568
568
  }
569
569
 
570
- module.exports = {
570
+ export {
571
571
  next,
572
572
  arr,
573
573
  push,
package/package.json CHANGED
@@ -1,9 +1,17 @@
1
1
  {
2
2
  "name": "zkjson",
3
- "version": "0.6.3",
3
+ "version": "0.7.0",
4
4
  "description": "Zero Knowledge Provable JSON",
5
- "main": "index.js",
6
- "license": "MIT",
5
+ "exports": {
6
+ ".": {
7
+ "require": "./cjs/index.js",
8
+ "import": "./esm/index.js"
9
+ },
10
+ "./utint": {
11
+ "require": "./cjs/uint.js",
12
+ "import": "./esm/uint.js"
13
+ }
14
+ },
7
15
  "dependencies": {
8
16
  "blake-hash": "^2.0.0",
9
17
  "blake2b": "^2.1.3",
@@ -11,5 +19,13 @@
11
19
  "ffjavascript": "^0.2.45",
12
20
  "ramda": "^0.29.1",
13
21
  "snarkjs": "^0.7.3"
14
- }
15
- }
22
+ },
23
+ "devDependencies": {
24
+ "@babel/cli": "^7.24.8",
25
+ "@babel/core": "^7.25.2",
26
+ "@babel/plugin-transform-modules-commonjs": "^7.24.8",
27
+ "@babel/preset-env": "^7.25.3"
28
+ },
29
+ "main": "cjs/index.js",
30
+ "module": "esm/index.js"
31
+ }