@d8x/perpetuals-sdk 0.7.6 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/cjs/accountTrade.js +243 -134
  2. package/dist/cjs/accountTrade.js.map +1 -1
  3. package/dist/cjs/brokerTool.js +290 -144
  4. package/dist/cjs/brokerTool.js.map +1 -1
  5. package/dist/cjs/config/priceFeedConfig.json +1 -1
  6. package/dist/cjs/contracts/factories/ERC20__factory.js +12 -9
  7. package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
  8. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +12 -9
  9. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  10. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +12 -9
  11. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  12. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +12 -9
  13. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  14. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +12 -9
  15. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  16. package/dist/cjs/contracts/factories/ShareToken__factory.js +12 -9
  17. package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
  18. package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +12 -9
  19. package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
  20. package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +12 -9
  21. package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
  22. package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +12 -9
  23. package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
  24. package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js +12 -9
  25. package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
  26. package/dist/cjs/contracts/index.js +1 -1
  27. package/dist/cjs/d8XMath.js +66 -65
  28. package/dist/cjs/d8XMath.js.map +1 -1
  29. package/dist/cjs/index.js +11 -11
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/liquidatorTool.js +137 -80
  32. package/dist/cjs/liquidatorTool.js.map +1 -1
  33. package/dist/cjs/liquidityProviderTool.js +65 -33
  34. package/dist/cjs/liquidityProviderTool.js.map +1 -1
  35. package/dist/cjs/marketData.js +978 -635
  36. package/dist/cjs/marketData.js.map +1 -1
  37. package/dist/cjs/nodeSDKTypes.js +22 -10
  38. package/dist/cjs/nodeSDKTypes.js.map +1 -1
  39. package/dist/cjs/orderReferrerTool.js +323 -200
  40. package/dist/cjs/orderReferrerTool.js.map +1 -1
  41. package/dist/cjs/perpetualDataHandler.js +550 -404
  42. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  43. package/dist/cjs/perpetualEventHandler.js +190 -129
  44. package/dist/cjs/perpetualEventHandler.js.map +1 -1
  45. package/dist/cjs/priceFeeds.js +335 -223
  46. package/dist/cjs/priceFeeds.js.map +1 -1
  47. package/dist/cjs/traderDigests.js +23 -20
  48. package/dist/cjs/traderDigests.js.map +1 -1
  49. package/dist/cjs/traderInterface.js +87 -54
  50. package/dist/cjs/traderInterface.js.map +1 -1
  51. package/dist/cjs/triangulator.js +38 -34
  52. package/dist/cjs/triangulator.js.map +1 -1
  53. package/dist/cjs/utils.js +32 -18
  54. package/dist/cjs/utils.js.map +1 -1
  55. package/dist/cjs/version.d.ts +1 -1
  56. package/dist/cjs/version.js +1 -1
  57. package/dist/cjs/writeAccessHandler.js +112 -78
  58. package/dist/cjs/writeAccessHandler.js.map +1 -1
  59. package/dist/esm/accountTrade.js +237 -126
  60. package/dist/esm/accountTrade.js.map +1 -1
  61. package/dist/esm/brokerTool.js +284 -136
  62. package/dist/esm/brokerTool.js.map +1 -1
  63. package/dist/esm/config/priceFeedConfig.json +1 -1
  64. package/dist/esm/contracts/factories/ERC20__factory.js +12 -8
  65. package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
  66. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +12 -8
  67. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  68. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +12 -8
  69. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  70. package/dist/esm/contracts/factories/LimitOrderBook__factory.js +12 -8
  71. package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  72. package/dist/esm/contracts/factories/MockTokenSwap__factory.js +12 -8
  73. package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  74. package/dist/esm/contracts/factories/ShareToken__factory.js +12 -8
  75. package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
  76. package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +12 -8
  77. package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -1
  78. package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +12 -8
  79. package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -1
  80. package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +12 -8
  81. package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -1
  82. package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js +12 -8
  83. package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -1
  84. package/dist/esm/d8XMath.js +64 -63
  85. package/dist/esm/d8XMath.js.map +1 -1
  86. package/dist/esm/liquidatorTool.js +136 -77
  87. package/dist/esm/liquidatorTool.js.map +1 -1
  88. package/dist/esm/liquidityProviderTool.js +63 -29
  89. package/dist/esm/liquidityProviderTool.js.map +1 -1
  90. package/dist/esm/marketData.js +971 -626
  91. package/dist/esm/marketData.js.map +1 -1
  92. package/dist/esm/nodeSDKTypes.js +48 -36
  93. package/dist/esm/nodeSDKTypes.js.map +1 -1
  94. package/dist/esm/orderReferrerTool.js +319 -194
  95. package/dist/esm/orderReferrerTool.js.map +1 -1
  96. package/dist/esm/perpetualDataHandler.js +542 -394
  97. package/dist/esm/perpetualDataHandler.js.map +1 -1
  98. package/dist/esm/perpetualEventHandler.js +188 -126
  99. package/dist/esm/perpetualEventHandler.js.map +1 -1
  100. package/dist/esm/priceFeeds.js +332 -218
  101. package/dist/esm/priceFeeds.js.map +1 -1
  102. package/dist/esm/traderDigests.js +19 -15
  103. package/dist/esm/traderDigests.js.map +1 -1
  104. package/dist/esm/traderInterface.js +83 -48
  105. package/dist/esm/traderInterface.js.map +1 -1
  106. package/dist/esm/triangulator.js +39 -34
  107. package/dist/esm/triangulator.js.map +1 -1
  108. package/dist/esm/utils.js +30 -16
  109. package/dist/esm/utils.js.map +1 -1
  110. package/dist/esm/version.d.ts +1 -1
  111. package/dist/esm/version.js +1 -1
  112. package/dist/esm/version.js.map +1 -1
  113. package/dist/esm/writeAccessHandler.js +105 -69
  114. package/dist/esm/writeAccessHandler.js.map +1 -1
  115. package/package.json +1 -1
  116. package/src/accountTrade.ts +6 -1
  117. package/src/config/priceFeedConfig.json +1 -1
  118. package/src/orderReferrerTool.ts +2 -0
  119. package/src/version.ts +1 -1
