@suigar/sdk 2.0.0-beta.18 → 2.0.0-beta.19
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.
- package/CHANGELOG.md +7 -0
- package/dist/client.d.mts +48 -49
- package/dist/client.d.mts.map +1 -1
- package/dist/client.mjs.map +1 -1
- package/dist/configs/package.mainnet.mjs.map +1 -1
- package/dist/configs/package.mjs.map +1 -1
- package/dist/configs/package.testnet.mjs.map +1 -1
- package/dist/configs/registry.mainnet.mjs.map +1 -1
- package/dist/configs/registry.mjs.map +1 -1
- package/dist/configs/registry.testnet.mjs.map +1 -1
- package/dist/contracts/coinflip/coinflip.mjs.map +1 -1
- package/dist/contracts/core/core.d.mts +12 -13
- package/dist/contracts/core/core.d.mts.map +1 -1
- package/dist/contracts/core/core.mjs.map +1 -1
- package/dist/contracts/core/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs.map +1 -1
- package/dist/contracts/core/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs.map +1 -1
- package/dist/contracts/core/float.d.mts +3 -4
- package/dist/contracts/core/float.d.mts.map +1 -1
- package/dist/contracts/core/float.mjs.map +1 -1
- package/dist/contracts/core/i64.mjs.map +1 -1
- package/dist/contracts/limbo/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs.map +1 -1
- package/dist/contracts/limbo/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs.map +1 -1
- package/dist/contracts/limbo/limbo.mjs.map +1 -1
- package/dist/contracts/plinko/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs.map +1 -1
- package/dist/contracts/plinko/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs.map +1 -1
- package/dist/contracts/plinko/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs.map +1 -1
- package/dist/contracts/plinko/plinko.mjs.map +1 -1
- package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs.map +1 -1
- package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs.map +1 -1
- package/dist/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs.map +1 -1
- package/dist/contracts/pvp-coinflip/pvp_coinflip.d.mts +10 -11
- package/dist/contracts/pvp-coinflip/pvp_coinflip.d.mts.map +1 -1
- package/dist/contracts/pvp-coinflip/pvp_coinflip.mjs.map +1 -1
- package/dist/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs.map +1 -1
- package/dist/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs.map +1 -1
- package/dist/contracts/range/range.mjs.map +1 -1
- package/dist/contracts/utils/index.mjs.map +1 -1
- package/dist/contracts/wheel/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.mjs.map +1 -1
- package/dist/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.mjs.map +1 -1
- package/dist/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.mjs.map +1 -1
- package/dist/contracts/wheel/wheel.mjs.map +1 -1
- package/dist/games.d.mts +1 -1
- package/dist/helpers/config.mjs.map +1 -1
- package/dist/helpers/game-settings.mjs.map +1 -1
- package/dist/helpers/metadata.mjs.map +1 -1
- package/dist/transactions/coinflip.mjs.map +1 -1
- package/dist/transactions/limbo.mjs.map +1 -1
- package/dist/transactions/plinko.mjs.map +1 -1
- package/dist/transactions/pvp-coinflip.mjs.map +1 -1
- package/dist/transactions/range.mjs.map +1 -1
- package/dist/transactions/shared.mjs.map +1 -1
- package/dist/transactions/wheel.mjs.map +1 -1
- package/dist/ttl-cache.mjs.map +1 -1
- package/dist/types/bet-metadata.type.d.mts.map +1 -1
- package/dist/types/build-game-transaction-options.type.d.mts.map +1 -1
- package/dist/types/game-details.type.d.mts +7 -8
- package/dist/types/game-details.type.d.mts.map +1 -1
- package/dist/types/game-details.type.mjs.map +1 -1
- package/dist/types/game-settings.type.d.mts +52 -53
- package/dist/types/game-settings.type.d.mts.map +1 -1
- package/dist/types/game-settings.type.mjs.map +1 -1
- package/dist/types/game.type.d.mts.map +1 -1
- package/dist/types/game.type.mjs.map +1 -1
- package/dist/types/move-float.type.d.mts.map +1 -1
- package/dist/types/network.type.mjs.map +1 -1
- package/dist/types/suigar-config.type.d.mts.map +1 -1
- package/dist/types/transaction-options.type.d.mts.map +1 -1
- package/dist/utils/constants.mjs.map +1 -1
- package/dist/utils/numeric.d.mts.map +1 -1
- package/dist/utils/numeric.mjs.map +1 -1
- package/dist/utils/parser.d.mts.map +1 -1
- package/dist/utils/parser.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type_name.mjs","names":[],"sources":["../../../../../src/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName =\n\t'0x0000000000000000000000000000000000000000000000000000000000000001::type_name';\nexport const TypeName = new MoveStruct({\n\tname: `${$moduleName}::TypeName`,\n\tfields: {\n\t\tname: bcs.string(),\n\t},\n});\n"],"mappings":";;AAQA,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM;CACN,QAAQ,EACP,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"type_name.mjs","names":[],"sources":["../../../../../src/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName =\n\t'0x0000000000000000000000000000000000000000000000000000000000000001::type_name';\nexport const TypeName = new MoveStruct({\n\tname: `${$moduleName}::TypeName`,\n\tfields: {\n\t\tname: bcs.string(),\n\t},\n});\n"],"mappings":";;AAQA,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM;CACN,QAAQ,EACP,MAAM,IAAI,OAAO,EAClB;AACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.mjs","names":[],"sources":["../../../../../src/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName = '0x2::balance';\nexport const Balance = new MoveStruct({\n\tname: `${$moduleName}::Balance<phantom T0>`,\n\tfields: {\n\t\tvalue: bcs.u64(),\n\t},\n});\n"],"mappings":";;AAOA,MAAa,UAAU,IAAI,WAAW;CACrC,MAAM;CACN,QAAQ,EACP,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"balance.mjs","names":[],"sources":["../../../../../src/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName = '0x2::balance';\nexport const Balance = new MoveStruct({\n\tname: `${$moduleName}::Balance<phantom T0>`,\n\tfields: {\n\t\tvalue: bcs.u64(),\n\t},\n});\n"],"mappings":";;AAOA,MAAa,UAAU,IAAI,WAAW;CACrC,MAAM;CACN,QAAQ,EACP,OAAO,IAAI,IAAI,EAChB;AACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vec_map.mjs","names":[],"sources":["../../../../../src/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs, type BcsType } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName = '0x2::vec_map';\nexport function Entry<T0 extends BcsType<any>, T1 extends BcsType<any>>(\n\t...typeParameters: [T0, T1]\n) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::Entry<${typeParameters[0].name as T0['name']}, ${typeParameters[1].name as T1['name']}>`,\n\t\tfields: {\n\t\t\tkey: typeParameters[0],\n\t\t\tvalue: typeParameters[1],\n\t\t},\n\t});\n}\nexport function VecMap<T0 extends BcsType<any>, T1 extends BcsType<any>>(\n\t...typeParameters: [T0, T1]\n) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::VecMap<${typeParameters[0].name as T0['name']}, ${typeParameters[1].name as T1['name']}>`,\n\t\tfields: {\n\t\t\tcontents: bcs.vector(Entry(typeParameters[0], typeParameters[1])),\n\t\t},\n\t});\n}\n"],"mappings":";;;;;;AAMA,MAAM,cAAc;AACpB,SAAgB,MACf,GAAG,gBACF;CACD,OAAO,IAAI,WAAW;EACrB,MAAM,GAAG,YAAY,UAAU,eAAe,GAAG,KAAmB,IAAI,eAAe,GAAG,KAAmB;EAC7G,QAAQ;GACP,KAAK,eAAe;GACpB,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"vec_map.mjs","names":[],"sources":["../../../../../src/contracts/pvp-coinflip/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs, type BcsType } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName = '0x2::vec_map';\nexport function Entry<T0 extends BcsType<any>, T1 extends BcsType<any>>(\n\t...typeParameters: [T0, T1]\n) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::Entry<${typeParameters[0].name as T0['name']}, ${typeParameters[1].name as T1['name']}>`,\n\t\tfields: {\n\t\t\tkey: typeParameters[0],\n\t\t\tvalue: typeParameters[1],\n\t\t},\n\t});\n}\nexport function VecMap<T0 extends BcsType<any>, T1 extends BcsType<any>>(\n\t...typeParameters: [T0, T1]\n) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::VecMap<${typeParameters[0].name as T0['name']}, ${typeParameters[1].name as T1['name']}>`,\n\t\tfields: {\n\t\t\tcontents: bcs.vector(Entry(typeParameters[0], typeParameters[1])),\n\t\t},\n\t});\n}\n"],"mappings":";;;;;;AAMA,MAAM,cAAc;AACpB,SAAgB,MACf,GAAG,gBACF;CACD,OAAO,IAAI,WAAW;EACrB,MAAM,GAAG,YAAY,UAAU,eAAe,GAAG,KAAmB,IAAI,eAAe,GAAG,KAAmB;EAC7G,QAAQ;GACP,KAAK,eAAe;GACpB,OAAO,eAAe;EACvB;CACD,CAAC;AACF;AACA,SAAgB,OACf,GAAG,gBACF;CACD,OAAO,IAAI,WAAW;EACrB,MAAM,GAAG,YAAY,WAAW,eAAe,GAAG,KAAmB,IAAI,eAAe,GAAG,KAAmB;EAC9G,QAAQ,EACP,UAAU,IAAI,OAAO,MAAM,eAAe,IAAI,eAAe,EAAE,CAAC,EACjE;CACD,CAAC;AACF"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { MoveStruct } from "../utils/index.mjs";
|
|
2
2
|
import { Transaction } from "@mysten/sui/transactions";
|
|
3
|
-
import * as _$_mysten_bcs0 from "@mysten/bcs";
|
|
4
3
|
|
|
5
4
|
//#region src/contracts/pvp-coinflip/pvp_coinflip.d.ts
|
|
6
5
|
declare const Game: MoveStruct<{
|
|
7
|
-
id:
|
|
8
|
-
creator:
|
|
9
|
-
creator_is_tails:
|
|
10
|
-
is_private:
|
|
6
|
+
id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
7
|
+
creator: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
8
|
+
creator_is_tails: import("@mysten/bcs").BcsType<boolean, boolean, "bool">;
|
|
9
|
+
is_private: import("@mysten/bcs").BcsType<boolean, boolean, "bool">;
|
|
11
10
|
creator_metadata: MoveStruct<{
|
|
12
|
-
contents:
|
|
11
|
+
contents: import("@mysten/bcs").BcsType<{
|
|
13
12
|
key: string;
|
|
14
13
|
value: number[];
|
|
15
14
|
}[], Iterable<{
|
|
@@ -21,12 +20,12 @@ declare const Game: MoveStruct<{
|
|
|
21
20
|
length: number;
|
|
22
21
|
}, string>;
|
|
23
22
|
}, "0x2::vec_map::VecMap<string, vector<u8>>">;
|
|
24
|
-
joiner:
|
|
25
|
-
winner:
|
|
26
|
-
stake_per_player:
|
|
27
|
-
house_edge_bps:
|
|
23
|
+
joiner: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
24
|
+
winner: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
25
|
+
stake_per_player: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
26
|
+
house_edge_bps: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
28
27
|
stake_pot: MoveStruct<{
|
|
29
|
-
value:
|
|
28
|
+
value: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
30
29
|
}, "0x2::balance::Balance<phantom T0>">;
|
|
31
30
|
}, "0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202::pvp_coinflip::Game<phantom T0>">;
|
|
32
31
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pvp_coinflip.d.mts","names":[],"sources":["../../../src/contracts/pvp-coinflip/pvp_coinflip.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"pvp_coinflip.d.mts","names":[],"sources":["../../../src/contracts/pvp-coinflip/pvp_coinflip.ts"],"mappings":";;;;cAsBa,IAAA,EAAI,UAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pvp_coinflip.mjs","names":["vec_map.VecMap","balance.Balance","type_name.TypeName"],"sources":["../../../src/contracts/pvp-coinflip/pvp_coinflip.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction } from '@mysten/sui/transactions';\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport * as type_name from './deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.js';\nimport * as balance from './deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.js';\nimport * as vec_map from './deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.js';\n\nconst $moduleName =\n\t'0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202::pvp_coinflip';\nexport const PvpCoinflipSettingsKey = new MoveStruct({\n\tname: `${$moduleName}::PvpCoinflipSettingsKey`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const Game = new MoveStruct({\n\tname: `${$moduleName}::Game<phantom T0>`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\tcreator: bcs.Address,\n\t\tcreator_is_tails: bcs.bool(),\n\t\tis_private: bcs.bool(),\n\t\tcreator_metadata: vec_map.VecMap(bcs.string(), bcs.vector(bcs.u8())),\n\t\tjoiner: bcs.Address,\n\t\twinner: bcs.Address,\n\t\tstake_per_player: bcs.u64(),\n\t\thouse_edge_bps: bcs.u64(),\n\t\tstake_pot: balance.Balance,\n\t},\n});\nexport const GameCreatedEvent = new MoveStruct({\n\tname: `${$moduleName}::GameCreatedEvent<phantom T0>`,\n\tfields: {\n\t\tgame_id: bcs.Address,\n\t\tcreator: bcs.Address,\n\t\tcreator_is_tails: bcs.bool(),\n\t\tis_private: bcs.bool(),\n\t\tjoiner_is_tails: bcs.bool(),\n\t\tstake_per_player: bcs.u64(),\n\t\thouse_edge_bps: bcs.u64(),\n\t\tcoin_type: type_name.TypeName,\n\t},\n});\nexport const GameResolvedEvent = new MoveStruct({\n\tname: `${$moduleName}::GameResolvedEvent<phantom T0>`,\n\tfields: {\n\t\tgame_id: bcs.Address,\n\t\tcreator: bcs.Address,\n\t\tjoiner: bcs.Address,\n\t\twinner: bcs.Address,\n\t\tcreator_is_tails: bcs.bool(),\n\t\tis_private: bcs.bool(),\n\t\tjoiner_is_tails: bcs.bool(),\n\t\tstake_per_player: bcs.u64(),\n\t\ttotal_pot: bcs.u64(),\n\t\thouse_edge_amount: bcs.u64(),\n\t\tpayout_amount: bcs.u64(),\n\t\tcoin_type: type_name.TypeName,\n\t},\n});\nexport const GameCancelledEvent = new MoveStruct({\n\tname: `${$moduleName}::GameCancelledEvent<phantom T0>`,\n\tfields: {\n\t\tgame_id: bcs.Address,\n\t\tcreator: bcs.Address,\n\t\tcreator_is_tails: bcs.bool(),\n\t\tis_private: bcs.bool(),\n\t\tstake_per_player: bcs.u64(),\n\t\tcoin_type: type_name.TypeName,\n\t},\n});\nexport const Parameters = new MoveStruct({\n\tname: `${$moduleName}::Parameters<phantom T0>`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\thouse_edge_bps: bcs.u64(),\n\t\tmin_stake: bcs.u64(),\n\t},\n});\nexport interface CreateGameOptions {\n\tpackage?: string;\n\targuments: [\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<boolean>,\n\t\tRawTransactionArgument<boolean>,\n\t\tRawTransactionArgument<Array<string>>,\n\t\tRawTransactionArgument<Array<Array<number>>>,\n\t];\n\ttypeArguments: [string];\n}\nexport function createGame(options: CreateGameOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\t'bool',\n\t\t'bool',\n\t\t'vector<0x1::string::String>',\n\t\t'vector<vector<u8>>',\n\t] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pvp_coinflip',\n\t\t\tfunction: 'create_game',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface JoinGameOptions {\n\tpackage?: string;\n\targuments: [\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<Array<string>>,\n\t\tRawTransactionArgument<Array<Array<number>>>,\n\t\tRawTransactionArgument<string>,\n\t];\n\ttypeArguments: [string];\n}\nexport function joinGame(options: JoinGameOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202';\n\tconst argumentsTypes = [\n\t\t'0x2::object::ID',\n\t\tnull,\n\t\tnull,\n\t\t'vector<0x1::string::String>',\n\t\t'vector<vector<u8>>',\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t\t'0x2::random::Random',\n\t] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pvp_coinflip',\n\t\t\tfunction: 'join_game',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface CancelGameOptions {\n\tpackage?: string;\n\targuments: [RawTransactionArgument<string>, RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\nexport function cancelGame(options: CancelGameOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202';\n\tconst argumentsTypes = ['0x2::object::ID', null] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pvp_coinflip',\n\t\t\tfunction: 'cancel_game',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;;;AAcA,MAAM,cACL;AACD,MAAa,yBAAyB,IAAI,WAAW;CACpD,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,
|
|
1
|
+
{"version":3,"file":"pvp_coinflip.mjs","names":["vec_map.VecMap","balance.Balance","type_name.TypeName"],"sources":["../../../src/contracts/pvp-coinflip/pvp_coinflip.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction } from '@mysten/sui/transactions';\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport * as type_name from './deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.js';\nimport * as balance from './deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.js';\nimport * as vec_map from './deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.js';\n\nconst $moduleName =\n\t'0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202::pvp_coinflip';\nexport const PvpCoinflipSettingsKey = new MoveStruct({\n\tname: `${$moduleName}::PvpCoinflipSettingsKey`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const Game = new MoveStruct({\n\tname: `${$moduleName}::Game<phantom T0>`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\tcreator: bcs.Address,\n\t\tcreator_is_tails: bcs.bool(),\n\t\tis_private: bcs.bool(),\n\t\tcreator_metadata: vec_map.VecMap(bcs.string(), bcs.vector(bcs.u8())),\n\t\tjoiner: bcs.Address,\n\t\twinner: bcs.Address,\n\t\tstake_per_player: bcs.u64(),\n\t\thouse_edge_bps: bcs.u64(),\n\t\tstake_pot: balance.Balance,\n\t},\n});\nexport const GameCreatedEvent = new MoveStruct({\n\tname: `${$moduleName}::GameCreatedEvent<phantom T0>`,\n\tfields: {\n\t\tgame_id: bcs.Address,\n\t\tcreator: bcs.Address,\n\t\tcreator_is_tails: bcs.bool(),\n\t\tis_private: bcs.bool(),\n\t\tjoiner_is_tails: bcs.bool(),\n\t\tstake_per_player: bcs.u64(),\n\t\thouse_edge_bps: bcs.u64(),\n\t\tcoin_type: type_name.TypeName,\n\t},\n});\nexport const GameResolvedEvent = new MoveStruct({\n\tname: `${$moduleName}::GameResolvedEvent<phantom T0>`,\n\tfields: {\n\t\tgame_id: bcs.Address,\n\t\tcreator: bcs.Address,\n\t\tjoiner: bcs.Address,\n\t\twinner: bcs.Address,\n\t\tcreator_is_tails: bcs.bool(),\n\t\tis_private: bcs.bool(),\n\t\tjoiner_is_tails: bcs.bool(),\n\t\tstake_per_player: bcs.u64(),\n\t\ttotal_pot: bcs.u64(),\n\t\thouse_edge_amount: bcs.u64(),\n\t\tpayout_amount: bcs.u64(),\n\t\tcoin_type: type_name.TypeName,\n\t},\n});\nexport const GameCancelledEvent = new MoveStruct({\n\tname: `${$moduleName}::GameCancelledEvent<phantom T0>`,\n\tfields: {\n\t\tgame_id: bcs.Address,\n\t\tcreator: bcs.Address,\n\t\tcreator_is_tails: bcs.bool(),\n\t\tis_private: bcs.bool(),\n\t\tstake_per_player: bcs.u64(),\n\t\tcoin_type: type_name.TypeName,\n\t},\n});\nexport const Parameters = new MoveStruct({\n\tname: `${$moduleName}::Parameters<phantom T0>`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\thouse_edge_bps: bcs.u64(),\n\t\tmin_stake: bcs.u64(),\n\t},\n});\nexport interface CreateGameOptions {\n\tpackage?: string;\n\targuments: [\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<boolean>,\n\t\tRawTransactionArgument<boolean>,\n\t\tRawTransactionArgument<Array<string>>,\n\t\tRawTransactionArgument<Array<Array<number>>>,\n\t];\n\ttypeArguments: [string];\n}\nexport function createGame(options: CreateGameOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\t'bool',\n\t\t'bool',\n\t\t'vector<0x1::string::String>',\n\t\t'vector<vector<u8>>',\n\t] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pvp_coinflip',\n\t\t\tfunction: 'create_game',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface JoinGameOptions {\n\tpackage?: string;\n\targuments: [\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<Array<string>>,\n\t\tRawTransactionArgument<Array<Array<number>>>,\n\t\tRawTransactionArgument<string>,\n\t];\n\ttypeArguments: [string];\n}\nexport function joinGame(options: JoinGameOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202';\n\tconst argumentsTypes = [\n\t\t'0x2::object::ID',\n\t\tnull,\n\t\tnull,\n\t\t'vector<0x1::string::String>',\n\t\t'vector<vector<u8>>',\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t\t'0x2::random::Random',\n\t] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pvp_coinflip',\n\t\t\tfunction: 'join_game',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\nexport interface CancelGameOptions {\n\tpackage?: string;\n\targuments: [RawTransactionArgument<string>, RawTransactionArgument<string>];\n\ttypeArguments: [string];\n}\nexport function cancelGame(options: CancelGameOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0xb43cf6583c0c15315c7e66f173af4be79ac40c38aad1fd92ec08638ab2026202';\n\tconst argumentsTypes = ['0x2::object::ID', null] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'pvp_coinflip',\n\t\t\tfunction: 'cancel_game',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;;;AAcA,MAAM,cACL;AACD,MAAa,yBAAyB,IAAI,WAAW;CACpD,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AACD,MAAa,OAAO,IAAI,WAAW;CAClC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EACR,SAAS,IAAI;EACb,kBAAkB,IAAI,KAAK;EAC3B,YAAY,IAAI,KAAK;EACrB,kBAAkBA,OAAe,IAAI,OAAO,GAAG,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC;EACnE,QAAQ,IAAI;EACZ,QAAQ,IAAI;EACZ,kBAAkB,IAAI,IAAI;EAC1B,gBAAgB,IAAI,IAAI;EACxB,WAAWC;CACZ;AACD,CAAC;AACD,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,SAAS,IAAI;EACb,SAAS,IAAI;EACb,kBAAkB,IAAI,KAAK;EAC3B,YAAY,IAAI,KAAK;EACrB,iBAAiB,IAAI,KAAK;EAC1B,kBAAkB,IAAI,IAAI;EAC1B,gBAAgB,IAAI,IAAI;EACxB,WAAWC;CACZ;AACD,CAAC;AACD,MAAa,oBAAoB,IAAI,WAAW;CAC/C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,SAAS,IAAI;EACb,SAAS,IAAI;EACb,QAAQ,IAAI;EACZ,QAAQ,IAAI;EACZ,kBAAkB,IAAI,KAAK;EAC3B,YAAY,IAAI,KAAK;EACrB,iBAAiB,IAAI,KAAK;EAC1B,kBAAkB,IAAI,IAAI;EAC1B,WAAW,IAAI,IAAI;EACnB,mBAAmB,IAAI,IAAI;EAC3B,eAAe,IAAI,IAAI;EACvB,WAAWA;CACZ;AACD,CAAC;AACD,MAAa,qBAAqB,IAAI,WAAW;CAChD,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,SAAS,IAAI;EACb,SAAS,IAAI;EACb,kBAAkB,IAAI,KAAK;EAC3B,YAAY,IAAI,KAAK;EACrB,kBAAkB,IAAI,IAAI;EAC1B,WAAWA;CACZ;AACD,CAAC;AACD,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EACR,gBAAgB,IAAI,IAAI;EACxB,WAAW,IAAI,IAAI;CACpB;AACD,CAAC;AAaD,SAAgB,WAAW,SAA4B;CACtD,MAAM,iBACL,QAAQ,WACR;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;CACD;CACA,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,cAAc;EACnE,eAAe,QAAQ;CACxB,CAAC;AACH;AAaA,SAAgB,SAAS,SAA0B;CAClD,MAAM,iBACL,QAAQ,WACR;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;CACA,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,cAAc;EACnE,eAAe,QAAQ;CACxB,CAAC;AACH;AAMA,SAAgB,WAAW,SAA4B;CACtD,MAAM,iBACL,QAAQ,WACR;CACD,MAAM,iBAAiB,CAAC,mBAAmB,IAAI;CAC/C,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,cAAc;EACnE,eAAe,QAAQ;CACxB,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"float.mjs","names":["i64.I64"],"sources":["../../../../../src/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\nimport * as i64 from './i64.js';\n\nconst $moduleName =\n\t'0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float';\nexport const Float = new MoveStruct({\n\tname: `${$moduleName}::Float`,\n\tfields: {\n\t\tis_negative: bcs.bool(),\n\t\texp: i64.I64,\n\t\tmant: bcs.u64(),\n\t},\n});\n"],"mappings":";;;AASA,MAAa,QAAQ,IAAI,WAAW;CACnC,MAAM;CACN,QAAQ;EACP,aAAa,IAAI,
|
|
1
|
+
{"version":3,"file":"float.mjs","names":["i64.I64"],"sources":["../../../../../src/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\nimport * as i64 from './i64.js';\n\nconst $moduleName =\n\t'0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float';\nexport const Float = new MoveStruct({\n\tname: `${$moduleName}::Float`,\n\tfields: {\n\t\tis_negative: bcs.bool(),\n\t\texp: i64.I64,\n\t\tmant: bcs.u64(),\n\t},\n});\n"],"mappings":";;;AASA,MAAa,QAAQ,IAAI,WAAW;CACnC,MAAM;CACN,QAAQ;EACP,aAAa,IAAI,KAAK;EACtB,KAAKA;EACL,MAAM,IAAI,IAAI;CACf;AACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i64.mjs","names":[],"sources":["../../../../../src/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName =\n\t'0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64';\nexport const I64 = new MoveStruct({\n\tname: `${$moduleName}::I64`,\n\tfields: {\n\t\tbits: bcs.u64(),\n\t},\n});\n"],"mappings":";;AAQA,MAAa,MAAM,IAAI,WAAW;CACjC,MAAM;CACN,QAAQ,EACP,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"i64.mjs","names":[],"sources":["../../../../../src/contracts/range/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName =\n\t'0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64';\nexport const I64 = new MoveStruct({\n\tname: `${$moduleName}::I64`,\n\tfields: {\n\t\tbits: bcs.u64(),\n\t},\n});\n"],"mappings":";;AAQA,MAAa,MAAM,IAAI,WAAW;CACjC,MAAM;CACN,QAAQ,EACP,MAAM,IAAI,IAAI,EACf;AACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.mjs","names":["float.Float"],"sources":["../../../src/contracts/range/range.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction } from '@mysten/sui/transactions';\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport * as float from './deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.js';\n\nconst $moduleName =\n\t'0x096a4cf18b3661e76b2c62b90785418345d52f45b272448794f123a4cb6b6416::range';\nexport const RangeSettingsKey = new MoveStruct({\n\tname: `${$moduleName}::RangeSettingsKey`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const Parameters = new MoveStruct({\n\tname: `${$moduleName}::Parameters<phantom T0>`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\tmin_stake: bcs.u64(),\n\t\tmax_stake: bcs.u64(),\n\t\tmin_zone_size: bcs.u64(),\n\t\tmax_zone_size: bcs.u64(),\n\t\tmax_number_of_games: bcs.u64(),\n\t\tmin_rtp: float.Float,\n\t\tmax_rtp: float.Float,\n\t},\n});\nexport interface PlayOptions {\n\tpackage?: string;\n\targuments: [\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<boolean>,\n\t\tRawTransactionArgument<Array<string>>,\n\t\tRawTransactionArgument<Array<Array<number>>>,\n\t\tRawTransactionArgument<string>,\n\t];\n\ttypeArguments: [string];\n}\nexport function play(options: PlayOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0x096a4cf18b3661e76b2c62b90785418345d52f45b272448794f123a4cb6b6416';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\t'u64',\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'vector<0x1::string::String>',\n\t\t'vector<vector<u8>>',\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t\t'0x2::random::Random',\n\t] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'range',\n\t\t\tfunction: 'play',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;AAYA,MAAM,cACL;AACD,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,
|
|
1
|
+
{"version":3,"file":"range.mjs","names":["float.Float"],"sources":["../../../src/contracts/range/range.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction } from '@mysten/sui/transactions';\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport * as float from './deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.js';\n\nconst $moduleName =\n\t'0x096a4cf18b3661e76b2c62b90785418345d52f45b272448794f123a4cb6b6416::range';\nexport const RangeSettingsKey = new MoveStruct({\n\tname: `${$moduleName}::RangeSettingsKey`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const Parameters = new MoveStruct({\n\tname: `${$moduleName}::Parameters<phantom T0>`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\tmin_stake: bcs.u64(),\n\t\tmax_stake: bcs.u64(),\n\t\tmin_zone_size: bcs.u64(),\n\t\tmax_zone_size: bcs.u64(),\n\t\tmax_number_of_games: bcs.u64(),\n\t\tmin_rtp: float.Float,\n\t\tmax_rtp: float.Float,\n\t},\n});\nexport interface PlayOptions {\n\tpackage?: string;\n\targuments: [\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<boolean>,\n\t\tRawTransactionArgument<Array<string>>,\n\t\tRawTransactionArgument<Array<Array<number>>>,\n\t\tRawTransactionArgument<string>,\n\t];\n\ttypeArguments: [string];\n}\nexport function play(options: PlayOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0x096a4cf18b3661e76b2c62b90785418345d52f45b272448794f123a4cb6b6416';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\t'u64',\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'vector<0x1::string::String>',\n\t\t'vector<vector<u8>>',\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t\t'0x2::random::Random',\n\t] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'range',\n\t\t\tfunction: 'play',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;AAYA,MAAM,cACL;AACD,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AACD,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EACR,WAAW,IAAI,IAAI;EACnB,WAAW,IAAI,IAAI;EACnB,eAAe,IAAI,IAAI;EACvB,eAAe,IAAI,IAAI;EACvB,qBAAqB,IAAI,IAAI;EAC7B,SAASA;EACT,SAASA;CACV;AACD,CAAC;AAiBD,SAAgB,KAAK,SAAsB;CAC1C,MAAM,iBACL,QAAQ,WACR;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;CACA,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,cAAc;EACnE,eAAe,QAAQ;CACxB,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/contracts/utils/index.ts"],"sourcesContent":["import {\n\tbcs,\n\tBcsEnum,\n\tBcsStruct,\n\tBcsTuple,\n\tTypeTagSerializer,\n\ttype BcsType,\n\ttype TypeTag,\n} from '@mysten/sui/bcs';\nimport {\n\ttype ClientWithCoreApi,\n\ttype SuiClientTypes,\n} from '@mysten/sui/client';\nimport { isArgument, type TransactionArgument } from '@mysten/sui/transactions';\nimport { normalizeSuiAddress } from '@mysten/sui/utils';\n\nconst MOVE_STDLIB_ADDRESS = normalizeSuiAddress('0x1');\nconst SUI_FRAMEWORK_ADDRESS = normalizeSuiAddress('0x2');\n\nexport type RawTransactionArgument<T> = T | TransactionArgument;\n\nexport type GetOptions<\n\tInclude extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {},\n> = SuiClientTypes.GetObjectOptions<Include> & { client: ClientWithCoreApi };\n\nexport type GetManyOptions<\n\tInclude extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {},\n> = SuiClientTypes.GetObjectsOptions<Include> & { client: ClientWithCoreApi };\n\nexport function getPureBcsSchema(\n\ttypeTag: string | TypeTag,\n): BcsType<any> | null {\n\tconst parsedTag =\n\t\ttypeof typeTag === 'string'\n\t\t\t? TypeTagSerializer.parseFromStr(typeTag)\n\t\t\t: typeTag;\n\n\tif ('u8' in parsedTag) {\n\t\treturn bcs.U8;\n\t} else if ('u16' in parsedTag) {\n\t\treturn bcs.U16;\n\t} else if ('u32' in parsedTag) {\n\t\treturn bcs.U32;\n\t} else if ('u64' in parsedTag) {\n\t\treturn bcs.U64;\n\t} else if ('u128' in parsedTag) {\n\t\treturn bcs.U128;\n\t} else if ('u256' in parsedTag) {\n\t\treturn bcs.U256;\n\t} else if ('address' in parsedTag) {\n\t\treturn bcs.Address;\n\t} else if ('bool' in parsedTag) {\n\t\treturn bcs.Bool;\n\t} else if ('vector' in parsedTag) {\n\t\tconst type = getPureBcsSchema(parsedTag.vector);\n\t\treturn type ? bcs.vector(type) : null;\n\t} else if ('struct' in parsedTag) {\n\t\tconst structTag = parsedTag.struct;\n\t\tconst pkg = normalizeSuiAddress(structTag.address);\n\n\t\tif (pkg === MOVE_STDLIB_ADDRESS) {\n\t\t\tif (\n\t\t\t\t(structTag.module === 'ascii' || structTag.module === 'string') &&\n\t\t\t\tstructTag.name === 'String'\n\t\t\t) {\n\t\t\t\treturn bcs.String;\n\t\t\t}\n\n\t\t\tif (structTag.module === 'option' && structTag.name === 'Option') {\n\t\t\t\tconst inner = structTag.typeParams[0];\n\t\t\t\tconst type = inner ? getPureBcsSchema(inner) : null;\n\t\t\t\treturn type ? bcs.option(type) : null;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tpkg === SUI_FRAMEWORK_ADDRESS &&\n\t\t\tstructTag.module === 'object' &&\n\t\t\t(structTag.name === 'ID' || structTag.name === 'UID')\n\t\t) {\n\t\t\treturn bcs.Address;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function normalizeMoveArguments(\n\targs: unknown[] | object,\n\targTypes: readonly (string | null)[],\n\tparameterNames?: string[],\n) {\n\tconst argLen = Array.isArray(args) ? args.length : Object.keys(args).length;\n\tif (parameterNames && argLen !== parameterNames.length) {\n\t\tthrow new Error(\n\t\t\t`Invalid number of arguments, expected ${parameterNames.length}, got ${argLen}`,\n\t\t);\n\t}\n\n\tconst normalizedArgs: TransactionArgument[] = [];\n\n\tlet index = 0;\n\tfor (const argType of argTypes) {\n\t\tif (argType === '0x2::clock::Clock') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.clock());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x2::random::Random') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.random());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x2::deny_list::DenyList') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.denyList());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x3::sui_system::SuiSystemState') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.system());\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet arg;\n\t\tif (Array.isArray(args)) {\n\t\t\tif (index >= args.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid number of arguments, expected at least ${index + 1}, got ${args.length}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\targ = args[index];\n\t\t} else {\n\t\t\tif (!parameterNames) {\n\t\t\t\tthrow new Error(`Expected arguments to be passed as an array`);\n\t\t\t}\n\t\t\tconst name = parameterNames[index];\n\t\t\targ = args[name as keyof typeof args];\n\n\t\t\tif (arg === undefined) {\n\t\t\t\tthrow new Error(`Parameter ${name} is required`);\n\t\t\t}\n\t\t}\n\n\t\tindex += 1;\n\n\t\tif (typeof arg === 'function' || isArgument(arg)) {\n\t\t\tnormalizedArgs.push(arg as TransactionArgument);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst bcsType = argType === null ? null : getPureBcsSchema(argType);\n\n\t\tif (bcsType) {\n\t\t\tconst bytes = bcsType.serialize(arg as never);\n\t\t\tnormalizedArgs.push((tx) => tx.pure(bytes));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof arg === 'string') {\n\t\t\tnormalizedArgs.push((tx) => tx.object(arg));\n\t\t\tcontinue;\n\t\t}\n\n\t\tthrow new Error(`Invalid argument ${stringify(arg)} for type ${argType}`);\n\t}\n\n\treturn normalizedArgs;\n}\n\nexport class MoveStruct<\n\tT extends Record<string, BcsType<any>>,\n\tconst Name extends string = string,\n> extends BcsStruct<T, Name> {\n\tasync get<\n\t\tInclude extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {},\n\t>({\n\t\tobjectId,\n\t\t...options\n\t}: GetOptions<Include>): Promise<\n\t\tSuiClientTypes.Object<Include & { content: true; json: true }> & {\n\t\t\tjson: BcsStruct<T>['$inferType'];\n\t\t}\n\t> {\n\t\tconst [res] = await this.getMany<Include>({\n\t\t\t...options,\n\t\t\tobjectIds: [objectId],\n\t\t});\n\n\t\tif (!res) {\n\t\t\tthrow new Error(`No object found for id ${objectId}`);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tasync getMany<\n\t\tInclude extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {},\n\t>({\n\t\tclient,\n\t\t...options\n\t}: GetManyOptions<Include>): Promise<\n\t\tArray<\n\t\t\tSuiClientTypes.Object<Include & { content: true; json: true }> & {\n\t\t\t\tjson: BcsStruct<T>['$inferType'];\n\t\t\t}\n\t\t>\n\t> {\n\t\tconst response = (await client.core.getObjects({\n\t\t\t...options,\n\t\t\tinclude: {\n\t\t\t\t...options.include,\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t})) as SuiClientTypes.GetObjectsResponse<Include & { content: true }>;\n\n\t\treturn response.objects.map((obj) => {\n\t\t\tif (obj instanceof Error) {\n\t\t\t\tthrow obj;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...obj,\n\t\t\t\tjson: this.parse(obj.content),\n\t\t\t};\n\t\t});\n\t}\n}\n\nexport class MoveEnum<\n\tT extends Record<string, BcsType<any> | null>,\n\tconst Name extends string,\n> extends BcsEnum<T, Name> {}\n\nexport class MoveTuple<\n\tconst T extends readonly BcsType<any>[],\n\tconst Name extends string,\n> extends BcsTuple<T, Name> {}\n\nfunction stringify(val: unknown) {\n\tif (typeof val === 'object') {\n\t\treturn JSON.stringify(val, (val: unknown) => val);\n\t}\n\tif (typeof val === 'bigint') {\n\t\treturn val.toString();\n\t}\n\n\treturn val;\n}\n"],"mappings":";;;;AAgBA,MAAM,sBAAsB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/contracts/utils/index.ts"],"sourcesContent":["import {\n\tbcs,\n\tBcsEnum,\n\tBcsStruct,\n\tBcsTuple,\n\tTypeTagSerializer,\n\ttype BcsType,\n\ttype TypeTag,\n} from '@mysten/sui/bcs';\nimport {\n\ttype ClientWithCoreApi,\n\ttype SuiClientTypes,\n} from '@mysten/sui/client';\nimport { isArgument, type TransactionArgument } from '@mysten/sui/transactions';\nimport { normalizeSuiAddress } from '@mysten/sui/utils';\n\nconst MOVE_STDLIB_ADDRESS = normalizeSuiAddress('0x1');\nconst SUI_FRAMEWORK_ADDRESS = normalizeSuiAddress('0x2');\n\nexport type RawTransactionArgument<T> = T | TransactionArgument;\n\nexport type GetOptions<\n\tInclude extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {},\n> = SuiClientTypes.GetObjectOptions<Include> & { client: ClientWithCoreApi };\n\nexport type GetManyOptions<\n\tInclude extends Omit<SuiClientTypes.ObjectInclude, 'content'> = {},\n> = SuiClientTypes.GetObjectsOptions<Include> & { client: ClientWithCoreApi };\n\nexport function getPureBcsSchema(\n\ttypeTag: string | TypeTag,\n): BcsType<any> | null {\n\tconst parsedTag =\n\t\ttypeof typeTag === 'string'\n\t\t\t? TypeTagSerializer.parseFromStr(typeTag)\n\t\t\t: typeTag;\n\n\tif ('u8' in parsedTag) {\n\t\treturn bcs.U8;\n\t} else if ('u16' in parsedTag) {\n\t\treturn bcs.U16;\n\t} else if ('u32' in parsedTag) {\n\t\treturn bcs.U32;\n\t} else if ('u64' in parsedTag) {\n\t\treturn bcs.U64;\n\t} else if ('u128' in parsedTag) {\n\t\treturn bcs.U128;\n\t} else if ('u256' in parsedTag) {\n\t\treturn bcs.U256;\n\t} else if ('address' in parsedTag) {\n\t\treturn bcs.Address;\n\t} else if ('bool' in parsedTag) {\n\t\treturn bcs.Bool;\n\t} else if ('vector' in parsedTag) {\n\t\tconst type = getPureBcsSchema(parsedTag.vector);\n\t\treturn type ? bcs.vector(type) : null;\n\t} else if ('struct' in parsedTag) {\n\t\tconst structTag = parsedTag.struct;\n\t\tconst pkg = normalizeSuiAddress(structTag.address);\n\n\t\tif (pkg === MOVE_STDLIB_ADDRESS) {\n\t\t\tif (\n\t\t\t\t(structTag.module === 'ascii' || structTag.module === 'string') &&\n\t\t\t\tstructTag.name === 'String'\n\t\t\t) {\n\t\t\t\treturn bcs.String;\n\t\t\t}\n\n\t\t\tif (structTag.module === 'option' && structTag.name === 'Option') {\n\t\t\t\tconst inner = structTag.typeParams[0];\n\t\t\t\tconst type = inner ? getPureBcsSchema(inner) : null;\n\t\t\t\treturn type ? bcs.option(type) : null;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tpkg === SUI_FRAMEWORK_ADDRESS &&\n\t\t\tstructTag.module === 'object' &&\n\t\t\t(structTag.name === 'ID' || structTag.name === 'UID')\n\t\t) {\n\t\t\treturn bcs.Address;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function normalizeMoveArguments(\n\targs: unknown[] | object,\n\targTypes: readonly (string | null)[],\n\tparameterNames?: string[],\n) {\n\tconst argLen = Array.isArray(args) ? args.length : Object.keys(args).length;\n\tif (parameterNames && argLen !== parameterNames.length) {\n\t\tthrow new Error(\n\t\t\t`Invalid number of arguments, expected ${parameterNames.length}, got ${argLen}`,\n\t\t);\n\t}\n\n\tconst normalizedArgs: TransactionArgument[] = [];\n\n\tlet index = 0;\n\tfor (const argType of argTypes) {\n\t\tif (argType === '0x2::clock::Clock') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.clock());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x2::random::Random') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.random());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x2::deny_list::DenyList') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.denyList());\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (argType === '0x3::sui_system::SuiSystemState') {\n\t\t\tnormalizedArgs.push((tx) => tx.object.system());\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet arg;\n\t\tif (Array.isArray(args)) {\n\t\t\tif (index >= args.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid number of arguments, expected at least ${index + 1}, got ${args.length}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\targ = args[index];\n\t\t} else {\n\t\t\tif (!parameterNames) {\n\t\t\t\tthrow new Error(`Expected arguments to be passed as an array`);\n\t\t\t}\n\t\t\tconst name = parameterNames[index];\n\t\t\targ = args[name as keyof typeof args];\n\n\t\t\tif (arg === undefined) {\n\t\t\t\tthrow new Error(`Parameter ${name} is required`);\n\t\t\t}\n\t\t}\n\n\t\tindex += 1;\n\n\t\tif (typeof arg === 'function' || isArgument(arg)) {\n\t\t\tnormalizedArgs.push(arg as TransactionArgument);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst bcsType = argType === null ? null : getPureBcsSchema(argType);\n\n\t\tif (bcsType) {\n\t\t\tconst bytes = bcsType.serialize(arg as never);\n\t\t\tnormalizedArgs.push((tx) => tx.pure(bytes));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof arg === 'string') {\n\t\t\tnormalizedArgs.push((tx) => tx.object(arg));\n\t\t\tcontinue;\n\t\t}\n\n\t\tthrow new Error(`Invalid argument ${stringify(arg)} for type ${argType}`);\n\t}\n\n\treturn normalizedArgs;\n}\n\nexport class MoveStruct<\n\tT extends Record<string, BcsType<any>>,\n\tconst Name extends string = string,\n> extends BcsStruct<T, Name> {\n\tasync get<\n\t\tInclude extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {},\n\t>({\n\t\tobjectId,\n\t\t...options\n\t}: GetOptions<Include>): Promise<\n\t\tSuiClientTypes.Object<Include & { content: true; json: true }> & {\n\t\t\tjson: BcsStruct<T>['$inferType'];\n\t\t}\n\t> {\n\t\tconst [res] = await this.getMany<Include>({\n\t\t\t...options,\n\t\t\tobjectIds: [objectId],\n\t\t});\n\n\t\tif (!res) {\n\t\t\tthrow new Error(`No object found for id ${objectId}`);\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tasync getMany<\n\t\tInclude extends Omit<SuiClientTypes.ObjectInclude, 'content' | 'json'> = {},\n\t>({\n\t\tclient,\n\t\t...options\n\t}: GetManyOptions<Include>): Promise<\n\t\tArray<\n\t\t\tSuiClientTypes.Object<Include & { content: true; json: true }> & {\n\t\t\t\tjson: BcsStruct<T>['$inferType'];\n\t\t\t}\n\t\t>\n\t> {\n\t\tconst response = (await client.core.getObjects({\n\t\t\t...options,\n\t\t\tinclude: {\n\t\t\t\t...options.include,\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t})) as SuiClientTypes.GetObjectsResponse<Include & { content: true }>;\n\n\t\treturn response.objects.map((obj) => {\n\t\t\tif (obj instanceof Error) {\n\t\t\t\tthrow obj;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...obj,\n\t\t\t\tjson: this.parse(obj.content),\n\t\t\t};\n\t\t});\n\t}\n}\n\nexport class MoveEnum<\n\tT extends Record<string, BcsType<any> | null>,\n\tconst Name extends string,\n> extends BcsEnum<T, Name> {}\n\nexport class MoveTuple<\n\tconst T extends readonly BcsType<any>[],\n\tconst Name extends string,\n> extends BcsTuple<T, Name> {}\n\nfunction stringify(val: unknown) {\n\tif (typeof val === 'object') {\n\t\treturn JSON.stringify(val, (val: unknown) => val);\n\t}\n\tif (typeof val === 'bigint') {\n\t\treturn val.toString();\n\t}\n\n\treturn val;\n}\n"],"mappings":";;;;AAgBA,MAAM,sBAAsB,oBAAoB,KAAK;AACrD,MAAM,wBAAwB,oBAAoB,KAAK;AAYvD,SAAgB,iBACf,SACsB;CACtB,MAAM,YACL,OAAO,YAAY,WAChB,kBAAkB,aAAa,OAAO,IACtC;CAEJ,IAAI,QAAQ,WACX,OAAO,IAAI;MACL,IAAI,SAAS,WACnB,OAAO,IAAI;MACL,IAAI,SAAS,WACnB,OAAO,IAAI;MACL,IAAI,SAAS,WACnB,OAAO,IAAI;MACL,IAAI,UAAU,WACpB,OAAO,IAAI;MACL,IAAI,UAAU,WACpB,OAAO,IAAI;MACL,IAAI,aAAa,WACvB,OAAO,IAAI;MACL,IAAI,UAAU,WACpB,OAAO,IAAI;MACL,IAAI,YAAY,WAAW;EACjC,MAAM,OAAO,iBAAiB,UAAU,MAAM;EAC9C,OAAO,OAAO,IAAI,OAAO,IAAI,IAAI;CAClC,OAAO,IAAI,YAAY,WAAW;EACjC,MAAM,YAAY,UAAU;EAC5B,MAAM,MAAM,oBAAoB,UAAU,OAAO;EAEjD,IAAI,QAAQ,qBAAqB;GAChC,KACE,UAAU,WAAW,WAAW,UAAU,WAAW,aACtD,UAAU,SAAS,UAEnB,OAAO,IAAI;GAGZ,IAAI,UAAU,WAAW,YAAY,UAAU,SAAS,UAAU;IACjE,MAAM,QAAQ,UAAU,WAAW;IACnC,MAAM,OAAO,QAAQ,iBAAiB,KAAK,IAAI;IAC/C,OAAO,OAAO,IAAI,OAAO,IAAI,IAAI;GAClC;EACD;EAEA,IACC,QAAQ,yBACR,UAAU,WAAW,aACpB,UAAU,SAAS,QAAQ,UAAU,SAAS,QAE/C,OAAO,IAAI;CAEb;CAEA,OAAO;AACR;AAEA,SAAgB,uBACf,MACA,UACA,gBACC;CACD,MAAM,SAAS,MAAM,QAAQ,IAAI,IAAI,KAAK,SAAS,OAAO,KAAK,IAAI,EAAE;CACrE,IAAI,kBAAkB,WAAW,eAAe,QAC/C,MAAM,IAAI,MACT,yCAAyC,eAAe,OAAO,QAAQ,QACxE;CAGD,MAAM,iBAAwC,CAAC;CAE/C,IAAI,QAAQ;CACZ,KAAK,MAAM,WAAW,UAAU;EAC/B,IAAI,YAAY,qBAAqB;GACpC,eAAe,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC;GAC7C;EACD;EAEA,IAAI,YAAY,uBAAuB;GACtC,eAAe,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC;GAC9C;EACD;EAEA,IAAI,YAAY,4BAA4B;GAC3C,eAAe,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC;GAChD;EACD;EAEA,IAAI,YAAY,mCAAmC;GAClD,eAAe,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC;GAC9C;EACD;EAEA,IAAI;EACJ,IAAI,MAAM,QAAQ,IAAI,GAAG;GACxB,IAAI,SAAS,KAAK,QACjB,MAAM,IAAI,MACT,kDAAkD,QAAQ,EAAE,QAAQ,KAAK,QAC1E;GAED,MAAM,KAAK;EACZ,OAAO;GACN,IAAI,CAAC,gBACJ,MAAM,IAAI,MAAM,6CAA6C;GAE9D,MAAM,OAAO,eAAe;GAC5B,MAAM,KAAK;GAEX,IAAI,QAAQ,KAAA,GACX,MAAM,IAAI,MAAM,aAAa,KAAK,aAAa;EAEjD;EAEA,SAAS;EAET,IAAI,OAAO,QAAQ,cAAc,WAAW,GAAG,GAAG;GACjD,eAAe,KAAK,GAA0B;GAC9C;EACD;EAEA,MAAM,UAAU,YAAY,OAAO,OAAO,iBAAiB,OAAO;EAElE,IAAI,SAAS;GACZ,MAAM,QAAQ,QAAQ,UAAU,GAAY;GAC5C,eAAe,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC;GAC1C;EACD;EAEA,IAAI,OAAO,QAAQ,UAAU;GAC5B,eAAe,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC;GAC1C;EACD;EAEA,MAAM,IAAI,MAAM,oBAAoB,UAAU,GAAG,EAAE,YAAY,SAAS;CACzE;CAEA,OAAO;AACR;AAEA,IAAa,aAAb,cAGU,UAAmB;CAC5B,MAAM,IAEJ,EACD,UACA,GAAG,WAKF;EACD,MAAM,CAAC,OAAO,MAAM,KAAK,QAAiB;GACzC,GAAG;GACH,WAAW,CAAC,QAAQ;EACrB,CAAC;EAED,IAAI,CAAC,KACJ,MAAM,IAAI,MAAM,0BAA0B,UAAU;EAGrD,OAAO;CACR;CAEA,MAAM,QAEJ,EACD,QACA,GAAG,WAOF;EASD,QAAO,MARiB,OAAO,KAAK,WAAW;GAC9C,GAAG;GACH,SAAS;IACR,GAAG,QAAQ;IACX,SAAS;GACV;EACD,CAAC,GAEe,QAAQ,KAAK,QAAQ;GACpC,IAAI,eAAe,OAClB,MAAM;GAGP,OAAO;IACN,GAAG;IACH,MAAM,KAAK,MAAM,IAAI,OAAO;GAC7B;EACD,CAAC;CACF;AACD;AAYA,SAAS,UAAU,KAAc;CAChC,IAAI,OAAO,QAAQ,UAClB,OAAO,KAAK,UAAU,MAAM,QAAiB,GAAG;CAEjD,IAAI,OAAO,QAAQ,UAClB,OAAO,IAAI,SAAS;CAGrB,OAAO;AACR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vec_map.mjs","names":[],"sources":["../../../../../src/contracts/wheel/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs, type BcsType } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName = '0x2::vec_map';\nexport function Entry<T0 extends BcsType<any>, T1 extends BcsType<any>>(\n\t...typeParameters: [T0, T1]\n) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::Entry<${typeParameters[0].name as T0['name']}, ${typeParameters[1].name as T1['name']}>`,\n\t\tfields: {\n\t\t\tkey: typeParameters[0],\n\t\t\tvalue: typeParameters[1],\n\t\t},\n\t});\n}\nexport function VecMap<T0 extends BcsType<any>, T1 extends BcsType<any>>(\n\t...typeParameters: [T0, T1]\n) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::VecMap<${typeParameters[0].name as T0['name']}, ${typeParameters[1].name as T1['name']}>`,\n\t\tfields: {\n\t\t\tcontents: bcs.vector(Entry(typeParameters[0], typeParameters[1])),\n\t\t},\n\t});\n}\n"],"mappings":";;;;;;AAMA,MAAM,cAAc;AACpB,SAAgB,MACf,GAAG,gBACF;CACD,OAAO,IAAI,WAAW;EACrB,MAAM,GAAG,YAAY,UAAU,eAAe,GAAG,KAAmB,IAAI,eAAe,GAAG,KAAmB;EAC7G,QAAQ;GACP,KAAK,eAAe;GACpB,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"vec_map.mjs","names":[],"sources":["../../../../../src/contracts/wheel/deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs, type BcsType } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName = '0x2::vec_map';\nexport function Entry<T0 extends BcsType<any>, T1 extends BcsType<any>>(\n\t...typeParameters: [T0, T1]\n) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::Entry<${typeParameters[0].name as T0['name']}, ${typeParameters[1].name as T1['name']}>`,\n\t\tfields: {\n\t\t\tkey: typeParameters[0],\n\t\t\tvalue: typeParameters[1],\n\t\t},\n\t});\n}\nexport function VecMap<T0 extends BcsType<any>, T1 extends BcsType<any>>(\n\t...typeParameters: [T0, T1]\n) {\n\treturn new MoveStruct({\n\t\tname: `${$moduleName}::VecMap<${typeParameters[0].name as T0['name']}, ${typeParameters[1].name as T1['name']}>`,\n\t\tfields: {\n\t\t\tcontents: bcs.vector(Entry(typeParameters[0], typeParameters[1])),\n\t\t},\n\t});\n}\n"],"mappings":";;;;;;AAMA,MAAM,cAAc;AACpB,SAAgB,MACf,GAAG,gBACF;CACD,OAAO,IAAI,WAAW;EACrB,MAAM,GAAG,YAAY,UAAU,eAAe,GAAG,KAAmB,IAAI,eAAe,GAAG,KAAmB;EAC7G,QAAQ;GACP,KAAK,eAAe;GACpB,OAAO,eAAe;EACvB;CACD,CAAC;AACF;AACA,SAAgB,OACf,GAAG,gBACF;CACD,OAAO,IAAI,WAAW;EACrB,MAAM,GAAG,YAAY,WAAW,eAAe,GAAG,KAAmB,IAAI,eAAe,GAAG,KAAmB;EAC9G,QAAQ,EACP,UAAU,IAAI,OAAO,MAAM,eAAe,IAAI,eAAe,EAAE,CAAC,EACjE;CACD,CAAC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"float.mjs","names":["i64.I64"],"sources":["../../../../../src/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\nimport * as i64 from './i64.js';\n\nconst $moduleName =\n\t'0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float';\nexport const Float = new MoveStruct({\n\tname: `${$moduleName}::Float`,\n\tfields: {\n\t\tis_negative: bcs.bool(),\n\t\texp: i64.I64,\n\t\tmant: bcs.u64(),\n\t},\n});\n"],"mappings":";;;AASA,MAAa,QAAQ,IAAI,WAAW;CACnC,MAAM;CACN,QAAQ;EACP,aAAa,IAAI,
|
|
1
|
+
{"version":3,"file":"float.mjs","names":["i64.I64"],"sources":["../../../../../src/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\nimport * as i64 from './i64.js';\n\nconst $moduleName =\n\t'0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float';\nexport const Float = new MoveStruct({\n\tname: `${$moduleName}::Float`,\n\tfields: {\n\t\tis_negative: bcs.bool(),\n\t\texp: i64.I64,\n\t\tmant: bcs.u64(),\n\t},\n});\n"],"mappings":";;;AASA,MAAa,QAAQ,IAAI,WAAW;CACnC,MAAM;CACN,QAAQ;EACP,aAAa,IAAI,KAAK;EACtB,KAAKA;EACL,MAAM,IAAI,IAAI;CACf;AACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i64.mjs","names":[],"sources":["../../../../../src/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName =\n\t'0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64';\nexport const I64 = new MoveStruct({\n\tname: `${$moduleName}::I64`,\n\tfields: {\n\t\tbits: bcs.u64(),\n\t},\n});\n"],"mappings":";;AAQA,MAAa,MAAM,IAAI,WAAW;CACjC,MAAM;CACN,QAAQ,EACP,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"i64.mjs","names":[],"sources":["../../../../../src/contracts/wheel/deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/i64.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { MoveStruct } from '../../../utils/index.js';\n\nconst $moduleName =\n\t'0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64';\nexport const I64 = new MoveStruct({\n\tname: `${$moduleName}::I64`,\n\tfields: {\n\t\tbits: bcs.u64(),\n\t},\n});\n"],"mappings":";;AAQA,MAAa,MAAM,IAAI,WAAW;CACjC,MAAM;CACN,QAAQ,EACP,MAAM,IAAI,IAAI,EACf;AACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wheel.mjs","names":["float.Float","vec_map.VecMap"],"sources":["../../../src/contracts/wheel/wheel.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction } from '@mysten/sui/transactions';\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport * as vec_map from './deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.js';\nimport * as float from './deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.js';\n\nconst $moduleName =\n\t'0x0997852ded7e13301c42317004bc49704a893aa82997c5706cebee59053a31b7::wheel';\nexport const WheelSettingsKey = new MoveStruct({\n\tname: `${$moduleName}::WheelSettingsKey`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const WheelConfig = new MoveStruct({\n\tname: `${$moduleName}::WheelConfig`,\n\tfields: {\n\t\tnum_cases: bcs.u8(),\n\t\tmultipliers: bcs.vector(float.Float),\n\t\tmin_stake: bcs.u64(),\n\t\tmax_stake: bcs.u64(),\n\t\tis_playable: bcs.bool(),\n\t},\n});\nexport const Parameters = new MoveStruct({\n\tname: `${$moduleName}::Parameters<phantom T0>`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\tmin_stake: bcs.u64(),\n\t\tmax_stake: bcs.u64(),\n\t\tmax_number_of_spins: bcs.u64(),\n\t\tconfigs: vec_map.VecMap(bcs.u8(), WheelConfig),\n\t},\n});\nexport interface PlayOptions {\n\tpackage?: string;\n\targuments: [\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<number>,\n\t\tRawTransactionArgument<Array<string>>,\n\t\tRawTransactionArgument<Array<Array<number>>>,\n\t\tRawTransactionArgument<string>,\n\t];\n\ttypeArguments: [string];\n}\nexport function play(options: PlayOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0x0997852ded7e13301c42317004bc49704a893aa82997c5706cebee59053a31b7';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\t'u64',\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'vector<0x1::string::String>',\n\t\t'vector<vector<u8>>',\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t\t'0x2::random::Random',\n\t] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'wheel',\n\t\t\tfunction: 'play',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;;AAaA,MAAM,cACL;AACD,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,
|
|
1
|
+
{"version":3,"file":"wheel.mjs","names":["float.Float","vec_map.VecMap"],"sources":["../../../src/contracts/wheel/wheel.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\nimport { bcs } from '@mysten/sui/bcs';\nimport { type Transaction } from '@mysten/sui/transactions';\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n} from '../utils/index.js';\nimport * as vec_map from './deps/0x0000000000000000000000000000000000000000000000000000000000000002/vec_map.js';\nimport * as float from './deps/0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc/float.js';\n\nconst $moduleName =\n\t'0x0997852ded7e13301c42317004bc49704a893aa82997c5706cebee59053a31b7::wheel';\nexport const WheelSettingsKey = new MoveStruct({\n\tname: `${$moduleName}::WheelSettingsKey`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const WheelConfig = new MoveStruct({\n\tname: `${$moduleName}::WheelConfig`,\n\tfields: {\n\t\tnum_cases: bcs.u8(),\n\t\tmultipliers: bcs.vector(float.Float),\n\t\tmin_stake: bcs.u64(),\n\t\tmax_stake: bcs.u64(),\n\t\tis_playable: bcs.bool(),\n\t},\n});\nexport const Parameters = new MoveStruct({\n\tname: `${$moduleName}::Parameters<phantom T0>`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\tmin_stake: bcs.u64(),\n\t\tmax_stake: bcs.u64(),\n\t\tmax_number_of_spins: bcs.u64(),\n\t\tconfigs: vec_map.VecMap(bcs.u8(), WheelConfig),\n\t},\n});\nexport interface PlayOptions {\n\tpackage?: string;\n\targuments: [\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<string>,\n\t\tRawTransactionArgument<number | bigint>,\n\t\tRawTransactionArgument<number>,\n\t\tRawTransactionArgument<Array<string>>,\n\t\tRawTransactionArgument<Array<Array<number>>>,\n\t\tRawTransactionArgument<string>,\n\t];\n\ttypeArguments: [string];\n}\nexport function play(options: PlayOptions) {\n\tconst packageAddress =\n\t\toptions.package ??\n\t\t'0x0997852ded7e13301c42317004bc49704a893aa82997c5706cebee59053a31b7';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\t'u64',\n\t\tnull,\n\t\t'u64',\n\t\t'u8',\n\t\t'vector<0x1::string::String>',\n\t\t'vector<vector<u8>>',\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t\t'0x2::random::Random',\n\t] satisfies (string | null)[];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'wheel',\n\t\t\tfunction: 'play',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes),\n\t\t\ttypeArguments: options.typeArguments,\n\t\t});\n}\n"],"mappings":";;;;;;;;AAaA,MAAM,cACL;AACD,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,KAAK,EACvB;AACD,CAAC;AACD,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,WAAW,IAAI,GAAG;EAClB,aAAa,IAAI,OAAOA,KAAW;EACnC,WAAW,IAAI,IAAI;EACnB,WAAW,IAAI,IAAI;EACnB,aAAa,IAAI,KAAK;CACvB;AACD,CAAC;AACD,MAAa,aAAa,IAAI,WAAW;CACxC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EACR,WAAW,IAAI,IAAI;EACnB,WAAW,IAAI,IAAI;EACnB,qBAAqB,IAAI,IAAI;EAC7B,SAASC,OAAe,IAAI,GAAG,GAAG,WAAW;CAC9C;AACD,CAAC;AAeD,SAAgB,KAAK,SAAsB;CAC1C,MAAM,iBACL,QAAQ,WACR;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;CACA,QAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,cAAc;EACnE,eAAe,QAAQ;CACxB,CAAC;AACH"}
|
package/dist/games.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { CoinSide } from "./types/game.type.mjs";
|
|
2
2
|
import { BuildCancelPvPCoinflipTransactionOptions, BuildCoinflipTransactionOptions, BuildCreatePvPCoinflipTransactionOptions, BuildJoinPvPCoinflipTransactionOptions, BuildLimboTransactionOptions, BuildPlinkoTransactionOptions, BuildRangeTransactionOptions, BuildWheelTransactionOptions, PvPCoinflipAction } from "./types/transaction-options.type.mjs";
|
|
3
|
-
export {
|
|
3
|
+
export type { BuildCancelPvPCoinflipTransactionOptions, BuildCoinflipTransactionOptions, BuildCreatePvPCoinflipTransactionOptions, BuildJoinPvPCoinflipTransactionOptions, BuildLimboTransactionOptions, BuildPlinkoTransactionOptions, BuildRangeTransactionOptions, BuildWheelTransactionOptions, CoinSide, PvPCoinflipAction };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.mjs","names":[],"sources":["../../src/helpers/config.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { normalizeStructTag } from '@mysten/sui/utils';\nimport {\n\tCOIN_TYPES,\n\tPACKAGE_IDS,\n\tPRICE_INFO_OBJECT_IDS,\n\tREGISTRY_IDS,\n} from '../configs/index.js';\nimport type { Game, SuigarCoin, SuigarConfig, SuiNetwork } from '../types';\n\nexport const DEFAULT_CACHE_TTL_MS = 30 * 60 * 1000;\n\nexport function resolveSuigarConfig(network: SuiNetwork): SuigarConfig {\n\tconst packageIds = PACKAGE_IDS[network];\n\tconst registryIds = REGISTRY_IDS[network];\n\tconst coinTypes = COIN_TYPES[network];\n\tconst priceInfoObjectIds = PRICE_INFO_OBJECT_IDS[network];\n\n\treturn {\n\t\tpackageIds: { ...packageIds },\n\t\tregistryIds: { ...registryIds },\n\t\tcoinTypes: {\n\t\t\tsui: normalizeStructTag(coinTypes.sui),\n\t\t\tusdc: normalizeStructTag(coinTypes.usdc),\n\t\t},\n\t\tpriceInfoObjectIds: {\n\t\t\tsui: priceInfoObjectIds.sui,\n\t\t\tusdc: priceInfoObjectIds.usdc,\n\t\t},\n\t};\n}\n\nexport function assertConfiguredBetGame(\n\tconfig: SuigarConfig,\n\tgame: Game,\n): void {\n\tif (!resolveGamePackageId(config, game)) {\n\t\tthrow new Error(`Missing required config for ${game}: packageIds.${game}`);\n\t}\n}\n\nexport function resolveGamePackageId(config: SuigarConfig, game: Game): string {\n\tswitch (game) {\n\t\tcase 'coinflip':\n\t\t\treturn config.packageIds.coinflip;\n\t\tcase 'limbo':\n\t\t\treturn config.packageIds.limbo;\n\t\tcase 'plinko':\n\t\t\treturn config.packageIds.plinko;\n\t\tcase 'pvp-coinflip':\n\t\t\treturn config.packageIds.pvpCoinflip;\n\t\tcase 'range':\n\t\t\treturn config.packageIds.range;\n\t\tcase 'wheel':\n\t\t\treturn config.packageIds.wheel;\n\t}\n}\n\nexport function resolvePriceInfoObjectId(\n\tconfig: SuigarConfig,\n\tcoinType: string,\n): string {\n\tconst normalizedCoinType = normalizeStructTag(coinType);\n\tconst supportedCoin = resolveSupportedCoin(config, normalizedCoinType);\n\tconst objectId = config.priceInfoObjectIds[supportedCoin];\n\n\tif (!objectId) {\n\t\tthrow new Error(\n\t\t\t`Missing price info object configuration for coin type ${coinType}`,\n\t\t);\n\t}\n\n\treturn objectId;\n}\n\nfunction resolveSupportedCoin(\n\tconfig: SuigarConfig,\n\tcoinType: string,\n): SuigarCoin {\n\tconst [supportedCoin] =\n\t\tObject.entries(config.coinTypes).find(([_, value]) => value === coinType) ??\n\t\t[];\n\n\tif (!supportedCoin) {\n\t\tthrow new RangeError(\n\t\t\t`Unsupported coin type ${coinType}. Supported coin types: ${Object.values(\n\t\t\t\tconfig.coinTypes,\n\t\t\t).join(', ')}`,\n\t\t);\n\t}\n\n\treturn supportedCoin as SuigarCoin;\n}\n"],"mappings":";;;;AAYA,MAAa,uBAAuB,OAAU;AAE9C,SAAgB,oBAAoB,SAAmC;CACtE,MAAM,aAAa,YAAY;CAC/B,MAAM,cAAc,aAAa;CACjC,MAAM,YAAY,WAAW;CAC7B,MAAM,qBAAqB,sBAAsB;CAEjD,OAAO;EACN,YAAY,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"config.mjs","names":[],"sources":["../../src/helpers/config.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { normalizeStructTag } from '@mysten/sui/utils';\nimport {\n\tCOIN_TYPES,\n\tPACKAGE_IDS,\n\tPRICE_INFO_OBJECT_IDS,\n\tREGISTRY_IDS,\n} from '../configs/index.js';\nimport type { Game, SuigarCoin, SuigarConfig, SuiNetwork } from '../types';\n\nexport const DEFAULT_CACHE_TTL_MS = 30 * 60 * 1000;\n\nexport function resolveSuigarConfig(network: SuiNetwork): SuigarConfig {\n\tconst packageIds = PACKAGE_IDS[network];\n\tconst registryIds = REGISTRY_IDS[network];\n\tconst coinTypes = COIN_TYPES[network];\n\tconst priceInfoObjectIds = PRICE_INFO_OBJECT_IDS[network];\n\n\treturn {\n\t\tpackageIds: { ...packageIds },\n\t\tregistryIds: { ...registryIds },\n\t\tcoinTypes: {\n\t\t\tsui: normalizeStructTag(coinTypes.sui),\n\t\t\tusdc: normalizeStructTag(coinTypes.usdc),\n\t\t},\n\t\tpriceInfoObjectIds: {\n\t\t\tsui: priceInfoObjectIds.sui,\n\t\t\tusdc: priceInfoObjectIds.usdc,\n\t\t},\n\t};\n}\n\nexport function assertConfiguredBetGame(\n\tconfig: SuigarConfig,\n\tgame: Game,\n): void {\n\tif (!resolveGamePackageId(config, game)) {\n\t\tthrow new Error(`Missing required config for ${game}: packageIds.${game}`);\n\t}\n}\n\nexport function resolveGamePackageId(config: SuigarConfig, game: Game): string {\n\tswitch (game) {\n\t\tcase 'coinflip':\n\t\t\treturn config.packageIds.coinflip;\n\t\tcase 'limbo':\n\t\t\treturn config.packageIds.limbo;\n\t\tcase 'plinko':\n\t\t\treturn config.packageIds.plinko;\n\t\tcase 'pvp-coinflip':\n\t\t\treturn config.packageIds.pvpCoinflip;\n\t\tcase 'range':\n\t\t\treturn config.packageIds.range;\n\t\tcase 'wheel':\n\t\t\treturn config.packageIds.wheel;\n\t}\n}\n\nexport function resolvePriceInfoObjectId(\n\tconfig: SuigarConfig,\n\tcoinType: string,\n): string {\n\tconst normalizedCoinType = normalizeStructTag(coinType);\n\tconst supportedCoin = resolveSupportedCoin(config, normalizedCoinType);\n\tconst objectId = config.priceInfoObjectIds[supportedCoin];\n\n\tif (!objectId) {\n\t\tthrow new Error(\n\t\t\t`Missing price info object configuration for coin type ${coinType}`,\n\t\t);\n\t}\n\n\treturn objectId;\n}\n\nfunction resolveSupportedCoin(\n\tconfig: SuigarConfig,\n\tcoinType: string,\n): SuigarCoin {\n\tconst [supportedCoin] =\n\t\tObject.entries(config.coinTypes).find(([_, value]) => value === coinType) ??\n\t\t[];\n\n\tif (!supportedCoin) {\n\t\tthrow new RangeError(\n\t\t\t`Unsupported coin type ${coinType}. Supported coin types: ${Object.values(\n\t\t\t\tconfig.coinTypes,\n\t\t\t).join(', ')}`,\n\t\t);\n\t}\n\n\treturn supportedCoin as SuigarCoin;\n}\n"],"mappings":";;;;AAYA,MAAa,uBAAuB,OAAU;AAE9C,SAAgB,oBAAoB,SAAmC;CACtE,MAAM,aAAa,YAAY;CAC/B,MAAM,cAAc,aAAa;CACjC,MAAM,YAAY,WAAW;CAC7B,MAAM,qBAAqB,sBAAsB;CAEjD,OAAO;EACN,YAAY,EAAE,GAAG,WAAW;EAC5B,aAAa,EAAE,GAAG,YAAY;EAC9B,WAAW;GACV,KAAK,mBAAmB,UAAU,GAAG;GACrC,MAAM,mBAAmB,UAAU,IAAI;EACxC;EACA,oBAAoB;GACnB,KAAK,mBAAmB;GACxB,MAAM,mBAAmB;EAC1B;CACD;AACD;AAEA,SAAgB,wBACf,QACA,MACO;CACP,IAAI,CAAC,qBAAqB,QAAQ,IAAI,GACrC,MAAM,IAAI,MAAM,+BAA+B,KAAK,eAAe,MAAM;AAE3E;AAEA,SAAgB,qBAAqB,QAAsB,MAAoB;CAC9E,QAAQ,MAAR;EACC,KAAK,YACJ,OAAO,OAAO,WAAW;EAC1B,KAAK,SACJ,OAAO,OAAO,WAAW;EAC1B,KAAK,UACJ,OAAO,OAAO,WAAW;EAC1B,KAAK,gBACJ,OAAO,OAAO,WAAW;EAC1B,KAAK,SACJ,OAAO,OAAO,WAAW;EAC1B,KAAK,SACJ,OAAO,OAAO,WAAW;CAC3B;AACD;AAEA,SAAgB,yBACf,QACA,UACS;CAET,MAAM,gBAAgB,qBAAqB,QADhB,mBAAmB,QACsB,CAAC;CACrE,MAAM,WAAW,OAAO,mBAAmB;CAE3C,IAAI,CAAC,UACJ,MAAM,IAAI,MACT,yDAAyD,UAC1D;CAGD,OAAO;AACR;AAEA,SAAS,qBACR,QACA,UACa;CACb,MAAM,CAAC,iBACN,OAAO,QAAQ,OAAO,SAAS,EAAE,MAAM,CAAC,GAAG,WAAW,UAAU,QAAQ,KACxE,CAAC;CAEF,IAAI,CAAC,eACJ,MAAM,IAAI,WACT,yBAAyB,SAAS,0BAA0B,OAAO,OAClE,OAAO,SACR,EAAE,KAAK,IAAI,GACZ;CAGD,OAAO;AACR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-settings.mjs","names":[],"sources":["../../src/helpers/game-settings.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n\tnormalizeStructTag,\n\tnormalizeSuiAddress,\n\tparseStructTag,\n} from '@mysten/sui/utils';\n\nfunction replaceStructTagAddress(structName: string, address: string): string {\n\treturn normalizeStructTag({\n\t\t...parseStructTag(structName),\n\t\taddress,\n\t});\n}\n\nexport function resolveGameSettingsKeyType(\n\tstructName: string,\n\tpackageId: string,\n): string {\n\treturn replaceStructTagAddress(structName, packageId);\n}\n\nexport function resolveCoinTypeNameForTypeNameKey(structName: string): string {\n\tconst { address } = parseStructTag(structName);\n\n\treturn replaceStructTagAddress(\n\t\tstructName,\n\t\tnormalizeSuiAddress(address).replace(/^0x/, ''),\n\t);\n}\n"],"mappings":";;AASA,SAAS,wBAAwB,YAAoB,SAAyB;CAC7E,OAAO,mBAAmB;EACzB,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"game-settings.mjs","names":[],"sources":["../../src/helpers/game-settings.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n\tnormalizeStructTag,\n\tnormalizeSuiAddress,\n\tparseStructTag,\n} from '@mysten/sui/utils';\n\nfunction replaceStructTagAddress(structName: string, address: string): string {\n\treturn normalizeStructTag({\n\t\t...parseStructTag(structName),\n\t\taddress,\n\t});\n}\n\nexport function resolveGameSettingsKeyType(\n\tstructName: string,\n\tpackageId: string,\n): string {\n\treturn replaceStructTagAddress(structName, packageId);\n}\n\nexport function resolveCoinTypeNameForTypeNameKey(structName: string): string {\n\tconst { address } = parseStructTag(structName);\n\n\treturn replaceStructTagAddress(\n\t\tstructName,\n\t\tnormalizeSuiAddress(address).replace(/^0x/, ''),\n\t);\n}\n"],"mappings":";;AASA,SAAS,wBAAwB,YAAoB,SAAyB;CAC7E,OAAO,mBAAmB;EACzB,GAAG,eAAe,UAAU;EAC5B;CACD,CAAC;AACF;AAEA,SAAgB,2BACf,YACA,WACS;CACT,OAAO,wBAAwB,YAAY,SAAS;AACrD;AAEA,SAAgB,kCAAkC,YAA4B;CAC7E,MAAM,EAAE,YAAY,eAAe,UAAU;CAE7C,OAAO,wBACN,YACA,oBAAoB,OAAO,EAAE,QAAQ,OAAO,EAAE,CAC/C;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.mjs","names":[],"sources":["../../src/helpers/metadata.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromHex } from '@mysten/sui/utils';\nimport type {\n\tBetMetadataInput,\n\tBetMetadataValue,\n\tEncodedBetMetadata,\n} from '../types';\n\nconst PARTNER_METADATA_KEY = 'partner';\n\nconst RESERVED_METADATA_KEYS = new Set([PARTNER_METADATA_KEY, 'referrer']);\nconst textEncoder = new TextEncoder();\n\nfunction encodeString(value: string) {\n\ttry {\n\t\treturn fromHex(value);\n\t} catch {\n\t\treturn textEncoder.encode(value);\n\t}\n}\n\nfunction encodeMetadataValue(value: BetMetadataValue) {\n\tif (value instanceof Uint8Array) {\n\t\treturn Array.from(value);\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn value;\n\t}\n\n\treturn Array.from(encodeString(String(value)));\n}\n\nexport function encodeBetMetadata(\n\tmetadata?: BetMetadataInput,\n\tpartner?: string,\n): EncodedBetMetadata {\n\tconst keys: string[] = [];\n\tconst values: number[][] = [];\n\n\tfor (const [key, value] of Object.entries(metadata ?? {})) {\n\t\tif (RESERVED_METADATA_KEYS.has(key)) {\n\t\t\tconsole.warn(\n\t\t\t\t`Metadata key \"${key}\" is reserved and will be ignored when parsing metadata.`,\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (value == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tkeys.push(key);\n\t\tvalues.push(encodeMetadataValue(value));\n\t}\n\n\tif (partner?.trim()) {\n\t\tkeys.unshift(PARTNER_METADATA_KEY);\n\t\tvalues.unshift(encodeMetadataValue(partner));\n\t}\n\n\treturn {\n\t\tkeys,\n\t\tvalues,\n\t};\n}\n"],"mappings":";;AAUA,MAAM,uBAAuB;AAE7B,MAAM,yBAAyB,IAAI,IAAI,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"metadata.mjs","names":[],"sources":["../../src/helpers/metadata.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromHex } from '@mysten/sui/utils';\nimport type {\n\tBetMetadataInput,\n\tBetMetadataValue,\n\tEncodedBetMetadata,\n} from '../types';\n\nconst PARTNER_METADATA_KEY = 'partner';\n\nconst RESERVED_METADATA_KEYS = new Set([PARTNER_METADATA_KEY, 'referrer']);\nconst textEncoder = new TextEncoder();\n\nfunction encodeString(value: string) {\n\ttry {\n\t\treturn fromHex(value);\n\t} catch {\n\t\treturn textEncoder.encode(value);\n\t}\n}\n\nfunction encodeMetadataValue(value: BetMetadataValue) {\n\tif (value instanceof Uint8Array) {\n\t\treturn Array.from(value);\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn value;\n\t}\n\n\treturn Array.from(encodeString(String(value)));\n}\n\nexport function encodeBetMetadata(\n\tmetadata?: BetMetadataInput,\n\tpartner?: string,\n): EncodedBetMetadata {\n\tconst keys: string[] = [];\n\tconst values: number[][] = [];\n\n\tfor (const [key, value] of Object.entries(metadata ?? {})) {\n\t\tif (RESERVED_METADATA_KEYS.has(key)) {\n\t\t\tconsole.warn(\n\t\t\t\t`Metadata key \"${key}\" is reserved and will be ignored when parsing metadata.`,\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (value == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tkeys.push(key);\n\t\tvalues.push(encodeMetadataValue(value));\n\t}\n\n\tif (partner?.trim()) {\n\t\tkeys.unshift(PARTNER_METADATA_KEY);\n\t\tvalues.unshift(encodeMetadataValue(partner));\n\t}\n\n\treturn {\n\t\tkeys,\n\t\tvalues,\n\t};\n}\n"],"mappings":";;AAUA,MAAM,uBAAuB;AAE7B,MAAM,yBAAyB,IAAI,IAAI,CAAC,sBAAsB,UAAU,CAAC;AACzE,MAAM,cAAc,IAAI,YAAY;AAEpC,SAAS,aAAa,OAAe;CACpC,IAAI;EACH,OAAO,QAAQ,KAAK;CACrB,QAAQ;EACP,OAAO,YAAY,OAAO,KAAK;CAChC;AACD;AAEA,SAAS,oBAAoB,OAAyB;CACrD,IAAI,iBAAiB,YACpB,OAAO,MAAM,KAAK,KAAK;CAGxB,IAAI,MAAM,QAAQ,KAAK,GACtB,OAAO;CAGR,OAAO,MAAM,KAAK,aAAa,OAAO,KAAK,CAAC,CAAC;AAC9C;AAEA,SAAgB,kBACf,UACA,SACqB;CACrB,MAAM,OAAiB,CAAC;CACxB,MAAM,SAAqB,CAAC;CAE5B,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,YAAY,CAAC,CAAC,GAAG;EAC1D,IAAI,uBAAuB,IAAI,GAAG,GAAG;GACpC,QAAQ,KACP,iBAAiB,IAAI,yDACtB;GACA;EACD;EAEA,IAAI,SAAS,MACZ;EAGD,KAAK,KAAK,GAAG;EACb,OAAO,KAAK,oBAAoB,KAAK,CAAC;CACvC;CAEA,IAAI,SAAS,KAAK,GAAG;EACpB,KAAK,QAAQ,oBAAoB;EACjC,OAAO,QAAQ,oBAAoB,OAAO,CAAC;CAC5C;CAEA,OAAO;EACN;EACA;CACD;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coinflip.mjs","names":[],"sources":["../../src/transactions/coinflip.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/coinflip/coinflip.js';\nimport type { BuildCoinflipTransactionOptions, WithPartner } from '../types';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildCoinflipTransaction(\n\toptions: WithPartner<BuildCoinflipTransactionOptions>,\n): Transaction {\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'coinflip',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.coinflip,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\toptions.side === 'tails',\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;AAQA,SAAgB,yBACf,SACc;CACd,OAAO,sCAAsC;EAC5C,GAAG;EACH,MAAM;EACN,kBAAkB,EACjB,IACA,QACA,UACA,OACA,UACA,UACA,mBACA,cAEA,KAAK;GACJ,SAAS,OAAO,WAAW;GAC3B,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"coinflip.mjs","names":[],"sources":["../../src/transactions/coinflip.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/coinflip/coinflip.js';\nimport type { BuildCoinflipTransactionOptions, WithPartner } from '../types';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildCoinflipTransaction(\n\toptions: WithPartner<BuildCoinflipTransactionOptions>,\n): Transaction {\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'coinflip',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.coinflip,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\toptions.side === 'tails',\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;AAQA,SAAgB,yBACf,SACc;CACd,OAAO,sCAAsC;EAC5C,GAAG;EACH,MAAM;EACN,kBAAkB,EACjB,IACA,QACA,UACA,OACA,UACA,UACA,mBACA,cAEA,KAAK;GACJ,SAAS,OAAO,WAAW;GAC3B,eAAe,CAAC,QAAQ;GACxB,WAAW;IACV,OAAO,WAAW;IAClB;IACA;IACA;IACA,QAAQ,SAAS;IACjB,SAAS;IACT,SAAS;IACT;GACD;EACD,CAAC,EAAE,EAAE;CACP,CAAC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limbo.mjs","names":[],"sources":["../../src/transactions/limbo.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/limbo/limbo.js';\nimport type { BuildLimboTransactionOptions, WithPartner } from '../types';\nimport { DEFAULT_LIMBO_MULTIPLIER_SCALE } from '../utils/index.js';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildLimboTransaction(\n\toptions: WithPartner<BuildLimboTransactionOptions>,\n): Transaction {\n\tconst scale = options.scale ?? DEFAULT_LIMBO_MULTIPLIER_SCALE;\n\tconst numerator = Math.round(options.targetMultiplier * scale);\n\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'limbo',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.limbo,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\tBigInt(numerator),\n\t\t\t\t\tBigInt(scale),\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;;AASA,SAAgB,sBACf,SACc;CACd,MAAM,QAAQ,QAAQ,SAAA;CACtB,MAAM,YAAY,KAAK,MAAM,QAAQ,mBAAmB,
|
|
1
|
+
{"version":3,"file":"limbo.mjs","names":[],"sources":["../../src/transactions/limbo.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/limbo/limbo.js';\nimport type { BuildLimboTransactionOptions, WithPartner } from '../types';\nimport { DEFAULT_LIMBO_MULTIPLIER_SCALE } from '../utils/index.js';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildLimboTransaction(\n\toptions: WithPartner<BuildLimboTransactionOptions>,\n): Transaction {\n\tconst scale = options.scale ?? DEFAULT_LIMBO_MULTIPLIER_SCALE;\n\tconst numerator = Math.round(options.targetMultiplier * scale);\n\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'limbo',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.limbo,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\tBigInt(numerator),\n\t\t\t\t\tBigInt(scale),\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;;AASA,SAAgB,sBACf,SACc;CACd,MAAM,QAAQ,QAAQ,SAAA;CACtB,MAAM,YAAY,KAAK,MAAM,QAAQ,mBAAmB,KAAK;CAE7D,OAAO,sCAAsC;EAC5C,GAAG;EACH,MAAM;EACN,kBAAkB,EACjB,IACA,QACA,UACA,OACA,UACA,UACA,mBACA,cAEA,KAAK;GACJ,SAAS,OAAO,WAAW;GAC3B,eAAe,CAAC,QAAQ;GACxB,WAAW;IACV,OAAO,WAAW;IAClB;IACA;IACA;IACA,OAAO,SAAS;IAChB,OAAO,KAAK;IACZ,SAAS;IACT,SAAS;IACT;GACD;EACD,CAAC,EAAE,EAAE;CACP,CAAC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plinko.mjs","names":[],"sources":["../../src/transactions/plinko.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/plinko/plinko.js';\nimport type { BuildPlinkoTransactionOptions, WithPartner } from '../types';\nimport { toU8 } from '../utils/index.js';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildPlinkoTransaction(\n\toptions: WithPartner<BuildPlinkoTransactionOptions>,\n): Transaction {\n\tconst configId = toU8(options.configId);\n\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'plinko',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.plinko,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\tconfigId,\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;;AASA,SAAgB,uBACf,SACc;CACd,MAAM,WAAW,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"plinko.mjs","names":[],"sources":["../../src/transactions/plinko.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/plinko/plinko.js';\nimport type { BuildPlinkoTransactionOptions, WithPartner } from '../types';\nimport { toU8 } from '../utils/index.js';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildPlinkoTransaction(\n\toptions: WithPartner<BuildPlinkoTransactionOptions>,\n): Transaction {\n\tconst configId = toU8(options.configId);\n\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'plinko',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.plinko,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\tconfigId,\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;;AASA,SAAgB,uBACf,SACc;CACd,MAAM,WAAW,KAAK,QAAQ,QAAQ;CAEtC,OAAO,sCAAsC;EAC5C,GAAG;EACH,MAAM;EACN,kBAAkB,EACjB,IACA,QACA,UACA,OACA,UACA,UACA,mBACA,cAEA,KAAK;GACJ,SAAS,OAAO,WAAW;GAC3B,eAAe,CAAC,QAAQ;GACxB,WAAW;IACV,OAAO,WAAW;IAClB;IACA;IACA;IACA;IACA,SAAS;IACT,SAAS;IACT;GACD;EACD,CAAC,EAAE,EAAE;CACP,CAAC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pvp-coinflip.mjs","names":[],"sources":["../../src/transactions/pvp-coinflip.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { normalizeStructTag } from '@mysten/sui/utils';\nimport {\n\tcancelGame,\n\tcreateGame,\n\tjoinGame,\n} from '../contracts/pvp-coinflip/pvp_coinflip.js';\nimport {\n\tencodeBetMetadata,\n\tresolvePriceInfoObjectId,\n} from '../helpers/index.js';\nimport type {\n\tBuildCancelPvPCoinflipTransactionOptions,\n\tBuildCreatePvPCoinflipTransactionOptions,\n\tBuildPvPCoinflipTransactionOptions,\n\tPvPCoinflipAction,\n\tResolvedJoinPvPCoinflipTransactionOptions,\n\tWithPartner,\n} from '../types/index.js';\nimport { toBigInt } from '../utils/index.js';\nimport { createBaseGameTransaction } from './shared.js';\n\ntype PvPCoinflipTransactionOptionsWithPartner<\n\tAction extends PvPCoinflipAction,\n> = Action extends 'join'\n\t? WithPartner<ResolvedJoinPvPCoinflipTransactionOptions>\n\t: WithPartner<BuildPvPCoinflipTransactionOptions<Action>>;\n\nexport function buildPvPCoinflipTransaction<Action extends PvPCoinflipAction>(\n\taction: Action,\n\toptions: PvPCoinflipTransactionOptionsWithPartner<Action>,\n): Transaction {\n\tconst tx = createBaseGameTransaction({\n\t\t...options,\n\t\tgame: 'pvp-coinflip',\n\t});\n\tconst normalizedCoinType = normalizeStructTag(options.coinType);\n\tconst encodedMetadata = encodeBetMetadata(options.metadata, options.partner);\n\n\tswitch (action) {\n\t\tcase 'create': {\n\t\t\tconst createOptions = options as BuildCreatePvPCoinflipTransactionOptions;\n\t\t\tconst stake = toBigInt(createOptions.stake);\n\t\t\tconst betCoin = tx.coin({\n\t\t\t\ttype: normalizedCoinType,\n\t\t\t\tbalance: stake,\n\t\t\t\tuseGasCoin: createOptions.allowGasCoinShortcut,\n\t\t\t});\n\n\t\t\ttx.add(\n\t\t\t\tcreateGame({\n\t\t\t\t\tpackage: createOptions.config.packageIds.pvpCoinflip,\n\t\t\t\t\ttypeArguments: [normalizedCoinType],\n\t\t\t\t\targuments: [\n\t\t\t\t\t\tcreateOptions.config.packageIds.sweetHouse,\n\t\t\t\t\t\tbetCoin,\n\t\t\t\t\t\tcreateOptions.side === 'tails',\n\t\t\t\t\t\tBoolean(createOptions.isPrivate),\n\t\t\t\t\t\tencodedMetadata.keys,\n\t\t\t\t\t\tencodedMetadata.values,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn tx;\n\t\t}\n\n\t\tcase 'join': {\n\t\t\tconst joinOptions = options as ResolvedJoinPvPCoinflipTransactionOptions;\n\t\t\tconst priceInfoObjectId = resolvePriceInfoObjectId(\n\t\t\t\tjoinOptions.config,\n\t\t\t\tnormalizedCoinType,\n\t\t\t);\n\n\t\t\ttx.add(\n\t\t\t\tjoinGame({\n\t\t\t\t\tpackage: joinOptions.config.packageIds.pvpCoinflip,\n\t\t\t\t\ttypeArguments: [normalizedCoinType],\n\t\t\t\t\targuments: [\n\t\t\t\t\t\tjoinOptions.gameId,\n\t\t\t\t\t\tjoinOptions.config.packageIds.sweetHouse,\n\t\t\t\t\t\ttx.add(joinOptions.betCoin),\n\t\t\t\t\t\tencodedMetadata.keys,\n\t\t\t\t\t\tencodedMetadata.values,\n\t\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn tx;\n\t\t}\n\n\t\tcase 'cancel': {\n\t\t\tconst cancelOptions = options as BuildCancelPvPCoinflipTransactionOptions;\n\n\t\t\ttx.add(\n\t\t\t\tcancelGame({\n\t\t\t\t\tpackage: cancelOptions.config.packageIds.pvpCoinflip,\n\t\t\t\t\ttypeArguments: [normalizedCoinType],\n\t\t\t\t\targuments: [\n\t\t\t\t\t\tcancelOptions.gameId,\n\t\t\t\t\t\tcancelOptions.config.packageIds.sweetHouse,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn tx;\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new RangeError(`Unsupported PvP coinflip action: ${action}`);\n\t}\n}\n"],"mappings":";;;;;;;AA+BA,SAAgB,4BACf,QACA,SACc;CACd,MAAM,KAAK,0BAA0B;EACpC,GAAG;EACH,MAAM;
|
|
1
|
+
{"version":3,"file":"pvp-coinflip.mjs","names":[],"sources":["../../src/transactions/pvp-coinflip.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { normalizeStructTag } from '@mysten/sui/utils';\nimport {\n\tcancelGame,\n\tcreateGame,\n\tjoinGame,\n} from '../contracts/pvp-coinflip/pvp_coinflip.js';\nimport {\n\tencodeBetMetadata,\n\tresolvePriceInfoObjectId,\n} from '../helpers/index.js';\nimport type {\n\tBuildCancelPvPCoinflipTransactionOptions,\n\tBuildCreatePvPCoinflipTransactionOptions,\n\tBuildPvPCoinflipTransactionOptions,\n\tPvPCoinflipAction,\n\tResolvedJoinPvPCoinflipTransactionOptions,\n\tWithPartner,\n} from '../types/index.js';\nimport { toBigInt } from '../utils/index.js';\nimport { createBaseGameTransaction } from './shared.js';\n\ntype PvPCoinflipTransactionOptionsWithPartner<\n\tAction extends PvPCoinflipAction,\n> = Action extends 'join'\n\t? WithPartner<ResolvedJoinPvPCoinflipTransactionOptions>\n\t: WithPartner<BuildPvPCoinflipTransactionOptions<Action>>;\n\nexport function buildPvPCoinflipTransaction<Action extends PvPCoinflipAction>(\n\taction: Action,\n\toptions: PvPCoinflipTransactionOptionsWithPartner<Action>,\n): Transaction {\n\tconst tx = createBaseGameTransaction({\n\t\t...options,\n\t\tgame: 'pvp-coinflip',\n\t});\n\tconst normalizedCoinType = normalizeStructTag(options.coinType);\n\tconst encodedMetadata = encodeBetMetadata(options.metadata, options.partner);\n\n\tswitch (action) {\n\t\tcase 'create': {\n\t\t\tconst createOptions = options as BuildCreatePvPCoinflipTransactionOptions;\n\t\t\tconst stake = toBigInt(createOptions.stake);\n\t\t\tconst betCoin = tx.coin({\n\t\t\t\ttype: normalizedCoinType,\n\t\t\t\tbalance: stake,\n\t\t\t\tuseGasCoin: createOptions.allowGasCoinShortcut,\n\t\t\t});\n\n\t\t\ttx.add(\n\t\t\t\tcreateGame({\n\t\t\t\t\tpackage: createOptions.config.packageIds.pvpCoinflip,\n\t\t\t\t\ttypeArguments: [normalizedCoinType],\n\t\t\t\t\targuments: [\n\t\t\t\t\t\tcreateOptions.config.packageIds.sweetHouse,\n\t\t\t\t\t\tbetCoin,\n\t\t\t\t\t\tcreateOptions.side === 'tails',\n\t\t\t\t\t\tBoolean(createOptions.isPrivate),\n\t\t\t\t\t\tencodedMetadata.keys,\n\t\t\t\t\t\tencodedMetadata.values,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn tx;\n\t\t}\n\n\t\tcase 'join': {\n\t\t\tconst joinOptions = options as ResolvedJoinPvPCoinflipTransactionOptions;\n\t\t\tconst priceInfoObjectId = resolvePriceInfoObjectId(\n\t\t\t\tjoinOptions.config,\n\t\t\t\tnormalizedCoinType,\n\t\t\t);\n\n\t\t\ttx.add(\n\t\t\t\tjoinGame({\n\t\t\t\t\tpackage: joinOptions.config.packageIds.pvpCoinflip,\n\t\t\t\t\ttypeArguments: [normalizedCoinType],\n\t\t\t\t\targuments: [\n\t\t\t\t\t\tjoinOptions.gameId,\n\t\t\t\t\t\tjoinOptions.config.packageIds.sweetHouse,\n\t\t\t\t\t\ttx.add(joinOptions.betCoin),\n\t\t\t\t\t\tencodedMetadata.keys,\n\t\t\t\t\t\tencodedMetadata.values,\n\t\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn tx;\n\t\t}\n\n\t\tcase 'cancel': {\n\t\t\tconst cancelOptions = options as BuildCancelPvPCoinflipTransactionOptions;\n\n\t\t\ttx.add(\n\t\t\t\tcancelGame({\n\t\t\t\t\tpackage: cancelOptions.config.packageIds.pvpCoinflip,\n\t\t\t\t\ttypeArguments: [normalizedCoinType],\n\t\t\t\t\targuments: [\n\t\t\t\t\t\tcancelOptions.gameId,\n\t\t\t\t\t\tcancelOptions.config.packageIds.sweetHouse,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn tx;\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new RangeError(`Unsupported PvP coinflip action: ${action}`);\n\t}\n}\n"],"mappings":";;;;;;;AA+BA,SAAgB,4BACf,QACA,SACc;CACd,MAAM,KAAK,0BAA0B;EACpC,GAAG;EACH,MAAM;CACP,CAAC;CACD,MAAM,qBAAqB,mBAAmB,QAAQ,QAAQ;CAC9D,MAAM,kBAAkB,kBAAkB,QAAQ,UAAU,QAAQ,OAAO;CAE3E,QAAQ,QAAR;EACC,KAAK,UAAU;GACd,MAAM,gBAAgB;GACtB,MAAM,QAAQ,SAAS,cAAc,KAAK;GAC1C,MAAM,UAAU,GAAG,KAAK;IACvB,MAAM;IACN,SAAS;IACT,YAAY,cAAc;GAC3B,CAAC;GAED,GAAG,IACF,WAAW;IACV,SAAS,cAAc,OAAO,WAAW;IACzC,eAAe,CAAC,kBAAkB;IAClC,WAAW;KACV,cAAc,OAAO,WAAW;KAChC;KACA,cAAc,SAAS;KACvB,QAAQ,cAAc,SAAS;KAC/B,gBAAgB;KAChB,gBAAgB;IACjB;GACD,CAAC,CACF;GACA,OAAO;EACR;EAEA,KAAK,QAAQ;GACZ,MAAM,cAAc;GACpB,MAAM,oBAAoB,yBACzB,YAAY,QACZ,kBACD;GAEA,GAAG,IACF,SAAS;IACR,SAAS,YAAY,OAAO,WAAW;IACvC,eAAe,CAAC,kBAAkB;IAClC,WAAW;KACV,YAAY;KACZ,YAAY,OAAO,WAAW;KAC9B,GAAG,IAAI,YAAY,OAAO;KAC1B,gBAAgB;KAChB,gBAAgB;KAChB;IACD;GACD,CAAC,CACF;GACA,OAAO;EACR;EAEA,KAAK,UAAU;GACd,MAAM,gBAAgB;GAEtB,GAAG,IACF,WAAW;IACV,SAAS,cAAc,OAAO,WAAW;IACzC,eAAe,CAAC,kBAAkB;IAClC,WAAW,CACV,cAAc,QACd,cAAc,OAAO,WAAW,UACjC;GACD,CAAC,CACF;GACA,OAAO;EACR;EAEA,SACC,MAAM,IAAI,WAAW,oCAAoC,QAAQ;CACnE;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.mjs","names":[],"sources":["../../src/transactions/range.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/range/range.js';\nimport type { BuildRangeTransactionOptions, WithPartner } from '../types';\nimport { DEFAULT_RANGE_SCALE } from '../utils/index.js';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildRangeTransaction(\n\toptions: WithPartner<BuildRangeTransactionOptions>,\n): Transaction {\n\tconst scale = options.scale ?? DEFAULT_RANGE_SCALE;\n\tconst leftPoint = Math.round(options.leftPoint * scale);\n\tconst rightPoint = Math.round(options.rightPoint * scale);\n\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'range',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.range,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\tBigInt(leftPoint),\n\t\t\t\t\tBigInt(rightPoint),\n\t\t\t\t\tBoolean(options.outOfRange),\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;;AASA,SAAgB,sBACf,SACc;CACd,MAAM,QAAQ,QAAQ,SAAA;CACtB,MAAM,YAAY,KAAK,MAAM,QAAQ,YAAY,
|
|
1
|
+
{"version":3,"file":"range.mjs","names":[],"sources":["../../src/transactions/range.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/range/range.js';\nimport type { BuildRangeTransactionOptions, WithPartner } from '../types';\nimport { DEFAULT_RANGE_SCALE } from '../utils/index.js';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildRangeTransaction(\n\toptions: WithPartner<BuildRangeTransactionOptions>,\n): Transaction {\n\tconst scale = options.scale ?? DEFAULT_RANGE_SCALE;\n\tconst leftPoint = Math.round(options.leftPoint * scale);\n\tconst rightPoint = Math.round(options.rightPoint * scale);\n\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'range',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.range,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\tBigInt(leftPoint),\n\t\t\t\t\tBigInt(rightPoint),\n\t\t\t\t\tBoolean(options.outOfRange),\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;;AASA,SAAgB,sBACf,SACc;CACd,MAAM,QAAQ,QAAQ,SAAA;CACtB,MAAM,YAAY,KAAK,MAAM,QAAQ,YAAY,KAAK;CACtD,MAAM,aAAa,KAAK,MAAM,QAAQ,aAAa,KAAK;CAExD,OAAO,sCAAsC;EAC5C,GAAG;EACH,MAAM;EACN,kBAAkB,EACjB,IACA,QACA,UACA,OACA,UACA,UACA,mBACA,cAEA,KAAK;GACJ,SAAS,OAAO,WAAW;GAC3B,eAAe,CAAC,QAAQ;GACxB,WAAW;IACV,OAAO,WAAW;IAClB;IACA;IACA;IACA,OAAO,SAAS;IAChB,OAAO,UAAU;IACjB,QAAQ,QAAQ,UAAU;IAC1B,SAAS;IACT,SAAS;IACT;GACD;EACD,CAAC,EAAE,EAAE;CACP,CAAC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.mjs","names":[],"sources":["../../src/transactions/shared.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n\tTransaction,\n\ttype TransactionArgument,\n\ttype TransactionResult,\n} from '@mysten/sui/transactions';\nimport { normalizeStructTag, normalizeSuiAddress } from '@mysten/sui/utils';\nimport {\n\tassertConfiguredBetGame,\n\tencodeBetMetadata,\n\tresolvePriceInfoObjectId,\n} from '../helpers/index.js';\nimport type {\n\tBaseTransactionOptions,\n\tCoinTransactionOptions,\n\tEncodedBetMetadata,\n\tGame,\n\tSharedBetTransactionOptions,\n\tStakeTransactionOptions,\n\tWithPartner,\n} from '../types';\nimport { DEFAULT_GAS_BUDGET_MIST, toBigInt } from '../utils/index.js';\n\ntype StrictStakeTransactionOptions = {\n\t[K in keyof StakeTransactionOptions]-?: Exclude<\n\t\tStakeTransactionOptions[K],\n\t\tnumber\n\t>;\n};\n\nexport type BuildSharedBetTransactionContext = Pick<\n\tBaseTransactionOptions,\n\t'config' | 'owner'\n> &\n\tPick<CoinTransactionOptions, 'coinType'> &\n\tStrictStakeTransactionOptions & {\n\t\ttx: Transaction;\n\t\tmetadata: EncodedBetMetadata;\n\t\tpriceInfoObjectId: string;\n\t\tbetCoin: TransactionResult;\n\t};\n\nexport type CreateBaseGameTransactionOptions = BaseTransactionOptions & {\n\tgame: Game;\n};\n\nexport type BuildSharedBetTransactionOptions = WithPartner<\n\tSharedBetTransactionOptions & {\n\t\tgame: Game;\n\t\tbuildRewardCoin: (\n\t\t\tcontext: BuildSharedBetTransactionContext,\n\t\t) => TransactionResult;\n\t}\n>;\n\nexport function createBaseGameTransaction({\n\tconfig,\n\tgame,\n\towner,\n\tgasBudget,\n}: CreateBaseGameTransactionOptions): Transaction {\n\tassertConfiguredBetGame(config, game);\n\n\tconst tx = new Transaction();\n\ttx.setSenderIfNotSet(normalizeSuiAddress(owner));\n\ttx.setGasBudgetIfNotSet(gasBudget ?? DEFAULT_GAS_BUDGET_MIST);\n\n\treturn tx;\n}\n\nexport function buildSharedStandardGameBetCall({\n\tconfig,\n\towner,\n\tcoinType,\n\tstake,\n\tcashStake,\n\tbetCount,\n\tmetadata,\n\tpartner,\n\tallowGasCoinShortcut = true,\n\tbuildRewardCoin,\n}: BuildSharedBetTransactionOptions): (tx: Transaction) => TransactionArgument {\n\treturn (tx: Transaction) => {\n\t\tconst normalizedOwner = normalizeSuiAddress(owner);\n\t\tconst normalizedCoinType = normalizeStructTag(coinType);\n\t\tconst resolvedStake = toBigInt(stake);\n\t\tconst resolvedCashStake = toBigInt(cashStake ?? stake);\n\t\tconst resolvedBetCount = toBigInt(betCount ?? 1);\n\t\tconst encodedMetadata = encodeBetMetadata(metadata, partner);\n\t\tconst priceInfoObjectId = resolvePriceInfoObjectId(\n\t\t\tconfig,\n\t\t\tnormalizedCoinType,\n\t\t);\n\n\t\tconst betCoin = tx.coin({\n\t\t\ttype: normalizedCoinType,\n\t\t\tbalance: resolvedCashStake,\n\t\t\tuseGasCoin: allowGasCoinShortcut,\n\t\t});\n\n\t\tconst rewardCoin = buildRewardCoin({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\towner: normalizedOwner,\n\t\t\tcoinType: normalizedCoinType,\n\t\t\tstake: resolvedStake,\n\t\t\tcashStake: resolvedCashStake,\n\t\t\tbetCount: resolvedBetCount,\n\t\t\tmetadata: encodedMetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t});\n\n\t\ttx.transferObjects([rewardCoin], tx.pure.address(normalizedOwner));\n\t\treturn rewardCoin;\n\t};\n}\n\nexport function buildSharedStandardGameBetTransaction(\n\toptions: BuildSharedBetTransactionOptions,\n): Transaction {\n\tconst tx = createBaseGameTransaction(options);\n\ttx.add(buildSharedStandardGameBetCall(options));\n\treturn tx;\n}\n"],"mappings":";;;;;;;AAyDA,SAAgB,0BAA0B,EACzC,QACA,MACA,OACA,aACiD;CACjD,wBAAwB,QAAQ,
|
|
1
|
+
{"version":3,"file":"shared.mjs","names":[],"sources":["../../src/transactions/shared.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n\tTransaction,\n\ttype TransactionArgument,\n\ttype TransactionResult,\n} from '@mysten/sui/transactions';\nimport { normalizeStructTag, normalizeSuiAddress } from '@mysten/sui/utils';\nimport {\n\tassertConfiguredBetGame,\n\tencodeBetMetadata,\n\tresolvePriceInfoObjectId,\n} from '../helpers/index.js';\nimport type {\n\tBaseTransactionOptions,\n\tCoinTransactionOptions,\n\tEncodedBetMetadata,\n\tGame,\n\tSharedBetTransactionOptions,\n\tStakeTransactionOptions,\n\tWithPartner,\n} from '../types';\nimport { DEFAULT_GAS_BUDGET_MIST, toBigInt } from '../utils/index.js';\n\ntype StrictStakeTransactionOptions = {\n\t[K in keyof StakeTransactionOptions]-?: Exclude<\n\t\tStakeTransactionOptions[K],\n\t\tnumber\n\t>;\n};\n\nexport type BuildSharedBetTransactionContext = Pick<\n\tBaseTransactionOptions,\n\t'config' | 'owner'\n> &\n\tPick<CoinTransactionOptions, 'coinType'> &\n\tStrictStakeTransactionOptions & {\n\t\ttx: Transaction;\n\t\tmetadata: EncodedBetMetadata;\n\t\tpriceInfoObjectId: string;\n\t\tbetCoin: TransactionResult;\n\t};\n\nexport type CreateBaseGameTransactionOptions = BaseTransactionOptions & {\n\tgame: Game;\n};\n\nexport type BuildSharedBetTransactionOptions = WithPartner<\n\tSharedBetTransactionOptions & {\n\t\tgame: Game;\n\t\tbuildRewardCoin: (\n\t\t\tcontext: BuildSharedBetTransactionContext,\n\t\t) => TransactionResult;\n\t}\n>;\n\nexport function createBaseGameTransaction({\n\tconfig,\n\tgame,\n\towner,\n\tgasBudget,\n}: CreateBaseGameTransactionOptions): Transaction {\n\tassertConfiguredBetGame(config, game);\n\n\tconst tx = new Transaction();\n\ttx.setSenderIfNotSet(normalizeSuiAddress(owner));\n\ttx.setGasBudgetIfNotSet(gasBudget ?? DEFAULT_GAS_BUDGET_MIST);\n\n\treturn tx;\n}\n\nexport function buildSharedStandardGameBetCall({\n\tconfig,\n\towner,\n\tcoinType,\n\tstake,\n\tcashStake,\n\tbetCount,\n\tmetadata,\n\tpartner,\n\tallowGasCoinShortcut = true,\n\tbuildRewardCoin,\n}: BuildSharedBetTransactionOptions): (tx: Transaction) => TransactionArgument {\n\treturn (tx: Transaction) => {\n\t\tconst normalizedOwner = normalizeSuiAddress(owner);\n\t\tconst normalizedCoinType = normalizeStructTag(coinType);\n\t\tconst resolvedStake = toBigInt(stake);\n\t\tconst resolvedCashStake = toBigInt(cashStake ?? stake);\n\t\tconst resolvedBetCount = toBigInt(betCount ?? 1);\n\t\tconst encodedMetadata = encodeBetMetadata(metadata, partner);\n\t\tconst priceInfoObjectId = resolvePriceInfoObjectId(\n\t\t\tconfig,\n\t\t\tnormalizedCoinType,\n\t\t);\n\n\t\tconst betCoin = tx.coin({\n\t\t\ttype: normalizedCoinType,\n\t\t\tbalance: resolvedCashStake,\n\t\t\tuseGasCoin: allowGasCoinShortcut,\n\t\t});\n\n\t\tconst rewardCoin = buildRewardCoin({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\towner: normalizedOwner,\n\t\t\tcoinType: normalizedCoinType,\n\t\t\tstake: resolvedStake,\n\t\t\tcashStake: resolvedCashStake,\n\t\t\tbetCount: resolvedBetCount,\n\t\t\tmetadata: encodedMetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t});\n\n\t\ttx.transferObjects([rewardCoin], tx.pure.address(normalizedOwner));\n\t\treturn rewardCoin;\n\t};\n}\n\nexport function buildSharedStandardGameBetTransaction(\n\toptions: BuildSharedBetTransactionOptions,\n): Transaction {\n\tconst tx = createBaseGameTransaction(options);\n\ttx.add(buildSharedStandardGameBetCall(options));\n\treturn tx;\n}\n"],"mappings":";;;;;;;AAyDA,SAAgB,0BAA0B,EACzC,QACA,MACA,OACA,aACiD;CACjD,wBAAwB,QAAQ,IAAI;CAEpC,MAAM,KAAK,IAAI,YAAY;CAC3B,GAAG,kBAAkB,oBAAoB,KAAK,CAAC;CAC/C,GAAG,qBAAqB,aAAa,uBAAuB;CAE5D,OAAO;AACR;AAEA,SAAgB,+BAA+B,EAC9C,QACA,OACA,UACA,OACA,WACA,UACA,UACA,SACA,uBAAuB,MACvB,mBAC8E;CAC9E,QAAQ,OAAoB;EAC3B,MAAM,kBAAkB,oBAAoB,KAAK;EACjD,MAAM,qBAAqB,mBAAmB,QAAQ;EACtD,MAAM,gBAAgB,SAAS,KAAK;EACpC,MAAM,oBAAoB,SAAS,aAAa,KAAK;EAcrD,MAAM,aAAa,gBAAgB;GAClC;GACA;GACA,OAAO;GACP,UAAU;GACV,OAAO;GACP,WAAW;GACX,UApBwB,SAAS,YAAY,CAoBpB;GACzB,UApBuB,kBAAkB,UAAU,OAoB3B;GACxB,mBApByB,yBACzB,QACA,kBAkBgB;GAChB,SAhBe,GAAG,KAAK;IACvB,MAAM;IACN,SAAS;IACT,YAAY;GACb,CAYO;EACP,CAAC;EAED,GAAG,gBAAgB,CAAC,UAAU,GAAG,GAAG,KAAK,QAAQ,eAAe,CAAC;EACjE,OAAO;CACR;AACD;AAEA,SAAgB,sCACf,SACc;CACd,MAAM,KAAK,0BAA0B,OAAO;CAC5C,GAAG,IAAI,+BAA+B,OAAO,CAAC;CAC9C,OAAO;AACR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wheel.mjs","names":[],"sources":["../../src/transactions/wheel.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/wheel/wheel.js';\nimport type { BuildWheelTransactionOptions, WithPartner } from '../types';\nimport { toU8 } from '../utils/index.js';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildWheelTransaction(\n\toptions: WithPartner<BuildWheelTransactionOptions>,\n): Transaction {\n\tconst configId = toU8(options.configId);\n\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'wheel',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.wheel,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\tconfigId,\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;;AASA,SAAgB,sBACf,SACc;CACd,MAAM,WAAW,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"wheel.mjs","names":[],"sources":["../../src/transactions/wheel.ts"],"sourcesContent":["// Copyright (c) Suigar\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Transaction } from '@mysten/sui/transactions';\nimport { play } from '../contracts/wheel/wheel.js';\nimport type { BuildWheelTransactionOptions, WithPartner } from '../types';\nimport { toU8 } from '../utils/index.js';\nimport { buildSharedStandardGameBetTransaction } from './shared.js';\n\nexport function buildWheelTransaction(\n\toptions: WithPartner<BuildWheelTransactionOptions>,\n): Transaction {\n\tconst configId = toU8(options.configId);\n\n\treturn buildSharedStandardGameBetTransaction({\n\t\t...options,\n\t\tgame: 'wheel',\n\t\tbuildRewardCoin: ({\n\t\t\ttx,\n\t\t\tconfig,\n\t\t\tcoinType,\n\t\t\tstake,\n\t\t\tbetCount,\n\t\t\tmetadata,\n\t\t\tpriceInfoObjectId,\n\t\t\tbetCoin,\n\t\t}) =>\n\t\t\tplay({\n\t\t\t\tpackage: config.packageIds.wheel,\n\t\t\t\ttypeArguments: [coinType],\n\t\t\t\targuments: [\n\t\t\t\t\tconfig.packageIds.sweetHouse,\n\t\t\t\t\tstake,\n\t\t\t\t\tbetCoin,\n\t\t\t\t\tbetCount,\n\t\t\t\t\tconfigId,\n\t\t\t\t\tmetadata.keys,\n\t\t\t\t\tmetadata.values,\n\t\t\t\t\tpriceInfoObjectId,\n\t\t\t\t],\n\t\t\t})(tx),\n\t});\n}\n"],"mappings":";;;;AASA,SAAgB,sBACf,SACc;CACd,MAAM,WAAW,KAAK,QAAQ,QAAQ;CAEtC,OAAO,sCAAsC;EAC5C,GAAG;EACH,MAAM;EACN,kBAAkB,EACjB,IACA,QACA,UACA,OACA,UACA,UACA,mBACA,cAEA,KAAK;GACJ,SAAS,OAAO,WAAW;GAC3B,eAAe,CAAC,QAAQ;GACxB,WAAW;IACV,OAAO,WAAW;IAClB;IACA;IACA;IACA;IACA,SAAS;IACT,SAAS;IACT;GACD;EACD,CAAC,EAAE,EAAE;CACP,CAAC;AACF"}
|
package/dist/ttl-cache.mjs.map
CHANGED
|
@@ -1 +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,
|
|
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,KAAK;EACjC,CAAC;EACD,KAAKA,SAAS;CACf;CAEA,KACC,KACA,MACA,SACiB;EACjB,IAAI,SAAS,aACZ,MAAM,MAAM,GAAG;EAGhB,IAAI,KAAKA,UAAU,GAClB,OAAO,KAAK;EAGb,MAAM,SAAS,MAAM,KAAiC,WACrD,KAAKC,WAAW,KAAK,IAAI,CAC1B;EAEA,IAAI,UAAU,OAAO,YAAY,KAAK,IAAI,GACzC,OAAO,OAAO;EAGf,MAAM,MAAM,GAAG;EACf,OACC,MAAM,KAAiC,WACtC,KAAKA,WAAW,KAAK,IAAI,CAC1B,EACC;CACH;CAEA,SACC,KACA,MACA,SACI;EACJ,IAAI,SAAS,aACZ,MAAM,MAAM,GAAG;EAGhB,IAAI,KAAKD,UAAU,GAClB,OAAO,KAAK;EAGb,MAAM,SAAS,MAAM,SAAwB,WAC5C,KAAKE,eAAe,IAAI,CACzB;EAEA,IAAI,OAAO,YAAY,KAAK,IAAI,GAC/B,OAAO,OAAO;EAGf,MAAM,MAAM,GAAG;EACf,OAAO,MAAM,SAAwB,WAAW,KAAKA,eAAe,IAAI,CAAC,EACvE;CACH;CAEA,WACC,KACA,MAC6B;EAC7B,MAAM,QAAQ,KAAK;EACnB,MAAM,QAAoC;GACzC;GACA,WAAW,KAAK,IAAI,IAAI,KAAKF;EAC9B;EAEA,IAAI,cAAc,KAAK,GACtB,MAAM,QAAQ,QAAQ,QAAQ,KAAK,EACjC,MAAM,aAAa;GACnB,MAAM,MAAM,GAAG;GACf,MAAM,KAAoB,YAAY;IACrC,OAAO;IACP,WAAW,KAAK,IAAI,IAAI,KAAKA;GAC9B,EAAE;GACF,OAAO;EACR,CAAC,EACA,OAAO,UAAU;GACjB,MAAM,MAAM,GAAG;GACf,MAAM;EACP,CAAC;EAGH,OAAO;CACR;CAEA,eAAkB,MAA8B;EAC/C,OAAO;GACN,OAAO,KAAK;GACZ,WAAW,KAAK,IAAI,IAAI,KAAKA;EAC9B;CACD;AACD;AAEA,SAAS,cAAiB,OAA4C;CACrE,QACE,OAAO,UAAU,YAAY,OAAO,UAAU,eAC/C,UAAU,QACV,UAAU;AAEZ"}
|
|
@@ -1 +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,
|
|
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,UAAU;AAAA,KACpD,gBAAA,GAAmB,MAAM,SAEpC,gBAAA"}
|
|
@@ -1 +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,
|
|
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,IAAI,CAAC,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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Game } from "./game.type.mjs";
|
|
2
2
|
import { MoveStruct } from "../contracts/utils/index.mjs";
|
|
3
3
|
import { BetResultEvent } from "../contracts/core/core.mjs";
|
|
4
|
-
import * as _$_mysten_bcs0 from "@mysten/bcs";
|
|
5
4
|
|
|
6
5
|
//#region src/types/game-details.type.d.ts
|
|
7
6
|
type BetResultGameDetails = ReturnType<(typeof BetResultEvent)['parse']>['game_details'];
|
|
@@ -9,17 +8,17 @@ type GameDetailValueType = 'u8' | 'u64' | 'bool' | 'float' | 'string';
|
|
|
9
8
|
type GameDetail<TValueType extends GameDetailValueType> = TValueType extends 'float' | 'u64' ? number : ReturnType<(typeof GAME_DETAIL_BCS)[TValueType]['parse']>;
|
|
10
9
|
type GameDetails<TGame extends Game> = { [K in keyof (typeof GAME_DETAILS_SCHEMAS)[TGame]]: GameDetail<(typeof GAME_DETAILS_SCHEMAS)[TGame][K] & GameDetailValueType> };
|
|
11
10
|
declare const GAME_DETAIL_BCS: {
|
|
12
|
-
readonly u8:
|
|
13
|
-
readonly u64:
|
|
14
|
-
readonly bool:
|
|
11
|
+
readonly u8: import("@mysten/bcs").BcsType<number, number, "u8">;
|
|
12
|
+
readonly u64: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
13
|
+
readonly bool: import("@mysten/bcs").BcsType<boolean, boolean, "bool">;
|
|
15
14
|
readonly float: MoveStruct<{
|
|
16
|
-
is_negative:
|
|
15
|
+
is_negative: import("@mysten/bcs").BcsType<boolean, boolean, "bool">;
|
|
17
16
|
exp: MoveStruct<{
|
|
18
|
-
bits:
|
|
17
|
+
bits: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
19
18
|
}, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::i64::I64">;
|
|
20
|
-
mant:
|
|
19
|
+
mant: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
21
20
|
}, "0xf391858d2a08473e8d4defcc8df89976bd7b123d3865c6b9341b237f7853dbbc::float::Float">;
|
|
22
|
-
readonly string:
|
|
21
|
+
readonly string: import("@mysten/bcs").BcsType<string, string, "string">;
|
|
23
22
|
};
|
|
24
23
|
declare const GAME_DETAILS_SCHEMAS: {
|
|
25
24
|
coinflip: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-details.type.d.mts","names":[],"sources":["../../src/types/game-details.type.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"game-details.type.d.mts","names":[],"sources":["../../src/types/game-details.type.ts"],"mappings":";;;;;KAQY,oBAAA,GAAuB,UAAU,SACpC,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;;;kBAMH,UAAA;;SAAA,UAAA;;;;;;;cAqDG,oBAAA"}
|
|
@@ -1 +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;
|
|
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;AACb;AAqDA,MAAa,uBAAuB;CACnC,UAAU;EAnDV,YAAY;EACZ,cAAc;CAkDJ;CACV,OAAO;EA3CP,eAAe;EACf,KAAK;EACL,iBAAiB;EACjB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;CAsCL;CACP,QAAQ;EAjBR,YAAY;EACZ,YAAY;EACZ,eAAe;EACf,eAAe;CAcP;CACR,gBAAgB,EAjDhB,YAAY,SAiDI;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;CAuBL;CACP,OAAO;EAbP,YAAY;EACZ,YAAY;EACZ,eAAe;EACf,cAAc;EACd,YAAY;CASL;AACR"}
|