aftermath-ts-sdk 1.3.23-cleanup → 1.3.23-perps.2

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 (120) 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 -5
  8. package/dist/general/providers/aftermathApi.d.ts.map +1 -1
  9. package/dist/general/providers/aftermathApi.js +0 -5
  10. package/dist/general/types/castingTypes.d.ts +2 -2
  11. package/dist/general/types/castingTypes.d.ts.map +1 -1
  12. package/dist/general/types/configTypes.d.ts +0 -10
  13. package/dist/general/types/configTypes.d.ts.map +1 -1
  14. package/dist/general/types/generalTypes.d.ts +4 -0
  15. package/dist/general/types/generalTypes.d.ts.map +1 -1
  16. package/dist/general/types/moveErrorsInterface.d.ts +1 -1
  17. package/dist/general/types/moveErrorsInterface.d.ts.map +1 -1
  18. package/dist/general/utils/caller.d.ts +17 -2
  19. package/dist/general/utils/caller.d.ts.map +1 -1
  20. package/dist/general/utils/caller.js +35 -2
  21. package/dist/general/utils/casting.d.ts +4 -5
  22. package/dist/general/utils/casting.d.ts.map +1 -1
  23. package/dist/general/utils/casting.js +4 -5
  24. package/dist/general/utils/helpers.d.ts +1 -0
  25. package/dist/general/utils/helpers.d.ts.map +1 -1
  26. package/dist/general/utils/helpers.js +35 -6
  27. package/dist/general/wallet/wallet.d.ts +1 -1
  28. package/dist/general/wallet/wallet.d.ts.map +1 -1
  29. package/dist/packages/coin/coin.d.ts +1 -1
  30. package/dist/packages/coin/coin.d.ts.map +1 -1
  31. package/dist/packages/coin/coin.js +3 -1
  32. package/dist/packages/farms/api/farmsApiCasting.js +27 -27
  33. package/dist/packages/farms/farms.d.ts +1 -1
  34. package/dist/packages/farms/farms.d.ts.map +1 -1
  35. package/dist/packages/farms/farmsStakedPosition.d.ts +1 -1
  36. package/dist/packages/farms/farmsStakedPosition.d.ts.map +1 -1
  37. package/dist/packages/farms/farmsStakingPool.d.ts +1 -1
  38. package/dist/packages/farms/farmsStakingPool.d.ts.map +1 -1
  39. package/dist/packages/faucet/api/faucetApi.d.ts +9 -17
  40. package/dist/packages/faucet/api/faucetApi.d.ts.map +1 -1
  41. package/dist/packages/faucet/api/faucetApi.js +44 -49
  42. package/dist/packages/faucet/api/faucetApiCasting.d.ts.map +1 -1
  43. package/dist/packages/faucet/api/faucetApiCasting.js +10 -7
  44. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts +1 -4
  45. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts.map +1 -1
  46. package/dist/packages/faucet/faucet.d.ts +1 -1
  47. package/dist/packages/faucet/faucet.d.ts.map +1 -1
  48. package/dist/packages/faucet/faucet.js +1 -1
  49. package/dist/packages/faucet/faucetTypes.d.ts +2 -3
  50. package/dist/packages/faucet/faucetTypes.d.ts.map +1 -1
  51. package/dist/packages/leveragedStaking/api/leveragedStakingApiCasting.js +3 -3
  52. package/dist/packages/multisig/multisig.d.ts +1 -1
  53. package/dist/packages/multisig/multisig.d.ts.map +1 -1
  54. package/dist/packages/nftAmm/nftAmm.d.ts +1 -1
  55. package/dist/packages/nftAmm/nftAmm.d.ts.map +1 -1
  56. package/dist/packages/perpetuals/api/perpetualsApi.d.ts +11 -203
  57. package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +1 -1
  58. package/dist/packages/perpetuals/api/perpetualsApi.js +924 -615
  59. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +10 -21
  60. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +1 -1
  61. package/dist/packages/perpetuals/api/perpetualsApiCasting.js +260 -238
  62. package/dist/packages/perpetuals/index.d.ts +1 -0
  63. package/dist/packages/perpetuals/index.d.ts.map +1 -1
  64. package/dist/packages/perpetuals/index.js +1 -0
  65. package/dist/packages/perpetuals/perpetuals.d.ts +83 -14
  66. package/dist/packages/perpetuals/perpetuals.d.ts.map +1 -1
  67. package/dist/packages/perpetuals/perpetuals.js +158 -59
  68. package/dist/packages/perpetuals/perpetualsAccount.d.ts +158 -86
  69. package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +1 -1
  70. package/dist/packages/perpetuals/perpetualsAccount.js +481 -141
  71. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +82 -149
  72. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +1 -1
  73. package/dist/packages/perpetuals/perpetualsMarket.d.ts +55 -20
  74. package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +1 -1
  75. package/dist/packages/perpetuals/perpetualsMarket.js +114 -57
  76. package/dist/packages/perpetuals/perpetualsTypes.d.ts +586 -280
  77. package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +1 -1
  78. package/dist/packages/perpetuals/perpetualsTypes.js +17 -81
  79. package/dist/packages/perpetuals/perpetualsVault.d.ts +109 -0
  80. package/dist/packages/perpetuals/perpetualsVault.d.ts.map +1 -0
  81. package/dist/packages/perpetuals/perpetualsVault.js +290 -0
  82. package/dist/packages/pools/api/poolsApiCasting.js +3 -3
  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/routerApiCasting.js +1 -1
  90. package/dist/packages/staking/api/stakingApiCasting.js +3 -3
  91. package/dist/packages/staking/staking.d.ts +1 -1
  92. package/dist/packages/staking/staking.d.ts.map +1 -1
  93. package/dist/packages/sui/sui.d.ts +1 -1
  94. package/dist/packages/sui/sui.d.ts.map +1 -1
  95. package/dist/packages/suiFrens/api/suiFrensApiCasting.js +4 -4
  96. package/dist/packages/suiFrens/stakedSuiFren.d.ts +1 -1
  97. package/dist/packages/suiFrens/stakedSuiFren.d.ts.map +1 -1
  98. package/dist/packages/suiFrens/suiFren.d.ts +1 -1
  99. package/dist/packages/suiFrens/suiFren.d.ts.map +1 -1
  100. package/dist/packages/suiFrens/suiFrens.d.ts +1 -1
  101. package/dist/packages/suiFrens/suiFrens.d.ts.map +1 -1
  102. package/dist/types.d.ts +0 -1
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/types.js +0 -1
  105. package/package.json +1 -1
  106. package/dist/packages/oracle/api/oracleApi.d.ts +0 -21
  107. package/dist/packages/oracle/api/oracleApi.d.ts.map +0 -1
  108. package/dist/packages/oracle/api/oracleApi.js +0 -76
  109. package/dist/packages/oracle/api/oracleApiCasting.d.ts +0 -6
  110. package/dist/packages/oracle/api/oracleApiCasting.d.ts.map +0 -1
  111. package/dist/packages/oracle/api/oracleApiCasting.js +0 -25
  112. package/dist/packages/oracle/oracle.d.ts +0 -15
  113. package/dist/packages/oracle/oracle.d.ts.map +0 -1
  114. package/dist/packages/oracle/oracle.js +0 -46
  115. package/dist/packages/oracle/oracleCastingTypes.d.ts +0 -11
  116. package/dist/packages/oracle/oracleCastingTypes.d.ts.map +0 -1
  117. package/dist/packages/oracle/oracleCastingTypes.js +0 -2
  118. package/dist/packages/oracle/oracleTypes.d.ts +0 -10
  119. package/dist/packages/oracle/oracleTypes.d.ts.map +0 -1
  120. package/dist/packages/oracle/oracleTypes.js +0 -2
