@rolly-dev/wasm-signer 1.14.0 → 1.16.0

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.
@@ -21,6 +21,7 @@ export const compute_roll_plinko: (a: number, b: number, c: number) => number;
21
21
  export const compute_server_seed_hash: (a: number, b: number, c: number) => void;
22
22
  export const compute_user_seed_binding: (a: number, b: number, c: bigint, d: number, e: number, f: number, g: number) => void;
23
23
  export const derive_session_key: (a: number, b: number, c: number) => void;
24
+ export const encode_keno_selected: (a: number, b: number, c: number) => void;
24
25
  export const generate_user_secret: (a: number) => void;
25
26
  export const generate_user_seed: (a: number) => void;
26
27
  export const goldilocks_fields_to_hex: (a: number, b: number, c: number) => void;
@@ -208,6 +208,15 @@ export function derive_session_key(sig_bytes: Uint8Array): BigUint64Array;
208
208
  */
209
209
  export function dice_rtp_percent(): number;
210
210
 
211
+ /**
212
+ * Encode 1-indexed Keno selected numbers into a bitmask pair `[lo, hi]`.
213
+ *
214
+ * `selected_1indexed`: player-chosen numbers as they come from the frontend (1..40).
215
+ * Returns `Uint32Array[2]`: `[lo, hi]` where `lo` covers numbers 0..29 and `hi` covers 30..39
216
+ * (0-indexed bit positions).
217
+ */
218
+ export function encode_keno_selected(selected_1indexed: Uint8Array): Uint32Array;
219
+
211
220
  /**
212
221
  * Generate a cryptographically random user secret — 4 Goldilocks field elements.
213
222
  *
@@ -402,6 +411,7 @@ export interface InitOutput {
402
411
  readonly compute_server_seed_hash: (a: number, b: number, c: number) => void;
403
412
  readonly compute_user_seed_binding: (a: number, b: number, c: bigint, d: number, e: number, f: number, g: number) => void;
404
413
  readonly derive_session_key: (a: number, b: number, c: number) => void;
414
+ readonly encode_keno_selected: (a: number, b: number, c: number) => void;
405
415
  readonly generate_user_secret: (a: number) => void;
406
416
  readonly generate_user_seed: (a: number) => void;
407
417
  readonly goldilocks_fields_to_hex: (a: number, b: number, c: number) => void;
@@ -485,6 +485,31 @@ export function dice_rtp_percent() {
485
485
  return ret >>> 0;
486
486
  }
487
487
 
488
+ /**
489
+ * Encode 1-indexed Keno selected numbers into a bitmask pair `[lo, hi]`.
490
+ *
491
+ * `selected_1indexed`: player-chosen numbers as they come from the frontend (1..40).
492
+ * Returns `Uint32Array[2]`: `[lo, hi]` where `lo` covers numbers 0..29 and `hi` covers 30..39
493
+ * (0-indexed bit positions).
494
+ * @param {Uint8Array} selected_1indexed
495
+ * @returns {Uint32Array}
496
+ */
497
+ export function encode_keno_selected(selected_1indexed) {
498
+ try {
499
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
500
+ const ptr0 = passArray8ToWasm0(selected_1indexed, wasm.__wbindgen_export3);
501
+ const len0 = WASM_VECTOR_LEN;
502
+ wasm.encode_keno_selected(retptr, ptr0, len0);
503
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
504
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
505
+ var v2 = getArrayU32FromWasm0(r0, r1).slice();
506
+ wasm.__wbindgen_export2(r0, r1 * 4, 4);
507
+ return v2;
508
+ } finally {
509
+ wasm.__wbindgen_add_to_stack_pointer(16);
510
+ }
511
+ }
512
+
488
513
  /**
489
514
  * Generate a cryptographically random user secret — 4 Goldilocks field elements.
490
515
  *
Binary file
@@ -21,6 +21,7 @@ export const compute_roll_plinko: (a: number, b: number, c: number) => number;
21
21
  export const compute_server_seed_hash: (a: number, b: number, c: number) => void;
22
22
  export const compute_user_seed_binding: (a: number, b: number, c: bigint, d: number, e: number, f: number, g: number) => void;
23
23
  export const derive_session_key: (a: number, b: number, c: number) => void;
24
+ export const encode_keno_selected: (a: number, b: number, c: number) => void;
24
25
  export const generate_user_secret: (a: number) => void;
25
26
  export const generate_user_seed: (a: number) => void;
26
27
  export const goldilocks_fields_to_hex: (a: number, b: number, c: number) => void;
package/js/browser.mjs CHANGED
@@ -22,6 +22,7 @@ export {
22
22
  compute_user_seed_binding,
23
23
  derive_session_key,
24
24
  dice_rtp_percent,
25
+ encode_keno_selected,
25
26
  generate_user_secret,
26
27
  generate_user_seed,
27
28
  goldilocks_fields_to_hex,
package/js/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export {
20
20
  compute_user_seed_binding,
21
21
  derive_session_key,
22
22
  dice_rtp_percent,
23
+ encode_keno_selected,
23
24
  generate_user_secret,
24
25
  generate_user_seed,
25
26
  goldilocks_fields_to_hex,
@@ -24,6 +24,7 @@ module.exports = {
24
24
  compute_user_seed_binding: wasm.compute_user_seed_binding,
25
25
  derive_session_key: wasm.derive_session_key,
26
26
  dice_rtp_percent: wasm.dice_rtp_percent,
27
+ encode_keno_selected: wasm.encode_keno_selected,
27
28
  generate_user_secret: wasm.generate_user_secret,
28
29
  generate_user_seed: wasm.generate_user_seed,
29
30
  goldilocks_fields_to_hex: wasm.goldilocks_fields_to_hex,
@@ -20,6 +20,7 @@ export {
20
20
  compute_user_seed_binding,
21
21
  derive_session_key,
22
22
  dice_rtp_percent,
23
+ encode_keno_selected,
23
24
  generate_user_secret,
24
25
  generate_user_seed,
25
26
  goldilocks_fields_to_hex,
package/js/node.cjs CHANGED
@@ -24,6 +24,7 @@ module.exports = {
24
24
  compute_user_seed_binding: wasm.compute_user_seed_binding,
25
25
  derive_session_key: wasm.derive_session_key,
26
26
  dice_rtp_percent: wasm.dice_rtp_percent,
27
+ encode_keno_selected: wasm.encode_keno_selected,
27
28
  generate_user_secret: wasm.generate_user_secret,
28
29
  generate_user_seed: wasm.generate_user_seed,
29
30
  goldilocks_fields_to_hex: wasm.goldilocks_fields_to_hex,
package/js/node.mjs CHANGED
@@ -25,6 +25,7 @@ export const {
25
25
  compute_user_seed_binding,
26
26
  derive_session_key,
27
27
  dice_rtp_percent,
28
+ encode_keno_selected,
28
29
  generate_user_secret,
29
30
  generate_user_seed,
30
31
  goldilocks_fields_to_hex,
package/js/react.d.mts CHANGED
@@ -1,25 +1,41 @@
1
1
  export interface RollyWasmResult {
2
2
  ready: boolean;
3
3
  error: Error | null;
4
- poseidon2_hash: (input: BigUint64Array) => BigUint64Array;
5
- poseidon2_two_to_one: (left: BigUint64Array, right: BigUint64Array) => BigUint64Array;
6
- derive_session_key: (sig_bytes: Uint8Array) => BigUint64Array;
7
- session_public_key: (session_key: BigUint64Array, session_expiry: bigint) => BigUint64Array;
8
- compute_server_seed_hash: (server_seed: BigUint64Array) => BigUint64Array;
9
- seed_hash_truncated: (server_seed: BigUint64Array) => BigUint64Array;
10
- string_to_user_seed: (input: string) => BigUint64Array;
11
- string_to_user_seed_hex: (input: string) => string;
12
- generate_user_seed: () => string;
13
- goldilocks_fields_to_hex: (fields: BigUint64Array) => string;
14
- goldilocks_modulus: () => bigint;
15
- goldilocks_reduce: (value: bigint) => bigint;
16
- amount_split: (amount: bigint) => Uint32Array;
17
- compute_address_hash: (address_hex: string) => BigUint64Array;
18
- hash_balance_leaf: (raw: BigUint64Array) => BigUint64Array;
19
- make_main_leaf: (balance_hash: BigUint64Array, pk_hash: BigUint64Array, address_hash: BigUint64Array) => BigUint64Array;
20
- compute_payout_dice: (random: BigUint64Array, bet_atomic: bigint, game_mode: number, prediction_lo: number, prediction_hi: number) => BigUint64Array;
21
- compute_roll_dice: (random: BigUint64Array) => number;
22
- compute_multi_dice: (win_numbers: number) => bigint;
4
+ poseidon2_hash: (input: BigUint64Array) => BigUint64Array;
5
+ poseidon2_two_to_one: (left: BigUint64Array, right: BigUint64Array) => BigUint64Array;
6
+ derive_session_key: (sig_bytes: Uint8Array) => BigUint64Array;
7
+ session_public_key: (session_key: BigUint64Array, session_expiry: bigint) => BigUint64Array;
8
+ compute_server_seed_hash: (server_seed: BigUint64Array) => BigUint64Array;
9
+ seed_hash_truncated: (server_seed: BigUint64Array) => BigUint64Array;
10
+ string_to_user_seed: (input: string) => BigUint64Array;
11
+ string_to_user_seed_hex: (input: string) => string;
12
+ generate_user_seed: () => string;
13
+ goldilocks_fields_to_hex: (fields: BigUint64Array) => string;
14
+ goldilocks_modulus: () => bigint;
15
+ goldilocks_reduce: (value: bigint) => bigint;
16
+ amount_split: (amount: bigint) => Uint32Array;
17
+ compute_address_hash: (address_hex: string) => BigUint64Array;
18
+ hash_balance_leaf: (raw: BigUint64Array) => BigUint64Array;
19
+ make_main_leaf: (balance_hash: BigUint64Array, pk_hash: BigUint64Array, address_hash: BigUint64Array) => BigUint64Array;
20
+ compute_prediction_hash: (game_id: number, p0: number, p1: number, p2: number) => BigUint64Array;
21
+ compute_prediction_hash_keno: (game_id: number, risk: number, pick_count: number, selected: Uint8Array) => BigUint64Array;
22
+ compute_user_seed_binding: (game_id: number, bet: bigint, pred_hash: BigUint64Array, secret: BigUint64Array) => BigUint64Array;
23
+ generate_user_secret: () => BigUint64Array;
24
+ compute_payout_dice: (random: BigUint64Array, bet_atomic: bigint, game_mode: number, prediction_lo: number, prediction_hi: number) => BigUint64Array;
25
+ compute_payout_limbo: (random: BigUint64Array, bet_atomic: bigint, prediction_x100: number) => BigUint64Array;
26
+ compute_payout_plinko: (random: BigUint64Array, bet_atomic: bigint, sector: number, rows: number, is_extreme: boolean) => BigUint64Array;
27
+ compute_payout_coinflip: (random: BigUint64Array, bet_atomic: bigint, prediction: number) => BigUint64Array;
28
+ compute_payout_keno: (random: BigUint64Array, bet_atomic: bigint, risk: number, selected: Uint8Array) => BigUint64Array;
29
+ compute_roll_dice: (random: BigUint64Array) => number;
30
+ compute_roll_limbo: (random: BigUint64Array) => number;
31
+ compute_roll_plinko: (random: BigUint64Array, rows: number) => number;
32
+ compute_roll_coinflip: (random: BigUint64Array) => number;
33
+ compute_drawn_keno: (random: BigUint64Array) => Uint8Array;
34
+ compute_multi_dice: (win_numbers: number) => bigint;
35
+ limbo_rtp_percent: () => number;
36
+ coinflip_rtp_percent: () => number;
37
+ coinflip_multiplier_x10000: () => number;
38
+ dice_rtp_percent: () => number;
23
39
  }
24
40
 
25
41
  export function useRollyWasm(): RollyWasmResult;
package/js/react.mjs CHANGED
@@ -21,6 +21,7 @@ import init, {
21
21
  compute_user_seed_binding,
22
22
  derive_session_key,
23
23
  dice_rtp_percent,
24
+ encode_keno_selected,
24
25
  generate_user_secret,
25
26
  generate_user_seed,
26
27
  goldilocks_fields_to_hex,
@@ -69,6 +70,7 @@ const fns = {
69
70
  compute_user_seed_binding: guard(compute_user_seed_binding),
70
71
  derive_session_key: guard(derive_session_key),
71
72
  dice_rtp_percent: guard(dice_rtp_percent),
73
+ encode_keno_selected: guard(encode_keno_selected),
72
74
  generate_user_secret: guard(generate_user_secret),
73
75
  generate_user_seed: guard(generate_user_seed),
74
76
  goldilocks_fields_to_hex: guard(goldilocks_fields_to_hex),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolly-dev/wasm-signer",
3
- "version": "1.14.0",
3
+ "version": "1.16.0",
4
4
  "description": "Poseidon2 hashing & bet signing for Rolly ZK-Rollup (WASM, Goldilocks field)",
5
5
  "type": "module",
6
6
  "exports": {