@typus/typus-sdk 1.0.54 → 1.0.56

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.
@@ -35,6 +35,22 @@ 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
  Object.defineProperty(exports, "__esModule", { value: true });
39
55
  exports.getBidderLeaderBoard = exports.getDepositorLeaderBoard = void 0;
40
56
  var apiUrl = "https://app.sentio.xyz/api/v1/insights/wayne/typus/query";
@@ -55,20 +71,45 @@ var depositorRequestData = {
55
71
  query: "depositTvl",
56
72
  alias: "",
57
73
  id: "a",
58
- labelSelector: {
59
- // user: "0x823bd0c4d601d625b1b1555dbe17da495db71070a4365205467838aecc32cbad",
60
- },
74
+ labelSelector: {},
61
75
  aggregate: {
62
76
  op: "SUM",
63
- grouping: ["user"],
77
+ grouping: ["user", "coin_symbol"],
64
78
  },
79
+ functions: [],
80
+ disabled: true,
81
+ },
82
+ dataSource: "METRICS",
83
+ },
84
+ {
85
+ priceQuery: {
86
+ id: "b",
87
+ alias: "",
88
+ coinId: [
89
+ {
90
+ symbol: "SUI",
91
+ },
92
+ {
93
+ symbol: "USDC",
94
+ },
95
+ ],
96
+ disabled: true,
65
97
  },
98
+ dataSource: "PRICE",
99
+ },
100
+ ],
101
+ formulas: [
102
+ {
103
+ expression: "a*b",
104
+ alias: "{{user}}",
105
+ id: "A",
106
+ disabled: false,
66
107
  },
67
108
  ],
68
109
  };
69
110
  function getDepositorLeaderBoard(start, end, step) {
70
111
  return __awaiter(this, void 0, void 0, function () {
71
- var jsonData, response, data, samples, len_1, leader_board;
112
+ var jsonData, response, data, samples, len_1, leader_board, userScoreMap, result, e_1;
72
113
  return __generator(this, function (_a) {
73
114
  switch (_a.label) {
74
115
  case 0:
@@ -89,27 +130,45 @@ function getDepositorLeaderBoard(start, end, step) {
89
130
  })];
90
131
  case 1:
91
132
  response = _a.sent();
92
- if (!response.ok) return [3 /*break*/, 3];
93
- return [4 /*yield*/, response.json()];
133
+ _a.label = 2;
94
134
  case 2:
135
+ _a.trys.push([2, 4, , 5]);
136
+ return [4 /*yield*/, response.json()];
137
+ case 3:
95
138
  data = _a.sent();
96
139
  samples = data.results[0].matrix.samples;
97
- len_1 = samples.reduce(function (acc, curr) { return (acc > curr.values.length ? acc : curr.values.length); }, 0);
140
+ len_1 = samples.reduce(function (acc, curr) { return (acc > curr.values.length ? acc : curr.values.length); }, 0) - 1;
98
141
  leader_board = samples
99
142
  .map(function (element) {
100
143
  // console.log("metric:", element.metric, "values: ", element.values);
101
144
  // console.log("user:", element.metric.labels.user, "score: ", element.values.at(-1).value);
102
- var sum = element.values.reduce(function (acc, curr) { return acc + curr.value / 1000000000 / len_1; }, 0);
145
+ var sum = element.values.reduce(function (acc, curr) { return acc + curr.value / len_1; }, 0);
103
146
  return {
104
147
  user: element.metric.labels.user,
105
148
  score: sum,
106
149
  };
107
150
  })
108
151
  .filter(function (element) { return element.score != 0; });
109
- leader_board.sort(function (a, b) { return b.score - a.score; });
110
- // console.log(leader_board);
111
- return [2 /*return*/, leader_board];
112
- case 3: throw new Error("HTTP error! Status: ".concat(response.status));
152
+ userScoreMap = leader_board.reduce(function (map, obj) {
153
+ if (map[obj.user]) {
154
+ map[obj.user] += obj.score;
155
+ }
156
+ else {
157
+ map[obj.user] = obj.score;
158
+ }
159
+ return map;
160
+ }, {});
161
+ result = Object.entries(userScoreMap).map(function (_a) {
162
+ var _b = __read(_a, 2), user = _b[0], score = _b[1];
163
+ return ({ user: user, score: score });
164
+ });
165
+ result.sort(function (a, b) { return b.score - a.score; });
166
+ // console.log(result);
167
+ return [2 /*return*/, result];
168
+ case 4:
169
+ e_1 = _a.sent();
170
+ return [2 /*return*/, []];
171
+ case 5: return [2 /*return*/];
113
172
  }
114
173
  });
115
174
  });
