aftermath-ts-sdk 1.3.22 → 1.3.23-perps.1

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 (128) hide show
  1. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts +3 -0
  2. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts.map +1 -1
  3. package/dist/general/apiHelpers/transactionsApiHelpers.js +12 -0
  4. package/dist/general/providers/aftermath.d.ts +0 -5
  5. package/dist/general/providers/aftermath.d.ts.map +1 -1
  6. package/dist/general/providers/aftermath.js +1 -6
  7. package/dist/general/providers/aftermathApi.d.ts +0 -10
  8. package/dist/general/providers/aftermathApi.d.ts.map +1 -1
  9. package/dist/general/providers/aftermathApi.js +0 -10
  10. package/dist/general/types/configTypes.d.ts +0 -10
  11. package/dist/general/types/configTypes.d.ts.map +1 -1
  12. package/dist/general/types/generalTypes.d.ts +4 -0
  13. package/dist/general/types/generalTypes.d.ts.map +1 -1
  14. package/dist/general/types/moveErrorsInterface.d.ts +1 -1
  15. package/dist/general/types/moveErrorsInterface.d.ts.map +1 -1
  16. package/dist/general/utils/caller.d.ts +17 -2
  17. package/dist/general/utils/caller.d.ts.map +1 -1
  18. package/dist/general/utils/caller.js +35 -2
  19. package/dist/general/utils/casting.d.ts +4 -5
  20. package/dist/general/utils/casting.d.ts.map +1 -1
  21. package/dist/general/utils/casting.js +4 -5
  22. package/dist/general/utils/helpers.d.ts +1 -0
  23. package/dist/general/utils/helpers.d.ts.map +1 -1
  24. package/dist/general/utils/helpers.js +35 -6
  25. package/dist/general/wallet/wallet.d.ts +1 -6
  26. package/dist/general/wallet/wallet.d.ts.map +1 -1
  27. package/dist/general/wallet/wallet.js +5 -19
  28. package/dist/packages/coin/coin.d.ts +1 -1
  29. package/dist/packages/coin/coin.d.ts.map +1 -1
  30. package/dist/packages/coin/coin.js +3 -1
  31. package/dist/packages/farms/api/farmsApi.d.ts +3 -0
  32. package/dist/packages/farms/api/farmsApi.d.ts.map +1 -1
  33. package/dist/packages/farms/api/farmsApi.js +3 -0
  34. package/dist/packages/farms/farms.d.ts +1 -1
  35. package/dist/packages/farms/farms.d.ts.map +1 -1
  36. package/dist/packages/farms/farms.js +2 -3
  37. package/dist/packages/farms/farmsStakedPosition.d.ts +1 -1
  38. package/dist/packages/farms/farmsStakedPosition.d.ts.map +1 -1
  39. package/dist/packages/farms/farmsStakingPool.d.ts +1 -1
  40. package/dist/packages/farms/farmsStakingPool.d.ts.map +1 -1
  41. package/dist/packages/faucet/api/faucetApi.d.ts +9 -17
  42. package/dist/packages/faucet/api/faucetApi.d.ts.map +1 -1
  43. package/dist/packages/faucet/api/faucetApi.js +44 -49
  44. package/dist/packages/faucet/api/faucetApiCasting.d.ts.map +1 -1
  45. package/dist/packages/faucet/api/faucetApiCasting.js +8 -5
  46. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts +1 -4
  47. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts.map +1 -1
  48. package/dist/packages/faucet/faucet.d.ts +1 -1
  49. package/dist/packages/faucet/faucet.d.ts.map +1 -1
  50. package/dist/packages/faucet/faucet.js +1 -1
  51. package/dist/packages/faucet/faucetTypes.d.ts +2 -3
  52. package/dist/packages/faucet/faucetTypes.d.ts.map +1 -1
  53. package/dist/packages/multisig/multisig.d.ts +1 -1
  54. package/dist/packages/multisig/multisig.d.ts.map +1 -1
  55. package/dist/packages/nftAmm/nftAmm.d.ts +1 -1
  56. package/dist/packages/nftAmm/nftAmm.d.ts.map +1 -1
  57. package/dist/packages/perpetuals/api/perpetualsApi.d.ts +11 -203
  58. package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +1 -1
  59. package/dist/packages/perpetuals/api/perpetualsApi.js +924 -615
  60. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +10 -21
  61. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +1 -1
  62. package/dist/packages/perpetuals/api/perpetualsApiCasting.js +243 -221
  63. package/dist/packages/perpetuals/index.d.ts +1 -0
  64. package/dist/packages/perpetuals/index.d.ts.map +1 -1
  65. package/dist/packages/perpetuals/index.js +1 -0
  66. package/dist/packages/perpetuals/perpetuals.d.ts +83 -14
  67. package/dist/packages/perpetuals/perpetuals.d.ts.map +1 -1
  68. package/dist/packages/perpetuals/perpetuals.js +158 -59
  69. package/dist/packages/perpetuals/perpetualsAccount.d.ts +158 -86
  70. package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +1 -1
  71. package/dist/packages/perpetuals/perpetualsAccount.js +481 -141
  72. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +82 -149
  73. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +1 -1
  74. package/dist/packages/perpetuals/perpetualsMarket.d.ts +55 -20
  75. package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +1 -1
  76. package/dist/packages/perpetuals/perpetualsMarket.js +110 -55
  77. package/dist/packages/perpetuals/perpetualsTypes.d.ts +586 -280
  78. package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +1 -1
  79. package/dist/packages/perpetuals/perpetualsTypes.js +17 -81
  80. package/dist/packages/perpetuals/perpetualsVault.d.ts +109 -0
  81. package/dist/packages/perpetuals/perpetualsVault.d.ts.map +1 -0
  82. package/dist/packages/perpetuals/perpetualsVault.js +290 -0
  83. package/dist/packages/pools/pool.d.ts +1 -1
  84. package/dist/packages/pools/pool.d.ts.map +1 -1
  85. package/dist/packages/pools/pools.d.ts +1 -1
  86. package/dist/packages/pools/pools.d.ts.map +1 -1
  87. package/dist/packages/referralVault/referralVault.d.ts +1 -1
  88. package/dist/packages/referralVault/referralVault.d.ts.map +1 -1
  89. package/dist/packages/router/api/routerApi.d.ts +1 -7
  90. package/dist/packages/router/api/routerApi.d.ts.map +1 -1
  91. package/dist/packages/router/api/routerApi.js +6 -43
  92. package/dist/packages/staking/api/stakingApi.d.ts.map +1 -1
  93. package/dist/packages/staking/staking.d.ts +1 -1
  94. package/dist/packages/staking/staking.d.ts.map +1 -1
  95. package/dist/packages/sui/api/suiApi.d.ts +13 -0
  96. package/dist/packages/sui/api/suiApi.d.ts.map +1 -1
  97. package/dist/packages/sui/api/suiApi.js +13 -0
  98. package/dist/packages/sui/sui.d.ts +1 -6
  99. package/dist/packages/sui/sui.d.ts.map +1 -1
  100. package/dist/packages/sui/sui.js +1 -15
  101. package/dist/packages/suiFrens/stakedSuiFren.d.ts +1 -1
  102. package/dist/packages/suiFrens/stakedSuiFren.d.ts.map +1 -1
  103. package/dist/packages/suiFrens/suiFren.d.ts +1 -1
  104. package/dist/packages/suiFrens/suiFren.d.ts.map +1 -1
  105. package/dist/packages/suiFrens/suiFrens.d.ts +1 -1
  106. package/dist/packages/suiFrens/suiFrens.d.ts.map +1 -1
  107. package/dist/types.d.ts +0 -1
  108. package/dist/types.d.ts.map +1 -1
  109. package/dist/types.js +0 -1
  110. package/package.json +1 -1
  111. package/dist/packages/oracle/api/oracleApi.d.ts +0 -21
  112. package/dist/packages/oracle/api/oracleApi.d.ts.map +0 -1
  113. package/dist/packages/oracle/api/oracleApi.js +0 -76
  114. package/dist/packages/oracle/api/oracleApiCasting.d.ts +0 -6
  115. package/dist/packages/oracle/api/oracleApiCasting.d.ts.map +0 -1
  116. package/dist/packages/oracle/api/oracleApiCasting.js +0 -25
  117. package/dist/packages/oracle/oracle.d.ts +0 -15
  118. package/dist/packages/oracle/oracle.d.ts.map +0 -1
  119. package/dist/packages/oracle/oracle.js +0 -46
  120. package/dist/packages/oracle/oracleCastingTypes.d.ts +0 -11
  121. package/dist/packages/oracle/oracleCastingTypes.d.ts.map +0 -1
  122. package/dist/packages/oracle/oracleCastingTypes.js +0 -2
  123. package/dist/packages/oracle/oracleTypes.d.ts +0 -10
  124. package/dist/packages/oracle/oracleTypes.d.ts.map +0 -1
  125. package/dist/packages/oracle/oracleTypes.js +0 -2
  126. package/dist/packages/userData/api/userDataApi.d.ts +0 -6
  127. package/dist/packages/userData/api/userDataApi.d.ts.map +0 -1
  128. package/dist/packages/userData/api/userDataApi.js +0 -12
