@aztec/noir-acvm_js 0.0.1-commit.6d3c34e → 0.0.1-commit.7035c9bd6

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/nodejs/acvm_js.js CHANGED
@@ -1,232 +1,155 @@
1
+ /* @ts-self-types="./acvm_js.d.ts" */
1
2
 
2
- let imports = {};
3
- imports['__wbindgen_placeholder__'] = module.exports;
4
- let wasm;
5
- const { TextDecoder, TextEncoder } = require(`util`);
6
-
7
- function addToExternrefTable0(obj) {
8
- const idx = wasm.__externref_table_alloc();
9
- wasm.__wbindgen_export_2.set(idx, obj);
10
- return idx;
11
- }
12
-
13
- function handleError(f, args) {
14
- try {
15
- return f.apply(this, args);
16
- } catch (e) {
17
- const idx = addToExternrefTable0(e);
18
- wasm.__wbindgen_exn_store(idx);
19
- }
20
- }
21
-
22
- let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
23
-
24
- cachedTextDecoder.decode();
25
-
26
- let cachedUint8ArrayMemory0 = null;
27
-
28
- function getUint8ArrayMemory0() {
29
- if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
30
- cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
31
- }
32
- return cachedUint8ArrayMemory0;
3
+ /**
4
+ * Performs a bitwise AND operation between `lhs` and `rhs`
5
+ * @param {string} lhs
6
+ * @param {string} rhs
7
+ * @returns {string}
8
+ */
9
+ function and(lhs, rhs) {
10
+ const ret = wasm.and(lhs, rhs);
11
+ return ret;
33
12
  }
13
+ exports.and = and;
34
14
 
