@crisp-e3/zk-inputs 0.18.0 → 0.19.1

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/dist/index.d.ts CHANGED
@@ -23,6 +23,10 @@ export class ZKInputsGenerator {
23
23
  * Encrypt a vote from JavaScript.
24
24
  */
25
25
  encryptVote(public_key: Uint8Array, vote: BigInt64Array): Uint8Array;
26
+ /**
27
+ * Create a JavaScript CRISP ZK inputs generator with a named BFV preset.
28
+ */
29
+ static fromPreset(preset: string): ZKInputsGenerator;
26
30
  /**
27
31
  * Generate the CRISP ZK inputs for one ballot from JavaScript.
28
32
  *
@@ -73,6 +77,7 @@ export interface InitOutput {
73
77
  readonly zkinputsgenerator_computeCtCommitment: (a: number, b: number, c: number) => [number, number, number, number];
74
78
  readonly zkinputsgenerator_decryptVote: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
75
79
  readonly zkinputsgenerator_encryptVote: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
80
+ readonly zkinputsgenerator_fromPreset: (a: number, b: number) => [number, number, number];
76
81
  readonly zkinputsgenerator_generateInputs: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
77
82
  readonly zkinputsgenerator_generateKeys: (a: number) => [number, number, number];
78
83
  readonly zkinputsgenerator_getBFVParams: (a: number) => [number, number, number];
@@ -85,6 +90,7 @@ export interface InitOutput {
85
90
  readonly __wbindgen_malloc: (a: number, b: number) => number;
86
91
  readonly __externref_table_dealloc: (a: number) => void;
87
92
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
93
+ readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
88
94
  readonly __wbindgen_start: () => void;
89
95
  }
90
96
 
package/dist/index.js CHANGED
@@ -78,6 +78,20 @@ export class ZKInputsGenerator {
78
78
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
79
79
  return v3;
80
80
  }
81
+ /**
82
+ * Create a JavaScript CRISP ZK inputs generator with a named BFV preset.
83
+ * @param {string} preset
84
+ * @returns {ZKInputsGenerator}
85
+ */
86
+ static fromPreset(preset) {
87
+ const ptr0 = passStringToWasm0(preset, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
88
+ const len0 = WASM_VECTOR_LEN;
89
+ const ret = wasm.zkinputsgenerator_fromPreset(ptr0, len0);
90
+ if (ret[2]) {
91
+ throw takeFromExternrefTable0(ret[1]);
92
+ }
93
+ return ZKInputsGenerator.__wrap(ret[0]);
94
+ }
81
95
  /**
82
96
  * Generate the CRISP ZK inputs for one ballot from JavaScript.
83
97
  *
@@ -321,6 +335,43 @@ function passArray8ToWasm0(arg, malloc) {
321
335
  return ptr;
322
336
  }
323
337
 
338
+ function passStringToWasm0(arg, malloc, realloc) {
339
+ if (realloc === undefined) {
340
+ const buf = cachedTextEncoder.encode(arg);
341
+ const ptr = malloc(buf.length, 1) >>> 0;
342
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
343
+ WASM_VECTOR_LEN = buf.length;
344
+ return ptr;
345
+ }
346
+
347
+ let len = arg.length;
348
+ let ptr = malloc(len, 1) >>> 0;
349
+
350
+ const mem = getUint8ArrayMemory0();
351
+
352
+ let offset = 0;
353
+
354
+ for (; offset < len; offset++) {
355
+ const code = arg.charCodeAt(offset);
356
+ if (code > 0x7F) break;
357
+ mem[ptr + offset] = code;
358
+ }
359
+ if (offset !== len) {
360
+ if (offset !== 0) {
361
+ arg = arg.slice(offset);
362
+ }
363
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
364
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
365
+ const ret = cachedTextEncoder.encodeInto(arg, view);
366
+
367
+ offset += ret.written;
368
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
369
+ }
370
+
371
+ WASM_VECTOR_LEN = offset;
372
+ return ptr;
373
+ }
374
+
324
375
  function takeFromExternrefTable0(idx) {
325
376
  const value = wasm.__wbindgen_externrefs.get(idx);
326
377
  wasm.__externref_table_dealloc(idx);
@@ -341,6 +392,19 @@ function decodeText(ptr, len) {
341
392
  return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
342
393
  }
343
394
 
395
+ const cachedTextEncoder = new TextEncoder();
396
+
397
+ if (!('encodeInto' in cachedTextEncoder)) {
398
+ cachedTextEncoder.encodeInto = function (arg, view) {
399
+ const buf = cachedTextEncoder.encode(arg);
400
+ view.set(buf);
401
+ return {
402
+ read: arg.length,
403
+ written: buf.length
404
+ };
405
+ };
406
+ }
407
+
344
408
  let WASM_VECTOR_LEN = 0;
345
409
 
346
410
  let wasmModule, wasmInstance, wasm;