@d8x/perpetuals-sdk 0.1.13 → 0.2.0

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 (35) hide show
  1. package/dist/cjs/abi/testnet/IPerpetualManager.json +414 -224
  2. package/dist/cjs/abi/testnet/LimitOrderBook.json +200 -18
  3. package/dist/cjs/abi/zkevmTestnet/IPerpetualManager.json +5215 -0
  4. package/dist/cjs/abi/zkevmTestnet/LimitOrderBook.json +1075 -0
  5. package/dist/cjs/abi/zkevmTestnet/LimitOrderBookFactory.json +135 -0
  6. package/dist/cjs/config/defaultConfig.json +9 -9
  7. package/dist/cjs/nodeSDKTypes.d.ts +4 -4
  8. package/dist/cjs/nodeSDKTypes.js.map +1 -1
  9. package/dist/cjs/orderReferrerTool.d.ts +12 -5
  10. package/dist/cjs/orderReferrerTool.js +92 -21
  11. package/dist/cjs/orderReferrerTool.js.map +1 -1
  12. package/dist/cjs/perpetualDataHandler.d.ts +1 -1
  13. package/dist/cjs/perpetualDataHandler.js +17 -13
  14. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  15. package/dist/cjs/version.d.ts +1 -1
  16. package/dist/cjs/version.js +1 -1
  17. package/dist/cjs/version.js.map +1 -1
  18. package/dist/esm/abi/testnet/IPerpetualManager.json +414 -224
  19. package/dist/esm/abi/testnet/LimitOrderBook.json +200 -18
  20. package/dist/esm/abi/zkevmTestnet/IPerpetualManager.json +5215 -0
  21. package/dist/esm/abi/zkevmTestnet/LimitOrderBook.json +1075 -0
  22. package/dist/esm/abi/zkevmTestnet/LimitOrderBookFactory.json +135 -0
  23. package/dist/esm/config/defaultConfig.json +9 -9
  24. package/dist/esm/nodeSDKTypes.d.ts +4 -4
  25. package/dist/esm/nodeSDKTypes.js.map +1 -1
  26. package/dist/esm/orderReferrerTool.d.ts +12 -5
  27. package/dist/esm/orderReferrerTool.js +93 -22
  28. package/dist/esm/orderReferrerTool.js.map +1 -1
  29. package/dist/esm/perpetualDataHandler.d.ts +1 -1
  30. package/dist/esm/perpetualDataHandler.js +17 -13
  31. package/dist/esm/perpetualDataHandler.js.map +1 -1
  32. package/dist/esm/version.d.ts +1 -1
  33. package/dist/esm/version.js +1 -1
  34. package/dist/esm/version.js.map +1 -1
  35. package/package.json +1 -1
@@ -0,0 +1,135 @@
1
+ [
2
+ {
3
+ "anonymous": false,
4
+ "inputs": [
5
+ {
6
+ "indexed": true,
7
+ "internalType": "address",
8
+ "name": "previousOwner",
9
+ "type": "address"
10
+ },
11
+ {
12
+ "indexed": true,
13
+ "internalType": "address",
14
+ "name": "newOwner",
15
+ "type": "address"
16
+ }
17
+ ],
18
+ "name": "OwnershipTransferred",
19
+ "type": "event"
20
+ },
21
+ {
22
+ "anonymous": false,
23
+ "inputs": [
24
+ {
25
+ "indexed": true,
26
+ "internalType": "uint24",
27
+ "name": "perpetualId",
28
+ "type": "uint24"
29
+ },
30
+ {
31
+ "indexed": false,
32
+ "internalType": "address",
33
+ "name": "perpManagerAddress",
34
+ "type": "address"
35
+ },
36
+ {
37
+ "indexed": false,
38
+ "internalType": "address",
39
+ "name": "limitOrderBookAddress",
40
+ "type": "address"
41
+ }
42
+ ],
43
+ "name": "PerpetualLimitOrderBookDeployed",
44
+ "type": "event"
45
+ },
46
+ {
47
+ "inputs": [
48
+ {
49
+ "internalType": "address",
50
+ "name": "_perpetualManagerAddr",
51
+ "type": "address"
52
+ },
53
+ {
54
+ "internalType": "uint24",
55
+ "name": "_perpetualId",
56
+ "type": "uint24"
57
+ }
58
+ ],
59
+ "name": "deployLimitOrderBookProxy",
60
+ "outputs": [],
61
+ "stateMutability": "nonpayable",
62
+ "type": "function"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "uint24",
68
+ "name": "_perpetualId",
69
+ "type": "uint24"
70
+ }
71
+ ],
72
+ "name": "getOrderBookAddress",
73
+ "outputs": [
74
+ {
75
+ "internalType": "address",
76
+ "name": "",
77
+ "type": "address"
78
+ }
79
+ ],
80
+ "stateMutability": "view",
81
+ "type": "function"
82
+ },
83
+ {
84
+ "inputs": [
85
+ {
86
+ "internalType": "uint24",
87
+ "name": "",
88
+ "type": "uint24"
89
+ }
90
+ ],
91
+ "name": "orderBooks",
92
+ "outputs": [
93
+ {
94
+ "internalType": "address",
95
+ "name": "",
96
+ "type": "address"
97
+ }
98
+ ],
99
+ "stateMutability": "view",
100
+ "type": "function"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "owner",
105
+ "outputs": [
106
+ {
107
+ "internalType": "address",
108
+ "name": "",
109
+ "type": "address"
110
+ }
111
+ ],
112
+ "stateMutability": "view",
113
+ "type": "function"
114
+ },
115
+ {
116
+ "inputs": [],
117
+ "name": "renounceOwnership",
118
+ "outputs": [],
119
+ "stateMutability": "nonpayable",
120
+ "type": "function"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "address",
126
+ "name": "newOwner",
127
+ "type": "address"
128
+ }
129
+ ],
130
+ "name": "transferOwnership",
131
+ "outputs": [],
132
+ "stateMutability": "nonpayable",
133
+ "type": "function"
134
+ }
135
+ ]
@@ -2,8 +2,8 @@
2
2
  {
3
3
  "name": "testnet",
4
4
  "chainId": 80001,
5
- "version": 1.5,
6
- "proxyAddr": "0xaB6AD25eE5CA28E7d7b16A33A33897aE34BF9e67",
5
+ "version": 6,
6
+ "proxyAddr": "0xDEDf0dd46757cE93E0D9439F78382c0c68cF76C2",
7
7
  "nodeURL": "https://polygon-mumbai.blockpi.network/v1/rpc/public",
8
8
  "priceFeedConfigNetwork": "testnet",
9
9
  "proxyABILocation": "testnet/IPerpetualManager.json",
@@ -23,9 +23,9 @@
23
23
  "limitOrderBookABILocation": ""
24
24
  },
