@d8x/perpetuals-sdk 0.7.6 → 0.7.7

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 (119) hide show
  1. package/dist/cjs/accountTrade.js +243 -134
  2. package/dist/cjs/accountTrade.js.map +1 -1
  3. package/dist/cjs/brokerTool.js +290 -144
  4. package/dist/cjs/brokerTool.js.map +1 -1
  5. package/dist/cjs/config/priceFeedConfig.json +1 -1
  6. package/dist/cjs/contracts/factories/ERC20__factory.js +12 -9
  7. package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
  8. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +12 -9
  9. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  10. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +12 -9
  11. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  12. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +12 -9
  13. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  14. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +12 -9
  15. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  16. package/dist/cjs/contracts/factories/ShareToken__factory.js +12 -9
  17. package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
  18. package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +12 -9
  19. package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
  20. package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +12 -9
  21. package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
  22. package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +12 -9
  23. package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
  24. package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js +12 -9
  25. package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
  26. package/dist/cjs/contracts/index.js +1 -1
  27. package/dist/cjs/d8XMath.js +66 -65
  28. package/dist/cjs/d8XMath.js.map +1 -1
  29. package/dist/cjs/index.js +11 -11
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/liquidatorTool.js +137 -80
  32. package/dist/cjs/liquidatorTool.js.map +1 -1
  33. package/dist/cjs/liquidityProviderTool.js +65 -33
  34. package/dist/cjs/liquidityProviderTool.js.map +1 -1
  35. package/dist/cjs/marketData.js +978 -635
  36. package/dist/cjs/marketData.js.map +1 -1
  37. package/dist/cjs/nodeSDKTypes.js +22 -10
  38. package/dist/cjs/nodeSDKTypes.js.map +1 -1
  39. package/dist/cjs/orderReferrerTool.js +323 -200
  40. package/dist/cjs/orderReferrerTool.js.map +1 -1
  41. package/dist/cjs/perpetualDataHandler.js +550 -404
  42. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  43. package/dist/cjs/perpetualEventHandler.js +190 -129
  44. package/dist/cjs/perpetualEventHandler.js.map +1 -1
  45. package/dist/cjs/priceFeeds.js +335 -223
  46. package/dist/cjs/priceFeeds.js.map +1 -1
  47. package/dist/cjs/traderDigests.js +23 -20
  48. package/dist/cjs/traderDigests.js.map +1 -1
  49. package/dist/cjs/traderInterface.js +87 -54
  50. package/dist/cjs/traderInterface.js.map +1 -1
  51. package/dist/cjs/triangulator.js +38 -34
  52. package/dist/cjs/triangulator.js.map +1 -1
  53. package/dist/cjs/utils.js +32 -18
  54. package/dist/cjs/utils.js.map +1 -1
  55. package/dist/cjs/version.d.ts +1 -1
  56. package/dist/cjs/version.js +1 -1
  57. package/dist/cjs/writeAccessHandler.js +112 -78
  58. package/dist/cjs/writeAccessHandler.js.map +1 -1
  59. package/dist/esm/accountTrade.js +237 -126
  60. package/dist/esm/accountTrade.js.map +1 -1
  61. package/dist/esm/brokerTool.js +284 -136
  62. package/dist/esm/brokerTool.js.map +1 -1
  63. package/dist/esm/config/priceFeedConfig.json +1 -1
  64. package/dist/esm/contracts/factories/ERC20__factory.js +12 -8
  65. package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
  66. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +12 -8
  67. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  68. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +12 -8
  69. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  70. package/dist/esm/contracts/factories/LimitOrderBook__factory.js +12 -8
  71. package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  72. package/dist/esm/contracts/factories/MockTokenSwap__factory.js +12 -8
  73. package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  74. package/dist/esm/contracts/factories/ShareToken__factory.js +12 -8
  75. package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
  76. package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +12 -8
  77. package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
  78. package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +12 -8
  79. package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
  80. package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +12 -8
  81. package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
  82. package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js +12 -8
  83. package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
  84. package/dist/esm/d8XMath.js +64 -63
  85. package/dist/esm/d8XMath.js.map +1 -1
  86. package/dist/esm/liquidatorTool.js +136 -77
  87. package/dist/esm/liquidatorTool.js.map +1 -1
  88. package/dist/esm/liquidityProviderTool.js +63 -29
  89. package/dist/esm/liquidityProviderTool.js.map +1 -1
  90. package/dist/esm/marketData.js +971 -626
  91. package/dist/esm/marketData.js.map +1 -1
  92. package/dist/esm/nodeSDKTypes.js +48 -36
  93. package/dist/esm/nodeSDKTypes.js.map +1 -1
  94. package/dist/esm/orderReferrerTool.js +319 -194
  95. package/dist/esm/orderReferrerTool.js.map +1 -1
  96. package/dist/esm/perpetualDataHandler.js +542 -394
  97. package/dist/esm/perpetualDataHandler.js.map +1 -1
  98. package/dist/esm/perpetualEventHandler.js +188 -126
  99. package/dist/esm/perpetualEventHandler.js.map +1 -1
  100. package/dist/esm/priceFeeds.js +332 -218
  101. package/dist/esm/priceFeeds.js.map +1 -1
  102. package/dist/esm/traderDigests.js +19 -15
  103. package/dist/esm/traderDigests.js.map +1 -1
  104. package/dist/esm/traderInterface.js +83 -48
  105. package/dist/esm/traderInterface.js.map +1 -1
  106. package/dist/esm/triangulator.js +39 -34
  107. package/dist/esm/triangulator.js.map +1 -1
  108. package/dist/esm/utils.js +30 -16
  109. package/dist/esm/utils.js.map +1 -1
  110. package/dist/esm/version.d.ts +1 -1
  111. package/dist/esm/version.js +1 -1
  112. package/dist/esm/version.js.map +1 -1
  113. package/dist/esm/writeAccessHandler.js +105 -69
  114. package/dist/esm/writeAccessHandler.js.map +1 -1
  115. package/package.json +1 -1
  116. package/src/accountTrade.ts +6 -1
  117. package/src/config/priceFeedConfig.json +1 -1
  118. package/src/orderReferrerTool.ts +2 -0
  119. package/src/version.ts +1 -1
