aftermath-ts-sdk 1.2.51-temp.0 → 1.2.52-perps.3

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 (216) hide show
  1. package/README.md +61 -27
  2. package/dist/general/apiHelpers/eventsApiHelpers.d.ts +1 -1
  3. package/dist/general/apiHelpers/eventsApiHelpers.d.ts.map +1 -1
  4. package/dist/general/apiHelpers/eventsApiHelpers.js +4 -1
  5. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts +6 -0
  6. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts.map +1 -1
  7. package/dist/general/apiHelpers/transactionsApiHelpers.js +46 -0
  8. package/dist/general/dynamicGas/dynamicGas.d.ts +34 -0
  9. package/dist/general/dynamicGas/dynamicGas.d.ts.map +1 -1
  10. package/dist/general/dynamicGas/dynamicGas.js +34 -0
  11. package/dist/general/dynamicGas/dynamicGasTypes.d.ts +25 -0
  12. package/dist/general/dynamicGas/dynamicGasTypes.d.ts.map +1 -1
  13. package/dist/general/prices/coinGeckoTypes.d.ts +2 -0
  14. package/dist/general/prices/coinGeckoTypes.d.ts.map +1 -1
  15. package/dist/general/prices/prices.d.ts +73 -0
  16. package/dist/general/prices/prices.d.ts.map +1 -1
  17. package/dist/general/prices/prices.js +73 -0
  18. package/dist/general/providers/aftermath.d.ts +107 -27
  19. package/dist/general/providers/aftermath.d.ts.map +1 -1
  20. package/dist/general/providers/aftermath.js +110 -30
  21. package/dist/general/providers/aftermathApi.d.ts +128 -10
  22. package/dist/general/providers/aftermathApi.d.ts.map +1 -1
  23. package/dist/general/providers/aftermathApi.js +133 -14
  24. package/dist/general/types/castingTypes.d.ts +15 -7
  25. package/dist/general/types/castingTypes.d.ts.map +1 -1
  26. package/dist/general/types/castingTypes.js +6 -0
  27. package/dist/general/types/configTypes.d.ts +14 -9
  28. package/dist/general/types/configTypes.d.ts.map +1 -1
  29. package/dist/general/types/generalTypes.d.ts +229 -7
  30. package/dist/general/types/generalTypes.d.ts.map +1 -1
  31. package/dist/general/types/moveErrorsInterface.d.ts +1 -1
  32. package/dist/general/types/moveErrorsInterface.d.ts.map +1 -1
  33. package/dist/general/types/suiTypes.d.ts +0 -16
  34. package/dist/general/types/suiTypes.d.ts.map +1 -1
  35. package/dist/general/types/suiTypes.js +3 -25
  36. package/dist/general/utils/caller.d.ts +5 -2
  37. package/dist/general/utils/caller.d.ts.map +1 -1
  38. package/dist/general/utils/caller.js +9 -1
  39. package/dist/general/utils/casting.d.ts +156 -7
  40. package/dist/general/utils/casting.d.ts.map +1 -1
  41. package/dist/general/utils/casting.js +159 -20
  42. package/dist/general/utils/fixedUtils.d.ts +89 -2
  43. package/dist/general/utils/fixedUtils.d.ts.map +1 -1
  44. package/dist/general/utils/fixedUtils.js +81 -4
  45. package/dist/general/utils/helpers.d.ts +327 -10
  46. package/dist/general/utils/helpers.d.ts.map +1 -1
  47. package/dist/general/utils/helpers.js +409 -91
  48. package/dist/general/utils/iFixedUtils.d.ts +64 -0
  49. package/dist/general/utils/iFixedUtils.d.ts.map +1 -1
  50. package/dist/general/utils/iFixedUtils.js +64 -0
  51. package/dist/general/wallet/wallet.d.ts +76 -1
  52. package/dist/general/wallet/wallet.d.ts.map +1 -1
  53. package/dist/general/wallet/wallet.js +75 -5
  54. package/dist/packages/auth/auth.d.ts +113 -4
  55. package/dist/packages/auth/auth.d.ts.map +1 -1
  56. package/dist/packages/auth/auth.js +190 -59
  57. package/dist/packages/auth/authTypes.d.ts +66 -0
  58. package/dist/packages/auth/authTypes.d.ts.map +1 -1
  59. package/dist/packages/coin/api/coinApi.d.ts.map +1 -1
  60. package/dist/packages/coin/api/coinApi.js +29 -20
  61. package/dist/packages/coin/coin.d.ts +256 -1
  62. package/dist/packages/coin/coin.d.ts.map +1 -1
  63. package/dist/packages/coin/coin.js +246 -15
  64. package/dist/packages/coin/coinTypes.d.ts +95 -0
  65. package/dist/packages/coin/coinTypes.d.ts.map +1 -1
  66. package/dist/packages/dca/api/dcaApi.d.ts +2 -0
  67. package/dist/packages/dca/api/dcaApi.d.ts.map +1 -1
  68. package/dist/packages/dca/api/dcaApi.js +6 -3
  69. package/dist/packages/dca/dca.d.ts +125 -35
  70. package/dist/packages/dca/dca.d.ts.map +1 -1
  71. package/dist/packages/dca/dca.js +135 -43
  72. package/dist/packages/dca/dcaTypes.d.ts +217 -42
  73. package/dist/packages/dca/dcaTypes.d.ts.map +1 -1
  74. package/dist/packages/farms/api/farmsApi.d.ts +725 -58
  75. package/dist/packages/farms/api/farmsApi.d.ts.map +1 -1
  76. package/dist/packages/farms/api/farmsApi.js +1149 -153
  77. package/dist/packages/farms/api/farmsApiCasting.d.ts +34 -18
  78. package/dist/packages/farms/api/farmsApiCasting.d.ts.map +1 -1
  79. package/dist/packages/farms/api/farmsApiCasting.js +218 -17
  80. package/dist/packages/farms/api/farmsApiCastingTypes.d.ts +117 -21
  81. package/dist/packages/farms/api/farmsApiCastingTypes.d.ts.map +1 -1
  82. package/dist/packages/farms/farms.d.ts +188 -3
  83. package/dist/packages/farms/farms.d.ts.map +1 -1
  84. package/dist/packages/farms/farms.js +192 -12
  85. package/dist/packages/farms/farmsStakedPosition.d.ts +143 -8
  86. package/dist/packages/farms/farmsStakedPosition.d.ts.map +1 -1
  87. package/dist/packages/farms/farmsStakedPosition.js +243 -137
  88. package/dist/packages/farms/farmsStakingPool.d.ts +169 -3
  89. package/dist/packages/farms/farmsStakingPool.d.ts.map +1 -1
  90. package/dist/packages/farms/farmsStakingPool.js +212 -70
  91. package/dist/packages/farms/farmsTypes.d.ts +302 -2
  92. package/dist/packages/farms/farmsTypes.d.ts.map +1 -1
  93. package/dist/packages/farms/farmsTypes.js +18 -0
  94. package/dist/packages/faucet/api/faucetApi.d.ts +9 -17
  95. package/dist/packages/faucet/api/faucetApi.d.ts.map +1 -1
  96. package/dist/packages/faucet/api/faucetApi.js +44 -49
  97. package/dist/packages/faucet/api/faucetApiCasting.d.ts.map +1 -1
  98. package/dist/packages/faucet/api/faucetApiCasting.js +8 -5
  99. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts +1 -4
  100. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts.map +1 -1
  101. package/dist/packages/faucet/faucet.d.ts +1 -1
  102. package/dist/packages/faucet/faucet.d.ts.map +1 -1
  103. package/dist/packages/faucet/faucet.js +1 -1
  104. package/dist/packages/faucet/faucetTypes.d.ts +2 -3
  105. package/dist/packages/faucet/faucetTypes.d.ts.map +1 -1
  106. package/dist/packages/limitOrders/api/limitOrdersApi.d.ts +12 -0
  107. package/dist/packages/limitOrders/api/limitOrdersApi.d.ts.map +1 -0
  108. package/dist/packages/limitOrders/api/limitOrdersApi.js +25 -0
  109. package/dist/packages/limitOrders/index.d.ts +2 -0
  110. package/dist/packages/limitOrders/index.d.ts.map +1 -0
  111. package/dist/packages/limitOrders/index.js +17 -0
  112. package/dist/packages/limitOrders/limitOrders.d.ts +143 -0
  113. package/dist/packages/limitOrders/limitOrders.d.ts.map +1 -0
  114. package/dist/packages/limitOrders/limitOrders.js +190 -0
  115. package/dist/packages/limitOrders/limitOrdersTypes.d.ts +211 -0
  116. package/dist/packages/limitOrders/limitOrdersTypes.d.ts.map +1 -0
  117. package/dist/packages/multisig/multisig.d.ts +34 -5
  118. package/dist/packages/multisig/multisig.d.ts.map +1 -1
  119. package/dist/packages/multisig/multisig.js +33 -4
  120. package/dist/packages/multisig/multisigTypes.d.ts +17 -0
  121. package/dist/packages/multisig/multisigTypes.d.ts.map +1 -1
  122. package/dist/packages/nftAmm/nftAmm.d.ts +1 -1
  123. package/dist/packages/nftAmm/nftAmm.d.ts.map +1 -1
  124. package/dist/packages/perpetuals/api/perpetualsApi.d.ts +7 -16
  125. package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +1 -1
  126. package/dist/packages/perpetuals/api/perpetualsApi.js +318 -276
  127. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +7 -7
  128. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +1 -1
  129. package/dist/packages/perpetuals/api/perpetualsApiCasting.js +71 -84
  130. package/dist/packages/perpetuals/perpetuals.d.ts +33 -4
  131. package/dist/packages/perpetuals/perpetuals.d.ts.map +1 -1
  132. package/dist/packages/perpetuals/perpetuals.js +105 -18
  133. package/dist/packages/perpetuals/perpetualsAccount.d.ts +87 -52
  134. package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +1 -1
  135. package/dist/packages/perpetuals/perpetualsAccount.js +544 -91
  136. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +55 -26
  137. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +1 -1
  138. package/dist/packages/perpetuals/perpetualsMarket.d.ts +28 -4
  139. package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +1 -1
  140. package/dist/packages/perpetuals/perpetualsMarket.js +75 -13
  141. package/dist/packages/perpetuals/perpetualsTypes.d.ts +263 -213
  142. package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +1 -1
  143. package/dist/packages/perpetuals/perpetualsTypes.js +24 -77
  144. package/dist/packages/pools/pool.d.ts +328 -86
  145. package/dist/packages/pools/pool.d.ts.map +1 -1
  146. package/dist/packages/pools/pool.js +333 -91
  147. package/dist/packages/pools/pools.d.ts +300 -38
  148. package/dist/packages/pools/pools.d.ts.map +1 -1
  149. package/dist/packages/pools/pools.js +306 -52
  150. package/dist/packages/pools/poolsTypes.d.ts +267 -2
  151. package/dist/packages/pools/poolsTypes.d.ts.map +1 -1
  152. package/dist/packages/referralVault/referralVault.d.ts +38 -1
  153. package/dist/packages/referralVault/referralVault.d.ts.map +1 -1
  154. package/dist/packages/referralVault/referralVault.js +37 -0
  155. package/dist/packages/router/router.d.ts +213 -17
  156. package/dist/packages/router/router.d.ts.map +1 -1
  157. package/dist/packages/router/router.js +214 -18
  158. package/dist/packages/router/routerTypes.d.ts +199 -15
  159. package/dist/packages/router/routerTypes.d.ts.map +1 -1
  160. package/dist/packages/staking/staking.d.ts +302 -44
  161. package/dist/packages/staking/staking.d.ts.map +1 -1
  162. package/dist/packages/staking/staking.js +308 -51
  163. package/dist/packages/staking/stakingTypes.d.ts +426 -6
  164. package/dist/packages/staking/stakingTypes.d.ts.map +1 -1
  165. package/dist/packages/staking/stakingTypes.js +19 -0
  166. package/dist/packages/sui/sui.d.ts +40 -1
  167. package/dist/packages/sui/sui.d.ts.map +1 -1
  168. package/dist/packages/sui/sui.js +39 -0
  169. package/dist/packages/suiFrens/stakedSuiFren.d.ts +1 -1
  170. package/dist/packages/suiFrens/stakedSuiFren.d.ts.map +1 -1
  171. package/dist/packages/suiFrens/suiFren.d.ts +1 -1
  172. package/dist/packages/suiFrens/suiFren.d.ts.map +1 -1
  173. package/dist/packages/suiFrens/suiFrens.d.ts +1 -1
  174. package/dist/packages/suiFrens/suiFrens.d.ts.map +1 -1
  175. package/dist/packages/userData/api/userDataApi.d.ts +6 -0
  176. package/dist/packages/userData/api/userDataApi.d.ts.map +1 -0
  177. package/dist/packages/userData/api/userDataApi.js +12 -0
  178. package/dist/packages/userData/index.d.ts +2 -0
  179. package/dist/packages/userData/index.d.ts.map +1 -0
  180. package/dist/packages/userData/index.js +17 -0
  181. package/dist/packages/userData/userData.d.ts +89 -0
  182. package/dist/packages/userData/userData.d.ts.map +1 -0
  183. package/dist/packages/userData/userData.js +119 -0
  184. package/dist/packages/userData/userDataTypes.d.ts +29 -0
  185. package/dist/packages/userData/userDataTypes.d.ts.map +1 -0
  186. package/dist/types.d.ts +0 -1
  187. package/dist/types.d.ts.map +1 -1
  188. package/dist/types.js +0 -2
  189. package/package.json +1 -1
  190. package/dist/general/historicalData/historicalData.d.ts +0 -15
  191. package/dist/general/historicalData/historicalData.d.ts.map +0 -1
  192. package/dist/general/historicalData/historicalData.js +0 -45
  193. package/dist/general/historicalData/historicalDataTypes.d.ts +0 -10
  194. package/dist/general/historicalData/historicalDataTypes.d.ts.map +0 -1
  195. package/dist/packages/dca/api/dcaApiCasting.d.ts +0 -11
  196. package/dist/packages/dca/api/dcaApiCasting.d.ts.map +0 -1
  197. package/dist/packages/dca/api/dcaApiCasting.js +0 -186
  198. package/dist/packages/dca/api/dcaApiCastingTypes.d.ts +0 -142
  199. package/dist/packages/dca/api/dcaApiCastingTypes.d.ts.map +0 -1
  200. package/dist/packages/oracle/api/oracleApi.d.ts +0 -21
  201. package/dist/packages/oracle/api/oracleApi.d.ts.map +0 -1
  202. package/dist/packages/oracle/api/oracleApi.js +0 -76
  203. package/dist/packages/oracle/api/oracleApiCasting.d.ts +0 -6
  204. package/dist/packages/oracle/api/oracleApiCasting.d.ts.map +0 -1
  205. package/dist/packages/oracle/api/oracleApiCasting.js +0 -25
  206. package/dist/packages/oracle/oracle.d.ts +0 -15
  207. package/dist/packages/oracle/oracle.d.ts.map +0 -1
  208. package/dist/packages/oracle/oracle.js +0 -46
  209. package/dist/packages/oracle/oracleCastingTypes.d.ts +0 -11
  210. package/dist/packages/oracle/oracleCastingTypes.d.ts.map +0 -1
  211. package/dist/packages/oracle/oracleCastingTypes.js +0 -2
  212. package/dist/packages/oracle/oracleTypes.d.ts +0 -10
  213. package/dist/packages/oracle/oracleTypes.d.ts.map +0 -1
  214. package/dist/packages/oracle/oracleTypes.js +0 -2
  215. /package/dist/{general/historicalData/historicalDataTypes.js → packages/limitOrders/limitOrdersTypes.js} +0 -0
  216. /package/dist/packages/{dca/api/dcaApiCastingTypes.js → userData/userDataTypes.js} +0 -0