@@ -1,11 +1,18 @@
1
1
  import { Caller } from "../../general/utils/caller";
2
- import { ApiPerpetualsCreateAccountBody, PerpetualsMarketId, ApiPerpetualsAccountsBody, PerpetualsOrderSide, CoinType, PerpetualsOrderId, FilledTakerOrderEvent, PerpetualsOrderPrice, Timestamp, ApiPerpetualsHistoricalMarketDataResponse, PerpetualsAccountCap, IFixed, CallerConfig } from "../../types";
2
+ import { PerpetualsMarketId, ApiPerpetualsOwnedAccountCapsBody, PerpetualsOrderSide, CoinType, PerpetualsOrderId, FilledTakerOrderEvent, Timestamp, ApiPerpetualsHistoricalMarketDataResponse, PerpetualsAccountCap, PerpetualsAccountId, PerpetualsAccountObject, CallerConfig, SuiAddress, ObjectId, ApiPerpetualsMarkets24hrStatsResponse, ApiPerpetualsAccountCapsBody, Percentage, Balance, PerpetualsVaultCap, PerpetualsVaultWithdrawRequest, PerpetualsVaultCapExtended, PerpetualsOrderPrice, ApiTransactionResponse } from "../../types";
3
3
  import { PerpetualsMarket } from "./perpetualsMarket";
