@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.
- package/dist/src/user/history.d.ts +1 -0
- package/dist/src/user/history.js +38 -22
- package/package.json +1 -1
|
@@ -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>;
|
package/dist/src/user/history.js
CHANGED
|
@@ -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:
|
|
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
|
-
|
|
460
|
-
var
|
|
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(
|
|
463
|
-
if (
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
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
|
|
469
|
-
});
|
|
470
|
-
// console.log(
|
|
471
|
-
events = events.concat(
|
|
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
|
}
|