@d8x/perpetuals-sdk 0.7.4 → 0.7.6

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