4
4
  import { PerpetualsAccount } from "./perpetualsAccount";
5
5
  import { PerpetualsOrderUtils } from "./utils";
6
+ import { AftermathApi } from "../../general/providers";
7
+ import { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
8
+ import { PerpetualsVault } from "./perpetualsVault";
6
9
  export declare class Perpetuals extends Caller {
10
+ readonly Provider?: AftermathApi | undefined;
7
11
  static readonly OrderUtils: typeof PerpetualsOrderUtils;
8
- constructor(config?: CallerConfig);
12
+ static readonly constants: {
13
+ stopOrderGasCostSUI: bigint;
14
+ };
15
+ constructor(config?: CallerConfig, Provider?: AftermathApi | undefined);
9
16
  getAllMarkets(inputs: {
10
17
  collateralCoinType: CoinType;
11
18
  }): Promise<PerpetualsMarket[]>;
@@ -17,42 +24,104 @@ export declare class Perpetuals extends Caller {
17
24
  marketIds: PerpetualsMarketId[];
18
25
  collateralCoinType: CoinType;
19
26
  }): Promise<PerpetualsMarket[]>;
27
+ getAllVaults(): Promise<PerpetualsVault[]>;
28
+ getVault(inputs: {
29
+ marketId: ObjectId;
30
+ }): Promise<PerpetualsVault>;
31
+ getVaults(inputs: {
32
+ vaultIds: ObjectId[];
33
+ }): Promise<PerpetualsVault[]>;
20
34
  getAccount(inputs: {
21
- accountCap: PerpetualsAccountCap;
35
+ accountCap: PerpetualsAccountCap | PerpetualsVaultCapExtended;
36
+ marketIds?: PerpetualsMarketId[];
22
37
  }): Promise<PerpetualsAccount>;
23
- getUserAccountCaps(inputs: ApiPerpetualsAccountsBody & {
38
+ getAccounts(inputs: {
39
+ accountCaps: (PerpetualsAccountCap | PerpetualsVaultCapExtended)[];
40
+ marketIds?: PerpetualsMarketId[];
41
+ }): Promise<PerpetualsAccount[]>;
42
+ getAccountObjects(inputs: {
43
+ accountIds: PerpetualsAccountId[];
24
44
  collateralCoinType: CoinType;
45
+ marketIds?: PerpetualsMarketId[];
46
+ }): Promise<PerpetualsAccountObject[]>;
47
+ getOwnedAccountCaps(inputs: ApiPerpetualsOwnedAccountCapsBody & {
48
+ collateralCoinTypes?: CoinType[];
25
49
  }): Promise<PerpetualsAccountCap[]>;
50
+ getOwnedVaultCaps(inputs: ApiPerpetualsOwnedAccountCapsBody): Promise<PerpetualsVaultCap[]>;
51
+ getOwnedWithdrawRequests(inputs: {
52
+ walletAddress: SuiAddress;
53
+ }): Promise<PerpetualsVaultWithdrawRequest[]>;
54
+ getAccountCaps(inputs: ApiPerpetualsAccountCapsBody): Promise<PerpetualsAccountCap[]>;
26
55
  getMarketHistoricalData(inputs: {
27
- collateralCoinType: CoinType;
28
56
  marketId: PerpetualsMarketId;
29
57
  fromTimestamp: Timestamp;
30
58
  toTimestamp: Timestamp;
31
59
  intervalMs: number;
32
60
  }): Promise<ApiPerpetualsHistoricalMarketDataResponse>;
33
- getCreateAccountTx(inputs: ApiPerpetualsCreateAccountBody): Promise<import("@mysten/sui/transactions").Transaction>;
61
+ getMarkets24hrStats(inputs: {
62
+ marketIds: PerpetualsMarketId[];
63
+ }): Promise<ApiPerpetualsMarkets24hrStatsResponse>;
64
+ getPrices(inputs: {
65
+ marketIds: ObjectId[];
66
+ }): Promise<{
67
+ basePrice: number;
68
+ collateralPrice: number;
69
+ }[]>;
70
+ getLpCoinPrices(inputs: {
71
+ vaultIds: ObjectId[];
72
+ }): Promise<number[]>;
73
+ getCreateAccountTx(inputs: {
74
+ walletAddress: SuiAddress;
75
+ collateralCoinType: CoinType;
76
+ tx?: Transaction;
77
+ }): Promise<Omit<ApiTransactionResponse, "txKind"> & {
78
+ tx: Transaction;
79
+ }>;
80
+ getCreateVaultTx(inputs: {
81
+ walletAddress: SuiAddress;
82
+ collateralCoinType: CoinType;
83
+ lockPeriodMs: number;
84
+ ownerFeePercentage: Percentage;
85
+ forceWithdrawDelayMs: number;
86
+ lpCoinMetadata: {
87
+ symbol: string;
88
+ description: string;
89
+ name: string;
90
+ iconUrl?: string;
91
+ };
92
+ tx?: Transaction;
93
+ } & ({
94
+ initialDepositAmount?: Balance;
95
+ } | {
96
+ initialDepositCoinArg: TransactionObjectArgument;
97
+ })): Promise<Omit<ApiTransactionResponse, "txKind"> & {
98
+ tx: Transaction;
99
+ }>;
34
100
  static positionSide(inputs: {
35
- baseAssetAmount: IFixed;
101
+ baseAssetAmount: number;
36
102
  }): PerpetualsOrderSide;
37
- static orderPrice(inputs: {
103
+ static orderPriceFromEvent(inputs: {
38
104
  orderEvent: FilledTakerOrderEvent;
39
105
  }): number;
106
+ static orderPriceFromOrderId(inputs: {
107
+ orderId: PerpetualsOrderId;
108
+ }): number;
40
109
  static priceToOrderPrice: (inputs: {
41
110
  price: number;
42
- lotSize: number | bigint;
43
- tickSize: number | bigint;
44
111
  }) => PerpetualsOrderPrice;
45
112
  static orderPriceToPrice: (inputs: {
46
113
  orderPrice: PerpetualsOrderPrice;
47
- lotSize: number | bigint;
48
- tickSize: number | bigint;
49
114
  }) => number;
50
115
  static lotOrTickSizeToNumber(lotOrTickSize: bigint): number;
51
116
  static lotOrTickSizeToBigInt(lotOrTickSize: number): bigint;
52
117
  static orderIdToSide: (orderId: PerpetualsOrderId) => PerpetualsOrderSide;
118
+ static eventTypeForCollateral: (inputs: {
119
+ eventType: string;
120
+ collateralCoinType: CoinType;
121
+ }) => string;
53
122
  static calcEntryPrice(inputs: {
54
- baseAssetAmount: IFixed;
55
- quoteAssetNotionalAmount: IFixed;
123
+ baseAssetAmount: number;
124
+ quoteAssetNotionalAmount: number;
56
125
  }): number;
57
126
  }
58
127
  //# sourceMappingURL=perpetuals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"perpetuals.d.ts","sourceRoot":"","sources":["../../../src/packages/perpetuals/perpetuals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EACN,8BAA8B,EAM9B,kBAAkB,EAClB,yBAAyB,EAEzB,mBAAmB,EAEnB,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,EAET,yCAAyC,EACzC,oBAAoB,EAGpB,MAAM,EAEN,YAAY,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,qBAAa,UAAW,SAAQ,MAAM;IAKrC,gBAAuB,UAAU,8BAAwB;gBAM7C,MAAM,CAAC,EAAE,YAAY;IAQpB,aAAa,CAAC,MAAM,EAAE;QAClC,kBAAkB,EAAE,QAAQ,CAAC;KAC7B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAUlB,SAAS,CAAC,MAAM,EAAE;QAC9B,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,kBAAkB,EAAE,QAAQ,CAAC;KAC7B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOhB,UAAU,CAAC,MAAM,EAAE;QAC/B,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAChC,kBAAkB,EAAE,QAAQ,CAAC;KAC7B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAYlB,UAAU,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,oBAAoB,CAAC;KACjC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQjB,kBAAkB,CAC9B,MAAM,EAAE,yBAAyB,GAAG;QACnC,kBAAkB,EAAE,QAAQ,CAAC;KAC7B,GACC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAc3B,uBAAuB,CAAC,MAAM,EAAE;QACtC,kBAAkB,EAAE,QAAQ,CAAC;QAC7B,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,aAAa,EAAE,SAAS,CAAC;QACzB,WAAW,EAAE,SAAS,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACnB;IAiBY,kBAAkB,CAAC,MAAM,EAAE,8BAA8B;WAexD,YAAY,CAAC,MAAM,EAAE;QAClC,eAAe,EAAE,MAAM,CAAC;KACxB,GAAG,mBAAmB;WAQT,UAAU,CAAC,MAAM,EAAE;QAChC,UAAU,EAAE,qBAAqB,CAAC;KAClC,GAAG,MAAM;IAQV,OAAc,iBAAiB,GAAI,QAAQ;QAC1C,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;KAC1B,KAAG,oBAAoB,CAqBtB;IAEF,OAAc,iBAAiB,GAAI,QAAQ;QAC1C,UAAU,EAAE,oBAAoB,CAAC;QACjC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;KAC1B,KAAG,MAAM,CAgBR;WAEY,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;WAIpD,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAIlE,OAAc,aAAa,GAC1B,SAAS,iBAAiB,KACxB,mBAAmB,CAIpB;WAMY,cAAc,CAAC,MAAM,EAAE;QACpC,eAAe,EAAE,MAAM,CAAC;QACxB,wBAAwB,EAAE,MAAM,CAAC;KACjC,GAAG,MAAM;CAWV"}
1
+ {"version":3,"file":"perpetuals.d.ts","sourceRoot":"","sources":["../../../src/packages/perpetuals/perpetuals.ts"],"names":[],"mappings":"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"}
@@ -8,77 +8,190 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var _a;
12
11
  Object.defineProperty(exports, "__esModule", { value: true });
13
12
  exports.Perpetuals = void 0;
14
13
  const caller_1 = require("../../general/utils/caller");
15
14
  const types_1 = require("../../types");
16
15
  const perpetualsMarket_1 = require("./perpetualsMarket");
17
16
  const perpetualsAccount_1 = require("./perpetualsAccount");
18
- const iFixedUtils_1 = require("../../general/utils/iFixedUtils");
19
17
  const fixedUtils_1 = require("../../general/utils/fixedUtils");
20
- const utils_1 = require("../../general/utils");
21
- const utils_2 = require("./utils");
18
+ const utils_1 = require("./utils");
19
+ const perpetualsVault_1 = require("./perpetualsVault");
22
20
  class Perpetuals extends caller_1.Caller {
23
21
  // =========================================================================
24
22
  // Constructor
25
23
  // =========================================================================
26
- constructor(config) {
24
+ constructor(config, Provider) {
27
25
  super(config, "perpetuals");
26
+ this.Provider = Provider;
28
27
  }
29
28
  // =========================================================================
30
29
  // Class Objects
31
30
  // =========================================================================
32
31
  getAllMarkets(inputs) {
33
32
  return __awaiter(this, void 0, void 0, function* () {
34
- const { collateralCoinType } = inputs;
35
- const marketDatas = yield this.fetchApi(`${collateralCoinType}/markets`);
33
+ const marketDatas = yield this.fetchApi("all-markets", inputs);
36
34
  return marketDatas.map((marketData) => new perpetualsMarket_1.PerpetualsMarket(marketData, this.config));
37
35
  });
38
36
  }
39
37
  getMarket(inputs) {
40
38
  return __awaiter(this, void 0, void 0, function* () {
41
- const marketData = yield this.fetchApi(`${inputs.collateralCoinType}/markets/${inputs.marketId}`);
42
- return new perpetualsMarket_1.PerpetualsMarket(marketData, this.config);
39
+ const markets = yield this.getMarkets({
40
+ marketIds: [inputs.marketId],
41
+ collateralCoinType: inputs.collateralCoinType,
42
+ });
43
+ return markets[0];
43
44
  });
44
45
  }
45
46
  getMarkets(inputs) {
46
47
  return __awaiter(this, void 0, void 0, function* () {
47
- const { collateralCoinType } = inputs;
48
- return Promise.all(inputs.marketIds.map((marketId) => this.getMarket({
49
- marketId,
50
- collateralCoinType,
51
- })));
48
+ const marketDatas = yield this.fetchApi("markets", Object.assign(Object.assign({}, inputs), { withOrderbook: false }));
49
+ return marketDatas.map((marketData) =>
50
+ // TODO: make orderbook as input ?
51
+ new perpetualsMarket_1.PerpetualsMarket(marketData.market, this.config));
52
52
  });
53
53
  }
54
+ getAllVaults() {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const vaultObjects = yield this.fetchApi("vaults", {});
57
+ return vaultObjects.map((vaultObject) => new perpetualsVault_1.PerpetualsVault(vaultObject, this.config));
58
+ });
59
+ }
60
+ getVault(inputs) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const vaults = yield this.getVaults({
63
+ vaultIds: [inputs.marketId],
64
+ });
65
+ return vaults[0];
66
+ });
67
+ }
68
+ getVaults(inputs) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ const vaultObjects = yield this.fetchApi("vaults", inputs);
71
+ return vaultObjects.map((vaultObject) => new perpetualsVault_1.PerpetualsVault(vaultObject, this.config));
72
+ });
73
+ }
74
+ // TODO: merge this with `getAccountObjects` as an option ?
54
75
  getAccount(inputs) {
55
76
  return __awaiter(this, void 0, void 0, function* () {
56
- const { accountCap } = inputs;
57
- const account = yield this.fetchApi(`${accountCap.collateralCoinType}/accounts/${accountCap.accountId}`);
58
- return new perpetualsAccount_1.PerpetualsAccount(account, accountCap, this.config);
77
+ const { accountCap, marketIds } = inputs;
78
+ return (yield this.getAccounts({
79
+ accountCaps: [accountCap],
80
+ marketIds,
81
+ }))[0];
82
+ });
83
+ }
84
+ // TODO: make account fetching get positions and account cap data all at once ?
85
+ getAccounts(inputs) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ const { accountCaps, marketIds } = inputs;
88
+ if (accountCaps.length <= 0)
89
+ return [];
90
+ // TODO: handle different collateral coin types
91
+ const accountObjects = yield this.getAccountObjects({
92
+ accountIds: accountCaps.map((accountCap) => accountCap.accountId),
93
+ collateralCoinType: accountCaps[0].collateralCoinType,
94
+ marketIds,
95
+ });
96
+ return accountObjects.map((account, index) => new perpetualsAccount_1.PerpetualsAccount(account, accountCaps[index], this.config, this.Provider));
59
97
  });
