@aztec-foundation/noir-acvm_js 0.0.1-commit.b66364b

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