@typus/typus-perp-sdk 1.0.40-fix-history-7 → 1.0.40-fix-history-8

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.
@@ -21,6 +21,7 @@ export interface Event {
21
21
  timestamp: string;
22
22
  tx_digest: string;
23
23
  dov_index: string | undefined;
24
+ sender: "user" | "cranker";
24
25
  }
25
26
  export declare function parseUserHistory(raw_events: any): Promise<Event[]>;
26
27
  export declare function getGraphQLEvents(module: string, sender: string, beforeCursor?: string | null): Promise<any>;
@@ -137,6 +137,7 @@ function parseUserHistory(raw_events) {
137
137
  timestamp: timestamp,
138
138
  tx_digest: tx_digest,
139
139
  dov_index: json.dov_index,
140
+ sender: "user",
140
141
  };
141
142
  events.push(e);
142
143
  break;
@@ -160,6 +161,7 @@ function parseUserHistory(raw_events) {
160
161
  var realized_trading_fee = Number(json.realized_trading_fee) + Number(json.realized_borrow_fee);
161
162
  var realized_fee_in_usd = Number(json.realized_fee_in_usd) / Math.pow(10, 9);
162
163
  var realized_amount = json.realized_amount_sign ? Number(json.realized_amount) : -Number(json.realized_amount);
164
+ // console.log(realized_amount);
163
165
  var realized_pnl = realized_trading_fee > 0 ? ((realized_amount - realized_trading_fee) * realized_fee_in_usd) / realized_trading_fee : 0;
164
166
  var e = {
165
167
  action: action,
@@ -172,13 +174,14 @@ function parseUserHistory(raw_events) {
172
174
  status: "Filled",
173
175
  size: size,
174
176
  base_token: base_token,
175
- collateral: related === null || related === void 0 ? void 0 : related.collateral,
177
+ collateral: related === null || related === void 0 ? void 0 : related.collateral, // TODO: check for option collateral
176
178
  collateral_token: collateral_token,
177
179
  price: Number(price) / Math.pow(10, 8), // WARNING: fixed decimal
178
180
  realized_pnl: realized_pnl,
179
181
  timestamp: timestamp,
180
182
  tx_digest: tx_digest,
181
183
  dov_index: related === null || related === void 0 ? void 0 : related.dov_index,
184
+ sender: "user",
182
185
  };
183
186
  events.push(e);
184
187
  break;
@@ -215,6 +218,7 @@ function parseUserHistory(raw_events) {
215
218
  timestamp: timestamp,
216
219
  tx_digest: tx_digest,
217
220
  dov_index: related === null || related === void 0 ? void 0 : related.dov_index,
221
+ sender: "user",
218
222
  };
219
223
  events.push(e);
220
224
  break;
@@ -249,6 +253,7 @@ function parseUserHistory(raw_events) {
249
253
  timestamp: timestamp,
250
254
  tx_digest: tx_digest,
251
255
  dov_index: related === null || related === void 0 ? void 0 : related.dov_index,
256
+ sender: "user",
252
257
  };
253
258
  events.push(e);
254
259
  break;
@@ -275,6 +280,7 @@ function parseUserHistory(raw_events) {
275
280
  timestamp: timestamp,
276
281
  tx_digest: tx_digest,
277
282
  dov_index: undefined,
283
+ sender: "user",
278
284
  };
279
285
  events.push(e);
280
286
  break;
@@ -337,15 +343,16 @@ function getLiquidateFromSentio(userAddress, startTimestamp, events) {
337
343
  side: undefined,
338
344
  order_type: "Market",
339
345
  status: "Filled",
340
- size: x.position_size,
346
+ size: Number(x.position_size),
341
347
  base_token: base_token,
342
348
  collateral: collateral,
343
349
  collateral_token: x.collateral_token,
344
- price: x.trading_price,
350
+ price: Number(x.trading_price),
345
351
  realized_pnl: -collateral * Number(x.collateral_price),
346
352
  timestamp: x.timestamp,
347
353
  tx_digest: x.transaction_hash,
348
354
  dov_index: undefined,
355
+ sender: "cranker",
349
356
  };
350
357
  return txHistory;
351
358
  });
