@waterx/predict-sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +67 -0
  3. package/dist/src/account.d.ts +64 -0
  4. package/dist/src/account.js +134 -0
  5. package/dist/src/admin.d.ts +47 -0
  6. package/dist/src/admin.js +104 -0
  7. package/dist/src/bcs.d.ts +20 -0
  8. package/dist/src/bcs.js +209 -0
  9. package/dist/src/client.d.ts +60 -0
  10. package/dist/src/client.js +59 -0
  11. package/dist/src/constants.d.ts +61 -0
  12. package/dist/src/constants.js +62 -0
  13. package/dist/src/fetch.d.ts +53 -0
  14. package/dist/src/fetch.js +187 -0
  15. package/dist/src/generated/bucket_v2_framework/account.d.ts +100 -0
  16. package/dist/src/generated/bucket_v2_framework/account.js +129 -0
  17. package/dist/src/generated/bucket_v2_framework/deps/std/type_name.d.ts +6 -0
  18. package/dist/src/generated/bucket_v2_framework/deps/std/type_name.js +19 -0
  19. package/dist/src/generated/bucket_v2_framework/deps/sui/balance.d.ts +10 -0
  20. package/dist/src/generated/bucket_v2_framework/deps/sui/balance.js +14 -0
  21. package/dist/src/generated/bucket_v2_framework/deps/sui/vec_map.d.ts +36 -0
  22. package/dist/src/generated/bucket_v2_framework/deps/sui/vec_map.js +27 -0
  23. package/dist/src/generated/bucket_v2_framework/deps/sui/vec_set.d.ts +16 -0
  24. package/dist/src/generated/bucket_v2_framework/deps/sui/vec_set.js +19 -0
  25. package/dist/src/generated/bucket_v2_framework/double.d.ts +382 -0
  26. package/dist/src/generated/bucket_v2_framework/double.js +466 -0
  27. package/dist/src/generated/bucket_v2_framework/float.d.ts +362 -0
  28. package/dist/src/generated/bucket_v2_framework/float.js +440 -0
  29. package/dist/src/generated/bucket_v2_framework/liability.d.ts +193 -0
  30. package/dist/src/generated/bucket_v2_framework/liability.js +205 -0
  31. package/dist/src/generated/bucket_v2_framework/linked_table.d.ts +384 -0
  32. package/dist/src/generated/bucket_v2_framework/linked_table.js +382 -0
  33. package/dist/src/generated/bucket_v2_framework/sheet.d.ts +344 -0
  34. package/dist/src/generated/bucket_v2_framework/sheet.js +344 -0
  35. package/dist/src/generated/utils/index.d.ts +30 -0
  36. package/dist/src/generated/utils/index.js +157 -0
  37. package/dist/src/generated/waterx_account/account.d.ts +1326 -0
  38. package/dist/src/generated/waterx_account/account.js +1487 -0
  39. package/dist/src/generated/waterx_account/deps/std/type_name.d.ts +6 -0
  40. package/dist/src/generated/waterx_account/deps/std/type_name.js +19 -0
  41. package/dist/src/generated/waterx_account/deps/sui/balance.d.ts +10 -0
  42. package/dist/src/generated/waterx_account/deps/sui/balance.js +14 -0
  43. package/dist/src/generated/waterx_account/deps/sui/table.d.ts +24 -0
  44. package/dist/src/generated/waterx_account/deps/sui/table.js +31 -0
  45. package/dist/src/generated/waterx_account/deps/sui/vec_map.d.ts +36 -0
  46. package/dist/src/generated/waterx_account/deps/sui/vec_map.js +27 -0
  47. package/dist/src/generated/waterx_account/deps/sui/vec_set.d.ts +16 -0
  48. package/dist/src/generated/waterx_account/deps/sui/vec_set.js +19 -0
  49. package/dist/src/generated/waterx_account/direct_rule.d.ts +72 -0
  50. package/dist/src/generated/waterx_account/direct_rule.js +75 -0
  51. package/dist/src/generated/waterx_account/events.d.ts +30 -0
  52. package/dist/src/generated/waterx_account/events.js +145 -0
  53. package/dist/src/generated/waterx_account/version.d.ts +10 -0
  54. package/dist/src/generated/waterx_account/version.js +8 -0
  55. package/dist/src/generated/waterx_prediction/account_data.d.ts +321 -0
  56. package/dist/src/generated/waterx_prediction/account_data.js +399 -0
  57. package/dist/src/generated/waterx_prediction/admin.d.ts +5 -0
  58. package/dist/src/generated/waterx_prediction/admin.js +9 -0
  59. package/dist/src/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  60. package/dist/src/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.js +18 -0
  61. package/dist/src/generated/waterx_prediction/deps/sui/balance.d.ts +10 -0
  62. package/dist/src/generated/waterx_prediction/deps/sui/balance.js +14 -0
  63. package/dist/src/generated/waterx_prediction/deps/sui/table.d.ts +24 -0
  64. package/dist/src/generated/waterx_prediction/deps/sui/table.js +31 -0
  65. package/dist/src/generated/waterx_prediction/deps/sui/vec_set.d.ts +16 -0
  66. package/dist/src/generated/waterx_prediction/deps/sui/vec_set.js +19 -0
  67. package/dist/src/generated/waterx_prediction/events.d.ts +19 -0
  68. package/dist/src/generated/waterx_prediction/events.js +99 -0
  69. package/dist/src/generated/waterx_prediction/global_config.d.ts +68 -0
  70. package/dist/src/generated/waterx_prediction/global_config.js +83 -0
  71. package/dist/src/generated/waterx_prediction/order.d.ts +170 -0
  72. package/dist/src/generated/waterx_prediction/order.js +237 -0
  73. package/dist/src/generated/waterx_prediction/outcome.d.ts +58 -0
  74. package/dist/src/generated/waterx_prediction/outcome.js +73 -0
  75. package/dist/src/generated/waterx_prediction/position.d.ts +150 -0
  76. package/dist/src/generated/waterx_prediction/position.js +200 -0
  77. package/dist/src/generated/waterx_prediction/view.d.ts +353 -0
  78. package/dist/src/generated/waterx_prediction/view.js +426 -0
  79. package/dist/src/generated/waterx_prediction/waterx_prediction.d.ts +1520 -0
  80. package/dist/src/generated/waterx_prediction/waterx_prediction.js +1550 -0
  81. package/dist/src/index.d.ts +22 -0
  82. package/dist/src/index.js +17 -0
  83. package/dist/src/prediction.d.ts +81 -0
  84. package/dist/src/prediction.js +220 -0
  85. package/dist/src/types.d.ts +81 -0
  86. package/dist/src/types.js +1 -0
  87. package/dist/src/user/account.d.ts +2 -0
  88. package/dist/src/user/account.js +1 -0
  89. package/dist/src/user/admin.d.ts +4 -0
  90. package/dist/src/user/admin.js +2 -0
  91. package/dist/src/user/index.d.ts +4 -0
  92. package/dist/src/user/index.js +2 -0
  93. package/dist/src/user/keeper.d.ts +2 -0
  94. package/dist/src/user/keeper.js +1 -0
  95. package/dist/src/user/order.d.ts +2 -0
  96. package/dist/src/user/order.js +1 -0
  97. package/dist/src/user/position.d.ts +2 -0
  98. package/dist/src/user/position.js +1 -0
  99. package/dist/src/utils/bcs.d.ts +1 -0
  100. package/dist/src/utils/bcs.js +1 -0
  101. package/dist/src/utils/index.d.ts +1 -0
  102. package/dist/src/utils/index.js +1 -0
  103. package/dist/src/utils.d.ts +29 -0
  104. package/dist/src/utils.js +170 -0
  105. package/package.json +62 -0