@@ -1,3 +1,4 @@
1
+ import { __awaiter, __generator, __read, __values } from "tslib";
1
2
  import { emitWarning } from "process";
2
3
  import { ABK64x64ToFloat, mul64x64 } from "./d8XMath";
3
4
  import { ONE_64x64, } from "./nodeSDKTypes";
@@ -27,8 +28,8 @@ import { ONE_64x64, } from "./nodeSDKTypes";
27
28
  * - [x] async onUpdateMarginAccount : emitted on proxy; updates position data and open interest
28
29
  * - [x] onTrade : emitted on proxy; returns TradeEvent to be displayed
29
30
  */
30
- export default class PerpetualEventHandler {
31
- constructor(mktData, traderAddr) {
31
+ var PerpetualEventHandler = /** @class */ (function () {
32
+ function PerpetualEventHandler(mktData, traderAddr) {
32
33
  this.mktData = mktData;
33
34
  this.traderAddr = traderAddr;
34
35
  this.ordersInPerpetual = new Map();
@@ -39,85 +40,111 @@ export default class PerpetualEventHandler {
39
40
  * Call this async function to initialize the
40
41
  * market data
41
42
  */
42
- async initialize() {
43
- this.exchangeInfo = await this.mktData.exchangeInfo();
44
- // loop through all pools and perpetuals and get
45
- // open positions and open orders
46
- for (let k = 0; k < this.exchangeInfo.pools.length; k++) {
47
- let poolState = this.exchangeInfo.pools[k];
48
- let poolSymbol = poolState.poolSymbol;
49
- for (let j = 0; j < poolState.perpetuals.length; j++) {
50
- let perpState = poolState.perpetuals[j];
51
- let perpSymbol = perpState.baseCurrency + "-" + perpState.quoteCurrency + "-" + poolSymbol;
52
- let orders = await this.mktData.openOrders(this.traderAddr, perpSymbol);
53
- let perpId = perpState.id;
54
- this.ordersInPerpetual.set(perpId, orders[0]);
55
- let position = (await this.mktData.positionRisk(this.traderAddr, perpSymbol))[0];
56
- this.positionInPerpetual.set(perpId, position);
57
- this.poolIndexForPerpetual.set(perpId, k);
58
- }
59
- }
60
- }
43
+ PerpetualEventHandler.prototype.initialize = function () {
44
+ return __awaiter(this, void 0, void 0, function () {
45
+ var _a, k, poolState, poolSymbol, j, perpState, perpSymbol, orders, perpId, position;
46
+ return __generator(this, function (_b) {
47
+ switch (_b.label) {
48
+ case 0:
49
+ _a = this;
50
+ return [4 /*yield*/, this.mktData.exchangeInfo()];
51
+ case 1:
52
+ _a.exchangeInfo = _b.sent();
53
+ k = 0;
54
+ _b.label = 2;
55
+ case 2:
56
+ if (!(k < this.exchangeInfo.pools.length)) return [3 /*break*/, 8];
57
+ poolState = this.exchangeInfo.pools[k];
58
+ poolSymbol = poolState.poolSymbol;
59
+ j = 0;
60
+ _b.label = 3;
61
+ case 3:
62
+ if (!(j < poolState.perpetuals.length)) return [3 /*break*/, 7];
63
+ perpState = poolState.perpetuals[j];
64
+ perpSymbol = perpState.baseCurrency + "-" + perpState.quoteCurrency + "-" + poolSymbol;
65
+ return [4 /*yield*/, this.mktData.openOrders(this.traderAddr, perpSymbol)];
66
+ case 4:
67
+ orders = _b.sent();
68
+ perpId = perpState.id;
69
+ this.ordersInPerpetual.set(perpId, orders[0]);
70
+ return [4 /*yield*/, this.mktData.positionRisk(this.traderAddr, perpSymbol)];
71
+ case 5:
72
+ position = (_b.sent())[0];
73
+ this.positionInPerpetual.set(perpId, position);
74
+ this.poolIndexForPerpetual.set(perpId, k);
75
+ _b.label = 6;
76
+ case 6:
77
+ j++;
78
+ return [3 /*break*/, 3];
79
+ case 7:
80
+ k++;
81
+ return [3 /*break*/, 2];
82
+ case 8: return [2 /*return*/];
83
+ }
84
+ });
85
+ });
86
+ };
61
87
  /**
62
88
  * Get the current exchange info
63
89
  * @returns exchange info
64
90
  */
65
- getExchangeInfo() {
91
+ PerpetualEventHandler.prototype.getExchangeInfo = function () {
66
92
  return this.exchangeInfo;
67
- }
93
+ };
68
94
  /**
69
95
  * getOrdersInPerpetualMap
70
96
  * @returns this.ordersInPerpetual
71
97
  */
72
- getOrdersInPerpetualMap() {
98
+ PerpetualEventHandler.prototype.getOrdersInPerpetualMap = function () {
73
99
  return this.ordersInPerpetual;
74
- }
100
+ };
75
101
  /**
76
102
  * getpositionInPerpetualMap
77
103
  * @returns this.positionInPerpetual
78
104
  */
79
- getpositionInPerpetualMap() {
105
+ PerpetualEventHandler.prototype.getpositionInPerpetualMap = function () {
80
106
  return this.positionInPerpetual;
81
- }
107
+ };
82
108
  /**
83
109
  * Get the data for a perpetual with a given index
84
110
  * @param perpetualIdOrSymbol perpetual idx as string or symbol for which we want the data
85
111
  * @returns perpetual data for this idx
86
112
  */
87
- getPerpetualData(perpetualIdOrSymbol) {
88
- let perpId = Number(perpetualIdOrSymbol);
113
+ PerpetualEventHandler.prototype.getPerpetualData = function (perpetualIdOrSymbol) {
114
+ var _a;
115
+ var perpId = Number(perpetualIdOrSymbol);
89
116
  if (isNaN(perpId)) {
90
117
  perpId = this.mktData.getPerpIdFromSymbol(perpetualIdOrSymbol);
91
118
  }
92
119
  //uint24 perpetualId = uint24(_iPoolId) * 100_000 + iPerpetualIndex;
93
- let poolIdx = this.poolIndexForPerpetual.get(perpId); //Math.floor(perpId / 100_000);
94
- let perpetuals = this.exchangeInfo?.pools[poolIdx].perpetuals;
120
+ var poolIdx = this.poolIndexForPerpetual.get(perpId); //Math.floor(perpId / 100_000);
121
+ var perpetuals = (_a = this.exchangeInfo) === null || _a === void 0 ? void 0 : _a.pools[poolIdx].perpetuals;
95
122
  if (perpetuals == undefined) {
96
- emitWarning(`exchangeInfo not found, initialize perpetualEventHandler`);
123
+ emitWarning("exchangeInfo not found, initialize perpetualEventHandler");
97
124
  return undefined;
98
125
  }
99
126
  // find perpetual
100
- let k;
101
- for (k = 0; k < perpetuals?.length && perpetuals[k].id != perpId; k++)
127
+ var k;
128
+ for (k = 0; k < (perpetuals === null || perpetuals === void 0 ? void 0 : perpetuals.length) && perpetuals[k].id != perpId; k++)
102
129
  ;
103
130
  if (perpetuals[k].id != perpId) {
104
- emitWarning(`getPerpetualData: perpetual id ${perpId} not found`);
131
+ emitWarning("getPerpetualData: perpetual id ".concat(perpId, " not found"));
105
132
  return undefined;
106
133
  }
107
134
  return perpetuals[k];
108
- }
135
+ };
109
136
  /**
110
137
  * Get the trader's current position risk (margin account data)
111
138
  * @param perpetualIdOrSymbol perpetual id as string ('100003') or symbol ('BTC-USD-MATIC')
112
139
  * @returns undefined if no position or margin account (='position risk')
113
140
  */
114
- getCurrentPositionRisk(perpetualIdOrSymbol) {
115
- let perpId = Number(perpetualIdOrSymbol);
141
+ PerpetualEventHandler.prototype.getCurrentPositionRisk = function (perpetualIdOrSymbol) {
142
+ var perpId = Number(perpetualIdOrSymbol);
116
143
  if (isNaN(perpId)) {
117
144
  perpId = this.mktData.getPerpIdFromSymbol(perpetualIdOrSymbol);
118
145
  }
119
146
  return this.positionInPerpetual.get(perpId);
120
- }
147
+ };
121
148
  /**
122
149
  * Update the following prices:
123
150
  * - index price
@@ -125,31 +152,42 @@ export default class PerpetualEventHandler {
125
152
  * - mid-price
126
153
  * @param perpetualIdOrSymbol perpetual id as string ('100003') or symbol ('BTC-USD-MATIC')
127
154
  */
128
- async updatePrices(perpetualIdOrSymbol) {
129
- let perpId = Number(perpetualIdOrSymbol);
130
- let symbol = perpetualIdOrSymbol;
131
- if (!isNaN(perpId)) {
132
- let sym = this.mktData.getSymbolFromPerpId(perpId);
133
- if (sym == undefined) {
134
- throw new Error(`Symbol not found for perpetual ${perpId}`);
135
- }
136
- symbol = sym;
137
- }
138
- let perpState = await this.mktData.getPerpetualState(symbol);
139
- let perp = this.getPerpetualData(symbol);
140
- if (perp == undefined) {
141
- throw new Error(`Perpetual not found: ${symbol}`);
142
- }
143
- perp.state = perpState.state;
144
- perp.indexPrice = perpState.indexPrice;
145
- perp.collToQuoteIndexPrice = perpState.collToQuoteIndexPrice;
146
- perp.markPrice = perpState.markPrice;
147
- perp.midPrice = perpState.midPrice;
148
- perp.currentFundingRateBps = perpState.currentFundingRateBps;
149
- perp.openInterestBC = perpState.openInterestBC;
150
- perp.indexPrice = perpState.indexPrice;
151
- perp.collToQuoteIndexPrice = perpState.collToQuoteIndexPrice;
152
- }
155
+ PerpetualEventHandler.prototype.updatePrices = function (perpetualIdOrSymbol) {
156
+ return __awaiter(this, void 0, void 0, function () {
157
+ var perpId, symbol, sym, perpState, perp;
158
+ return __generator(this, function (_a) {
159
+ switch (_a.label) {
160
+ case 0:
161
+ perpId = Number(perpetualIdOrSymbol);
162
+ symbol = perpetualIdOrSymbol;
163
+ if (!isNaN(perpId)) {
164
+ sym = this.mktData.getSymbolFromPerpId(perpId);
165
+ if (sym == undefined) {
166
+ throw new Error("Symbol not found for perpetual ".concat(perpId));
167
+ }
168
+ symbol = sym;
169
+ }
170
+ return [4 /*yield*/, this.mktData.getPerpetualState(symbol)];
171
+ case 1:
172
+ perpState = _a.sent();
173
+ perp = this.getPerpetualData(symbol);
174
+ if (perp == undefined) {
175
+ throw new Error("Perpetual not found: ".concat(symbol));
176
+ }
177
+ perp.state = perpState.state;
178
+ perp.indexPrice = perpState.indexPrice;
179
+ perp.collToQuoteIndexPrice = perpState.collToQuoteIndexPrice;
180
+ perp.markPrice = perpState.markPrice;
181
+ perp.midPrice = perpState.midPrice;
182
+ perp.currentFundingRateBps = perpState.currentFundingRateBps;
183
+ perp.openInterestBC = perpState.openInterestBC;
184
+ perp.indexPrice = perpState.indexPrice;
185
+ perp.collToQuoteIndexPrice = perpState.collToQuoteIndexPrice;
186
+ return [2 /*return*/];
187
+ }
188
+ });
189
+ });
190
+ };
153
191
  /**
154
192
  * Handle the event UpdateMarkPrice and update relevant
155
193
  * data
@@ -158,30 +196,30 @@ export default class PerpetualEventHandler {
158
196
  * @param fSpotIndexPrice spot index price in ABDK format
159
197
  * @returns void
160
198
  */
161
- onUpdateMarkPrice(perpetualId, fMidPricePremium, fMarkPricePremium, fSpotIndexPrice) {
162
- let [newMidPrice, newMarkPrice, newIndexPrice] = PerpetualEventHandler.ConvertUpdateMarkPrice(fMidPricePremium, fMarkPricePremium, fSpotIndexPrice);
163
- let perpetual = this.getPerpetualData(perpetualId.toString());
199
+ PerpetualEventHandler.prototype.onUpdateMarkPrice = function (perpetualId, fMidPricePremium, fMarkPricePremium, fSpotIndexPrice) {
200
+ var _a = __read(PerpetualEventHandler.ConvertUpdateMarkPrice(fMidPricePremium, fMarkPricePremium, fSpotIndexPrice), 3), newMidPrice = _a[0], newMarkPrice = _a[1], newIndexPrice = _a[2];
201
+ var perpetual = this.getPerpetualData(perpetualId.toString());
164
202
  if (perpetual == undefined) {
165
203
  return;
166
204
  }
167
205
  perpetual.midPrice = newMidPrice;
168
206
  perpetual.markPrice = newMarkPrice;
169
207
  perpetual.indexPrice = newIndexPrice;
170
- }
208
+ };
171
209
  /**
172
210
  * Handle the event UpdateFundingRate and update relevant
173
211
  * data
174
212
  * UpdateFundingRate(uint24 indexed perpetualId, int128 fFundingRate)
175
213
  * @param fFundingRate funding rate in ABDK format
176
214
  */
177
- onUpdateUpdateFundingRate(perpetualId, fFundingRate) {
178
- let newRate = ABK64x64ToFloat(fFundingRate);
179
- let perpetual = this.getPerpetualData(perpetualId.toString());
215
+ PerpetualEventHandler.prototype.onUpdateUpdateFundingRate = function (perpetualId, fFundingRate) {
216
+ var newRate = ABK64x64ToFloat(fFundingRate);
217
+ var perpetual = this.getPerpetualData(perpetualId.toString());
180
218
  if (perpetual == undefined) {
181
219
  return;
182
220
  }
183
221
  perpetual.currentFundingRateBps = newRate * 1e4;
184
- }
222
+ };
185
223
  /**
186
224
  * event ExecutionFailed(
187
225
  uint24 indexed perpetualId,
@@ -194,15 +232,15 @@ export default class PerpetualEventHandler {
194
232
  * @param digest digest of the order/cancel order
195
233
  * @param reason reason why the execution failed
196
234
  */
197
- onExecutionFailed(perpetualId, trader, digest, reason) {
235
+ PerpetualEventHandler.prototype.onExecutionFailed = function (perpetualId, trader, digest, reason) {
198
236
  if (trader != this.traderAddr) {
199
- emitWarning(`onExecutionFailed: trader ${trader} not relevant`);
237
+ emitWarning("onExecutionFailed: trader ".concat(trader, " not relevant"));
200
238
  return;
201
239
  }
202
240
  // remove order from open orders
203
- let orderStructs = this.ordersInPerpetual.get(perpetualId);
241
+ var orderStructs = this.ordersInPerpetual.get(perpetualId);
204
242
  if (orderStructs == undefined) {
205
- emitWarning(`onExecutionFailed: no order found for perpetual ${perpetualId}`);
243
+ emitWarning("onExecutionFailed: no order found for perpetual ".concat(perpetualId));
206
244
  return;
207
245
  }
208
246
  if (reason == "cancel delay required") {
@@ -210,22 +248,22 @@ export default class PerpetualEventHandler {
210
248
  return;
211
249
  }
212
250
  PerpetualEventHandler.deleteOrder(orderStructs, digest);
213
- }
251
+ };
214
252
  /**
215
253
  * Event emitted by perpetual proxy
216
254
  * event PerpetualLimitOrderCancelled(bytes32 indexed orderHash);
217
255
  * @param orderId string order id/digest
218
256
  */
219
- onPerpetualLimitOrderCancelled(orderId) {
257
+ PerpetualEventHandler.prototype.onPerpetualLimitOrderCancelled = function (orderId) {
220
258
  // remove order from open orders
221
- let perpId = PerpetualEventHandler.findOrderForId(orderId, this.ordersInPerpetual);
259
+ var perpId = PerpetualEventHandler.findOrderForId(orderId, this.ordersInPerpetual);
222
260
  if (perpId == undefined) {
223
- emitWarning(`onPerpetualLimitOrderCancelled: no order found with id ${orderId}`);
261
+ emitWarning("onPerpetualLimitOrderCancelled: no order found with id ".concat(orderId));
224
262
  return;
225
263
  }
226
- let orderStruct = this.ordersInPerpetual.get(perpId);
264
+ var orderStruct = this.ordersInPerpetual.get(perpId);
227
265
  PerpetualEventHandler.deleteOrder(orderStruct, orderId);
228
- }
266
+ };
229
267
  /**
230
268
  * event PerpetualLimitOrderCreated(
231
269
  * uint24 indexed perpetualId,
@@ -242,13 +280,13 @@ export default class PerpetualEventHandler {
242
280
  * @param Order order struct
243
281
  * @param digest order id
244
282
  */
245
- onPerpetualLimitOrderCreated(perpetualId, trader, _referrerAddr, _brokerAddr, Order, digest) {
283
+ PerpetualEventHandler.prototype.onPerpetualLimitOrderCreated = function (perpetualId, trader, _referrerAddr, _brokerAddr, Order, digest) {
246
284
  if (trader != this.traderAddr) {
247
- emitWarning(`onPerpetualLimitOrderCreated: trader ${trader} not relevant`);
285
+ emitWarning("onPerpetualLimitOrderCreated: trader ".concat(trader, " not relevant"));
248
286
  return;
249
287
  }
250
- let order = this.mktData.smartContractOrderToOrder(Order);
251
- let orderStruct = this.ordersInPerpetual.get(perpetualId);
288
+ var order = this.mktData.smartContractOrderToOrder(Order);
289
+ var orderStruct = this.ordersInPerpetual.get(perpetualId);
252
290
  if (orderStruct == undefined) {
253
291
  // no order for this perpetual so far
254
292
  this.ordersInPerpetual.set(perpetualId, { orders: [order], orderIds: [digest] });
@@ -257,7 +295,7 @@ export default class PerpetualEventHandler {
257
295
  orderStruct.orderIds.push(digest);
258
296
  orderStruct.orders.push(order);
259
297
  }
260
- }
298
+ };
261
299
  /**
262
300
  * This function is async -> queries the margin account
263
301
  * @param perpetualId id of the perpetual
@@ -269,20 +307,31 @@ export default class PerpetualEventHandler {
269
307
  * @param fFundingPaymentCC funding payment made
270
308
  * @param fOpenInterestBC open interest
271
309
  */
272
- async onUpdateMarginAccount(perpetualId, trader, _positionId, _fPositionBC, _fCashCC, _fLockedInValueQC, _fFundingPaymentCC, fOpenInterestBC) {
273
- let perpetual = this.getPerpetualData(perpetualId.toString());
274
- if (perpetual == undefined) {
275
- emitWarning(`onUpdateMarginAccount: perpetual ${perpetualId} not found`);
276
- return;
277
- }
278
- perpetual.openInterestBC = ABK64x64ToFloat(fOpenInterestBC);
279
- if (trader != this.traderAddr) {
280
- return;
281
- }
282
- let perpetualIdStr = perpetualId.toString();
283
- let margin = (await this.mktData.positionRisk(this.traderAddr, perpetualIdStr))[0];
284
- this.positionInPerpetual.set(perpetualId, margin);
285
- }
310
+ PerpetualEventHandler.prototype.onUpdateMarginAccount = function (perpetualId, trader, _positionId, _fPositionBC, _fCashCC, _fLockedInValueQC, _fFundingPaymentCC, fOpenInterestBC) {
311
+ return __awaiter(this, void 0, void 0, function () {
312
+ var perpetual, perpetualIdStr, margin;
313
+ return __generator(this, function (_a) {
314
+ switch (_a.label) {
315
+ case 0:
316
+ perpetual = this.getPerpetualData(perpetualId.toString());
317
+ if (perpetual == undefined) {
318
+ emitWarning("onUpdateMarginAccount: perpetual ".concat(perpetualId, " not found"));
319
+ return [2 /*return*/];
320
+ }
321
+ perpetual.openInterestBC = ABK64x64ToFloat(fOpenInterestBC);
322
+ if (trader != this.traderAddr) {
323
+ return [2 /*return*/];
324
+ }
325
+ perpetualIdStr = perpetualId.toString();
326
+ return [4 /*yield*/, this.mktData.positionRisk(this.traderAddr, perpetualIdStr)];
327
+ case 1:
328
+ margin = (_a.sent())[0];
329
+ this.positionInPerpetual.set(perpetualId, margin);
330
+ return [2 /*return*/];
331
+ }
332
+ });
333
+ });
334
+ };
286
335
  /**
287
336
  *
288
337
  * @param perpetualId perpetual id
@@ -294,11 +343,11 @@ export default class PerpetualEventHandler {
294
343
  * @param price price in ABDK format
295
344
  * @returns trade event data in regular number format
296
345
  */
297
- onTrade(perpetualId, _trader, positionId, _order, orderDigest, newPositionSizeBC, _price) {
346
+ PerpetualEventHandler.prototype.onTrade = function (perpetualId, _trader, positionId, _order, orderDigest, newPositionSizeBC, _price) {
298
347
  // remove order digest from open orders
299
- let orderStructs = this.ordersInPerpetual.get(perpetualId);
348
+ var orderStructs = this.ordersInPerpetual.get(perpetualId);
300
349
  if (orderStructs == undefined) {
301
- emitWarning(`onTrade: executed order not found ${orderDigest}`);
350
+ emitWarning("onTrade: executed order not found ".concat(orderDigest));
302
351
  }
303
352
  else {
304
353
  PerpetualEventHandler.deleteOrder(orderStructs, orderDigest);
@@ -311,38 +360,49 @@ export default class PerpetualEventHandler {
311
360
  newPositionSizeBC: ABK64x64ToFloat(newPositionSizeBC),
312
361
  executionPrice: ABK64x64ToFloat(newPositionSizeBC),
313
362
  };
314
- }
363
+ };
315
364
  /**
316
365
  * static function to find the number of the OrderStruct with given orderId
317
366
  * @param orderId id/digest of order
318
367
  * @param orderMap mapping for perpetualId->OrderStruct
319
368
  * @returns id of perpetual that contains order with id = orderId or undefined
320
369
  */
321
- static findOrderForId(orderId, orderMap) {
322
- /*orderMapMap<number, {
323
- orders: Order[];
324
- orderIds: string[];*/
325
- for (const perpId of orderMap.keys()) {
326
- let orderStructs = orderMap.get(perpId);
327
- if (orderStructs?.orderIds.includes(orderId)) {
328
- return perpId;
370
+ PerpetualEventHandler.findOrderForId = function (orderId, orderMap) {
371
+ var e_1, _a;
372
+ try {
373
+ /*orderMapMap<number, {
374
+ orders: Order[];
375
+ orderIds: string[];*/
376
+ for (var _b = __values(orderMap.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
377
+ var perpId = _c.value;
378
+ var orderStructs = orderMap.get(perpId);
379
+ if (orderStructs === null || orderStructs === void 0 ? void 0 : orderStructs.orderIds.includes(orderId)) {
380
+ return perpId;
381
+ }
382
+ }
383
+ }
384
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
385
+ finally {
386
+ try {
387
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
329
388
  }
389
+ finally { if (e_1) throw e_1.error; }
330
390
  }
331
391
  return undefined;
332
- }
392
+ };
333
393
  /**
334
394
  * Delete the order with given id from the class member data
335
395
  * @param orderStructs array of order struct as stored for the trader and a given perpetual
336
396
  * @param orderId digest/order id
337
397
  * @returns void
338
398
  */
339
- static deleteOrder(orderStructs, orderId) {
399
+ PerpetualEventHandler.deleteOrder = function (orderStructs, orderId) {
340
400
  // find order
341
- let k;
401
+ var k;
342
402
  for (k = 0; k < orderStructs.orderIds.length && orderStructs.orderIds[k] != orderId; k++)
343
403
  ;
344
404
  if (orderStructs.orderIds[k] != orderId) {
345
- emitWarning(`deleteOrder: no order found with digest ${orderId}`);
405
+ emitWarning("deleteOrder: no order found with digest ".concat(orderId));
346
406
  return;
347
407
  }
348
408
  // delete element k on reference of orders
@@ -350,7 +410,7 @@ export default class PerpetualEventHandler {
350
410
  orderStructs.orders.pop();
351
411
  orderStructs.orderIds[k] = orderStructs.orderIds[orderStructs.orderIds.length - 1];
352
412
  orderStructs.orderIds.pop();
353
- }
413
+ };
354
414
  /**
355
415
  * UpdateMarkPrice(
356
416
  * uint24 indexed perpetualId,
@@ -361,13 +421,15 @@ export default class PerpetualEventHandler {
361
421
  * @param fSpotIndexPrice spot index price in ABDK format
362
422
  * @returns mark price and spot index in float
363
423
  */
364
- static ConvertUpdateMarkPrice(fMidPricePremium, fMarkPricePremium, fSpotIndexPrice) {
365
- let fMarkPrice = mul64x64(fSpotIndexPrice, ONE_64x64.add(fMarkPricePremium));
366
- let fMidPrice = mul64x64(fSpotIndexPrice, ONE_64x64.add(fMidPricePremium));
367
- let midPrice = ABK64x64ToFloat(fMidPrice);
368
- let markPrice = ABK64x64ToFloat(fMarkPrice);
369
- let indexPrice = ABK64x64ToFloat(fSpotIndexPrice);
424
+ PerpetualEventHandler.ConvertUpdateMarkPrice = function (fMidPricePremium, fMarkPricePremium, fSpotIndexPrice) {
425
+ var fMarkPrice = mul64x64(fSpotIndexPrice, ONE_64x64.add(fMarkPricePremium));
426
+ var fMidPrice = mul64x64(fSpotIndexPrice, ONE_64x64.add(fMidPricePremium));
427
+ var midPrice = ABK64x64ToFloat(fMidPrice);
428
+ var markPrice = ABK64x64ToFloat(fMarkPrice);
429
+ var indexPrice = ABK64x64ToFloat(fSpotIndexPrice);
370
430
  return [midPrice, markPrice, indexPrice];
371
- }
372
- }
431
+ };
432
+ return PerpetualEventHandler;
433
+ }());
434
+ export default PerpetualEventHandler;
373
435
  //# sourceMappingURL=perpetualEventHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"perpetualEventHandler.js","sourceRoot":"","sources":["../../src/perpetualEventHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"perpetualEventHandler.js","sourceRoot":"","sources":["../../src/perpetualEventHandler.ts"],"names":[],"mappings":"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"}