@@ -142,7 +201,7 @@ var bidderRequestData = {
142
201
  };
143
202
  function getBidderLeaderBoard(startTimestamp, end) {
144
203
  return __awaiter(this, void 0, void 0, function () {
145
- var jsonData, response, data, samples, leader_board;
204
+ var jsonData, response, data, samples, leader_board, userScoreMap, result, e_2;
146
205
  return __generator(this, function (_a) {
147
206
  switch (_a.label) {
148
207
  case 0:
@@ -160,9 +219,11 @@ function getBidderLeaderBoard(startTimestamp, end) {
160
219
  })];
161
220
  case 1:
162
221
  response = _a.sent();
163
- if (!response.ok) return [3 /*break*/, 3];
164
- return [4 /*yield*/, response.json()];
222
+ _a.label = 2;
165
223
  case 2:
224
+ _a.trys.push([2, 4, , 5]);
225
+ return [4 /*yield*/, response.json()];
226
+ case 3:
166
227
  data = _a.sent();
167
228
  samples = data.results[0].matrix.samples;
168
229
  leader_board = samples
@@ -177,14 +238,30 @@ function getBidderLeaderBoard(startTimestamp, end) {
177
238
  var b = element.values.at(-1).value;
178
239
  return {
179
240
  user: element.metric.labels.user,
180
- score: (b - a) / 1000000000,
241
+ score: b - a,
181
242
  };
182
243
  })
183
244
  .filter(function (element) { return element.score != 0; });
184
- leader_board.sort(function (a, b) { return b.score - a.score; });
185
- // console.log(leader_board);
186
- return [2 /*return*/, leader_board];
187
- case 3: throw new Error("HTTP error! Status: ".concat(response.status));
245
+ userScoreMap = leader_board.reduce(function (map, obj) {
246
+ if (map[obj.user]) {
247
+ map[obj.user] += obj.score;
248
+ }
249
+ else {
250
+ map[obj.user] = obj.score;
251
+ }
252
+ return map;
253
+ }, {});
254
+ result = Object.entries(userScoreMap).map(function (_a) {
255
+ var _b = __read(_a, 2), user = _b[0], score = _b[1];
256
+ return ({ user: user, score: score });
257
+ });
258
+ result.sort(function (a, b) { return b.score - a.score; });
259
+ // console.log(result);
260
+ return [2 /*return*/, result];
261
+ case 4:
262
+ e_2 = _a.sent();
263
+ return [2 /*return*/, []];
264
+ case 5: return [2 /*return*/];
188
265
  }
189
266
  });
190
267
  });
@@ -16,7 +16,7 @@ export interface SponsorRpc {
16
16
  }
17
17
  export declare const sponsorTransactionBlock: (gaslessTxb: any, sponsor: any, provider: any, gasBudget: any, signerAddress: any) => Promise<[SponsoredTransaction, Uint8Array]>;
18
18
  export declare const executeSponsorTransactionBlock: (provider: any, sponsoredResponse: any, senderSig: any) => Promise<any>;
19
- export declare const sponsorTransactionE2E: (gaslessTxb: any, sponsor: any, provider: any, signer: any, gasBudget: any) => Promise<void>;
19
+ export declare const sponsorTransactionE2E: (gaslessTxb: any, sponsor: any, provider: any, signer: any, gasBudget: any) => Promise<any>;
20
20
  export declare function getSponsoredDeposit(sponsorApi: string, packageId: string, typeArguments: string[], registry: string, index: string, coins: string[], amount: string, signerAddress: string): Promise<[SponsoredTransaction, Uint8Array]>;
21
21
  export declare function getSponsoredCompound(sponsorApi: string, packageId: string, typeArguments: string[], registry: string, index: string, signerAddress: string): Promise<[SponsoredTransaction, Uint8Array]>;
22
22
  export declare function getSponsoredNewBid(sponsorApi: string, packageId: string, typeArguments: string[], registry: string, index: string, priceOracle: string, coins: string[], size: string, signerAddress: string): Promise<[SponsoredTransaction, Uint8Array]>;
@@ -65,9 +65,9 @@ exports.sponsorTransactionBlock = sponsorTransactionBlock;
65
65
  // const senderSig = await signer.signTransactionBlock({ transactionBlock });
