aftermath-ts-sdk 1.2.52 → 1.2.53
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/types/configTypes.d.ts +1 -0
- package/dist/general/types/configTypes.d.ts.map +1 -1
- package/dist/general/utils/caller.d.ts +1 -1
- package/dist/general/utils/caller.d.ts.map +1 -1
- package/dist/general/utils/caller.js +13 -3
- package/dist/general/utils/casting.d.ts +2 -0
- package/dist/general/utils/casting.d.ts.map +1 -1
- package/dist/general/utils/casting.js +2 -0
- package/dist/packages/farms/farms.d.ts +13 -10
- package/dist/packages/farms/farms.d.ts.map +1 -1
- package/dist/packages/farms/farms.js +17 -43
- package/dist/packages/farms/farmsStakedPosition.js +1 -1
- package/dist/packages/farms/farmsStakingPool.d.ts +2 -0
- package/dist/packages/farms/farmsStakingPool.d.ts.map +1 -1
- package/dist/packages/farms/farmsStakingPool.js +21 -3
- package/dist/packages/farms/farmsTypes.d.ts +8 -0
- package/dist/packages/farms/farmsTypes.d.ts.map +1 -1
- package/dist/packages/farms/farmsTypes.js +29 -0
- package/dist/packages/oracle/api/oracleApi.d.ts +9 -1
- package/dist/packages/oracle/api/oracleApi.d.ts.map +1 -1
- package/dist/packages/oracle/api/oracleApi.js +41 -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.js +1 -1
- 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 +9 -1
- package/dist/packages/oracle/oracleTypes.d.ts.map +1 -1
- package/dist/packages/perpetuals/api/perpetualsApi.d.ts +34 -10
- package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +1 -1
- package/dist/packages/perpetuals/api/perpetualsApi.js +499 -100
- package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +6 -2
- package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +1 -1
- package/dist/packages/perpetuals/api/perpetualsApiCasting.js +89 -6
- package/dist/packages/perpetuals/perpetualsAccount.d.ts +43 -4
- package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetualsAccount.js +63 -15
- package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +52 -2
- package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetualsMarket.d.ts +5 -7
- package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetualsMarket.js +12 -66
- package/dist/packages/perpetuals/perpetualsTypes.d.ts +117 -199
- package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +1 -1
- package/dist/packages/perpetuals/perpetualsTypes.js +26 -43
- package/dist/packages/pools/api/poolsApiCasting.d.ts.map +1 -1
- package/dist/packages/pools/api/poolsApiCasting.js +0 -1
- package/dist/packages/pools/pool.d.ts +7 -22
- package/dist/packages/pools/pool.d.ts.map +1 -1
- package/dist/packages/pools/pool.js +16 -30
- package/dist/packages/pools/pools.d.ts +7 -1
- package/dist/packages/pools/pools.d.ts.map +1 -1
- package/dist/packages/pools/pools.js +17 -2
- package/dist/packages/router/api/routerApi.d.ts +2 -2
- package/dist/packages/router/api/routerApi.d.ts.map +1 -1
- package/dist/packages/router/api/routerApi.js +19 -11
- package/dist/packages/router/router.d.ts +1 -1
- package/dist/packages/router/router.d.ts.map +1 -1
- package/dist/packages/router/router.js +2 -2
- package/dist/packages/router/routerTypes.d.ts +3 -2
- package/dist/packages/router/routerTypes.d.ts.map +1 -1
- package/dist/packages/staking/staking.d.ts +4 -1
- package/dist/packages/staking/staking.d.ts.map +1 -1
- package/dist/packages/staking/staking.js +5 -0
- package/dist/packages/staking/stakingTypes.d.ts +5 -0
- package/dist/packages/staking/stakingTypes.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 +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PerpetualsAccount } from "../..";
|
|
2
2
|
import { Caller } from "../../general/utils/caller";
|
|
3
|
-
import { CoinType, PerpetualsMarketId, PerpetualsMarketParams, PerpetualsMarketState, PerpetualsOrderData, PerpetualsOrderId, PerpetualsOrderPrice, PerpetualsOrderSide,
|
|
3
|
+
import { CoinType, PerpetualsMarketId, PerpetualsMarketParams, PerpetualsMarketState, PerpetualsOrderData, PerpetualsOrderId, PerpetualsOrderPrice, PerpetualsOrderSide, PerpetualsOrderbook, Timestamp, PerpetualsMarketData, ApiPerpetualsMarket24hrVolumeResponse, ApiDataWithCursorBody, PerpetualsTradeHistoryWithCursor, CallerConfig } from "../../types";
|
|
4
4
|
export declare class PerpetualsMarket extends Caller {
|
|
5
5
|
marketData: PerpetualsMarketData;
|
|
6
6
|
readonly marketId: PerpetualsMarketId;
|
|
@@ -8,13 +8,10 @@ export declare class PerpetualsMarket extends Caller {
|
|
|
8
8
|
readonly marketParams: PerpetualsMarketParams;
|
|
9
9
|
readonly marketState: PerpetualsMarketState;
|
|
10
10
|
constructor(marketData: PerpetualsMarketData, config?: CallerConfig);
|
|
11
|
-
getOrderbookPrice(): Promise<number>;
|
|
11
|
+
getOrderbookPrice(): Promise<number | undefined>;
|
|
12
12
|
get24hrVolume(): Promise<ApiPerpetualsMarket24hrVolumeResponse>;
|
|
13
13
|
getPrice24hrsAgo(): Promise<number>;
|
|
14
|
-
|
|
15
|
-
orderbookPrice: number;
|
|
16
|
-
priceBucketSize: number;
|
|
17
|
-
}): Promise<PerpetualsOrderbookState>;
|
|
14
|
+
getOrderbook(): Promise<PerpetualsOrderbook>;
|
|
18
15
|
getMaxOrderSizeUsd: (inputs: {
|
|
19
16
|
account: PerpetualsAccount;
|
|
20
17
|
indexPrice: number;
|
|
@@ -47,6 +44,7 @@ export declare class PerpetualsMarket extends Caller {
|
|
|
47
44
|
tickSize(): number;
|
|
48
45
|
maxLeverage(): number;
|
|
49
46
|
initialMarginRatio(): number;
|
|
47
|
+
maintenanceMarginRatio(): number;
|
|
50
48
|
orderPrice(inputs: {
|
|
51
49
|
orderId: PerpetualsOrderId;
|
|
52
50
|
}): number;
|
|
@@ -56,7 +54,7 @@ export declare class PerpetualsMarket extends Caller {
|
|
|
56
54
|
roundToValidSize: (inputs: {
|
|
57
55
|
size: number;
|
|
58
56
|
floor?: boolean;
|
|
57
|
+
ceil?: boolean;
|
|
59
58
|
}) => number;
|
|
60
|
-
private simulateClosePosition;
|
|
61
59
|
}
|
|
62
60
|
//# sourceMappingURL=perpetualsMarket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perpetualsMarket.d.ts","sourceRoot":"","sources":["../../../src/packages/perpetuals/perpetualsMarket.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD,OAAO,
|
|
1
|
+
{"version":3,"file":"perpetualsMarket.d.ts","sourceRoot":"","sources":["../../../src/packages/perpetuals/perpetualsMarket.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD,OAAO,EAIN,QAAQ,EAKR,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAGnB,SAAS,EAET,oBAAoB,EAIpB,qCAAqC,EACrC,qBAAqB,EACrB,gCAAgC,EAChC,YAAY,EACZ,MAAM,aAAa,CAAC;AAIrB,qBAAa,gBAAiB,SAAQ,MAAM;IAenC,UAAU,EAAE,oBAAoB;IAVxC,SAAgB,QAAQ,EAAE,kBAAkB,CAAC;IAC7C,SAAgB,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,SAAgB,YAAY,EAAE,sBAAsB,CAAC;IACrD,SAAgB,WAAW,EAAE,qBAAqB,CAAC;gBAO3C,UAAU,EAAE,oBAAoB,EACvC,MAAM,CAAC,EAAE,YAAY;IAiBf,iBAAiB;IAIjB,aAAa,IAAI,OAAO,CAAC,qCAAqC,CAAC;IAM/D,gBAAgB;IAIhB,YAAY;IAIZ,kBAAkB,WAAkB;QAC1C,OAAO,EAAE,iBAAiB,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,oBAAoB,CAAC;KAC7B,KAAG,QAAQ,MAAM,CAAC,CAajB;IAMW,eAAe,CAAC,MAAM,EAAE,qBAAqB,CAAC,SAAS,CAAC;IAW9D,sBAAsB,QAAO,SAAS,CAE3C;IAEK,iBAAiB,QAAO,SAAS,CAMtC;IAOK,oBAAoB,WAAY;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM,CAWpE;IAEK,iBAAiB,WAAY;QACnC,KAAK,EAAE,MAAM,CAAC;KACd,KAAG,oBAAoB,CAStB;IAEK,iBAAiB,WAAY;QACnC,UAAU,EAAE,oBAAoB,CAAC;KACjC,KAAG,MAAM,CASR;IAEK,0BAA0B,WAAY;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,mBAAmB,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACxB;oBACY,MAAM;uBACH,MAAM;MAkBpB;IAMK,OAAO;IAIP,QAAQ;IAIR,WAAW;IASX,kBAAkB;IAMlB,sBAAsB;IAUtB,UAAU,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAAG,MAAM;IAM1D,iBAAiB,WAAY;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,YAEnD;IAEK,gBAAgB,WAAY;QAClC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KACf,YASC;CAqGF"}
|
|
@@ -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,
|
|
@@ -96,8 +96,11 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
96
96
|
};
|
|
97
97
|
this.roundToValidSize = (inputs) => {
|
|
98
98
|
const lots = inputs.size / this.lotSize();
|
|
99
|
-
return ((inputs.floor
|
|
100
|
-
|
|
99
|
+
return ((inputs.floor
|
|
100
|
+
? Math.floor(lots)
|
|
101
|
+
: inputs.ceil
|
|
102
|
+
? Math.ceil(lots)
|
|
103
|
+
: Math.round(lots)) * this.lotSize());
|
|
101
104
|
};
|
|
102
105
|
this.marketId = marketData.objectId;
|
|
103
106
|
this.collateralCoinType = marketData.collateralCoinType;
|
|
@@ -107,6 +110,7 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
107
110
|
// =========================================================================
|
|
108
111
|
// Inspections
|
|
109
112
|
// =========================================================================
|
|
113
|
+
// NOTE: should this be entirely removed since data already in orderbook function ?
|
|
110
114
|
getOrderbookPrice() {
|
|
111
115
|
return this.fetchApi("orderbook-price");
|
|
112
116
|
}
|
|
@@ -116,8 +120,8 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
116
120
|
getPrice24hrsAgo() {
|
|
117
121
|
return this.fetchApi("price-24hrs-ago");
|
|
118
122
|
}
|
|
119
|
-
|
|
120
|
-
return this.fetchApi("orderbook
|
|
123
|
+
getOrderbook() {
|
|
124
|
+
return this.fetchApi("orderbook");
|
|
121
125
|
}
|
|
122
126
|
// =========================================================================
|
|
123
127
|
// Trade History
|
|
@@ -143,6 +147,9 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
143
147
|
initialMarginRatio() {
|
|
144
148
|
return __1.Casting.IFixed.numberFromIFixed(this.marketParams.marginRatioInitial);
|
|
145
149
|
}
|
|
150
|
+
maintenanceMarginRatio() {
|
|
151
|
+
return __1.Casting.IFixed.numberFromIFixed(this.marketParams.marginRatioMaintenance);
|
|
152
|
+
}
|
|
146
153
|
// =========================================================================
|
|
147
154
|
// Helpers
|
|
148
155
|
// =========================================================================
|
|
@@ -151,66 +158,5 @@ class PerpetualsMarket extends caller_1.Caller {
|
|
|
151
158
|
const orderPrice = utils_1.PerpetualsOrderUtils.price(orderId);
|
|
152
159
|
return this.orderPriceToPrice({ orderPrice });
|
|
153
160
|
}
|
|
154
|
-
// =========================================================================
|
|
155
|
-
// Private Helpers
|
|
156
|
-
// =========================================================================
|
|
157
|
-
// private getExecutionPrice(inputs: {
|
|
158
|
-
// side: PerpetualsOrderSide;
|
|
159
|
-
// size: bigint;
|
|
160
|
-
// collateral: Balance;
|
|
161
|
-
// price?: PerpetualsOrderPrice;
|
|
162
|
-
// }) {
|
|
163
|
-
// return this.fetchApi<
|
|
164
|
-
// ApiPerpetualsExecutionPriceResponse,
|
|
165
|
-
// ApiPerpetualsExecutionPriceBody
|
|
166
|
-
// >("execution-price", {
|
|
167
|
-
// ...inputs,
|
|
168
|
-
// lotSize: this.lotSize(),
|
|
169
|
-
// basePriceFeedId: this.marketParams.basePriceFeedId,
|
|
170
|
-
// collateralPriceFeedId: this.marketParams.collateralPriceFeedId,
|
|
171
|
-
// });
|
|
172
|
-
// }
|
|
173
|
-
simulateClosePosition(inputs) {
|
|
174
|
-
const { position, indexPrice, executionPrice, size, percentFilled } = inputs;
|
|
175
|
-
const imr = 1 / position.leverage;
|
|
176
|
-
// const imr = this.initialMarginRatio();
|
|
177
|
-
const takerFee = __1.Casting.IFixed.numberFromIFixed(this.marketParams.takerFee);
|
|
178
|
-
const positionSizeNum = __1.Casting.IFixed.numberFromIFixed(position.baseAssetAmount);
|
|
179
|
-
const positionBidsNum = __1.Casting.IFixed.numberFromIFixed(position.bidsQuantity);
|
|
180
|
-
const positionAsksNum = __1.Casting.IFixed.numberFromIFixed(position.asksQuantity);
|
|
181
|
-
const netSizeBefore = Math.max(Math.abs(positionSizeNum + positionBidsNum), Math.abs(positionSizeNum - positionAsksNum));
|
|
182
|
-
let sizeFilled = size * percentFilled;
|
|
183
|
-
let sizePosted = size * (1 - percentFilled);
|
|
184
|
-
let positionSizeFilledNum;
|
|
185
|
-
let positionSizePosted;
|
|
186
|
-
const positionSizeAbs = Math.abs(positionSizeNum);
|
|
187
|
-
if (sizeFilled >= positionSizeAbs) {
|
|
188
|
-
positionSizeFilledNum = positionSizeAbs;
|
|
189
|
-
positionSizePosted = 0;
|
|
190
|
-
sizeFilled = sizeFilled - positionSizeAbs;
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
positionSizeFilledNum = sizeFilled;
|
|
194
|
-
positionSizePosted = positionSizeAbs - sizeFilled;
|
|
195
|
-
sizeFilled = 0;
|
|
196
|
-
sizePosted = sizePosted - positionSizePosted;
|
|
197
|
-
}
|
|
198
|
-
const netSizeAfter = Math.max(Math.abs(positionSizeAbs -
|
|
199
|
-
positionSizeFilledNum +
|
|
200
|
-
positionBidsNum -
|
|
201
|
-
positionSizePosted), Math.abs(positionSizeAbs -
|
|
202
|
-
positionSizeFilledNum +
|
|
203
|
-
positionAsksNum -
|
|
204
|
-
positionSizePosted));
|
|
205
|
-
const entryPrice = perpetuals_1.Perpetuals.calcEntryPrice(position);
|
|
206
|
-
const uPnl = positionSizeFilledNum * (indexPrice - entryPrice);
|
|
207
|
-
const rPnl = positionSizeFilledNum * (executionPrice - entryPrice);
|
|
208
|
-
// pessimistically don't consider positive pnl since the order may not actually be
|
|
209
|
-
// matched at the sell price
|
|
210
|
-
const fees = Math.abs(positionSizeFilledNum) * executionPrice * takerFee;
|
|
211
|
-
const marginDelta = rPnl - uPnl - fees;
|
|
212
|
-
const reqDelta = (netSizeAfter - netSizeBefore) * indexPrice * imr;
|
|
213
|
-
return { marginDelta, reqDelta, sizeFilled, sizePosted };
|
|
214
|
-
}
|
|
215
161
|
}
|
|
216
162
|
exports.PerpetualsMarket = PerpetualsMarket;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { BcsType } from "@mysten/sui/bcs";
|
|
2
|
-
import { ApiDataWithCursorBody, Balance, Event, IFixed, Object, ObjectDigest, ObjectId, ObjectVersion, Percentage, SuiAddress, Timestamp, TransactionDigest } from "../../general/types/generalTypes";
|
|
2
|
+
import { AnyObjectType, ApiDataWithCursorBody, Balance, Event, IFixed, Object, ObjectDigest, ObjectId, ObjectVersion, PackageId, Percentage, SuiAddress, Timestamp, TransactionDigest } from "../../general/types/generalTypes";
|
|
3
3
|
import { CoinDecimal, CoinSymbol, CoinType } from "../coin/coinTypes";
|
|
4
4
|
export type PerpetualsMarketId = ObjectId;
|
|
5
5
|
export type PerpetualsAccountId = bigint;
|
|
6
6
|
export type PerpetualsOrderId = bigint;
|
|
7
|
+
export type PerpetualsOrderIdAsString = string;
|
|
7
8
|
export type PerpetualsOrderPrice = bigint;
|
|
8
9
|
export declare enum PerpetualsOrderSide {
|
|
9
10
|
Ask = 1,
|
|
@@ -32,6 +33,7 @@ export interface PerpetualsVault extends Object {
|
|
|
32
33
|
scalingFactor: bigint;
|
|
33
34
|
}
|
|
34
35
|
export interface PerpetualsMarketData {
|
|
36
|
+
packageId: PackageId;
|
|
35
37
|
objectId: ObjectId;
|
|
36
38
|
initialSharedVersion: ObjectVersion;
|
|
37
39
|
collateralCoinType: CoinType;
|
|
@@ -95,34 +97,38 @@ export interface PerpetualsMarketParams {
|
|
|
95
97
|
export interface PerpetualsMarketState {
|
|
96
98
|
cumFundingRateLong: IFixed;
|
|
97
99
|
cumFundingRateShort: IFixed;
|
|
98
|
-
|
|
100
|
+
fundingLastUpdateMs: Timestamp;
|
|
99
101
|
premiumTwap: IFixed;
|
|
100
|
-
|
|
102
|
+
premiumTwapLastUpdateMs: Timestamp;
|
|
101
103
|
spreadTwap: IFixed;
|
|
102
|
-
|
|
104
|
+
spreadTwapLastUpdateMs: Timestamp;
|
|
103
105
|
openInterest: IFixed;
|
|
104
106
|
feesAccrued: IFixed;
|
|
105
107
|
}
|
|
106
108
|
export interface PerpetualsMarketCandleDataPoint {
|
|
107
|
-
|
|
109
|
+
time: Timestamp;
|
|
108
110
|
high: number;
|
|
109
111
|
low: number;
|
|
110
112
|
open: number;
|
|
111
113
|
close: number;
|
|
112
114
|
volume: number;
|
|
113
115
|
}
|
|
114
|
-
export interface
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
116
|
+
export interface PerpetualsOrderbook {
|
|
117
|
+
bids: Record<PerpetualsOrderIdAsString, {
|
|
118
|
+
accountId: PerpetualsAccountId;
|
|
119
|
+
size: number;
|
|
120
|
+
price: number;
|
|
121
|
+
}>;
|
|
122
|
+
asks: Record<PerpetualsOrderIdAsString, {
|
|
123
|
+
accountId: PerpetualsAccountId;
|
|
124
|
+
size: number;
|
|
125
|
+
price: number;
|
|
126
|
+
}>;
|
|
127
|
+
asksTotalSize: number;
|
|
128
|
+
bidsTotalSize: number;
|
|
129
|
+
bestBidPrice: number | undefined;
|
|
130
|
+
bestAskPrice: number | undefined;
|
|
131
|
+
midPrice: number | undefined;
|
|
126
132
|
}
|
|
127
133
|
export interface PerpetualsOrderData {
|
|
128
134
|
orderId: PerpetualsOrderId;
|
|
@@ -135,89 +141,10 @@ export interface PerpetualsFilledOrderData {
|
|
|
135
141
|
size: number;
|
|
136
142
|
price: number;
|
|
137
143
|
}
|
|
138
|
-
export interface PerpetualsOrderbook extends Object {
|
|
139
|
-
asks: PerpetualsOrderedMap<PerpetualsOrder>;
|
|
140
|
-
bids: PerpetualsOrderedMap<PerpetualsOrder>;
|
|
141
|
-
counter: bigint;
|
|
142
|
-
}
|
|
143
|
-
export interface PerpetualsOrder {
|
|
144
|
-
accountId: PerpetualsAccountId;
|
|
145
|
-
size: bigint;
|
|
146
|
-
}
|
|
147
144
|
export interface PerpetualsOrderInfo {
|
|
148
145
|
price: PerpetualsOrderPrice;
|
|
149
146
|
size: bigint;
|
|
150
147
|
}
|
|
151
|
-
export interface PerpetualsOrderedMap<T> extends Object {
|
|
152
|
-
size: bigint;
|
|
153
|
-
counter: bigint;
|
|
154
|
-
root: bigint;
|
|
155
|
-
first: bigint;
|
|
156
|
-
branchMin: bigint;
|
|
157
|
-
branchMax: bigint;
|
|
158
|
-
leafMin: bigint;
|
|
159
|
-
leafMax: bigint;
|
|
160
|
-
branchesMergeMax: bigint;
|
|
161
|
-
leavesMergeMax: bigint;
|
|
162
|
-
}
|
|
163
|
-
declare function PerpetualsMap<T extends BcsType<any>>(T: T): BcsType<{
|
|
164
|
-
id: string;
|
|
165
|
-
size: string;
|
|
166
|
-
counter: string;
|
|
167
|
-
root: string;
|
|
168
|
-
first: string;
|
|
169
|
-
branchMin: string;
|
|
170
|
-
branchMax: string;
|
|
171
|
-
leafMin: string;
|
|
172
|
-
leafMax: string;
|
|
173
|
-
branchesMergeMax: string;
|
|
174
|
-
leavesMergeMax: string;
|
|
175
|
-
}, {
|
|
176
|
-
id: string | Uint8Array;
|
|
177
|
-
size: string | number | bigint;
|
|
178
|
-
counter: string | number | bigint;
|
|
179
|
-
root: string | number | bigint;
|
|
180
|
-
first: string | number | bigint;
|
|
181
|
-
branchMin: string | number | bigint;
|
|
182
|
-
branchMax: string | number | bigint;
|
|
183
|
-
leafMin: string | number | bigint;
|
|
184
|
-
leafMax: string | number | bigint;
|
|
185
|
-
branchesMergeMax: string | number | bigint;
|
|
186
|
-
leavesMergeMax: string | number | bigint;
|
|
187
|
-
}>;
|
|
188
|
-
export interface PerpetualsBranch {
|
|
189
|
-
keys: bigint[];
|
|
190
|
-
kids: bigint[];
|
|
191
|
-
}
|
|
192
|
-
export declare const Branch: BcsType<{
|
|
193
|
-
keys: string[];
|
|
194
|
-
kids: string[];
|
|
195
|
-
}, {
|
|
196
|
-
keys: Iterable<string | number | bigint> & {
|
|
197
|
-
length: number;
|
|
198
|
-
};
|
|
199
|
-
kids: Iterable<string | number | bigint> & {
|
|
200
|
-
length: number;
|
|
201
|
-
};
|
|
202
|
-
}>;
|
|
203
|
-
export interface PerpetualsLeaf<V> {
|
|
204
|
-
keys: bigint[];
|
|
205
|
-
vals: V[];
|
|
206
|
-
next: bigint;
|
|
207
|
-
}
|
|
208
|
-
export declare function Leaf<V extends BcsType<any>>(V: V): BcsType<{
|
|
209
|
-
keys: string[];
|
|
210
|
-
vals: any[];
|
|
211
|
-
next: string;
|
|
212
|
-
}, {
|
|
213
|
-
keys: Iterable<string | number | bigint> & {
|
|
214
|
-
length: number;
|
|
215
|
-
};
|
|
216
|
-
vals: Iterable<any> & {
|
|
217
|
-
length: number;
|
|
218
|
-
};
|
|
219
|
-
next: string | number | bigint;
|
|
220
|
-
}>;
|
|
221
148
|
export interface PerpetualsAccountData {
|
|
222
149
|
accountCap: PerpetualsAccountCap;
|
|
223
150
|
account: PerpetualsAccountObject;
|
|
@@ -225,30 +152,32 @@ export interface PerpetualsAccountData {
|
|
|
225
152
|
export interface PerpetualsAccountObject {
|
|
226
153
|
positions: PerpetualsPosition[];
|
|
227
154
|
}
|
|
155
|
+
export interface UpdatedMarketVersionEvent extends Event {
|
|
156
|
+
marketId: PerpetualsMarketId;
|
|
157
|
+
version: bigint;
|
|
158
|
+
}
|
|
159
|
+
export declare const isUpdatedMarketVersion: (event: Event) => event is UpdatedMarketVersionEvent;
|
|
228
160
|
export interface PerpetualsAccountCollateralChangesWithCursor {
|
|
229
161
|
collateralChanges: PerpetualsAccountCollateralChange[];
|
|
230
162
|
nextCursor: Timestamp | undefined;
|
|
231
163
|
}
|
|
232
|
-
export type PerpetualsCollateralEventName = "Withdraw" | "Deposit" | "Allocate" | "Deallocate" | "SettleFunding" | "Liquidated" | "FilledTaker" | "FilledMaker";
|
|
233
164
|
export type PerpetualsAccountCollateralChange = {
|
|
234
165
|
timestamp: Timestamp;
|
|
235
166
|
txDigest: TransactionDigest;
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
collateralChange:
|
|
239
|
-
} | {
|
|
167
|
+
marketId: PerpetualsMarketId | undefined;
|
|
168
|
+
eventType: AnyObjectType;
|
|
169
|
+
collateralChange: number;
|
|
240
170
|
collateralChangeUsd: number;
|
|
241
|
-
}
|
|
171
|
+
};
|
|
242
172
|
export interface PerpetualsAccountTradesWithCursor {
|
|
243
173
|
trades: PerpetualsAccountTrade[];
|
|
244
174
|
nextCursor: Timestamp | undefined;
|
|
245
175
|
}
|
|
246
|
-
export type PerpetualsTradeEventName = "Canceled" | "Posted" | "FilledMaker" | "FilledTaker" | "Liquidated";
|
|
247
176
|
export type PerpetualsAccountTrade = {
|
|
248
177
|
timestamp: Timestamp;
|
|
249
178
|
txDigest: TransactionDigest;
|
|
250
179
|
marketId: PerpetualsMarketId;
|
|
251
|
-
|
|
180
|
+
eventType: AnyObjectType;
|
|
252
181
|
side: PerpetualsOrderSide;
|
|
253
182
|
} & ({
|
|
254
183
|
orderPrice: bigint;
|
|
@@ -365,7 +294,7 @@ export interface FilledTakerOrderEvent extends Event {
|
|
|
365
294
|
quoteAssetDelta: IFixed;
|
|
366
295
|
liquidatedVolume: IFixed;
|
|
367
296
|
}
|
|
368
|
-
export type PerpetualsOrderEvent = CanceledOrderEvent | PostedOrderReceiptEvent | FilledMakerOrderEvent | FilledTakerOrderEvent | LiquidatedEvent;
|
|
297
|
+
export type PerpetualsOrderEvent = CanceledOrderEvent | PostedOrderReceiptEvent | FilledMakerOrderEvent | FilledTakerOrderEvent | LiquidatedEvent | ReducedOrderEvent;
|
|
369
298
|
export interface PostedOrderReceiptEvent extends Event {
|
|
370
299
|
accountId: PerpetualsAccountId;
|
|
371
300
|
marketId: PerpetualsMarketId;
|
|
@@ -373,11 +302,18 @@ export interface PostedOrderReceiptEvent extends Event {
|
|
|
373
302
|
size: bigint;
|
|
374
303
|
side: PerpetualsOrderSide;
|
|
375
304
|
}
|
|
305
|
+
export interface ReducedOrderEvent extends Event {
|
|
306
|
+
marketId: PerpetualsMarketId;
|
|
307
|
+
accountId: PerpetualsAccountId;
|
|
308
|
+
sizeChange: bigint;
|
|
309
|
+
orderId: PerpetualsOrderId;
|
|
310
|
+
}
|
|
376
311
|
export declare const isCanceledOrderEvent: (event: Event) => event is CanceledOrderEvent;
|
|
377
312
|
export declare const isPostedOrderEvent: (event: Event) => event is PostedOrderEvent;
|
|
378
313
|
export declare const isPostedOrderReceiptEvent: (event: Event) => event is PostedOrderReceiptEvent;
|
|
379
314
|
export declare const isFilledMakerOrderEvent: (event: Event) => event is FilledMakerOrderEvent;
|
|
380
315
|
export declare const isFilledTakerOrderEvent: (event: Event) => event is FilledTakerOrderEvent;
|
|
316
|
+
export declare const isReducedOrderEvent: (event: Event) => event is ReducedOrderEvent;
|
|
381
317
|
export interface UpdatedPremiumTwapEvent extends Event {
|
|
382
318
|
marketId: PerpetualsMarketId;
|
|
383
319
|
bookPrice: IFixed;
|
|
@@ -393,15 +329,20 @@ export interface UpdatedSpreadTwapEvent extends Event {
|
|
|
393
329
|
spreadTwapLastUpdateMs: number;
|
|
394
330
|
}
|
|
395
331
|
export type PerpetualsTwapEvent = UpdatedPremiumTwapEvent | UpdatedSpreadTwapEvent;
|
|
332
|
+
export declare const isUpdatedPremiumTwapEvent: (event: Event) => event is UpdatedPremiumTwapEvent;
|
|
333
|
+
export declare const isUpdatedSpreadTwapEvent: (event: Event) => event is UpdatedSpreadTwapEvent;
|
|
334
|
+
export interface UpdatedFundingEvent extends Event {
|
|
335
|
+
marketId: PerpetualsMarketId;
|
|
336
|
+
cumFundingRateLong: IFixed;
|
|
337
|
+
cumFundingRateShort: IFixed;
|
|
338
|
+
fundingLastUpdateMs: Timestamp;
|
|
339
|
+
}
|
|
340
|
+
export declare const isUpdatedFundingEvent: (event: Event) => event is UpdatedFundingEvent;
|
|
396
341
|
export interface ApiPerpetualsAccountsBody {
|
|
397
342
|
walletAddress: SuiAddress;
|
|
398
343
|
}
|
|
399
|
-
export type ApiPerpetualsAccountOrderHistoryBody = ApiDataWithCursorBody<Timestamp
|
|
400
|
-
|
|
401
|
-
};
|
|
402
|
-
export type ApiPerpetualsAccountCollateralHistoryBody = ApiDataWithCursorBody<Timestamp> & {
|
|
403
|
-
accountCapId: ObjectId;
|
|
404
|
-
};
|
|
344
|
+
export type ApiPerpetualsAccountOrderHistoryBody = ApiDataWithCursorBody<Timestamp>;
|
|
345
|
+
export type ApiPerpetualsAccountCollateralHistoryBody = ApiDataWithCursorBody<Timestamp>;
|
|
405
346
|
export interface ApiPerpetualsSetPositionLeverageBody {
|
|
406
347
|
walletAddress: SuiAddress;
|
|
407
348
|
bytes: string;
|
|
@@ -414,6 +355,28 @@ export type ApiPerpetualsPreviewOrderBody = (Omit<ApiPerpetualsLimitOrderBody, "
|
|
|
414
355
|
tickSize: number;
|
|
415
356
|
leverage: number;
|
|
416
357
|
};
|
|
358
|
+
export interface ApiPerpetualsPreviewCancelOrdersBody {
|
|
359
|
+
accountId: PerpetualsAccountId;
|
|
360
|
+
collateralCoinType: CoinType;
|
|
361
|
+
marketIdsToData: Record<PerpetualsMarketId, {
|
|
362
|
+
orderIds: PerpetualsOrderId[];
|
|
363
|
+
leverage: number;
|
|
364
|
+
}>;
|
|
365
|
+
}
|
|
366
|
+
export interface ApiPerpetualsPreviewReduceOrdersBody {
|
|
367
|
+
marketId: PerpetualsMarketId;
|
|
368
|
+
accountId: PerpetualsAccountId;
|
|
369
|
+
leverage: number;
|
|
370
|
+
orderIds: PerpetualsOrderId[];
|
|
371
|
+
sizesToSubtract: bigint[];
|
|
372
|
+
collateralCoinType: CoinType;
|
|
373
|
+
}
|
|
374
|
+
export type ApiPerpetualsPreviewReduceOrdersResponse = {
|
|
375
|
+
error: string;
|
|
376
|
+
} | {
|
|
377
|
+
positionAfterReduceOrders: PerpetualsPosition;
|
|
378
|
+
collateralChange: number;
|
|
379
|
+
};
|
|
417
380
|
export type ApiPerpetualsPreviewOrderResponse = {
|
|
418
381
|
error: string;
|
|
419
382
|
} | {
|
|
@@ -427,12 +390,12 @@ export type ApiPerpetualsPreviewOrderResponse = {
|
|
|
427
390
|
collateralChange: number;
|
|
428
391
|
executionPrice: number;
|
|
429
392
|
};
|
|
430
|
-
export
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
}
|
|
393
|
+
export type ApiPerpetualsPreviewCancelOrdersResponse = {
|
|
394
|
+
error: string;
|
|
395
|
+
} | {
|
|
396
|
+
marketIdsToPositionAfterCancelOrders: Record<PerpetualsMarketId, PerpetualsPosition>;
|
|
397
|
+
collateralChange: number;
|
|
398
|
+
};
|
|
436
399
|
export interface ApiPerpetualsExecutionPriceBody {
|
|
437
400
|
side: PerpetualsOrderSide;
|
|
438
401
|
size: bigint;
|
|
@@ -457,7 +420,6 @@ export interface ApiPerpetualsMaxOrderSizeBody {
|
|
|
457
420
|
price?: PerpetualsOrderPrice;
|
|
458
421
|
}
|
|
459
422
|
export interface ApiPerpetualsAccountOrderDatasBody {
|
|
460
|
-
accountCapId: ObjectId;
|
|
461
423
|
orderDatas: {
|
|
462
424
|
orderId: PerpetualsOrderId;
|
|
463
425
|
currentSize: bigint;
|
|
@@ -487,6 +449,26 @@ export interface ApiPerpetualsTransferCollateralBody {
|
|
|
487
449
|
toAccountCapId: ObjectId;
|
|
488
450
|
amount: Balance;
|
|
489
451
|
}
|
|
452
|
+
export interface ApiPerpetualsAllocateCollateralBody {
|
|
453
|
+
walletAddress: SuiAddress;
|
|
454
|
+
packageId: PackageId;
|
|
455
|
+
collateralCoinType: CoinType;
|
|
456
|
+
accountCapId: ObjectId;
|
|
457
|
+
marketId: PerpetualsMarketId;
|
|
458
|
+
marketInitialSharedVersion: ObjectVersion;
|
|
459
|
+
amount: Balance;
|
|
460
|
+
}
|
|
461
|
+
export interface ApiPerpetualsDeallocateCollateralBody {
|
|
462
|
+
walletAddress: SuiAddress;
|
|
463
|
+
packageId: PackageId;
|
|
464
|
+
collateralCoinType: CoinType;
|
|
465
|
+
accountCapId: ObjectId;
|
|
466
|
+
basePriceFeedId: ObjectId;
|
|
467
|
+
collateralPriceFeedId: ObjectId;
|
|
468
|
+
marketId: PerpetualsMarketId;
|
|
469
|
+
marketInitialSharedVersion: ObjectVersion;
|
|
470
|
+
amount: Balance;
|
|
471
|
+
}
|
|
490
472
|
export interface ApiPerpetualsMarketOrderBody {
|
|
491
473
|
walletAddress: SuiAddress;
|
|
492
474
|
marketId: PerpetualsMarketId;
|
|
@@ -512,13 +494,14 @@ export interface ApiPerpetualsLimitOrderBody {
|
|
|
512
494
|
hasPosition: boolean;
|
|
513
495
|
}
|
|
514
496
|
export interface ApiPerpetualsCancelOrderBody {
|
|
497
|
+
packageId: PackageId;
|
|
515
498
|
walletAddress: SuiAddress;
|
|
516
499
|
collateralCoinType: CoinType;
|
|
517
500
|
accountCapId: ObjectId;
|
|
518
501
|
marketId: PerpetualsMarketId;
|
|
519
502
|
marketInitialSharedVersion: ObjectVersion;
|
|
520
503
|
orderId: PerpetualsOrderId;
|
|
521
|
-
|
|
504
|
+
collateralChange: Balance;
|
|
522
505
|
basePriceFeedId: ObjectId;
|
|
523
506
|
collateralPriceFeedId: ObjectId;
|
|
524
507
|
}
|
|
@@ -527,14 +510,28 @@ export interface ApiPerpetualsCancelOrdersBody {
|
|
|
527
510
|
collateralCoinType: CoinType;
|
|
528
511
|
accountCapId: ObjectId;
|
|
529
512
|
orderDatas: {
|
|
513
|
+
packageId: PackageId;
|
|
530
514
|
orderId: PerpetualsOrderId;
|
|
531
515
|
marketId: PerpetualsMarketId;
|
|
532
516
|
marketInitialSharedVersion: ObjectVersion;
|
|
533
|
-
|
|
517
|
+
collateralChange: Balance;
|
|
534
518
|
basePriceFeedId: ObjectId;
|
|
535
519
|
collateralPriceFeedId: ObjectId;
|
|
536
520
|
}[];
|
|
537
521
|
}
|
|
522
|
+
export interface ApiPerpetualsReduceOrdersBody {
|
|
523
|
+
walletAddress: SuiAddress;
|
|
524
|
+
packageId: PackageId;
|
|
525
|
+
collateralCoinType: CoinType;
|
|
526
|
+
accountCapId: ObjectId;
|
|
527
|
+
marketId: PerpetualsMarketId;
|
|
528
|
+
marketInitialSharedVersion: ObjectVersion;
|
|
529
|
+
orderIds: PerpetualsOrderId[];
|
|
530
|
+
sizesToSubtract: bigint[];
|
|
531
|
+
basePriceFeedId: ObjectId;
|
|
532
|
+
collateralPriceFeedId: ObjectId;
|
|
533
|
+
collateralChange: Balance;
|
|
534
|
+
}
|
|
538
535
|
export type ApiPerpetualsSLTPOrderBody = ((ApiPerpetualsMarketOrderBody & {
|
|
539
536
|
marketPrice: PerpetualsOrderPrice;
|
|
540
537
|
}) | ApiPerpetualsLimitOrderBody) & ({
|
|
@@ -589,17 +586,6 @@ export declare const perpetualsRegistry: {
|
|
|
589
586
|
}, {
|
|
590
587
|
value: string | number | bigint;
|
|
591
588
|
}>;
|
|
592
|
-
Branch: BcsType<{
|
|
593
|
-
keys: string[];
|
|
594
|
-
kids: string[];
|
|
595
|
-
}, {
|
|
596
|
-
keys: Iterable<string | number | bigint> & {
|
|
597
|
-
length: number;
|
|
598
|
-
};
|
|
599
|
-
kids: Iterable<string | number | bigint> & {
|
|
600
|
-
length: number;
|
|
601
|
-
};
|
|
602
|
-
}>;
|
|
603
589
|
Coin: BcsType<{
|
|
604
590
|
id: string;
|
|
605
591
|
balance: {
|
|
@@ -612,78 +598,11 @@ export declare const perpetualsRegistry: {
|
|
|
612
598
|
};
|
|
613
599
|
}>;
|
|
614
600
|
Field: typeof Field;
|
|
615
|
-
Leaf: typeof Leaf;
|
|
616
601
|
MarketKey: BcsType<{
|
|
617
602
|
marketId: string;
|
|
618
603
|
}, {
|
|
619
604
|
marketId: string | number | bigint;
|
|
620
605
|
}>;
|
|
621
|
-
Order: BcsType<{
|
|
622
|
-
accountId: string;
|
|
623
|
-
size: string;
|
|
624
|
-
}, {
|
|
625
|
-
accountId: string | number | bigint;
|
|
626
|
-
size: string | number | bigint;
|
|
627
|
-
}>;
|
|
628
|
-
Orderbook: BcsType<{
|
|
629
|
-
id: string;
|
|
630
|
-
asks: {
|
|
631
|
-
id: string;
|
|
632
|
-
size: string;
|
|
633
|
-
counter: string;
|
|
634
|
-
root: string;
|
|
635
|
-
first: string;
|
|
636
|
-
branchMin: string;
|
|
637
|
-
branchMax: string;
|
|
638
|
-
leafMin: string;
|
|
639
|
-
leafMax: string;
|
|
640
|
-
branchesMergeMax: string;
|
|
641
|
-
leavesMergeMax: string;
|
|
642
|
-
};
|
|
643
|
-
bids: {
|
|
644
|
-
id: string;
|
|
645
|
-
size: string;
|
|
646
|
-
counter: string;
|
|
647
|
-
root: string;
|
|
648
|
-
first: string;
|
|
649
|
-
branchMin: string;
|
|
650
|
-
branchMax: string;
|
|
651
|
-
leafMin: string;
|
|
652
|
-
leafMax: string;
|
|
653
|
-
branchesMergeMax: string;
|
|
654
|
-
leavesMergeMax: string;
|
|
655
|
-
};
|
|
656
|
-
counter: string;
|
|
657
|
-
}, {
|
|
658
|
-
id: string | Uint8Array;
|
|
659
|
-
asks: {
|
|
660
|
-
id: string | Uint8Array;
|
|
661
|
-
size: string | number | bigint;
|
|
662
|
-
counter: string | number | bigint;
|
|
663
|
-
root: string | number | bigint;
|
|
664
|
-
first: string | number | bigint;
|
|
665
|
-
branchMin: string | number | bigint;
|
|
666
|
-
branchMax: string | number | bigint;
|
|
667
|
-
leafMin: string | number | bigint;
|
|
668
|
-
leafMax: string | number | bigint;
|
|
669
|
-
branchesMergeMax: string | number | bigint;
|
|
670
|
-
leavesMergeMax: string | number | bigint;
|
|
671
|
-
};
|
|
672
|
-
bids: {
|
|
673
|
-
id: string | Uint8Array;
|
|
674
|
-
size: string | number | bigint;
|
|
675
|
-
counter: string | number | bigint;
|
|
676
|
-
root: string | number | bigint;
|
|
677
|
-
first: string | number | bigint;
|
|
678
|
-
branchMin: string | number | bigint;
|
|
679
|
-
branchMax: string | number | bigint;
|
|
680
|
-
leafMin: string | number | bigint;
|
|
681
|
-
leafMax: string | number | bigint;
|
|
682
|
-
branchesMergeMax: string | number | bigint;
|
|
683
|
-
leavesMergeMax: string | number | bigint;
|
|
684
|
-
};
|
|
685
|
-
counter: string | number | bigint;
|
|
686
|
-
}>;
|
|
687
606
|
OrderInfo: BcsType<{
|
|
688
607
|
price: string;
|
|
689
608
|
size: string;
|
|
@@ -691,7 +610,6 @@ export declare const perpetualsRegistry: {
|
|
|
691
610
|
price: string | number | bigint;
|
|
692
611
|
size: string | number | bigint;
|
|
693
612
|
}>;
|
|
694
|
-
PerpetualsMap: typeof PerpetualsMap;
|
|
695
613
|
Position: BcsType<{
|
|
696
614
|
collateral: string;
|
|
697
615
|
baseAssetAmount: string;
|