60
98
  }
61
- getUserAccountCaps(inputs) {
99
+ // TODO: handle different collateral coin types ?
100
+ getAccountObjects(inputs) {
62
101
  return __awaiter(this, void 0, void 0, function* () {
63
- const { collateralCoinType, walletAddress } = inputs;
64
- return this.fetchApi(`${collateralCoinType}/accounts`, {
102
+ const { accountIds, collateralCoinType, marketIds } = inputs;
103
+ if (accountIds.length <= 0)
104
+ return [];
105
+ return this.fetchApi("accounts/positions", {
106
+ accountIds,
107
+ collateralCoinType,
108
+ marketIds,
109
+ });
110
+ });
111
+ }
112
+ getOwnedAccountCaps(inputs) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ const { walletAddress, collateralCoinTypes } = inputs;
115
+ return this.fetchApi("accounts/owned", {
65
116
  walletAddress,
117
+ collateralCoinTypes,
66
118
  });
67
119
  });
68
120
  }
121
+ getOwnedVaultCaps(inputs) {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ return this.fetchApi("vaults/owned-vault-caps", inputs);
124
+ });
125
+ }
126
+ getOwnedWithdrawRequests(inputs) {
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ return this.fetchApi("vaults/owned-withdraw-requests", Object.assign({}, inputs));
129
+ });
130
+ }
131
+ getAccountCaps(inputs) {
132
+ return __awaiter(this, void 0, void 0, function* () {
133
+ return this.fetchApi("accounts", inputs);
134
+ });
135
+ }
69
136
  // =========================================================================
