@typus/typus-sdk 1.2.58 → 1.2.59-v1
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/lib/utils/recap2023.js +4 -6
- package/lib/utils/typus-dov-single-v2/depositorPnl.js +1 -1
- package/lib/utils/typus-dov-single-v2/user-entry.js +2 -12
- package/lib/utils/typus-dov-single-v2/user-history.d.ts +3 -0
- package/lib/utils/typus-dov-single-v2/user-history.js +180 -22
- package/package.json +1 -1
package/lib/utils/recap2023.js
CHANGED
|
@@ -68,7 +68,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
68
68
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
69
69
|
exports.recap2023 = void 0;
|
|
70
70
|
var mainnet_json_1 = __importDefault(require("../mainnet.json"));
|
|
71
|
-
|
|
71
|
+
// import { getUserHistory } from "../utils/typus-dov-single-v2/user-history";
|
|
72
72
|
var view_function_1 = require("../utils/typus-dov-single-v2/view-function");
|
|
73
73
|
var client_1 = require("@mysten/sui.js/client");
|
|
74
74
|
var price_1 = require("../utils/price");
|
|
@@ -92,9 +92,7 @@ function recap2023(user) {
|
|
|
92
92
|
return [4 /*yield*/, (0, view_function_1.getVaults)(provider, mainnet_json_1.default.SINGLE_COLLATERAL_PACKAGE, mainnet_json_1.default.SINGLE_COLLATERAL_REGISTRY, [])];
|
|
93
93
|
case 1:
|
|
94
94
|
vaults = _p.sent();
|
|
95
|
-
|
|
96
|
-
case 2:
|
|
97
|
-
userHistory = _p.sent();
|
|
95
|
+
userHistory = [];
|
|
98
96
|
console.log(userHistory);
|
|
99
97
|
earn = new Map();
|
|
100
98
|
try {
|
|
@@ -137,7 +135,7 @@ function recap2023(user) {
|
|
|
137
135
|
// console.log(earn);
|
|
138
136
|
earn.delete("");
|
|
139
137
|
return [4 /*yield*/, (0, price_1.getLatestPriceUSD)()];
|
|
140
|
-
case
|
|
138
|
+
case 2:
|
|
141
139
|
prices = _p.sent();
|
|
142
140
|
sum = 0;
|
|
143
141
|
try {
|
|
@@ -156,7 +154,7 @@ function recap2023(user) {
|
|
|
156
154
|
finally { if (e_2) throw e_2.error; }
|
|
157
155
|
}
|
|
158
156
|
return [4 /*yield*/, (0, fetch_1.getUserStake)(provider, mainnet_json_1.default.NFT_TABLE, user)];
|
|
159
|
-
case
|
|
157
|
+
case 3:
|
|
160
158
|
res_1 = _p.sent();
|
|
161
159
|
// console.log(res_1!.number); // null
|
|
162
160
|
return [2 /*return*/, [sum, res_1]];
|
|
@@ -36,7 +36,7 @@ function getDepositorCashFlows(userHistory) {
|
|
|
36
36
|
for (var userHistory_1 = __values(userHistory), userHistory_1_1 = userHistory_1.next(); !userHistory_1_1.done; userHistory_1_1 = userHistory_1.next()) {
|
|
37
37
|
var history_1 = userHistory_1_1.value;
|
|
38
38
|
var index = history_1.Index;
|
|
39
|
-
if (history_1.Action.startsWith("Harvest")) {
|
|
39
|
+
if (history_1.Action.startsWith("Harvest Reward")) {
|
|
40
40
|
var _h = __read((_c = history_1.Amount) === null || _c === void 0 ? void 0 : _c.split(" "), 2), amount = _h[0], token = _h[1];
|
|
41
41
|
if (depositorCashFlows.has(index)) {
|
|
42
42
|
var depositorCashFlow = depositorCashFlows.get(index);
|
|
@@ -442,7 +442,7 @@ function getNewBidTx(input) {
|
|
|
442
442
|
input.typeArguments[1] == "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI")) {
|
|
443
443
|
var _a = __read(input.tx.splitCoins(input.tx.gas, [input.tx.pure(input.premium_required)]), 1), coin = _a[0];
|
|
444
444
|
var result = input.tx.moveCall({
|
|
445
|
-
target: "".concat(input.typusDovSinglePackageId, "::tails_staking::
|
|
445
|
+
target: "".concat(input.typusDovSinglePackageId, "::tails_staking::new_bid"),
|
|
446
446
|
typeArguments: input.typeArguments,
|
|
447
447
|
arguments: [
|
|
448
448
|
input.tx.object(input.typusDovSingleRegistry),
|
|
@@ -453,11 +453,6 @@ function getNewBidTx(input) {
|
|
|
453
453
|
],
|
|
454
454
|
});
|
|
455
455
|
input.tx.transferObjects([input.tx.object(result[0])], input.user);
|
|
456
|
-
input.tx.moveCall({
|
|
457
|
-
target: "".concat(input.typusFrameworkPackageId, "::utils::transfer_coins"),
|
|
458
|
-
typeArguments: [input.typeArguments[1]],
|
|
459
|
-
arguments: [input.tx.object(result[1]), input.tx.pure(input.user)],
|
|
460
|
-
});
|
|
461
456
|
}
|
|
462
457
|
else {
|
|
463
458
|
var balance = input.tx.moveCall({
|
|
@@ -474,7 +469,7 @@ function getNewBidTx(input) {
|
|
|
474
469
|
arguments: [input.tx.object(balance)],
|
|
475
470
|
});
|
|
476
471
|
var result = input.tx.moveCall({
|
|
477
|
-
target: "".concat(input.typusDovSinglePackageId, "::tails_staking::
|
|
472
|
+
target: "".concat(input.typusDovSinglePackageId, "::tails_staking::new_bid"),
|
|
478
473
|
typeArguments: input.typeArguments,
|
|
479
474
|
arguments: [
|
|
480
475
|
input.tx.object(input.typusDovSingleRegistry),
|
|
@@ -485,11 +480,6 @@ function getNewBidTx(input) {
|
|
|
485
480
|
],
|
|
486
481
|
});
|
|
487
482
|
input.tx.transferObjects([input.tx.object(result[0])], input.user);
|
|
488
|
-
input.tx.moveCall({
|
|
489
|
-
target: "".concat(input.typusFrameworkPackageId, "::utils::transfer_coins"),
|
|
490
|
-
typeArguments: [input.typeArguments[1]],
|
|
491
|
-
arguments: [input.tx.object(result[1]), input.tx.pure(input.user)],
|
|
492
|
-
});
|
|
493
483
|
}
|
|
494
484
|
return input.tx;
|
|
495
485
|
}
|
|
@@ -18,3 +18,6 @@ export interface TxHistory {
|
|
|
18
18
|
txDigest: string;
|
|
19
19
|
}
|
|
20
20
|
export declare function getFromSentio(event: string, userAddress: string, startTimestamp: string): Promise<any[]>;
|
|
21
|
+
export declare function getNewBidFromSentio(vaults: {
|
|
22
|
+
[key: string]: Vault;
|
|
23
|
+
}, userAddress: string, startTimestamp: number): Promise<any>;
|
|
@@ -35,11 +35,27 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
+
if (!m) return o;
|
|
41
|
+
var i = m.call(o), r, ar = [], e;
|
|
42
|
+
try {
|
|
43
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
+
}
|
|
45
|
+
catch (error) { e = { error: error }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e) throw e.error; }
|
|
51
|
+
}
|
|
52
|
+
return ar;
|
|
53
|
+
};
|
|
38
54
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
55
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
56
|
};
|
|
41
57
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.getFromSentio = exports.getAutoBidEvents = exports.getUserEvents = exports.getUserHistory = void 0;
|
|
58
|
+
exports.getNewBidFromSentio = exports.getFromSentio = exports.getAutoBidEvents = exports.getUserEvents = exports.getUserHistory = void 0;
|
|
43
59
|
var token_1 = require("../token");
|
|
44
60
|
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
45
61
|
function getUserHistory(provider, originPackage, vaults, sender, startTimeMs) {
|
|
@@ -66,7 +82,7 @@ function getUserHistory(provider, originPackage, vaults, sender, startTimeMs) {
|
|
|
66
82
|
return false;
|
|
67
83
|
}
|
|
68
84
|
}));
|
|
69
|
-
return [4 /*yield*/, parseTxHistory(datas
|
|
85
|
+
return [4 /*yield*/, parseTxHistory(datas, originPackage, vaults)];
|
|
70
86
|
case 3:
|
|
71
87
|
txHistory = _a.sent();
|
|
72
88
|
return [2 /*return*/, txHistory];
|
|
@@ -159,9 +175,18 @@ function parseTxHistory(datas, originPackage, vaults) {
|
|
|
159
175
|
.filter(function (event) {
|
|
160
176
|
var type = event.type;
|
|
161
177
|
return event.packageId == originPackage || type.includes("typus_nft::First") || type.includes("typus_nft::ExpUpEvent");
|
|
178
|
+
})
|
|
179
|
+
.sort(function (a, b) {
|
|
180
|
+
// From Old to New!
|
|
181
|
+
if (a.timestampMs == b.timestampMs) {
|
|
182
|
+
return Number(a.id.eventSeq) - Number(b.id.eventSeq);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
return Number(a.timestampMs) - Number(b.timestampMs);
|
|
186
|
+
}
|
|
162
187
|
})
|
|
163
188
|
.reduce(function (promise, event) { return __awaiter(_this, void 0, void 0, function () {
|
|
164
|
-
var txHistory, functionType, action, Action, Amount, Index, Period, Vault, RiskLevel, Tails, Exp, d_token, b_token, o_token, v, period, optionType, i, i, token, amount, deposit_amount, deposit_amount, balance, balance, profit, profit, token, amount, amount, token, amount, size, token, amount, token, amount,
|
|
189
|
+
var txHistory, functionType, action, Action, Amount, Index, Period, Vault, RiskLevel, Tails, Exp, d_token, b_token, o_token, v, period, optionType, i, i, token, amount, deposit_amount, deposit_amount, balance, balance, profit, profit, token, amount, amount, token, amount, size, token, amount, token, amount, size, bidder_balance;
|
|
165
190
|
var _a;
|
|
166
191
|
return __generator(this, function (_b) {
|
|
167
192
|
switch (_b.label) {
|
|
@@ -170,6 +195,7 @@ function parseTxHistory(datas, originPackage, vaults) {
|
|
|
170
195
|
txHistory = _b.sent();
|
|
171
196
|
functionType = (_a = new RegExp("^([^::]+)::([^::]+)::([^<]+)").exec(event.type)) === null || _a === void 0 ? void 0 : _a.slice(1, 4);
|
|
172
197
|
action = functionType[2];
|
|
198
|
+
Tails = undefined;
|
|
173
199
|
Index = event.parsedJson.index || event.parsedJson.vault_index;
|
|
174
200
|
if (Index) {
|
|
175
201
|
v = vaults[Index];
|
|
@@ -281,10 +307,7 @@ function parseTxHistory(datas, originPackage, vaults) {
|
|
|
281
307
|
break;
|
|
282
308
|
case "ExpUpEvent":
|
|
283
309
|
i = txHistory.findIndex(function (x) { return x.txDigest == event.id.txDigest && x.Action != "First Deposit" && x.Action != "Stake"; });
|
|
284
|
-
if (i != -1) {
|
|
285
|
-
if (txHistory[i].Tails) {
|
|
286
|
-
return [2 /*return*/, txHistory];
|
|
287
|
-
}
|
|
310
|
+
if (i != -1 && txHistory[i].Tails == undefined) {
|
|
288
311
|
txHistory[i].Tails = "#".concat(event.parsedJson.number);
|
|
289
312
|
txHistory[i].Exp = event.parsedJson.exp_earn;
|
|
290
313
|
return [2 /*return*/, txHistory];
|
|
@@ -295,9 +318,7 @@ function parseTxHistory(datas, originPackage, vaults) {
|
|
|
295
318
|
Exp = event.parsedJson.exp_earn;
|
|
296
319
|
}
|
|
297
320
|
else {
|
|
298
|
-
|
|
299
|
-
Tails = "#".concat(event.parsedJson.number);
|
|
300
|
-
Exp = event.parsedJson.exp_earn;
|
|
321
|
+
return [2 /*return*/, txHistory];
|
|
301
322
|
}
|
|
302
323
|
break;
|
|
303
324
|
case "TransferNftEvent":
|
|
@@ -420,7 +441,6 @@ function parseTxHistory(datas, originPackage, vaults) {
|
|
|
420
441
|
Tails = "#".concat(event.parsedJson.number);
|
|
421
442
|
break;
|
|
422
443
|
case "NewBidEvent":
|
|
423
|
-
i = txHistory.findIndex(function (x) { return x.txDigest == event.id.txDigest; });
|
|
424
444
|
o_token = (0, token_1.typeArgToAsset)("0x" + event.parsedJson.o_token.name);
|
|
425
445
|
b_token = (0, token_1.typeArgToAsset)("0x" + event.parsedJson.b_token.name);
|
|
426
446
|
size = Number(event.parsedJson.size) / Math.pow(10, (0, token_1.assetToDecimal)(o_token));
|
|
@@ -430,15 +450,6 @@ function parseTxHistory(datas, originPackage, vaults) {
|
|
|
430
450
|
if (event.sender != event.parsedJson.signer) {
|
|
431
451
|
Action = "Auto " + Action;
|
|
432
452
|
}
|
|
433
|
-
if (i != -1) {
|
|
434
|
-
txHistory[i].Index = Index;
|
|
435
|
-
txHistory[i].Period = Period;
|
|
436
|
-
txHistory[i].Action = Action;
|
|
437
|
-
txHistory[i].Amount = Amount;
|
|
438
|
-
txHistory[i].Vault = Vault;
|
|
439
|
-
txHistory[i].RiskLevel = RiskLevel;
|
|
440
|
-
return [2 /*return*/, txHistory];
|
|
441
|
-
}
|
|
442
453
|
break;
|
|
443
454
|
default:
|
|
444
455
|
return [2 /*return*/, txHistory];
|
|
@@ -500,10 +511,157 @@ function getFromSentio(event, userAddress, startTimestamp) {
|
|
|
500
511
|
});
|
|
501
512
|
}
|
|
502
513
|
exports.getFromSentio = getFromSentio;
|
|
503
|
-
function
|
|
514
|
+
function getNewBidFromSentio(vaults, userAddress, startTimestamp) {
|
|
504
515
|
return __awaiter(this, void 0, void 0, function () {
|
|
516
|
+
var apiUrl, headers, requestData, jsonData, response, data;
|
|
505
517
|
return __generator(this, function (_a) {
|
|
506
|
-
|
|
518
|
+
switch (_a.label) {
|
|
519
|
+
case 0:
|
|
520
|
+
apiUrl = "https://app.sentio.xyz/api/v1/analytics/typus/typus_v2/sql/execute";
|
|
521
|
+
headers = {
|
|
522
|
+
"api-key": "tz3JJ6stG7Fux6ueRSRA5mdpC9U0lozI3",
|
|
523
|
+
"Content-Type": "application/json",
|
|
524
|
+
};
|
|
525
|
+
requestData = {
|
|
526
|
+
sqlQuery: {
|
|
527
|
+
sql: "\n SELECT *\n FROM NewBid N\n JOIN (\n SELECT number, distinct_id, exp_earn, transaction_hash, log_index\n FROM ExpUp\n ) S ON N.transaction_hash = S.transaction_hash && N.log_index + 1 = S.log_index\n WHERE N.distinct_id = \"".concat(userAddress, "\" && N.timestamp >= ").concat(startTimestamp, "\n ORDER BY N.timestamp DESC;\n "),
|
|
528
|
+
size: 1000,
|
|
529
|
+
},
|
|
530
|
+
};
|
|
531
|
+
jsonData = JSON.stringify(requestData);
|
|
532
|
+
return [4 /*yield*/, fetch(apiUrl, {
|
|
533
|
+
method: "POST",
|
|
534
|
+
headers: headers,
|
|
535
|
+
body: jsonData,
|
|
536
|
+
})];
|
|
537
|
+
case 1:
|
|
538
|
+
response = _a.sent();
|
|
539
|
+
return [4 /*yield*/, response.json()];
|
|
540
|
+
case 2:
|
|
541
|
+
data = _a.sent();
|
|
542
|
+
return [2 /*return*/, data.result.rows.map(function (x) {
|
|
543
|
+
var _a = __read(parseVaultInfo(vaults, x.index, "NewBidEvent"), 6), Period = _a[0], Vault = _a[1], RiskLevel = _a[2], d_token = _a[3], b_token = _a[4], o_token = _a[5];
|
|
544
|
+
var txHistory = {
|
|
545
|
+
Index: x.index,
|
|
546
|
+
Period: Period,
|
|
547
|
+
Vault: Vault,
|
|
548
|
+
RiskLevel: RiskLevel,
|
|
549
|
+
Action: "Auto Bid" + " ".concat(x.size, " ").concat(x.o_token),
|
|
550
|
+
Amount: x.bidder_balance + " ".concat(x.b_token),
|
|
551
|
+
Tails: x.number,
|
|
552
|
+
Exp: x.exp_earn,
|
|
553
|
+
Date: new Date(Number(x.ts_ms)),
|
|
554
|
+
txDigest: x.transaction_hash,
|
|
555
|
+
};
|
|
556
|
+
return txHistory;
|
|
557
|
+
})];
|
|
558
|
+
}
|
|
507
559
|
});
|
|
508
560
|
});
|
|
509
561
|
}
|
|
562
|
+
exports.getNewBidFromSentio = getNewBidFromSentio;
|
|
563
|
+
function parseVaultInfo(vaults, Index, action) {
|
|
564
|
+
var v = vaults[Index];
|
|
565
|
+
var Period;
|
|
566
|
+
var Vault;
|
|
567
|
+
var RiskLevel;
|
|
568
|
+
var d_token;
|
|
569
|
+
var b_token;
|
|
570
|
+
var o_token;
|
|
571
|
+
var period;
|
|
572
|
+
if (v) {
|
|
573
|
+
switch (v.info.period) {
|
|
574
|
+
case "0":
|
|
575
|
+
period = "Daily";
|
|
576
|
+
break;
|
|
577
|
+
case "1":
|
|
578
|
+
period = "Weekly";
|
|
579
|
+
break;
|
|
580
|
+
case "2":
|
|
581
|
+
period = "Monthly";
|
|
582
|
+
break;
|
|
583
|
+
case "3":
|
|
584
|
+
period = "Hourly";
|
|
585
|
+
break;
|
|
586
|
+
case "4":
|
|
587
|
+
period = "10 Minutes";
|
|
588
|
+
break;
|
|
589
|
+
default:
|
|
590
|
+
period = "";
|
|
591
|
+
break;
|
|
592
|
+
}
|
|
593
|
+
Period = period;
|
|
594
|
+
var optionType = void 0;
|
|
595
|
+
switch (v.info.optionType) {
|
|
596
|
+
case "0":
|
|
597
|
+
switch (action) {
|
|
598
|
+
case "DepositEvent":
|
|
599
|
+
case "WithdrawEvent":
|
|
600
|
+
case "UnsubscribeEvent":
|
|
601
|
+
case "ClaimEvent":
|
|
602
|
+
case "CompoundEvent":
|
|
603
|
+
case "HarvestEvent":
|
|
604
|
+
case "RedeemEvent":
|
|
605
|
+
optionType = "Covered Call";
|
|
606
|
+
break;
|
|
607
|
+
default:
|
|
608
|
+
optionType = "Call";
|
|
609
|
+
break;
|
|
610
|
+
}
|
|
611
|
+
break;
|
|
612
|
+
case "1":
|
|
613
|
+
switch (action) {
|
|
614
|
+
case "DepositEvent":
|
|
615
|
+
case "WithdrawEvent":
|
|
616
|
+
case "UnsubscribeEvent":
|
|
617
|
+
case "ClaimEvent":
|
|
618
|
+
case "CompoundEvent":
|
|
619
|
+
case "HarvestEvent":
|
|
620
|
+
case "RedeemEvent":
|
|
621
|
+
optionType = "Put Selling";
|
|
622
|
+
break;
|
|
623
|
+
default:
|
|
624
|
+
optionType = "Put";
|
|
625
|
+
break;
|
|
626
|
+
}
|
|
627
|
+
break;
|
|
628
|
+
case "2":
|
|
629
|
+
optionType = "Call Spread";
|
|
630
|
+
break;
|
|
631
|
+
case "3":
|
|
632
|
+
optionType = "Put Spread";
|
|
633
|
+
break;
|
|
634
|
+
case "4":
|
|
635
|
+
optionType = "Capped Call";
|
|
636
|
+
break;
|
|
637
|
+
case "5":
|
|
638
|
+
optionType = "Capped Put";
|
|
639
|
+
break;
|
|
640
|
+
case "6":
|
|
641
|
+
optionType = "Capped Call";
|
|
642
|
+
break;
|
|
643
|
+
default:
|
|
644
|
+
optionType = "";
|
|
645
|
+
break;
|
|
646
|
+
}
|
|
647
|
+
switch (v.config.riskLevel) {
|
|
648
|
+
case "1":
|
|
649
|
+
RiskLevel = "Conservative";
|
|
650
|
+
break;
|
|
651
|
+
case "2":
|
|
652
|
+
RiskLevel = "Moderate";
|
|
653
|
+
break;
|
|
654
|
+
case "3":
|
|
655
|
+
RiskLevel = "Aggressive";
|
|
656
|
+
break;
|
|
657
|
+
default:
|
|
658
|
+
RiskLevel = "";
|
|
659
|
+
break;
|
|
660
|
+
}
|
|
661
|
+
Vault = "".concat(v.info.settlementBaseName, " ").concat(period, " ").concat(optionType);
|
|
662
|
+
d_token = (0, token_1.typeArgToAsset)("0x" + v.info.depositToken);
|
|
663
|
+
b_token = (0, token_1.typeArgToAsset)("0x" + v.info.bidToken);
|
|
664
|
+
o_token = (0, token_1.typeArgToAsset)("0x" + v.info.settlementBase);
|
|
665
|
+
}
|
|
666
|
+
return [Period, Vault, RiskLevel, d_token, b_token, o_token];
|
|
667
|
+
}
|