@gardenfi/utils 2.1.2-beta.1 → 2.1.2-beta.3
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/dist/index.cjs +1 -1
- package/dist/index.js +28 -27
- package/dist/index100.cjs +1 -1
- package/dist/index100.js +5 -105
- package/dist/index101.cjs +2 -1
- package/dist/index101.js +3 -18
- package/dist/index102.cjs +1 -1
- package/dist/index102.js +16 -76
- package/dist/index103.cjs +1 -1
- package/dist/index103.js +643 -18
- package/dist/index104.cjs +1 -1
- package/dist/index104.js +170 -10
- package/dist/index18.cjs +1 -1
- package/dist/index18.js +12 -93
- package/dist/index19.cjs +1 -1
- package/dist/index19.js +9 -9
- package/dist/index22.cjs +1 -1
- package/dist/index22.js +1 -1
- package/dist/index23.cjs +2 -1
- package/dist/index23.js +50 -17
- package/dist/index24.cjs +1 -1
- package/dist/index24.js +24 -7
- package/dist/index25.cjs +1 -1
- package/dist/index25.js +40 -44
- package/dist/index26.cjs +1 -1
- package/dist/index26.js +45 -21
- package/dist/index27.cjs +1 -1
- package/dist/index27.js +25 -8
- package/dist/index28.cjs +1 -1
- package/dist/index28.js +6 -31
- package/dist/index29.cjs +1 -1
- package/dist/index29.js +13 -26
- package/dist/index30.cjs +1 -2
- package/dist/index30.js +15 -65
- package/dist/index31.cjs +1 -1
- package/dist/index31.js +5 -51
- package/dist/index32.cjs +1 -1
- package/dist/index32.js +13 -12
- package/dist/index33.cjs +1 -1
- package/dist/index33.js +10 -24
- package/dist/index34.cjs +1 -1
- package/dist/index34.js +11 -74
- package/dist/index35.cjs +1 -1
- package/dist/index35.js +11 -23
- package/dist/index36.cjs +1 -1
- package/dist/index36.js +13 -7
- package/dist/index37.cjs +1 -1
- package/dist/index37.js +23 -32
- package/dist/index38.cjs +1 -1
- package/dist/index38.js +55 -15
- package/dist/index39.cjs +1 -1
- package/dist/index39.js +17 -2
- package/dist/index4.cjs +1 -1
- package/dist/index4.js +39 -28
- package/dist/index40.cjs +1 -1
- package/dist/index40.js +5 -8
- package/dist/index41.cjs +1 -1
- package/dist/index41.js +8 -20
- package/dist/index42.cjs +1 -1
- package/dist/index42.js +169 -39
- package/dist/index43.cjs +1 -1
- package/dist/index43.js +102 -24
- package/dist/index44.cjs +1 -1
- package/dist/index44.js +21 -6
- package/dist/index45.cjs +1 -1
- package/dist/index45.js +12 -13
- package/dist/index46.cjs +1 -1
- package/dist/index46.js +34 -15
- package/dist/index47.cjs +1 -1
- package/dist/index47.js +6 -5
- package/dist/index48.cjs +2 -1
- package/dist/index48.js +59 -13
- package/dist/index49.cjs +1 -1
- package/dist/index49.js +2 -11
- package/dist/index50.cjs +1 -1
- package/dist/index50.js +5 -11
- package/dist/index51.cjs +1 -1
- package/dist/index51.js +4 -11
- package/dist/index52.cjs +1 -1
- package/dist/index52.js +11 -13
- package/dist/index53.cjs +1 -1
- package/dist/index53.js +7 -55
- package/dist/index54.cjs +5 -1
- package/dist/index54.js +56 -16
- package/dist/index55.cjs +2 -1
- package/dist/index55.js +34 -5
- package/dist/index56.cjs +1 -1
- package/dist/index56.js +5 -8
- package/dist/index57.cjs +1 -1
- package/dist/index57.js +2 -172
- package/dist/index58.cjs +1 -1
- package/dist/index58.js +19 -101
- package/dist/index59.cjs +1 -1
- package/dist/index59.js +8 -21
- package/dist/index60.cjs +1 -1
- package/dist/index60.js +9 -11
- package/dist/index61.cjs +1 -1
- package/dist/index61.js +11 -34
- package/dist/index62.cjs +1 -1
- package/dist/index62.js +6 -6
- package/dist/index63.cjs +1 -2
- package/dist/index63.js +13 -59
- package/dist/index64.cjs +1 -1
- package/dist/index64.js +33 -2
- package/dist/index65.cjs +1 -1
- package/dist/index65.js +14 -6
- package/dist/index66.cjs +1 -1
- package/dist/index66.js +64 -4
- package/dist/index67.cjs +1 -1
- package/dist/index67.js +27 -11
- package/dist/index68.cjs +1 -5
- package/dist/index68.js +3 -57
- package/dist/index69.cjs +1 -2
- package/dist/index69.js +3 -34
- package/dist/index70.cjs +1 -1
- package/dist/index70.js +8 -5
- package/dist/index71.cjs +1 -1
- package/dist/index71.js +191 -3
- package/dist/index72.cjs +1 -1
- package/dist/index72.js +18 -21
- package/dist/index73.cjs +1 -1
- package/dist/index73.js +40 -8
- package/dist/index74.cjs +1 -1
- package/dist/index74.js +34 -10
- package/dist/index75.cjs +1 -1
- package/dist/index75.js +69 -11
- package/dist/index76.cjs +1 -1
- package/dist/index76.js +112 -6
- package/dist/index77.cjs +1 -1
- package/dist/index77.js +67 -13
- package/dist/index78.cjs +1 -1
- package/dist/index78.js +2 -33
- package/dist/index79.cjs +1 -1
- package/dist/index79.js +16 -14
- package/dist/index80.cjs +1 -1
- package/dist/index80.js +217 -58
- package/dist/index81.cjs +1 -1
- package/dist/index81.js +227 -23
- package/dist/index82.cjs +1 -1
- package/dist/index82.js +43 -3
- package/dist/index83.cjs +1 -1
- package/dist/index83.js +104 -3
- package/dist/index84.cjs +1 -1
- package/dist/index84.js +17 -8
- package/dist/index85.cjs +1 -1
- package/dist/index85.js +72 -185
- package/dist/index86.cjs +1 -1
- package/dist/index86.js +18 -18
- package/dist/index88.cjs +1 -1
- package/dist/index88.js +1 -1
- package/dist/index90.cjs +1 -1
- package/dist/index90.js +10 -38
- package/dist/index91.cjs +1 -1
- package/dist/index91.js +34 -30
- package/dist/index92.cjs +1 -1
- package/dist/index92.js +5 -70
- package/dist/index93.cjs +1 -1
- package/dist/index93.js +10 -112
- package/dist/index94.cjs +1 -1
- package/dist/index94.js +2 -68
- package/dist/index95.cjs +1 -1
- package/dist/index95.js +128 -2
- package/dist/index96.cjs +1 -1
- package/dist/index96.js +6 -16
- package/dist/index97.cjs +1 -1
- package/dist/index97.js +2 -224
- package/dist/index98.cjs +1 -1
- package/dist/index98.js +32 -226
- package/dist/index99.cjs +1 -1
- package/dist/index99.js +18 -40
- package/dist/src/lib/approve.d.ts +2 -1
- package/package.json +1 -1
- package/dist/index105.cjs +0 -1
- package/dist/index105.js +0 -41
- package/dist/index106.cjs +0 -1
- package/dist/index106.js +0 -7
- package/dist/index107.cjs +0 -1
- package/dist/index107.js +0 -13
- package/dist/index108.cjs +0 -1
- package/dist/index108.js +0 -4
- package/dist/index109.cjs +0 -1
- package/dist/index109.js +0 -130
- package/dist/index110.cjs +0 -1
- package/dist/index110.js +0 -9
- package/dist/index111.cjs +0 -1
- package/dist/index111.js +0 -4
- package/dist/index112.cjs +0 -1
- package/dist/index112.js +0 -40
- package/dist/index113.cjs +0 -1
- package/dist/index113.js +0 -23
- package/dist/index114.cjs +0 -1
- package/dist/index114.js +0 -7
- package/dist/index115.cjs +0 -2
- package/dist/index115.js +0 -5
- package/dist/index116.cjs +0 -1
- package/dist/index116.js +0 -21
- package/dist/index117.cjs +0 -1
- package/dist/index117.js +0 -646
- package/dist/index118.cjs +0 -1
- package/dist/index118.js +0 -175
package/dist/index118.js
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { validateField as z, nLength as F } from "./index97.js";
|
|
2
|
-
import { validateObject as x, bitLen as O } from "./index98.js";
|
|
3
|
-
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
4
|
-
const I = BigInt(0), p = BigInt(1);
|
|
5
|
-
function m(e, r) {
|
|
6
|
-
const t = r.negate();
|
|
7
|
-
return e ? t : r;
|
|
8
|
-
}
|
|
9
|
-
function A(e, r) {
|
|
10
|
-
if (!Number.isSafeInteger(e) || e <= 0 || e > r)
|
|
11
|
-
throw new Error("invalid window size, expected [1.." + r + "], got W=" + e);
|
|
12
|
-
}
|
|
13
|
-
function b(e, r) {
|
|
14
|
-
A(e, r);
|
|
15
|
-
const t = Math.ceil(r / e) + 1, n = 2 ** (e - 1);
|
|
16
|
-
return { windows: t, windowSize: n };
|
|
17
|
-
}
|
|
18
|
-
function L(e, r) {
|
|
19
|
-
if (!Array.isArray(e))
|
|
20
|
-
throw new Error("array expected");
|
|
21
|
-
e.forEach((t, n) => {
|
|
22
|
-
if (!(t instanceof r))
|
|
23
|
-
throw new Error("invalid point at index " + n);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
function k(e, r) {
|
|
27
|
-
if (!Array.isArray(e))
|
|
28
|
-
throw new Error("array of scalars expected");
|
|
29
|
-
e.forEach((t, n) => {
|
|
30
|
-
if (!r.isValid(t))
|
|
31
|
-
throw new Error("invalid scalar at index " + n);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
const B = /* @__PURE__ */ new WeakMap(), E = /* @__PURE__ */ new WeakMap();
|
|
35
|
-
function S(e) {
|
|
36
|
-
return E.get(e) || 1;
|
|
37
|
-
}
|
|
38
|
-
function v(e, r) {
|
|
39
|
-
return {
|
|
40
|
-
constTimeNegate: m,
|
|
41
|
-
hasPrecomputes(t) {
|
|
42
|
-
return S(t) !== 1;
|
|
43
|
-
},
|
|
44
|
-
// non-const time multiplication ladder
|
|
45
|
-
unsafeLadder(t, n, i = e.ZERO) {
|
|
46
|
-
let o = t;
|
|
47
|
-
for (; n > I; )
|
|
48
|
-
n & p && (i = i.add(o)), o = o.double(), n >>= p;
|
|
49
|
-
return i;
|
|
50
|
-
},
|
|
51
|
-
/**
|
|
52
|
-
* Creates a wNAF precomputation window. Used for caching.
|
|
53
|
-
* Default window size is set by `utils.precompute()` and is equal to 8.
|
|
54
|
-
* Number of precomputed points depends on the curve size:
|
|
55
|
-
* 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:
|
|
56
|
-
* - 𝑊 is the window size
|
|
57
|
-
* - 𝑛 is the bitlength of the curve order.
|
|
58
|
-
* For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.
|
|
59
|
-
* @param elm Point instance
|
|
60
|
-
* @param W window size
|
|
61
|
-
* @returns precomputed point tables flattened to a single array
|
|
62
|
-
*/
|
|
63
|
-
precomputeWindow(t, n) {
|
|
64
|
-
const { windows: i, windowSize: o } = b(n, r), a = [];
|
|
65
|
-
let c = t, d = c;
|
|
66
|
-
for (let h = 0; h < i; h++) {
|
|
67
|
-
d = c, a.push(d);
|
|
68
|
-
for (let w = 1; w < o; w++)
|
|
69
|
-
d = d.add(c), a.push(d);
|
|
70
|
-
c = d.double();
|
|
71
|
-
}
|
|
72
|
-
return a;
|
|
73
|
-
},
|
|
74
|
-
/**
|
|
75
|
-
* Implements ec multiplication using precomputed tables and w-ary non-adjacent form.
|
|
76
|
-
* @param W window size
|
|
77
|
-
* @param precomputes precomputed tables
|
|
78
|
-
* @param n scalar (we don't check here, but should be less than curve order)
|
|
79
|
-
* @returns real and fake (for const-time) points
|
|
80
|
-
*/
|
|
81
|
-
wNAF(t, n, i) {
|
|
82
|
-
const { windows: o, windowSize: a } = b(t, r);
|
|
83
|
-
let c = e.ZERO, d = e.BASE;
|
|
84
|
-
const h = BigInt(2 ** t - 1), w = 2 ** t, l = BigInt(t);
|
|
85
|
-
for (let u = 0; u < o; u++) {
|
|
86
|
-
const s = u * a;
|
|
87
|
-
let f = Number(i & h);
|
|
88
|
-
i >>= l, f > a && (f -= w, i += p);
|
|
89
|
-
const g = s, N = s + Math.abs(f) - 1, y = u % 2 !== 0, M = f < 0;
|
|
90
|
-
f === 0 ? d = d.add(m(y, n[g])) : c = c.add(m(M, n[N]));
|
|
91
|
-
}
|
|
92
|
-
return { p: c, f: d };
|
|
93
|
-
},
|
|
94
|
-
/**
|
|
95
|
-
* Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form.
|
|
96
|
-
* @param W window size
|
|
97
|
-
* @param precomputes precomputed tables
|
|
98
|
-
* @param n scalar (we don't check here, but should be less than curve order)
|
|
99
|
-
* @param acc accumulator point to add result of multiplication
|
|
100
|
-
* @returns point
|
|
101
|
-
*/
|
|
102
|
-
wNAFUnsafe(t, n, i, o = e.ZERO) {
|
|
103
|
-
const { windows: a, windowSize: c } = b(t, r), d = BigInt(2 ** t - 1), h = 2 ** t, w = BigInt(t);
|
|
104
|
-
for (let l = 0; l < a; l++) {
|
|
105
|
-
const u = l * c;
|
|
106
|
-
if (i === I)
|
|
107
|
-
break;
|
|
108
|
-
let s = Number(i & d);
|
|
109
|
-
if (i >>= w, s > c && (s -= h, i += p), s === 0)
|
|
110
|
-
continue;
|
|
111
|
-
let f = n[u + Math.abs(s) - 1];
|
|
112
|
-
s < 0 && (f = f.negate()), o = o.add(f);
|
|
113
|
-
}
|
|
114
|
-
return o;
|
|
115
|
-
},
|
|
116
|
-
getPrecomputes(t, n, i) {
|
|
117
|
-
let o = B.get(n);
|
|
118
|
-
return o || (o = this.precomputeWindow(n, t), t !== 1 && B.set(n, i(o))), o;
|
|
119
|
-
},
|
|
120
|
-
wNAFCached(t, n, i) {
|
|
121
|
-
const o = S(t);
|
|
122
|
-
return this.wNAF(o, this.getPrecomputes(o, t, i), n);
|
|
123
|
-
},
|
|
124
|
-
wNAFCachedUnsafe(t, n, i, o) {
|
|
125
|
-
const a = S(t);
|
|
126
|
-
return a === 1 ? this.unsafeLadder(t, n, o) : this.wNAFUnsafe(a, this.getPrecomputes(a, t, i), n, o);
|
|
127
|
-
},
|
|
128
|
-
// We calculate precomputes for elliptic curve point multiplication
|
|
129
|
-
// using windowed method. This specifies window size and
|
|
130
|
-
// stores precomputed values. Usually only base point would be precomputed.
|
|
131
|
-
setWindowSize(t, n) {
|
|
132
|
-
A(n, r), E.set(t, n), B.delete(t);
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
function Z(e, r, t, n) {
|
|
137
|
-
if (L(t, e), k(n, r), t.length !== n.length)
|
|
138
|
-
throw new Error("arrays of points and scalars must have equal length");
|
|
139
|
-
const i = e.ZERO, o = O(BigInt(t.length)), a = o > 12 ? o - 3 : o > 4 ? o - 2 : o ? 2 : 1, c = (1 << a) - 1, d = new Array(c + 1).fill(i), h = Math.floor((r.BITS - 1) / a) * a;
|
|
140
|
-
let w = i;
|
|
141
|
-
for (let l = h; l >= 0; l -= a) {
|
|
142
|
-
d.fill(i);
|
|
143
|
-
for (let s = 0; s < n.length; s++) {
|
|
144
|
-
const f = n[s], g = Number(f >> BigInt(l) & BigInt(c));
|
|
145
|
-
d[g] = d[g].add(t[s]);
|
|
146
|
-
}
|
|
147
|
-
let u = i;
|
|
148
|
-
for (let s = d.length - 1, f = i; s > 0; s--)
|
|
149
|
-
f = f.add(d[s]), u = u.add(f);
|
|
150
|
-
if (w = w.add(u), l !== 0)
|
|
151
|
-
for (let s = 0; s < a; s++)
|
|
152
|
-
w = w.double();
|
|
153
|
-
}
|
|
154
|
-
return w;
|
|
155
|
-
}
|
|
156
|
-
function U(e) {
|
|
157
|
-
return z(e.Fp), x(e, {
|
|
158
|
-
n: "bigint",
|
|
159
|
-
h: "bigint",
|
|
160
|
-
Gx: "field",
|
|
161
|
-
Gy: "field"
|
|
162
|
-
}, {
|
|
163
|
-
nBitLength: "isSafeInteger",
|
|
164
|
-
nByteLength: "isSafeInteger"
|
|
165
|
-
}), Object.freeze({
|
|
166
|
-
...F(e.n, e.nBitLength),
|
|
167
|
-
...e,
|
|
168
|
-
p: e.Fp.ORDER
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
export {
|
|
172
|
-
Z as pippenger,
|
|
173
|
-
U as validateBasic,
|
|
174
|
-
v as wNAF
|
|
175
|
-
};
|