35
- function getStringFromWasm0(ptr, len) {
36
- ptr = ptr >>> 0;
37
- return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
15
+ /**
16
+ * Calculates the Blake2s256 hash of the input bytes
17
+ * @param {Uint8Array} inputs
18
+ * @returns {Uint8Array}
19
+ */
20
+ function blake2s256(inputs) {
21
+ const ptr0 = passArray8ToWasm0(inputs, wasm.__wbindgen_malloc);
22
+ const len0 = WASM_VECTOR_LEN;
23
+ const ret = wasm.blake2s256(ptr0, len0);
24
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
25
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
26
+ return v2;
38
27
  }
28
+ exports.blake2s256 = blake2s256;
39
29
 
40
- let WASM_VECTOR_LEN = 0;
41
-
42
- let cachedTextEncoder = new TextEncoder('utf-8');
43
-
44
- const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'
45
- ? function (arg, view) {
46
- return cachedTextEncoder.encodeInto(arg, view);
30
+ /**
31
+ * Returns the `BuildInfo` object containing information about how the installed package was built.
32
+ * @returns {BuildInfo} - Information on how the installed package was built.
33
+ */
34
+ function buildInfo() {
35
+ const ret = wasm.buildInfo();
36
+ return ret;
47
37
  }
48
- : function (arg, view) {
49
- const buf = cachedTextEncoder.encode(arg);
50
- view.set(buf);
51
- return {
52
- read: arg.length,
53
- written: buf.length
54
- };
55
- });
38
+ exports.buildInfo = buildInfo;
56
39
 
57
- function passStringToWasm0(arg, malloc, realloc) {
58
-
59
- if (realloc === undefined) {
60
- const buf = cachedTextEncoder.encode(arg);
61
- const ptr = malloc(buf.length, 1) >>> 0;
62
- getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
63
- WASM_VECTOR_LEN = buf.length;
64
- return ptr;
65
- }
66
-
67
- let len = arg.length;
68
- let ptr = malloc(len, 1) >>> 0;
69
-
70
- const mem = getUint8ArrayMemory0();
71
-
72
- let offset = 0;
73
-
74
- for (; offset < len; offset++) {
75
- const code = arg.charCodeAt(offset);
76
- if (code > 0x7F) break;
77
- mem[ptr + offset] = code;
78
- }
79
-
80
- if (offset !== len) {
81
- if (offset !== 0) {
82
- arg = arg.slice(offset);
83
- }
84
- ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
85
- const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
86
- const ret = encodeString(arg, view);
87
-
88
- offset += ret.written;
89
- ptr = realloc(ptr, len, offset, 1) >>> 0;
40
+ /**
41
+ * Compresses a `WitnessMap` into the binary format outputted by Nargo.
42
+ *
43
+ * @param {WitnessMap} witness_map - A witness map.
44
+ * @returns {Uint8Array} A compressed witness map
45
+ */
46
+ function compressWitness(witness_map) {
47
+ const ret = wasm.compressWitness(witness_map);
48
+ if (ret[3]) {
49
+ throw takeFromExternrefTable0(ret[2]);
90
50
  }
91
-
92
- WASM_VECTOR_LEN = offset;
93
- return ptr;
51
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
52
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
53
+ return v1;
94
54
  }
55
+ exports.compressWitness = compressWitness;
95
56
 
96
- let cachedDataViewMemory0 = null;
97
-
98
- function getDataViewMemory0() {
99
- if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
100
- cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
57
+ /**
58
+ * Compresses a `WitnessStack` into the binary format outputted by Nargo.
59
+ *
60
+ * @param {WitnessStack} witness_stack - A witness stack.
61
+ * @returns {Uint8Array} A compressed witness stack
62
+ */
63
+ function compressWitnessStack(witness_stack) {
64
+ const ret = wasm.compressWitnessStack(witness_stack);
65
+ if (ret[3]) {
66
+ throw takeFromExternrefTable0(ret[2]);
101
67
  }
102
- return cachedDataViewMemory0;
103
- }
104
-
105
- function isLikeNone(x) {
106
- return x === undefined || x === null;
107
- }
108
-
109
- const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')
110
- ? { register: () => {}, unregister: () => {} }
111
- : new FinalizationRegistry(state => {
112
- wasm.__wbindgen_export_6.get(state.dtor)(state.a, state.b)
113
- });
114
-
115
- function makeMutClosure(arg0, arg1, dtor, f) {
116
- const state = { a: arg0, b: arg1, cnt: 1, dtor };
117
- const real = (...args) => {
118
- // First up with a closure we increment the internal reference
119
- // count. This ensures that the Rust closure environment won't
120
- // be deallocated while we're invoking it.
121
- state.cnt++;
122
- const a = state.a;
123
- state.a = 0;
124
- try {
125
- return f(a, state.b, ...args);
126
- } finally {
127
- if (--state.cnt === 0) {
128
- wasm.__wbindgen_export_6.get(state.dtor)(a, state.b);
129
- CLOSURE_DTORS.unregister(state);
130
- } else {
131
- state.a = a;
132
- }
133
- }
134
- };
135
- real.original = state;
136
- CLOSURE_DTORS.register(real, state, state);
137
- return real;
68
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
69
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
70
+ return v1;
138
71
  }
72
+ exports.compressWitnessStack = compressWitnessStack;
139
73
 
140
- function debugString(val) {
141
- // primitive types
142
- const type = typeof val;
143
- if (type == 'number' || type == 'boolean' || val == null) {
144
- return `${val}`;
145
- }
146
- if (type == 'string') {
147
- return `"${val}"`;
148
- }
149
- if (type == 'symbol') {
150
- const description = val.description;
151
- if (description == null) {
152
- return 'Symbol';
153
- } else {
154
- return `Symbol(${description})`;
155
- }
156
- }
157
- if (type == 'function') {
158
- const name = val.name;
159
- if (typeof name == 'string' && name.length > 0) {
160
- return `Function(${name})`;
161
- } else {
162
- return 'Function';
163
- }
164
- }
165
- // objects
166
- if (Array.isArray(val)) {
167
- const length = val.length;
168
- let debug = '[';
169
- if (length > 0) {
170
- debug += debugString(val[0]);
171
- }
172
- for(let i = 1; i < length; i++) {
173
- debug += ', ' + debugString(val[i]);
174
- }
175
- debug += ']';
176
- return debug;
177
- }
178
- // Test for built-in
179
- const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
180
- let className;
181
- if (builtInMatches && builtInMatches.length > 1) {
182
- className = builtInMatches[1];
183
- } else {
184
- // Failed to match the standard '[object ClassName]'
185
- return toString.call(val);
186
- }
187
- if (className == 'Object') {
188
- // we're a user defined class or Object
189
- // JSON.stringify avoids problems with cycles, and is generally much
190
- // easier than looping through ownProperties of `val`.
191
- try {
192
- return 'Object(' + JSON.stringify(val) + ')';
193
- } catch (_) {
194
- return 'Object';
195
- }
196
- }
197
- // errors
198
- if (val instanceof Error) {
199
- return `${val.name}: ${val.message}\n${val.stack}`;
74
+ /**
75
+ * Decompresses a compressed witness as outputted by Nargo into a `WitnessMap`.
76
+ * This should be used to only fetch the witness map for the main function.
77
+ *
78
+ * @param {Uint8Array} compressed_witness - A compressed witness.
79
+ * @returns {WitnessMap} The decompressed witness map.
80
+ */
81
+ function decompressWitness(compressed_witness) {
82
+ const ptr0 = passArray8ToWasm0(compressed_witness, wasm.__wbindgen_malloc);
83
+ const len0 = WASM_VECTOR_LEN;
84
+ const ret = wasm.decompressWitness(ptr0, len0);
85
+ if (ret[2]) {
86
+ throw takeFromExternrefTable0(ret[1]);
200
87
  }
201
- // TODO we could test for more things here, like `Set`s and `Map`s.
202
- return className;
88
+ return takeFromExternrefTable0(ret[0]);
203
89
  }
90
+ exports.decompressWitness = decompressWitness;
204
91
 
205
- function takeFromExternrefTable0(idx) {
206
- const value = wasm.__wbindgen_export_2.get(idx);
207
- wasm.__externref_table_dealloc(idx);
208
- return value;
209
- }
210
92
  /**
211
- * Sets the package's logging level.
93
+ * Decompresses a compressed witness stack as outputted by Nargo into a `WitnessStack`.
212
94
  *
213
- * @param {LogLevel} level - The maximum level of logging to be emitted.
95
+ * @param {Uint8Array} compressed_witness - A compressed witness.
96
+ * @returns {WitnessStack} The decompressed witness stack.
214
97
  */
215
- module.exports.initLogLevel = function(filter) {
216
- const ptr0 = passStringToWasm0(filter, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
98
+ function decompressWitnessStack(compressed_witness) {
99
+ const ptr0 = passArray8ToWasm0(compressed_witness, wasm.__wbindgen_malloc);
217
100
  const len0 = WASM_VECTOR_LEN;
218
- const ret = wasm.initLogLevel(ptr0, len0);
219
- if (ret[1]) {
220
- throw takeFromExternrefTable0(ret[0]);
101
+ const ret = wasm.decompressWitnessStack(ptr0, len0);
102
+ if (ret[2]) {
103
+ throw takeFromExternrefTable0(ret[1]);
221
104
  }
222
- };
105
+ return takeFromExternrefTable0(ret[0]);
106
+ }
107
+ exports.decompressWitnessStack = decompressWitnessStack;
223
108
 
224
- function passArray8ToWasm0(arg, malloc) {
225
- const ptr = malloc(arg.length * 1, 1) >>> 0;
226
- getUint8ArrayMemory0().set(arg, ptr / 1);
227
- WASM_VECTOR_LEN = arg.length;
228
- return ptr;
109
+ /**
110
+ * Verifies a ECDSA signature over the secp256k1 curve.
111
+ * @param {Uint8Array} hashed_msg
112
+ * @param {Uint8Array} public_key_x_bytes
113
+ * @param {Uint8Array} public_key_y_bytes
114
+ * @param {Uint8Array} signature
115
+ * @returns {boolean}
116
+ */
117
+ function ecdsa_secp256k1_verify(hashed_msg, public_key_x_bytes, public_key_y_bytes, signature) {
118
+ const ptr0 = passArray8ToWasm0(hashed_msg, wasm.__wbindgen_malloc);
119
+ const len0 = WASM_VECTOR_LEN;
120
+ const ptr1 = passArray8ToWasm0(public_key_x_bytes, wasm.__wbindgen_malloc);
121
+ const len1 = WASM_VECTOR_LEN;
122
+ const ptr2 = passArray8ToWasm0(public_key_y_bytes, wasm.__wbindgen_malloc);
123
+ const len2 = WASM_VECTOR_LEN;
124
+ const ptr3 = passArray8ToWasm0(signature, wasm.__wbindgen_malloc);
125
+ const len3 = WASM_VECTOR_LEN;
126
+ const ret = wasm.ecdsa_secp256k1_verify(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
127
+ return ret !== 0;
229
128
  }
129
+ exports.ecdsa_secp256k1_verify = ecdsa_secp256k1_verify;
130
+
131
+ /**
132
+ * Verifies a ECDSA signature over the secp256r1 curve.
133
+ * @param {Uint8Array} hashed_msg
134
+ * @param {Uint8Array} public_key_x_bytes
135
+ * @param {Uint8Array} public_key_y_bytes
136
+ * @param {Uint8Array} signature
137
+ * @returns {boolean}
138
+ */
139
+ function ecdsa_secp256r1_verify(hashed_msg, public_key_x_bytes, public_key_y_bytes, signature) {
140
+ const ptr0 = passArray8ToWasm0(hashed_msg, wasm.__wbindgen_malloc);
141
+ const len0 = WASM_VECTOR_LEN;
142
+ const ptr1 = passArray8ToWasm0(public_key_x_bytes, wasm.__wbindgen_malloc);
143
+ const len1 = WASM_VECTOR_LEN;
144
+ const ptr2 = passArray8ToWasm0(public_key_y_bytes, wasm.__wbindgen_malloc);
145
+ const len2 = WASM_VECTOR_LEN;
146
+ const ptr3 = passArray8ToWasm0(signature, wasm.__wbindgen_malloc);
147
+ const len3 = WASM_VECTOR_LEN;
148
+ const ret = wasm.ecdsa_secp256r1_verify(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
149
+ return ret !== 0;
150
+ }
151
+ exports.ecdsa_secp256r1_verify = ecdsa_secp256r1_verify;
152
+
230
153
  /**
231
154
  * Executes an ACIR circuit to generate the solved witness from the initial witness.
232
155
  *
@@ -235,12 +158,13 @@ function passArray8ToWasm0(arg, malloc) {
235
158
  * @param {ForeignCallHandler} foreign_call_handler - A callback to process any foreign calls from the circuit.
236
159
  * @returns {WitnessMap} The solved witness calculated by executing the circuit on the provided inputs.
237
160
  */
238
- module.exports.executeCircuit = function(program, initial_witness, foreign_call_handler) {
161
+ function executeCircuit(program, initial_witness, foreign_call_handler) {
239
162
  const ptr0 = passArray8ToWasm0(program, wasm.__wbindgen_malloc);
240
163
  const len0 = WASM_VECTOR_LEN;
241
164
  const ret = wasm.executeCircuit(ptr0, len0, initial_witness, foreign_call_handler);
242
165
  return ret;
243
- };
166
+ }
167
+ exports.executeCircuit = executeCircuit;
244
168
 
245
169
  /**
246
170
  * Executes an ACIR circuit to generate the solved witness from the initial witness.
@@ -251,12 +175,13 @@ module.exports.executeCircuit = function(program, initial_witness, foreign_call_
251
175
  * @param {ForeignCallHandler} foreign_call_handler - A callback to process any foreign calls from the circuit.
252
176
  * @returns {SolvedAndReturnWitness} The solved witness calculated by executing the circuit on the provided inputs, as well as the return witness indices as specified by the circuit.
253
177
  */
254
- module.exports.executeCircuitWithReturnWitness = function(program, initial_witness, foreign_call_handler) {
178
+ function executeCircuitWithReturnWitness(program, initial_witness, foreign_call_handler) {
255
179
  const ptr0 = passArray8ToWasm0(program, wasm.__wbindgen_malloc);
256
180
  const len0 = WASM_VECTOR_LEN;
257
181
  const ret = wasm.executeCircuitWithReturnWitness(ptr0, len0, initial_witness, foreign_call_handler);
258
182
  return ret;
259
- };
183
+ }
184
+ exports.executeCircuitWithReturnWitness = executeCircuitWithReturnWitness;
260
185
 
261
186
  /**
262
187
  * Executes an ACIR circuit to generate the solved witness from the initial witness.
@@ -266,122 +191,99 @@ module.exports.executeCircuitWithReturnWitness = function(program, initial_witne
266
191
  * @param {ForeignCallHandler} foreign_call_handler - A callback to process any foreign calls from the program.
267
192
  * @returns {WitnessStack} The solved witness calculated by executing the program on the provided inputs.
268
193
  */
269
- module.exports.executeProgram = function(program, initial_witness, foreign_call_handler) {
194
+ function executeProgram(program, initial_witness, foreign_call_handler) {
270
195
  const ptr0 = passArray8ToWasm0(program, wasm.__wbindgen_malloc);
271
196
  const len0 = WASM_VECTOR_LEN;
272
197
  const ret = wasm.executeProgram(ptr0, len0, initial_witness, foreign_call_handler);
273
198
  return ret;
274
- };
199
+ }
200
+ exports.executeProgram = executeProgram;
275
201
 
276
202
  /**
277
- * Extracts a `WitnessMap` containing the witness indices corresponding to the circuit's return values.
203
+ * Extracts a `WitnessMap` containing the witness indices corresponding to the circuit's public parameters.
278
204
  *
279
205
  * @param {Uint8Array} circuit - A serialized representation of an ACIR circuit
280
206
  * @param {WitnessMap} witness_map - The completed witness map after executing the circuit.
281
- * @returns {WitnessMap} A witness map containing the circuit's return values.
207
+ * @returns {WitnessMap} A witness map containing the circuit's public parameters.
282
208
  * @param {Uint8Array} program
283
- * @param {WitnessMap} witness_map
209
+ * @param {WitnessMap} solved_witness
284
210
  * @returns {WitnessMap}
285
211
  */
286
- module.exports.getReturnWitness = function(program, witness_map) {
212
+ function getPublicParametersWitness(program, solved_witness) {
287
213
  const ptr0 = passArray8ToWasm0(program, wasm.__wbindgen_malloc);
288
214
  const len0 = WASM_VECTOR_LEN;
289
- const ret = wasm.getReturnWitness(ptr0, len0, witness_map);
215
+ const ret = wasm.getPublicParametersWitness(ptr0, len0, solved_witness);
290
216
  if (ret[2]) {
291
217
  throw takeFromExternrefTable0(ret[1]);
292
218
  }
293
219
  return takeFromExternrefTable0(ret[0]);
294
- };
220
+ }
221
+ exports.getPublicParametersWitness = getPublicParametersWitness;
295
222
 
296
223
  /**
297
- * Extracts a `WitnessMap` containing the witness indices corresponding to the circuit's public parameters.
224
+ * Extracts a `WitnessMap` containing the witness indices corresponding to the circuit's public inputs.
298
225
  *
299
226
  * @param {Uint8Array} circuit - A serialized representation of an ACIR circuit
300
227
  * @param {WitnessMap} witness_map - The completed witness map after executing the circuit.
301
- * @returns {WitnessMap} A witness map containing the circuit's public parameters.
228
+ * @returns {WitnessMap} A witness map containing the circuit's public inputs.
302
229
  * @param {Uint8Array} program
303
230
  * @param {WitnessMap} solved_witness
304
231
  * @returns {WitnessMap}
305
232
  */
306
- module.exports.getPublicParametersWitness = function(program, solved_witness) {
233
+ function getPublicWitness(program, solved_witness) {
307
234
  const ptr0 = passArray8ToWasm0(program, wasm.__wbindgen_malloc);
308
235
  const len0 = WASM_VECTOR_LEN;
309
- const ret = wasm.getPublicParametersWitness(ptr0, len0, solved_witness);
236
+ const ret = wasm.getPublicWitness(ptr0, len0, solved_witness);
310
237
  if (ret[2]) {
311
238
  throw takeFromExternrefTable0(ret[1]);
312
239
  }
313
240
  return takeFromExternrefTable0(ret[0]);
314
- };
241
+ }
242
+ exports.getPublicWitness = getPublicWitness;
315
243
 
316
244
  /**
317
- * Extracts a `WitnessMap` containing the witness indices corresponding to the circuit's public inputs.
245
+ * Extracts a `WitnessMap` containing the witness indices corresponding to the circuit's return values.
318
246
  *
319
247
  * @param {Uint8Array} circuit - A serialized representation of an ACIR circuit
320
248
  * @param {WitnessMap} witness_map - The completed witness map after executing the circuit.
321
- * @returns {WitnessMap} A witness map containing the circuit's public inputs.
249
+ * @returns {WitnessMap} A witness map containing the circuit's return values.
322
250
  * @param {Uint8Array} program
323
- * @param {WitnessMap} solved_witness
251
+ * @param {WitnessMap} witness_map
324
252
  * @returns {WitnessMap}
325
253
  */
326
- module.exports.getPublicWitness = function(program, solved_witness) {
254
+ function getReturnWitness(program, witness_map) {
327
255
  const ptr0 = passArray8ToWasm0(program, wasm.__wbindgen_malloc);
328
256
  const len0 = WASM_VECTOR_LEN;
329
- const ret = wasm.getPublicWitness(ptr0, len0, solved_witness);
257
+ const ret = wasm.getReturnWitness(ptr0, len0, witness_map);
330
258
  if (ret[2]) {
331
259
  throw takeFromExternrefTable0(ret[1]);
332
260
  }
333
261
  return takeFromExternrefTable0(ret[0]);
334
- };
335
-
336
- /**
337
- * Performs a bitwise AND operation between `lhs` and `rhs`
338
- * @param {string} lhs
339
- * @param {string} rhs
340
- * @returns {string}
341
- */
342
- module.exports.and = function(lhs, rhs) {
343
- const ret = wasm.and(lhs, rhs);
344
- return ret;
345
- };
262
+ }
263
+ exports.getReturnWitness = getReturnWitness;
346
264
 
347
265
  /**
348
- * Performs a bitwise XOR operation between `lhs` and `rhs`
349
- * @param {string} lhs
350
- * @param {string} rhs
351
- * @returns {string}
266
+ * Sets the package's logging level.
267
+ *
268
+ * @param {LogLevel} level - The maximum level of logging to be emitted.
352
269
  */
353
- module.exports.xor = function(lhs, rhs) {
354
- const ret = wasm.xor(lhs, rhs);
355
- return ret;
356
- };
357
-
358
- let cachedUint32ArrayMemory0 = null;
359
-
360
- function getUint32ArrayMemory0() {
361
- if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
362
- cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
270
+ function initLogLevel(filter) {
271
+ const ptr0 = passStringToWasm0(filter, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
272
+ const len0 = WASM_VECTOR_LEN;
273
+ const ret = wasm.initLogLevel(ptr0, len0);
274
+ if (ret[1]) {
275
+ throw takeFromExternrefTable0(ret[0]);
363
276
  }
364
- return cachedUint32ArrayMemory0;
365
- }
366
-
367
- function passArray32ToWasm0(arg, malloc) {
368
- const ptr = malloc(arg.length * 4, 4) >>> 0;
369
- getUint32ArrayMemory0().set(arg, ptr / 4);
370
- WASM_VECTOR_LEN = arg.length;
371
- return ptr;
372
277
  }
278
+ exports.initLogLevel = initLogLevel;
373
279
 
374
- function getArrayU32FromWasm0(ptr, len) {
375
- ptr = ptr >>> 0;
376
- return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
377
- }
378
280
  /**
379
281
  * Sha256 compression function
380
282
  * @param {Uint32Array} inputs
381
283
  * @param {Uint32Array} state
382
284
  * @returns {Uint32Array}
383
285
  */
384
- module.exports.sha256_compression = function(inputs, state) {
286
+ function sha256_compression(inputs, state) {
385
287
  const ptr0 = passArray32ToWasm0(inputs, wasm.__wbindgen_malloc);
386
288
  const len0 = WASM_VECTOR_LEN;
387
289
  const ptr1 = passArray32ToWasm0(state, wasm.__wbindgen_malloc);
@@ -390,510 +292,568 @@ module.exports.sha256_compression = function(inputs, state) {
390
292
  var v3 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
391
293
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
392
294
  return v3;
393
- };
394
-
395
- function getArrayU8FromWasm0(ptr, len) {
396
- ptr = ptr >>> 0;
397
- return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
398
295
  }
399
- /**
400
- * Calculates the Blake2s256 hash of the input bytes
401
- * @param {Uint8Array} inputs
402
- * @returns {Uint8Array}
403
- */
404
- module.exports.blake2s256 = function(inputs) {
405
- const ptr0 = passArray8ToWasm0(inputs, wasm.__wbindgen_malloc);
406
- const len0 = WASM_VECTOR_LEN;
407
- const ret = wasm.blake2s256(ptr0, len0);
408
- var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
409
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
410
- return v2;
411
- };
296
+ exports.sha256_compression = sha256_compression;
412
297
 
413
298
  /**
414
- * Verifies a ECDSA signature over the secp256k1 curve.
415
- * @param {Uint8Array} hashed_msg
416
- * @param {Uint8Array} public_key_x_bytes
417
- * @param {Uint8Array} public_key_y_bytes
418
- * @param {Uint8Array} signature
419
- * @returns {boolean}
420
- */
421
- module.exports.ecdsa_secp256k1_verify = function(hashed_msg, public_key_x_bytes, public_key_y_bytes, signature) {
422
- const ptr0 = passArray8ToWasm0(hashed_msg, wasm.__wbindgen_malloc);
423
- const len0 = WASM_VECTOR_LEN;
424
- const ptr1 = passArray8ToWasm0(public_key_x_bytes, wasm.__wbindgen_malloc);
425
- const len1 = WASM_VECTOR_LEN;
426
- const ptr2 = passArray8ToWasm0(public_key_y_bytes, wasm.__wbindgen_malloc);
427
- const len2 = WASM_VECTOR_LEN;
428
- const ptr3 = passArray8ToWasm0(signature, wasm.__wbindgen_malloc);
429
- const len3 = WASM_VECTOR_LEN;
430
- const ret = wasm.ecdsa_secp256k1_verify(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
431
- return ret !== 0;
432
- };
433
-
434
- /**
435
- * Verifies a ECDSA signature over the secp256r1 curve.
436
- * @param {Uint8Array} hashed_msg
437
- * @param {Uint8Array} public_key_x_bytes
438
- * @param {Uint8Array} public_key_y_bytes
439
- * @param {Uint8Array} signature
440
- * @returns {boolean}
441
- */
442
- module.exports.ecdsa_secp256r1_verify = function(hashed_msg, public_key_x_bytes, public_key_y_bytes, signature) {
443
- const ptr0 = passArray8ToWasm0(hashed_msg, wasm.__wbindgen_malloc);
444
- const len0 = WASM_VECTOR_LEN;
445
- const ptr1 = passArray8ToWasm0(public_key_x_bytes, wasm.__wbindgen_malloc);
446
- const len1 = WASM_VECTOR_LEN;
447
- const ptr2 = passArray8ToWasm0(public_key_y_bytes, wasm.__wbindgen_malloc);
448
- const len2 = WASM_VECTOR_LEN;
449
- const ptr3 = passArray8ToWasm0(signature, wasm.__wbindgen_malloc);
450
- const len3 = WASM_VECTOR_LEN;
451
- const ret = wasm.ecdsa_secp256r1_verify(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
452
- return ret !== 0;
453
- };
454
-
455
- /**
456
- * Compresses a `WitnessMap` into the binary format outputted by Nargo.
457
- *
458
- * @param {WitnessMap} witness_map - A witness map.
459
- * @returns {Uint8Array} A compressed witness map
460
- */
461
- module.exports.compressWitness = function(witness_map) {
462
- const ret = wasm.compressWitness(witness_map);
463
- if (ret[3]) {
464
- throw takeFromExternrefTable0(ret[2]);
465
- }
466
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
467
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
468
- return v1;
469
- };
470
-
471
- /**
472
- * Decompresses a compressed witness as outputted by Nargo into a `WitnessMap`.
473
- * This should be used to only fetch the witness map for the main function.
474
- *
475
- * @param {Uint8Array} compressed_witness - A compressed witness.
476
- * @returns {WitnessMap} The decompressed witness map.
477
- */
478
- module.exports.decompressWitness = function(compressed_witness) {
479
- const ptr0 = passArray8ToWasm0(compressed_witness, wasm.__wbindgen_malloc);
480
- const len0 = WASM_VECTOR_LEN;
481
- const ret = wasm.decompressWitness(ptr0, len0);
482
- if (ret[2]) {
483
- throw takeFromExternrefTable0(ret[1]);
484
- }
485
- return takeFromExternrefTable0(ret[0]);
486
- };
487
-
488
- /**
489
- * Compresses a `WitnessStack` into the binary format outputted by Nargo.
490
- *
491
- * @param {WitnessStack} witness_stack - A witness stack.
492
- * @returns {Uint8Array} A compressed witness stack
493
- */
494
- module.exports.compressWitnessStack = function(witness_stack) {
495
- const ret = wasm.compressWitnessStack(witness_stack);
496
- if (ret[3]) {
497
- throw takeFromExternrefTable0(ret[2]);
498
- }
499
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
500
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
501
- return v1;
502
- };
503
-
504
- /**
505
- * Decompresses a compressed witness stack as outputted by Nargo into a `WitnessStack`.
506
- *
507
- * @param {Uint8Array} compressed_witness - A compressed witness.
508
- * @returns {WitnessStack} The decompressed witness stack.
509
- */
510
- module.exports.decompressWitnessStack = function(compressed_witness) {
511
- const ptr0 = passArray8ToWasm0(compressed_witness, wasm.__wbindgen_malloc);
512
- const len0 = WASM_VECTOR_LEN;
513
- const ret = wasm.decompressWitnessStack(ptr0, len0);
514
- if (ret[2]) {
515
- throw takeFromExternrefTable0(ret[1]);
516
- }
517
- return takeFromExternrefTable0(ret[0]);
518
- };
519
-
520
- /**
521
- * Returns the `BuildInfo` object containing information about how the installed package was built.
522
- * @returns {BuildInfo} - Information on how the installed package was built.
523
- */
524
- module.exports.buildInfo = function() {
525
- const ret = wasm.buildInfo();
526
- return ret;
527
- };
528
-
529
- function __wbg_adapter_30(arg0, arg1, arg2) {
530
- wasm.closure490_externref_shim(arg0, arg1, arg2);
531
- }
532
-
533
- function __wbg_adapter_89(arg0, arg1, arg2, arg3, arg4) {
534
- wasm.closure996_externref_shim(arg0, arg1, arg2, arg3, arg4);
535
- }
536
-
537
- function __wbg_adapter_110(arg0, arg1, arg2, arg3) {
538
- wasm.closure1000_externref_shim(arg0, arg1, arg2, arg3);
539
- }
540
-
541
- module.exports.__wbg_call_672a4d21634d4a24 = function() { return handleError(function (arg0, arg1) {
542
- const ret = arg0.call(arg1);
543
- return ret;
544
- }, arguments) };
545
-
546
- module.exports.__wbg_call_7cccdd69e0791ae2 = function() { return handleError(function (arg0, arg1, arg2) {
547
- const ret = arg0.call(arg1, arg2);
548
- return ret;
549
- }, arguments) };
550
-
551
- module.exports.__wbg_call_833bed5770ea2041 = function() { return handleError(function (arg0, arg1, arg2, arg3) {
552
- const ret = arg0.call(arg1, arg2, arg3);
553
- return ret;
554
- }, arguments) };
555
-
556
- module.exports.__wbg_constructor_536364f6bcd4616b = function(arg0) {
557
- const ret = new Error(arg0);
558
- return ret;
559
- };
560
-
561
- module.exports.__wbg_constructor_66e92e9c3ecae9e8 = function(arg0) {
562
- const ret = new Error(arg0);
563
- return ret;
564
- };
565
-
566
- module.exports.__wbg_debug_3cb59063b29f58c1 = function(arg0) {
567
- console.debug(arg0);
568
- };
569
-
570
- module.exports.__wbg_debug_e17b51583ca6a632 = function(arg0, arg1, arg2, arg3) {
571
- console.debug(arg0, arg1, arg2, arg3);
572
- };
573
-
574
- module.exports.__wbg_error_524f506f44df1645 = function(arg0) {
575
- console.error(arg0);
576
- };
577
-
578
- module.exports.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {
579
- let deferred0_0;
580
- let deferred0_1;
581
- try {
582
- deferred0_0 = arg0;
583
- deferred0_1 = arg1;
584
- console.error(getStringFromWasm0(arg0, arg1));
585
- } finally {
586
- wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
587
- }
588
- };
589
-
590
- module.exports.__wbg_error_80de38b3f7cc3c3c = function(arg0, arg1, arg2, arg3) {
591
- console.error(arg0, arg1, arg2, arg3);
592
- };
593
-
594
- module.exports.__wbg_forEach_d6a05ca96422eff9 = function(arg0, arg1, arg2) {
595
- try {
596
- var state0 = {a: arg1, b: arg2};
597
- var cb0 = (arg0, arg1, arg2) => {
598
- const a = state0.a;
599
- state0.a = 0;
299
+ * Performs a bitwise XOR operation between `lhs` and `rhs`
300
+ * @param {string} lhs
301
+ * @param {string} rhs
302
+ * @returns {string}
303
+ */
304
+ function xor(lhs, rhs) {
305
+ const ret = wasm.xor(lhs, rhs);
306
+ return ret;
307
+ }
308
+ exports.xor = xor;
309
+
310
+ function __wbg_get_imports() {
311
+ const import0 = {
312
+ __proto__: null,
313
+ __wbg___wbindgen_debug_string_ddde1867f49c2442: function(arg0, arg1) {
314
+ const ret = debugString(arg1);
315
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
316
+ const len1 = WASM_VECTOR_LEN;
317
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
318
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
319
+ },
320
+ __wbg___wbindgen_is_function_d633e708baf0d146: function(arg0) {
321
+ const ret = typeof(arg0) === 'function';
322
+ return ret;
323
+ },
324
+ __wbg___wbindgen_is_string_7debe47dc1e045c2: function(arg0) {
325
+ const ret = typeof(arg0) === 'string';
326
+ return ret;
327
+ },
328
+ __wbg___wbindgen_is_undefined_c18285b9fc34cb7d: function(arg0) {
329
+ const ret = arg0 === undefined;
330
+ return ret;
331
+ },
332
+ __wbg___wbindgen_number_get_5854912275df1894: function(arg0, arg1) {
333
+ const obj = arg1;
334
+ const ret = typeof(obj) === 'number' ? obj : undefined;
335
+ getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
336
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
337
+ },
338
+ __wbg___wbindgen_string_get_3e5751597f39a112: function(arg0, arg1) {
339
+ const obj = arg1;
340
+ const ret = typeof(obj) === 'string' ? obj : undefined;
341
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
342
+ var len1 = WASM_VECTOR_LEN;
343
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
344
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
345
+ },
346
+ __wbg___wbindgen_throw_39bc967c0e5a9b58: function(arg0, arg1) {
347
+ throw new Error(getStringFromWasm0(arg0, arg1));
348
+ },
349
+ __wbg__wbg_cb_unref_b6d832240a919168: function(arg0) {
350
+ arg0._wbg_cb_unref();
351
+ },
352
+ __wbg_call_08ad0d89caa7cb79: function() { return handleError(function (arg0, arg1, arg2) {
353
+ const ret = arg0.call(arg1, arg2);
354
+ return ret;
355
+ }, arguments); },
356
+ __wbg_call_c974f0bf2231552e: function() { return handleError(function (arg0, arg1, arg2, arg3) {
357
+ const ret = arg0.call(arg1, arg2, arg3);
358
+ return ret;
359
+ }, arguments); },
360
+ __wbg_constructor_78e91522c0c3d715: function(arg0) {
361
+ const ret = new Error(arg0);
362
+ return ret;
363
+ },
364
+ __wbg_constructor_d2b676f9277a8e3c: function(arg0) {
365
+ const ret = new Error(arg0);
366
+ return ret;
367
+ },
368
+ __wbg_debug_8804c16f548276da: function(arg0, arg1, arg2, arg3) {
369
+ console.debug(arg0, arg1, arg2, arg3);
370
+ },
371
+ __wbg_debug_e69ad32e6af73f94: function(arg0) {
372
+ console.debug(arg0);
373
+ },
374
+ __wbg_error_91d10625a3b36a08: function(arg0, arg1, arg2, arg3) {
375
+ console.error(arg0, arg1, arg2, arg3);
376
+ },
377
+ __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {
378
+ let deferred0_0;
379
+ let deferred0_1;
600
380
  try {
601
- return __wbg_adapter_89(a, state0.b, arg0, arg1, arg2);
381
+ deferred0_0 = arg0;
382
+ deferred0_1 = arg1;
383
+ console.error(getStringFromWasm0(arg0, arg1));
602
384
  } finally {
603
- state0.a = a;
385
+ wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
604
386
  }
605
- };
606
- arg0.forEach(cb0);
607
- } finally {
608
- state0.a = state0.b = 0;
609
- }
610
- };
611
-
612
- module.exports.__wbg_forEach_e1cf6f7c8ecb7dae = function(arg0, arg1, arg2) {
613
- try {
614
- var state0 = {a: arg1, b: arg2};
615
- var cb0 = (arg0, arg1) => {
616
- const a = state0.a;
617
- state0.a = 0;
387
+ },
388
+ __wbg_error_ad28debb48b5c6bb: function(arg0) {
389
+ console.error(arg0);
390
+ },
391
+ __wbg_forEach_9694464cb60ea370: function(arg0, arg1, arg2) {
618
392
  try {
619
- return __wbg_adapter_110(a, state0.b, arg0, arg1);
393
+ var state0 = {a: arg1, b: arg2};
394
+ var cb0 = (arg0, arg1) => {
395
+ const a = state0.a;
396
+ state0.a = 0;
397
+ try {
398
+ return wasm_bindgen__convert__closures_____invoke__h0821053b87210bf2(a, state0.b, arg0, arg1);
399
+ } finally {
400
+ state0.a = a;
401
+ }
402
+ };
403
+ arg0.forEach(cb0);
620
404
  } finally {
621
- state0.a = a;
405
+ state0.a = state0.b = 0;
622
406
  }
623
- };
624
- arg0.forEach(cb0);
625
- } finally {
626
- state0.a = state0.b = 0;
627
- }
628
- };
629
-
630
- module.exports.__wbg_fromEntries_524679eecb0bdc2e = function() { return handleError(function (arg0) {
631
- const ret = Object.fromEntries(arg0);
632
- return ret;
633
- }, arguments) };
634
-
635
- module.exports.__wbg_from_2a5d3e218e67aa85 = function(arg0) {
636
- const ret = Array.from(arg0);
637
- return ret;
638
- };
639
-
640
- module.exports.__wbg_get_b9b93047fe3cf45b = function(arg0, arg1) {
641
- const ret = arg0[arg1 >>> 0];
642
- return ret;
643
- };
644
-
645
- module.exports.__wbg_info_033d8b8a0838f1d3 = function(arg0, arg1, arg2, arg3) {
646
- console.info(arg0, arg1, arg2, arg3);
647
- };
648
-
649
- module.exports.__wbg_info_3daf2e093e091b66 = function(arg0) {
650
- console.info(arg0);
651
- };
652
-
653
- module.exports.__wbg_length_e2d2a49132c1b256 = function(arg0) {
654
- const ret = arg0.length;
655
- return ret;
656
- };
657
-
658
- module.exports.__wbg_new_23a2665fac83c611 = function(arg0, arg1) {
659
- try {
660
- var state0 = {a: arg0, b: arg1};
661
- var cb0 = (arg0, arg1) => {
662
- const a = state0.a;
663
- state0.a = 0;
407
+ },
408
+ __wbg_forEach_f33e388a24ae7d4f: function(arg0, arg1, arg2) {
664
409
  try {
665
- return __wbg_adapter_110(a, state0.b, arg0, arg1);
410
+ var state0 = {a: arg1, b: arg2};
411
+ var cb0 = (arg0, arg1, arg2) => {
412
+ const a = state0.a;
413
+ state0.a = 0;
414
+ try {
415
+ return wasm_bindgen__convert__closures_____invoke__h2ddee8b2ca5d93c2(a, state0.b, arg0, arg1, arg2);
416
+ } finally {
417
+ state0.a = a;
418
+ }
419
+ };
420
+ arg0.forEach(cb0);
666
421
  } finally {
667
- state0.a = a;
422
+ state0.a = state0.b = 0;
668
423
  }
669
- };
670
- const ret = new Promise(cb0);
671
- return ret;
672
- } finally {
673
- state0.a = state0.b = 0;
674
- }
675
- };
676
-
677
- module.exports.__wbg_new_5e0be73521bc8c17 = function() {
678
- const ret = new Map();
679
- return ret;
680
- };
681
-
682
- module.exports.__wbg_new_78feb108b6472713 = function() {
683
- const ret = new Array();
684
- return ret;
685
- };
424
+ },
425
+ __wbg_fromEntries_2f51c4024e2a7aa3: function() { return handleError(function (arg0) {
426
+ const ret = Object.fromEntries(arg0);
427
+ return ret;
428
+ }, arguments); },
429
+ __wbg_from_d7e888a2e9063b32: function(arg0) {
430
+ const ret = Array.from(arg0);
431
+ return ret;
432
+ },
433
+ __wbg_get_f09c3a16f8848381: function(arg0, arg1) {
434
+ const ret = arg0[arg1 >>> 0];
435
+ return ret;
436
+ },
437
+ __wbg_get_unchecked_3d0f4b91c8eca4f0: function(arg0, arg1) {
438
+ const ret = arg0[arg1 >>> 0];
439
+ return ret;
440
+ },
441
+ __wbg_info_28d530adaabdab8c: function(arg0, arg1, arg2, arg3) {
442
+ console.info(arg0, arg1, arg2, arg3);
443
+ },
444
+ __wbg_info_72e7e65fa3fc8b25: function(arg0) {
445
+ console.info(arg0);
446
+ },
447
+ __wbg_isArray_581b02d0060c9728: function(arg0) {
448
+ const ret = Array.isArray(arg0);
449
+ return ret;
450
+ },
451
+ __wbg_length_a31e05262e09b7f8: function(arg0) {
452
+ const ret = arg0.length;
453
+ return ret;
454
+ },
455
+ __wbg_new_1213b57bccbdbb66: function(arg0, arg1) {
456
+ const ret = new Error(getStringFromWasm0(arg0, arg1));
457
+ return ret;
458
+ },
459
+ __wbg_new_1faa82fcea3a8b7d: function() {
460
+ const ret = new Map();
461
+ return ret;
462
+ },
463
+ __wbg_new_227d7c05414eb861: function() {
464
+ const ret = new Error();
465
+ return ret;
466
+ },
467
+ __wbg_new_92df58a8ec3bfb6b: function() {
468
+ const ret = new Map();
469
+ return ret;
470
+ },
471
+ __wbg_new_cb7a57a3ce49e647: function() {
472
+ const ret = new Array();
473
+ return ret;
474
+ },
475
+ __wbg_new_cbee8c0d5c479eac: function() {
476
+ const ret = new Array();
477
+ return ret;
478
+ },
479
+ __wbg_new_typed_8258a0d8488ef2a2: function(arg0, arg1) {
480
+ try {
481
+ var state0 = {a: arg0, b: arg1};
482
+ var cb0 = (arg0, arg1) => {
483
+ const a = state0.a;
484
+ state0.a = 0;
485
+ try {
486
+ return wasm_bindgen__convert__closures_____invoke__h0821053b87210bf2_21(a, state0.b, arg0, arg1);
487
+ } finally {
488
+ state0.a = a;
489
+ }
490
+ };
491
+ const ret = new Promise(cb0);
492
+ return ret;
493
+ } finally {
494
+ state0.a = state0.b = 0;
495
+ }
496
+ },
497
+ __wbg_parse_6dfe891b5bafb5cd: function() { return handleError(function (arg0, arg1) {
498
+ const ret = JSON.parse(getStringFromWasm0(arg0, arg1));
499
+ return ret;
500
+ }, arguments); },
501
+ __wbg_push_a6f9488ffd3fae3b: function(arg0, arg1) {
502
+ const ret = arg0.push(arg1);
503
+ return ret;
504
+ },
505
+ __wbg_queueMicrotask_2c8dfd1056f24fdc: function(arg0) {
506
+ const ret = arg0.queueMicrotask;
507
+ return ret;
508
+ },
509
+ __wbg_queueMicrotask_8985ad63815852e7: function(arg0) {
510
+ queueMicrotask(arg0);
511
+ },
512
+ __wbg_resolve_5d61e0d10c14730a: function(arg0) {
513
+ const ret = Promise.resolve(arg0);
514
+ return ret;
515
+ },
516
+ __wbg_reverse_fcf59127ee940f96: function(arg0) {
517
+ const ret = arg0.reverse();
518
+ return ret;
519
+ },
520
+ __wbg_set_bad5c505cc70b5f8: function() { return handleError(function (arg0, arg1, arg2) {
521
+ const ret = Reflect.set(arg0, arg1, arg2);
522
+ return ret;
523
+ }, arguments); },
524
+ __wbg_set_cause_7f44b7881bde2bb6: function(arg0, arg1) {
525
+ arg0.cause = arg1;
526
+ },
527
+ __wbg_set_cfc6de03f990decf: function(arg0, arg1, arg2) {
528
+ const ret = arg0.set(arg1, arg2);
529
+ return ret;
530
+ },
531
+ __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {
532
+ const ret = arg1.stack;
533
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
534
+ const len1 = WASM_VECTOR_LEN;
535
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
536
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
537
+ },
538
+ __wbg_static_accessor_GLOBAL_THIS_14325d8cca34bb77: function() {
539
+ const ret = typeof globalThis === 'undefined' ? null : globalThis;
540
+ return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
541
+ },
542
+ __wbg_static_accessor_GLOBAL_f3a1e69f9c5a7e8e: function() {
543
+ const ret = typeof global === 'undefined' ? null : global;
544
+ return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
545
+ },
546
+ __wbg_static_accessor_SELF_50cdb5b517789aca: function() {
547
+ const ret = typeof self === 'undefined' ? null : self;
548
+ return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
549
+ },
550
+ __wbg_static_accessor_WINDOW_d6c4126e4c244380: function() {
551
+ const ret = typeof window === 'undefined' ? null : window;
552
+ return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
553
+ },
554
+ __wbg_then_d4163530723f56f4: function(arg0, arg1, arg2) {
555
+ const ret = arg0.then(arg1, arg2);
556
+ return ret;
557
+ },
558
+ __wbg_then_f1c954fe00733701: function(arg0, arg1) {
559
+ const ret = arg0.then(arg1);
560
+ return ret;
561
+ },
562
+ __wbg_values_623449cff68c6e40: function(arg0) {
563
+ const ret = Object.values(arg0);
564
+ return ret;
565
+ },
566
+ __wbg_warn_2540fe736f19ad5c: function(arg0, arg1, arg2, arg3) {
567
+ console.warn(arg0, arg1, arg2, arg3);
568
+ },
569
+ __wbg_warn_3310c7343993c074: function(arg0) {
570
+ console.warn(arg0);
571
+ },
572
+ __wbindgen_cast_0000000000000001: function(arg0, arg1) {
573
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 464, function: Function { arguments: [Externref], shim_idx: 465, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
574
+ const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h02d1ff829d90cffb, wasm_bindgen__convert__closures_____invoke__h2a9ff393f35ee476);
575
+ return ret;
576
+ },
577
+ __wbindgen_cast_0000000000000002: function(arg0) {
578
+ // Cast intrinsic for `F64 -> Externref`.
579
+ const ret = arg0;
580
+ return ret;
581
+ },
582
+ __wbindgen_cast_0000000000000003: function(arg0, arg1) {
583
+ // Cast intrinsic for `Ref(String) -> Externref`.
584
+ const ret = getStringFromWasm0(arg0, arg1);
585
+ return ret;
586
+ },
587
+ __wbindgen_init_externref_table: function() {
588
+ const table = wasm.__wbindgen_externrefs;
589
+ const offset = table.grow(4);
590
+ table.set(0, undefined);
591
+ table.set(offset + 0, undefined);
592
+ table.set(offset + 1, null);
593
+ table.set(offset + 2, true);
594
+ table.set(offset + 3, false);
595
+ },
596
+ };
597
+ return {
598
+ __proto__: null,
599
+ "./acvm_js_bg.js": import0,
600
+ };
601
+ }
686
602
 
687
- module.exports.__wbg_new_8a6f238a6ece86ea = function() {
688
- const ret = new Error();
689
- return ret;
690
- };
603
+ function wasm_bindgen__convert__closures_____invoke__h2a9ff393f35ee476(arg0, arg1, arg2) {
604
+ const ret = wasm.wasm_bindgen__convert__closures_____invoke__h2a9ff393f35ee476(arg0, arg1, arg2);
605
+ if (ret[1]) {
606
+ throw takeFromExternrefTable0(ret[0]);
607
+ }
608
+ }
691
609
 
692
- module.exports.__wbg_new_9f501325818b4158 = function() {
693
- const ret = new Array();
694
- return ret;
695
- };
610
+ function wasm_bindgen__convert__closures_____invoke__h0821053b87210bf2(arg0, arg1, arg2, arg3) {
611
+ wasm.wasm_bindgen__convert__closures_____invoke__h0821053b87210bf2(arg0, arg1, arg2, arg3);
612
+ }
696
613
 
697
- module.exports.__wbg_new_c68d7209be747379 = function(arg0, arg1) {
698
- const ret = new Error(getStringFromWasm0(arg0, arg1));
699
- return ret;
700
- };
614
+ function wasm_bindgen__convert__closures_____invoke__h0821053b87210bf2_21(arg0, arg1, arg2, arg3) {
615
+ wasm.wasm_bindgen__convert__closures_____invoke__h0821053b87210bf2_21(arg0, arg1, arg2, arg3);
616
+ }
701
617
 
702
- module.exports.__wbg_new_ec40611a7805f1f0 = function() {
703
- const ret = new Map();
704
- return ret;
705
- };
618
+ function wasm_bindgen__convert__closures_____invoke__h2ddee8b2ca5d93c2(arg0, arg1, arg2, arg3, arg4) {
619
+ wasm.wasm_bindgen__convert__closures_____invoke__h2ddee8b2ca5d93c2(arg0, arg1, arg2, arg3, arg4);
620
+ }
706
621
 
707
- module.exports.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) {
708
- const ret = new Function(getStringFromWasm0(arg0, arg1));
709
- return ret;
710
- };
622
+ function addToExternrefTable0(obj) {
623
+ const idx = wasm.__externref_table_alloc();
624
+ wasm.__wbindgen_externrefs.set(idx, obj);
625
+ return idx;
626
+ }
711
627
 
712
- module.exports.__wbg_parse_def2e24ef1252aff = function() { return handleError(function (arg0, arg1) {
713
- const ret = JSON.parse(getStringFromWasm0(arg0, arg1));
714
- return ret;
715
- }, arguments) };
628
+ const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')
629
+ ? { register: () => {}, unregister: () => {} }
630
+ : new FinalizationRegistry(state => state.dtor(state.a, state.b));
716
631
 
717
- module.exports.__wbg_push_737cfc8c1432c2c6 = function(arg0, arg1) {
718
- const ret = arg0.push(arg1);
719
- return ret;
720
- };
632
+ function debugString(val) {
633
+ // primitive types
634
+ const type = typeof val;
635
+ if (type == 'number' || type == 'boolean' || val == null) {
636
+ return `${val}`;
637
+ }
638
+ if (type == 'string') {
639
+ return `"${val}"`;
640
+ }
641
+ if (type == 'symbol') {
642
+ const description = val.description;
643
+ if (description == null) {
644
+ return 'Symbol';
645
+ } else {
646
+ return `Symbol(${description})`;
647
+ }
648
+ }
649
+ if (type == 'function') {
650
+ const name = val.name;
651
+ if (typeof name == 'string' && name.length > 0) {
652
+ return `Function(${name})`;
653
+ } else {
654
+ return 'Function';
655
+ }
656
+ }
657
+ // objects
658
+ if (Array.isArray(val)) {
659
+ const length = val.length;
660
+ let debug = '[';
661
+ if (length > 0) {
662
+ debug += debugString(val[0]);
663
+ }
664
+ for(let i = 1; i < length; i++) {
665
+ debug += ', ' + debugString(val[i]);
666
+ }
667
+ debug += ']';
668
+ return debug;
669
+ }
670
+ // Test for built-in
671
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
672
+ let className;
673
+ if (builtInMatches && builtInMatches.length > 1) {
674
+ className = builtInMatches[1];
675
+ } else {
676
+ // Failed to match the standard '[object ClassName]'
677
+ return toString.call(val);
678
+ }
679
+ if (className == 'Object') {
680
+ // we're a user defined class or Object
681
+ // JSON.stringify avoids problems with cycles, and is generally much
682
+ // easier than looping through ownProperties of `val`.
683
+ try {
684
+ return 'Object(' + JSON.stringify(val) + ')';
685
+ } catch (_) {
686
+ return 'Object';
687
+ }
688
+ }
689
+ // errors
690
+ if (val instanceof Error) {
691
+ return `${val.name}: ${val.message}\n${val.stack}`;
692
+ }
693
+ // TODO we could test for more things here, like `Set`s and `Map`s.
694
+ return className;
695
+ }
721
696
 
722
- module.exports.__wbg_queueMicrotask_97d92b4fcc8a61c5 = function(arg0) {
723
- queueMicrotask(arg0);
724
- };
697
+ function getArrayU32FromWasm0(ptr, len) {
698
+ ptr = ptr >>> 0;
699
+ return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
700
+ }
725
701
 
726
- module.exports.__wbg_queueMicrotask_d3219def82552485 = function(arg0) {
727
- const ret = arg0.queueMicrotask;
728
- return ret;
729
- };
702
+ function getArrayU8FromWasm0(ptr, len) {
703
+ ptr = ptr >>> 0;
704
+ return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
705
+ }
730
706
 
731
- module.exports.__wbg_resolve_4851785c9c5f573d = function(arg0) {
732
- const ret = Promise.resolve(arg0);
733
- return ret;
734
- };
707
+ let cachedDataViewMemory0 = null;
708
+ function getDataViewMemory0() {
709
+ if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
710
+ cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
711
+ }
712
+ return cachedDataViewMemory0;
713
+ }
735
714
 
736
- module.exports.__wbg_reverse_71c11f9686a5c11b = function(arg0) {
737
- const ret = arg0.reverse();
738
- return ret;
739
- };
715
+ function getStringFromWasm0(ptr, len) {
716
+ ptr = ptr >>> 0;
717
+ return decodeText(ptr, len);
718
+ }
740
719
 
741
- module.exports.__wbg_set_8fc6bf8a5b1071d1 = function(arg0, arg1, arg2) {
742
- const ret = arg0.set(arg1, arg2);
743
- return ret;
744
- };
720
+ let cachedUint32ArrayMemory0 = null;
721
+ function getUint32ArrayMemory0() {
722
+ if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
723
+ cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
724
+ }
725
+ return cachedUint32ArrayMemory0;
726
+ }
745
727
 
746
- module.exports.__wbg_set_bb8cecf6a62b9f46 = function() { return handleError(function (arg0, arg1, arg2) {
747
- const ret = Reflect.set(arg0, arg1, arg2);
748
- return ret;
749
- }, arguments) };
728
+ let cachedUint8ArrayMemory0 = null;
729
+ function getUint8ArrayMemory0() {
730
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
731
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
732
+ }
733
+ return cachedUint8ArrayMemory0;
734
+ }
750
735
 
751
- module.exports.__wbg_setcause_180f5110152d3ce3 = function(arg0, arg1) {
752
- arg0.cause = arg1;
753
- };
736
+ function handleError(f, args) {
737
+ try {
738
+ return f.apply(this, args);
739
+ } catch (e) {
740
+ const idx = addToExternrefTable0(e);
741
+ wasm.__wbindgen_exn_store(idx);
742
+ }
743
+ }
754
744
 
755
- module.exports.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {
756
- const ret = arg1.stack;
757
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
758
- const len1 = WASM_VECTOR_LEN;
759
- getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
760
- getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
761
- };
762
-
763
- module.exports.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function() {
764
- const ret = typeof global === 'undefined' ? null : global;
765
- return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
766
- };
767
-
768
- module.exports.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function() {
769
- const ret = typeof globalThis === 'undefined' ? null : globalThis;
770
- return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
771
- };
772
-
773
- module.exports.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function() {
774
- const ret = typeof self === 'undefined' ? null : self;
775
- return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
776
- };
777
-
778
- module.exports.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function() {
779
- const ret = typeof window === 'undefined' ? null : window;
780
- return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
781
- };
782
-
783
- module.exports.__wbg_then_44b73946d2fb3e7d = function(arg0, arg1) {
784
- const ret = arg0.then(arg1);
785
- return ret;
786
- };
745
+ function isLikeNone(x) {
746
+ return x === undefined || x === null;
747
+ }
787
748
 
788
- module.exports.__wbg_then_48b406749878a531 = function(arg0, arg1, arg2) {
789
- const ret = arg0.then(arg1, arg2);
790
- return ret;
791
- };
749
+ function makeMutClosure(arg0, arg1, dtor, f) {
750
+ const state = { a: arg0, b: arg1, cnt: 1, dtor };
751
+ const real = (...args) => {
792
752
 
793
- module.exports.__wbg_values_fcb8ba8c0aad8b58 = function(arg0) {
794
- const ret = Object.values(arg0);
795
- return ret;
796
- };
753
+ // First up with a closure we increment the internal reference
754
+ // count. This ensures that the Rust closure environment won't
755
+ // be deallocated while we're invoking it.
756
+ state.cnt++;
757
+ const a = state.a;
758
+ state.a = 0;
759
+ try {
760
+ return f(a, state.b, ...args);
761
+ } finally {
762
+ state.a = a;
763
+ real._wbg_cb_unref();
764
+ }
765
+ };
766
+ real._wbg_cb_unref = () => {
767
+ if (--state.cnt === 0) {
768
+ state.dtor(state.a, state.b);
769
+ state.a = 0;
770
+ CLOSURE_DTORS.unregister(state);
771
+ }
772
+ };
773
+ CLOSURE_DTORS.register(real, state, state);
774
+ return real;
775
+ }
797
776
 
798
- module.exports.__wbg_warn_4ca3906c248c47c4 = function(arg0) {
799
- console.warn(arg0);
800
- };
777
+ function passArray32ToWasm0(arg, malloc) {
778
+ const ptr = malloc(arg.length * 4, 4) >>> 0;
779
+ getUint32ArrayMemory0().set(arg, ptr / 4);
780
+ WASM_VECTOR_LEN = arg.length;
781
+ return ptr;
782
+ }
801
783
 
802
- module.exports.__wbg_warn_aaf1f4664a035bd6 = function(arg0, arg1, arg2, arg3) {
803
- console.warn(arg0, arg1, arg2, arg3);
804
- };
784
+ function passArray8ToWasm0(arg, malloc) {
785
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
786
+ getUint8ArrayMemory0().set(arg, ptr / 1);
787
+ WASM_VECTOR_LEN = arg.length;
788
+ return ptr;
789
+ }
805
790
 
806
- module.exports.__wbindgen_cb_drop = function(arg0) {
807
- const obj = arg0.original;
808
- if (obj.cnt-- == 1) {
809
- obj.a = 0;
810
- return true;
791
+ function passStringToWasm0(arg, malloc, realloc) {
792
+ if (realloc === undefined) {
793
+ const buf = cachedTextEncoder.encode(arg);
794
+ const ptr = malloc(buf.length, 1) >>> 0;
795
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
796
+ WASM_VECTOR_LEN = buf.length;
797
+ return ptr;
811
798
  }
812
- const ret = false;
813
- return ret;
814
- };
815
799
 
816
- module.exports.__wbindgen_closure_wrapper1603 = function(arg0, arg1, arg2) {
817
- const ret = makeMutClosure(arg0, arg1, 491, __wbg_adapter_30);
818
- return ret;
819
- };
800
+ let len = arg.length;
801
+ let ptr = malloc(len, 1) >>> 0;
820
802
 
821
- module.exports.__wbindgen_debug_string = function(arg0, arg1) {
822
- const ret = debugString(arg1);
823
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
824
- const len1 = WASM_VECTOR_LEN;
825
- getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
826
- getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
827
- };
828
-
829
- module.exports.__wbindgen_init_externref_table = function() {
830
- const table = wasm.__wbindgen_export_2;
831
- const offset = table.grow(4);
832
- table.set(0, undefined);
833
- table.set(offset + 0, undefined);
834
- table.set(offset + 1, null);
835
- table.set(offset + 2, true);
836
- table.set(offset + 3, false);
837
- ;
838
- };
839
-
840
- module.exports.__wbindgen_is_array = function(arg0) {
841
- const ret = Array.isArray(arg0);
842
- return ret;
843
- };
803
+ const mem = getUint8ArrayMemory0();
844
804
 
845
- module.exports.__wbindgen_is_function = function(arg0) {
846
- const ret = typeof(arg0) === 'function';
847
- return ret;
848
- };
805
+ let offset = 0;
849
806
 
850
- module.exports.__wbindgen_is_string = function(arg0) {
851
- const ret = typeof(arg0) === 'string';
852
- return ret;
853
- };
807
+ for (; offset < len; offset++) {
808
+ const code = arg.charCodeAt(offset);
809
+ if (code > 0x7F) break;
810
+ mem[ptr + offset] = code;
811
+ }
812
+ if (offset !== len) {
813
+ if (offset !== 0) {
814
+ arg = arg.slice(offset);
815
+ }
816
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
817
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
818
+ const ret = cachedTextEncoder.encodeInto(arg, view);
854
819
 
855
- module.exports.__wbindgen_is_undefined = function(arg0) {
856
- const ret = arg0 === undefined;
857
- return ret;
858
- };
820
+ offset += ret.written;
821
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
822
+ }
859
823
 
860
- module.exports.__wbindgen_number_get = function(arg0, arg1) {
861
- const obj = arg1;
862
- const ret = typeof(obj) === 'number' ? obj : undefined;
863
- getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
864
- getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
865
- };
824
+ WASM_VECTOR_LEN = offset;
825
+ return ptr;
826
+ }
866
827
 
867
- module.exports.__wbindgen_number_new = function(arg0) {
868
- const ret = arg0;
869
- return ret;
870
- };
871
-
872
- module.exports.__wbindgen_string_get = function(arg0, arg1) {
873
- const obj = arg1;
874
- const ret = typeof(obj) === 'string' ? obj : undefined;
875
- var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
876
- var len1 = WASM_VECTOR_LEN;
877
- getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
878
- getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
879
- };
880
-
881
- module.exports.__wbindgen_string_new = function(arg0, arg1) {
882
- const ret = getStringFromWasm0(arg0, arg1);
883
- return ret;
884
- };
828
+ function takeFromExternrefTable0(idx) {
829
+ const value = wasm.__wbindgen_externrefs.get(idx);
830
+ wasm.__externref_table_dealloc(idx);
831
+ return value;
832
+ }
833
+
834
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
835
+ cachedTextDecoder.decode();
836
+ function decodeText(ptr, len) {
837
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
838
+ }
885
839
 
886
- module.exports.__wbindgen_throw = function(arg0, arg1) {
887
- throw new Error(getStringFromWasm0(arg0, arg1));
888
- };
840
+ const cachedTextEncoder = new TextEncoder();
889
841
 
890
- const path = require('path').join(__dirname, 'acvm_js_bg.wasm');
891
- const bytes = require('fs').readFileSync(path);
842
+ if (!('encodeInto' in cachedTextEncoder)) {
843
+ cachedTextEncoder.encodeInto = function (arg, view) {
844
+ const buf = cachedTextEncoder.encode(arg);
845
+ view.set(buf);
846
+ return {
847
+ read: arg.length,
848
+ written: buf.length
849
+ };
850
+ };
851
+ }
892
852
 
893
- const wasmModule = new WebAssembly.Module(bytes);
894
- const wasmInstance = new WebAssembly.Instance(wasmModule, imports);
895
- wasm = wasmInstance.exports;
896
- module.exports.__wasm = wasm;
853
+ let WASM_VECTOR_LEN = 0;
897
854
 
855
+ const wasmPath = `${__dirname}/acvm_js_bg.wasm`;
856
+ const wasmBytes = require('fs').readFileSync(wasmPath);
857
+ const wasmModule = new WebAssembly.Module(wasmBytes);
858
+ let wasm = new WebAssembly.Instance(wasmModule, __wbg_get_imports()).exports;
898
859
  wasm.__wbindgen_start();
899
-