@rolly-dev/wasm-signer 1.15.0 → 1.17.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,12 +21,22 @@ 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;
27
28
  export const goldilocks_reduce: (a: bigint) => bigint;
28
29
  export const hash_balance_leaf: (a: number, b: number, c: number) => void;
30
+ export const keno_draw_count: () => number;
31
+ export const keno_is_valid_config: (a: number, b: number) => number;
32
+ export const keno_multiplier_table: (a: number, b: number, c: number) => void;
33
+ export const keno_numbers_range: () => number;
29
34
  export const make_main_leaf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
35
+ export const plinko_is_valid_config: (a: number, b: number, c: number) => number;
36
+ export const plinko_max_rows: () => number;
37
+ export const plinko_min_rows: () => number;
38
+ export const plinko_multiplier_table: (a: number, b: number, c: number, d: number) => void;
39
+ export const plinko_num_sectors: () => number;
30
40
  export const poseidon2_hash: (a: number, b: number, c: number) => void;
31
41
  export const poseidon2_two_to_one: (a: number, b: number, c: number, d: number, e: number) => void;
32
42
  export const seed_hash_truncated: (a: number, b: number, c: number) => void;
@@ -34,6 +44,7 @@ export const session_public_key: (a: number, b: number, c: number, d: bigint) =>
34
44
  export const string_to_user_seed: (a: number, b: number, c: number) => void;
35
45
  export const string_to_user_seed_hex: (a: number, b: number, c: number) => void;
36
46
  export const dice_rtp_percent: () => number;
47
+ export const keno_max_picks: () => number;
37
48
  export const limbo_rtp_percent: () => number;
38
49
  export const goldilocks_modulus: () => bigint;
