@suigar/sdk 2.0.0-beta.14 → 2.0.0-beta.16

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.
Files changed (160) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +22 -8
  3. package/dist/client.d.mts +258 -0
  4. package/dist/client.d.mts.map +1 -0
  5. package/dist/client.mjs +291 -0
  6. package/dist/client.mjs.map +1 -0
  7. package/dist/configs/package.mainnet.mjs +23 -0
  8. package/dist/configs/package.mainnet.mjs.map +1 -0
  9. package/dist/configs/package.mjs +19 -0
  10. package/dist/configs/package.mjs.map +1 -0
  11. package/dist/configs/package.testnet.mjs +23 -0
  12. package/dist/configs/package.testnet.mjs.map +1 -0
  13. package/dist/configs/registry.mainnet.mjs +6 -0
  14. package/dist/configs/registry.mainnet.mjs.map +1 -0
  15. package/dist/configs/registry.mjs +11 -0
  16. package/dist/configs/registry.mjs.map +1 -0
  17. package/dist/configs/registry.testnet.mjs +6 -0
  18. package/dist/configs/registry.testnet.mjs.map +1 -0
  19. package/dist/contracts/coinflip/coinflip.mjs +46 -0
  20. package/dist/contracts/coinflip/coinflip.mjs.map +1 -0
  21. package/dist/contracts/core/core.d.mts +55 -0
  22. package/dist/contracts/core/core.d.mts.map +1 -0
  23. package/dist/contracts/core/core.mjs +22 -0
  24. package/dist/contracts/core/core.mjs.map +1 -0
  25. package/dist/contracts/core/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs +10 -0
  26. package/dist/contracts/core/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs.map +1 -0
  27. package/dist/contracts/core/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs +26 -0
  28. package/dist/contracts/core/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs.map +1 -0
  29. package/dist/contracts/core/float.d.mts +14 -0
  30. package/dist/contracts/core/float.d.mts.map +1 -0
  31. package/dist/contracts/core/float.mjs +15 -0
  32. package/dist/contracts/core/float.mjs.map +1 -0
  33. package/dist/contracts/core/i64.mjs +10 -0
  34. package/dist/contracts/core/i64.mjs.map +1 -0
  35. package/dist/contracts/limbo/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs +15 -0
  36. package/dist/contracts/limbo/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs.map +1 -0
  37. package/dist/contracts/limbo/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs +10 -0
  38. package/dist/contracts/limbo/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs.map +1 -0
  39. package/dist/contracts/limbo/limbo.mjs +53 -0
  40. package/dist/contracts/limbo/limbo.mjs.map +1 -0
  41. package/dist/contracts/plinko/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs +26 -0
  42. package/dist/contracts/plinko/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs.map +1 -0
  43. package/dist/contracts/plinko/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs +15 -0
  44. package/dist/contracts/plinko/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs.map +1 -0
  45. package/dist/contracts/plinko/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs +10 -0
  46. package/dist/contracts/plinko/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs.map +1 -0
  47. package/dist/contracts/plinko/plinko.mjs +59 -0
  48. package/dist/contracts/plinko/plinko.mjs.map +1 -0
  49. package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs +10 -0
  50. package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs.map +1 -0
  51. package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs +10 -0
  52. package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs.map +1 -0
  53. package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs +26 -0
  54. package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs.map +1 -0
  55. package/dist/contracts/pvp-coinflip/pvp_coinflip.d.mts +34 -0
  56. package/dist/contracts/pvp-coinflip/pvp_coinflip.d.mts.map +1 -0
  57. package/dist/contracts/pvp-coinflip/pvp_coinflip.mjs +131 -0
  58. package/dist/contracts/pvp-coinflip/pvp_coinflip.mjs.map +1 -0
  59. package/dist/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs +15 -0
  60. package/dist/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs.map +1 -0
  61. package/dist/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs +10 -0
  62. package/dist/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs.map +1 -0
  63. package/dist/contracts/range/range.mjs +53 -0
  64. package/dist/contracts/range/range.mjs.map +1 -0
  65. package/dist/contracts/utils/index.d.mts +33 -0
  66. package/dist/contracts/utils/index.d.mts.map +1 -0
  67. package/dist/contracts/utils/index.mjs +119 -0
  68. package/dist/contracts/utils/index.mjs.map +1 -0
  69. package/dist/contracts/wheel/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs +26 -0
  70. package/dist/contracts/wheel/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs.map +1 -0
  71. package/dist/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs +15 -0
  72. package/dist/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs.map +1 -0
  73. package/dist/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs +10 -0
  74. package/dist/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs.map +1 -0
  75. package/dist/contracts/wheel/wheel.mjs +59 -0
  76. package/dist/contracts/wheel/wheel.mjs.map +1 -0
  77. package/dist/games.d.mts +3 -0
  78. package/dist/games.mjs +1 -0
  79. package/dist/helpers/config.mjs +51 -0
  80. package/dist/helpers/config.mjs.map +1 -0
  81. package/dist/helpers/game-settings.mjs +19 -0
  82. package/dist/helpers/game-settings.mjs.map +1 -0
  83. package/dist/helpers/metadata.mjs +42 -0
  84. package/dist/helpers/metadata.mjs.map +1 -0
  85. package/dist/index.d.mts +2 -0
  86. package/dist/index.mjs +2 -0
  87. package/dist/transactions/coinflip.mjs +27 -0
  88. package/dist/transactions/coinflip.mjs.map +1 -0
  89. package/dist/transactions/limbo.mjs +31 -0
  90. package/dist/transactions/limbo.mjs.map +1 -0
  91. package/dist/transactions/plinko.mjs +29 -0
  92. package/dist/transactions/plinko.mjs.map +1 -0
  93. package/dist/transactions/pvp-coinflip.mjs +70 -0
  94. package/dist/transactions/pvp-coinflip.mjs.map +1 -0
  95. package/dist/transactions/range.mjs +33 -0
  96. package/dist/transactions/range.mjs.map +1 -0
  97. package/dist/transactions/shared.mjs +49 -0
  98. package/dist/transactions/shared.mjs.map +1 -0
  99. package/dist/transactions/wheel.mjs +29 -0
  100. package/dist/transactions/wheel.mjs.map +1 -0
  101. package/dist/ttl-cache.mjs +60 -0
  102. package/dist/ttl-cache.mjs.map +1 -0
  103. package/dist/types/bet-metadata.type.d.mts +7 -0
  104. package/dist/types/bet-metadata.type.d.mts.map +1 -0
  105. package/dist/types/build-game-transaction-options.type.d.mts +9 -0
  106. package/dist/types/build-game-transaction-options.type.d.mts.map +1 -0
  107. package/dist/types/game-details.type.d.mts +73 -0
  108. package/dist/types/game-details.type.d.mts.map +1 -0
  109. package/dist/types/game-details.type.mjs +59 -0
  110. package/dist/types/game-details.type.mjs.map +1 -0
  111. package/dist/types/game-settings.type.d.mts +201 -0
  112. package/dist/types/game-settings.type.d.mts.map +1 -0
  113. package/dist/types/game-settings.type.mjs +37 -0
  114. package/dist/types/game-settings.type.mjs.map +1 -0
  115. package/dist/types/game.type.d.mts +15 -0
  116. package/dist/types/game.type.d.mts.map +1 -0
  117. package/dist/types/game.type.mjs +19 -0
  118. package/dist/types/game.type.mjs.map +1 -0
  119. package/dist/types/index.d.mts +7 -0
  120. package/dist/types/move-float.type.d.mts +7 -0
  121. package/dist/types/move-float.type.d.mts.map +1 -0
  122. package/dist/types/network.type.d.mts +1 -0
  123. package/dist/types/network.type.mjs +6 -0
  124. package/dist/types/network.type.mjs.map +1 -0
  125. package/dist/types/suigar-config.type.d.mts +33 -0
  126. package/dist/types/suigar-config.type.d.mts.map +1 -0
  127. package/dist/types/transaction-options.type.d.mts +63 -0
  128. package/dist/types/transaction-options.type.d.mts.map +1 -0
  129. package/dist/utils/constants.d.mts +8 -0
  130. package/dist/utils/constants.d.mts.map +1 -0
  131. package/dist/utils/constants.mjs +10 -0
  132. package/dist/utils/constants.mjs.map +1 -0
  133. package/dist/utils/numeric.d.mts +86 -0
  134. package/dist/utils/numeric.d.mts.map +1 -0
  135. package/dist/utils/numeric.mjs +148 -0
  136. package/dist/utils/numeric.mjs.map +1 -0
  137. package/dist/utils/parser.d.mts +54 -0
  138. package/dist/utils/parser.d.mts.map +1 -0
  139. package/dist/utils/parser.mjs +94 -0
  140. package/dist/utils/parser.mjs.map +1 -0
  141. package/dist/utils.d.mts +4 -0
  142. package/dist/utils.mjs +4 -0
  143. package/package.json +21 -22
  144. package/dist/chunk-7N55D2TV.js +0 -343
  145. package/dist/games-Da2uZvVJ.d.cts +0 -98
  146. package/dist/games-Da2uZvVJ.d.ts +0 -98
  147. package/dist/games.cjs +0 -2
  148. package/dist/games.d.cts +0 -2
  149. package/dist/games.d.ts +0 -2
  150. package/dist/games.js +0 -1
  151. package/dist/index-3P_LBbDM.d.cts +0 -25
  152. package/dist/index-3P_LBbDM.d.ts +0 -25
  153. package/dist/index.cjs +0 -1692
  154. package/dist/index.d.cts +0 -467
  155. package/dist/index.d.ts +0 -467
  156. package/dist/index.js +0 -1470
  157. package/dist/utils.cjs +0 -243
  158. package/dist/utils.d.cts +0 -180
  159. package/dist/utils.d.ts +0 -180
  160. package/dist/utils.js +0 -1