66
66
  var executeSponsorTransactionBlock = function (provider, sponsoredResponse, senderSig) { return __awaiter(void 0, void 0, void 0, function () {
67
67
  var executeResponse;
68
- var _a, _b;
69
- return __generator(this, function (_c) {
70
- switch (_c.label) {
68
+ var _a;
69
+ return __generator(this, function (_b) {
70
+ switch (_b.label) {
71
71
  case 0: return [4 /*yield*/, provider.executeTransactionBlock({
72
72
  transactionBlock: sponsoredResponse.txBytes,
73
73
  signature: [senderSig.signature, sponsoredResponse.signature],
@@ -75,9 +75,9 @@ var executeSponsorTransactionBlock = function (provider, sponsoredResponse, send
75
75
  requestType: "WaitForLocalExecution",
76
76
  })];
77
77
  case 1:
78
- executeResponse = _c.sent();
79
- console.log("Execution Status:", (_a = executeResponse.effects) === null || _a === void 0 ? void 0 : _a.status.status);
80
- return [2 /*return*/, (_b = executeResponse.effects) === null || _b === void 0 ? void 0 : _b.status.status];
78
+ executeResponse = _b.sent();
79
+ console.log("SDK Execution Status:", (_a = executeResponse.effects) === null || _a === void 0 ? void 0 : _a.status.status);
80
+ return [2 /*return*/, executeResponse];
81
81
  }
82
82
  });
83
83
  }); };
@@ -114,7 +114,7 @@ var sponsorTransactionE2E = function (gaslessTxb, sponsor, provider, signer, gas
114
114
  case 6:
115
115
  executeResponse = _e.sent();
116
116
  console.log("Execution Status:", (_d = executeResponse.effects) === null || _d === void 0 ? void 0 : _d.status.status);
117
- return [2 /*return*/];
117
+ return [2 /*return*/, executeResponse];
118
118
  }
119
119
  });
120
120
  }); };
@@ -0,0 +1,2 @@
1
+ export declare function typeArgsToAssets(typeArgs: string[]): string[];
2
+ export declare function assetToDecimal(asset: string): number | undefined;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assetToDecimal = exports.typeArgsToAssets = void 0;
4
+ var sui_js_1 = require("@mysten/sui.js");
5
+ function typeArgsToAssets(typeArgs) {
6
+ var assets = typeArgs.map(function (x) {
7
+ var typeArgs = x.split("::");
8
+ switch ((0, sui_js_1.normalizeSuiAddress)(typeArgs[0])) {
9
+ case "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881":
10
+ return "WBTC";
11
+ case "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5":
12
+ return "WETH";
13
+ case "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf":
14
+ return "USDC";
15
+ case "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c":
16
+ return "USDT";
17
+ default:
18
+ return typeArgs[2];
19
+ }
20
+ });
21
+ return assets;
22
+ }
23
+ exports.typeArgsToAssets = typeArgsToAssets;
24
+ function assetToDecimal(asset) {
25
+ switch (asset) {
26
+ case "SUI":
27
+ return 9;
28
+ case "WBTC":
29
+ return 8;
30
+ case "WETH":
31
+ return 8;
32
+ case "USDC":
33
+ return 6;
34
+ case "USDT":
35
+ return 6;
36
+ case "CETUS":
37
+ return 9;
38
+ }
39
+ }
40
+ exports.assetToDecimal = assetToDecimal;
@@ -37,9 +37,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.getPortfolioVaults = void 0;
40
- var sui_js_1 = require("@mysten/sui.js");
41
40
  var vault_1 = require("../typus-framework/vault");
42
41
  var dutch_1 = require("../typus-framework/dutch");
