aftermath-ts-sdk 1.3.23-perps.21 → 1.3.23-wc-0.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.
- package/dist/general/apiHelpers/transactionsApiHelpers.d.ts +0 -3
- package/dist/general/apiHelpers/transactionsApiHelpers.d.ts.map +1 -1
- package/dist/general/apiHelpers/transactionsApiHelpers.js +0 -12
- package/dist/general/providers/aftermath.d.ts +5 -0
- package/dist/general/providers/aftermath.d.ts.map +1 -1
- package/dist/general/providers/aftermath.js +6 -1
- package/dist/general/providers/aftermathApi.d.ts +5 -0
- package/dist/general/providers/aftermathApi.d.ts.map +1 -1
- package/dist/general/providers/aftermathApi.js +5 -0
- package/dist/general/types/castingTypes.d.ts +2 -2
- package/dist/general/types/castingTypes.d.ts.map +1 -1
- package/dist/general/types/configTypes.d.ts +10 -0
- package/dist/general/types/configTypes.d.ts.map +1 -1
- package/dist/general/types/generalTypes.d.ts +0 -4
- package/dist/general/types/generalTypes.d.ts.map +1 -1
- package/dist/general/types/moveErrorsInterface.d.ts +1 -1
- package/dist/general/types/moveErrorsInterface.d.ts.map +1 -1
- package/dist/general/utils/caller.d.ts +2 -17
- package/dist/general/utils/caller.d.ts.map +1 -1
- package/dist/general/utils/caller.js +2 -35
- package/dist/general/utils/casting.d.ts +5 -4
- package/dist/general/utils/casting.d.ts.map +1 -1
- package/dist/general/utils/casting.js +5 -4
- package/dist/general/utils/helpers.d.ts +0 -1
- package/dist/general/utils/helpers.d.ts.map +1 -1
- package/dist/general/utils/helpers.js +6 -35
- package/dist/general/wallet/wallet.d.ts +1 -1
- package/dist/general/wallet/wallet.d.ts.map +1 -1
- package/dist/packages/coin/coin.d.ts +1 -1
- package/dist/packages/coin/coin.d.ts.map +1 -1
- package/dist/packages/coin/coin.js +1 -3
- package/dist/packages/farms/api/farmsApiCasting.js +27 -27
- package/dist/packages/farms/farms.d.ts +1 -1
- package/dist/packages/farms/farms.d.ts.map +1 -1
- package/dist/packages/farms/farmsStakedPosition.d.ts +1 -1
- package/dist/packages/farms/farmsStakedPosition.d.ts.map +1 -1
- package/dist/packages/farms/farmsStakingPool.d.ts +1 -1
- package/dist/packages/farms/farmsStakingPool.d.ts.map +1 -1
- package/dist/packages/faucet/api/faucetApi.d.ts +17 -9
- package/dist/packages/faucet/api/faucetApi.d.ts.map +1 -1
- package/dist/packages/faucet/api/faucetApi.js +49 -44
- package/dist/packages/faucet/api/faucetApiCasting.d.ts.map +1 -1
- package/dist/packages/faucet/api/faucetApiCasting.js +7 -10
- package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts +4 -1
- package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts.map +1 -1
- package/dist/packages/faucet/faucet.d.ts +1 -1
- package/dist/packages/faucet/faucet.d.ts.map +1 -1
- package/dist/packages/faucet/faucet.js +1 -1
- package/dist/packages/faucet/faucetTypes.d.ts +3 -2
- package/dist/packages/faucet/faucetTypes.d.ts.map +1 -1
- package/dist/packages/leveragedStaking/api/leveragedStakingApiCasting.js +3 -3
- package/dist/packages/multisig/multisig.d.ts +1 -1
- package/dist/packages/multisig/multisig.d.ts.map +1 -1
- package/dist/packages/nftAmm/nftAmm.d.ts +1 -1
- package/dist/packages/nftAmm/nftAmm.d.ts.map +1 -1
- package/dist/packages/oracle/api/oracleApi.d.ts +21 -0
- package/dist/packages/oracle/api/oracleApi.d.ts.map +1 -0
- package/dist/packages/oracle/api/oracleApi.js +76 -0
- package/dist/packages/oracle/api/oracleApiCasting.d.ts +6 -0
- package/dist/packages/oracle/api/oracleApiCasting.d.ts.map +1 -0
- package/dist/packages/oracle/api/oracleApiCasting.js +25 -0
- package/dist/packages/oracle/oracle.d.ts +15 -0
- package/dist/packages/oracle/oracle.d.ts.map +1 -0
- package/dist/packages/oracle/oracle.js +46 -0
- package/dist/packages/oracle/oracleCastingTypes.d.ts +11 -0
- package/dist/packages/oracle/oracleCastingTypes.d.ts.map +1 -0
- package/dist/packages/oracle/oracleCastingTypes.js +2 -0
- package/dist/packages/oracle/oracleTypes.d.ts +10 -0
- package/dist/packages/oracle/oracleTypes.d.ts.map +1 -0
- package/dist/packages/oracle/oracleTypes.js +2 -0
- package/dist/packages/perpetuals/api/perpetualsApi.d.ts +203 -11
- package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +1 -1
- package/dist/packages/perpetuals/api/perpetualsApi.js +615 -924
- package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +21 -10
- package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +1 -1
- package/dist/packages/perpetuals/api/perpetualsApiCasting.js +238 -260
- package/dist/packages/perpetuals/index.d.ts +0 -1
- package/dist/packages/perpetuals/index.d.ts.map +1 -1
- package/dist/packages/perpetuals/index.js +0 -1
- package/dist/packages/perpetuals/perpetuals.d.ts +14 -83
- package/dist/packages/perpetuals/perpetuals.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetuals.js +59 -158
- package/dist/packages/perpetuals/perpetualsAccount.d.ts +86 -158
- package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetualsAccount.js +141 -481
- package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +149 -82
- package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetualsMarket.d.ts +20 -55
- package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetualsMarket.js +57 -114
- package/dist/packages/perpetuals/perpetualsTypes.d.ts +280 -586
- package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetualsTypes.js +81 -17
- package/dist/packages/pools/api/poolsApiCasting.js +3 -3
- package/dist/packages/pools/pool.d.ts +1 -1
- package/dist/packages/pools/pool.d.ts.map +1 -1
- package/dist/packages/pools/pools.d.ts +1 -1
- package/dist/packages/pools/pools.d.ts.map +1 -1
- package/dist/packages/referralVault/referralVault.d.ts +1 -1
- package/dist/packages/referralVault/referralVault.d.ts.map +1 -1
- package/dist/packages/router/api/routerApiCasting.js +1 -1
- package/dist/packages/staking/api/stakingApiCasting.js +3 -3
- package/dist/packages/staking/staking.d.ts +1 -1
- package/dist/packages/staking/staking.d.ts.map +1 -1
- package/dist/packages/sui/sui.d.ts +1 -1
- package/dist/packages/sui/sui.d.ts.map +1 -1
- package/dist/packages/suiFrens/api/suiFrensApiCasting.js +4 -4
- package/dist/packages/suiFrens/stakedSuiFren.d.ts +1 -1
- package/dist/packages/suiFrens/stakedSuiFren.d.ts.map +1 -1
- package/dist/packages/suiFrens/suiFren.d.ts +1 -1
- package/dist/packages/suiFrens/suiFren.d.ts.map +1 -1
- package/dist/packages/suiFrens/suiFrens.d.ts +1 -1
- package/dist/packages/suiFrens/suiFrens.d.ts.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/package.json +2 -2
- package/dist/packages/perpetuals/perpetualsVault.d.ts +0 -109
- package/dist/packages/perpetuals/perpetualsVault.d.ts.map +0 -1
- package/dist/packages/perpetuals/perpetualsVault.js +0 -290
|
@@ -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");
|
|
15
16
|
const perpetuals_1 = require("./perpetuals");
|
|
17
|
+
const utils_1 = require("./utils");
|
|
16
18
|
class PerpetualsMarket extends caller_1.Caller {
|
|
17
19
|
// =========================================================================
|
|
18
20
|
// Constructor
|
|
19
21
|
// =========================================================================
|
|
20
|
-
constructor(marketData, config
|
|
21
|
-
|
|
22
|
-
) {
|
|
23
|
-
super(config, "perpetuals");
|
|
22
|
+
constructor(marketData, config) {
|
|
23
|
+
super(config, `perpetuals/${marketData.collateralCoinType}/markets/${marketData.objectId}`);
|
|
24
24
|
this.marketData = marketData;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
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(),
|
|
29
30
|
side,
|
|
30
31
|
price,
|
|
31
32
|
leverage,
|
|
32
|
-
accountId,
|
|
33
|
-
marketId: this.marketId,
|
|
34
33
|
});
|
|
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.
|
|
44
|
+
const lastFundingIntervalNumber = Math.floor(this.marketState.fundingLastUpdateMs / 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,20 +51,38 @@ 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 = this.marketState.premiumTwap;
|
|
54
|
+
const premiumTwap = iFixedUtils_1.IFixedUtils.numberFromIFixed(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
|
+
};
|
|
60
80
|
this.calcCollateralUsedForOrder = (inputs) => {
|
|
61
81
|
const { leverage, orderData, indexPrice, collateralPrice } = inputs;
|
|
62
|
-
const imr = 1 /
|
|
82
|
+
const imr = 1 / leverage;
|
|
63
83
|
// const imr = this.initialMarginRatio();
|
|
64
|
-
const collateralUsd =
|
|
65
|
-
|
|
66
|
-
(Number(orderData.initialSize - orderData.filledSize) /
|
|
67
|
-
__1.Casting.Fixed.fixedOneN9) *
|
|
84
|
+
const collateralUsd = Number(orderData.initialSize - orderData.filledSize) *
|
|
85
|
+
this.lotSize() *
|
|
68
86
|
indexPrice *
|
|
69
87
|
imr;
|
|
70
88
|
const collateral = collateralUsd / collateralPrice;
|
|
@@ -73,27 +91,8 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
73
91
|
collateral,
|
|
74
92
|
};
|
|
75
93
|
};
|
|
76
|
-
// =========================================================================
|
|
77
|
-
// Helpers
|
|
78
|
-
// =========================================================================
|
|
79
94
|
this.roundToValidPrice = (inputs) => {
|
|
80
|
-
|
|
81
|
-
return ((inputs.floor
|
|
82
|
-
? Math.floor(ticks)
|
|
83
|
-
: inputs.ceil
|
|
84
|
-
? Math.ceil(ticks)
|
|
85
|
-
: Math.round(ticks)) * this.tickSize());
|
|
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);
|
|
95
|
+
return Math.round(inputs.price / this.tickSize()) * this.tickSize();
|
|
97
96
|
};
|
|
98
97
|
this.roundToValidSize = (inputs) => {
|
|
99
98
|
const lots = inputs.size / this.lotSize();
|
|
@@ -103,37 +102,7 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
103
102
|
? Math.ceil(lots)
|
|
104
103
|
: Math.round(lots)) * this.lotSize());
|
|
105
104
|
};
|
|
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
|
-
};
|
|
134
105
|
this.marketId = marketData.objectId;
|
|
135
|
-
this.indexPrice = marketData.indexPrice;
|
|
136
|
-
this.collateralPrice = marketData.collateralPrice;
|
|
137
106
|
this.collateralCoinType = marketData.collateralCoinType;
|
|
138
107
|
this.marketParams = marketData.marketParams;
|
|
139
108
|
this.marketState = marketData.marketState;
|
|
@@ -142,59 +111,24 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
142
111
|
// Inspections
|
|
143
112
|
// =========================================================================
|
|
144
113
|
// NOTE: should this be entirely removed since data already in orderbook function ?
|
|
145
|
-
|
|
146
|
-
return this.fetchApi("
|
|
147
|
-
marketId: this.marketId,
|
|
148
|
-
});
|
|
149
|
-
}
|
|
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
|
-
});
|
|
114
|
+
getOrderbookPrice() {
|
|
115
|
+
return this.fetchApi("orderbook-price");
|
|
157
116
|
}
|
|
158
|
-
|
|
159
|
-
return
|
|
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
|
-
});
|
|
117
|
+
get24hrVolume() {
|
|
118
|
+
return this.fetchApi("24hr-volume");
|
|
169
119
|
}
|
|
170
|
-
|
|
171
|
-
return
|
|
172
|
-
return this.fetchApi("previews/place-market-order", Object.assign(Object.assign({}, inputs), { collateralCoinType: this.collateralCoinType, accountId: undefined }), abortSignal);
|
|
173
|
-
});
|
|
120
|
+
getPrice24hrsAgo() {
|
|
121
|
+
return this.fetchApi("price-24hrs-ago");
|
|
174
122
|
}
|
|
175
|
-
|
|
176
|
-
return
|
|
177
|
-
return this.fetchApi("previews/place-limit-order", Object.assign(Object.assign({}, inputs), { collateralCoinType: this.collateralCoinType, accountId: undefined }), abortSignal);
|
|
178
|
-
});
|
|
123
|
+
getOrderbook() {
|
|
124
|
+
return this.fetchApi("orderbook");
|
|
179
125
|
}
|
|
180
126
|
// =========================================================================
|
|
181
127
|
// Trade History
|
|
182
128
|
// =========================================================================
|
|
183
129
|
getTradeHistory(inputs) {
|
|
184
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
-
return this.fetchApi(
|
|
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];
|
|
131
|
+
return this.fetchApi(`trade-history`, inputs);
|
|
198
132
|
});
|
|
199
133
|
}
|
|
200
134
|
// =========================================================================
|
|
@@ -207,13 +141,22 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
207
141
|
return perpetuals_1.Perpetuals.lotOrTickSizeToNumber(this.marketParams.tickSize);
|
|
208
142
|
}
|
|
209
143
|
maxLeverage() {
|
|
210
|
-
return 1 /
|
|
144
|
+
return (1 /
|
|
145
|
+
__1.Casting.IFixed.numberFromIFixed(this.marketParams.marginRatioInitial));
|
|
211
146
|
}
|
|
212
147
|
initialMarginRatio() {
|
|
213
|
-
return this.marketParams.marginRatioInitial;
|
|
148
|
+
return __1.Casting.IFixed.numberFromIFixed(this.marketParams.marginRatioInitial);
|
|
214
149
|
}
|
|
215
150
|
maintenanceMarginRatio() {
|
|
216
|
-
return this.marketParams.marginRatioMaintenance;
|
|
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 });
|
|
217
160
|
}
|
|
218
161
|
}
|
|
219
162
|
exports.PerpetualsMarket = PerpetualsMarket;
|