@rolly-dev/wasm-signer 1.20.0 → 1.22.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.
@@ -2,11 +2,13 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const amount_split: (a: number, b: bigint) => void;
5
+ export const aviato_rtp_percent: () => number;
5
6
  export const coinflip_multiplier_x10000: () => number;
6
- export const coinflip_rtp_percent: () => number;
7
7
  export const compute_address_hash: (a: number, b: number, c: number) => void;
8
+ export const compute_aviato_point: (a: number, b: number) => number;
8
9
  export const compute_drawn_keno: (a: number, b: number, c: number) => void;
9
10
  export const compute_multi_dice: (a: number) => bigint;
11
+ export const compute_payout_aviato: (a: number, b: number, c: number, d: bigint, e: number) => void;
10
12
  export const compute_payout_coinflip: (a: number, b: number, c: number, d: bigint, e: number) => void;
11
13
  export const compute_payout_dice: (a: number, b: number, c: number, d: bigint, e: number, f: number, g: number) => void;
12
14
  export const compute_payout_keno: (a: number, b: number, c: number, d: bigint, e: number, f: number, g: number) => void;
@@ -33,6 +35,7 @@ export const keno_is_valid_config: (a: number, b: number) => number;
33
35
  export const keno_multiplier_table: (a: number, b: number, c: number) => void;
34
36
  export const keno_numbers_range: () => number;
35
37
  export const keno_rtp_x100: (a: number, b: number) => bigint;
38
+ export const limbo_rtp_percent: () => number;
36
39
  export const make_main_leaf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
37
40
  export const plinko_all_rtp_x100: () => number;
38
41
  export const plinko_is_valid_config: (a: number, b: number, c: number) => number;
@@ -48,9 +51,9 @@ export const seed_hash_truncated: (a: number, b: number, c: number) => void;
48
51
  export const session_public_key: (a: number, b: number, c: number, d: bigint) => void;
49
52
  export const string_to_user_seed: (a: number, b: number, c: number) => void;
50
53
  export const string_to_user_seed_hex: (a: number, b: number, c: number) => void;
54
+ export const coinflip_rtp_percent: () => number;
51
55
  export const dice_rtp_percent: () => number;
52
56
  export const keno_max_picks: () => number;
53
- export const limbo_rtp_percent: () => number;
54
57
  export const goldilocks_modulus: () => bigint;
55
58
  export const __wbindgen_export: (a: number) => void;
56
59
  export const __wbindgen_add_to_stack_pointer: (a: number) => number;
@@ -12,6 +12,11 @@
12
12
  */
13
13
  export function amount_split(amount: bigint): Uint32Array;
14
14
 
15
+ /**
16
+ * Aviato RTP percent (99). Canonical source for backend/frontend.
17
+ */
18
+ export function aviato_rtp_percent(): number;
19
+
15
20
  /**
16
21
  * CoinFlip multiplier × 10000 (19800 = 1.98×). Canonical source for backend/frontend.
17
22
  */
@@ -28,6 +33,14 @@ export function coinflip_rtp_percent(): number;
28
33
  */
29
34
  export function compute_address_hash(address_hex: string): BigUint64Array;
30
35
 
36
+ /**
37
+ * Extract aviato point (×100) from Poseidon2 random output.
38
+ *
39
+ * `random` must be exactly 4 elements.
40
+ * Returns the clamped aviato multiplier ×100 (100..=1_000_000, i.e. 1.00x..10000.00x).
41
+ */
42
+ export function compute_aviato_point(random: BigUint64Array): number;
43
+
31
44
  /**
32
45
  * Extract the 10 drawn numbers from Poseidon2 random output using
33
46
  * the combinatorial number system: `combo_index = random[0] % C(40,10)`.
@@ -45,6 +58,19 @@ export function compute_drawn_keno(random: BigUint64Array): Uint8Array;
45
58
  */
46
59
  export function compute_multi_dice(win_numbers: number): bigint;
47
60
 