42
+ var token_1 = require("../token");
43
43
  function getPortfolioVaults(provider, registry, token_deposit_vault_registry, usd_deposit_vault_registry, bid_vault_registry, index) {
44
44
  return __awaiter(this, void 0, void 0, function () {
45
45
  var portfolioVaultIds, portfolioVaults, tokenDepositVaultIds, usdDepositVaultIds, bidVaultIds;
@@ -65,21 +65,7 @@ function getPortfolioVaults(provider, registry, token_deposit_vault_registry, us
65
65
  var vaultId = portfolioVault.data.content.fields.id.id;
66
66
  // @ts-ignore
67
67
  var typeArgs = new RegExp(".*<(.*), (.*), (.*)>").exec(portfolioVault.data.content.type).slice(1, 4);
68
- var assets = typeArgs.map(function (x) {
69
- var typeArgs = x.split("::");
70
- switch ((0, sui_js_1.normalizeSuiAddress)(typeArgs[0])) {
71
- case "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881":
72
- return "WBTC";
73
- case "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5":
74
- return "WETH";
75
- case "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf":
76
- return "USDC";
77
- case "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c":
78
- return "USDT";
79
- default:
80
- return typeArgs[2];
81
- }
82
- });
68
+ var assets = (0, token_1.typeArgsToAssets)(typeArgs);
83
69
  var oracleInfo = {
84
70
  // @ts-ignore
85
71
  price: portfolioVault.data.content.fields.info.fields.oracle_info.fields.price,
@@ -1,4 +1,19 @@
1
- export declare function getDb(functionName: string, vaultIndex?: string | undefined): Promise<void>;
1
+ import { PortfolioVault } from "./portfolio-vault";
2
+ export declare function getDb(functionNames: string[], vaultIndex?: string | undefined): Promise<any>;
2
3
  export declare function getNewAuction(vaultIndex?: string | undefined): Promise<void>;
3
4
  export declare function getDelivery(vaultIndex?: string | undefined): Promise<void>;
4
5
  export declare function getSettle(vaultIndex?: string | undefined): Promise<void>;
6
+ export declare function getShowMap(portfolioVaults: Map<string, PortfolioVault>, vaultIndex?: string | undefined): Promise<Map<string, Map<string, Show>>>;
7
+ interface Show {
8
+ ProjectedAPY: number;
9
+ ActivationDate: Date;
10
+ SettlementTime: Date;
11
+ StrikePrice: number[];
12
+ SettlePrice: number;
13
+ Return: number;
14
+ Filled: number;
15
+ PaidToDepositors: number;
16
+ PaidToBidders: any;
17
+ EarnedByDepositors: any;
18
+ }
19
+ export {};
@@ -36,15 +36,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getSettle = exports.getDelivery = exports.getNewAuction = exports.getDb = void 0;
40
- var dbFilter = function (functionName, vaultIndex) {
39
+ exports.getShowMap = exports.getSettle = exports.getDelivery = exports.getNewAuction = exports.getDb = void 0;
40
+ var dbFilter = function (functionNames, vaultIndex) {
41
41
  if (vaultIndex === void 0) { vaultIndex = undefined; }
42
42
  return ({
43
43
  collection: "typus_dov_single",
44
44
  database: "mainnet_1_0_0",
45
45
  dataSource: "typus",
46
46
  filter: {
47
- function: functionName,
47
+ function: { $in: functionNames },
48
48
  index: vaultIndex,
49
49
  },
50
50
  });
@@ -54,14 +54,14 @@ var headers = {
54
54
  "api-key": "ZnJu3wGqGoYotyvHl5Qis0UvUJRDJkBBwIsRaHdmBuzfy4jyPBH1LzazIfOO0GSm",
55
55
  "Content-Type": "application/json",
56
56
  };
57
- function getDb(functionName, vaultIndex) {
57
+ function getDb(functionNames, vaultIndex) {
58
58
  if (vaultIndex === void 0) { vaultIndex = undefined; }
59
59
  return __awaiter(this, void 0, void 0, function () {
60
60
  var jsonData, response, data;
61
61
  return __generator(this, function (_a) {
62
62
  switch (_a.label) {
63
63
  case 0:
64
- jsonData = JSON.stringify(dbFilter(functionName));
64
+ jsonData = JSON.stringify(dbFilter(functionNames, vaultIndex));
65
65
  return [4 /*yield*/, fetch(apiUrl, {
66
66
  method: "POST",
67
67
  headers: headers,
@@ -73,10 +73,7 @@ function getDb(functionName, vaultIndex) {
73
73
  return [4 /*yield*/, response.json()];
74
74
  case 2:
75
75
  data = _a.sent();
76
- data.documents.map(function (document) {
77
- console.log(document);
78
- });
79
- _a.label = 3;
76
+ return [2 /*return*/, data.documents];
80
77
  case 3: return [2 /*return*/];
81
78
  }
82
79
  });
@@ -88,7 +85,7 @@ function getNewAuction(vaultIndex) {
88
85
  return __awaiter(this, void 0, void 0, function () {
89
86
  return __generator(this, function (_a) {
90
87
  switch (_a.label) {
91
- case 0: return [4 /*yield*/, getDb("NewAuction", vaultIndex)];
88
+ case 0: return [4 /*yield*/, getDb(["NewAuction"], vaultIndex)];
92
89
  case 1:
93
90
  _a.sent();
94
91
  return [2 /*return*/];
@@ -102,7 +99,7 @@ function getDelivery(vaultIndex) {
102
99
  return __awaiter(this, void 0, void 0, function () {
103
100
  return __generator(this, function (_a) {
104
101
  switch (_a.label) {
105
- case 0: return [4 /*yield*/, getDb("Delivery", vaultIndex)];
102
+ case 0: return [4 /*yield*/, getDb(["Delivery"], vaultIndex)];
106
103
  case 1:
107
104
  _a.sent();
108
105
  return [2 /*return*/];
@@ -114,24 +111,162 @@ exports.getDelivery = getDelivery;
114
111
  function getSettle(vaultIndex) {
115
112
  if (vaultIndex === void 0) { vaultIndex = undefined; }
116
113
  return __awaiter(this, void 0, void 0, function () {
114
+ var settleEvents;
117
115
  return __generator(this, function (_a) {
118
116
  switch (_a.label) {
119
- case 0: return [4 /*yield*/, getDb("Settle", vaultIndex)];
117
+ case 0: return [4 /*yield*/, getDb(["Settle"], vaultIndex)];
120
118
  case 1:
121
- _a.sent();
119
+ settleEvents = _a.sent();
120
+ console.log(settleEvents);
122
121
  return [2 /*return*/];
123
122
  }
124
123
  });
125
124
  });
126
125
  }
127
126
  exports.getSettle = getSettle;
128
- (function () { return __awaiter(void 0, void 0, void 0, function () {
129
- return __generator(this, function (_a) {
130
- switch (_a.label) {
131
- case 0: return [4 /*yield*/, getSettle()];
132
- case 1:
133
- _a.sent();
134
- return [2 /*return*/];
135
- }
127
+ function getShowMap(portfolioVaults, vaultIndex) {
128
+ if (vaultIndex === void 0) { vaultIndex = undefined; }
129
+ return __awaiter(this, void 0, void 0, function () {
130
+ var events, groupEventMap, showMap;
131
+ var _this = this;
132
+ return __generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0: return [4 /*yield*/, getDb(["NewAuction", "Delivery", "Settle"], vaultIndex)];
135
+ case 1:
136
+ events = _a.sent();
137
+ return [4 /*yield*/, events.reduce(function (promise, event) { return __awaiter(_this, void 0, void 0, function () {
138
+ var map, index, round, round_event, round_events, round_events, round_events;
139
+ return __generator(this, function (_a) {
140
+ switch (_a.label) {
141
+ case 0: return [4 /*yield*/, promise];
142
+ case 1:
143
+ map = _a.sent();
144
+ index = event.index.toString();
145
+ round = event.round.toString();
146
+ round_event = {
147
+ newAuctionEvent: undefined,
148
+ deliveryEvent: undefined,
149
+ settleEvent: undefined,
150
+ };
151
+ if (map.has(index)) {
152
+ round_events = map.get(index);
153
+ if (round_events.has(round)) {
154
+ round_event = round_events.get(round);
155
+ }
156
+ }
157
+ switch (event.function) {
158
+ case "NewAuction":
159
+ round_event.newAuctionEvent = event;
160
+ round_event.newAuctionEvent.vault_config = {
161
+ payoffConfigs: event.vault_config.payoff_configs.map(function (x) {
162
+ return ({
163
+ strikePct: x.strike_pct,
164
+ weight: x.weight,
165
+ isBuyer: x.is_buyer,
166
+ strike: x.strike,
167
+ });
168
+ }),
169
+ strikeIncrement: event.vault_config.strike_increment,
170
+ decaySpeed: event.vault_config.decay_speed,
171
+ initialPrice: event.vault_config.initial_price,
172
+ finalPrice: event.vault_config.final_price,
173
+ auctionDurationInMs: event.vault_config.auction_duration_in_ms,
174
+ };
175
+ break;
176
+ case "Delivery":
177
+ round_event.deliveryEvent = event;
178
+ break;
179
+ case "Settle":
180
+ round_event.settleEvent = event;
181
+ break;
182
+ }
183
+ if (map.get(index)) {
184
+ round_events = map.get(index);
185
+ round_events.set(round, round_event);
186
+ map.set(index, round_events);
187
+ }
188
+ else {
189
+ round_events = new Map();
190
+ round_events.set(round, round_event);
191
+ map.set(index, round_events);
192
+ }
193
+ return [2 /*return*/, map];
194
+ }
195
+ });
196
+ }); }, Promise.resolve(new Map()))];
197
+ case 2:
198
+ groupEventMap = _a.sent();
199
+ showMap = new Map();
200
+ return [4 /*yield*/, groupEventMap.forEach(function (innerMap, outerKey) { return __awaiter(_this, void 0, void 0, function () {
201
+ var newInnerMap_1;
202
+ var _this = this;
203
+ return __generator(this, function (_a) {
204
+ if (portfolioVaults[outerKey]) {
205
+ newInnerMap_1 = new Map();
206
+ innerMap.forEach(function (groupEvent, innerKey) { return __awaiter(_this, void 0, void 0, function () {
207
+ var show;
208
+ return __generator(this, function (_a) {
209
+ switch (_a.label) {
210
+ case 0:
211
+ if (!groupEvent.settleEvent) return [3 /*break*/, 2];
212
+ return [4 /*yield*/, groupEventToShow(groupEvent, portfolioVaults[outerKey])];
213
+ case 1:
214
+ show = _a.sent();
215
+ // console.log(show);
216
+ newInnerMap_1.set(innerKey, show);
217
+ _a.label = 2;
218
+ case 2: return [2 /*return*/];
219
+ }
220
+ });
221
+ }); });
222
+ showMap.set(outerKey, newInnerMap_1);
223
+ }
224
+ return [2 /*return*/];
225
+ });
226
+ }); })];
227
+ case 3:
228
+ _a.sent();
229
+ // console.log(showMap);
230
+ return [2 /*return*/, showMap];
231
+ }
232
+ });
136
233
  });
137
- }); })();
234
+ }
235
+ exports.getShowMap = getShowMap;
236
+ function groupEventToShow(groupEvent, portfolioVault) {
237
+ return __awaiter(this, void 0, void 0, function () {
238
+ var newAuctionEvent, deliveryEvent, settleEvent, PaidToDepositors, portfolio_payoff, PaidToBidders, exp, result;
239
+ return __generator(this, function (_a) {
240
+ newAuctionEvent = groupEvent.newAuctionEvent;
241
+ deliveryEvent = groupEvent.deliveryEvent;
242
+ settleEvent = groupEvent.settleEvent;
243
+ PaidToDepositors = Number(deliveryEvent.premium_value) / Math.pow(10, Number(portfolioVault.config.bTokenDecimal));
244
+ portfolio_payoff = settleEvent.portfolio_payoff_is_neg ? Number(-settleEvent.portfolio_payoff) : Number(settleEvent.portfolio_payoff);
245
+ PaidToBidders = portfolio_payoff / Math.pow(10, Number(portfolioVault.config.oTokenDecimal));
246
+ switch (portfolioVault.config.period) {
247
+ case 0:
248
+ exp = 365;
249
+ break;
250
+ case 1:
251
+ exp = 52;
252
+ break;
253
+ case 2:
254
+ exp = 12;
255
+ break;
256
+ }
257
+ result = {
258
+ ProjectedAPY: Math.pow((1 + (1.01 * Number(deliveryEvent.delivery_price)) / Math.pow(10, Number(portfolioVault.config.bTokenDecimal))), exp) - 1,
259
+ ActivationDate: new Date(Number(newAuctionEvent.timestamp_ms)),
260
+ SettlementTime: new Date(Number(settleEvent.timestamp_ms)),
261
+ StrikePrice: newAuctionEvent.vault_config.payoffConfigs.map(function (payoffConfig) { return Number(payoffConfig.strike) / Math.pow(10, 8); }),
262
+ SettlePrice: Number(settleEvent.oracle_price) / Math.pow(10, 8),
263
+ Return: Number(settleEvent.share_price) / Math.pow(10, 8) - 1,
264
+ Filled: Number(deliveryEvent.delivery_size) / Number(deliveryEvent.max_size),
265
+ PaidToDepositors: PaidToDepositors,
266
+ PaidToBidders: PaidToBidders,
267
+ EarnedByDepositors: PaidToDepositors - PaidToBidders,
268
+ };
269
+ return [2 /*return*/, result];
270
+ });
271
+ });
272
+ }
@@ -60,3 +60,4 @@ export interface PayoffConfig {
60
60
  strike?: string;
61
61
  }
62
62
  export declare function getPortfolioVaults(provider: JsonRpcProvider, registry: string, deposit_vault_registry: string, bid_vault_registry: string, index?: string): Promise<Map<string, PortfolioVault>>;
63
+ export declare function getPortfolioVaultAuctionDelayTsMs(provider: JsonRpcProvider, portfolio_vault: PortfolioVault): Promise<string>;
@@ -36,10 +36,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getPortfolioVaults = void 0;
40
- var sui_js_1 = require("@mysten/sui.js");
39
+ exports.getPortfolioVaultAuctionDelayTsMs = exports.getPortfolioVaults = void 0;
41
40
  var vault_1 = require("../typus-framework/vault");
42
41
  var dutch_1 = require("../typus-framework/dutch");
42
+ var token_1 = require("../token");
43
43
  function getPortfolioVaults(provider, registry, deposit_vault_registry, bid_vault_registry, index) {
44
44
  return __awaiter(this, void 0, void 0, function () {
45
45
  var portfolioVaultIds, portfolioVaults, depositVaultIds, bidVaultIds;
@@ -68,38 +68,8 @@ function getPortfolioVaults(provider, registry, deposit_vault_registry, bid_vaul
68
68
  map = _a.sent();
69
69
  vaultId = portfolioVault.data.content.fields.id.id;
70
70
  auctionDelayTsMs = "0";
71
- return [4 /*yield*/, provider
72
- .getDynamicFieldObject({
73
- parentId: vaultId,
74
- name: {
75
- type: "vector<u8>",
76
- value: [97, 117, 99, 116, 105, 111, 110, 95, 115, 116, 97, 114, 116, 95, 100, 101, 108, 97, 121, 95, 116, 115, 95, 109, 115],
77
- },
78
- })
79
- .then(function (result) {
80
- if (result.error == undefined) {
81
- // @ts-ignore
82
- auctionDelayTsMs = result.data.content.fields.value;
83
- }
84
- })];
85
- case 2:
86
- _a.sent();
87
71
  typeArgs = new RegExp(".*<(.*), (.*), (.*)>").exec(portfolioVault.data.content.type).slice(1, 4);
88
- assets = typeArgs.map(function (x) {
89
- var typeArgs = x.split("::");
90
- switch ((0, sui_js_1.normalizeSuiAddress)(typeArgs[0])) {
91
- case "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881":
92
- return "WBTC";
93
- case "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5":
94
- return "WETH";
95
- case "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf":
96
- return "USDC";
97
- case "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c":
98
- return "USDT";
99
- default:
100
- return typeArgs[2];
101
- }
102
- });
72
+ assets = (0, token_1.typeArgsToAssets)(typeArgs);
103
73
  deliveryInfo =
104
74
  // @ts-ignore
105
75
  portfolioVault.data.content.fields.info.fields.delivery_info
@@ -279,3 +249,32 @@ function getPortfolioVaults(provider, registry, deposit_vault_registry, bid_vaul
279
249
  });
280
250
  }
281
251
  exports.getPortfolioVaults = getPortfolioVaults;
252
+ function getPortfolioVaultAuctionDelayTsMs(provider, portfolio_vault) {
253
+ return __awaiter(this, void 0, void 0, function () {
254
+ var auctionDelayTsMs;
255
+ return __generator(this, function (_a) {
256
+ switch (_a.label) {
257
+ case 0:
258
+ auctionDelayTsMs = "0";
259
+ return [4 /*yield*/, provider
260
+ .getDynamicFieldObject({
261
+ parentId: portfolio_vault.vaultId,
262
+ name: {
263
+ type: "vector<u8>",
264
+ value: [97, 117, 99, 116, 105, 111, 110, 95, 115, 116, 97, 114, 116, 95, 100, 101, 108, 97, 121, 95, 116, 115, 95, 109, 115],
265
+ },
266
+ })
267
+ .then(function (result) {
268
+ if (result.error == undefined) {
269
+ // @ts-ignore
270
+ auctionDelayTsMs = result.data.content.fields.value;
271
+ }
272
+ })];
273
+ case 1:
274
+ _a.sent();
275
+ return [2 /*return*/, auctionDelayTsMs];
276
+ }
277
+ });
278
+ });
279
+ }
280
+ exports.getPortfolioVaultAuctionDelayTsMs = getPortfolioVaultAuctionDelayTsMs;
@@ -0,0 +1,13 @@
1
+ import { JsonRpcProvider } from "@mysten/sui.js";
2
+ export declare function getUserHistory(provider: JsonRpcProvider, originPackage: string, sender: string): Promise<TxHistory[]>;
3
+ interface TxHistory {
4
+ Vault: string;
5
+ Action: string;
6
+ Date: Date;
7
+ txDigest: string;
8
+ Asset: string;
9
+ Amount: number;
10
+ Fee: number;
11
+ BidSize: number;
12
+ }
13
+ export {};
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getUserHistory = void 0;
40
+ var token_1 = require("../token");
41
+ function getUserHistory(provider, originPackage, sender) {
42
+ return __awaiter(this, void 0, void 0, function () {
43
+ var senderFilter, result, txHistory, nextPage;
44
+ return __generator(this, function (_a) {
45
+ switch (_a.label) {
46
+ case 0:
47
+ senderFilter = {
48
+ Sender: sender,
49
+ };
50
+ return [4 /*yield*/, provider.queryEvents({ query: senderFilter })];
51
+ case 1:
52
+ result = _a.sent();
53
+ return [4 /*yield*/, parseTxHistory(result.data, originPackage)];
54
+ case 2:
55
+ txHistory = _a.sent();
56
+ _a.label = 3;
57
+ case 3:
58
+ if (!result.hasNextPage) return [3 /*break*/, 6];
59
+ return [4 /*yield*/, provider.queryEvents({ query: senderFilter, cursor: result.nextCursor })];
60
+ case 4:
61
+ result = _a.sent();
62
+ return [4 /*yield*/, parseTxHistory(result.data, originPackage)];
63
+ case 5:
64
+ nextPage = _a.sent();
65
+ txHistory = txHistory.concat(nextPage);
66
+ return [3 /*break*/, 3];
67
+ case 6:
68
+ // console.log(txHistory);
69
+ return [2 /*return*/, txHistory];
70
+ }
71
+ });
72
+ });
73
+ }
74
+ exports.getUserHistory = getUserHistory;
75
+ function parseTxHistory(datas, originPackage) {
76
+ return __awaiter(this, void 0, void 0, function () {
77
+ var _this = this;
78
+ return __generator(this, function (_a) {
79
+ switch (_a.label) {
80
+ case 0: return [4 /*yield*/, datas
81
+ .filter(function (event) {
82
+ var type = event.type;
83
+ return type.startsWith(originPackage);
84
+ })
85
+ .reduce(function (promise, event) { return __awaiter(_this, void 0, void 0, function () {
86
+ var txHistory, functionType, action, matches, typeArgs, assets, asset, parsedJson;
87
+ var _a;
88
+ return __generator(this, function (_b) {
89
+ switch (_b.label) {
90
+ case 0: return [4 /*yield*/, promise];
91
+ case 1:
92
+ txHistory = _b.sent();
93
+ functionType = (_a = new RegExp("^([^::]+)::([^::]+)::([^<]+)").exec(event.type)) === null || _a === void 0 ? void 0 : _a.slice(1, 4);
94
+ action = functionType[2];
95
+ matches = new RegExp("<([^>]+)>").exec(event.type);
96
+ if (matches) {
97
+ typeArgs = matches[1].split(",");
98
+ assets = (0, token_1.typeArgsToAssets)(typeArgs);
99
+ asset = action == "NewBid" ? assets[2] : assets[0];
100
+ parsedJson = event.parsedJson;
101
+ txHistory.push({
102
+ Vault: parsedJson.index,
103
+ Action: action,
104
+ Date: new Date(Number(event.timestampMs)),
105
+ txDigest: event.id.txDigest,
106
+ Asset: asset,
107
+ Amount: Number(parsedJson.amount) / Math.pow(10, (0, token_1.assetToDecimal)(asset)),
108
+ Fee: Number(parsedJson.fee) / Math.pow(10, (0, token_1.assetToDecimal)(asset)),
109
+ BidSize: Number(parsedJson.size) / Math.pow(10, (0, token_1.assetToDecimal)(asset)),
110
+ });
111
+ return [2 /*return*/, txHistory];
112
+ }
113
+ return [2 /*return*/];
114
+ }
115
+ });
116
+ }); }, Promise.resolve(new Array()))];
117
+ case 1: return [2 /*return*/, _a.sent()];
118
+ }
119
+ });
120
+ });
121
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@typus/typus-sdk",
3
3
  "author": "Typus",
4
4
  "description": "typus sdk",
5
- "version": "1.0.54",
5
+ "version": "1.0.56",
6
6
  "dependencies": {
7
7
  "@mysten/sui.js": "^0.34.1",
8
8
  "@types/node": "^17.0.0",