@typus/typus-perp-sdk 1.0.40-fix-history-6 → 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>;
@@ -119,16 +119,13 @@ function parseUserHistory(raw_events) {
119
119
  else if (json.reduce_only && json.is_stop_order) {
120
120
  order_type = "Stop Loss";
121
121
  }
122
- if (json.linked_position_id != undefined) {
123
- related = events.find(function (e) { return e.position_id == json.linked_position_id && e.market == market; });
124
- }
125
122
  var e = {
126
123
  action: "Place Order",
127
124
  typeName: name,
128
125
  order_id: json.order_id,
129
126
  position_id: json.linked_position_id,
130
127
  market: market,
131
- side: related ? related.side : json.is_long ? "Long" : "Short",
128
+ side: json.is_long ? "Long" : "Short",
132
129
  order_type: order_type,
133
130
  status: json.filled ? "Filled" : "Open",
134
131
  size: size,
@@ -140,6 +137,7 @@ function parseUserHistory(raw_events) {
140
137
  timestamp: timestamp,
141
138
  tx_digest: tx_digest,
142
139
  dov_index: json.dov_index,
140
+ sender: "user",
143
141
  };
144
142
  events.push(e);
145
143
  break;
@@ -163,6 +161,7 @@ function parseUserHistory(raw_events) {
163
161
  var realized_trading_fee = Number(json.realized_trading_fee) + Number(json.realized_borrow_fee);
164
162
  var realized_fee_in_usd = Number(json.realized_fee_in_usd) / Math.pow(10, 9);
165
163
  var realized_amount = json.realized_amount_sign ? Number(json.realized_amount) : -Number(json.realized_amount);
164
+ // console.log(realized_amount);
166
165
  var realized_pnl = realized_trading_fee > 0 ? ((realized_amount - realized_trading_fee) * realized_fee_in_usd) / realized_trading_fee : 0;
167
166
  var e = {
168
167
  action: action,
@@ -175,13 +174,14 @@ function parseUserHistory(raw_events) {
175
174
  status: "Filled",
176
175
  size: size,
177
176
  base_token: base_token,
178
- 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
179
178
  collateral_token: collateral_token,
180
179
  price: Number(price) / Math.pow(10, 8), // WARNING: fixed decimal
181
180
  realized_pnl: realized_pnl,
182
181
  timestamp: timestamp,
183
182
  tx_digest: tx_digest,
184
183
  dov_index: related === null || related === void 0 ? void 0 : related.dov_index,
184
+ sender: "user",
185
185
  };
186
186
  events.push(e);
187
187
  break;
@@ -218,6 +218,7 @@ function parseUserHistory(raw_events) {
218
218
  timestamp: timestamp,
219
219
  tx_digest: tx_digest,
220
220
  dov_index: related === null || related === void 0 ? void 0 : related.dov_index,
221
+ sender: "user",
221
222
  };
222
223
  events.push(e);
223
224
  break;
@@ -252,6 +253,7 @@ function parseUserHistory(raw_events) {
252
253
  timestamp: timestamp,
253
254
  tx_digest: tx_digest,
254
255
  dov_index: related === null || related === void 0 ? void 0 : related.dov_index,
256
+ sender: "user",
255
257
  };
256
258
  events.push(e);
257
259
  break;
@@ -278,6 +280,7 @@ function parseUserHistory(raw_events) {
278
280
  timestamp: timestamp,
279
281
  tx_digest: tx_digest,
280
282
  dov_index: undefined,
283
+ sender: "user",
281
284
  };
282
285
  events.push(e);
283
286
  break;
@@ -340,15 +343,16 @@ function getLiquidateFromSentio(userAddress, startTimestamp, events) {
340
343
  side: undefined,
341
344
  order_type: "Market",
342
345
  status: "Filled",
343
- size: x.position_size,
346
+ size: Number(x.position_size),
344
347
  base_token: base_token,
345
348
  collateral: collateral,
346
349
  collateral_token: x.collateral_token,
347
- price: x.trading_price,
350
+ price: Number(x.trading_price),
348
351
  realized_pnl: -collateral * Number(x.collateral_price),
349
352
  timestamp: x.timestamp,
350
353
  tx_digest: x.transaction_hash,
351
354
  dov_index: undefined,
355
+ sender: "cranker",
352
356
  };
353
357
  return txHistory;
354
358
  });
@@ -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-6",
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",