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