@@ -12,26 +12,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PerpetualsMarket = void 0;
13
13
  const __1 = require("../..");
14
14
  const caller_1 = require("../../general/utils/caller");
15
- const iFixedUtils_1 = require("../../general/utils/iFixedUtils");
16
15
  const perpetuals_1 = require("./perpetuals");
17
- const utils_1 = require("./utils");
18
16
  class PerpetualsMarket extends caller_1.Caller {
19
17
  // =========================================================================
20
18
  // Constructor
21
19
  // =========================================================================
22
- constructor(marketData, config) {
23
- super(config, `perpetuals/${marketData.collateralCoinType}/markets/${marketData.objectId}`);
20
+ constructor(marketData, config
21
+ // public readonly Provider?: AftermathApi
22
+ ) {
23
+ super(config, "perpetuals");
24
24
  this.marketData = marketData;
25
- this.getMaxOrderSizeUsd = (inputs) => __awaiter(this, void 0, void 0, function* () {
26
- const { side, price, account, indexPrice, leverage } = inputs;
27
- const maxSize = yield this.fetchApi("max-order-size", {
28
- accountId: account.accountCap.accountId,
29
- collateral: account.collateralBalance(),
25
+ // TODO: move/add to account ?
26
+ this.getMaxOrderSize = (inputs) => __awaiter(this, void 0, void 0, function* () {
27
+ const { side, price, accountId, leverage } = inputs;
28
+ return this.fetchApi("account/max-order-size", {
30
29
  side,
31
30
  price,
32
31
  leverage,
32
+ accountId,
33
+ marketId: this.marketId,
33
34
  });
34
- return Number(maxSize) * this.lotSize() * indexPrice;
35
35
  });
36
36
  // =========================================================================
37
37
  // Calculations
@@ -41,7 +41,7 @@ class PerpetualsMarket extends caller_1.Caller {
41
41
  };
42
42
  this.nextFundingTimeMs = () => {
43
43
  const fundingFrequencyMs = Number(this.marketParams.fundingFrequencyMs);
44
- const lastFundingIntervalNumber = Math.floor(this.marketState.fundingLastUpdateMs / fundingFrequencyMs);
44
+ const lastFundingIntervalNumber = Math.floor(this.marketState.fundingLastUpdateTimestamp / fundingFrequencyMs);
45
45
  return (lastFundingIntervalNumber + 1) * fundingFrequencyMs;
46
46
  };
47
47
  // The funding rate as the difference between book and index TWAPs relative to the index price,
@@ -51,38 +51,20 @@ class PerpetualsMarket extends caller_1.Caller {
51
51
  // To get the rate as a percentage, multiply the output by 100.
52
52
  this.estimatedFundingRate = (inputs) => {
53
53
  const { indexPrice } = inputs;
54
- const premiumTwap = iFixedUtils_1.IFixedUtils.numberFromIFixed(this.marketState.premiumTwap);
54
+ const premiumTwap = this.marketState.premiumTwap;
55
55
  const relativePremium = premiumTwap / indexPrice;
56
56
  const periodAdjustment = Number(this.marketParams.fundingFrequencyMs) /
57
57
  Number(this.marketParams.fundingPeriodMs);
58
58
  return relativePremium * periodAdjustment;
59
59
  };
60
- this.priceToOrderPrice = (inputs) => {
61
- const { price } = inputs;
62
- const lotSize = this.marketParams.lotSize;
63
- const tickSize = this.marketParams.tickSize;
64
- return perpetuals_1.Perpetuals.priceToOrderPrice({
65
- price,
66
- lotSize,
67
- tickSize,
68
- });
69
- };
70
- this.orderPriceToPrice = (inputs) => {
71
- const { orderPrice } = inputs;
72
- const lotSize = this.marketParams.lotSize;
73
- const tickSize = this.marketParams.tickSize;
74
- return perpetuals_1.Perpetuals.orderPriceToPrice({
75
- orderPrice,
76
- lotSize,
77
- tickSize,
78
- });
79
- };
80
60
  this.calcCollateralUsedForOrder = (inputs) => {
81
61
  const { leverage, orderData, indexPrice, collateralPrice } = inputs;
82
- const imr = 1 / leverage;
62
+ const imr = 1 / (leverage || 1);
83
63
  // const imr = this.initialMarginRatio();
84
- const collateralUsd = Number(orderData.initialSize - orderData.filledSize) *
85
- this.lotSize() *
64
+ const collateralUsd =
65
+ // NOTE: is this safe ?
66
+ (Number(orderData.initialSize - orderData.filledSize) /
67
+ __1.Casting.Fixed.fixedOneN9) *
86
68
  indexPrice *
87
69
  imr;
88
70
  const collateral = collateralUsd / collateralPrice;
@@ -91,8 +73,27 @@ class PerpetualsMarket extends caller_1.Caller {
91
73
  collateral,
92
74
  };
93
75
  };
76
+ // =========================================================================
77
+ // Helpers
78
+ // =========================================================================
94
79
  this.roundToValidPrice = (inputs) => {
95
- return Math.round(inputs.price / this.tickSize()) * this.tickSize();
80
+ const ticks = inputs.price / this.tickSize();
81
+ return ((inputs.floor
82
+ ? Math.floor(ticks)
83
+ : inputs.ceil
84
+ ? Math.ceil(ticks)
85
+ : Math.round(ticks)) * this.lotSize());
86
+ };
87
+ this.roundToValidPriceBigInt = (inputs) => {
88
+ const scaledPrice = Number(inputs.price * __1.Casting.Fixed.fixedOneN9);
89
+ // TODO: make sure this calc is safe
90
+ return ((BigInt(inputs.floor
91
+ ? Math.floor(scaledPrice)
92
+ : inputs.ceil
93
+ ? Math.ceil(scaledPrice)
94
+ : Math.round(scaledPrice)) /
95
+ this.marketParams.tickSize) *
96
+ this.marketParams.tickSize);
96
97
  };
97
98
  this.roundToValidSize = (inputs) => {
98
99
  const lots = inputs.size / this.lotSize();
@@ -102,7 +103,37 @@ class PerpetualsMarket extends caller_1.Caller {
102
103
  ? Math.ceil(lots)
103
104
  : Math.round(lots)) * this.lotSize());
104
105
  };
106
+ this.roundToValidSizeBigInt = (inputs) => {
107
+ const scaledSize = Number(inputs.size * __1.Casting.Fixed.fixedOneN9);
108
+ // TODO: make sure this calc is safe
109
+ return ((BigInt(inputs.floor
110
+ ? Math.floor(scaledSize)
111
+ : inputs.ceil
112
+ ? Math.ceil(scaledSize)
113
+ : Math.round(scaledSize)) /
114
+ this.marketParams.lotSize) *
115
+ this.marketParams.lotSize);
116
+ };
117
+ this.emptyPosition = () => {
118
+ return {
119
+ marketId: this.marketId,
120
+ collateralCoinType: this.marketData.collateralCoinType,
121
+ collateral: 0,
122
+ baseAssetAmount: 0,
123
+ quoteAssetNotionalAmount: 0,
124
+ cumFundingRateLong: this.marketData.marketState.cumFundingRateLong,
125
+ cumFundingRateShort: this.marketData.marketState.cumFundingRateShort,
126
+ asksQuantity: 0,
127
+ bidsQuantity: 0,
128
+ pendingOrders: [],
129
+ makerFee: 1, // 100%
130
+ takerFee: 1, // 100%
131
+ leverage: 1,
132
+ };
133
+ };
105
134
  this.marketId = marketData.objectId;
135
+ this.indexPrice = marketData.indexPrice;
136
+ this.collateralPrice = marketData.collateralPrice;
106
137
  this.collateralCoinType = marketData.collateralCoinType;
107
138
  this.marketParams = marketData.marketParams;
108
139
  this.marketState = marketData.marketState;
@@ -111,24 +142,59 @@ class PerpetualsMarket extends caller_1.Caller {
111
142
  // Inspections
112
143
  // =========================================================================
113
144
  // NOTE: should this be entirely removed since data already in orderbook function ?
114
- getOrderbookPrice() {
115
- return this.fetchApi("orderbook-price");
116
- }
117
- get24hrVolume() {
118
- return this.fetchApi("24hr-volume");
145
+ getOrderbookMidPrice() {
146
+ return this.fetchApi("market/orderbook-price", {
147
+ marketId: this.marketId,
148
+ });
119
149
  }
120
- getPrice24hrsAgo() {
121
- return this.fetchApi("price-24hrs-ago");
150
+ get24hrStats() {
151
+ return __awaiter(this, void 0, void 0, function* () {
152
+ const stats = yield new perpetuals_1.Perpetuals(this.config).getMarkets24hrStats({
153
+ marketIds: [this.marketId],
154
+ });
155
+ return stats[0];
156
+ });
122
157
  }
123
158
  getOrderbook() {
124
- return this.fetchApi("orderbook");
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ // TODO: create own endpoint for just orderbook
161
+ // return this.fetchApi<PerpetualsOrderbook>("market/orderbook");
162
+ const marketDatas = yield this.fetchApi("markets", {
163
+ marketIds: [this.marketId],
164
+ collateralCoinType: this.collateralCoinType,
165
+ withOrderbook: true,
166
+ });
167
+ return marketDatas[0].orderbook;
168
+ });
169
+ }
170
+ getPlaceMarketOrderPreview(inputs, abortSignal) {
171
+ return __awaiter(this, void 0, void 0, function* () {
172
+ return this.fetchApi("previews/place-market-order", Object.assign(Object.assign({}, inputs), { collateralCoinType: this.collateralCoinType, accountId: undefined }), abortSignal);
173
+ });
174
+ }
175
+ getPlaceLimitOrderPreview(inputs, abortSignal) {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ return this.fetchApi("previews/place-limit-order", Object.assign(Object.assign({}, inputs), { collateralCoinType: this.collateralCoinType, accountId: undefined }), abortSignal);
178
+ });
125
179
  }
126
180
  // =========================================================================
127
181
  // Trade History
128
182
  // =========================================================================
129
183
  getTradeHistory(inputs) {
130
184
  return __awaiter(this, void 0, void 0, function* () {
131
- return this.fetchApi(`trade-history`, inputs);
185
+ return this.fetchApi("market/trade-history", Object.assign(Object.assign({}, inputs), { marketId: this.marketId }));
186
+ });
187
+ }
188
+ // =========================================================================
189
+ // Prices
190
+ // =========================================================================
191
+ getPrices() {
192
+ return __awaiter(this, void 0, void 0, function* () {
193
+ return (yield new perpetuals_1.Perpetuals(this.config
194
+ // this.Provider
195
+ ).getPrices({
196
+ marketIds: [this.marketId],
197
+ }))[0];
132
198
  });
133
199
  }
134
200
  // =========================================================================
@@ -141,22 +207,13 @@ class PerpetualsMarket extends caller_1.Caller {
141
207
  return perpetuals_1.Perpetuals.lotOrTickSizeToNumber(this.marketParams.tickSize);
142
208
  }
143
209
  maxLeverage() {
144
- return (1 /
145
- __1.Casting.IFixed.numberFromIFixed(this.marketParams.marginRatioInitial));
210
+ return 1 / this.marketParams.marginRatioInitial;
146
211
  }
147
212
  initialMarginRatio() {
148
- return __1.Casting.IFixed.numberFromIFixed(this.marketParams.marginRatioInitial);
213
+ return this.marketParams.marginRatioInitial;
149
214
  }
150
215
  maintenanceMarginRatio() {
151
- return __1.Casting.IFixed.numberFromIFixed(this.marketParams.marginRatioMaintenance);
152
- }
153
- // =========================================================================
154
- // Helpers
155
- // =========================================================================
156
- orderPrice(inputs) {
157
- const { orderId } = inputs;
158
- const orderPrice = utils_1.PerpetualsOrderUtils.price(orderId);
159
- return this.orderPriceToPrice({ orderPrice });
216
+ return this.marketParams.marginRatioMaintenance;
160
217
  }
161
218
  }
162
219
  exports.PerpetualsMarket = PerpetualsMarket;