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.
Files changed (72) hide show
  1. package/dist/general/types/configTypes.d.ts +1 -0
  2. package/dist/general/types/configTypes.d.ts.map +1 -1
  3. package/dist/general/utils/caller.d.ts +1 -1
  4. package/dist/general/utils/caller.d.ts.map +1 -1
  5. package/dist/general/utils/caller.js +13 -3
  6. package/dist/general/utils/casting.d.ts +2 -0
  7. package/dist/general/utils/casting.d.ts.map +1 -1
  8. package/dist/general/utils/casting.js +2 -0
  9. package/dist/packages/farms/farms.d.ts +13 -10
  10. package/dist/packages/farms/farms.d.ts.map +1 -1
  11. package/dist/packages/farms/farms.js +17 -43
  12. package/dist/packages/farms/farmsStakedPosition.js +1 -1
  13. package/dist/packages/farms/farmsStakingPool.d.ts +2 -0
  14. package/dist/packages/farms/farmsStakingPool.d.ts.map +1 -1
  15. package/dist/packages/farms/farmsStakingPool.js +21 -3
  16. package/dist/packages/farms/farmsTypes.d.ts +8 -0
  17. package/dist/packages/farms/farmsTypes.d.ts.map +1 -1
  18. package/dist/packages/farms/farmsTypes.js +29 -0
  19. package/dist/packages/oracle/api/oracleApi.d.ts +9 -1
  20. package/dist/packages/oracle/api/oracleApi.d.ts.map +1 -1
  21. package/dist/packages/oracle/api/oracleApi.js +41 -0
  22. package/dist/packages/oracle/api/oracleApiCasting.d.ts +6 -0
  23. package/dist/packages/oracle/api/oracleApiCasting.d.ts.map +1 -0
  24. package/dist/packages/oracle/api/oracleApiCasting.js +25 -0
  25. package/dist/packages/oracle/oracle.js +1 -1
  26. package/dist/packages/oracle/oracleCastingTypes.d.ts +11 -0
  27. package/dist/packages/oracle/oracleCastingTypes.d.ts.map +1 -0
  28. package/dist/packages/oracle/oracleCastingTypes.js +2 -0
  29. package/dist/packages/oracle/oracleTypes.d.ts +9 -1
  30. package/dist/packages/oracle/oracleTypes.d.ts.map +1 -1
  31. package/dist/packages/perpetuals/api/perpetualsApi.d.ts +34 -10
  32. package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +1 -1
  33. package/dist/packages/perpetuals/api/perpetualsApi.js +499 -100
  34. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +6 -2
  35. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +1 -1
  36. package/dist/packages/perpetuals/api/perpetualsApiCasting.js +89 -6
  37. package/dist/packages/perpetuals/perpetualsAccount.d.ts +43 -4
  38. package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +1 -1
  39. package/dist/packages/perpetuals/perpetualsAccount.js +63 -15
  40. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +52 -2
  41. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +1 -1
  42. package/dist/packages/perpetuals/perpetualsMarket.d.ts +5 -7
  43. package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +1 -1
  44. package/dist/packages/perpetuals/perpetualsMarket.js +12 -66
  45. package/dist/packages/perpetuals/perpetualsTypes.d.ts +117 -199
  46. package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +1 -1
  47. package/dist/packages/perpetuals/perpetualsTypes.js +26 -43
  48. package/dist/packages/pools/api/poolsApiCasting.d.ts.map +1 -1
  49. package/dist/packages/pools/api/poolsApiCasting.js +0 -1
  50. package/dist/packages/pools/pool.d.ts +7 -22
  51. package/dist/packages/pools/pool.d.ts.map +1 -1
  52. package/dist/packages/pools/pool.js +16 -30
  53. package/dist/packages/pools/pools.d.ts +7 -1
  54. package/dist/packages/pools/pools.d.ts.map +1 -1
  55. package/dist/packages/pools/pools.js +17 -2
  56. package/dist/packages/router/api/routerApi.d.ts +2 -2
  57. package/dist/packages/router/api/routerApi.d.ts.map +1 -1
  58. package/dist/packages/router/api/routerApi.js +19 -11
  59. package/dist/packages/router/router.d.ts +1 -1
  60. package/dist/packages/router/router.d.ts.map +1 -1
  61. package/dist/packages/router/router.js +2 -2
  62. package/dist/packages/router/routerTypes.d.ts +3 -2
  63. package/dist/packages/router/routerTypes.d.ts.map +1 -1
  64. package/dist/packages/staking/staking.d.ts +4 -1
  65. package/dist/packages/staking/staking.d.ts.map +1 -1
  66. package/dist/packages/staking/staking.js +5 -0
  67. package/dist/packages/staking/stakingTypes.d.ts +5 -0
  68. package/dist/packages/staking/stakingTypes.d.ts.map +1 -1
  69. package/dist/types.d.ts +1 -0
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/types.js +1 -0
  72. 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, PerpetualsOrderbookState, Timestamp, PerpetualsMarketData, ApiPerpetualsMarket24hrVolumeResponse, ApiDataWithCursorBody, PerpetualsTradeHistoryWithCursor, CallerConfig } from "../../types";
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
- getOrderbookState(inputs: {
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,EAKN,QAAQ,EAKR,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EAEnB,wBAAwB,EAGxB,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;IAgBf,iBAAiB;IAIjB,aAAa,IAAI,OAAO,CAAC,qCAAqC,CAAC;IAM/D,gBAAgB;IAIhB,iBAAiB,CAAC,MAAM,EAAE;QAChC,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACxB;IAWM,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;IAUlB,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;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,YAMlE;IAuBF,OAAO,CAAC,qBAAqB;CA8E7B"}
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.fundingLastUpdMs / fundingFrequencyMs);
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 ? Math.floor(lots) : Math.round(lots)) *
100
- this.lotSize());
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
- getOrderbookState(inputs) {
120
- return this.fetchApi("orderbook-state", Object.assign(Object.assign({}, inputs), { lotSize: this.lotSize(), tickSize: this.tickSize() }));
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
- fundingLastUpdMs: Timestamp;
100
+ fundingLastUpdateMs: Timestamp;
99
101
  premiumTwap: IFixed;
100
- premiumTwapLastUpdMs: Timestamp;
102
+ premiumTwapLastUpdateMs: Timestamp;
101
103
  spreadTwap: IFixed;
102
- spreadTwapLastUpdMs: Timestamp;
104
+ spreadTwapLastUpdateMs: Timestamp;
103
105
  openInterest: IFixed;
104
106
  feesAccrued: IFixed;
105
107
  }
106
108
  export interface PerpetualsMarketCandleDataPoint {
107
- timestamp: Timestamp;
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 OrderbookDataPoint {
115
- price: number;
116
- size: number;
117
- totalSize: number;
118
- sizeUsd: number;
119
- totalSizeUsd: number;
120
- }
121
- export interface PerpetualsOrderbookState {
122
- bids: OrderbookDataPoint[];
123
- asks: OrderbookDataPoint[];
124
- minAskPrice: number;
125
- maxBidPrice: number;
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
- eventName: PerpetualsCollateralEventName;
237
- } & ({
238
- collateralChange: Balance;
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
- eventName: PerpetualsTradeEventName;
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
- accountCapId: ObjectId;
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 interface ApiPerpetualsOrderbookStateBody {
431
- orderbookPrice: number;
432
- lotSize: number;
433
- tickSize: number;
434
- priceBucketSize: number;
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
- collateral: Balance;
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
- collateral: Balance;
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;