@aztec/noir-acvm_js 0.0.0-test.0 → 0.0.1-commit.001888fc

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