@@ -8,17 +8,6 @@ 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 __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
11
  Object.defineProperty(exports, "__esModule", { value: true });
23
12
  exports.PerpetualsApi = void 0;
24
13
  const transactions_1 = require("@mysten/sui/transactions");
@@ -34,12 +23,72 @@ class PerpetualsApi {
34
23
  constructor(Provider) {
35
24
  this.Provider = Provider;
36
25
  // =========================================================================
26
+ // Objects
27
+ // =========================================================================
28
+ // public fetchMarket = async (inputs: {
29
+ // marketId: PerpetualsMarketId;
30
+ // collateralCoinType: CoinType;
31
+ // }): Promise<PerpetualsMarketData> => {
32
+ // const { collateralCoinType } = inputs;
33
+ // return this.Provider.Objects().fetchCastObject({
34
+ // objectId: inputs.marketId,
35
+ // objectFromSuiObjectResponse: (data) =>
36
+ // Casting.perpetuals.clearingHouseFromOnChain(
37
+ // data,
38
+ // collateralCoinType
39
+ // ),
40
+ // });
41
+ // };
42
+ // =========================================================================
43
+ // Inspections
44
+ // =========================================================================
45
+ // public fetchOrderbookPrice = async (inputs: {
46
+ // collateralCoinType: ObjectId;
47
+ // marketId: PerpetualsMarketId;
48
+ // // marketInitialSharedVersion: ObjectVersion;
49
+ // }): Promise<number> => {
50
+ // const {
51
+ // collateralCoinType,
52
+ // marketId,
53
+ // // marketInitialSharedVersion
54
+ // } = inputs;
55
+ // const tx = new Transaction();
56
+ // this.getBookPriceTx({
57
+ // tx,
58
+ // marketId,
59
+ // collateralCoinType,
60
+ // // marketInitialSharedVersion,
61
+ // });
62
+ // const bytes =
63
+ // await this.Provider.Inspections().fetchFirstBytesFromTxOutput({
64
+ // tx,
65
+ // });
66
+ // return PerpetualsApiCasting.orderbookPriceFromBytes(bytes);
67
+ // };
68
+ // public fetchAllMarketIds = async (inputs: {
69
+ // collateralCoinType: CoinType;
70
+ // }): Promise<PerpetualsMarketId[]> => {
71
+ // const { collateralCoinType } = inputs;
72
+ // const marketIdsData = await this.Provider.indexerCaller.fetchIndexer<
73
+ // {
74
+ // marketId: ObjectId;
75
+ // }[]
76
+ // >(
77
+ // `perpetuals/markets/${Helpers.addLeadingZeroesToType(
78
+ // collateralCoinType
79
+ // )}`
80
+ // );
81
+ // return marketIdsData.map((data) =>
82
+ // Helpers.addLeadingZeroesToType(data.marketId)
83
+ // );
84
+ // };
85
+ // =========================================================================
37
86
  // Transaction Commands
38
87
  // =========================================================================
39
88
  this.depositCollateralTx = (inputs) => {
40
89
  const { tx, collateralCoinType, accountCapId } = inputs;
41
90
  return tx.moveCall({
42
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.perpetuals.packages.perpetuals, PerpetualsApi.constants.moduleNames.interface, "deposit_collateral"),
91
+ target: utils_1.Helpers.transactions.createTxTarget(this.addresses.packages.perpetuals, PerpetualsApi.constants.moduleNames.interface, "deposit_collateral"),
43
92
  typeArguments: [collateralCoinType],
44
93
  arguments: [
45
94
  typeof accountCapId === "string"
@@ -215,7 +264,7 @@ class PerpetualsApi {
215
264
  this.withdrawCollateralTx = (inputs) => {
216
265
  const { tx, collateralCoinType, accountCapId, amount } = inputs;
217
266
  return tx.moveCall({
218
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.perpetuals.packages.perpetuals, PerpetualsApi.constants.moduleNames.interface, "withdraw_collateral"),
267
+ target: utils_1.Helpers.transactions.createTxTarget(this.addresses.packages.perpetuals, PerpetualsApi.constants.moduleNames.interface, "withdraw_collateral"),
219
268
  typeArguments: [collateralCoinType],
220
269
  arguments: [
221
270
  typeof accountCapId === "string"
@@ -228,9 +277,9 @@ class PerpetualsApi {
228
277
  this.createAccountTx = (inputs) => {
229
278
  const { tx, collateralCoinType } = inputs;
230
279
  return tx.moveCall({
231
- target: utils_1.Helpers.transactions.createTxTarget(this.addresses.perpetuals.packages.perpetuals, PerpetualsApi.constants.moduleNames.interface, "create_account"),
280
+ target: utils_1.Helpers.transactions.createTxTarget(this.addresses.packages.perpetuals, PerpetualsApi.constants.moduleNames.interface, "create_account"),
232
281
  typeArguments: [collateralCoinType],
233
- arguments: [tx.object(this.addresses.perpetuals.objects.registry)],
282
+ arguments: [tx.object(this.addresses.objects.registry)],
234
283
  });
235
284
  };
236
285
  // public getHotPotatoFieldsTx = (
@@ -277,52 +326,6 @@ class PerpetualsApi {
277
326
  // ],
278
327
  // });
279
328
  // };
280
- this.placeSLTPOrderTx = (inputs) => {
281
- throw new Error("TODO");
282
- // const { tx } = inputs;
283
- // if ("price" in inputs) {
284
- // this.placeLimitOrderTx({ ...inputs, tx });
285
- // } else {
286
- // this.placeMarketOrderTx({ ...inputs, tx });
287
- // }
288
- // const orderType = PerpetualsOrderType.PostOnly;
289
- // const side =
290
- // inputs.side === PerpetualsOrderSide.Ask
291
- // ? PerpetualsOrderSide.Bid
292
- // : PerpetualsOrderSide.Ask;
293
- // const orderPrice =
294
- // "price" in inputs ? inputs.price : inputs.marketPrice;
295
- // if (
296
- // "slPrice" in inputs &&
297
- // ((inputs.side === PerpetualsOrderSide.Ask &&
298
- // inputs.slPrice > orderPrice) ||
299
- // (inputs.side === PerpetualsOrderSide.Bid &&
300
- // inputs.slPrice < orderPrice))
301
- // ) {
302
- // this.placeLimitOrderTx({
303
- // ...inputs,
304
- // tx,
305
- // orderType,
306
- // side,
307
- // price: inputs.slPrice,
308
- // });
309
- // }
310
- // if (
311
- // "tpPrice" in inputs &&
312
- // ((inputs.side === PerpetualsOrderSide.Ask &&
313
- // inputs.tpPrice < orderPrice) ||
314
- // (inputs.side === PerpetualsOrderSide.Bid &&
315
- // inputs.tpPrice > orderPrice))
316
- // ) {
317
- // this.placeLimitOrderTx({
318
- // ...inputs,
319
- // tx,
320
- // orderType,
321
- // side,
322
- // price: inputs.tpPrice,
323
- // });
324
- // }
325
- };
326
329
  this.getPositionTx = (inputs) => {
327
330
  const { tx, marketId, collateralCoinType } = inputs;
328
331
  return tx.moveCall({
@@ -421,77 +424,113 @@ class PerpetualsApi {
421
424
  coinId }, inputs));
422
425
  return tx;
423
426
  });
424
- this.buildCancelOrderTx = (inputs) => {
425
- const { packageId, orderId, marketId, marketInitialSharedVersion, collateralChange, basePriceFeedId, collateralPriceFeedId } = inputs, otherInputs = __rest(inputs, ["packageId", "orderId", "marketId", "marketInitialSharedVersion", "collateralChange", "basePriceFeedId", "collateralPriceFeedId"]);
426
- return this.buildCancelOrdersTx(Object.assign(Object.assign({}, otherInputs), { orderDatas: [
427
- {
428
- packageId,
429
- orderId,
430
- marketId,
431
- marketInitialSharedVersion,
432
- collateralChange,
433
- basePriceFeedId,
434
- collateralPriceFeedId,
435
- },
436
- ] }));
437
- };
438
- this.buildCancelOrdersTx = (inputs) => {
439
- const { orderDatas, collateralCoinType, accountCapId } = inputs;
440
- if (orderDatas.length <= 0)
441
- throw new Error("cannot have order datas of length zero");
442
- const tx = new transactions_1.Transaction();
443
- tx.setSender(inputs.walletAddress);
444
- const marketIdToOrderIds = orderDatas.reduce((acc, order) => {
445
- if (order.marketId in acc) {
446
- return Object.assign(Object.assign({}, acc), { [order.marketId]: [...acc[order.marketId], order] });
447
- }
448
- return Object.assign(Object.assign({}, acc), { [order.marketId]: [order] });
449
- }, {});
450
- for (const [marketId, orders] of Object.entries(marketIdToOrderIds)) {
451
- if (orders.length <= 0)
452
- continue;
453
- const marketInitialSharedVersion = orders[0].marketInitialSharedVersion;
454
- const packageId = orders[0].packageId;
455
- this.cancelOrdersTx({
456
- tx,
457
- collateralCoinType,
458
- accountCapId,
459
- marketId,
460
- marketInitialSharedVersion,
461
- packageId,
462
- orderIds: orders.map((order) => order.orderId),
463
- });
464
- const netCollateralChange = utils_1.Helpers.sumBigInt(orders.map((order) => order.collateralChange));
465
- if (netCollateralChange < BigInt(0)) {
466
- this.deallocateCollateralTx({
467
- tx,
468
- accountCapId,
469
- collateralCoinType,
470
- marketId,
471
- marketInitialSharedVersion,
472
- packageId,
473
- amount: utils_1.Helpers.absBigInt(netCollateralChange),
474
- basePriceFeedId: orders[0].basePriceFeedId,
475
- collateralPriceFeedId: orders[0].collateralPriceFeedId,
476
- });
477
- }
478
- else if (netCollateralChange > BigInt(0)) {
479
- this.allocateCollateralTx({
480
- tx,
481
- accountCapId,
482
- collateralCoinType,
483
- marketId,
484
- marketInitialSharedVersion,
485
- packageId,
486
- amount: netCollateralChange,
487
- });
488
- }
489
- else {
490
- // no collateral change
491
- }
492
- }
493
- return tx;
494
- };
427
+ // public buildCancelOrderTx = (
428
+ // inputs: ApiPerpetualsCancelOrderBody
429
+ // ): Transaction => {
430
+ // const {
431
+ // packageId,
432
+ // orderId,
433
+ // marketId,
434
+ // marketInitialSharedVersion,
435
+ // collateralChange,
436
+ // basePriceFeedId,
437
+ // collateralPriceFeedId,
438
+ // ...otherInputs
439
+ // } = inputs;
440
+ // return this.buildCancelOrdersTx({
441
+ // ...otherInputs,
442
+ // orderDatas: [
443
+ // {
444
+ // packageId,
445
+ // orderId,
446
+ // marketId,
447
+ // marketInitialSharedVersion,
448
+ // collateralChange,
449
+ // basePriceFeedId,
450
+ // collateralPriceFeedId,
451
+ // },
452
+ // ],
453
+ // });
454
+ // };
455
+ // public buildCancelOrdersTx = (
456
+ // inputs: ApiPerpetualsCancelOrdersBody
457
+ // ): Transaction => {
458
+ // const { orderDatas, collateralCoinType, accountCapId } = inputs;
459
+ // if (orderDatas.length <= 0)
460
+ // throw new Error("cannot have order datas of length zero");
461
+ // const tx = new Transaction();
462
+ // tx.setSender(inputs.walletAddress);
463
+ // const marketIdToOrderIds = orderDatas.reduce(
464
+ // (acc, order) => {
465
+ // if (order.marketId in acc) {
466
+ // return {
467
+ // ...acc,
468
+ // [order.marketId]: [...acc[order.marketId], order],
469
+ // };
470
+ // }
471
+ // return {
472
+ // ...acc,
473
+ // [order.marketId]: [order],
474
+ // };
475
+ // },
476
+ // {} as Record<
477
+ // PerpetualsMarketId,
478
+ // {
479
+ // packageId: PackageId;
480
+ // orderId: PerpetualsOrderId;
481
+ // marketId: PerpetualsMarketId;
482
+ // marketInitialSharedVersion: ObjectVersion;
483
+ // collateralChange: Balance;
484
+ // basePriceFeedId: ObjectId;
485
+ // collateralPriceFeedId: ObjectId;
486
+ // }[]
487
+ // >
488
+ // );
489
+ // for (const [marketId, orders] of Object.entries(marketIdToOrderIds)) {
490
+ // if (orders.length <= 0) continue;
491
+ // const marketInitialSharedVersion =
492
+ // orders[0].marketInitialSharedVersion;
493
+ // const packageId = orders[0].packageId;
494
+ // this.cancelOrdersTx({
495
+ // tx,
496
+ // collateralCoinType,
497
+ // accountCapId,
498
+ // marketId,
499
+ // marketInitialSharedVersion,
500
+ // packageId,
501
+ // orderIds: orders.map((order) => order.orderId),
502
+ // });
503
+ // const netCollateralChange = Helpers.sumBigInt(
504
+ // orders.map((order) => order.collateralChange)
505
+ // );
506
+ // if (netCollateralChange < BigInt(0)) {
507
+ // this.deallocateCollateralTx({
508
+ // tx,
509
+ // accountCapId,
510
+ // collateralCoinType,
511
+ // marketId,
512
+ // marketInitialSharedVersion,
513
+ // packageId,
514
+ // amount: Helpers.absBigInt(netCollateralChange),
515
+ // basePriceFeedId: orders[0].basePriceFeedId,
516
+ // collateralPriceFeedId: orders[0].collateralPriceFeedId,
517
+ // });
518
+ // } else if (netCollateralChange > BigInt(0)) {
519
+ // this.allocateCollateralTx({
520
+ // tx,
521
+ // accountCapId,
522
+ // collateralCoinType,
523
+ // marketId,
524
+ // marketInitialSharedVersion,
525
+ // packageId,
526
+ // amount: netCollateralChange,
527
+ // });
528
+ // } else {
529
+ // // no collateral change
530
+ // }
531
+ // }
532
+ // return tx;
533
+ // };
495
534
  this.buildWithdrawCollateralTx = (inputs) => {
496
535
  const tx = new transactions_1.Transaction();
497
536
  tx.setSender(inputs.walletAddress);
@@ -506,16 +545,6 @@ class PerpetualsApi {
506
545
  tx.transferObjects([accountCap], inputs.walletAddress);
507
546
  return tx;
508
547
  };
509
- this.fetchBuildPlaceSLTPOrderTx = (inputs) => {
510
- throw new Error("TODO");
511
- // const { tx, sessionPotatoId } = this.createTxAndStartSession(inputs);
512
- // this.placeSLTPOrderTx({
513
- // ...inputs,
514
- // tx,
515
- // sessionPotatoId,
516
- // });
517
- // return tx;
518
- };
519
548
  this.buildTransferCollateralTx = (inputs) => {
520
549
  const { walletAddress, collateralCoinType, fromAccountCapId, toAccountCapId, amount, } = inputs;
521
550
  const tx = new transactions_1.Transaction();
@@ -536,54 +565,66 @@ class PerpetualsApi {
536
565
  };
537
566
  this.buildAllocateCollateralTx = transactionsApiHelpers_1.TransactionsApiHelpers.createBuildTxFunc(this.allocateCollateralTx);
538
567
  this.buildDeallocateCollateralTx = transactionsApiHelpers_1.TransactionsApiHelpers.createBuildTxFunc(this.deallocateCollateralTx);
539
- this.buildReduceOrdersTx = (inputs) => {
540
- const { walletAddress, collateralChange, accountCapId, collateralCoinType, marketId, marketInitialSharedVersion, packageId, basePriceFeedId, collateralPriceFeedId, orderIds, sizesToSubtract, } = inputs;
541
- const tx = new transactions_1.Transaction();
542
- tx.setSender(walletAddress);
543
- this.reduceOrdersTx({
544
- tx,
545
- packageId,
546
- collateralCoinType,
547
- accountCapId,
548
- marketId,
549
- marketInitialSharedVersion,
550
- orderIds,
551
- sizesToSubtract,
552
- });
553
- if (collateralChange < BigInt(0)) {
554
- this.deallocateCollateralTx({
555
- tx,
556
- accountCapId,
557
- collateralCoinType,
558
- marketId,
559
- marketInitialSharedVersion,
560
- packageId,
561
- basePriceFeedId,
562
- collateralPriceFeedId,
563
- amount: utils_1.Helpers.absBigInt(collateralChange),
564
- });
565
- }
566
- else if (collateralChange > BigInt(0)) {
567
- this.allocateCollateralTx({
568
- tx,
569
- accountCapId,
570
- collateralCoinType,
571
- marketId,
572
- marketInitialSharedVersion,
573
- packageId,
574
- amount: collateralChange,
575
- });
576
- }
577
- else {
578
- // no collateral change
579
- }
580
- return tx;
581
- };
568
+ // public buildReduceOrdersTx = (
569
+ // inputs: ApiPerpetualsReduceOrdersBody
570
+ // ): Transaction => {
571
+ // const {
572
+ // walletAddress,
573
+ // collateralChange,
574
+ // accountCapId,
575
+ // collateralCoinType,
576
+ // marketId,
577
+ // marketInitialSharedVersion,
578
+ // packageId,
579
+ // basePriceFeedId,
580
+ // collateralPriceFeedId,
581
+ // orderIds,
582
+ // sizesToSubtract,
583
+ // } = inputs;
584
+ // const tx = new Transaction();
585
+ // tx.setSender(walletAddress);
586
+ // this.reduceOrdersTx({
587
+ // tx,
588
+ // packageId,
589
+ // collateralCoinType,
590
+ // accountCapId,
591
+ // marketId,
592
+ // marketInitialSharedVersion,
593
+ // orderIds,
594
+ // sizesToSubtract,
595
+ // });
596
+ // if (collateralChange < BigInt(0)) {
597
+ // this.deallocateCollateralTx({
598
+ // tx,
599
+ // accountCapId,
600
+ // collateralCoinType,
601
+ // marketId,
602
+ // marketInitialSharedVersion,
603
+ // packageId,
604
+ // basePriceFeedId,
605
+ // collateralPriceFeedId,
606
+ // amount: Helpers.absBigInt(collateralChange),
607
+ // });
608
+ // } else if (collateralChange > BigInt(0)) {
609
+ // this.allocateCollateralTx({
610
+ // tx,
611
+ // accountCapId,
612
+ // collateralCoinType,
613
+ // marketId,
614
+ // marketInitialSharedVersion,
615
+ // packageId,
616
+ // amount: collateralChange,
617
+ // });
618
+ // } else {
619
+ // // no collateral change
620
+ // }
621
+ // return tx;
622
+ // };
582
623
  // =========================================================================
583
624
  // Helpers
584
625
  // =========================================================================
585
626
  this.getAccountCapType = (inputs) => {
586
- return `${this.addresses.perpetuals.packages.events}::${PerpetualsApi.constants.moduleNames.account}::Account<${inputs.collateralCoinType}>`;
627
+ return `${this.addresses.packages.events}::${PerpetualsApi.constants.moduleNames.account}::Account<${inputs.collateralCoinType}>`;
587
628
  };
588
629
  // =========================================================================
589
630
  // Private Helpers
@@ -971,15 +1012,11 @@ class PerpetualsApi {
971
1012
  // =========================================================================
972
1013
  // Event Types
973
1014
  // =========================================================================
974
- this.eventType = (eventName) => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.perpetuals.packages.events, PerpetualsApi.constants.moduleNames.events, eventName);
975
- const perpetuals = this.Provider.addresses.perpetuals;
976
- const oracle = this.Provider.addresses.oracle;
977
- if (!perpetuals || !oracle)
1015
+ this.eventType = (eventName) => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.packages.events, PerpetualsApi.constants.moduleNames.events, eventName);
1016
+ const addresses = this.Provider.addresses.perpetuals;
1017
+ if (!addresses)
978
1018
  throw new Error("not all required addresses have been set in provider");
979
- this.addresses = {
980
- perpetuals,
981
- oracle,
982
- };
1019
+ this.addresses = addresses;
983
1020
  this.eventTypes = {
984
1021
  // Collateral
985
1022
  withdrewCollateral: this.eventType("WithdrewCollateral"),
@@ -995,7 +1032,7 @@ class PerpetualsApi {
995
1032
  // Order
996
1033
  canceledOrder: this.eventType("CanceledOrder"),
997
1034
  postedOrder: this.eventType("PostedOrder"),
998
- filledMakerOrder: this.eventType("FilledMakerOrder"),
1035
+ filledMakerOrders: this.eventType("FilledMakerOrders"),
999
1036
  filledTakerOrder: this.eventType("FilledTakerOrder"),
1000
1037
  reducedOrder: this.eventType("ReducedOrder"),
1001
1038
  // Order Receipts
@@ -1007,89 +1044,94 @@ class PerpetualsApi {
1007
1044
  updatedFunding: this.eventType("UpdatedFunding"),
1008
1045
  // Version
1009
1046
  updatedMarketVersion: this.eventType("UpdatedClearingHouseVersion"),
1047
+ // Stop Order
1048
+ createdStopOrderTicket: this.eventType("CreatedStopOrderTicket"),
1049
+ deletedStopOrderTicket: this.eventType("DeletedStopOrderTicket"),
1010
1050
  };
1011
1051
  this.moveErrors = {
1012
- [this.addresses.perpetuals.packages.perpetuals]: {
1013
- // Clearing House
1014
- // Cannot deposit/withdraw zero coins to/from the account's collateral.
1015
- 0: "Deposit Or Withdraw Amount Zero",
1016
- // Orderbook size or price are invalid values
1017
- 1: "Invalid Size Or Price",
1018
- // When trying to access a particular insurance fund, but it does not exist.
1019
- 2: "Invalid Insurance Fund Id",
1020
- // Index price returned from oracle is 0 or invalid value
1021
- 3: "Bad Index Price",
1022
- // Registry already contains the specified collateral type
1023
- 4: "Invalid Collateral Type",
1024
- // Order value in USD is too low
1025
- 5: "Order Usd Value Too Low",
1026
- // Wrong number of sizes passed to liquidation.
1027
- // It must match the number of liqee's positions.
1028
- 6: "Invalid Number Of Sizes",
1029
- // MarketManager
1030
- // Tried to create a new market with invalid parameters.
1031
- 1000: "Invalid Market Parameters",
1032
- // Tried to call `update_funding` before enough time has passed since the
1033
- // last update.
1034
- 1001: "Updating Funding Too Early",
1035
- // Margin ratio update proposal already exists for market
1036
- 1002: "Proposal Already Exists",
1037
- // Margin ratio update proposal cannot be commited too early
1038
- 1003: "Premature Proposal",
1039
- // Margin ratio update proposal delay is outside the valid range
1040
- 1004: "Invalid Proposal Delay",
1041
- // Market does not exist
1042
- 1005: "Market Does Not Exist",
1043
- // Tried to update a config with a value outside of the allowed range
1044
- 1006: "Value Out Of Range",
1045
- // Margin ratio update proposal does not exist for market
1046
- 1007: "Proposal Does Not Exist",
1047
- // Exchange has no available fees to withdraw
1048
- 1008: "No Fees Accrued",
1049
- // Tried to withdraw more insurance funds than the allowed amount
1050
- 1009: "Insufficient Insurance Surplus",
1051
- // Cannot create a market for which a price feed does not exist
1052
- 1010: "No Price Feed For Market",
1053
- // Account Manager
1054
- // Tried accessing a nonexistent account.
1055
- 2000: "Account Not Found",
1056
- // Tried accessing a nonexistent account position.
1057
- 2001: "Position Not Found",
1058
- // Tried creating a new position when the account already has the maximum
1059
- // allowed number of open positions.
1060
- 2002: "Max Positions Exceeded",
1061
- // An operation brought an account below initial margin requirements.
1062
- // 2003: "Initial Margin Requirement Violated",
1063
- 2003: "Margin Requirements Violated, Try Lowering Size",
1064
- // Account is above MMR, so can't be liquidated.
1065
- 2004: "Account Above MMR",
1066
- // Cannot realize bad debt via means other than calling 'liquidate'.
1067
- 2005: "Account Bad Debt",
1068
- // Cannot withdraw more than the account's free collateral.
1069
- 2006: "Insufficient Free Collateral",
1070
- // Cannot delete a position that is not worthless
1071
- 2007: "Position Not Null",
1072
- // Tried placing a new pending order when the position already has the maximum
1073
- // allowed number of pending orders.
1074
- 2008: "Max Pending Orders Exceeded",
1075
- // Used for checking both liqee and liqor positions during liquidation
1076
- 2009: "Account Below IMR",
1077
- // When leaving liqee's account with a margin ratio above tolerance,
1078
- // meaning that liqor has overbought position
1079
- 2010: "Account Above Tolerance",
1080
- // Orderbook & OrderedMap
1081
- // While searching for a key, but it doesn't exist.
1082
- 3000: "Key Does Not Exist",
1083
- // While inserting already existing key.
1084
- 3001: "Key Already Exists",
1085
- // When attempting to destroy a non-empty map
1086
- 3002: "Destroying Not Empty Map",
1087
- // Invalid user tries to modify an order
1088
- 3003: "Invalid User For Order",
1089
- // Orderbook flag requirements violated
1090
- 3004: "Flag Requirements Violated",
1091
- // Minimum size matched not reached
1092
- 3005: "Not Enough Liquidity",
1052
+ [this.addresses.packages.perpetuals]: {
1053
+ ["ANY"]: {
1054
+ // Clearing House
1055
+ // Cannot deposit/withdraw zero coins to/from the account's collateral.
1056
+ 0: "Deposit Or Withdraw Amount Zero",
1057
+ // Orderbook size or price are invalid values
1058
+ 1: "Invalid Size Or Price",
1059
+ // When trying to access a particular insurance fund, but it does not exist.
1060
+ 2: "Invalid Insurance Fund Id",
1061
+ // Index price returned from oracle is 0 or invalid value
1062
+ 3: "Bad Index Price",
1063
+ // Registry already contains the specified collateral type
1064
+ 4: "Invalid Collateral Type",
1065
+ // Order value in USD is too low
1066
+ 5: "Order Usd Value Too Low",
1067
+ // Wrong number of sizes passed to liquidation.
1068
+ // It must match the number of liqee's positions.
1069
+ 6: "Invalid Number Of Sizes",
1070
+ // MarketManager
1071
+ // Tried to create a new market with invalid parameters.
1072
+ 1000: "Invalid Market Parameters",
1073
+ // Tried to call `update_funding` before enough time has passed since the
1074
+ // last update.
1075
+ 1001: "Updating Funding Too Early",
1076
+ // Margin ratio update proposal already exists for market
1077
+ 1002: "Proposal Already Exists",
1078
+ // Margin ratio update proposal cannot be commited too early
1079
+ 1003: "Premature Proposal",
1080
+ // Margin ratio update proposal delay is outside the valid range
1081
+ 1004: "Invalid Proposal Delay",
1082
+ // Market does not exist
1083
+ 1005: "Market Does Not Exist",
1084
+ // Tried to update a config with a value outside of the allowed range
1085
+ 1006: "Value Out Of Range",
1086
+ // Margin ratio update proposal does not exist for market
1087
+ 1007: "Proposal Does Not Exist",
1088
+ // Exchange has no available fees to withdraw
1089
+ 1008: "No Fees Accrued",
1090
+ // Tried to withdraw more insurance funds than the allowed amount
1091
+ 1009: "Insufficient Insurance Surplus",
1092
+ // Cannot create a market for which a price feed does not exist
1093
+ 1010: "No Price Feed For Market",
1094
+ // Account Manager
1095
+ // Tried accessing a nonexistent account.
1096
+ 2000: "Account Not Found",
1097
+ // Tried accessing a nonexistent account position.
1098
+ 2001: "Position Not Found",
1099
+ // Tried creating a new position when the account already has the maximum
1100
+ // allowed number of open positions.
1101
+ 2002: "Max Positions Exceeded",
1102
+ // An operation brought an account below initial margin requirements.
1103
+ // 2003: "Initial Margin Requirement Violated",
1104
+ 2003: "Margin Requirements Violated, Try Lowering Size",
1105
+ // Account is above MMR, so can't be liquidated.
1106
+ 2004: "Account Above MMR",
1107
+ // Cannot realize bad debt via means other than calling 'liquidate'.
1108
+ 2005: "Account Bad Debt",
1109
+ // Cannot withdraw more than the account's free collateral.
1110
+ 2006: "Insufficient Free Collateral",
1111
+ // Cannot delete a position that is not worthless
1112
+ 2007: "Position Not Null",
1113
+ // Tried placing a new pending order when the position already has the maximum
1114
+ // allowed number of pending orders.
1115
+ 2008: "Max Pending Orders Exceeded",
1116
+ // Used for checking both liqee and liqor positions during liquidation
1117
+ 2009: "Account Below IMR",
1118
+ // When leaving liqee's account with a margin ratio above tolerance,
1119
+ // meaning that liqor has overbought position
1120
+ 2010: "Account Above Tolerance",
1121
+ // Orderbook & OrderedMap
1122
+ // While searching for a key, but it doesn't exist.
1123
+ 3000: "Key Does Not Exist",
1124
+ // While inserting already existing key.
1125
+ 3001: "Key Already Exists",
1126
+ // When attempting to destroy a non-empty map
1127
+ 3002: "Destroying Not Empty Map",
1128
+ // Invalid user tries to modify an order
1129
+ 3003: "Invalid User For Order",
1130
+ // Orderbook flag requirements violated
1131
+ 3004: "Flag Requirements Violated",
1132
+ // Minimum size matched not reached
1133
+ 3005: "Not Enough Liquidity",
1134
+ },
1093
1135
  },
1094
1136
  };
1095
1137
  }