61
+ /**
62
+ * Full aviato payout computation — pure integer arithmetic, zero floats.
63
+ *
64
+ * `random`: 4 Goldilocks field elements (Poseidon2 output of server_seed).
65
+ * `bet_atomic`: bet in atomic units (1 USDT = 1_000_000).
66
+ * `cashout_x100`: multiplier at which the user cashed out (×100).
67
+ * - 0 = user did NOT cash out (loss).
68
+ * - 100..=1_000_000 = user stopped at this multiplier.
69
+ *
70
+ * Returns `BigUint64Array[4]`: `[win_amount, aviato_x100, is_win (0|1), multiplier×10000]`.
71
+ */
72
+ export function compute_payout_aviato(random: BigUint64Array, bet_atomic: bigint, cashout_x100: number): BigUint64Array;
73
+
48
74
  /**
49
75
  * Full coinflip payout computation — pure integer arithmetic, zero floats.
50
76
  *
@@ -455,11 +481,13 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
455
481
  export interface InitOutput {
456
482
  readonly memory: WebAssembly.Memory;
457
483
  readonly amount_split: (a: number, b: bigint) => void;
484
+ readonly aviato_rtp_percent: () => number;
458
485
  readonly coinflip_multiplier_x10000: () => number;
459
- readonly coinflip_rtp_percent: () => number;
460
486
  readonly compute_address_hash: (a: number, b: number, c: number) => void;
487
+ readonly compute_aviato_point: (a: number, b: number) => number;
461
488
  readonly compute_drawn_keno: (a: number, b: number, c: number) => void;
462
489
  readonly compute_multi_dice: (a: number) => bigint;
490
+ readonly compute_payout_aviato: (a: number, b: number, c: number, d: bigint, e: number) => void;
463
491
  readonly compute_payout_coinflip: (a: number, b: number, c: number, d: bigint, e: number) => void;
464
492
  readonly compute_payout_dice: (a: number, b: number, c: number, d: bigint, e: number, f: number, g: number) => void;
465
493
  readonly compute_payout_keno: (a: number, b: number, c: number, d: bigint, e: number, f: number, g: number) => void;
@@ -486,6 +514,7 @@ export interface InitOutput {
486
514
  readonly keno_multiplier_table: (a: number, b: number, c: number) => void;
487
515
  readonly keno_numbers_range: () => number;
488
516
  readonly keno_rtp_x100: (a: number, b: number) => bigint;
517
+ readonly limbo_rtp_percent: () => number;
489
518
  readonly make_main_leaf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
490
519
  readonly plinko_all_rtp_x100: () => number;
491
520
  readonly plinko_is_valid_config: (a: number, b: number, c: number) => number;
@@ -501,9 +530,9 @@ export interface InitOutput {
501
530
  readonly session_public_key: (a: number, b: number, c: number, d: bigint) => void;
502
531
  readonly string_to_user_seed: (a: number, b: number, c: number) => void;
503
532
  readonly string_to_user_seed_hex: (a: number, b: number, c: number) => void;
533
+ readonly coinflip_rtp_percent: () => number;
504
534
  readonly dice_rtp_percent: () => number;
505
535
  readonly keno_max_picks: () => number;
506
- readonly limbo_rtp_percent: () => number;
507
536
  readonly goldilocks_modulus: () => bigint;
508
537
  readonly __wbindgen_export: (a: number) => void;
509
538
  readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
@@ -25,6 +25,15 @@ export function amount_split(amount) {
25
25
  }
26
26
  }
27
27
 
28
+ /**
29
+ * Aviato RTP percent (99). Canonical source for backend/frontend.
30
+ * @returns {number}
31
+ */
32
+ export function aviato_rtp_percent() {
33
+ const ret = wasm.aviato_rtp_percent();
34
+ return ret >>> 0;
35
+ }
36
+
28
37
  /**
29
38
  * CoinFlip multiplier × 10000 (19800 = 1.98×). Canonical source for backend/frontend.
30
39
  * @returns {number}
@@ -39,7 +48,7 @@ export function coinflip_multiplier_x10000() {
39
48
  * @returns {number}
40
49
  */
41
50
  export function coinflip_rtp_percent() {
42
- const ret = wasm.coinflip_rtp_percent();
51
+ const ret = wasm.aviato_rtp_percent();
43
52
  return ret >>> 0;
44
53
  }
