@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.
@@ -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
  *
@@ -506,6 +506,32 @@ function dice_rtp_percent() {
506
506
  }
507
507
  exports.dice_rtp_percent = dice_rtp_percent;
508
508
 
509
+ /**
510
+ * Encode 1-indexed Keno selected numbers into a bitmask pair `[lo, hi]`.
511
+ *
512
+ * `selected_1indexed`: player-chosen numbers as they come from the frontend (1..40).
513
+ * Returns `Uint32Array[2]`: `[lo, hi]` where `lo` covers numbers 0..29 and `hi` covers 30..39
514
+ * (0-indexed bit positions).
515
+ * @param {Uint8Array} selected_1indexed
516
+ * @returns {Uint32Array}
517
+ */
518
+ function encode_keno_selected(selected_1indexed) {
519
+ try {
520
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
521
+ const ptr0 = passArray8ToWasm0(selected_1indexed, wasm.__wbindgen_export3);
522
+ const len0 = WASM_VECTOR_LEN;
523
+ wasm.encode_keno_selected(retptr, ptr0, len0);
524
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
525
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
526
+ var v2 = getArrayU32FromWasm0(r0, r1).slice();
527
+ wasm.__wbindgen_export2(r0, r1 * 4, 4);
528
+ return v2;
529
+ } finally {
530
+ wasm.__wbindgen_add_to_stack_pointer(16);
531
+ }
532
+ }
533
+ exports.encode_keno_selected = encode_keno_selected;
534
+
509
535
  /**
510
536
  * Generate a cryptographically random user secret — 4 Goldilocks field elements.
511
537
  *
@@ -653,6 +679,68 @@ function hash_balance_leaf(raw) {
653
679
  }
654
680
  exports.hash_balance_leaf = hash_balance_leaf;
655
681
 
682
+ /**
683
+ * @returns {number}
684
+ */
685
+ function keno_draw_count() {
686
+ const ret = wasm.keno_draw_count();
687
+ return ret >>> 0;
688
+ }
689
+ exports.keno_draw_count = keno_draw_count;
690
+
691
+ /**
692
+ * Whether a (risk, pick_count) pair is a valid Keno config.
693
+ * @param {number} risk
694
+ * @param {number} pick_count
695
+ * @returns {boolean}
696
+ */
697
+ function keno_is_valid_config(risk, pick_count) {
698
+ const ret = wasm.keno_is_valid_config(risk, pick_count);
699
+ return ret !== 0;
700
+ }
701
+ exports.keno_is_valid_config = keno_is_valid_config;
702
+
703
+ /**
704
+ * @returns {number}
705
+ */
706
+ function keno_max_picks() {
707
+ const ret = wasm.keno_draw_count();
708
+ return ret >>> 0;
709
+ }
710
+ exports.keno_max_picks = keno_max_picks;
711
+
712
+ /**
713
+ * Returns the multiplier table (×10000) for the given Keno config.
714
+ * `risk`: 0=low, 1=medium, 2=high. `pick_count`: 1..10.
715
+ * Length = pick_count + 1. Returns empty vec for invalid combos.
716
+ * @param {number} risk
717
+ * @param {number} pick_count
718
+ * @returns {BigUint64Array}
719
+ */
720
+ function keno_multiplier_table(risk, pick_count) {
721
+ try {
722
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
723
+ wasm.keno_multiplier_table(retptr, risk, pick_count);
724
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
725
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
726
+ var v1 = getArrayU64FromWasm0(r0, r1).slice();
727
+ wasm.__wbindgen_export2(r0, r1 * 8, 8);
728
+ return v1;
729
+ } finally {
730
+ wasm.__wbindgen_add_to_stack_pointer(16);
731
+ }
732
+ }
733
+ exports.keno_multiplier_table = keno_multiplier_table;
734
+
735
+ /**
736
+ * @returns {number}
737
+ */
738
+ function keno_numbers_range() {
739
+ const ret = wasm.keno_numbers_range();
740
+ return ret >>> 0;
741
+ }
742
+ exports.keno_numbers_range = keno_numbers_range;
743
+
656
744
  /**
657
745
  * Limbo RTP percent (99). Canonical source for backend/frontend.
658
746
  * @returns {number}
@@ -704,6 +792,69 @@ function make_main_leaf(balance_hash, pk_hash, address_hash) {
704
792
  }
705
793
  exports.make_main_leaf = make_main_leaf;
706
794
 
795
+ /**
796
+ * Whether a (sector, rows, is_extreme) triple is a valid Plinko config.
797
+ * @param {number} sector
798
+ * @param {number} rows
799
+ * @param {boolean} is_extreme
800
+ * @returns {boolean}
801
+ */
802
+ function plinko_is_valid_config(sector, rows, is_extreme) {
803
+ const ret = wasm.plinko_is_valid_config(sector, rows, is_extreme);
804
+ return ret !== 0;
805
+ }
806
+ exports.plinko_is_valid_config = plinko_is_valid_config;
807
+
808
+ /**
809
+ * @returns {number}
810
+ */
811
+ function plinko_max_rows() {
812
+ const ret = wasm.plinko_max_rows();
813
+ return ret >>> 0;
814
+ }
815
+ exports.plinko_max_rows = plinko_max_rows;
816
+
817
+ /**
818
+ * @returns {number}
819
+ */
820
+ function plinko_min_rows() {
821
+ const ret = wasm.plinko_min_rows();
822
+ return ret >>> 0;
823
+ }
824
+ exports.plinko_min_rows = plinko_min_rows;
825
+
826
+ /**
827
+ * Returns the multiplier table (×10000) for the given Plinko config.
828
+ * Length = rows + 1. Returns empty vec for invalid combos.
829
+ * @param {number} sector
830
+ * @param {number} rows
831
+ * @param {boolean} is_extreme
832
+ * @returns {BigUint64Array}
833
+ */
834
+ function plinko_multiplier_table(sector, rows, is_extreme) {
835
+ try {
836
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
837
+ wasm.plinko_multiplier_table(retptr, sector, rows, is_extreme);
838
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
839
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
840
+ var v1 = getArrayU64FromWasm0(r0, r1).slice();
841
+ wasm.__wbindgen_export2(r0, r1 * 8, 8);
842
+ return v1;
843
+ } finally {
844
+ wasm.__wbindgen_add_to_stack_pointer(16);
845
+ }
846
+ }
847
+ exports.plinko_multiplier_table = plinko_multiplier_table;
848
+
849
+ /**
850
+ * @returns {number}
851
+ */
852
+ function plinko_num_sectors() {
853
+ const ret = wasm.plinko_num_sectors();
854
+ return ret;
855
+ }
856
+ exports.plinko_num_sectors = plinko_num_sectors;
857
+
707
858
  /**
708
859
  * Poseidon2 hash of an arbitrary number of Goldilocks field elements.
709
860
  *
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;
@@ -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
  *