@@ -377,9 +384,6 @@ function getOrderMatchFromSentio(userAddress, startTimestamp, events) {
377
384
  datas = _a.sent();
378
385
  order_match = datas.map(function (x) {
379
386
  var base_token = toToken(x.trading_token);
380
- if (x.transaction_hash == "ELpp2GkW6PRVCLbKqJNgRrNTch2py42rA6PG9JRJnnfm") {
381
- console.log({ x: x });
382
- }
383
387
  var txHistory = {
384
388
  action: x.order_type == "Open" ? "Order Filled (Open Position)" : "Order Filled (Close Position)",
385
389
  typeName: "OrderFilledEvent",
@@ -389,15 +393,16 @@ function getOrderMatchFromSentio(userAddress, startTimestamp, events) {
389
393
  side: x.side,
390
394
  order_type: undefined,
391
395
  status: "Filled",
392
- size: x.filled_size,
396
+ size: Number(x.filled_size),
393
397
  base_token: base_token,
394
- collateral: undefined,
398
+ collateral: Number(x.realized_amount),
395
399
  collateral_token: x.collateral_token,
396
- price: x.filled_price,
397
- realized_pnl: x.realized_pnl,
400
+ price: Number(x.filled_price),
401
+ realized_pnl: Number(x.realized_pnl),
398
402
  timestamp: x.timestamp,
399
403
  tx_digest: x.transaction_hash,
400
404
  dov_index: undefined,
405
+ sender: "cranker",
401
406
  };
402
407
  return txHistory;
403
408
  });
@@ -426,7 +431,7 @@ function getOrderMatchFromSentio(userAddress, startTimestamp, events) {
426
431
  }
427
432
  function getRealizeOptionFromSentio(userAddress, startTimestamp, events) {
428
433
  return __awaiter(this, void 0, void 0, function () {
429
- var datas, exercise;
434
+ var datas, exercise, filter_exercise;
430
435
  return __generator(this, function (_a) {
431
436
  switch (_a.label) {
432
437
  case 0: return [4 /*yield*/, (0, sentio_1.getFromSentio)("RealizeOption", userAddress, startTimestamp.toString())];
@@ -452,23 +457,34 @@ function getRealizeOptionFromSentio(userAddress, startTimestamp, events) {
452
457
  timestamp: x.timestamp,
453
458
  tx_digest: x.transaction_hash,
454
459
  dov_index: undefined,
460
+ sender: "cranker",
455
461
  };
456
462
  // console.log(txHistory);
457
463
  return txHistory;
458
464
  });
459
- exercise = exercise.map(function (x) {
460
- var related = events.findLast(function (e) { return e.position_id == x.position_id && e.market == x.market; });
465
+ filter_exercise = exercise.reduce(function (acc, x) {
466
+ var _a, _b, _c, _d;
467
+ var related_index = events.findLastIndex(function (e) { return e.position_id == x.position_id && e.market == x.market && e.tx_digest == x.tx_digest; });
461
468
  // console.log(x);
462
- // console.log(related);
463
- if (related) {
464
- x.side = related.side;
465
- x.size = related.size;
466
- x.dov_index = related.dov_index;
469
+ // console.log(related_index);
470
+ if (related_index != -1) {
471
+ var related = events[related_index];
472
+ if (related.sender == "cranker") {
473
+ x.side = related.side;
474
+ x.size = related.size;
475
+ x.dov_index = related.dov_index;
476
+ // add to close event
477
+ related.collateral = Number((_a = related.collateral) !== null && _a !== void 0 ? _a : 0) + Number((_b = x.collateral) !== null && _b !== void 0 ? _b : 0);
478
+ related.realized_pnl = Number((_c = related.realized_pnl) !== null && _c !== void 0 ? _c : 0) + Number((_d = x.realized_pnl) !== null && _d !== void 0 ? _d : 0);
479
+ x.collateral = undefined;
480
+ x.realized_pnl = undefined;
481
+ acc.push(x);
482
+ }
467
483
  }
468
- return x;
469
- });
470
- // console.log(exercise);
471
- events = events.concat(exercise);
484
+ return acc;
485
+ }, new Array());
486
+ // console.log(filter_exercise);
487
+ events = events.concat(filter_exercise);
472
488
  events = events.sort(function (a, b) { return Number(new Date(a.timestamp)) - Number(new Date(b.timestamp)); });
473
489
  return [2 /*return*/, events];
474
490
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typus/typus-perp-sdk",
3
- "version": "1.0.40-fix-history-7",
3
+ "version": "1.0.40-fix-history-8",
4
4
  "repository": "https://github.com/Typus-Lab/typus-perp-sdk.git",
5
5
  "author": "Typus",
6
6
  "description": "typus perp sdk",