45
54
 
@@ -65,6 +74,21 @@ export function compute_address_hash(address_hex) {
65
74
  }
66
75
  }
67
76
 
77
+ /**
78
+ * Extract aviato point (×100) from Poseidon2 random output.
79
+ *
80
+ * `random` must be exactly 4 elements.
81
+ * Returns the clamped aviato multiplier ×100 (100..=1_000_000, i.e. 1.00x..10000.00x).
82
+ * @param {BigUint64Array} random
83
+ * @returns {number}
84
+ */
85
+ export function compute_aviato_point(random) {
86
+ const ptr0 = passArray64ToWasm0(random, wasm.__wbindgen_export3);
87
+ const len0 = WASM_VECTOR_LEN;
88
+ const ret = wasm.compute_aviato_point(ptr0, len0);
89
+ return ret >>> 0;
90
+ }
91
+
68
92
  /**
69
93
  * Extract the 10 drawn numbers from Poseidon2 random output using
70
94
  * the combinatorial number system: `combo_index = random[0] % C(40,10)`.
@@ -103,6 +127,37 @@ export function compute_multi_dice(win_numbers) {
103
127
  return BigInt.asUintN(64, ret);
104
128
  }
105
129
 
130
+ /**
131
+ * Full aviato payout computation — pure integer arithmetic, zero floats.
132
+ *
133
+ * `random`: 4 Goldilocks field elements (Poseidon2 output of server_seed).
134
+ * `bet_atomic`: bet in atomic units (1 USDT = 1_000_000).
135
+ * `cashout_x100`: multiplier at which the user cashed out (×100).
136
+ * - 0 = user did NOT cash out (loss).
137
+ * - 100..=1_000_000 = user stopped at this multiplier.
138
+ *
139
+ * Returns `BigUint64Array[4]`: `[win_amount, aviato_x100, is_win (0|1), multiplier×10000]`.
140
+ * @param {BigUint64Array} random
141
+ * @param {bigint} bet_atomic
142
+ * @param {number} cashout_x100
143
+ * @returns {BigUint64Array}
144
+ */
145
+ export function compute_payout_aviato(random, bet_atomic, cashout_x100) {
146
+ try {
147
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
148
+ const ptr0 = passArray64ToWasm0(random, wasm.__wbindgen_export3);
149
+ const len0 = WASM_VECTOR_LEN;
150
+ wasm.compute_payout_aviato(retptr, ptr0, len0, bet_atomic, cashout_x100);
151
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
152
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
153
+ var v2 = getArrayU64FromWasm0(r0, r1).slice();
154
+ wasm.__wbindgen_export2(r0, r1 * 8, 8);
155
+ return v2;
156
+ } finally {
157
+ wasm.__wbindgen_add_to_stack_pointer(16);
158
+ }
159
+ }
160
+
106
161
  /**
107
162
  * Full coinflip payout computation — pure integer arithmetic, zero floats.
108
163
  *
@@ -481,7 +536,7 @@ export function derive_session_key(sig_bytes) {
481
536
  * @returns {number}
482
537
  */
483
538
  export function dice_rtp_percent() {
484
- const ret = wasm.coinflip_rtp_percent();
539
+ const ret = wasm.aviato_rtp_percent();
485
540
  return ret >>> 0;
486
541
  }
487
542
 