70
137
  // Data
71
138
  // =========================================================================
72
139
  getMarketHistoricalData(inputs) {
73
- const { collateralCoinType, marketId, fromTimestamp, toTimestamp, intervalMs, } = inputs;
74
- return this.fetchApi(`${collateralCoinType}/markets/${marketId}/historical-data/${fromTimestamp}/${toTimestamp}/${intervalMs}`);
140
+ const { marketId, fromTimestamp, toTimestamp, intervalMs } = inputs;
141
+ return this.fetchApi("market/candle-history", {
142
+ marketId,
143
+ fromTimestamp,
144
+ toTimestamp,
145
+ intervalMs,
146
+ });
147
+ }
148
+ getMarkets24hrStats(inputs) {
149
+ return this.fetchApi("markets/24hr-stats", inputs);
150
+ }
151
+ // =========================================================================
152
+ // Prices
153
+ // =========================================================================
154
+ getPrices(inputs) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ if (inputs.marketIds.length <= 0)
157
+ return [];
158
+ return this.fetchApi("markets/prices", inputs);
159
+ });
160
+ }
161
+ getLpCoinPrices(inputs) {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ if (inputs.vaultIds.length <= 0)
164
+ return [];
165
+ return this.fetchApi("vaults/lp-coin-prices", inputs);
166
+ });
75
167
  }
