@provablehq/wasm 0.11.3 → 0.11.5

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.
@@ -347,38 +347,6 @@ function snarkVerify(verifying_key, inputs, proof) {
347
347
  }
348
348
  }
349
349
 
350
- /**
351
- * Verify a batch SNARK proof against multiple verifying keys and their corresponding public inputs.
352
- *
353
- * This function verifies a batch proof produced by Aleo programs that may not be deployed on chain.
354
- * Each verifying key is paired with one or more sets of public inputs (instances).
355
- *
356
- * @param {Array<string>} verifying_keys Array of verifying key strings, one per circuit
357
- * @param {Array<Array<Array<string>>>} inputs 3D array of field element strings [circuit_idx][instance_idx][field_idx]
358
- * @param {Proof} proof The batch proof to verify
359
- * @returns {boolean} True if the batch proof is valid, false otherwise
360
- * @param {Array<any>} verifying_keys
361
- * @param {Array<any>} inputs
362
- * @param {Proof} proof
363
- * @returns {boolean}
364
- */
365
- function snarkVerifyBatch(verifying_keys, inputs, proof) {
366
- try {
367
- const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
368
- _assertClass(proof, Proof);
369
- wasm.snarkVerifyBatch(retptr, addHeapObject(verifying_keys), addHeapObject(inputs), proof.__wbg_ptr);
370
- var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
371
- var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
372
- var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
373
- if (r2) {
374
- throw takeObject(r1);
375
- }
376
- return r0 !== 0;
377
- } finally {
378
- wasm.__wbindgen_add_to_stack_pointer(16);
379
- }
380
- }
381
-
382
350
  /**
383
351
  * Verify an execution. Executions with multiple transitions must have the program source code and
384
352
  * verifying keys of imported functions supplied from outside to correctly verify. Also, this does
@@ -428,23 +396,35 @@ function verifyFunctionExecution(execution, verifying_key, program, function_id,
428
396
  }
429
397
 
430
398
  /**
431
- * Set test consensus version heights for testing.
432
- *
433
- * @param {string | undefined} heights The block heights at which each consensus version applies. This input should be a simple csv list of block heights and there should be one number for each consensus version. If left undefined, the default test heights will be applied.
399
+ * Verify a batch SNARK proof against multiple verifying keys and their corresponding public inputs.
434
400
  *
435
- * @example
436
- * import { getOrInitConsensusVersionTestHeights } from '@provablehq/sdk';
401
+ * This function verifies a batch proof produced by Aleo programs that may not be deployed on chain.
402
+ * Each verifying key is paired with one or more sets of public inputs (instances).
437
403
  *
438
- * Set the consensus version heights.
439
- * getOrInitConsensusVersionTestHeights("0,1,2,3,4,5,6,7,8,9,10,11,12,13,14");
440
- * @param {string | null} [heights]
441
- * @returns {Array<any>}
404
+ * @param {Array<string>} verifying_keys Array of verifying key strings, one per circuit
405
+ * @param {Array<Array<Array<string>>>} inputs 3D array of field element strings [circuit_idx][instance_idx][field_idx]
406
+ * @param {Proof} proof The batch proof to verify
407
+ * @returns {boolean} True if the batch proof is valid, false otherwise
408
+ * @param {Array<any>} verifying_keys
409
+ * @param {Array<any>} inputs
410
+ * @param {Proof} proof
411
+ * @returns {boolean}
442
412
  */