@@ -0,0 +1,60 @@
1
+ import type { Signer } from "@mysten/sui/cryptography";
2
+ import type { SuiClientTypes } from "@mysten/sui/client";
3
+ import { SuiGrpcClient } from "@mysten/sui/grpc";
4
+ import type { Transaction } from "@mysten/sui/transactions";
5
+ import { type Network, type TestnetSettlementAsset } from "./constants.ts";
6
+ export interface PredictConfig {
7
+ network: Network;
8
+ grpcUrl?: string;
9
+ /** waterx_prediction package ID. */
10
+ packageId: string;
11
+ /** bucket_v2_framework package ID for AccountRequest constructors. */
12
+ bucketFrameworkPackageId: string;
13
+ /** waterx_account package ID for account helpers. */
14
+ waterxAccountPackageId: string;
15
+ /** Shared waterx_prediction::global_config::GlobalConfig object ID. */
16
+ globalConfig?: string;
17
+ /** Shared waterx_prediction::waterx_prediction::MarketRegistry<T> object ID. */
18
+ marketRegistry?: string;
19
+ /** Shared waterx_account::account::AccountRegistry object ID. */
20
+ accountRegistry?: string;
21
+ /** Default settlement coin type used by prediction registry calls. */
22
+ settlementCoinType: string;
23
+ }
24
+ export interface TestnetConfigParams {
25
+ grpcUrl?: string;
26
+ settlement?: TestnetSettlementAsset;
27
+ packageId?: string;
28
+ bucketFrameworkPackageId?: string;
29
+ waterxAccountPackageId?: string;
30
+ globalConfig?: string;
31
+ marketRegistry?: string;
32
+ accountRegistry?: string;
33
+ settlementCoinType?: string;
34
+ }
35
+ export declare function createTestnetConfig(params?: TestnetConfigParams): PredictConfig;
36
+ export declare class PredictClient {
37
+ readonly grpcClient: SuiGrpcClient;
38
+ readonly config: PredictConfig;
39
+ constructor(config: PredictConfig);
40
+ static testnet(params?: TestnetConfigParams): PredictClient;
41
+ getObject(objectId: string): Promise<SuiClientTypes.GetObjectResponse<{}>>;
42
+ getObjects(objectIds: string[]): Promise<SuiClientTypes.GetObjectsResponse<{}>>;
43
+ listOwnedObjects(owner: string): Promise<SuiClientTypes.ListOwnedObjectsResponse<{}>>;
44
+ listCoins(params: {
45
+ owner: string;
46
+ coinType?: string;
47
+ }): Promise<SuiClientTypes.ListCoinsResponse>;
48
+ waitForTransaction(digest: string): Promise<SuiClientTypes.TransactionResult<{}>>;
49
+ simulate(tx: Transaction): Promise<SuiClientTypes.SimulateTransactionResult<{
50
+ commandResults: true;
51
+ }>>;
52
+ signAndExecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(params: {
53
+ signer: {
54
+ toSuiAddress: () => string;
55
+ } & Signer;
56
+ transaction: Transaction | Uint8Array;
57
+ additionalSignatures?: string[];
58
+ include?: Include & SuiClientTypes.TransactionInclude;
59
+ }): Promise<SuiClientTypes.TransactionResult<Include & SuiClientTypes.TransactionInclude>>;
60
+ }
@@ -0,0 +1,59 @@
1
+ import { SuiGrpcClient } from "@mysten/sui/grpc";
2
+ import { TESTNET_MARKET_REGISTRIES, TESTNET_OBJECTS, TESTNET_PACKAGE_IDS, TESTNET_SETTLEMENT_COIN_TYPES, } from "./constants.js";
3
+ const GRPC_URLS = {
4
+ MAINNET: "https://fullnode.mainnet.sui.io:443",
5
+ TESTNET: "https://fullnode.testnet.sui.io:443",
6
+ DEVNET: "https://fullnode.devnet.sui.io:443",
7
+ };
8
+ export function createTestnetConfig(params = {}) {
9
+ const settlement = params.settlement ?? "USD";
10
+ return {
11
+ network: "TESTNET",
12
+ grpcUrl: params.grpcUrl,
13
+ packageId: params.packageId ?? TESTNET_PACKAGE_IDS.WATERX_PREDICTION,
14
+ bucketFrameworkPackageId: params.bucketFrameworkPackageId ?? TESTNET_PACKAGE_IDS.BUCKET_FRAMEWORK,
15
+ waterxAccountPackageId: params.waterxAccountPackageId ?? TESTNET_PACKAGE_IDS.WATERX_ACCOUNT,
16
+ globalConfig: params.globalConfig ?? TESTNET_OBJECTS.GLOBAL_CONFIG,
17
+ marketRegistry: params.marketRegistry ?? TESTNET_MARKET_REGISTRIES[settlement],
18
+ accountRegistry: params.accountRegistry ?? TESTNET_OBJECTS.ACCOUNT_REGISTRY,
19
+ settlementCoinType: params.settlementCoinType ?? TESTNET_SETTLEMENT_COIN_TYPES[settlement],
20
+ };
21
+ }
22
+ export class PredictClient {
23
+ grpcClient;
24
+ config;
25
+ constructor(config) {
26
+ this.config = config;
27
+ const network = config.network.toLowerCase();
28
+ const baseUrl = config.grpcUrl ??
29
+ (config.network === "LOCALNET" ? "http://127.0.0.1:9000" : GRPC_URLS[config.network]);
30
+ this.grpcClient = new SuiGrpcClient({ baseUrl, network });
31
+ }
32
+ static testnet(params = {}) {
33
+ return new PredictClient(createTestnetConfig(params));
34
+ }
35
+ getObject(objectId) {
36
+ return this.grpcClient.getObject({ objectId });
37
+ }
38
+ getObjects(objectIds) {
39
+ return this.grpcClient.getObjects({ objectIds });
40
+ }
41
+ listOwnedObjects(owner) {
42
+ return this.grpcClient.listOwnedObjects({ owner });
43
+ }
44
+ listCoins(params) {
45
+ return this.grpcClient.listCoins(params);
46
+ }
47
+ waitForTransaction(digest) {
48
+ return this.grpcClient.waitForTransaction({ digest });
49
+ }
50
+ async simulate(tx) {
51
+ return this.grpcClient.simulateTransaction({
52
+ transaction: tx,
53
+ include: { commandResults: true },
54
+ });
55
+ }
56
+ async signAndExecuteTransaction(params) {
57
+ return this.grpcClient.signAndExecuteTransaction(params);
58
+ }
59
+ }
@@ -0,0 +1,61 @@
1
+ export type Network = "MAINNET" | "TESTNET" | "DEVNET" | "LOCALNET";
2
+ export declare const CLOCK_OBJECT_ID = "0x6";
3
+ /**
4
+ * Testnet deployment snapshot from WaterXProtocol/waterx-config.
5
+ */
6
+ export declare const WATERX_CONFIG_SOURCE = "https://github.com/WaterXProtocol/waterx-config";
7
+ export declare const TESTNET_CHAIN_ID = "4c78adac";
8
+ export declare const TESTNET_PACKAGE_IDS: {
9
+ readonly BUCKET_FRAMEWORK: "0x0cdfc09284014fd36bbb19da8ab1c60056ca207d4c866e78dc01ca8e51dac790";
10
+ readonly WATERX_PREDICTION: "0xcd9385ff6414afeefb994a646af5c7451c5f88ab4c751f828453fbddb3d2f111";
11
+ readonly WATERX_ACCOUNT: "0x2d9b1eb3958fad8ff619d30d959351ecce851fcea231fa362b36d52c76b339b5";
12
+ readonly MOCK_USDC: "0x7ccd477e884ec74f960b23a8b34b7d87999e4d7ee0dde738a0c25f46200f201a";
13
+ };
14
+ export declare const TESTNET_OBJECTS: {
15
+ readonly ADMIN_CAP: "0x3afca689df306babe5ac83651268276989222fe47ffc5084f4df53a0b08421bf";
16
+ readonly GLOBAL_CONFIG: "0x6d3489019a0943f9015765826c732a3ba598ea1906f263d894ba5d6fad6346c1";
17
+ readonly ACCOUNT_REGISTRY: "0xde28a18a1cecb0486d77ef371b08695029e183bc6910455fbe2c5cb463cb0861";
18
+ readonly MARKET_REGISTRY_USD: "0x8bb484a7e8ee2a85c88265906bde08ac2897b4e34bbd2b9d4e7dacc39456c772";
19
+ };
20
+ export declare const TESTNET_MARKET_REGISTRIES: {
21
+ readonly USD: "0x8bb484a7e8ee2a85c88265906bde08ac2897b4e34bbd2b9d4e7dacc39456c772";
22
+ };
23
+ export declare const TESTNET_SETTLEMENT_COIN_TYPES: {
24
+ readonly USD: "0x3d6fd5e79c5134f94523f5d6d24a96ecf9f9af35bdbf9e6af87f5a6dbb032efe::usd::USD";
25
+ };
26
+ export type TestnetSettlementAsset = keyof typeof TESTNET_SETTLEMENT_COIN_TYPES;
27
+ export declare const TESTNET_TYPES: {
28
+ readonly USD: "0x3d6fd5e79c5134f94523f5d6d24a96ecf9f9af35bdbf9e6af87f5a6dbb032efe::usd::USD";
29
+ readonly MOCK_USDC: "0x7ccd477e884ec74f960b23a8b34b7d87999e4d7ee0dde738a0c25f46200f201a::mock_usdc::MOCK_USDC";
30
+ /** @deprecated Prediction testnet settlement uses `TESTNET_TYPES.USD`. */
31
+ readonly USDC: "0x3d6fd5e79c5134f94523f5d6d24a96ecf9f9af35bdbf9e6af87f5a6dbb032efe::usd::USD";
32
+ readonly SUI: "0x2::sui::SUI";
33
+ };
34
+ export declare const PREDICTION_PERM_PLACE_ORDER: number;
35
+ export declare const PREDICTION_PERM_CANCEL_ORDER: number;
36
+ export declare const PREDICTION_PERM_CLAIM: number;
37
+ export declare const PREDICTION_PERM_REQUEST_CLOSE: number;
38
+ export declare const PREDICTION_PERM_ALL: number;
39
+ export declare const ACCOUNT_PERM_WITHDRAW: number;
40
+ export declare const ACCOUNT_PERM_MANAGE_DELEGATES: number;
41
+ export declare const ACCOUNT_PERM_RECEIVE: number;
42
+ export declare const ACCOUNT_PERM_ALL = 4294967295;
43
+ export declare const PREDICTION_ERROR_CODES: {
44
+ readonly EBadStatus: 1;
45
+ readonly EMarketNotResolved: 3;
46
+ readonly EAlreadyResolved: 4;
47
+ readonly EBadPriceCap: 5;
48
+ readonly EFillExceedsMax: 6;
49
+ readonly EFillBelowMin: 7;
50
+ readonly EBadExpiry: 8;
51
+ readonly EBadPayment: 9;
52
+ readonly EMarketPaused: 10;
53
+ readonly EBelowMinReserve: 11;
54
+ readonly EMarketAlreadyResolved: 12;
55
+ readonly ECloseProceedsBelowMin: 13;
56
+ readonly EUnauthorized: 14;
57
+ readonly ENotAccountPosition: 16;
58
+ readonly EOrderInCooldown: 17;
59
+ readonly EOrderExpired: 18;
60
+ readonly EOrderNotExpired: 19;
61
+ };
@@ -0,0 +1,62 @@
1
+ export const CLOCK_OBJECT_ID = "0x6";
2
+ /**
3
+ * Testnet deployment snapshot from WaterXProtocol/waterx-config.
4
+ */
5
+ export const WATERX_CONFIG_SOURCE = "https://github.com/WaterXProtocol/waterx-config";
6
+ export const TESTNET_CHAIN_ID = "4c78adac";
7
+ export const TESTNET_PACKAGE_IDS = {
8
+ BUCKET_FRAMEWORK: "0x0cdfc09284014fd36bbb19da8ab1c60056ca207d4c866e78dc01ca8e51dac790",
9
+ WATERX_PREDICTION: "0xcd9385ff6414afeefb994a646af5c7451c5f88ab4c751f828453fbddb3d2f111",
10
+ WATERX_ACCOUNT: "0x2d9b1eb3958fad8ff619d30d959351ecce851fcea231fa362b36d52c76b339b5",
11
+ MOCK_USDC: "0x7ccd477e884ec74f960b23a8b34b7d87999e4d7ee0dde738a0c25f46200f201a",
12
+ };
13
+ export const TESTNET_OBJECTS = {
14
+ ADMIN_CAP: "0x3afca689df306babe5ac83651268276989222fe47ffc5084f4df53a0b08421bf",
15
+ GLOBAL_CONFIG: "0x6d3489019a0943f9015765826c732a3ba598ea1906f263d894ba5d6fad6346c1",
16
+ ACCOUNT_REGISTRY: "0xde28a18a1cecb0486d77ef371b08695029e183bc6910455fbe2c5cb463cb0861",
17
+ MARKET_REGISTRY_USD: "0x8bb484a7e8ee2a85c88265906bde08ac2897b4e34bbd2b9d4e7dacc39456c772",
18
+ };
19
+ export const TESTNET_MARKET_REGISTRIES = {
20
+ USD: TESTNET_OBJECTS.MARKET_REGISTRY_USD,
21
+ };
22
+ export const TESTNET_SETTLEMENT_COIN_TYPES = {
23
+ USD: "0x3d6fd5e79c5134f94523f5d6d24a96ecf9f9af35bdbf9e6af87f5a6dbb032efe::usd::USD",
24
+ };
25
+ export const TESTNET_TYPES = {
26
+ USD: TESTNET_SETTLEMENT_COIN_TYPES.USD,
27
+ MOCK_USDC: `${TESTNET_PACKAGE_IDS.MOCK_USDC}::mock_usdc::MOCK_USDC`,
28
+ /** @deprecated Prediction testnet settlement uses `TESTNET_TYPES.USD`. */
29
+ USDC: TESTNET_SETTLEMENT_COIN_TYPES.USD,
30
+ SUI: "0x2::sui::SUI",
31
+ };
32
+ export const PREDICTION_PERM_PLACE_ORDER = 1 << 0;
33
+ export const PREDICTION_PERM_CANCEL_ORDER = 1 << 1;
34
+ export const PREDICTION_PERM_CLAIM = 1 << 2;
35
+ export const PREDICTION_PERM_REQUEST_CLOSE = 1 << 3;
36
+ export const PREDICTION_PERM_ALL = PREDICTION_PERM_PLACE_ORDER |
37
+ PREDICTION_PERM_CANCEL_ORDER |
38
+ PREDICTION_PERM_CLAIM |
39
+ PREDICTION_PERM_REQUEST_CLOSE;
40
+ export const ACCOUNT_PERM_WITHDRAW = 1 << 0;
41
+ export const ACCOUNT_PERM_MANAGE_DELEGATES = 1 << 1;
42
+ export const ACCOUNT_PERM_RECEIVE = 1 << 2;
43
+ export const ACCOUNT_PERM_ALL = 0xffffffff;
44
+ export const PREDICTION_ERROR_CODES = {
45
+ EBadStatus: 1,
46
+ EMarketNotResolved: 3,
47
+ EAlreadyResolved: 4,
48
+ EBadPriceCap: 5,
49
+ EFillExceedsMax: 6,
50
+ EFillBelowMin: 7,
51
+ EBadExpiry: 8,
52
+ EBadPayment: 9,
53
+ EMarketPaused: 10,
54
+ EBelowMinReserve: 11,
55
+ EMarketAlreadyResolved: 12,
56
+ ECloseProceedsBelowMin: 13,
57
+ EUnauthorized: 14,
58
+ ENotAccountPosition: 16,
59
+ EOrderInCooldown: 17,
60
+ EOrderExpired: 18,
61
+ EOrderNotExpired: 19,
62
+ };
@@ -0,0 +1,53 @@
1
+ import type { PredictClient } from "./client.ts";
2
+ import type { AccountDataView, CursorView, MarketIdInput, MarketView, OrderView, PositionView, RegistryView } from "./types.ts";
3
+ export interface ViewBaseParams {
4
+ packageId?: string;
5
+ marketRegistry?: string;
6
+ accountRegistry?: string;
7
+ settlementCoinType?: string;
8
+ }
9
+ export declare function getRegistry(client: PredictClient, params?: ViewBaseParams): Promise<RegistryView>;
10
+ export declare function getOrder(client: PredictClient, params: ViewBaseParams & {
11
+ orderId: bigint | number | string;
12
+ }): Promise<OrderView>;
13
+ export declare function getPosition(client: PredictClient, params: ViewBaseParams & {
14
+ positionId: bigint | number | string;
15
+ }): Promise<PositionView>;
16
+ export declare function getMarketById(client: PredictClient, params: ViewBaseParams & {
17
+ marketId: MarketIdInput;
18
+ }): Promise<MarketView>;
19
+ export declare function getMarketByKey(client: PredictClient, params: ViewBaseParams & {
20
+ marketKey: bigint | number | string;
21
+ }): Promise<MarketView>;
22
+ export declare function getOrderCursor(client: PredictClient, params?: ViewBaseParams): Promise<CursorView>;
23
+ export declare function getPositionCursor(client: PredictClient, params?: ViewBaseParams): Promise<CursorView>;
24
+ export declare function getUnresolvedMarketCursor(client: PredictClient, params?: ViewBaseParams): Promise<CursorView>;
25
+ export declare function getResolvedMarketCursor(client: PredictClient, params?: ViewBaseParams): Promise<CursorView>;
26
+ export declare function getAccountData(client: PredictClient, params: ViewBaseParams & {
27
+ accountId: string;
28
+ }): Promise<AccountDataView>;
29
+ export declare function getAccountOrderIds(client: PredictClient, params: ViewBaseParams & {
30
+ accountId: string;
31
+ marketKey: bigint | number | string;
32
+ }): Promise<bigint[]>;
33
+ export declare function getAccountPositionIds(client: PredictClient, params: ViewBaseParams & {
34
+ accountId: string;
35
+ marketKey: bigint | number | string;
36
+ }): Promise<bigint[]>;
37
+ export declare function getAccountOrderIdsByMarketId(client: PredictClient, params: ViewBaseParams & {
38
+ accountId: string;
39
+ marketId: MarketIdInput;
40
+ }): Promise<bigint[]>;
41
+ export declare function getAccountPositionIdsByMarketId(client: PredictClient, params: ViewBaseParams & {
42
+ accountId: string;
43
+ marketId: MarketIdInput;
44
+ }): Promise<bigint[]>;
45
+ export declare function isKeeper(client: PredictClient, params: {
46
+ packageId?: string;
47
+ globalConfig?: string;
48
+ keeper: string;
49
+ }): Promise<boolean>;
50
+ export declare function getKeeperAddresses(client: PredictClient, params?: {
51
+ packageId?: string;
52
+ globalConfig?: string;
53
+ }): Promise<string[]>;
@@ -0,0 +1,187 @@
1
+ import { bcs } from "@mysten/sui/bcs";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ import { AccountDataViewBcs, MarketViewBcs, OrderViewBcs, PositionViewBcs, RegistryViewBcs, mapAccountDataView, mapCursorView, mapMarketView, mapOrderView, mapPositionView, mapRegistryView, } from "./bcs.js";
4
+ import { marketIdArg, resolveAccountRegistry, resolveGlobalConfig, resolveMarketRegistry, resolvePackageId, resolveSettlementCoinType, toBigInt, } from "./utils.js";
5
+ function extractReturnBytes(result, commandIndex = 0, returnIndex = 0) {
6
+ if (result.$kind === "FailedTransaction") {
7
+ const err = result.FailedTransaction.status.error;
8
+ throw new Error(`Simulate transaction failed: ${err?.message ?? JSON.stringify(err)}`);
9
+ }
10
+ const bcsBytes = result.commandResults?.[commandIndex]?.returnValues?.[returnIndex]?.bcs;
11
+ if (bcsBytes)
12
+ return new Uint8Array(bcsBytes);
13
+ const legacy = result.results?.[commandIndex]?.returnValues?.[returnIndex];
14
+ if (legacy)
15
+ return new Uint8Array(legacy[0]);
16
+ throw new Error(`No return value at command[${commandIndex}].returnValues[${returnIndex}]`);
17
+ }
18
+ export async function getRegistry(client, params = {}) {
19
+ const tx = new Transaction();
20
+ tx.moveCall({
21
+ target: `${resolvePackageId(client, params.packageId)}::view::registry`,
22
+ typeArguments: [resolveSettlementCoinType(client, params.settlementCoinType)],
23
+ arguments: [tx.object(resolveMarketRegistry(client, params.marketRegistry))],
24
+ });
25
+ const result = await client.simulate(tx);
26
+ return mapRegistryView(RegistryViewBcs.parse(extractReturnBytes(result)));
27
+ }
28
+ export async function getOrder(client, params) {
29
+ const tx = new Transaction();
30
+ tx.moveCall({
31
+ target: `${resolvePackageId(client, params.packageId)}::view::order`,
32
+ typeArguments: [resolveSettlementCoinType(client, params.settlementCoinType)],
33
+ arguments: [
34
+ tx.object(resolveMarketRegistry(client, params.marketRegistry)),
35
+ tx.pure.u64(toBigInt(params.orderId)),
36
+ ],
37
+ });
38
+ const result = await client.simulate(tx);
39
+ return mapOrderView(OrderViewBcs.parse(extractReturnBytes(result)));
40
+ }
41
+ export async function getPosition(client, params) {
42
+ const tx = new Transaction();
43
+ tx.moveCall({
44
+ target: `${resolvePackageId(client, params.packageId)}::view::position`,
45
+ typeArguments: [resolveSettlementCoinType(client, params.settlementCoinType)],
46
+ arguments: [
47
+ tx.object(resolveMarketRegistry(client, params.marketRegistry)),
48
+ tx.pure.u64(toBigInt(params.positionId)),
49
+ ],
50
+ });
51
+ const result = await client.simulate(tx);
52
+ return mapPositionView(PositionViewBcs.parse(extractReturnBytes(result)));
53
+ }
54
+ export async function getMarketById(client, params) {
55
+ const tx = new Transaction();
56
+ tx.moveCall({
57
+ target: `${resolvePackageId(client, params.packageId)}::view::market_by_id`,
58
+ typeArguments: [resolveSettlementCoinType(client, params.settlementCoinType)],
59
+ arguments: [tx.object(resolveMarketRegistry(client, params.marketRegistry)), marketIdArg(tx, params.marketId)],
60
+ });
61
+ const result = await client.simulate(tx);
62
+ return mapMarketView(MarketViewBcs.parse(extractReturnBytes(result)));
63
+ }
64
+ export async function getMarketByKey(client, params) {
65
+ const tx = new Transaction();
66
+ tx.moveCall({
67
+ target: `${resolvePackageId(client, params.packageId)}::view::market_by_key`,
68
+ typeArguments: [resolveSettlementCoinType(client, params.settlementCoinType)],
69
+ arguments: [
70
+ tx.object(resolveMarketRegistry(client, params.marketRegistry)),
71
+ tx.pure.u64(toBigInt(params.marketKey)),
72
+ ],
73
+ });
74
+ const result = await client.simulate(tx);
75
+ return mapMarketView(MarketViewBcs.parse(extractReturnBytes(result)));
76
+ }
77
+ async function readCursor(client, functionName, params = {}) {
78
+ const tx = new Transaction();
79
+ tx.moveCall({
80
+ target: `${resolvePackageId(client, params.packageId)}::view::${functionName}`,
81
+ typeArguments: [resolveSettlementCoinType(client, params.settlementCoinType)],
82
+ arguments: [tx.object(resolveMarketRegistry(client, params.marketRegistry))],
83
+ });
84
+ const result = await client.simulate(tx);
85
+ return mapCursorView(bcs.u64().parse(extractReturnBytes(result, 0, 0)), bcs.option(bcs.u64()).parse(extractReturnBytes(result, 0, 1)), bcs.option(bcs.u64()).parse(extractReturnBytes(result, 0, 2)));
86
+ }
87
+ export function getOrderCursor(client, params = {}) {
88
+ return readCursor(client, "order_cursor", params);
89
+ }
90
+ export function getPositionCursor(client, params = {}) {
91
+ return readCursor(client, "position_cursor", params);
92
+ }
93
+ export function getUnresolvedMarketCursor(client, params = {}) {
94
+ return readCursor(client, "unresolved_market_cursor", params);
95
+ }
96
+ export function getResolvedMarketCursor(client, params = {}) {
97
+ return readCursor(client, "resolved_market_cursor", params);
98
+ }
99
+ export async function getAccountData(client, params) {
100
+ const tx = new Transaction();
101
+ tx.moveCall({
102
+ target: `${resolvePackageId(client, params.packageId)}::view::account`,
103
+ arguments: [
104
+ tx.object(resolveAccountRegistry(client, params.accountRegistry)),
105
+ tx.pure.id(params.accountId),
106
+ ],
107
+ });
108
+ const result = await client.simulate(tx);
109
+ return mapAccountDataView(AccountDataViewBcs.parse(extractReturnBytes(result)));
110
+ }
111
+ export async function getAccountOrderIds(client, params) {
112
+ const tx = new Transaction();
113
+ tx.moveCall({
114
+ target: `${resolvePackageId(client, params.packageId)}::view::account_order_ids`,
115
+ arguments: [
116
+ tx.object(resolveAccountRegistry(client, params.accountRegistry)),
117
+ tx.pure.id(params.accountId),
118
+ tx.pure.u64(toBigInt(params.marketKey)),
119
+ ],
120
+ });
121
+ const result = await client.simulate(tx);
122
+ return bcs.vector(bcs.u64()).parse(extractReturnBytes(result)).map((v) => BigInt(v));
123
+ }
124
+ export async function getAccountPositionIds(client, params) {
125
+ const tx = new Transaction();
126
+ tx.moveCall({
127
+ target: `${resolvePackageId(client, params.packageId)}::view::account_position_ids`,
128
+ arguments: [
129
+ tx.object(resolveAccountRegistry(client, params.accountRegistry)),
130
+ tx.pure.id(params.accountId),
131
+ tx.pure.u64(toBigInt(params.marketKey)),
132
+ ],
133
+ });
134
+ const result = await client.simulate(tx);
135
+ return bcs.vector(bcs.u64()).parse(extractReturnBytes(result)).map((v) => BigInt(v));
136
+ }
137
+ export async function getAccountOrderIdsByMarketId(client, params) {
138
+ const tx = new Transaction();
139
+ tx.moveCall({
140
+ target: `${resolvePackageId(client, params.packageId)}::view::account_order_ids_by_market_id`,
141
+ typeArguments: [resolveSettlementCoinType(client, params.settlementCoinType)],
142
+ arguments: [
143
+ tx.object(resolveMarketRegistry(client, params.marketRegistry)),
144
+ tx.object(resolveAccountRegistry(client, params.accountRegistry)),
145
+ tx.pure.id(params.accountId),
146
+ marketIdArg(tx, params.marketId),
147
+ ],
148
+ });
149
+ const result = await client.simulate(tx);
150
+ return bcs.vector(bcs.u64()).parse(extractReturnBytes(result)).map((v) => BigInt(v));
151
+ }
152
+ export async function getAccountPositionIdsByMarketId(client, params) {
153
+ const tx = new Transaction();
154
+ tx.moveCall({
155
+ target: `${resolvePackageId(client, params.packageId)}::view::account_position_ids_by_market_id`,
156
+ typeArguments: [resolveSettlementCoinType(client, params.settlementCoinType)],
157
+ arguments: [
158
+ tx.object(resolveMarketRegistry(client, params.marketRegistry)),
159
+ tx.object(resolveAccountRegistry(client, params.accountRegistry)),
160
+ tx.pure.id(params.accountId),
161
+ marketIdArg(tx, params.marketId),
162
+ ],
163
+ });
164
+ const result = await client.simulate(tx);
165
+ return bcs.vector(bcs.u64()).parse(extractReturnBytes(result)).map((v) => BigInt(v));
166
+ }
167
+ export async function isKeeper(client, params) {
168
+ const tx = new Transaction();
169
+ tx.moveCall({
170
+ target: `${resolvePackageId(client, params.packageId)}::global_config::is_keeper`,
171
+ arguments: [
172
+ tx.object(resolveGlobalConfig(client, params.globalConfig)),
173
+ tx.pure.address(params.keeper),
174
+ ],
175
+ });
176
+ const result = await client.simulate(tx);
177
+ return bcs.bool().parse(extractReturnBytes(result));
178
+ }
179
+ export async function getKeeperAddresses(client, params = {}) {
180
+ const tx = new Transaction();
181
+ tx.moveCall({
182
+ target: `${resolvePackageId(client, params.packageId)}::global_config::keeper_addresses`,
183
+ arguments: [tx.object(resolveGlobalConfig(client, params.globalConfig))],
184
+ });
185
+ const result = await client.simulate(tx);
186
+ return bcs.vector(bcs.Address).parse(extractReturnBytes(result));
187
+ }
@@ -0,0 +1,100 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ /** Module for Account Abstraction */
5
+ import { MoveStruct, type RawTransactionArgument } from '../utils/index.ts';
6
+ import { type Transaction } from '@mysten/sui/transactions';
7
+ export declare const ACCOUNT: MoveStruct<any, any>;
8
+ export declare const Account: MoveStruct<any, any>;
9
+ export declare const AccountRequest: MoveStruct<any, any>;
10
+ export interface NewArguments {
11
+ alias: RawTransactionArgument<string | null>;
12
+ }
13
+ export interface NewOptions {
14
+ package?: string;
15
+ arguments: NewArguments | [
16
+ alias: RawTransactionArgument<string | null>
17
+ ];
18
+ }
19
+ /** Public Funs */
20
+ export declare function _new(options: NewOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
21
+ export interface RequestOptions {
22
+ package?: string;
23
+ arguments?: [
24
+ ];
25
+ }
26
+ export declare function request(options?: RequestOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
27
+ export interface RequestWithAccountArguments {
28
+ account: RawTransactionArgument<string>;
29
+ }
30
+ export interface RequestWithAccountOptions {
31
+ package?: string;
32
+ arguments: RequestWithAccountArguments | [
33
+ account: RawTransactionArgument<string>
34
+ ];
35
+ }
36
+ export declare function requestWithAccount(options: RequestWithAccountOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
37
+ export interface ReceiveArguments {
38
+ account: RawTransactionArgument<string>;
39
+ receiving: RawTransactionArgument<string>;
40
+ }
41
+ export interface ReceiveOptions {
42
+ package?: string;
43
+ arguments: ReceiveArguments | [
44
+ account: RawTransactionArgument<string>,
45
+ receiving: RawTransactionArgument<string>
46
+ ];
47
+ typeArguments: [
48
+ string
49
+ ];
50
+ }
51
+ export declare function receive(options: ReceiveOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
52
+ export interface UpdateAliasArguments {
53
+ account: RawTransactionArgument<string>;
54
+ alias: RawTransactionArgument<string>;
55
+ }
56
+ export interface UpdateAliasOptions {
57
+ package?: string;
58
+ arguments: UpdateAliasArguments | [
59
+ account: RawTransactionArgument<string>,
60
+ alias: RawTransactionArgument<string>
61
+ ];
62
+ }
63
+ export declare function updateAlias(options: UpdateAliasOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
64
+ export interface CreateArguments {
65
+ alias: RawTransactionArgument<string | null>;
66
+ }
67
+ export interface CreateOptions {
68
+ package?: string;
69
+ arguments: CreateArguments | [
70
+ alias: RawTransactionArgument<string | null>
71
+ ];
72
+ }
73
+ /** Entry Funs */
74
+ export declare function create(options: CreateOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
75
+ export interface AccountAddressArguments {
76
+ account: RawTransactionArgument<string>;
77
+ }
78
+ export interface AccountAddressOptions {
79
+ package?: string;
80
+ arguments: AccountAddressArguments | [
81
+ account: RawTransactionArgument<string>
82
+ ];
83
+ }
84
+ export declare function accountAddress(options: AccountAddressOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
85
+ export interface RequestAddressArguments {
86
+ req: RawTransactionArgument<string>;
87
+ }
88
+ export interface RequestAddressOptions {
89
+ package?: string;
90
+ arguments: RequestAddressArguments | [
91
+ req: RawTransactionArgument<string>
92
+ ];
93
+ }
94
+ export declare function requestAddress(options: RequestAddressOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
95
+ export interface AliasLengthLimitOptions {
96
+ package?: string;
97
+ arguments?: [
98
+ ];
99
+ }
100
+ export declare function aliasLengthLimit(options?: AliasLengthLimitOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;