@@ -0,0 +1,60 @@
1
+ import { ClientCache } from "@mysten/sui/client";
2
+ //#region src/ttl-cache.ts
3
+ var TtlClientCache = class extends ClientCache {
4
+ #ttlMs;
5
+ constructor({ ttlMs, ...options }) {
6
+ super({
7
+ ...options,
8
+ prefix: options.prefix ?? ["ttl"]
9
+ });
10
+ this.#ttlMs = ttlMs;
11
+ }
12
+ read(key, load, options) {
13
+ if (options?.ignoreCache) super.clear(key);
14
+ if (this.#ttlMs <= 0) return load();
15
+ const cached = super.read(key, () => this.#loadEntry(key, load));
16
+ if (cached && cached.expiresAt > Date.now()) return cached.value;
17
+ super.clear(key);
18
+ return super.read(key, () => this.#loadEntry(key, load)).value;
19
+ }
20
+ readSync(key, load, options) {
21
+ if (options?.ignoreCache) super.clear(key);
22
+ if (this.#ttlMs <= 0) return load();
23
+ const cached = super.readSync(key, () => this.#loadSyncEntry(load));
24
+ if (cached.expiresAt > Date.now()) return cached.value;
25
+ super.clear(key);
26
+ return super.readSync(key, () => this.#loadSyncEntry(load)).value;
27
+ }
28
+ #loadEntry(key, load) {
29
+ const value = load();
30
+ const entry = {
31
+ value,
32
+ expiresAt: Date.now() + this.#ttlMs
33
+ };
34
+ if (isPromiseLike(value)) entry.value = Promise.resolve(value).then((resolved) => {
35
+ super.clear(key);
36
+ super.read(key, () => ({
37
+ value: resolved,
38
+ expiresAt: Date.now() + this.#ttlMs
39
+ }));
40
+ return resolved;
41
+ }).catch((error) => {
42
+ super.clear(key);
43
+ throw error;
44
+ });
45
+ return entry;
46
+ }
47
+ #loadSyncEntry(load) {
48
+ return {
49
+ value: load(),
50
+ expiresAt: Date.now() + this.#ttlMs
51
+ };
52
+ }
53
+ };
54
+ function isPromiseLike(value) {
55
+ return (typeof value === "object" || typeof value === "function") && value !== null && "then" in value;
56
+ }
57
+ //#endregion
58
+ export { TtlClientCache };
59
+
60
+ //# sourceMappingURL=ttl-cache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ttl-cache.mjs","names":["#ttlMs","#loadEntry","#loadSyncEntry"],"sources":["../src/ttl-cache.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ClientCache, type ClientCacheOptions } from '@mysten/sui/client';\n\ntype CacheEntry<Value> = {\n\texpiresAt: number;\n\tvalue: Value;\n};\n\ntype TtlClientCacheReadOptions = {\n\tignoreCache?: boolean;\n};\n\nexport class TtlClientCache extends ClientCache {\n\t#ttlMs: number;\n\n\tconstructor({ ttlMs, ...options }: ClientCacheOptions & { ttlMs: number }) {\n\t\tsuper({\n\t\t\t...options,\n\t\t\tprefix: options.prefix ?? ['ttl'],\n\t\t});\n\t\tthis.#ttlMs = ttlMs;\n\t}\n\n\toverride read<T>(\n\t\tkey: [string, ...string[]],\n\t\tload: () => T | Promise<T>,\n\t\toptions?: TtlClientCacheReadOptions,\n\t): T | Promise<T> {\n\t\tif (options?.ignoreCache) {\n\t\t\tsuper.clear(key);\n\t\t}\n\n\t\tif (this.#ttlMs <= 0) {\n\t\t\treturn load();\n\t\t}\n\n\t\tconst cached = super.read<CacheEntry<T | Promise<T>>>(key, () =>\n\t\t\tthis.#loadEntry(key, load),\n\t\t) as CacheEntry<T | Promise<T>>;\n\n\t\tif (cached && cached.expiresAt > Date.now()) {\n\t\t\treturn cached.value as T;\n\t\t}\n\n\t\tsuper.clear(key);\n\t\treturn (\n\t\t\tsuper.read<CacheEntry<T | Promise<T>>>(key, () =>\n\t\t\t\tthis.#loadEntry(key, load),\n\t\t\t) as CacheEntry<T | Promise<T>>\n\t\t).value as T | Promise<T>;\n\t}\n\n\toverride readSync<T>(\n\t\tkey: [string, ...string[]],\n\t\tload: () => T,\n\t\toptions?: TtlClientCacheReadOptions,\n\t): T {\n\t\tif (options?.ignoreCache) {\n\t\t\tsuper.clear(key);\n\t\t}\n\n\t\tif (this.#ttlMs <= 0) {\n\t\t\treturn load();\n\t\t}\n\n\t\tconst cached = super.readSync<CacheEntry<T>>(key, () =>\n\t\t\tthis.#loadSyncEntry(load),\n\t\t);\n\n\t\tif (cached.expiresAt > Date.now()) {\n\t\t\treturn cached.value;\n\t\t}\n\n\t\tsuper.clear(key);\n\t\treturn super.readSync<CacheEntry<T>>(key, () => this.#loadSyncEntry(load))\n\t\t\t.value;\n\t}\n\n\t#loadEntry<T>(\n\t\tkey: [string, ...string[]],\n\t\tload: () => T | Promise<T>,\n\t): CacheEntry<T | Promise<T>> {\n\t\tconst value = load();\n\t\tconst entry: CacheEntry<T | Promise<T>> = {\n\t\t\tvalue,\n\t\t\texpiresAt: Date.now() + this.#ttlMs,\n\t\t};\n\n\t\tif (isPromiseLike(value)) {\n\t\t\tentry.value = Promise.resolve(value)\n\t\t\t\t.then((resolved) => {\n\t\t\t\t\tsuper.clear(key);\n\t\t\t\t\tsuper.read<CacheEntry<T>>(key, () => ({\n\t\t\t\t\t\tvalue: resolved,\n\t\t\t\t\t\texpiresAt: Date.now() + this.#ttlMs,\n\t\t\t\t\t}));\n\t\t\t\t\treturn resolved as T;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tsuper.clear(key);\n\t\t\t\t\tthrow error;\n\t\t\t\t});\n\t\t}\n\n\t\treturn entry;\n\t}\n\n\t#loadSyncEntry<T>(load: () => T): CacheEntry<T> {\n\t\treturn {\n\t\t\tvalue: load(),\n\t\t\texpiresAt: Date.now() + this.#ttlMs,\n\t\t};\n\t}\n}\n\nfunction isPromiseLike<T>(value: T | Promise<T>): value is Promise<T> {\n\treturn (\n\t\t(typeof value === 'object' || typeof value === 'function') &&\n\t\tvalue !== null &&\n\t\t'then' in value\n\t);\n}\n"],"mappings":";;AAcA,IAAa,iBAAb,cAAoC,YAAY;CAC/C;CAEA,YAAY,EAAE,OAAO,GAAG,WAAmD;EAC1E,MAAM;GACL,GAAG;GACH,QAAQ,QAAQ,UAAU,CAAC,MAAM;GACjC,CAAC;EACF,KAAKA,SAAS;;CAGf,KACC,KACA,MACA,SACiB;EACjB,IAAI,SAAS,aACZ,MAAM,MAAM,IAAI;EAGjB,IAAI,KAAKA,UAAU,GAClB,OAAO,MAAM;EAGd,MAAM,SAAS,MAAM,KAAiC,WACrD,KAAKC,WAAW,KAAK,KAAK,CAC1B;EAED,IAAI,UAAU,OAAO,YAAY,KAAK,KAAK,EAC1C,OAAO,OAAO;EAGf,MAAM,MAAM,IAAI;EAChB,OACC,MAAM,KAAiC,WACtC,KAAKA,WAAW,KAAK,KAAK,CAC1B,CACA;;CAGH,SACC,KACA,MACA,SACI;EACJ,IAAI,SAAS,aACZ,MAAM,MAAM,IAAI;EAGjB,IAAI,KAAKD,UAAU,GAClB,OAAO,MAAM;EAGd,MAAM,SAAS,MAAM,SAAwB,WAC5C,KAAKE,eAAe,KAAK,CACzB;EAED,IAAI,OAAO,YAAY,KAAK,KAAK,EAChC,OAAO,OAAO;EAGf,MAAM,MAAM,IAAI;EAChB,OAAO,MAAM,SAAwB,WAAW,KAAKA,eAAe,KAAK,CAAC,CACxE;;CAGH,WACC,KACA,MAC6B;EAC7B,MAAM,QAAQ,MAAM;EACpB,MAAM,QAAoC;GACzC;GACA,WAAW,KAAK,KAAK,GAAG,KAAKF;GAC7B;EAED,IAAI,cAAc,MAAM,EACvB,MAAM,QAAQ,QAAQ,QAAQ,MAAM,CAClC,MAAM,aAAa;GACnB,MAAM,MAAM,IAAI;GAChB,MAAM,KAAoB,YAAY;IACrC,OAAO;IACP,WAAW,KAAK,KAAK,GAAG,KAAKA;IAC7B,EAAE;GACH,OAAO;IACN,CACD,OAAO,UAAU;GACjB,MAAM,MAAM,IAAI;GAChB,MAAM;IACL;EAGJ,OAAO;;CAGR,eAAkB,MAA8B;EAC/C,OAAO;GACN,OAAO,MAAM;GACb,WAAW,KAAK,KAAK,GAAG,KAAKA;GAC7B;;;AAIH,SAAS,cAAiB,OAA4C;CACrE,QACE,OAAO,UAAU,YAAY,OAAO,UAAU,eAC/C,UAAU,QACV,UAAU"}
@@ -0,0 +1,7 @@
1
+ //#region src/types/bet-metadata.type.d.ts
2
+ type BetMetadataPrimitive = string | number | boolean | bigint;
3
+ type BetMetadataValue = BetMetadataPrimitive | Uint8Array | number[];
4
+ type BetMetadataInput = Record<string, BetMetadataValue | null | undefined>;
5
+ //#endregion
6
+ export { BetMetadataInput, BetMetadataPrimitive, BetMetadataValue };
7
+ //# sourceMappingURL=bet-metadata.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bet-metadata.type.d.mts","names":[],"sources":["../../src/types/bet-metadata.type.ts"],"mappings":";KAGY,oBAAA;AAAA,KACA,gBAAA,GAAmB,oBAAA,GAAuB,UAAA;AAAA,KAC1C,gBAAA,GAAmB,MAAA,SAE9B,gBAAA"}
@@ -0,0 +1,9 @@
1
+ import { StandardGame } from "./game.type.mjs";
2
+ import { BuildCoinflipTransactionOptions, BuildLimboTransactionOptions, BuildPlinkoTransactionOptions, BuildRangeTransactionOptions, BuildWheelTransactionOptions } from "./transaction-options.type.mjs";
3
+
4
+ //#region src/types/build-game-transaction-options.type.d.ts
5
+ type WithoutConfig<T> = Omit<T, 'config'>;
6
+ type BuildGameOptions<GameId extends StandardGame> = GameId extends 'coinflip' ? WithoutConfig<BuildCoinflipTransactionOptions> : GameId extends 'wheel' ? WithoutConfig<BuildWheelTransactionOptions> : GameId extends 'limbo' ? WithoutConfig<BuildLimboTransactionOptions> : GameId extends 'plinko' ? WithoutConfig<BuildPlinkoTransactionOptions> : GameId extends 'range' ? WithoutConfig<BuildRangeTransactionOptions> : never;
7
+ //#endregion
8
+ export { BuildGameOptions };
9
+ //# sourceMappingURL=build-game-transaction-options.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-game-transaction-options.type.d.mts","names":[],"sources":["../../src/types/build-game-transaction-options.type.ts"],"mappings":";;;;KAcK,aAAA,MAAmB,IAAA,CAAK,CAAA;AAAA,KAEjB,gBAAA,gBAAgC,YAAA,IAC3C,MAAA,sBACG,aAAA,CAAc,+BAAA,IACd,MAAA,mBACC,aAAA,CAAc,4BAAA,IACd,MAAA,mBACC,aAAA,CAAc,4BAAA,IACd,MAAA,oBACC,aAAA,CAAc,6BAAA,IACd,MAAA,mBACC,aAAA,CAAc,4BAAA"}
@@ -0,0 +1,73 @@
1
+ import { Game } from "./game.type.mjs";
2
+ import { MoveStruct } from "../contracts/utils/index.mjs";
3
+ import { BetResultEvent } from "../contracts/core/core.mjs";
4
+ import * as _$_mysten_bcs0 from "@mysten/bcs";
5
+
6
+ //#region src/types/game-details.type.d.ts
7
+ type BetResultGameDetails = ReturnType<(typeof BetResultEvent)['parse']>['game_details'];
8
+ type GameDetailValueType = 'u8' | 'u64' | 'bool' | 'float' | 'string';
9
+ type GameDetail<TValueType extends GameDetailValueType> = TValueType extends 'float' | 'u64' ? number : ReturnType<(typeof GAME_DETAIL_BCS)[TValueType]['parse']>;
10
+ type GameDetails<TGame extends Game> = { [K in keyof (typeof GAME_DETAILS_SCHEMAS)[TGame]]: GameDetail<(typeof GAME_DETAILS_SCHEMAS)[TGame][K] & GameDetailValueType> };
11
+ declare const GAME_DETAIL_BCS: {
12
+ readonly u8: _$_mysten_bcs0.BcsType<number, number, "u8">;
13
+ readonly u64: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
14
+ readonly bool: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
15
+ readonly float: MoveStruct<{
16
+ is_negative: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
17
+ exp: MoveStruct<{
18
+ bits: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
19
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64::I64">;
20
+ mant: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
21
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float::Float">;
22
+ readonly string: _$_mysten_bcs0.BcsType<string, string, "string">;
23
+ };
24
+ declare const GAME_DETAILS_SCHEMAS: {
25
+ coinflip: {
26
+ player_bet: "string";
27
+ coin_outcome: "string";
28
+ };
29
+ limbo: {
30
+ payout_amount: "u64";
31
+ win: "bool";
32
+ roll_multiplier: "float";
33
+ payout_multiplier: "float";
34
+ target_multiplier: "float";
35
+ actual_rtp: "float";
36
+ };
37
+ plinko: {
38
+ slot_index: "u8";
39
+ multiplier: "float";
40
+ payout_amount: "u64";
41
+ plinko_config: "u8";
42
+ };
43
+ 'pvp-coinflip': {
44
+ pvp_result: "string";
45
+ };
46
+ range: {
47
+ roll_value: "u64";
48
+ win: "bool";
49
+ payout_amount: "u64";
50
+ payout_multiplier: "float";
51
+ left_point: "u64";
52
+ right_point: "u64";
53
+ zone_size: "u64";
54
+ winning_zone_size: "u64";
55
+ is_out_range: "bool";
56
+ bet_threshold: "u64";
57
+ roll_under: "bool";
58
+ range_mode: "u8";
59
+ win_probability: "float";
60
+ win_multiplier: "float";
61
+ actual_rtp: "float";
62
+ };
63
+ wheel: {
64
+ case_index: "u8";
65
+ multiplier: "float";
66
+ payout_amount: "u64";
67
+ wheel_config: "u8";
68
+ spin_value: "u64";
69
+ };
70
+ };
71
+ //#endregion
72
+ export { BetResultGameDetails, GAME_DETAILS_SCHEMAS, GAME_DETAIL_BCS, GameDetail, GameDetailValueType, GameDetails };
73
+ //# sourceMappingURL=game-details.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-details.type.d.mts","names":[],"sources":["../../src/types/game-details.type.ts"],"mappings":";;;;;;KAQY,oBAAA,GAAuB,UAAA,SAC1B,cAAA;AAAA,KAGG,mBAAA;AAAA,KAGA,UAAA,oBAA8B,mBAAA,IACzC,UAAA,oCAEG,UAAA,SAAmB,eAAA,EAAiB,UAAA;AAAA,KAE5B,WAAA,eAA0B,IAAA,0BACjB,oBAAA,EAAsB,KAAA,IAAS,UAAA,SAC1C,oBAAA,EAAsB,KAAA,EAAO,CAAA,IAAK,mBAAA;AAAA,cAI/B,eAAA;EAAA,aAMH,cAAA,CAAA,OAAA;EAAA;;;;;;;;;;;cAqDG,oBAAA"}
@@ -0,0 +1,59 @@
1
+ import { Float } from "../contracts/core/float.mjs";
2
+ import { bcs } from "@mysten/sui/bcs";
3
+ //#region src/types/game-details.type.ts
4
+ const GAME_DETAIL_BCS = {
5
+ u8: bcs.U8,
6
+ u64: bcs.U64,
7
+ bool: bcs.Bool,
8
+ float: Float,
9
+ string: bcs.String
10
+ };
11
+ const GAME_DETAILS_SCHEMAS = {
12
+ coinflip: {
13
+ player_bet: "string",
14
+ coin_outcome: "string"
15
+ },
16
+ limbo: {
17
+ payout_amount: "u64",
18
+ win: "bool",
19
+ roll_multiplier: "float",
20
+ payout_multiplier: "float",
21
+ target_multiplier: "float",
22
+ actual_rtp: "float"
23
+ },
24
+ plinko: {
25
+ slot_index: "u8",
26
+ multiplier: "float",
27
+ payout_amount: "u64",
28
+ plinko_config: "u8"
29
+ },
30
+ "pvp-coinflip": { pvp_result: "string" },
31
+ range: {
32
+ roll_value: "u64",
33
+ win: "bool",
34
+ payout_amount: "u64",
35
+ payout_multiplier: "float",
36
+ left_point: "u64",
37
+ right_point: "u64",
38
+ zone_size: "u64",
39
+ winning_zone_size: "u64",
40
+ is_out_range: "bool",
41
+ bet_threshold: "u64",
42
+ roll_under: "bool",
43
+ range_mode: "u8",
44
+ win_probability: "float",
45
+ win_multiplier: "float",
46
+ actual_rtp: "float"
47
+ },
48
+ wheel: {
49
+ case_index: "u8",
50
+ multiplier: "float",
51
+ payout_amount: "u64",
52
+ wheel_config: "u8",
53
+ spin_value: "u64"
54
+ }
55
+ };
56
+ //#endregion
57
+ export { GAME_DETAILS_SCHEMAS, GAME_DETAIL_BCS };
58
+
59
+ //# sourceMappingURL=game-details.type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-details.type.mjs","names":[],"sources":["../../src/types/game-details.type.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@mysten/sui/bcs';\nimport { BetResultEvent } from '../contracts/core/core';\nimport { Float } from '../contracts/core/float';\nimport type { Game } from './game.type.js';\n\nexport type BetResultGameDetails = ReturnType<\n\t(typeof BetResultEvent)['parse']\n>['game_details'];\n\nexport type GameDetailValueType = 'u8' | 'u64' | 'bool' | 'float' | 'string';\nexport type GameDetailsSchema = Record<string, GameDetailValueType>;\n\nexport type GameDetail<TValueType extends GameDetailValueType> =\n\tTValueType extends 'float' | 'u64'\n\t\t? number\n\t\t: ReturnType<(typeof GAME_DETAIL_BCS)[TValueType]['parse']>;\n\nexport type GameDetails<TGame extends Game> = {\n\t[K in keyof (typeof GAME_DETAILS_SCHEMAS)[TGame]]: GameDetail<\n\t\t(typeof GAME_DETAILS_SCHEMAS)[TGame][K] & GameDetailValueType\n\t>;\n};\n\nexport const GAME_DETAIL_BCS = {\n\tu8: bcs.U8,\n\tu64: bcs.U64,\n\tbool: bcs.Bool,\n\tfloat: Float,\n\tstring: bcs.String,\n} as const;\n\nconst COINFLIP_GAME_DETAILS_SCHEMA = {\n\tplayer_bet: 'string',\n\tcoin_outcome: 'string',\n} satisfies GameDetailsSchema;\n\nconst PVP_COINFLIP_GAME_DETAILS_SCHEMA = {\n\tpvp_result: 'string',\n} satisfies GameDetailsSchema;\n\nconst LIMBO_GAME_DETAILS_SCHEMA = {\n\tpayout_amount: 'u64',\n\twin: 'bool',\n\troll_multiplier: 'float',\n\tpayout_multiplier: 'float',\n\ttarget_multiplier: 'float',\n\tactual_rtp: 'float',\n} satisfies GameDetailsSchema;\n\nconst RANGE_GAME_DETAILS_SCHEMA = {\n\troll_value: 'u64',\n\twin: 'bool',\n\tpayout_amount: 'u64',\n\tpayout_multiplier: 'float',\n\tleft_point: 'u64',\n\tright_point: 'u64',\n\tzone_size: 'u64',\n\twinning_zone_size: 'u64',\n\tis_out_range: 'bool',\n\tbet_threshold: 'u64',\n\troll_under: 'bool',\n\trange_mode: 'u8',\n\twin_probability: 'float',\n\twin_multiplier: 'float',\n\tactual_rtp: 'float',\n} satisfies GameDetailsSchema;\n\nconst PLINKO_GAME_DETAILS_SCHEMA = {\n\tslot_index: 'u8',\n\tmultiplier: 'float',\n\tpayout_amount: 'u64',\n\tplinko_config: 'u8',\n} satisfies GameDetailsSchema;\n\nconst WHEEL_GAME_DETAILS_SCHEMA = {\n\tcase_index: 'u8',\n\tmultiplier: 'float',\n\tpayout_amount: 'u64',\n\twheel_config: 'u8',\n\tspin_value: 'u64',\n} satisfies GameDetailsSchema;\n\nexport const GAME_DETAILS_SCHEMAS = {\n\tcoinflip: COINFLIP_GAME_DETAILS_SCHEMA,\n\tlimbo: LIMBO_GAME_DETAILS_SCHEMA,\n\tplinko: PLINKO_GAME_DETAILS_SCHEMA,\n\t'pvp-coinflip': PVP_COINFLIP_GAME_DETAILS_SCHEMA,\n\trange: RANGE_GAME_DETAILS_SCHEMA,\n\twheel: WHEEL_GAME_DETAILS_SCHEMA,\n} satisfies Record<Game, GameDetailsSchema>;\n"],"mappings":";;;AA0BA,MAAa,kBAAkB;CAC9B,IAAI,IAAI;CACR,KAAK,IAAI;CACT,MAAM,IAAI;CACV,OAAO;CACP,QAAQ,IAAI;CACZ;AAqDD,MAAa,uBAAuB;CACnC,UAAU;EAnDV,YAAY;EACZ,cAAc;EAkDJ;CACV,OAAO;EA3CP,eAAe;EACf,KAAK;EACL,iBAAiB;EACjB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EAsCL;CACP,QAAQ;EAjBR,YAAY;EACZ,YAAY;EACZ,eAAe;EACf,eAAe;EAcP;CACR,gBAAgB,EAjDhB,YAAY,UAiDI;CAChB,OAAO;EArCP,YAAY;EACZ,KAAK;EACL,eAAe;EACf,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,WAAW;EACX,mBAAmB;EACnB,cAAc;EACd,eAAe;EACf,YAAY;EACZ,YAAY;EACZ,iBAAiB;EACjB,gBAAgB;EAChB,YAAY;EAuBL;CACP,OAAO;EAbP,YAAY;EACZ,YAAY;EACZ,eAAe;EACf,cAAc;EACd,YAAY;EASL;CACP"}
@@ -0,0 +1,201 @@
1
+ import { Game } from "./game.type.mjs";
2
+ import { MoveStruct } from "../contracts/utils/index.mjs";
3
+ import { SuiClientTypes } from "@mysten/sui/client";
4
+ import * as _$_mysten_bcs0 from "@mysten/bcs";
5
+
6
+ //#region src/types/game-settings.type.d.ts
7
+ declare const GAME_SETTINGS: {
8
+ readonly coinflip: {
9
+ readonly settingsKey: MoveStruct<{
10
+ dummy_field: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
11
+ }, "0xb35c5f286c443752afc8ccb40125a578a4f32df35617170ccfa17fe180ab80ea::coinflip::CoinFlipSettingsKey">;
12
+ readonly parameters: MoveStruct<{
13
+ id: _$_mysten_bcs0.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
14
+ house_edge: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
15
+ min_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
16
+ max_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
17
+ }, "0xb35c5f286c443752afc8ccb40125a578a4f32df35617170ccfa17fe180ab80ea::coinflip::Parameters<phantom T0>">;
18
+ };
19
+ readonly limbo: {
20
+ readonly settingsKey: MoveStruct<{
21
+ dummy_field: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
22
+ }, "0x96c7841b9b32c59a219760fd656f1c3aceb53cc74a68ec9844a3a696374309f4::limbo::LimboSettingsKey">;
23
+ readonly parameters: MoveStruct<{
24
+ id: _$_mysten_bcs0.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
25
+ min_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
26
+ max_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
27
+ max_payout: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
28
+ min_target_multiplier: MoveStruct<{
29
+ is_negative: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
30
+ exp: MoveStruct<{
31
+ bits: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
32
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64::I64">;
33
+ mant: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
34
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float::Float">;
35
+ max_target_multiplier: MoveStruct<{
36
+ is_negative: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
37
+ exp: MoveStruct<{
38
+ bits: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
39
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64::I64">;
40
+ mant: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
41
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float::Float">;
42
+ max_number_of_games: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
43
+ min_rtp: MoveStruct<{
44
+ is_negative: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
45
+ exp: MoveStruct<{
46
+ bits: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
47
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64::I64">;
48
+ mant: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
49
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float::Float">;
50
+ max_rtp: MoveStruct<{
51
+ is_negative: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
52
+ exp: MoveStruct<{
53
+ bits: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
54
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64::I64">;
55
+ mant: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
56
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float::Float">;
57
+ }, "0x96c7841b9b32c59a219760fd656f1c3aceb53cc74a68ec9844a3a696374309f4::limbo::Parameters<phantom T0>">;
58
+ };
59
+ readonly plinko: {
60
+ readonly settingsKey: MoveStruct<{
61
+ dummy_field: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
62
+ }, "0xd3dd2200883af10811724f0bed97591ad155a02efd6332d471ff8b346030dfb7::plinko::PlinkoSettingsKey">;
63
+ readonly parameters: MoveStruct<{
64
+ id: _$_mysten_bcs0.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
65
+ min_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
66
+ max_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
67
+ max_number_of_balls: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
68
+ configs: MoveStruct<{
69
+ contents: _$_mysten_bcs0.BcsType<{
70
+ key: number;
71
+ value: {
72
+ num_rows: number;
73
+ multipliers: {
74
+ is_negative: boolean;
75
+ exp: {
76
+ bits: string;
77
+ };
78
+ mant: string;
79
+ }[];
80
+ min_stake: string;
81
+ max_stake: string;
82
+ is_playable: boolean;
83
+ };
84
+ }[], Iterable<{
85
+ key: number;
86
+ value: {
87
+ num_rows: number;
88
+ multipliers: Iterable<{
89
+ is_negative: boolean;
90
+ exp: {
91
+ bits: string | number | bigint;
92
+ };
93
+ mant: string | number | bigint;
94
+ }> & {
95
+ length: number;
96
+ };
97
+ min_stake: string | number | bigint;
98
+ max_stake: string | number | bigint;
99
+ is_playable: boolean;
100
+ };
101
+ }> & {
102
+ length: number;
103
+ }, string>;
104
+ }, "0x2::vec_map::VecMap<u8, 0xd3dd2200883af10811724f0bed97591ad155a02efd6332d471ff8b346030dfb7::plinko::PlinkoConfig>">;
105
+ }, "0xd3dd2200883af10811724f0bed97591ad155a02efd6332d471ff8b346030dfb7::plinko::Parameters<phantom T0>">;
106
+ };
107
+ readonly 'pvp-coinflip': {
108
+ readonly settingsKey: MoveStruct<{
109
+ dummy_field: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
110
+ }, "0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202::pvp_coinflip::PvpCoinflipSettingsKey">;
111
+ readonly parameters: MoveStruct<{
112
+ id: _$_mysten_bcs0.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
113
+ house_edge_bps: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
114
+ min_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
115
+ }, "0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202::pvp_coinflip::Parameters<phantom T0>">;
116
+ };
117
+ readonly range: {
118
+ readonly settingsKey: MoveStruct<{
119
+ dummy_field: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
120
+ }, "0x096a4cf18b3661e76b2c62b90785418345d52f45b272448794f123a4cb6b6416::range::RangeSettingsKey">;
121
+ readonly parameters: MoveStruct<{
122
+ id: _$_mysten_bcs0.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
123
+ min_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
124
+ max_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
125
+ min_zone_size: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
126
+ max_zone_size: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
127
+ max_number_of_games: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
128
+ min_rtp: MoveStruct<{
129
+ is_negative: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
130
+ exp: MoveStruct<{
131
+ bits: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
132
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64::I64">;
133
+ mant: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
134
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float::Float">;
135
+ max_rtp: MoveStruct<{
136
+ is_negative: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
137
+ exp: MoveStruct<{
138
+ bits: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
139
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64::I64">;
140
+ mant: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
141
+ }, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float::Float">;
142
+ }, "0x096a4cf18b3661e76b2c62b90785418345d52f45b272448794f123a4cb6b6416::range::Parameters<phantom T0>">;
143
+ };
144
+ readonly wheel: {
145
+ readonly settingsKey: MoveStruct<{
146
+ dummy_field: _$_mysten_bcs0.BcsType<boolean, boolean, "bool">;
147
+ }, "0x0997852ded7e13301c42317004bc49704a893aa82997c5706cebee59053a31b7::wheel::WheelSettingsKey">;
148
+ readonly parameters: MoveStruct<{
149
+ id: _$_mysten_bcs0.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
150
+ min_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
151
+ max_stake: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
152
+ max_number_of_spins: _$_mysten_bcs0.BcsType<string, string | number | bigint, "u64">;
153
+ configs: MoveStruct<{
154
+ contents: _$_mysten_bcs0.BcsType<{
155
+ key: number;
156
+ value: {
157
+ num_cases: number;
158
+ multipliers: {
159
+ is_negative: boolean;
160
+ exp: {
161
+ bits: string;
162
+ };
163
+ mant: string;
164
+ }[];
165
+ min_stake: string;
166
+ max_stake: string;
167
+ is_playable: boolean;
168
+ };
169
+ }[], Iterable<{
170
+ key: number;
171
+ value: {
172
+ num_cases: number;
173
+ multipliers: Iterable<{
174
+ is_negative: boolean;
175
+ exp: {
176
+ bits: string | number | bigint;
177
+ };
178
+ mant: string | number | bigint;
179
+ }> & {
180
+ length: number;
181
+ };
182
+ min_stake: string | number | bigint;
183
+ max_stake: string | number | bigint;
184
+ is_playable: boolean;
185
+ };
186
+ }> & {
187
+ length: number;
188
+ }, string>;
189
+ }, "0x2::vec_map::VecMap<u8, 0x0997852ded7e13301c42317004bc49704a893aa82997c5706cebee59053a31b7::wheel::WheelConfig>">;
190
+ }, "0x0997852ded7e13301c42317004bc49704a893aa82997c5706cebee59053a31b7::wheel::Parameters<phantom T0>">;
191
+ };
192
+ };
193
+ type GameParametersMap = { [TGame in Game]: ReturnType<(typeof GAME_SETTINGS)[TGame]['parameters']['parse']> };
194
+ type GameParameters<TGame extends Game> = GameParametersMap[TGame];
195
+ type GetGameParametersOptions = SuiClientTypes.CoreClientMethodOptions & {
196
+ coinType?: string;
197
+ ignoreCache?: boolean;
198
+ };
199
+ //#endregion
200
+ export { GameParameters, GetGameParametersOptions };
201
+ //# sourceMappingURL=game-settings.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-settings.type.d.mts","names":[],"sources":["../../src/types/game-settings.type.ts"],"mappings":";;;;;;cA8Ba,aAAA;EAAA;;mBAyBH,cAAA,CAAA,OAAA;IAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEL,iBAAA,eACM,IAAA,GAAO,UAAA,SACR,aAAA,EAAe,KAAA;AAAA,KAIb,cAAA,eAA6B,IAAA,IAAQ,iBAAA,CAAkB,KAAA;AAAA,KAEvD,wBAAA,GACX,cAAA,CAAe,uBAAA;EACd,QAAA;EACA,WAAA;AAAA"}
@@ -0,0 +1,37 @@
1
+ import { Parameters, PvpCoinflipSettingsKey } from "../contracts/pvp-coinflip/pvp_coinflip.mjs";
2
+ import { CoinFlipSettingsKey, Parameters as Parameters$1 } from "../contracts/coinflip/coinflip.mjs";
3
+ import { LimboSettingsKey, Parameters as Parameters$2 } from "../contracts/limbo/limbo.mjs";
4
+ import { Parameters as Parameters$3, PlinkoSettingsKey } from "../contracts/plinko/plinko.mjs";
5
+ import { Parameters as Parameters$4, RangeSettingsKey } from "../contracts/range/range.mjs";
6
+ import { Parameters as Parameters$5, WheelSettingsKey } from "../contracts/wheel/wheel.mjs";
7
+ //#region src/types/game-settings.type.ts
8
+ const GAME_SETTINGS = {
9
+ coinflip: {
10
+ settingsKey: CoinFlipSettingsKey,
11
+ parameters: Parameters$1
12
+ },
13
+ limbo: {
14
+ settingsKey: LimboSettingsKey,
15
+ parameters: Parameters$2
16
+ },
17
+ plinko: {
18
+ settingsKey: PlinkoSettingsKey,
19
+ parameters: Parameters$3
20
+ },
21
+ "pvp-coinflip": {
22
+ settingsKey: PvpCoinflipSettingsKey,
23
+ parameters: Parameters
24
+ },
25
+ range: {
26
+ settingsKey: RangeSettingsKey,
27
+ parameters: Parameters$4
28
+ },
29
+ wheel: {
30
+ settingsKey: WheelSettingsKey,
31
+ parameters: Parameters$5
32
+ }
33
+ };
34
+ //#endregion
35
+ export { GAME_SETTINGS };
36
+
37
+ //# sourceMappingURL=game-settings.type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-settings.type.mjs","names":["CoinflipParameters","LimboParameters","PlinkoParameters","PvPCoinflipParameters","RangeParameters","WheelParameters"],"sources":["../../src/types/game-settings.type.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SuiClientTypes } from '@mysten/sui/client';\nimport {\n\tParameters as CoinflipParameters,\n\tCoinFlipSettingsKey,\n} from '../contracts/coinflip/coinflip';\nimport {\n\tParameters as LimboParameters,\n\tLimboSettingsKey,\n} from '../contracts/limbo/limbo';\nimport {\n\tParameters as PlinkoParameters,\n\tPlinkoSettingsKey,\n} from '../contracts/plinko/plinko';\nimport {\n\tParameters as PvPCoinflipParameters,\n\tPvpCoinflipSettingsKey,\n} from '../contracts/pvp-coinflip/pvp_coinflip';\nimport {\n\tParameters as RangeParameters,\n\tRangeSettingsKey,\n} from '../contracts/range/range';\nimport {\n\tParameters as WheelParameters,\n\tWheelSettingsKey,\n} from '../contracts/wheel/wheel';\nimport type { Game } from './game.type.js';\n\nexport const GAME_SETTINGS = {\n\tcoinflip: {\n\t\tsettingsKey: CoinFlipSettingsKey,\n\t\tparameters: CoinflipParameters,\n\t},\n\tlimbo: {\n\t\tsettingsKey: LimboSettingsKey,\n\t\tparameters: LimboParameters,\n\t},\n\tplinko: {\n\t\tsettingsKey: PlinkoSettingsKey,\n\t\tparameters: PlinkoParameters,\n\t},\n\t'pvp-coinflip': {\n\t\tsettingsKey: PvpCoinflipSettingsKey,\n\t\tparameters: PvPCoinflipParameters,\n\t},\n\trange: {\n\t\tsettingsKey: RangeSettingsKey,\n\t\tparameters: RangeParameters,\n\t},\n\twheel: {\n\t\tsettingsKey: WheelSettingsKey,\n\t\tparameters: WheelParameters,\n\t},\n} as const;\n\ntype GameParametersMap = {\n\t[TGame in Game]: ReturnType<\n\t\t(typeof GAME_SETTINGS)[TGame]['parameters']['parse']\n\t>;\n};\n\nexport type GameParameters<TGame extends Game> = GameParametersMap[TGame];\n\nexport type GetGameParametersOptions =\n\tSuiClientTypes.CoreClientMethodOptions & {\n\t\tcoinType?: string;\n\t\tignoreCache?: boolean;\n\t};\n"],"mappings":";;;;;;;AA8BA,MAAa,gBAAgB;CAC5B,UAAU;EACT,aAAa;EACb,YAAYA;EACZ;CACD,OAAO;EACN,aAAa;EACb,YAAYC;EACZ;CACD,QAAQ;EACP,aAAa;EACb,YAAYC;EACZ;CACD,gBAAgB;EACf,aAAa;EACb,YAAYC;EACZ;CACD,OAAO;EACN,aAAa;EACb,YAAYC;EACZ;CACD,OAAO;EACN,aAAa;EACb,YAAYC;EACZ;CACD"}
@@ -0,0 +1,15 @@
1
+ //#region src/types/game.type.d.ts
2
+ declare const GAMES: readonly ["coinflip", "limbo", "plinko", "pvp-coinflip", "range", "wheel"];
3
+ declare const GAME_EVENTS: readonly ["BetResultEvent", "GameCreatedEvent", "GameResolvedEvent", "GameCancelledEvent"];
4
+ type Game = (typeof GAMES)[number];
5
+ type StandardGame = Exclude<Game, PvPGame>;
6
+ type PvPGame = Extract<Game, `pvp-${string}`>;
7
+ type CoinSide = 'heads' | 'tails';
8
+ type GameEvent = (typeof GAME_EVENTS)[number];
9
+ type SuigarGameEvent = {
10
+ gameId: Game;
11
+ eventName: GameEvent;
12
+ };
13
+ //#endregion
14
+ export { CoinSide, GAMES, GAME_EVENTS, Game, GameEvent, PvPGame, StandardGame, SuigarGameEvent };
15
+ //# sourceMappingURL=game.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game.type.d.mts","names":[],"sources":["../../src/types/game.type.ts"],"mappings":";cAGa,KAAA;AAAA,cASA,WAAA;AAAA,KAOD,IAAA,WAAe,KAAA;AAAA,KAEf,YAAA,GAAe,OAAA,CAAQ,IAAA,EAAM,OAAA;AAAA,KAC7B,OAAA,GAAU,OAAA,CAAQ,IAAA;AAAA,KAElB,QAAA;AAAA,KAEA,SAAA,WAAoB,WAAA;AAAA,KAEpB,eAAA;EACX,MAAA,EAAQ,IAAA;EACR,SAAA,EAAW,SAAA;AAAA"}
@@ -0,0 +1,19 @@
1
+ //#region src/types/game.type.ts
2
+ const GAMES = [
3
+ "coinflip",
4
+ "limbo",
5
+ "plinko",
6
+ "pvp-coinflip",
7
+ "range",
8
+ "wheel"
9
+ ];
10
+ const GAME_EVENTS = [
11
+ "BetResultEvent",
12
+ "GameCreatedEvent",
13
+ "GameResolvedEvent",
14
+ "GameCancelledEvent"
15
+ ];
16
+ //#endregion
17
+ export { GAMES, GAME_EVENTS };
18
+
19
+ //# sourceMappingURL=game.type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game.type.mjs","names":[],"sources":["../../src/types/game.type.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nexport const GAMES = [\n\t'coinflip',\n\t'limbo',\n\t'plinko',\n\t'pvp-coinflip',\n\t'range',\n\t'wheel',\n] as const;\n\nexport const GAME_EVENTS = [\n\t'BetResultEvent',\n\t'GameCreatedEvent',\n\t'GameResolvedEvent',\n\t'GameCancelledEvent',\n] as const;\n\nexport type Game = (typeof GAMES)[number];\n\nexport type StandardGame = Exclude<Game, PvPGame>;\nexport type PvPGame = Extract<Game, `pvp-${string}`>;\n\nexport type CoinSide = 'heads' | 'tails';\n\nexport type GameEvent = (typeof GAME_EVENTS)[number];\n\nexport type SuigarGameEvent = {\n\tgameId: Game;\n\teventName: GameEvent;\n};\n"],"mappings":";AAGA,MAAa,QAAQ;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;AAED,MAAa,cAAc;CAC1B;CACA;CACA;CACA;CACA"}
@@ -0,0 +1,7 @@
1
+ import { CoinSide, GAMES, GAME_EVENTS, Game, GameEvent, PvPGame, StandardGame, SuigarGameEvent } from "./game.type.mjs";
2
+ import { BetMetadataInput, BetMetadataPrimitive, BetMetadataValue } from "./bet-metadata.type.mjs";
3
+ import { SuigarCoin, SuigarCoinTypes, SuigarConfig, SuigarExtensionOptions, SuigarPackage, SuigarPackageIds, SuigarPriceInfoObjectIds, SuigarRegistry, SuigarRegistryIds } from "./suigar-config.type.mjs";
4
+ import { BaseTransactionOptions, BuildCancelPvPCoinflipTransactionOptions, BuildCoinflipTransactionOptions, BuildCreatePvPCoinflipTransactionOptions, BuildJoinPvPCoinflipTransactionOptions, BuildLimboTransactionOptions, BuildPlinkoTransactionOptions, BuildPvPCoinflipTransactionOptions, BuildRangeTransactionOptions, BuildWheelTransactionOptions, CoinTransactionOptions, PvPCoinflipAction, SharedBetTransactionOptions, SharedPvPCoinflipTransactionOptions, StakeTransactionOptions, WithGasBudget, WithThrowOnError } from "./transaction-options.type.mjs";
5
+ import { BuildGameOptions } from "./build-game-transaction-options.type.mjs";
6
+ import { BetResultGameDetails, GAME_DETAILS_SCHEMAS, GAME_DETAIL_BCS, GameDetail, GameDetailValueType, GameDetails } from "./game-details.type.mjs";
7
+ import { MoveFloat } from "./move-float.type.mjs";
@@ -0,0 +1,7 @@
1
+ import { Float } from "../contracts/core/float.mjs";
2
+
3
+ //#region src/types/move-float.type.d.ts
4
+ type MoveFloat = ReturnType<(typeof Float)['parse']>;
5
+ //#endregion
6
+ export { MoveFloat };
7
+ //# sourceMappingURL=move-float.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-float.type.d.mts","names":[],"sources":["../../src/types/move-float.type.ts"],"mappings":";;;KAKY,SAAA,GAAY,UAAA,SAAmB,KAAA"}
@@ -0,0 +1 @@
1
+ import { SuiClientTypes } from "@mysten/sui/client";
@@ -0,0 +1,6 @@
1
+ //#region src/types/network.type.ts
2
+ const SUPPORTED_SUI_NETWORKS = ["mainnet", "testnet"];
3
+ //#endregion
4
+ export { SUPPORTED_SUI_NETWORKS };
5
+
6
+ //# sourceMappingURL=network.type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.type.mjs","names":[],"sources":["../../src/types/network.type.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClientTypes } from '@mysten/sui/client';\n\nexport type SuiNetwork = Extract<SuiClientTypes.Network, 'mainnet' | 'testnet'>;\n\nexport const SUPPORTED_SUI_NETWORKS: SuiClientTypes.Network[] = [\n\t'mainnet',\n\t'testnet',\n];\n"],"mappings":";AAOA,MAAa,yBAAmD,CAC/D,WACA,UACA"}
@@ -0,0 +1,33 @@
1
+ //#region src/types/suigar-config.type.d.ts
2
+ interface SuigarExtensionOptions<Name = 'suigar'> {
3
+ name?: Name;
4
+ /**
5
+ * Partner wallet address injected into bet metadata for attribution.
6
+ *
7
+ * Configure this once when registering the `suigar()` client extension
8
+ * instead of passing partner data through per-transaction metadata.
9
+ */
10
+ partner?: string;
11
+ /**
12
+ * Cache TTL in milliseconds for SDK-managed on-chain config lookups.
13
+ *
14
+ * Defaults to 30 minutes.
15
+ */
16
+ cacheTtl?: number;
17
+ }
18
+ type SuigarCoin = 'sui' | 'usdc';
19
+ type SuigarCoinTypes = Record<SuigarCoin, string>;
20
+ type SuigarPackage = 'sweetHouse' | 'core' | 'coinflip' | 'limbo' | 'plinko' | 'pvpCoinflip' | 'range' | 'wheel';
21
+ type SuigarPackageIds = Record<SuigarPackage, string>;
22
+ type SuigarRegistry = 'pvpCoinflip';
23
+ type SuigarRegistryIds = Record<SuigarRegistry, string>;
24
+ type SuigarPriceInfoObjectIds = Record<SuigarCoin, string>;
25
+ type SuigarConfig = {
26
+ packageIds: SuigarPackageIds;
27
+ registryIds: SuigarRegistryIds;
28
+ coinTypes: SuigarCoinTypes;
29
+ priceInfoObjectIds: SuigarPriceInfoObjectIds;
30
+ };
31
+ //#endregion
32
+ export { SuigarCoin, SuigarCoinTypes, SuigarConfig, SuigarExtensionOptions, SuigarPackage, SuigarPackageIds, SuigarPriceInfoObjectIds, SuigarRegistry, SuigarRegistryIds };
33
+ //# sourceMappingURL=suigar-config.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suigar-config.type.d.mts","names":[],"sources":["../../src/types/suigar-config.type.ts"],"mappings":";UAKiB,sBAAA;EAChB,IAAA,GAAO,IAAA;EADS;;;;;;EAQhB,OAAA;EAAA;;;;AASD;EAHC,QAAA;AAAA;AAAA,KAGW,UAAA;AAAA,KAEA,eAAA,GAAkB,MAAA,CAAO,UAAA;AAAA,KAEzB,aAAA;AAAA,KASA,gBAAA,GAAmB,MAAA,CAAO,aAAA;AAAA,KAE1B,cAAA;AAAA,KACA,iBAAA,GAAoB,MAAA,CAAO,cAAA;AAAA,KAE3B,wBAAA,GAA2B,MAAA,CAAO,UAAA;AAAA,KAIlC,YAAA;EACX,UAAA,EAAY,gBAAA;EACZ,WAAA,EAAa,iBAAA;EACb,SAAA,EAAW,eAAA;EACX,kBAAA,EAAoB,wBAAA;AAAA"}