443
- function getOrInitConsensusVersionTestHeights(heights) {
444
- var ptr0 = isLikeNone(heights) ? 0 : passStringToWasm0(heights, wasm.__wbindgen_export, wasm.__wbindgen_export2);
445
- var len0 = WASM_VECTOR_LEN;
446
- const ret = wasm.getOrInitConsensusVersionTestHeights(ptr0, len0);
447
- return takeObject(ret);
413
+ function snarkVerifyBatch(verifying_keys, inputs, proof) {
414
+ try {
415
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
416
+ _assertClass(proof, Proof);
417
+ wasm.snarkVerifyBatch(retptr, addHeapObject(verifying_keys), addHeapObject(inputs), proof.__wbg_ptr);
418
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
419
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
420
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
421
+ if (r2) {
422
+ throw takeObject(r1);
423
+ }
424
+ return r0 !== 0;
425
+ } finally {
426
+ wasm.__wbindgen_add_to_stack_pointer(16);
427
+ }
448
428
  }
449
429
 
450
430
  /**
@@ -469,6 +449,43 @@ function stringToField(string) {
469
449
  }
470
450
  }
471
451
 
452
+ /**
453
+ * Set test consensus version heights for testing.
454
+ *
455
+ * @param {string | undefined} heights The block heights at which each consensus version applies. This input should be a simple csv list of block heights and there should be one number for each consensus version. If left undefined, the default test heights will be applied.
456
+ *
457
+ * @example
458
+ * import { getOrInitConsensusVersionTestHeights } from '@provablehq/sdk';
459
+ *
460
+ * Set the consensus version heights.
461
+ * getOrInitConsensusVersionTestHeights("0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17");
462
+ * @param {string | null} [heights]
463
+ * @returns {Array<any>}
464
+ */
465
+ function getOrInitConsensusVersionTestHeights(heights) {
466
+ var ptr0 = isLikeNone(heights) ? 0 : passStringToWasm0(heights, wasm.__wbindgen_export, wasm.__wbindgen_export2);
467
+ var len0 = WASM_VECTOR_LEN;
468
+ const ret = wasm.getOrInitConsensusVersionTestHeights(ptr0, len0);
469
+ return takeObject(ret);
470
+ }
471
+
472
+ /**
473
+ * Returns the maximum number of imports allowed in a program by the
474
+ * snarkVM network implementation this SDK was built against.
475
+ *
476
+ * @returns {number} The maximum number of program imports.
477
+ *
478
+ * @example
479
+ * import { getMaxProgramImports } from '@provablehq/sdk';
480
+ *
481
+ * const maxImports = getMaxProgramImports();
482
+ * @returns {number}
483
+ */
484
+ function getMaxProgramImports() {
485
+ const ret = wasm.getMaxProgramImports();
486
+ return ret >>> 0;
487
+ }
488
+
472
489
  function passArrayJsValueToWasm0(array, malloc) {
473
490
  const ptr = malloc(array.length * 4, 4) >>> 0;
474
491
  const mem = getDataViewMemory0();
@@ -488,16 +505,16 @@ function getArrayJsValueFromWasm0(ptr, len) {
488
505
  }
489
506
  return result;
490
507
  }
491
- function __wasm_bindgen_func_elem_7384(arg0, arg1) {
492
- wasm.__wasm_bindgen_func_elem_7384(arg0, arg1);
508
+ function __wasm_bindgen_func_elem_8910(arg0, arg1, arg2) {
509
+ wasm.__wasm_bindgen_func_elem_8910(arg0, arg1, addHeapObject(arg2));
493
510
  }
494
511
 
495
- function __wasm_bindgen_func_elem_8758(arg0, arg1, arg2) {
496
- wasm.__wasm_bindgen_func_elem_8758(arg0, arg1, addHeapObject(arg2));
512
+ function __wasm_bindgen_func_elem_7472(arg0, arg1) {
513
+ wasm.__wasm_bindgen_func_elem_7472(arg0, arg1);
497
514
  }
498
515
 
499
- function __wasm_bindgen_func_elem_7657(arg0, arg1, arg2, arg3) {
500
- wasm.__wasm_bindgen_func_elem_7657(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
516
+ function __wasm_bindgen_func_elem_7744(arg0, arg1, arg2, arg3) {
517
+ wasm.__wasm_bindgen_func_elem_7744(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
501
518
  }
502
519
 
503
520
  const __wbindgen_enum_RequestCredentials = ["omit", "same-origin", "include"];
@@ -10014,6 +10031,35 @@ class Program {
10014
10031
  const ret = wasm.program_getFunctions(this.__wbg_ptr);
10015
10032
  return takeObject(ret);
10016
10033
  }
10034
+ /**
10035
+ * Get the program's name (without the `.aleo` suffix) encoded as a field element.
10036
+ *
10037
+ * This is the same value as casting the program name identifier to a field on-chain
10038
+ * (e.g. `my_program.aleo` -> `Identifier("my_program") as field`), which is used as
10039
+ * the program id in dynamic dispatch calls such as `IARC20@(token_id)`.
10040
+ *
10041
+ * @example
10042
+ * const program = aleo_wasm.Program.getCreditsProgram();
10043
+ * const field = program.nameToField(); // Field encoding of "credits"
10044
+ *
10045
+ * @returns {Field} The program name as a field element
10046
+ * @returns {Field}
10047
+ */
10048
+ nameToField() {
10049
+ try {
10050
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
10051
+ wasm.program_nameToField(retptr, this.__wbg_ptr);
10052
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
10053
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
10054
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
10055
+ if (r2) {
10056
+ throw takeObject(r1);
10057
+ }
10058
+ return Field.__wrap(r0);
10059
+ } finally {
10060
+ wasm.__wbindgen_add_to_stack_pointer(16);
10061
+ }
10062
+ }
10017
10063
  /**
10018
10064
  * Get the external call graph reachable from a specific entry function.
10019
10065
  *
@@ -10269,6 +10315,47 @@ class Program {
10269
10315
  wasm.__wbindgen_add_to_stack_pointer(16);
10270
10316
  }
10271
10317
  }
10318
+ /**
10319
+ * Determine if the program implements the ARC-20 fungible token interface (IARC20).
10320
+ *
10321
+ * This checks that the program defines a `Token` record with an `amount: u128` entry
10322
+ * (additional entries are permitted, per the interface's open record definition) and
10323
+ * that every function and view function required by ARC-20 is present with the exact
10324
+ * input and output signature defined by the standard.
10325
+ *
10326
+ * @see https://github.com/ProvableHQ/ARCs/blob/master/arc-0020/README.md
10327
+ *
10328
+ * @returns {boolean} True if the program implements the ARC-20 token interface
10329
+ * @returns {boolean}
10330
+ */
10331
+ isArc20() {
10332
+ const ret = wasm.program_isArc20(this.__wbg_ptr);
10333
+ return ret !== 0;
10334
+ }
10335
+ /**
10336
+ * Determine if the program implements the ARC-22 compliant token interface (IARC22).
10337
+ *
10338
+ * This checks that the program defines `Token` and `ComplianceRecord` records with the
10339
+ * entries required by the standard (additional entries are permitted, per the
10340
+ * interface's open record definitions), and that every function and view function
10341
+ * required by ARC-22 is present with the exact input and output signature defined by
10342
+ * the standard. The `MerkleProof` struct used by the private transfer functions may be
10343
+ * declared locally (in which case its shape must match the standard exactly) or
10344
+ * imported from another program such as a freeze list registry.
10345
+ *
10346
+ * Note: this checks the token interface (IARC22) only. The freeze list registry
10347
+ * interface (IARC22Freezelist) is typically implemented by a separate program and is
10348
+ * not required for a token program to be considered ARC-22 compliant.
10349
+ *
10350
+ * @see https://github.com/ProvableHQ/ARCs/blob/master/arc-0022/README.md
10351
+ *
10352
+ * @returns {boolean} True if the program implements the ARC-22 token interface
10353
+ * @returns {boolean}
10354
+ */
10355
+ isArc22() {
10356
+ const ret = wasm.program_isArc22(this.__wbg_ptr);
10357
+ return ret !== 0;
10358
+ }
10272
10359
  /**
10273
10360
  * Determine equality with another program
10274
10361
  *
@@ -19232,7 +19319,7 @@ function __wbg_get_imports(memory) {
19232
19319
  const ret = getObject(arg0).length;
19233
19320
  return ret;
19234
19321
  };
19235
- imports.wbg.__wbg_log_0eaae399732a802e = function(arg0, arg1) {
19322
+ imports.wbg.__wbg_log_a530da429f854235 = function(arg0, arg1) {
19236
19323
  console.log(getStringFromWasm0(arg0, arg1));
19237
19324
  };
19238
19325
  imports.wbg.__wbg_new_1acc0b6eea89d040 = function() {
@@ -19250,7 +19337,7 @@ function __wbg_get_imports(memory) {
19250
19337
  const a = state0.a;
19251
19338
  state0.a = 0;
19252
19339
  try {
19253
- return __wasm_bindgen_func_elem_7657(a, state0.b, arg0, arg1);
19340
+ return __wasm_bindgen_func_elem_7744(a, state0.b, arg0, arg1);
19254
19341
  } finally {
19255
19342
  state0.a = a;
19256
19343
  }
@@ -19422,7 +19509,7 @@ function __wbg_get_imports(memory) {
19422
19509
  const ret = Signature.__wrap(arg0);
19423
19510
  return addHeapObject(ret);
19424
19511
  };
19425
- imports.wbg.__wbg_spawnWorker_3f95ae6c0630b765 = function(arg0, arg1, arg2, arg3) {
19512
+ imports.wbg.__wbg_spawnWorker_ad641c7b32ebd520 = function(arg0, arg1, arg2, arg3) {
19426
19513
  const ret = spawnWorker(getObject(arg0), getObject(arg1), getObject(arg2), arg3 >>> 0);
19427
19514
  return addHeapObject(ret);
19428
19515
  };
@@ -19504,21 +19591,11 @@ function __wbg_get_imports(memory) {
19504
19591
  const ret = Atomics.waitAsync(getObject(arg0), arg1 >>> 0, arg2);
19505
19592
  return addHeapObject(ret);
19506
19593
  };
19507
- imports.wbg.__wbindgen_cast_073ddd2b87fab8ab = function(arg0, arg1) {
19508
- // Cast intrinsic for `Closure(Closure { dtor_idx: 360, function: Function { arguments: [], shim_idx: 467, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
19509
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_7383, __wasm_bindgen_func_elem_7384);
19510
- return addHeapObject(ret);
19511
- };
19512
19594
  imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
19513
19595
  // Cast intrinsic for `Ref(String) -> Externref`.
19514
19596
  const ret = getStringFromWasm0(arg0, arg1);
19515
19597
  return addHeapObject(ret);
19516
19598
  };
19517
- imports.wbg.__wbindgen_cast_263b62405be3c669 = function(arg0, arg1) {
19518
- // Cast intrinsic for `Closure(Closure { dtor_idx: 360, function: Function { arguments: [NamedExternref("MessageEvent")], shim_idx: 361, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
19519
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_7383, __wasm_bindgen_func_elem_8758);
19520
- return addHeapObject(ret);
19521
- };
19522
19599
  imports.wbg.__wbindgen_cast_2ddd8a25ff58642a = function(arg0, arg1) {
19523
19600
  // Cast intrinsic for `I128 -> Externref`.
19524
19601
  const ret = (BigInt.asUintN(64, arg0) | (arg1 << BigInt(64)));
@@ -19529,9 +19606,9 @@ function __wbg_get_imports(memory) {
19529
19606
  const ret = BigInt.asUintN(64, arg0);
19530
19607
  return addHeapObject(ret);
19531
19608
  };
19532
- imports.wbg.__wbindgen_cast_5cd376b701f56c0e = function(arg0, arg1) {
19533
- // Cast intrinsic for `Closure(Closure { dtor_idx: 360, function: Function { arguments: [Externref], shim_idx: 361, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
19534
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_7383, __wasm_bindgen_func_elem_8758);
19609
+ imports.wbg.__wbindgen_cast_69588da295a6a0d2 = function(arg0, arg1) {
19610
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 390, function: Function { arguments: [], shim_idx: 495, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
19611
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_7471, __wasm_bindgen_func_elem_7472);
19535
19612
  return addHeapObject(ret);
19536
19613
  };
19537
19614
  imports.wbg.__wbindgen_cast_9ae0607507abb057 = function(arg0) {
@@ -19539,11 +19616,21 @@ function __wbg_get_imports(memory) {
19539
19616
  const ret = arg0;
19540
19617
  return addHeapObject(ret);
19541
19618
  };
19619
+ imports.wbg.__wbindgen_cast_b5deba2f813aede2 = function(arg0, arg1) {
19620
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 390, function: Function { arguments: [NamedExternref("MessageEvent")], shim_idx: 391, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
19621
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_7471, __wasm_bindgen_func_elem_8910);
19622
+ return addHeapObject(ret);
19623
+ };
19542
19624
  imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) {
19543
19625
  // Cast intrinsic for `F64 -> Externref`.
19544
19626
  const ret = arg0;
19545
19627
  return addHeapObject(ret);
19546
19628
  };
19629
+ imports.wbg.__wbindgen_cast_e15614d8168764d1 = function(arg0, arg1) {
19630
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 390, function: Function { arguments: [Externref], shim_idx: 391, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
19631
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_7471, __wasm_bindgen_func_elem_8910);
19632
+ return addHeapObject(ret);
19633
+ };
19547
19634
  imports.wbg.__wbindgen_cast_e7b45dd881f38ce3 = function(arg0, arg1) {
19548
19635
  // Cast intrinsic for `U128 -> Externref`.
19549
19636
  const ret = (BigInt.asUintN(64, arg0) | (BigInt.asUintN(64, arg1) << BigInt(64)));
@@ -19647,5 +19734,5 @@ async function initThreadPool(threads) {
19647
19734
  await initThreadPool$1(new URL("worker.js", import.meta.url), threads);
19648
19735
  }
19649
19736
 
19650
- export { Address, Authorization, BHP1024, BHP256, BHP512, BHP768, Boolean, CallbackQuery, Ciphertext, ComputeKey, DynamicRecord, EncryptionToolkit, Execution, ExecutionRequest, ExecutionResponse, Field, GraphKey, Group, I128, I16, I32, I64, I8, KeyPair, Metadata, OfflineQuery, Pedersen128, Pedersen64, Plaintext, Poseidon2, Poseidon4, Poseidon8, PrivateKey, PrivateKeyCiphertext, Program, ProgramImports, ProgramManager, Proof, ProvingKey, ProvingRequest, QueryOption, RecordCiphertext, RecordPlaintext, Scalar, Signature, Transaction, Transition, U128, U16, U32, U64, U8, Value, VerifyingKey, ViewKey, getOrInitConsensusVersionTestHeights, initSync, initThreadPool, runRayonThread, setWasmLogLevel, snarkVerify, snarkVerifyBatch, stringToField, verifyFunctionExecution };
19737
+ export { Address, Authorization, BHP1024, BHP256, BHP512, BHP768, Boolean, CallbackQuery, Ciphertext, ComputeKey, DynamicRecord, EncryptionToolkit, Execution, ExecutionRequest, ExecutionResponse, Field, GraphKey, Group, I128, I16, I32, I64, I8, KeyPair, Metadata, OfflineQuery, Pedersen128, Pedersen64, Plaintext, Poseidon2, Poseidon4, Poseidon8, PrivateKey, PrivateKeyCiphertext, Program, ProgramImports, ProgramManager, Proof, ProvingKey, ProvingRequest, QueryOption, RecordCiphertext, RecordPlaintext, Scalar, Signature, Transaction, Transition, U128, U16, U32, U64, U8, Value, VerifyingKey, ViewKey, getMaxProgramImports, getOrInitConsensusVersionTestHeights, initSync, initThreadPool, runRayonThread, setWasmLogLevel, snarkVerify, snarkVerifyBatch, stringToField, verifyFunctionExecution };
19651
19738
  //# sourceMappingURL=index.js.map