39
50
  export const __wbindgen_export: (a: 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
  *
@@ -276,6 +285,24 @@ export function goldilocks_reduce(value: bigint): bigint;
276
285
  */
277
286
  export function hash_balance_leaf(raw: BigUint64Array): BigUint64Array;
278
287
 
288
+ export function keno_draw_count(): number;
289
+
290
+ /**
291
+ * Whether a (risk, pick_count) pair is a valid Keno config.
292
+ */
293
+ export function keno_is_valid_config(risk: number, pick_count: number): boolean;
294
+
295
+ export function keno_max_picks(): number;
296
+
297
+ /**
298
+ * Returns the multiplier table (×10000) for the given Keno config.
299
+ * `risk`: 0=low, 1=medium, 2=high. `pick_count`: 1..10.
300
+ * Length = pick_count + 1. Returns empty vec for invalid combos.
301
+ */
302
+ export function keno_multiplier_table(risk: number, pick_count: number): BigUint64Array;
303
+
304
+ export function keno_numbers_range(): number;
305
+
279
306
  /**
280
307
  * Limbo RTP percent (99). Canonical source for backend/frontend.
281
308
  */
@@ -299,6 +326,23 @@ export function limbo_rtp_percent(): number;
299
326
  */
300
327
  export function make_main_leaf(balance_hash: BigUint64Array, pk_hash: BigUint64Array, address_hash: BigUint64Array): BigUint64Array;
301
328
 
329
+ /**
330
+ * Whether a (sector, rows, is_extreme) triple is a valid Plinko config.
331
+ */
332
+ export function plinko_is_valid_config(sector: number, rows: number, is_extreme: boolean): boolean;
333
+
334
+ export function plinko_max_rows(): number;
335
+
336
+ export function plinko_min_rows(): number;
337
+
338
+ /**
339
+ * Returns the multiplier table (×10000) for the given Plinko config.
340
+ * Length = rows + 1. Returns empty vec for invalid combos.
341
+ */
342
+ export function plinko_multiplier_table(sector: number, rows: number, is_extreme: boolean): BigUint64Array;
343
+
344
+ export function plinko_num_sectors(): number;
345
+
302
346
  /**
303
347
  * Poseidon2 hash of an arbitrary number of Goldilocks field elements.
304
348
  *
@@ -402,12 +446,22 @@ export interface InitOutput {
402
446
  readonly compute_server_seed_hash: (a: number, b: number, c: number) => void;
403
447
  readonly compute_user_seed_binding: (a: number, b: number, c: bigint, d: number, e: number, f: number, g: number) => void;
404
448
  readonly derive_session_key: (a: number, b: number, c: number) => void;
449
+ readonly encode_keno_selected: (a: number, b: number, c: number) => void;
405
450
  readonly generate_user_secret: (a: number) => void;
406
451
  readonly generate_user_seed: (a: number) => void;
407
452
  readonly goldilocks_fields_to_hex: (a: number, b: number, c: number) => void;
408
453
  readonly goldilocks_reduce: (a: bigint) => bigint;
409
454
  readonly hash_balance_leaf: (a: number, b: number, c: number) => void;
455
+ readonly keno_draw_count: () => number;
456
+ readonly keno_is_valid_config: (a: number, b: number) => number;
457
+ readonly keno_multiplier_table: (a: number, b: number, c: number) => void;
458
+ readonly keno_numbers_range: () => number;
410
459
  readonly make_main_leaf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
460
+ readonly plinko_is_valid_config: (a: number, b: number, c: number) => number;
461
+ readonly plinko_max_rows: () => number;
462
+ readonly plinko_min_rows: () => number;
463
+ readonly plinko_multiplier_table: (a: number, b: number, c: number, d: number) => void;
464
+ readonly plinko_num_sectors: () => number;
411
465
  readonly poseidon2_hash: (a: number, b: number, c: number) => void;
412
466
  readonly poseidon2_two_to_one: (a: number, b: number, c: number, d: number, e: number) => void;
413
467
  readonly seed_hash_truncated: (a: number, b: number, c: number) => void;
@@ -415,6 +469,7 @@ export interface InitOutput {
415
469
  readonly string_to_user_seed: (a: number, b: number, c: number) => void;
416
470
  readonly string_to_user_seed_hex: (a: number, b: number, c: number) => void;
417
471
  readonly dice_rtp_percent: () => number;
472
+ readonly keno_max_picks: () => number;
418
473
  readonly limbo_rtp_percent: () => number;
419
474
  readonly goldilocks_modulus: () => bigint;
420
475
  readonly __wbindgen_export: (a: 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
  *
@@ -626,6 +651,63 @@ export function hash_balance_leaf(raw) {
626
651
  }
627
652
  }
628
653
 
654
+ /**
655
+ * @returns {number}
656
+ */
657
+ export function keno_draw_count() {
658
+ const ret = wasm.keno_draw_count();
659
+ return ret >>> 0;
660
+ }
661
+
662
+ /**
663
+ * Whether a (risk, pick_count) pair is a valid Keno config.
664
+ * @param {number} risk
665
+ * @param {number} pick_count
666
+ * @returns {boolean}
667
+ */
668
+ export function keno_is_valid_config(risk, pick_count) {
669
+ const ret = wasm.keno_is_valid_config(risk, pick_count);
670
+ return ret !== 0;
671
+ }
672
+
673
+ /**
674
+ * @returns {number}
675
+ */
676
+ export function keno_max_picks() {
677
+ const ret = wasm.keno_draw_count();
678
+ return ret >>> 0;
679
+ }
680
+
681
+ /**
682
+ * Returns the multiplier table (×10000) for the given Keno config.
683
+ * `risk`: 0=low, 1=medium, 2=high. `pick_count`: 1..10.
684
+ * Length = pick_count + 1. Returns empty vec for invalid combos.
685
+ * @param {number} risk
686
+ * @param {number} pick_count
687
+ * @returns {BigUint64Array}
688
+ */
689
+ export function keno_multiplier_table(risk, pick_count) {
690
+ try {
691
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
692
+ wasm.keno_multiplier_table(retptr, risk, pick_count);
693
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
694
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
695
+ var v1 = getArrayU64FromWasm0(r0, r1).slice();
696
+ wasm.__wbindgen_export2(r0, r1 * 8, 8);
697
+ return v1;
698
+ } finally {
699
+ wasm.__wbindgen_add_to_stack_pointer(16);
700
+ }
701
+ }
702
+
703
+ /**
704
+ * @returns {number}
705
+ */
706
+ export function keno_numbers_range() {
707
+ const ret = wasm.keno_numbers_range();
708
+ return ret >>> 0;
709
+ }
710
+
629
711
  /**
630
712
  * Limbo RTP percent (99). Canonical source for backend/frontend.
631
713
  * @returns {number}
@@ -675,6 +757,64 @@ export function make_main_leaf(balance_hash, pk_hash, address_hash) {
675
757
  }
676
758
  }
677
759
 
760
+ /**
761
+ * Whether a (sector, rows, is_extreme) triple is a valid Plinko config.
762
+ * @param {number} sector
763
+ * @param {number} rows
764
+ * @param {boolean} is_extreme
765
+ * @returns {boolean}
766
+ */
767
+ export function plinko_is_valid_config(sector, rows, is_extreme) {
768
+ const ret = wasm.plinko_is_valid_config(sector, rows, is_extreme);
769
+ return ret !== 0;
770
+ }
771
+
772
+ /**
773
+ * @returns {number}
774
+ */
775
+ export function plinko_max_rows() {
776
+ const ret = wasm.plinko_max_rows();
777
+ return ret >>> 0;
778
+ }
779
+
780
+ /**
781
+ * @returns {number}
782
+ */
783
+ export function plinko_min_rows() {
784
+ const ret = wasm.plinko_min_rows();
785
+ return ret >>> 0;
786
+ }
787
+
788
+ /**
789
+ * Returns the multiplier table (×10000) for the given Plinko config.
790
+ * Length = rows + 1. Returns empty vec for invalid combos.
791
+ * @param {number} sector
792
+ * @param {number} rows
793
+ * @param {boolean} is_extreme
794
+ * @returns {BigUint64Array}
795
+ */
796
+ export function plinko_multiplier_table(sector, rows, is_extreme) {
797
+ try {
798
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
799
+ wasm.plinko_multiplier_table(retptr, sector, rows, is_extreme);
800
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
801
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
802
+ var v1 = getArrayU64FromWasm0(r0, r1).slice();
803
+ wasm.__wbindgen_export2(r0, r1 * 8, 8);
804
+ return v1;
805
+ } finally {
806
+ wasm.__wbindgen_add_to_stack_pointer(16);
807
+ }
808
+ }
809
+
810
+ /**
811
+ * @returns {number}
812
+ */
813
+ export function plinko_num_sectors() {
814
+ const ret = wasm.plinko_num_sectors();
815
+ return ret;
816
+ }
817
+
678
818
  /**
679
819
  * Poseidon2 hash of an arbitrary number of Goldilocks field elements.
680
820
  *
Binary file
@@ -21,12 +21,22 @@ 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;
27
28
  export const goldilocks_reduce: (a: bigint) => bigint;
28
29
  export const hash_balance_leaf: (a: number, b: number, c: number) => void;
30
+ export const keno_draw_count: () => number;
31
+ export const keno_is_valid_config: (a: number, b: number) => number;
32
+ export const keno_multiplier_table: (a: number, b: number, c: number) => void;
33
+ export const keno_numbers_range: () => number;
29
34
  export const make_main_leaf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
35
+ export const plinko_is_valid_config: (a: number, b: number, c: number) => number;
36
+ export const plinko_max_rows: () => number;
37
+ export const plinko_min_rows: () => number;
38
+ export const plinko_multiplier_table: (a: number, b: number, c: number, d: number) => void;
39
+ export const plinko_num_sectors: () => number;
30
40
  export const poseidon2_hash: (a: number, b: number, c: number) => void;
31
41
  export const poseidon2_two_to_one: (a: number, b: number, c: number, d: number, e: number) => void;
32
42
  export const seed_hash_truncated: (a: number, b: number, c: number) => void;
@@ -34,6 +44,7 @@ export const session_public_key: (a: number, b: number, c: number, d: bigint) =>
34
44
  export const string_to_user_seed: (a: number, b: number, c: number) => void;
35
45
  export const string_to_user_seed_hex: (a: number, b: number, c: number) => void;
36
46
  export const dice_rtp_percent: () => number;
47
+ export const keno_max_picks: () => number;
37
48
  export const limbo_rtp_percent: () => number;
38
49
  export const goldilocks_modulus: () => bigint;
39
50
  export const __wbindgen_export: (a: number) => void;
package/js/browser.d.mts CHANGED
@@ -18,6 +18,16 @@ export {
18
18
  compute_payout_dice,
19
19
  compute_roll_dice,
20
20
  compute_multi_dice,
21
+ plinko_min_rows,
22
+ plinko_max_rows,
23
+ plinko_num_sectors,
24
+ plinko_multiplier_table,
25
+ plinko_is_valid_config,
26
+ keno_numbers_range,
27
+ keno_draw_count,
28
+ keno_max_picks,
29
+ keno_multiplier_table,
30
+ keno_is_valid_config,
21
31
  } from '../dist/web/rolly_wasm_signer.js';
22
32
 
23
33
  export { default as init } from '../dist/web/rolly_wasm_signer.js';
package/js/browser.mjs CHANGED
@@ -22,14 +22,25 @@ 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,
28
29
  goldilocks_modulus,
29
30
  goldilocks_reduce,
30
31
  hash_balance_leaf,
32
+ keno_draw_count,
33
+ keno_is_valid_config,
34
+ keno_max_picks,
35
+ keno_multiplier_table,
36
+ keno_numbers_range,
31
37
  limbo_rtp_percent,
32
38
  make_main_leaf,
39
+ plinko_is_valid_config,
40
+ plinko_max_rows,
41
+ plinko_min_rows,
42
+ plinko_multiplier_table,
43
+ plinko_num_sectors,
33
44
  poseidon2_hash,
34
45
  poseidon2_two_to_one,
35
46
  seed_hash_truncated,
package/js/index.d.ts CHANGED
@@ -20,14 +20,25 @@ 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,
26
27
  goldilocks_modulus,
27
28
  goldilocks_reduce,
28
29
  hash_balance_leaf,
30
+ keno_draw_count,
31
+ keno_is_valid_config,
32
+ keno_max_picks,
33
+ keno_multiplier_table,
34
+ keno_numbers_range,
29
35
  limbo_rtp_percent,
30
36
  make_main_leaf,
37
+ plinko_is_valid_config,
38
+ plinko_max_rows,
39
+ plinko_min_rows,
40
+ plinko_multiplier_table,
41
+ plinko_num_sectors,
31
42
  poseidon2_hash,
32
43
  poseidon2_two_to_one,
33
44
  seed_hash_truncated,
@@ -24,14 +24,25 @@ 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,
30
31
  goldilocks_modulus: wasm.goldilocks_modulus,
31
32
  goldilocks_reduce: wasm.goldilocks_reduce,
32
33
  hash_balance_leaf: wasm.hash_balance_leaf,
34
+ keno_draw_count: wasm.keno_draw_count,
35
+ keno_is_valid_config: wasm.keno_is_valid_config,
36
+ keno_max_picks: wasm.keno_max_picks,
37
+ keno_multiplier_table: wasm.keno_multiplier_table,
38
+ keno_numbers_range: wasm.keno_numbers_range,
33
39
  limbo_rtp_percent: wasm.limbo_rtp_percent,
34
40
  make_main_leaf: wasm.make_main_leaf,
41
+ plinko_is_valid_config: wasm.plinko_is_valid_config,
42
+ plinko_max_rows: wasm.plinko_max_rows,
43
+ plinko_min_rows: wasm.plinko_min_rows,
44
+ plinko_multiplier_table: wasm.plinko_multiplier_table,
45
+ plinko_num_sectors: wasm.plinko_num_sectors,
35
46
  poseidon2_hash: wasm.poseidon2_hash,
36
47
  poseidon2_two_to_one: wasm.poseidon2_two_to_one,
37
48
  seed_hash_truncated: wasm.seed_hash_truncated,
@@ -20,14 +20,25 @@ 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,
26
27
  goldilocks_modulus,
27
28
  goldilocks_reduce,
28
29
  hash_balance_leaf,
30
+ keno_draw_count,
31
+ keno_is_valid_config,
32
+ keno_max_picks,
33
+ keno_multiplier_table,
34
+ keno_numbers_range,
29
35
  limbo_rtp_percent,
30
36
  make_main_leaf,
37
+ plinko_is_valid_config,
38
+ plinko_max_rows,
39
+ plinko_min_rows,
40
+ plinko_multiplier_table,
41
+ plinko_num_sectors,
31
42
  poseidon2_hash,
32
43
  poseidon2_two_to_one,
33
44
  seed_hash_truncated,
package/js/node.cjs CHANGED
@@ -24,14 +24,25 @@ 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,
30
31
  goldilocks_modulus: wasm.goldilocks_modulus,
31
32
  goldilocks_reduce: wasm.goldilocks_reduce,
32
33
  hash_balance_leaf: wasm.hash_balance_leaf,
34
+ keno_draw_count: wasm.keno_draw_count,
35
+ keno_is_valid_config: wasm.keno_is_valid_config,
36
+ keno_max_picks: wasm.keno_max_picks,
37
+ keno_multiplier_table: wasm.keno_multiplier_table,
38
+ keno_numbers_range: wasm.keno_numbers_range,
33
39
  limbo_rtp_percent: wasm.limbo_rtp_percent,
34
40
  make_main_leaf: wasm.make_main_leaf,
41
+ plinko_is_valid_config: wasm.plinko_is_valid_config,
42
+ plinko_max_rows: wasm.plinko_max_rows,
43
+ plinko_min_rows: wasm.plinko_min_rows,
44
+ plinko_multiplier_table: wasm.plinko_multiplier_table,
45
+ plinko_num_sectors: wasm.plinko_num_sectors,
35
46
  poseidon2_hash: wasm.poseidon2_hash,
36
47
  poseidon2_two_to_one: wasm.poseidon2_two_to_one,
37
48
  seed_hash_truncated: wasm.seed_hash_truncated,
package/js/node.mjs CHANGED
@@ -25,14 +25,25 @@ 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,
31
32
  goldilocks_modulus,
32
33
  goldilocks_reduce,
33
34
  hash_balance_leaf,
35
+ keno_draw_count,
36
+ keno_is_valid_config,
37
+ keno_max_picks,
38
+ keno_multiplier_table,
39
+ keno_numbers_range,
34
40
  limbo_rtp_percent,
35
41
  make_main_leaf,
42
+ plinko_is_valid_config,
43
+ plinko_max_rows,
44
+ plinko_min_rows,
45
+ plinko_multiplier_table,
46
+ plinko_num_sectors,
36
47
  poseidon2_hash,
37
48
  poseidon2_two_to_one,
38
49
  seed_hash_truncated,
package/js/react.d.mts CHANGED
@@ -36,6 +36,16 @@ export interface RollyWasmResult {
36
36
  coinflip_rtp_percent: () => number;
37
37
  coinflip_multiplier_x10000: () => number;
38
38
  dice_rtp_percent: () => number;
39
+ plinko_min_rows: () => number;
40
+ plinko_max_rows: () => number;
41
+ plinko_num_sectors: () => number;
42
+ plinko_multiplier_table: (sector: number, rows: number, is_extreme: boolean) => BigUint64Array;
43
+ plinko_is_valid_config: (sector: number, rows: number, is_extreme: boolean) => boolean;
44
+ keno_numbers_range: () => number;
45
+ keno_draw_count: () => number;
46
+ keno_max_picks: () => number;
47
+ keno_multiplier_table: (risk: number, pick_count: number) => BigUint64Array;
48
+ keno_is_valid_config: (risk: number, pick_count: number) => boolean;
39
49
  }
40
50
 
41
51
  export function useRollyWasm(): RollyWasmResult;
package/js/react.mjs CHANGED
@@ -21,14 +21,25 @@ 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,
27
28
  goldilocks_modulus,
28
29
  goldilocks_reduce,
29
30
  hash_balance_leaf,
31
+ keno_draw_count,
32
+ keno_is_valid_config,
33
+ keno_max_picks,
34
+ keno_multiplier_table,
35
+ keno_numbers_range,
30
36
  limbo_rtp_percent,
31
37
  make_main_leaf,
38
+ plinko_is_valid_config,
39
+ plinko_max_rows,
40
+ plinko_min_rows,
41
+ plinko_multiplier_table,
42
+ plinko_num_sectors,
32
43
  poseidon2_hash,
33
44
  poseidon2_two_to_one,
34
45
  seed_hash_truncated,
@@ -69,14 +80,25 @@ const fns = {
69
80
  compute_user_seed_binding: guard(compute_user_seed_binding),
70
81
  derive_session_key: guard(derive_session_key),
71
82
  dice_rtp_percent: guard(dice_rtp_percent),
83
+ encode_keno_selected: guard(encode_keno_selected),
72
84
  generate_user_secret: guard(generate_user_secret),
73
85
  generate_user_seed: guard(generate_user_seed),
74
86
  goldilocks_fields_to_hex: guard(goldilocks_fields_to_hex),
75
87
  goldilocks_modulus: guard(goldilocks_modulus),
76
88
  goldilocks_reduce: guard(goldilocks_reduce),
77
89
  hash_balance_leaf: guard(hash_balance_leaf),
90
+ keno_draw_count: guard(keno_draw_count),
91
+ keno_is_valid_config: guard(keno_is_valid_config),
92
+ keno_max_picks: guard(keno_max_picks),
93
+ keno_multiplier_table: guard(keno_multiplier_table),
94
+ keno_numbers_range: guard(keno_numbers_range),
78
95
  limbo_rtp_percent: guard(limbo_rtp_percent),
79
96
  make_main_leaf: guard(make_main_leaf),
97
+ plinko_is_valid_config: guard(plinko_is_valid_config),
98
+ plinko_max_rows: guard(plinko_max_rows),
99
+ plinko_min_rows: guard(plinko_min_rows),
100
+ plinko_multiplier_table: guard(plinko_multiplier_table),
101
+ plinko_num_sectors: guard(plinko_num_sectors),
80
102
  poseidon2_hash: guard(poseidon2_hash),
81
103
  poseidon2_two_to_one: guard(poseidon2_two_to_one),
82
104
  seed_hash_truncated: guard(seed_hash_truncated),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolly-dev/wasm-signer",
3
- "version": "1.15.0",
3
+ "version": "1.17.0",
4
4
  "description": "Poseidon2 hashing & bet signing for Rolly ZK-Rollup (WASM, Goldilocks field)",
5
5
  "type": "module",
6
6
  "exports": {