@@ -1,3 +1,4 @@
1
+ import { __assign, __awaiter, __extends, __generator, __read } from "tslib";
1
2
  import { Buffer } from "buffer";
2
3
  import { ABK64x64ToFloat, floatToABK64x64 } from "./d8XMath";
3
4
  import MarketData from "./marketData";
@@ -11,7 +12,8 @@ import WriteAccessHandler from "./writeAccessHandler";
11
12
  * require gas-payments.
12
13
  * @extends WriteAccessHandler
13
14
  */
14
- export default class AccountTrade extends WriteAccessHandler {
15
+ var AccountTrade = /** @class */ (function (_super) {
16
+ __extends(AccountTrade, _super);
15
17
  /**
16
18
  * Constructor
17
19
  * @param {NodeSDKConfig} config Configuration object, see PerpetualDataHandler.
@@ -32,9 +34,10 @@ export default class AccountTrade extends WriteAccessHandler {
32
34
  *
33
35
  * @param {string | Signer} signer Private key or ethers Signer of the account
34
36
  */
35
- constructor(config, signer) {
36
- super(config, signer);
37
- this.digestTool = new TraderDigests();
37
+ function AccountTrade(config, signer) {
38
+ var _this = _super.call(this, config, signer) || this;
39
+ _this.digestTool = new TraderDigests();
40
+ return _this;
38
41
  }
39
42
  /**
40
43
  * Cancels an existing order on the exchange.
@@ -57,16 +60,28 @@ export default class AccountTrade extends WriteAccessHandler {
57
60
  * main();
58
61
  * @returns {ContractTransaction} Contract Transaction (containing events).
59
62
  */
60
- async cancelOrder(symbol, orderId, submission, overrides) {
61
- if (this.proxyContract == null || this.signer == null) {
62
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
63
- }
64
- if (submission == undefined) {
65
- submission = await this.fetchLatestFeedPriceInfo(symbol);
66
- }
67
- const orderBookContract = this.getOrderBookContract(symbol);
68
- return await this._cancelOrder(symbol, orderId, orderBookContract, submission, overrides);
69
- }
63
+ AccountTrade.prototype.cancelOrder = function (symbol, orderId, submission, overrides) {
64
+ return __awaiter(this, void 0, void 0, function () {
65
+ var orderBookContract;
66
+ return __generator(this, function (_a) {
67
+ switch (_a.label) {
68
+ case 0:
69
+ if (this.proxyContract == null || this.signer == null) {
70
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
71
+ }
72
+ if (!(submission == undefined)) return [3 /*break*/, 2];
73
+ return [4 /*yield*/, this.fetchLatestFeedPriceInfo(symbol)];
74
+ case 1:
75
+ submission = _a.sent();
76
+ _a.label = 2;
77
+ case 2:
78
+ orderBookContract = this.getOrderBookContract(symbol);
79
+ return [4 /*yield*/, this._cancelOrder(symbol, orderId, orderBookContract, submission, overrides)];
80
+ case 3: return [2 /*return*/, _a.sent()];
81
+ }
82
+ });
83
+ });
84
+ };
70
85
  /**
71
86
  * Submits an order to the exchange.
72
87
  * @param {Order} order Order structure. As a minimum the structure needs to
@@ -125,18 +140,28 @@ export default class AccountTrade extends WriteAccessHandler {
125
140
  *
126
141
  * @returns {ContractTransaction} Contract Transaction (containing events).
127
142
  */
128
- async order(order, parentChildIds, overrides) {
129
- if (this.proxyContract == null || this.signer == null) {
130
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
131
- }
132
- let minSize = PerpetualDataHandler._getMinimalPositionSize(order.symbol, this.symbolToPerpStaticInfo);
133
- if (Math.abs(order.quantity) < minSize) {
134
- throw Error("order size too small");
135
- }
136
- let orderBookContract = this.getOrderBookContract(order.symbol);
137
- let res = await this._order(order, this.traderAddr, this.symbolToPerpStaticInfo, this.proxyContract, orderBookContract, this.chainId, this.signer, parentChildIds, overrides);
138
- return res;
139
- }
143
+ AccountTrade.prototype.order = function (order, parentChildIds, overrides) {
144
+ return __awaiter(this, void 0, void 0, function () {
145
+ var minSize, orderBookContract, res;
146
+ return __generator(this, function (_a) {
147
+ switch (_a.label) {
148
+ case 0:
149
+ if (this.proxyContract == null || this.signer == null) {
150
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
151
+ }
152
+ minSize = PerpetualDataHandler._getMinimalPositionSize(order.symbol, this.symbolToPerpStaticInfo);
153
+ if (Math.abs(order.quantity) < minSize) {
154
+ throw Error("order size too small");
155
+ }
156
+ orderBookContract = this.getOrderBookContract(order.symbol);
157
+ return [4 /*yield*/, this._order(order, this.traderAddr, this.symbolToPerpStaticInfo, this.proxyContract, orderBookContract, this.chainId, this.signer, parentChildIds, overrides)];
158
+ case 1:
159
+ res = _a.sent();
160
+ return [2 /*return*/, res];
161
+ }
162
+ });
163
+ });
164
+ };
140
165
  /**
141
166
  * Fee charged by the exchange for trading any perpetual on a given pool.
142
167
  * It accounts for the current trader's fee tier (based on the trader's D8X balance and trading volume).
@@ -161,17 +186,27 @@ export default class AccountTrade extends WriteAccessHandler {
161
186
  *
162
187
  * @returns Exchange fee, in decimals (i.e. 0.1% is 0.001).
163
188
  */
164
- async queryExchangeFee(poolSymbolName, brokerAddr, overrides) {
165
- if (this.proxyContract == null) {
166
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
167
- }
168
- if (typeof brokerAddr == "undefined") {
169
- brokerAddr = ZERO_ADDRESS;
170
- }
171
- let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
172
- let feeTbps = await this.proxyContract.queryExchangeFee(poolId, this.traderAddr, brokerAddr, overrides || {});
173
- return feeTbps / 100000;
174
- }
189
+ AccountTrade.prototype.queryExchangeFee = function (poolSymbolName, brokerAddr, overrides) {
190
+ return __awaiter(this, void 0, void 0, function () {
191
+ var poolId, feeTbps;
192
+ return __generator(this, function (_a) {
193
+ switch (_a.label) {
194
+ case 0:
195
+ if (this.proxyContract == null) {
196
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
197
+ }
198
+ if (typeof brokerAddr == "undefined") {
199
+ brokerAddr = ZERO_ADDRESS;
200
+ }
201
+ poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
202
+ return [4 /*yield*/, this.proxyContract.queryExchangeFee(poolId, this.traderAddr, brokerAddr, overrides || {})];
203
+ case 1:
204
+ feeTbps = _a.sent();
205
+ return [2 /*return*/, feeTbps / 100000];
206
+ }
207
+ });
208
+ });
209
+ };
175
210
  /**
176
211
  * Exponentially weighted EMA of the total USD trading volume of all trades performed by this trader.
177
212
  * The weights are chosen so that in average this coincides with the 30 day volume.
@@ -193,14 +228,24 @@ export default class AccountTrade extends WriteAccessHandler {
193
228
  *
194
229
  * @returns {number} Current trading volume for this trader, in USD.
195
230
  */
196
- async getCurrentTraderVolume(poolSymbolName, overrides) {
197
- if (this.proxyContract == null || this.signer == null) {
198
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
199
- }
200
- let poolId = WriteAccessHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
201
- let volume = await this.proxyContract.getCurrentTraderVolume(poolId, this.traderAddr, overrides || {});
202
- return ABK64x64ToFloat(volume);
203
- }
231
+ AccountTrade.prototype.getCurrentTraderVolume = function (poolSymbolName, overrides) {
232
+ return __awaiter(this, void 0, void 0, function () {
233
+ var poolId, volume;
234
+ return __generator(this, function (_a) {
235
+ switch (_a.label) {
236
+ case 0:
237
+ if (this.proxyContract == null || this.signer == null) {
238
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
239
+ }
240
+ poolId = WriteAccessHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
241
+ return [4 /*yield*/, this.proxyContract.getCurrentTraderVolume(poolId, this.traderAddr, overrides || {})];
242
+ case 1:
243
+ volume = _a.sent();
244
+ return [2 /*return*/, ABK64x64ToFloat(volume)];
245
+ }
246
+ });
247
+ });
248
+ };
204
249
  /**
205
250
  *
206
251
  * @param symbol Symbol of the form ETH-USD-MATIC.
@@ -221,13 +266,22 @@ export default class AccountTrade extends WriteAccessHandler {
221
266
  *
222
267
  * @returns {string[]} Array of Ids for all the orders currently open by this trader.
223
268
  */
224
- async getOrderIds(symbol, overrides) {
225
- if (this.proxyContract == null || this.signer == null) {
226
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
227
- }
228
- let orderBookContract = this.getOrderBookContract(symbol);
229
- return await MarketData.orderIdsOfTrader(this.traderAddr, orderBookContract, overrides);
230
- }
269
+ AccountTrade.prototype.getOrderIds = function (symbol, overrides) {
270
+ return __awaiter(this, void 0, void 0, function () {
271
+ var orderBookContract;
272
+ return __generator(this, function (_a) {
273
+ switch (_a.label) {
274
+ case 0:
275
+ if (this.proxyContract == null || this.signer == null) {
276
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
277
+ }
278
+ orderBookContract = this.getOrderBookContract(symbol);
279
+ return [4 /*yield*/, MarketData.orderIdsOfTrader(this.traderAddr, orderBookContract, overrides)];
280
+ case 1: return [2 /*return*/, _a.sent()];
281
+ }
282
+ });
283
+ });
284
+ };
231
285
  /**
232
286
  * Static order function
233
287
  * @param order order type (not SmartContractOrder but Order)
@@ -241,37 +295,63 @@ export default class AccountTrade extends WriteAccessHandler {
241
295
  * @returns [transaction hash, order id]
242
296
  * @ignore
243
297
  */
244
- async _order(order, traderAddr, symbolToPerpetualMap, proxyContract, orderBookContract, chainId, signer, parentChildIds, overrides) {
245
- let scOrder = AccountTrade.toSmartContractOrder(order, traderAddr, symbolToPerpetualMap);
246
- let clientOrder = AccountTrade.fromSmartContratOrderToClientOrder(scOrder, parentChildIds);
247
- // if we are here, we have a clean order
248
- // decide whether to send order to Limit Order Book or AMM based on order type
249
- let tx;
250
- // all orders are sent to the order-book
251
- let [signature, digest] = await this._createSignature(scOrder, chainId, true, signer, proxyContract.address);
252
- tx = await orderBookContract.postOrder(clientOrder, signature, overrides || { gasLimit: this.gasLimit });
253
- let id = await this.digestTool.createOrderId(digest);
254
- return { tx: tx, orderId: id };
255
- }
256
- async _cancelOrder(symbol, orderId, orderBookContract, submission, overrides) {
257
- if (orderBookContract == null || this.signer == null) {
258
- throw Error(`Order Book contract for symbol ${symbol} or signer not defined`);
259
- }
260
- if (submission == undefined) {
261
- submission = await this.fetchLatestFeedPriceInfo(symbol);
262
- }
263
- let scOrder = await orderBookContract.orderOfDigest(orderId);
264
- let [signature] = await this._createSignature(scOrder, this.chainId, false, this.signer, this.proxyAddr);
265
- // value is minimal necessary by default, but can be overriden
266
- if (!overrides || overrides.value == undefined) {
267
- overrides = {
268
- value: submission.timestamps.length * this.PRICE_UPDATE_FEE_GWEI,
269
- gasLimit: overrides?.gasLimit ?? this.gasLimit,
270
- ...overrides,
271
- };
272
- }
273
- return await orderBookContract.cancelOrder(orderId, signature, submission.priceFeedVaas, submission.timestamps, overrides);
274
- }
298
+ AccountTrade.prototype._order = function (order, traderAddr, symbolToPerpetualMap, proxyContract, orderBookContract, chainId, signer, parentChildIds, overrides) {
299
+ var _a;
300
+ return __awaiter(this, void 0, void 0, function () {
301
+ var scOrder, clientOrder, tx, _b, signature, digest, nonce, id;
302
+ return __generator(this, function (_c) {
303
+ switch (_c.label) {
304
+ case 0:
305
+ scOrder = AccountTrade.toSmartContractOrder(order, traderAddr, symbolToPerpetualMap);
306
+ clientOrder = AccountTrade.fromSmartContratOrderToClientOrder(scOrder, parentChildIds);
307
+ return [4 /*yield*/, this._createSignature(scOrder, chainId, true, signer, proxyContract.address)];
308
+ case 1:
309
+ _b = __read.apply(void 0, [_c.sent(), 2]), signature = _b[0], digest = _b[1];
310
+ return [4 /*yield*/, ((_a = this.signer) === null || _a === void 0 ? void 0 : _a.getTransactionCount())];
311
+ case 2:
312
+ nonce = _c.sent();
313
+ return [4 /*yield*/, orderBookContract.postOrder(clientOrder, signature, overrides || { gasLimit: this.gasLimit, nonce: nonce })];
314
+ case 3:
315
+ tx = _c.sent();
316
+ return [4 /*yield*/, this.digestTool.createOrderId(digest)];
317
+ case 4:
318
+ id = _c.sent();
319
+ return [2 /*return*/, { tx: tx, orderId: id }];
320
+ }
321
+ });
322
+ });
323
+ };
324
+ AccountTrade.prototype._cancelOrder = function (symbol, orderId, orderBookContract, submission, overrides) {
325
+ var _a;
326
+ return __awaiter(this, void 0, void 0, function () {
327
+ var scOrder, _b, signature;
328
+ return __generator(this, function (_c) {
329
+ switch (_c.label) {
330
+ case 0:
331
+ if (orderBookContract == null || this.signer == null) {
332
+ throw Error("Order Book contract for symbol ".concat(symbol, " or signer not defined"));
333
+ }
334
+ if (!(submission == undefined)) return [3 /*break*/, 2];
335
+ return [4 /*yield*/, this.fetchLatestFeedPriceInfo(symbol)];
336
+ case 1:
337
+ submission = _c.sent();
338
+ _c.label = 2;
339
+ case 2: return [4 /*yield*/, orderBookContract.orderOfDigest(orderId)];
340
+ case 3:
341
+ scOrder = _c.sent();
342
+ return [4 /*yield*/, this._createSignature(scOrder, this.chainId, false, this.signer, this.proxyAddr)];
343
+ case 4:
344
+ _b = __read.apply(void 0, [_c.sent(), 1]), signature = _b[0];
345
+ // value is minimal necessary by default, but can be overriden
346
+ if (!overrides || overrides.value == undefined) {
347
+ overrides = __assign({ value: submission.timestamps.length * this.PRICE_UPDATE_FEE_GWEI, gasLimit: (_a = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _a !== void 0 ? _a : this.gasLimit }, overrides);
348
+ }
349
+ return [4 /*yield*/, orderBookContract.cancelOrder(orderId, signature, submission.priceFeedVaas, submission.timestamps, overrides)];
350
+ case 5: return [2 /*return*/, _c.sent()];
351
+ }
352
+ });
353
+ });
354
+ };
275
355
  /**
276
356
  * Creates a signature
277
357
  * @param order smart-contract-type order
@@ -282,57 +362,88 @@ export default class AccountTrade extends WriteAccessHandler {
282
362
  * @returns signature as string
283
363
  * @ignore
284
364
  */
285
- async _createSignature(order, chainId, isNewOrder, signer, proxyAddress) {
286
- let digest = await this.digestTool.createDigest(order, chainId, isNewOrder, proxyAddress);
287
- let digestBuffer = Buffer.from(digest.substring(2, digest.length), "hex");
288
- let signature = await signer.signMessage(digestBuffer);
289
- return [signature, digest];
290
- }
365
+ AccountTrade.prototype._createSignature = function (order, chainId, isNewOrder, signer, proxyAddress) {
366
+ return __awaiter(this, void 0, void 0, function () {
367
+ var digest, digestBuffer, signature;
368
+ return __generator(this, function (_a) {
369
+ switch (_a.label) {
370
+ case 0: return [4 /*yield*/, this.digestTool.createDigest(order, chainId, isNewOrder, proxyAddress)];
371
+ case 1:
372
+ digest = _a.sent();
373
+ digestBuffer = Buffer.from(digest.substring(2, digest.length), "hex");
374
+ return [4 /*yield*/, signer.signMessage(digestBuffer)];
375
+ case 2:
376
+ signature = _a.sent();
377
+ return [2 /*return*/, [signature, digest]];
378
+ }
379
+ });
380
+ });
381
+ };
291
382
  /**
292
383
  *
293
384
  * @param {string} symbol Symbol of the form ETH-USD-MATIC.
294
385
  * @param {number} amount How much collateral to add, in units of collateral currency, e.g. MATIC
295
386
  */
296
- async addCollateral(symbol, amount, submission, overrides) {
297
- if (this.proxyContract == null || this.signer == null) {
298
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
299
- }
300
- let perpId = this.getPerpIdFromSymbol(symbol);
301
- let fAmountCC = floatToABK64x64(amount);
302
- if (submission == undefined) {
303
- submission = await this.fetchLatestFeedPriceInfo(symbol);
304
- }
305
- if (!overrides || overrides.value == undefined) {
306
- overrides = {
307
- value: submission.timestamps.length * this.PRICE_UPDATE_FEE_GWEI,
308
- gasLimit: overrides?.gasLimit ?? this.gasLimit,
309
- ...overrides,
310
- };
311
- }
312
- return await this.proxyContract.deposit(perpId, fAmountCC, submission.priceFeedVaas, submission.timestamps, overrides || { gasLimit: this.gasLimit });
313
- }
387
+ AccountTrade.prototype.addCollateral = function (symbol, amount, submission, overrides) {
388
+ var _a;
389
+ return __awaiter(this, void 0, void 0, function () {
390
+ var perpId, fAmountCC;
391
+ return __generator(this, function (_b) {
392
+ switch (_b.label) {
393
+ case 0:
394
+ if (this.proxyContract == null || this.signer == null) {
395
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
396
+ }
397
+ perpId = this.getPerpIdFromSymbol(symbol);
398
+ fAmountCC = floatToABK64x64(amount);
399
+ if (!(submission == undefined)) return [3 /*break*/, 2];
400
+ return [4 /*yield*/, this.fetchLatestFeedPriceInfo(symbol)];
401
+ case 1:
402
+ submission = _b.sent();
403
+ _b.label = 2;
404
+ case 2:
405
+ if (!overrides || overrides.value == undefined) {
406
+ overrides = __assign({ value: submission.timestamps.length * this.PRICE_UPDATE_FEE_GWEI, gasLimit: (_a = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _a !== void 0 ? _a : this.gasLimit }, overrides);
407
+ }
408
+ return [4 /*yield*/, this.proxyContract.deposit(perpId, fAmountCC, submission.priceFeedVaas, submission.timestamps, overrides || { gasLimit: this.gasLimit })];
409
+ case 3: return [2 /*return*/, _b.sent()];
410
+ }
411
+ });
412
+ });
413
+ };
314
414
  /**
315
415
  *
316
416
  * @param {string} symbol Symbol of the form ETH-USD-MATIC.
317
417
  * @param {number} amount How much collateral to remove, in units of collateral currency, e.g. MATIC
318
418
  */
319
- async removeCollateral(symbol, amount, submission, overrides) {
320
- if (this.proxyContract == null || this.signer == null) {
321
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
322
- }
323
- let perpId = this.getPerpIdFromSymbol(symbol);
324
- let fAmountCC = floatToABK64x64(amount);
325
- if (submission == undefined) {
326
- submission = await this.fetchLatestFeedPriceInfo(symbol);
327
- }
328
- if (!overrides || overrides.value == undefined) {
329
- overrides = {
330
- value: submission.timestamps.length * this.PRICE_UPDATE_FEE_GWEI,
331
- gasLimit: overrides?.gasLimit ?? this.gasLimit,
332
- ...overrides,
333
- };
334
- }
335
- return await this.proxyContract.withdraw(perpId, fAmountCC, submission.priceFeedVaas, submission.timestamps, overrides || { gasLimit: this.gasLimit });
336
- }
337
- }
419
+ AccountTrade.prototype.removeCollateral = function (symbol, amount, submission, overrides) {
420
+ var _a;
421
+ return __awaiter(this, void 0, void 0, function () {
422
+ var perpId, fAmountCC;
423
+ return __generator(this, function (_b) {
424
+ switch (_b.label) {
425
+ case 0:
426
+ if (this.proxyContract == null || this.signer == null) {
427
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
428
+ }
429
+ perpId = this.getPerpIdFromSymbol(symbol);
430
+ fAmountCC = floatToABK64x64(amount);
431
+ if (!(submission == undefined)) return [3 /*break*/, 2];
432
+ return [4 /*yield*/, this.fetchLatestFeedPriceInfo(symbol)];
433
+ case 1:
434
+ submission = _b.sent();
435
+ _b.label = 2;
436
+ case 2:
437
+ if (!overrides || overrides.value == undefined) {
438
+ overrides = __assign({ value: submission.timestamps.length * this.PRICE_UPDATE_FEE_GWEI, gasLimit: (_a = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _a !== void 0 ? _a : this.gasLimit }, overrides);
439
+ }
440
+ return [4 /*yield*/, this.proxyContract.withdraw(perpId, fAmountCC, submission.priceFeedVaas, submission.timestamps, overrides || { gasLimit: this.gasLimit })];
441
+ case 3: return [2 /*return*/, _b.sent()];
442
+ }
443
+ });
444
+ });
445
+ };
446
+ return AccountTrade;
447
+ }(WriteAccessHandler));
448
+ export default AccountTrade;
338
449
  //# sourceMappingURL=accountTrade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accountTrade.js","sourceRoot":"","sources":["../../src/accountTrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accountTrade.js","sourceRoot":"","sources":["../../src/accountTrade.ts"],"names":[],"mappings":"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"}