25
25
  {
26
- "name": "central-park",
26
+ "name": "testnet",
27
27
  "chainId": 80001,
28
- "version": 5.1,
28
+ "version": 5,
29
29
  "proxyAddr": "0x4F1C7EE9E881Cc735f39Ca36c649ba9E930B4E4e",
30
30
  "nodeURL": "https://polygon-mumbai.blockpi.network/v1/rpc/public",
31
31
  "priceFeedConfigNetwork": "testnet",
@@ -34,14 +34,14 @@
34
34
  "limitOrderBookABILocation": "central-park/LimitOrderBook.json"
35
35
  },
36
36
  {
37
- "name": "Polygon zkEVM Testnet",
37
+ "name": "zkevmTestnet",
38
38
  "chainId": 1442,
39
39
  "version": 0,
40
- "proxyAddr": "",
40
+ "proxyAddr": "0xb56b81e40e1cDB77bb5Db6C0283e25C27DAE1Be6",
41
41
  "nodeURL": "https://rpc.public.zkevm-test.net ",
42
42
  "priceFeedConfigNetwork": "testnet",
43
- "proxyABILocation": "",
44
- "limitOrderBookFactoryABILocation": "",
45
- "limitOrderBookABILocation": ""
43
+ "proxyABILocation": "zkevmTestnet/IPerpetualManager.json",
44
+ "limitOrderBookFactoryABILocation": "zkevmTestnet/LimitOrderBookFactory.json",
45
+ "limitOrderBookABILocation": "zkevmTestnet/LimitOrderBook.json"
46
46
  }
47
47
  ]
@@ -153,7 +153,7 @@ export interface Order {
153
153
  leverage?: number | undefined;
154
154
  deadline?: number | undefined;
155
155
  timestamp: number;
156
- submittedBlock?: number;
156
+ submittedTimestamp?: number;
157
157
  parentChildOrderIds?: [string, string];
158
158
  }
