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