76
168
  // =========================================================================
77
169
  // Transactions
78
170
  // =========================================================================
79
171
  getCreateAccountTx(inputs) {
80
172
  return __awaiter(this, void 0, void 0, function* () {
81
- return this.fetchApiTransaction("transactions/create-account", inputs);
173
+ var _a;
174
+ const { walletAddress, collateralCoinType, tx } = inputs;
175
+ return this.fetchApiTxObject("transactions/create-account", {
176
+ walletAddress,
177
+ collateralCoinType,
178
+ txKind: yield ((_a = this.Provider) === null || _a === void 0 ? void 0 : _a.Transactions().fetchBase64TxKindFromTx({ tx })),
179
+ }, undefined, {
180
+ txKind: true,
181
+ });
182
+ });
183
+ }
184
+ getCreateVaultTx(inputs) {
185
+ return __awaiter(this, void 0, void 0, function* () {
186
+ var _a;
187
+ const { walletAddress, collateralCoinType, tx } = inputs;
188
+ return this.fetchApiTxObject("transactions/create-vault", {
189
+ walletAddress,
190
+ collateralCoinType,
191
+ txKind: yield ((_a = this.Provider) === null || _a === void 0 ? void 0 : _a.Transactions().fetchBase64TxKindFromTx({ tx })),
192
+ }, undefined, {
193
+ txKind: true,
194
+ });
82
195
  });
83
196
  }