159
159
  export interface TradeEvent {
@@ -178,7 +178,7 @@ export interface TradeEvent {
178
178
  int128 fLeverage; // 0 if deposit and trade separate
179
179
  uint64 iDeadline;
180
180
  uint64 createdTimestamp;
181
- uint64 submittedBlock;
181
+ uint64 submittedTimestamp;
182
182
  }
183
183
  */
184
184
  export interface SmartContractOrder {
@@ -195,7 +195,7 @@ export interface SmartContractOrder {
195
195
  fLeverage: BigNumberish;
196
196
  iDeadline: BigNumberish;
197
197
  createdTimestamp: BigNumberish;
198
- submittedBlock: BigNumberish;
198
+ submittedTimestamp: BigNumberish;
199
199
  }
200
200
  /**
201
201
  * struct ClientOrder {
@@ -212,7 +212,7 @@ export interface SmartContractOrder {
212
212
  int128 fLeverage; // 0 if deposit and trade separate
213
213
  uint64 iDeadline;
214
214
  uint64 createdTimestamp;
215
- //uint64 submittedBlock <- will be set by LimitOrderBook
215
+ //uint64 submittedTimestamp <- will be set by LimitOrderBook
216
216
  bytes32 parentChildDigest1;
217
217
  bytes32 parentChildDigest2;
218
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nodeSDKTypes.js","sourceRoot":"","sources":["../../src/nodeSDKTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeSDKTypes.js","sourceRoot":"","sources":["../../src/nodeSDKTypes.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ethers } from "ethers";
2
- import { NodeSDKConfig, Order, PerpetualStaticInfo, PriceFeedSubmission } from "./nodeSDKTypes";
2
+ import { NodeSDKConfig, Order, PerpetualStaticInfo, PriceFeedSubmission, SmartContractOrder } from "./nodeSDKTypes";
3
3
  import WriteAccessHandler from "./writeAccessHandler";
4
4
  /**
5
5
  * Functions to execute existing conditional orders from the limit order book. This class
@@ -8,7 +8,7 @@ import WriteAccessHandler from "./writeAccessHandler";
8
8
  * @extends WriteAccessHandler
9
9
  */
10
10
  export default class OrderReferrerTool extends WriteAccessHandler {
11
- static BLOCK_DELAY: number;
11
+ static TRADE_DELAY: number;
12
12
  /**
13
13
  * Constructor.
14
14
  * @param {NodeSDKConfig} config Configuration object, see PerpetualDataHandler.readSDKConfig.
@@ -64,6 +64,7 @@ export default class OrderReferrerTool extends WriteAccessHandler {
64
64
  * @returns Transaction object.
65
65
  */
66
66
  executeOrder(symbol: string, orderId: string, referrerAddr?: string, nonce?: number, submission?: PriceFeedSubmission): Promise<ethers.ContractTransaction>;
67
+ executeOrders(symbol: string, orderIds: string[], referrerAddr?: string, nonce?: number, submission?: PriceFeedSubmission): Promise<ethers.ContractTransaction>;
67
68
  /**
68
69
  * All the orders in the order book for a given symbol that are currently open.
69
70
  * @param {string} symbol Symbol of the form ETH-USD-MATIC.
@@ -175,7 +176,7 @@ export default class OrderReferrerTool extends WriteAccessHandler {
175
176
  * main();
176
177
  * @returns true if order can be executed for the current state of the perpetuals
177
178
  */
178
- isTradeable(order: Order, indexPrices?: [number, number]): Promise<boolean>;
179
+ isTradeable(order: Order, blockTimestamp?: number, indexPrices?: [number, number]): Promise<boolean>;
179
180
  /**
180
181
  * Check for a batch of orders on the same perpetual whether they can be traded
181
182
  * @param orders orders belonging to 1 perpetual
@@ -183,7 +184,13 @@ export default class OrderReferrerTool extends WriteAccessHandler {
183
184
  * if not defined.
184
185
  * @returns array of tradeable boolean
185
186
  */
186
- isTradeableBatch(orders: Order[], indexPrices?: [number, number, boolean, boolean]): Promise<boolean[]>;
187
- static _isTradeable(order: Order, tradePrice: number, markPrice: number, block: number, symbolToPerpInfoMap: Map<string, PerpetualStaticInfo>): boolean;
187
+ isTradeableBatch(orders: Order[], blockTimestamp?: number, indexPrices?: [number, number, boolean, boolean]): Promise<boolean[]>;
188
+ protected _isTradeable(order: Order, tradePrice: number, markPrice: number, blockTimestamp: number, symbolToPerpInfoMap: Map<string, PerpetualStaticInfo>): boolean;
189
+ /**
190
+ * Wrapper of static method to use after mappings have been loaded into memory.
191
+ * @param scOrder Perpetual order as received in the proxy events.
192
+ * @returns A user-friendly order struct.
193
+ */
194
+ smartContractOrderToOrder(scOrder: SmartContractOrder): Order;
188
195
  getTransactionCount(blockTag?: ethers.providers.BlockTag): Promise<number>;
189
196
  }
@@ -99,6 +99,36 @@ var OrderReferrerTool = /** @class */ (function (_super) {
99
99
  });
100
100
  });
101
101
  };
