@aztec/noir-acvm_js 0.0.1-commit.d431d1c → 0.0.1-commit.db765a8

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