zkjson 0.1.19 → 0.1.20

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 (2) hide show
  1. package/package.json +1 -1
  2. package/uint.js +113 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zkjson",
3
- "version": "0.1.19",
3
+ "version": "0.1.20",
4
4
  "description": "Zero Knowledge Provable JSON",
5
5
  "main": "index.js",
6
6
  "license": "MIT",
package/uint.js CHANGED
@@ -26,6 +26,63 @@ const toArray = (json, size) => {
26
26
  return j
27
27
  }
28
28
 
29
+
30
+ const arrPush = (json, size, digit, index, val) => {
31
+ var len = get(json, size, 0)
32
+ var _sum = sum(json, size, digit, 1, index + 2)
33
+ var at = _sum + 1 + len
34
+ json = insert(json, size, digit, at, val)
35
+ var alen = get(json, size, index + 1)
36
+ json = replace(json, size, digit, index + 1, alen + 1)
37
+ return json
38
+ }
39
+
40
+ const arrGet = (json, size, digit, index, index2) => {
41
+ var len = get(json, size, 0)
42
+ var _sum = sum(json, size, digit, 1, index + 1)
43
+ var at = _sum + 1 + len + index2
44
+ return get(json, size, at)
45
+ }
46
+
47
+ const pushArray = (json, size, digit, _arr, asize) => {
48
+ var jlen = length(json,size)
49
+ var alen = 0
50
+ if(jlen == 0) {
51
+ json = push(json, size, digit, 1)
52
+ }else{
53
+ alen = get(json, size, 0)
54
+ json = replace(json, size, digit, 0, alen + 1)
55
+ }
56
+ var len = length(_arr,size)
57
+ json = insert(json, size, digit, alen + 1, len)
58
+ var c = [0, asize, 0, 0, 0, 0, 0, 0, 0]
59
+ while (c[5] == 0) {
60
+ c = next(_arr, c)
61
+ json = push(json, size, digit, c[0])
62
+ }
63
+ return json
64
+ }
65
+
66
+ const popArray = (json, size, digit) => {
67
+ var jlen = length(json,size)
68
+ var alen = 0
69
+ if(jlen == 0) {
70
+ throw Error()
71
+ }else{
72
+ alen = get(json, size, 0)
73
+ }
74
+ if(alen == 1) return []
75
+ var len = get(json, size, alen)
76
+ json = replace(json, size, digit, 0, alen - 1)
77
+ var _sum = sum(json, size, digit, 1, alen)
78
+ var start = alen + 1 +_sum
79
+ var end = start + len + 1
80
+ json = remove(json, size, digit, start, end)
81
+ json = remove(json, size, digit, alen, alen + 1)
82
+ return json
83
+ }
84
+
85
+
29
86
  const length = (json, size) => {
30
87
  var _len = 0
31
88
  var c = [0, size, 0, 0, 0, 0, 0, 0, 0]
@@ -42,6 +99,42 @@ const length = (json, size) => {
42
99
  }
43
100
  }
44
101
 
102
+ const sum = (json, size, digit, start, end) =>{
103
+ var c = [0, size, 0, 0, 0, 0, 0, 0, 0]
104
+ var _sum = 0
105
+ var i = 0
106
+ while (c[5] == 0) {
107
+ c = next(json, c)
108
+ if (i >= start && i < end) _sum += c[0]
109
+ i++
110
+ }
111
+ return _sum
112
+ }
113
+
114
+ const mul = (json, size, digit, start, end) =>{
115
+ var c = [0, size, 0, 0, 0, 0, 0, 0, 0]
116
+ var _mul = 0
117
+ var i = 0
118
+ while (c[5] == 0) {
119
+ c = next(json, c)
120
+ if (i >= start && i < end) _mul *= c[0]
121
+ i++
122
+ }
123
+ return _mul
124
+ }
125
+
126
+ const remove = (json, size, digit, start, end) =>{
127
+ var _arr = arr(size)
128
+ var c = [0, size, 0, 0, 0, 0, 0, 0, 0]
129
+ var i = 0
130
+ while (c[5] == 0) {
131
+ c = next(json, c)
132
+ if (i < start || i >= end) push(_arr, size, digit, c[0])
133
+ i++
134
+ }
135
+ return _arr
136
+ }
137
+
45
138
  const slice = (json, size, digit, start, end) =>{
46
139
  var _arr = arr(size)
47
140
  var c = [0, size, 0, 0, 0, 0, 0, 0, 0]
@@ -421,5 +514,24 @@ const next = (json, c) => {
421
514
  }
422
515
 
423
516
  module.exports = {
424
- next, arr, push, length, last, pop, toArray, shift, unshift, slice, insert, replace,get
517
+ next,
518
+ arr,
519
+ push,
520
+ length,
521
+ last,
522
+ pop,
523
+ toArray,
524
+ shift,
525
+ unshift,
526
+ slice,
527
+ insert,
528
+ replace,
529
+ get,
530
+ pushArray,
531
+ arrPush,
532
+ sum,
533
+ mul,
534
+ arrGet,
535
+ remove,
536
+ popArray
425
537
  }