102
+ OrderReferrerTool.prototype.executeOrders = function (symbol, orderIds, referrerAddr, nonce, submission) {
103
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
104
+ var orderBookSC, options;
105
+ return tslib_1.__generator(this, function (_a) {
106
+ switch (_a.label) {
107
+ case 0:
108
+ if (this.proxyContract == null || this.signer == null) {
109
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
110
+ }
111
+ orderBookSC = this.getOrderBookContract(symbol);
112
+ if (typeof referrerAddr == "undefined") {
113
+ referrerAddr = this.traderAddr;
114
+ }
115
+ if (!(submission == undefined)) return [3 /*break*/, 2];
116
+ return [4 /*yield*/, this.priceFeedGetter.fetchLatestFeedPriceInfoForPerpetual(symbol)];
117
+ case 1:
118
+ submission = _a.sent();
119
+ _a.label = 2;
120
+ case 2:
121
+ options = {
122
+ gasLimit: this.gasLimit,
123
+ nonce: nonce,
124
+ value: this.PRICE_UPDATE_FEE_GWEI * (submission === null || submission === void 0 ? void 0 : submission.priceFeedVaas.length),
125
+ };
126
+ return [4 /*yield*/, orderBookSC.executeOrders(orderIds, referrerAddr, submission === null || submission === void 0 ? void 0 : submission.priceFeedVaas, submission === null || submission === void 0 ? void 0 : submission.timestamps, options)];
127
+ case 3: return [2 /*return*/, _a.sent()];
128
+ }
129
+ });
130
+ });
131
+ };
102
132
  /**
103
133
  * All the orders in the order book for a given symbol that are currently open.
104
134
  * @param {string} symbol Symbol of the form ETH-USD-MATIC.
@@ -288,9 +318,9 @@ var OrderReferrerTool = /** @class */ (function (_super) {
288
318
  * main();
289
319
  * @returns true if order can be executed for the current state of the perpetuals
290
320
  */
291
- OrderReferrerTool.prototype.isTradeable = function (order, indexPrices) {
321
+ OrderReferrerTool.prototype.isTradeable = function (order, blockTimestamp, indexPrices) {
292
322
  return tslib_1.__awaiter(this, void 0, void 0, function () {
293
- var obj, orderPrice, markPrice, block;
323
+ var obj, orderPrice, markPrice, currentBlock;
294
324
  return tslib_1.__generator(this, function (_a) {
295
325
  switch (_a.label) {
296
326
  case 0:
@@ -309,10 +339,16 @@ var OrderReferrerTool = /** @class */ (function (_super) {
309
339
  return [4 /*yield*/, perpetualDataHandler_1.default._queryPerpetualMarkPrice(order.symbol, this.symbolToPerpStaticInfo, this.proxyContract, indexPrices)];
310
340
  case 4:
311
341
  markPrice = _a.sent();
342
+ if (!(blockTimestamp == undefined)) return [3 /*break*/, 7];
312
343
  return [4 /*yield*/, this.provider.getBlockNumber()];
313
344
  case 5:
314
- block = _a.sent();
315
- return [2 /*return*/, OrderReferrerTool._isTradeable(order, orderPrice, markPrice, block, this.symbolToPerpStaticInfo)];
345
+ currentBlock = _a.sent();
346
+ return [4 /*yield*/, this.provider.getBlock(currentBlock)];
347
+ case 6:
348
+ blockTimestamp = (_a.sent()).timestamp;
349
+ _a.label = 7;
350
+ case 7: return [4 /*yield*/, this._isTradeable(order, orderPrice, markPrice, blockTimestamp, this.symbolToPerpStaticInfo)];
351
+ case 8: return [2 /*return*/, _a.sent()];
316
352
  }
317
353
  });
318
354
  });
@@ -324,9 +360,9 @@ var OrderReferrerTool = /** @class */ (function (_super) {
324
360
  * if not defined.
325
361
  * @returns array of tradeable boolean
326
362
  */
327
- OrderReferrerTool.prototype.isTradeableBatch = function (orders, indexPrices) {
363
+ OrderReferrerTool.prototype.isTradeableBatch = function (orders, blockTimestamp, indexPrices) {
328
364
  return tslib_1.__awaiter(this, void 0, void 0, function () {
329
- var obj, orderPrice, markPrice, block;
365
+ var obj, orderPrice, markPrice, currentBlock;
330
366
  var _this = this;
331
367
  return tslib_1.__generator(this, function (_a) {
332
368
  switch (_a.label) {
@@ -359,48 +395,83 @@ var OrderReferrerTool = /** @class */ (function (_super) {
359
395
  return [4 /*yield*/, perpetualDataHandler_1.default._queryPerpetualMarkPrice(orders[0].symbol, this.symbolToPerpStaticInfo, this.proxyContract, [indexPrices[0], indexPrices[1]])];
360
396
  case 4:
361
397
  markPrice = _a.sent();
398
+ if (!(blockTimestamp == undefined)) return [3 /*break*/, 7];
362
399
  return [4 /*yield*/, this.provider.getBlockNumber()];
363
400
  case 5:
364
- block = _a.sent();
365
- return [2 /*return*/, orders.map(function (o, idx) {
366
- return OrderReferrerTool._isTradeable(o, orderPrice[idx], markPrice, block, _this.symbolToPerpStaticInfo);
367
- })];
401
+ currentBlock = _a.sent();
402
+ return [4 /*yield*/, this.provider.getBlock(currentBlock)];
403
+ case 6:
404
+ blockTimestamp = (_a.sent()).timestamp;
405
+ _a.label = 7;
406
+ case 7: return [4 /*yield*/, orders.map(function (o, idx) {
407
+ return _this._isTradeable(o, orderPrice[idx], markPrice, blockTimestamp, _this.symbolToPerpStaticInfo);
408
+ })];
409
+ case 8: return [2 /*return*/, _a.sent()];
368
410
  }
369
411
  });
370
412
  });
371
413
  };
372
- OrderReferrerTool._isTradeable = function (order, tradePrice, markPrice, block, symbolToPerpInfoMap) {
414
+ OrderReferrerTool.prototype._isTradeable = function (order, tradePrice, markPrice, blockTimestamp, symbolToPerpInfoMap) {
373
415
  // check expiration date
374
416
  if (order.deadline != undefined && order.deadline < Date.now() / 1000) {
417
+ console.log("order expired");
375
418
  return false;
376
419
  }
377
- if (order.submittedBlock == undefined || order.submittedBlock + this.BLOCK_DELAY > block) {
420
+ // -1 because order is executed on the next block (+1)
421
+ if (order.submittedTimestamp != undefined &&
422
+ order.submittedTimestamp + OrderReferrerTool.TRADE_DELAY < blockTimestamp - 1) {
423
+ console.log("on hold for ".concat(blockTimestamp - 1 - order.submittedTimestamp - OrderReferrerTool.TRADE_DELAY, " seconds"));
378
424
  return false;
379
425
  }
380
426
  // check order size
381
- if (order.quantity < perpetualDataHandler_1.default._getLotSize(order.symbol, symbolToPerpInfoMap)) {
427
+ var lotSize = perpetualDataHandler_1.default._getLotSize(order.symbol, symbolToPerpInfoMap);
428
+ if (order.quantity < lotSize) {
429
+ console.log("order size too small: ".concat(order.quantity, " < ").concat(lotSize));
382
430
  return false;
383
431
  }
384
432
  // check limit price: fromSmartContractOrder will set it to undefined when not tradeable
385
433
  if (order.limitPrice == undefined) {
434
+ console.log("limit price undefined");
386
435
  return false;
387
436
  }
388
437
  var limitPrice = order.limitPrice;
389
438
  if ((order.side == nodeSDKTypes_1.BUY_SIDE && tradePrice > limitPrice) || (order.side == nodeSDKTypes_1.SELL_SIDE && tradePrice < limitPrice)) {
439
+ console.log("limit price not met: ".concat(limitPrice, " ").concat(order.side, " @ ").concat(tradePrice));
390
440
  return false;
391
441
  }
392
- // do we need to check trigger/stop?
393
- if (order.stopPrice == undefined) {
394
- // nothing to check, order is tradeable
395
- return true;
396
- }
397
- if ((order.side == nodeSDKTypes_1.BUY_SIDE && markPrice < order.stopPrice) ||
398
- (order.side == nodeSDKTypes_1.SELL_SIDE && markPrice > order.stopPrice)) {
442
+ // check stop price
443
+ if (order.stopPrice != undefined &&
444
+ ((order.side == nodeSDKTypes_1.BUY_SIDE && markPrice < order.stopPrice) ||
445
+ (order.side == nodeSDKTypes_1.SELL_SIDE && markPrice > order.stopPrice))) {
446
+ console.log("stop price not met");
399
447
  return false;
400
448
  }
449
+ //check dependency
450
+ if (order.parentChildOrderIds != undefined &&
451
+ order.parentChildOrderIds[0] == ethers_1.ethers.constants.HashZero &&
452
+ order.parentChildOrderIds[1] != ethers_1.ethers.constants.HashZero) {
453
+ // order has a parent
454
+ var orderBookContract = this.getOrderBookContract(order.symbol);
455
+ return orderBookContract.getOrderStatus(order.parentChildOrderIds[1]).then(function (status) {
456
+ if (status == 2 || status == 3) {
457
+ console.log("parent not executed/cancelled");
458
+ // parent is open or unknown
459
+ return false;
460
+ }
461
+ return true;
462
+ });
463
+ }
401
464
  // all checks passed -> order is tradeable
402
465
  return true;
403
466
  };
467
+ /**
468
+ * Wrapper of static method to use after mappings have been loaded into memory.
469
+ * @param scOrder Perpetual order as received in the proxy events.
470
+ * @returns A user-friendly order struct.
471
+ */
472
+ OrderReferrerTool.prototype.smartContractOrderToOrder = function (scOrder) {
473
+ return perpetualDataHandler_1.default.fromSmartContractOrder(scOrder, this.symbolToPerpStaticInfo);
474
+ };
404
475
  OrderReferrerTool.prototype.getTransactionCount = function (blockTag) {
405
476
  return tslib_1.__awaiter(this, void 0, void 0, function () {
406
477
  return tslib_1.__generator(this, function (_a) {
@@ -415,7 +486,7 @@ var OrderReferrerTool = /** @class */ (function (_super) {
415
486
  });
416
487
  });
417
488
  };
418
- OrderReferrerTool.BLOCK_DELAY = 2;
489
+ OrderReferrerTool.TRADE_DELAY = 5;
419
490
  return OrderReferrerTool;
420
491
  }(writeAccessHandler_1.default));
421
492
  exports.default = OrderReferrerTool;
@@ -1 +1 @@
1
- {"version":3,"file":"orderReferrerTool.js","sourceRoot":"","sources":["../../src/orderReferrerTool.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAC3C,+CAWwB;AACxB,wFAA0D;AAC1D,oFAAsD;AAEtD;;;;;GAKG;AACH;IAA+C,6CAAkB;IAE/D;;;;;;;;;;;;;;;;;;OAkBG;IACH,2BAAmB,MAAqB,EAAE,UAAkB;eAC1D,kBAAM,MAAM,EAAE,UAAU,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACU,wCAAY,GAAzB,UACE,MAAc,EACd,OAAe,EACf,YAAqB,EACrB,KAAc,EACd,UAAgC;;;;;;wBAEhC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;4BACrD,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;yBACpF;wBACK,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;wBACtD,IAAI,OAAO,YAAY,IAAI,WAAW,EAAE;4BACtC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;yBAChC;6BACG,CAAA,UAAU,IAAI,SAAS,CAAA,EAAvB,wBAAuB;wBACZ,qBAAM,IAAI,CAAC,eAAe,CAAC,oCAAoC,CAAC,MAAM,CAAC,EAAA;;wBAApF,UAAU,GAAG,SAAuE,CAAC;;;wBAEjF,OAAO,GAAG;4BACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,KAAK,EAAE,KAAK;4BACZ,KAAK,EAAE,IAAI,CAAC,qBAAqB,IAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,CAAC,MAAM,CAAA;yBACrE,CAAC;wBACK,qBAAM,WAAW,CAAC,YAAY,CACnC,OAAO,EACP,YAAY,EACZ,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,EACzB,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,EACtB,OAAO,CACR,EAAA;4BAND,sBAAO,SAMN,EAAC;;;;KACH;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACU,4CAAgB,GAA7B,UAA8B,MAAc;;;;;4BACxB,qBAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAA;;wBAAnD,WAAW,GAAG,SAAqC;wBAChD,qBAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,EAAA;4BAAtD,sBAAO,SAA+C,EAAC;;;;KACxD;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACU,8CAAkB,GAA/B,UAAgC,MAAc;;;;;;wBAC5C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;4BAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;yBAC1E;wBACK,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;wBACtC,qBAAM,WAAW,CAAC,wBAAwB,EAAE,EAAA;;wBAAxD,SAAS,GAAG,SAA4C;wBAC5D,sBAAO,MAAM,CAAC,SAAS,CAAC,EAAC;;;;KAC1B;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,wCAAY,GAAzB,UAA0B,MAAc,EAAE,EAAU;;;;;4BACzC,qBAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAA;;wBAA5C,EAAE,GAAG,SAAuC;wBACH,qBAAM,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,EAAA;;wBAAnE,kBAAkB,GAAuB,SAA0B;wBACvE,IAAI,kBAAkB,CAAC,UAAU,IAAI,2BAAY,EAAE;4BACjD,sBAAO,SAAS,EAAC;yBAClB;wBACG,KAAK,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;wBACtG,sBAAO,KAAK,EAAC;;;;KACd;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,2CAAe,GAA5B,UAA6B,MAAc,EAAE,WAAmB,EAAE,UAAmB;;;;;;;wBACnF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;4BAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;yBAC1E;wBACK,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;wBACtD,IAAI,OAAO,UAAU,IAAI,WAAW,EAAE;4BACpC,UAAU,GAAG,4BAAa,CAAC;yBAC5B;wBAGoB,qBAAM,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,kBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAA;;wBAA/F,KAAA,8BAAqB,SAA0E,KAAA,EAA9F,MAAM,QAAA,EAAE,QAAQ,QAAA,CAA+E;wBAC5F,kBAAkB,GAAY,IAAI,KAAK,EAAS,CAAC;wBACjD,WAAW,GAAG,EAAE,CAAC;wBACjB,CAAC,GAAG,CAAC,CAAC;wBACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,2BAAY,EAAE;4BAChE,kBAAkB,CAAC,IAAI,CAAC,4BAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;4BACpG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9B,CAAC,EAAE,CAAC;yBACL;wBACD,sBAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC,EAAC;;;;KAC1C;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,uCAAW,GAAxB,UAAyB,KAAY,EAAE,WAA8B;;;;;;wBACnE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;4BAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;yBAC1E;6BACG,CAAA,WAAW,IAAI,SAAS,CAAA,EAAxB,wBAAwB;wBAChB,qBAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAA;;wBAAtE,GAAG,GAAG,SAAgE;wBAC1E,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;4BAEpC,qBAAM,8BAAoB,CAAC,oBAAoB,CAC9D,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,WAAW,CACZ,EAAA;;wBANG,UAAU,GAAG,SAMhB;wBACe,qBAAM,8BAAoB,CAAC,wBAAwB,CACjE,KAAK,CAAC,MAAM,EACZ,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,WAAW,CACZ,EAAA;;wBALG,SAAS,GAAG,SAKf;wBACW,qBAAM,IAAI,CAAC,QAAS,CAAC,cAAc,EAAE,EAAA;;wBAA7C,KAAK,GAAG,SAAqC;wBACjD,sBAAO,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,EAAC;;;;KACzG;IAED;;;;;;OAMG;IACU,4CAAgB,GAA7B,UAA8B,MAAe,EAAE,WAAgD;;;;;;;wBAC7F,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;4BACtB,sBAAO,EAAE,EAAC;yBACX;wBACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;4BAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;yBAC1E;wBACD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAA5B,CAA4B,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;4BAC7E,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAC;yBAChE;6BACG,CAAA,WAAW,IAAI,SAAS,CAAA,EAAxB,wBAAwB;wBAChB,qBAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAA;;wBAA1E,GAAG,GAAG,SAAoE;wBAC9E,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;;wBAEzF,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;4BACpC,gBAAgB;4BAChB,sBAAO,MAAM,CAAC,GAAG,CAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,EAAC;yBAChC;wBAEgB,qBAAM,OAAO,CAAC,GAAG,CAChC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC;gCACX,OAAA,8BAAoB,CAAC,oBAAoB,CACvC,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,QAAQ,EACV,KAAI,CAAC,sBAAsB,EAC3B,KAAI,CAAC,aAAc,EACnB,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,WAAY,CAAC,CAAC,CAAC,CAAC,CACnC;4BAND,CAMC,CACF,CACF,EAAA;;wBAVG,UAAU,GAAG,SAUhB;wBACe,qBAAM,8BAAoB,CAAC,wBAAwB,CACjE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAChB,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,WAAY,CAAC,CAAC,CAAC,CAAC,CACnC,EAAA;;wBALG,SAAS,GAAG,SAKf;wBACW,qBAAM,IAAI,CAAC,QAAS,CAAC,cAAc,EAAE,EAAA;;wBAA7C,KAAK,GAAG,SAAqC;wBACjD,sBAAO,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,GAAG;gCACvB,OAAA,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAI,CAAC,sBAAsB,CAAC;4BAAjG,CAAiG,CAClG,EAAC;;;;KACH;IAEa,8BAAY,GAA1B,UACE,KAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,KAAa,EACb,mBAAqD;QAErD,wBAAwB;QACxB,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;YACrE,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,cAAc,IAAI,SAAS,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE;YACxF,OAAO,KAAK,CAAC;SACd;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,QAAQ,GAAG,8BAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE;YACxF,OAAO,KAAK,CAAC;SACd;QACD,wFAAwF;QACxF,IAAI,KAAK,CAAC,UAAU,IAAI,SAAS,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,UAAU,GAAG,KAAK,CAAC,UAAW,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,uBAAQ,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,wBAAS,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;YAC/G,OAAO,KAAK,CAAC;SACd;QACD,oCAAoC;QACpC,IAAI,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE;YAChC,uCAAuC;YACvC,OAAO,IAAI,CAAC;SACb;QACD,IACE,CAAC,KAAK,CAAC,IAAI,IAAI,uBAAQ,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YACvD,CAAC,KAAK,CAAC,IAAI,IAAI,wBAAS,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,EACxD;YACA,OAAO,KAAK,CAAC;SACd;QACD,0CAA0C;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAEY,+CAAmB,GAAhC,UAAiC,QAAoC;;;;;wBACnE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;4BACvB,MAAM,KAAK,CAAC,mDAAmD,CAAC,CAAC;yBAClE;wBACM,qBAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAA;4BAAtD,sBAAO,SAA+C,EAAC;;;;KACxD;IA5WM,6BAAW,GAAG,CAAC,CAAC;IA6WzB,wBAAC;CAAA,AA9WD,CAA+C,4BAAkB,GA8WhE;kBA9WoB,iBAAiB"}
1
+ {"version":3,"file":"orderReferrerTool.js","sourceRoot":"","sources":["../../src/orderReferrerTool.ts"],"names":[],"mappings":"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"}
@@ -216,5 +216,5 @@ export default class PerpetualDataHandler {
216
216
  * @param traderAccount Trader account
217
217
  * @param perpStaticInfo Symbol to perpetual info map
218
218
  */
219
- protected static checkOrder(order: Order, traderAccount: MarginAccount, perpStaticInfo: Map<string, PerpetualStaticInfo>): void;
219
+ protected static checkOrder(order: Order, perpStaticInfo: Map<string, PerpetualStaticInfo>): void;
220
220
  }
@@ -18,7 +18,6 @@ var PerpetualDataHandler = /** @class */ (function () {
18
18
  this.lobFactoryContract = null;
19
19
  this.provider = null;
20
20
  this.signerOrProvider = null;
21
- console.log("local sdk");
22
21
  this.symbolToPerpStaticInfo = new Map();
23
22
  this.poolStaticInfos = new Array();
24
23
  this.symbolToTokenAddrMap = new Map();
@@ -682,7 +681,7 @@ var PerpetualDataHandler = /** @class */ (function () {
682
681
  leverage: (0, d8XMath_1.ABK64x64ToFloat)(ethers_1.BigNumber.from(order.fLeverage)),
683
682
  deadline: Number(order.iDeadline),
684
683
  timestamp: Number(order.createdTimestamp),
685
- submittedBlock: Number(order.submittedBlock),
684
+ submittedTimestamp: Number(order.submittedTimestamp),
686
685
  };
687
686
  return userOrder;
688
687
  };
@@ -694,6 +693,9 @@ var PerpetualDataHandler = /** @class */ (function () {
694
693
  * @returns SmartContractOrder
695
694
  */
696
695
  PerpetualDataHandler.toSmartContractOrder = function (order, traderAddr, perpStaticInfo) {
696
+ // this revers if order is invalid
697
+ PerpetualDataHandler.checkOrder(order, perpStaticInfo);
698
+ // translate order
697
699
  var flags = PerpetualDataHandler._orderTypeToFlag(order);
698
700
  var brokerSig = order.brokerSignature == undefined ? [] : order.brokerSignature;
699
701
  var perpetualId = PerpetualDataHandler.symbolToPerpetualId(order.symbol, perpStaticInfo);
@@ -734,7 +736,7 @@ var PerpetualDataHandler = /** @class */ (function () {
734
736
  fLeverage: order.leverage == undefined ? ethers_1.BigNumber.from(0) : (0, d8XMath_1.floatToABK64x64)(order.leverage),
735
737
  iDeadline: ethers_1.BigNumber.from(Math.round(iDeadline)),
736
738
  createdTimestamp: ethers_1.BigNumber.from(Math.round(order.timestamp)),
737
- submittedBlock: 0,
739
+ submittedTimestamp: 0,
738
740
  };
739
741
  return smOrder;
740
742
  };
@@ -921,7 +923,7 @@ var PerpetualDataHandler = /** @class */ (function () {
921
923
  }
922
924
  else {
923
925
  if (version === undefined) {
924
- configFile = configFile.sort(function (conf) { return -conf.version; });
926
+ configFile = configFile.sort(function (conf) { return conf.version; });
925
927
  return configFile[0];
926
928
  }
927
929
  else {
@@ -958,7 +960,7 @@ var PerpetualDataHandler = /** @class */ (function () {
958
960
  }
959
961
  else {
960
962
  if (version === undefined) {
961
- configFile = configFile.sort(function (conf) { return -conf.version; });
963
+ configFile = configFile.sort(function (conf) { return conf.version; });
962
964
  return configFile[0];
963
965
  }
964
966
  else {
@@ -1023,20 +1025,22 @@ var PerpetualDataHandler = /** @class */ (function () {
1023
1025
  * @param traderAccount Trader account
1024
1026
  * @param perpStaticInfo Symbol to perpetual info map
1025
1027
  */
1026
- PerpetualDataHandler.checkOrder = function (order, traderAccount, perpStaticInfo) {
1027
- // this throws error if not found
1028
- // let perpetualId = PerpetualDataHandler.symbolToPerpetualId(order.symbol, perpStaticInfo);
1028
+ PerpetualDataHandler.checkOrder = function (order,
1029
+ // traderAccount: MarginAccount,
1030
+ perpStaticInfo) {
1029
1031
  // check side
1030
1032
  if (order.side != nodeSDKTypes_1.BUY_SIDE && order.side != nodeSDKTypes_1.SELL_SIDE) {
1031
1033
  throw Error("order side must be ".concat(nodeSDKTypes_1.BUY_SIDE, " or ").concat(nodeSDKTypes_1.SELL_SIDE));
1032
1034
  }
1033
1035
  // check amount
1034
1036
  var lotSize = perpStaticInfo.get(order.symbol).lotSizeBC;
1035
- var curPos = traderAccount.side == nodeSDKTypes_1.CLOSED_SIDE
1036
- ? 0
1037
- : (traderAccount.side == nodeSDKTypes_1.BUY_SIDE ? 1 : -1) * traderAccount.positionNotionalBaseCCY;
1038
- var newPos = curPos + (order.side == nodeSDKTypes_1.BUY_SIDE ? 1 : -1) * order.quantity;
1039
- if (Math.abs(order.quantity) < lotSize || (Math.abs(newPos) >= lotSize && Math.abs(newPos) < 10 * lotSize)) {
1037
+ // let curPos =
1038
+ // traderAccount.side == CLOSED_SIDE
1039
+ // ? 0
1040
+ // : (traderAccount.side == BUY_SIDE ? 1 : -1) * traderAccount.positionNotionalBaseCCY;
1041
+ // let newPos = curPos + (order.side == BUY_SIDE ? 1 : -1) * order.quantity;
1042
+ // if (Math.abs(order.quantity) < lotSize || (Math.abs(newPos) >= lotSize && Math.abs(newPos) < 10 * lotSize)) {
1043
+ if (Math.abs(order.quantity) < lotSize) {
1040
1044
  throw Error("trade amount too small: ".concat(order.quantity, " ").concat(perpStaticInfo.get(order.symbol).S2Symbol));
1041
1045
  }
1042
1046
  // check limit price