@@ -735,7 +790,7 @@ export function keno_rtp_x100(risk, pick_count) {
735
790
  * @returns {number}
736
791
  */
737
792
  export function limbo_rtp_percent() {
738
- const ret = wasm.coinflip_rtp_percent();
793
+ const ret = wasm.limbo_rtp_percent();
739
794
  return ret >>> 0;
740
795
  }
741
796
 
Binary file
@@ -2,11 +2,13 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const amount_split: (a: number, b: bigint) => void;
5
+ export const aviato_rtp_percent: () => number;
5
6
  export const coinflip_multiplier_x10000: () => number;
6
- export const coinflip_rtp_percent: () => number;
7
7
  export const compute_address_hash: (a: number, b: number, c: number) => void;
8
+ export const compute_aviato_point: (a: number, b: number) => number;
8
9
  export const compute_drawn_keno: (a: number, b: number, c: number) => void;
9
10
  export const compute_multi_dice: (a: number) => bigint;
11
+ export const compute_payout_aviato: (a: number, b: number, c: number, d: bigint, e: number) => void;
10
12
  export const compute_payout_coinflip: (a: number, b: number, c: number, d: bigint, e: number) => void;
11
13
  export const compute_payout_dice: (a: number, b: number, c: number, d: bigint, e: number, f: number, g: number) => void;
12
14
  export const compute_payout_keno: (a: number, b: number, c: number, d: bigint, e: number, f: number, g: number) => void;
@@ -33,6 +35,7 @@ export const keno_is_valid_config: (a: number, b: number) => number;
33
35
  export const keno_multiplier_table: (a: number, b: number, c: number) => void;
34
36
  export const keno_numbers_range: () => number;
35
37
  export const keno_rtp_x100: (a: number, b: number) => bigint;
38
+ export const limbo_rtp_percent: () => number;
36
39
  export const make_main_leaf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
37
40
  export const plinko_all_rtp_x100: () => number;
38
41
  export const plinko_is_valid_config: (a: number, b: number, c: number) => number;
@@ -48,9 +51,9 @@ export const seed_hash_truncated: (a: number, b: number, c: number) => void;
48
51
  export const session_public_key: (a: number, b: number, c: number, d: bigint) => void;
49
52
  export const string_to_user_seed: (a: number, b: number, c: number) => void;
50
53
  export const string_to_user_seed_hex: (a: number, b: number, c: number) => void;
54
+ export const coinflip_rtp_percent: () => number;
51
55
  export const dice_rtp_percent: () => number;
52
56
  export const keno_max_picks: () => number;
53
- export const limbo_rtp_percent: () => number;
54
57
  export const goldilocks_modulus: () => bigint;
55
58
  export const __wbindgen_export: (a: number) => void;
56
59
  export const __wbindgen_add_to_stack_pointer: (a: number) => number;
package/js/browser.mjs CHANGED
@@ -2,11 +2,14 @@ export { default as init } from '../dist/web/rolly_wasm_signer.js';
2
2
 
3
3
  export {
4
4
  amount_split,
5
+ aviato_rtp_percent,
5
6
  coinflip_multiplier_x10000,
6
7
  coinflip_rtp_percent,
7
8
  compute_address_hash,
9
+ compute_aviato_point,
8
10
  compute_drawn_keno,
9
11
  compute_multi_dice,
12
+ compute_payout_aviato,
10
13
  compute_payout_coinflip,
11
14
  compute_payout_dice,
12
15
  compute_payout_keno,
package/js/index.d.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  export {
2
2
  amount_split,
3
+ aviato_rtp_percent,
3
4
  coinflip_multiplier_x10000,
4
5
  coinflip_rtp_percent,
5
6
  compute_address_hash,
7
+ compute_aviato_point,
6
8
  compute_drawn_keno,
7
9
  compute_multi_dice,
10
+ compute_payout_aviato,
8
11
  compute_payout_coinflip,
9
12
  compute_payout_dice,
10
13
  compute_payout_keno,
@@ -4,11 +4,14 @@ const wasm = require('../dist/node-inline/rolly_wasm_signer.js');
4
4
 
5
5
  module.exports = {
6
6
  amount_split: wasm.amount_split,
7
+ aviato_rtp_percent: wasm.aviato_rtp_percent,
7
8
  coinflip_multiplier_x10000: wasm.coinflip_multiplier_x10000,
8
9
  coinflip_rtp_percent: wasm.coinflip_rtp_percent,
9
10
  compute_address_hash: wasm.compute_address_hash,
11
+ compute_aviato_point: wasm.compute_aviato_point,
10
12
  compute_drawn_keno: wasm.compute_drawn_keno,
11
13
  compute_multi_dice: wasm.compute_multi_dice,
14
+ compute_payout_aviato: wasm.compute_payout_aviato,
12
15
  compute_payout_coinflip: wasm.compute_payout_coinflip,
13
16
  compute_payout_dice: wasm.compute_payout_dice,
14
17
  compute_payout_keno: wasm.compute_payout_keno,
@@ -1,10 +1,13 @@
1
1
  export {
2
2
  amount_split,
3
+ aviato_rtp_percent,
3
4
  coinflip_multiplier_x10000,
4
5
  coinflip_rtp_percent,
5
6
  compute_address_hash,
7
+ compute_aviato_point,
6
8
  compute_drawn_keno,
7
9
  compute_multi_dice,
10
+ compute_payout_aviato,
8
11
  compute_payout_coinflip,
9
12
  compute_payout_dice,
10
13
  compute_payout_keno,
package/js/node.cjs CHANGED
@@ -4,11 +4,14 @@ const wasm = require('../dist/node/rolly_wasm_signer.js');
4
4
 
5
5
  module.exports = {
6
6
  amount_split: wasm.amount_split,
7
+ aviato_rtp_percent: wasm.aviato_rtp_percent,
7
8
  coinflip_multiplier_x10000: wasm.coinflip_multiplier_x10000,
8
9
  coinflip_rtp_percent: wasm.coinflip_rtp_percent,
9
10
  compute_address_hash: wasm.compute_address_hash,
11
+ compute_aviato_point: wasm.compute_aviato_point,
10
12
  compute_drawn_keno: wasm.compute_drawn_keno,
11
13
  compute_multi_dice: wasm.compute_multi_dice,
14
+ compute_payout_aviato: wasm.compute_payout_aviato,
12
15
  compute_payout_coinflip: wasm.compute_payout_coinflip,
13
16
  compute_payout_dice: wasm.compute_payout_dice,
14
17
  compute_payout_keno: wasm.compute_payout_keno,
package/js/node.mjs CHANGED
@@ -5,11 +5,14 @@ const wasm = require('../dist/node/rolly_wasm_signer.js');
5
5
 
6
6
  export const {
7
7
  amount_split,
8
+ aviato_rtp_percent,
8
9
  coinflip_multiplier_x10000,
9
10
  coinflip_rtp_percent,
10
11
  compute_address_hash,
12
+ compute_aviato_point,
11
13
  compute_drawn_keno,
12
14
  compute_multi_dice,
15
+ compute_payout_aviato,
13
16
  compute_payout_coinflip,
14
17
  compute_payout_dice,
15
18
  compute_payout_keno,
package/js/react.mjs CHANGED
@@ -1,11 +1,14 @@
1
1
  import { useState, useEffect } from 'react';
2
2
  import init, {
3
3
  amount_split,
4
+ aviato_rtp_percent,
4
5
  coinflip_multiplier_x10000,
5
6
  coinflip_rtp_percent,
6
7
  compute_address_hash,
8
+ compute_aviato_point,
7
9
  compute_drawn_keno,
8
10
  compute_multi_dice,
11
+ compute_payout_aviato,
9
12
  compute_payout_coinflip,
10
13
  compute_payout_dice,
11
14
  compute_payout_keno,
@@ -65,11 +68,14 @@ function guard(fn) {
65
68
 
66
69
  const fns = {
67
70
  amount_split: guard(amount_split),
71
+ aviato_rtp_percent: guard(aviato_rtp_percent),
68
72
  coinflip_multiplier_x10000: guard(coinflip_multiplier_x10000),
69
73
  coinflip_rtp_percent: guard(coinflip_rtp_percent),
70
74
  compute_address_hash: guard(compute_address_hash),
75
+ compute_aviato_point: guard(compute_aviato_point),
71
76
  compute_drawn_keno: guard(compute_drawn_keno),
72
77
  compute_multi_dice: guard(compute_multi_dice),
78
+ compute_payout_aviato: guard(compute_payout_aviato),
73
79
  compute_payout_coinflip: guard(compute_payout_coinflip),
74
80
  compute_payout_dice: guard(compute_payout_dice),
75
81
  compute_payout_keno: guard(compute_payout_keno),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolly-dev/wasm-signer",
3
- "version": "1.20.0",
3
+ "version": "1.22.0",
4
4
  "description": "Poseidon2 hashing & bet signing for Rolly ZK-Rollup (WASM, Goldilocks field)",
5
5
  "type": "module",
6
6
  "exports": {