84
197
  // =========================================================================
@@ -88,15 +201,19 @@ class Perpetuals extends caller_1.Caller {
88
201
  // Helpers
89
202
  // =========================================================================
90
203
  static positionSide(inputs) {
91
- const baseAmount = iFixedUtils_1.IFixedUtils.numberFromIFixed(inputs.baseAssetAmount);
204
+ const baseAmount = inputs.baseAssetAmount;
92
205
  const isLong = Math.sign(baseAmount);
93
206
  const side = isLong >= 0 ? types_1.PerpetualsOrderSide.Bid : types_1.PerpetualsOrderSide.Ask;
94
207
  return side;
95
208
  }
96
- static orderPrice(inputs) {
209
+ static orderPriceFromEvent(inputs) {
97
210
  const { orderEvent } = inputs;
98
- return (iFixedUtils_1.IFixedUtils.numberFromIFixed(orderEvent.quoteAssetDelta) /
99
- iFixedUtils_1.IFixedUtils.numberFromIFixed(orderEvent.baseAssetDelta));
211
+ return orderEvent.quoteAssetDelta / orderEvent.baseAssetDelta;
212
+ }
213
+ static orderPriceFromOrderId(inputs) {
214
+ const { orderId } = inputs;
215
+ const orderPrice = utils_1.PerpetualsOrderUtils.price(orderId);
216
+ return this.orderPriceToPrice({ orderPrice });
100
217
  }
101
218
  static lotOrTickSizeToNumber(lotOrTickSize) {
102
219
  return Number(lotOrTickSize) / fixedUtils_1.FixedUtils.fixedOneN9;
@@ -109,51 +226,33 @@ class Perpetuals extends caller_1.Caller {
109
226
  // =========================================================================
110
227
  static calcEntryPrice(inputs) {
111
228
  const { baseAssetAmount, quoteAssetNotionalAmount } = inputs;
112
- const denominator = utils_1.Casting.IFixed.numberFromIFixed(baseAssetAmount);
229
+ const denominator = baseAssetAmount;
113
230
  if (!denominator)
114
231
  return 0;
115
- return Math.abs(utils_1.Casting.IFixed.numberFromIFixed(quoteAssetNotionalAmount) /
116
- denominator);
232
+ return Math.abs(quoteAssetNotionalAmount / denominator);
117
233
  }
118
234
  }
119
235
  exports.Perpetuals = Perpetuals;
120
- _a = Perpetuals;
121
236
  // =========================================================================
122
237
  // Constants
123
238
  // =========================================================================
124
- Perpetuals.OrderUtils = utils_2.PerpetualsOrderUtils;
239
+ Perpetuals.OrderUtils = utils_1.PerpetualsOrderUtils;
240
+ Perpetuals.constants = {
241
+ stopOrderGasCostSUI: BigInt(15000000), // 0.15 SUI
242
+ };
125
243
  Perpetuals.priceToOrderPrice = (inputs) => {
126
- const { price, lotSize, tickSize } = inputs;
127
- const priceFixed = fixedUtils_1.FixedUtils.directUncast(price);
128
- // convert f18 to b9 (assuming the former is positive)
129
- const price9 = priceFixed / fixedUtils_1.FixedUtils.fixedOneB9;
130
- const denominator = fixedUtils_1.FixedUtils.fixedOneB9 /
131
- (typeof lotSize === "number"
132
- ? _a.lotOrTickSizeToBigInt(lotSize)
133
- : lotSize);
134
- if (denominator <= BigInt(0))
135
- return BigInt(0);
136
- return (price9 /
137
- (typeof tickSize === "number"
138
- ? _a.lotOrTickSizeToBigInt(tickSize)
139
- : tickSize) /
140
- denominator);
244
+ const { price } = inputs;
245
+ return BigInt(Math.round(price * fixedUtils_1.FixedUtils.fixedOneN9));
141
246
  };
142
247
  Perpetuals.orderPriceToPrice = (inputs) => {
143
- const { orderPrice, lotSize, tickSize } = inputs;
144
- const temp = fixedUtils_1.FixedUtils.fixedOneB9 /
145
- (typeof lotSize === "number"
146
- ? _a.lotOrTickSizeToBigInt(lotSize)
147
- : lotSize);
148
- return fixedUtils_1.FixedUtils.directCast(orderPrice *
149
- (typeof tickSize === "number"
150
- ? _a.lotOrTickSizeToBigInt(tickSize)
151
- : tickSize) *
152
- temp *
153
- fixedUtils_1.FixedUtils.fixedOneB9);
248
+ const { orderPrice } = inputs;
249
+ return Number(orderPrice) / fixedUtils_1.FixedUtils.fixedOneN9;
154
250
  };
155
251
  Perpetuals.orderIdToSide = (orderId) => {
156
- return _a.OrderUtils.isAsk(orderId)
252
+ return Perpetuals.OrderUtils.isAsk(orderId)
157
253
  ? types_1.PerpetualsOrderSide.Ask
158
254
  : types_1.PerpetualsOrderSide.Bid;
159
255
  };
256
+ Perpetuals.eventTypeForCollateral = (inputs) => {
257
+ return `${inputs.eventType}<${inputs.collateralCoinType}>`;
258
+ };