@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.
- package/dist/src/user/history.d.ts +1 -0
- package/dist/src/user/history.js +39 -23
- 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
|
@@ -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:
|
|
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:
|
|
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
|
}
|