@ichidao/ichi-vaults-sdk 0.0.54 → 0.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.
Files changed (49) hide show
  1. package/dist/src/__tests__/index.test.js +5 -4
  2. package/dist/src/__tests__/index.test.js.map +1 -1
  3. package/dist/src/functions/_totalBalances.d.ts +8 -0
  4. package/dist/src/functions/_totalBalances.js +134 -0
  5. package/dist/src/functions/_totalBalances.js.map +1 -0
  6. package/dist/src/functions/_vaultEvents.d.ts +8 -0
  7. package/dist/src/functions/_vaultEvents.js +460 -0
  8. package/dist/src/functions/_vaultEvents.js.map +1 -0
  9. package/dist/src/functions/calculateApr.js +34 -15
  10. package/dist/src/functions/calculateApr.js.map +1 -1
  11. package/dist/src/functions/calculateDtr.js +29 -38
  12. package/dist/src/functions/calculateDtr.js.map +1 -1
  13. package/dist/src/functions/calculateFees.js +12 -12
  14. package/dist/src/functions/calculateFees.js.map +1 -1
  15. package/dist/src/functions/deposit.d.ts +1 -0
  16. package/dist/src/functions/deposit.js +39 -45
  17. package/dist/src/functions/deposit.js.map +1 -1
  18. package/dist/src/functions/priceFromPool.d.ts +5 -5
  19. package/dist/src/functions/priceFromPool.js +46 -91
  20. package/dist/src/functions/priceFromPool.js.map +1 -1
  21. package/dist/src/functions/totalBalances.d.ts +0 -1
  22. package/dist/src/functions/totalBalances.js +15 -69
  23. package/dist/src/functions/totalBalances.js.map +1 -1
  24. package/dist/src/functions/userBalances.js +28 -36
  25. package/dist/src/functions/userBalances.js.map +1 -1
  26. package/dist/src/functions/vault.js +0 -1
  27. package/dist/src/functions/vault.js.map +1 -1
  28. package/dist/src/functions/vaultMetrics.js +8 -8
  29. package/dist/src/functions/vaultMetrics.js.map +1 -1
  30. package/dist/src/graphql/functions.d.ts +6 -0
  31. package/dist/src/graphql/functions.js +111 -0
  32. package/dist/src/graphql/functions.js.map +1 -0
  33. package/dist/src/graphql/queries.d.ts +1 -0
  34. package/dist/src/graphql/queries.js +5 -3
  35. package/dist/src/graphql/queries.js.map +1 -1
  36. package/dist/src/index.cjs.js +1 -1
  37. package/dist/src/index.esm.js +1 -1
  38. package/dist/src/src/functions/_totalBalances.d.ts +8 -0
  39. package/dist/src/src/functions/_vaultEvents.d.ts +8 -0
  40. package/dist/src/src/functions/deposit.d.ts +1 -0
  41. package/dist/src/src/functions/priceFromPool.d.ts +5 -5
  42. package/dist/src/src/functions/totalBalances.d.ts +0 -1
  43. package/dist/src/src/graphql/functions.d.ts +6 -0
  44. package/dist/src/src/graphql/queries.d.ts +1 -0
  45. package/package.json +1 -1
  46. package/dist/src/functions/vaultEvents.d.ts +0 -8
  47. package/dist/src/functions/vaultEvents.js +0 -460
  48. package/dist/src/functions/vaultEvents.js.map +0 -1
  49. package/dist/src/src/functions/vaultEvents.d.ts +0 -8
@@ -0,0 +1,460 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.getVaultStateAt = exports._getAllVaultEvents = exports._getWithdraws = exports._getDeposits = exports._getFeesCollectedEvents = exports._getRebalances = exports._getAllEvents = void 0;
43
+ // eslint-disable import/no-cycle
44
+ var constants_1 = require("../graphql/constants");
45
+ var queries_1 = require("../graphql/queries");
46
+ var timestamps_1 = require("../utils/timestamps");
47
+ var getGraphUrls_1 = __importDefault(require("../utils/getGraphUrls"));
48
+ var cache_1 = __importDefault(require("../utils/cache"));
49
+ var functions_1 = require("../graphql/functions");
50
+ // eslint-disable-next-line no-underscore-dangle
51
+ function _getAllEvents(vaultAddress, chainId, dex, days) {
52
+ return __awaiter(this, void 0, void 0, function () {
53
+ var key, cachedData, ttl, _a, publishedUrl, url, currTimestamp, startTimestamp, allEvents, endOfData, page, result, error_1, error2_1;
54
+ return __generator(this, function (_b) {
55
+ switch (_b.label) {
56
+ case 0:
57
+ key = "allevents-".concat(chainId, "-").concat(vaultAddress, "-").concat(days);
58
+ cachedData = cache_1.default.get(key);
59
+ if (cachedData) {
60
+ return [2 /*return*/, cachedData];
61
+ }
62
+ ttl = 120000;
63
+ _a = (0, getGraphUrls_1.default)(chainId, dex, true), publishedUrl = _a.publishedUrl, url = _a.url;
64
+ currTimestamp = Date.now();
65
+ startTimestamp = days
66
+ ? parseInt(((currTimestamp - (0, timestamps_1.daysToMilliseconds)(days)) / 1000).toString()).toString()
67
+ : '0';
68
+ allEvents = [];
69
+ endOfData = false;
70
+ page = 0;
71
+ _b.label = 1;
72
+ case 1:
73
+ if (!!endOfData) return [3 /*break*/, 12];
74
+ result = void 0;
75
+ _b.label = 2;
76
+ case 2:
77
+ _b.trys.push([2, 6, , 11]);
78
+ if (!publishedUrl) return [3 /*break*/, 4];
79
+ return [4 /*yield*/, (0, functions_1.sendAllEventsQueryRequest)(publishedUrl, vaultAddress, startTimestamp, (0, queries_1.allEventsQuery)(page))];
80
+ case 3:
81
+ result = _b.sent();
82
+ return [3 /*break*/, 5];
83
+ case 4: throw new Error("Published URL is invalid for dex ".concat(dex, " on chain ").concat(chainId));
84
+ case 5: return [3 /*break*/, 11];
85
+ case 6:
86
+ error_1 = _b.sent();
87
+ if (publishedUrl) {
88
+ console.error('Request to published graph URL failed:', error_1);
89
+ }
90
+ _b.label = 7;
91
+ case 7:
92
+ _b.trys.push([7, 9, , 10]);
93
+ return [4 /*yield*/, (0, functions_1.sendAllEventsQueryRequest)(url, vaultAddress, startTimestamp, (0, queries_1.allEventsQuery)(page))];
94
+ case 8:
95
+ result = _b.sent();
96
+ return [3 /*break*/, 10];
97
+ case 9:
98
+ error2_1 = _b.sent();
99
+ console.error('Request to public graph URL failed:', error2_1);
100
+ throw new Error("Could not get rebalances for vault ".concat(vaultAddress, " on chain ").concat(chainId));
101
+ case 10: return [3 /*break*/, 11];
102
+ case 11:
103
+ if (result) {
104
+ allEvents.push.apply(allEvents, result.vaultRebalances);
105
+ allEvents.push.apply(allEvents, result.vaultCollectFees);
106
+ allEvents.push.apply(allEvents, result.vaultDeposits);
107
+ allEvents.push.apply(allEvents, result.vaultWithdraws);
108
+ page += 1;
109
+ if (result.vaultRebalances.length < 1000 &&
110
+ result.vaultCollectFees.length < 1000 &&
111
+ result.vaultDeposits.length < 1000 &&
112
+ result.vaultWithdraws.length < 1000) {
113
+ endOfData = true;
114
+ }
115
+ }
116
+ else {
117
+ endOfData = true;
118
+ }
119
+ return [3 /*break*/, 1];
120
+ case 12:
121
+ cache_1.default.set(key, allEvents, ttl);
122
+ return [2 /*return*/, allEvents];
123
+ }
124
+ });
125
+ });
126
+ }
127
+ exports._getAllEvents = _getAllEvents;
128
+ // eslint-disable-next-line no-underscore-dangle
129
+ function _getRebalances(vaultAddress, chainId, dex, days) {
130
+ return __awaiter(this, void 0, void 0, function () {
131
+ var key, cachedData, ttl, _a, publishedUrl, url, currTimestamp, startTimestamp, rebalances, endOfData, page, result, error_2, error2_2;
132
+ return __generator(this, function (_b) {
133
+ switch (_b.label) {
134
+ case 0:
135
+ key = "rebalances-".concat(chainId, "-").concat(vaultAddress, "-").concat(days);
136
+ cachedData = cache_1.default.get(key);
137
+ if (cachedData) {
138
+ return [2 /*return*/, cachedData];
139
+ }
140
+ ttl = 120000;
141
+ _a = (0, getGraphUrls_1.default)(chainId, dex, true), publishedUrl = _a.publishedUrl, url = _a.url;
142
+ currTimestamp = Date.now();
143
+ startTimestamp = days
144
+ ? parseInt(((currTimestamp - (0, timestamps_1.daysToMilliseconds)(days)) / 1000).toString()).toString()
145
+ : '0';
146
+ rebalances = [];
147
+ endOfData = false;
148
+ page = 0;
149
+ _b.label = 1;
150
+ case 1:
151
+ if (!!endOfData) return [3 /*break*/, 12];
152
+ result = void 0;
153
+ _b.label = 2;
154
+ case 2:
155
+ _b.trys.push([2, 6, , 11]);
156
+ if (!publishedUrl) return [3 /*break*/, 4];
157
+ return [4 /*yield*/, (0, functions_1.sendRebalancesQueryRequest)(publishedUrl, vaultAddress, startTimestamp, (0, queries_1.rebalancesQuery)(page))];
158
+ case 3:
159
+ result = _b.sent();
160
+ return [3 /*break*/, 5];
161
+ case 4: throw new Error("Published URL is invalid for dex ".concat(dex, " on chain ").concat(chainId));
162
+ case 5: return [3 /*break*/, 11];
163
+ case 6:
164
+ error_2 = _b.sent();
165
+ if (publishedUrl) {
166
+ console.error('Request to published graph URL failed:', error_2);
167
+ }
168
+ _b.label = 7;
169
+ case 7:
170
+ _b.trys.push([7, 9, , 10]);
171
+ return [4 /*yield*/, (0, functions_1.sendRebalancesQueryRequest)(url, vaultAddress, startTimestamp, (0, queries_1.rebalancesQuery)(page))];
172
+ case 8:
173
+ result = _b.sent();
174
+ return [3 /*break*/, 10];
175
+ case 9:
176
+ error2_2 = _b.sent();
177
+ console.error('Request to public graph URL failed:', error2_2);
178
+ throw new Error("Could not get rebalances for vault ".concat(vaultAddress, " on chain ").concat(chainId));
179
+ case 10: return [3 /*break*/, 11];
180
+ case 11:
181
+ if (result) {
182
+ rebalances.push.apply(rebalances, result);
183
+ page += 1;
184
+ if (result.length < 1000) {
185
+ endOfData = true;
186
+ }
187
+ }
188
+ else {
189
+ endOfData = true;
190
+ }
191
+ return [3 /*break*/, 1];
192
+ case 12:
193
+ cache_1.default.set(key, rebalances, ttl);
194
+ return [2 /*return*/, rebalances];
195
+ }
196
+ });
197
+ });
198
+ }
199
+ exports._getRebalances = _getRebalances;
200
+ // eslint-disable-next-line no-underscore-dangle
201
+ function _getFeesCollectedEvents(vaultAddress, chainId, dex, days) {
202
+ var _a;
203
+ return __awaiter(this, void 0, void 0, function () {
204
+ var key, cachedData, ttl, _b, publishedUrl, url, supportsCollectFees, result, currTimestamp, startTimestamp, otherFees, endOfData, page, result, error_3, error2_3;
205
+ return __generator(this, function (_c) {
206
+ switch (_c.label) {
207
+ case 0:
208
+ key = "fees-".concat(chainId, "-").concat(vaultAddress, "-").concat(days);
209
+ cachedData = cache_1.default.get(key);
210
+ if (cachedData) {
211
+ return [2 /*return*/, cachedData];
212
+ }
213
+ ttl = 120000;
214
+ _b = (0, getGraphUrls_1.default)(chainId, dex, true), publishedUrl = _b.publishedUrl, url = _b.url;
215
+ supportsCollectFees = (_a = constants_1.graphUrls[chainId][dex]) === null || _a === void 0 ? void 0 : _a.supportsCollectFees;
216
+ if (!supportsCollectFees) {
217
+ result = [];
218
+ cache_1.default.set(key, result, 24 * 60 * 60 * 1000);
219
+ return [2 /*return*/, result];
220
+ }
221
+ currTimestamp = Date.now();
222
+ startTimestamp = days
223
+ ? parseInt(((currTimestamp - (0, timestamps_1.daysToMilliseconds)(days)) / 1000).toString()).toString()
224
+ : '0';
225
+ otherFees = [];
226
+ endOfData = false;
227
+ page = 0;
228
+ _c.label = 1;
229
+ case 1:
230
+ if (!!endOfData) return [3 /*break*/, 12];
231
+ result = void 0;
232
+ _c.label = 2;
233
+ case 2:
234
+ _c.trys.push([2, 6, , 11]);
235
+ if (!publishedUrl) return [3 /*break*/, 4];
236
+ return [4 /*yield*/, (0, functions_1.sendCollectFeesQueryRequest)(publishedUrl, vaultAddress, startTimestamp, (0, queries_1.vaultCollectFeesQuery)(page))];
237
+ case 3:
238
+ result = _c.sent();
239
+ return [3 /*break*/, 5];
240
+ case 4: throw new Error("Published URL is invalid for dex ".concat(dex, " on chain ").concat(chainId));
241
+ case 5: return [3 /*break*/, 11];
242
+ case 6:
243
+ error_3 = _c.sent();
244
+ if (publishedUrl) {
245
+ console.error('Request to published graph URL failed:', error_3);
246
+ }
247
+ _c.label = 7;
248
+ case 7:
249
+ _c.trys.push([7, 9, , 10]);
250
+ return [4 /*yield*/, (0, functions_1.sendCollectFeesQueryRequest)(url, vaultAddress, startTimestamp, (0, queries_1.vaultCollectFeesQuery)(page))];
251
+ case 8:
252
+ result = _c.sent();
253
+ return [3 /*break*/, 10];
254
+ case 9:
255
+ error2_3 = _c.sent();
256
+ console.error('Request to public graph URL failed:', error2_3);
257
+ throw new Error("Could not get collected fees for vault ".concat(vaultAddress, " on chain ").concat(chainId));
258
+ case 10: return [3 /*break*/, 11];
259
+ case 11:
260
+ if (result) {
261
+ otherFees.push.apply(otherFees, result);
262
+ page += 1;
263
+ if (result.length < 1000) {
264
+ endOfData = true;
265
+ }
266
+ }
267
+ else {
268
+ endOfData = true;
269
+ }
270
+ return [3 /*break*/, 1];
271
+ case 12:
272
+ cache_1.default.set(key, otherFees, ttl);
273
+ return [2 /*return*/, otherFees];
274
+ }
275
+ });
276
+ });
277
+ }
278
+ exports._getFeesCollectedEvents = _getFeesCollectedEvents;
279
+ // eslint-disable-next-line no-underscore-dangle
280
+ function _getDeposits(vaultAddress, chainId, dex, days) {
281
+ return __awaiter(this, void 0, void 0, function () {
282
+ var key, cachedData, ttl, _a, publishedUrl, url, currTimestamp, startTimestamp, depositEvents, endOfData, page, result, error_4, error2_4;
283
+ return __generator(this, function (_b) {
284
+ switch (_b.label) {
285
+ case 0:
286
+ key = "deposits-".concat(chainId, "-").concat(vaultAddress, "-").concat(days);
287
+ cachedData = cache_1.default.get(key);
288
+ if (cachedData) {
289
+ return [2 /*return*/, cachedData];
290
+ }
291
+ ttl = 120000;
292
+ _a = (0, getGraphUrls_1.default)(chainId, dex, true), publishedUrl = _a.publishedUrl, url = _a.url;
293
+ currTimestamp = Date.now();
294
+ startTimestamp = days
295
+ ? parseInt(((currTimestamp - (0, timestamps_1.daysToMilliseconds)(days)) / 1000).toString()).toString()
296
+ : '0';
297
+ depositEvents = [];
298
+ endOfData = false;
299
+ page = 0;
300
+ _b.label = 1;
301
+ case 1:
302
+ if (!!endOfData) return [3 /*break*/, 12];
303
+ result = void 0;
304
+ _b.label = 2;
305
+ case 2:
306
+ _b.trys.push([2, 6, , 11]);
307
+ if (!publishedUrl) return [3 /*break*/, 4];
308
+ return [4 /*yield*/, (0, functions_1.sendDepositsQueryRequest)(publishedUrl, vaultAddress, startTimestamp, (0, queries_1.vaultDepositsQuery)(page))];
309
+ case 3:
310
+ result = _b.sent();
311
+ return [3 /*break*/, 5];
312
+ case 4: throw new Error("Published URL is invalid for dex ".concat(dex, " on chain ").concat(chainId));
313
+ case 5: return [3 /*break*/, 11];
314
+ case 6:
315
+ error_4 = _b.sent();
316
+ if (publishedUrl) {
317
+ console.error('Request to published graph URL failed:', error_4);
318
+ }
319
+ _b.label = 7;
320
+ case 7:
321
+ _b.trys.push([7, 9, , 10]);
322
+ return [4 /*yield*/, (0, functions_1.sendDepositsQueryRequest)(url, vaultAddress, startTimestamp, (0, queries_1.vaultDepositsQuery)(page))];
323
+ case 8:
324
+ result = _b.sent();
325
+ return [3 /*break*/, 10];
326
+ case 9:
327
+ error2_4 = _b.sent();
328
+ console.error('Request to public graph URL failed:', error2_4);
329
+ throw new Error("Could not get deposits for vault ".concat(vaultAddress, " on chain ").concat(chainId));
330
+ case 10: return [3 /*break*/, 11];
331
+ case 11:
332
+ if (result) {
333
+ depositEvents.push.apply(depositEvents, result);
334
+ page += 1;
335
+ if (result.length < 1000) {
336
+ endOfData = true;
337
+ }
338
+ }
339
+ else {
340
+ endOfData = true;
341
+ }
342
+ return [3 /*break*/, 1];
343
+ case 12:
344
+ cache_1.default.set(key, depositEvents, ttl);
345
+ return [2 /*return*/, depositEvents];
346
+ }
347
+ });
348
+ });
349
+ }
350
+ exports._getDeposits = _getDeposits;
351
+ // eslint-disable-next-line no-underscore-dangle
352
+ function _getWithdraws(vaultAddress, chainId, dex, days) {
353
+ return __awaiter(this, void 0, void 0, function () {
354
+ var key, cachedData, ttl, _a, publishedUrl, url, currTimestamp, startTimestamp, withdrawEvents, endOfData, page, result, error_5, error2_5;
355
+ return __generator(this, function (_b) {
356
+ switch (_b.label) {
357
+ case 0:
358
+ key = "withdraws-".concat(chainId, "-").concat(vaultAddress, "-").concat(days);
359
+ cachedData = cache_1.default.get(key);
360
+ if (cachedData) {
361
+ return [2 /*return*/, cachedData];
362
+ }
363
+ ttl = 120000;
364
+ _a = (0, getGraphUrls_1.default)(chainId, dex, true), publishedUrl = _a.publishedUrl, url = _a.url;
365
+ currTimestamp = Date.now();
366
+ startTimestamp = days
367
+ ? parseInt(((currTimestamp - (0, timestamps_1.daysToMilliseconds)(days)) / 1000).toString()).toString()
368
+ : '0';
369
+ withdrawEvents = [];
370
+ endOfData = false;
371
+ page = 0;
372
+ _b.label = 1;
373
+ case 1:
374
+ if (!!endOfData) return [3 /*break*/, 12];
375
+ result = void 0;
376
+ _b.label = 2;
377
+ case 2:
378
+ _b.trys.push([2, 6, , 11]);
379
+ if (!publishedUrl) return [3 /*break*/, 4];
380
+ return [4 /*yield*/, (0, functions_1.sendWithdrawsQueryRequest)(publishedUrl, vaultAddress, startTimestamp, (0, queries_1.vaultWithdrawsQuery)(page))];
381
+ case 3:
382
+ result = _b.sent();
383
+ return [3 /*break*/, 5];
384
+ case 4: throw new Error("Published URL is invalid for dex ".concat(dex, " on chain ").concat(chainId));
385
+ case 5: return [3 /*break*/, 11];
386
+ case 6:
387
+ error_5 = _b.sent();
388
+ if (publishedUrl) {
389
+ console.error('Request to published graph URL failed:', error_5);
390
+ }
391
+ _b.label = 7;
392
+ case 7:
393
+ _b.trys.push([7, 9, , 10]);
394
+ return [4 /*yield*/, (0, functions_1.sendWithdrawsQueryRequest)(url, vaultAddress, startTimestamp, (0, queries_1.vaultWithdrawsQuery)(page))];
395
+ case 8:
396
+ result = _b.sent();
397
+ return [3 /*break*/, 10];
398
+ case 9:
399
+ error2_5 = _b.sent();
400
+ console.error('Request to public graph URL failed:', error2_5);
401
+ throw new Error("Could not get withdraws for vault ".concat(vaultAddress, " on chain ").concat(chainId));
402
+ case 10: return [3 /*break*/, 11];
403
+ case 11:
404
+ if (result) {
405
+ withdrawEvents.push.apply(withdrawEvents, result);
406
+ page += 1;
407
+ if (result.length < 1000) {
408
+ endOfData = true;
409
+ }
410
+ }
411
+ else {
412
+ endOfData = true;
413
+ }
414
+ return [3 /*break*/, 1];
415
+ case 12:
416
+ cache_1.default.set(key, withdrawEvents, ttl);
417
+ return [2 /*return*/, withdrawEvents];
418
+ }
419
+ });
420
+ });
421
+ }
422
+ exports._getWithdraws = _getWithdraws;
423
+ // eslint-disable-next-line no-underscore-dangle
424
+ function _getAllVaultEvents(vaultAddress, chainId, dex, days) {
425
+ return __awaiter(this, void 0, void 0, function () {
426
+ var key, cachedData, ttl, allEvents, result;
427
+ return __generator(this, function (_a) {
428
+ switch (_a.label) {
429
+ case 0:
430
+ key = "allEvents-".concat(chainId, "-").concat(vaultAddress);
431
+ cachedData = cache_1.default.get(key);
432
+ if (cachedData) {
433
+ return [2 /*return*/, cachedData];
434
+ }
435
+ ttl = 120000;
436
+ return [4 /*yield*/, _getAllEvents(vaultAddress, chainId, dex, days)];
437
+ case 1:
438
+ allEvents = _a.sent();
439
+ result = allEvents.sort(function (a, b) { return Number(b.createdAtTimestamp) - Number(a.createdAtTimestamp); });
440
+ cache_1.default.set(key, result, ttl);
441
+ return [2 /*return*/, result];
442
+ }
443
+ });
444
+ });
445
+ }
446
+ exports._getAllVaultEvents = _getAllVaultEvents;
447
+ function getVaultStateAt(vaultEvents, daysAgo) {
448
+ if (vaultEvents.length === 0) {
449
+ return null;
450
+ }
451
+ var eventsBefore = vaultEvents.filter(function (e) { return Number(e.createdAtTimestamp) * 1000 <= Date.now() - (0, timestamps_1.daysToMilliseconds)(daysAgo); });
452
+ if (eventsBefore.length > 0) {
453
+ return eventsBefore[0];
454
+ }
455
+ else {
456
+ return null;
457
+ }
458
+ }
459
+ exports.getVaultStateAt = getVaultStateAt;
460
+ //# sourceMappingURL=_vaultEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_vaultEvents.js","sourceRoot":"","sources":["../../../src/functions/_vaultEvents.ts"],"names":[],"mappings":"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"}
@@ -44,15 +44,16 @@ var ethers_1 = require("ethers");
44
44
  var types_1 = require("../types");
45
45
  // eslint-disable-next-line import/no-cycle
46
46
  var vault_1 = require("./vault");
47
- var totalBalances_1 = require("./totalBalances");
47
+ var _totalBalances_1 = require("./_totalBalances");
48
48
  var priceFromPool_1 = require("./priceFromPool");
49
- var vaultEvents_1 = require("./vaultEvents");
50
49
  var timestamps_1 = require("../utils/timestamps");
51
50
  var getPrice_1 = __importDefault(require("../utils/getPrice"));
52
51
  var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
53
52
  var getGraphUrls_1 = __importDefault(require("../utils/getGraphUrls"));
53
+ var _vaultEvents_1 = require("./_vaultEvents");
54
+ var cache_1 = __importDefault(require("../utils/cache"));
54
55
  function getLpPriceAt(vaultEvents, daysAgo, isVaultInverted, token0decimals, token1decimals) {
55
- var e = (0, vaultEvents_1.getVaultStateAt)(vaultEvents, daysAgo);
56
+ var e = (0, _vaultEvents_1.getVaultStateAt)(vaultEvents, daysAgo);
56
57
  if (!e) {
57
58
  return null;
58
59
  }
@@ -77,26 +78,34 @@ function getLpPriceAt(vaultEvents, daysAgo, isVaultInverted, token0decimals, tok
77
78
  exports.getLpPriceAt = getLpPriceAt;
78
79
  function getLpApr(vaultAddress, jsonProvider, dex, timeIntervals) {
79
80
  return __awaiter(this, void 0, void 0, function () {
80
- var _a, chainId, vault, decimals0, decimals1, isInv, currLpPrice, arrDays, result, vaultEvents;
81
+ var key, cachedData, ttl, _a, chainId, vault, decimals0, decimals1, isInv, currLpPrice, arrDays, maxDays, result, vaultEvents;
81
82
  return __generator(this, function (_b) {
82
83
  switch (_b.label) {
83
- case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
84
+ case 0:
85
+ key = "lpApr-".concat(dex, "-").concat(vaultAddress);
86
+ cachedData = cache_1.default.get(key);
87
+ if (cachedData) {
88
+ return [2 /*return*/, cachedData];
89
+ }
90
+ ttl = 30 * 60 * 1000;
91
+ return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
84
92
  case 1:
85
93
  _a = _b.sent(), chainId = _a.chainId, vault = _a.vault;
86
94
  (0, getGraphUrls_1.default)(chainId, dex, true);
87
- return [4 /*yield*/, (0, totalBalances_1.getTokenDecimals)(vault.tokenA, jsonProvider)];
95
+ return [4 /*yield*/, (0, _totalBalances_1.getTokenDecimals)(vault.tokenA, jsonProvider, chainId)];
88
96
  case 2:
89
97
  decimals0 = _b.sent();
90
- return [4 /*yield*/, (0, totalBalances_1.getTokenDecimals)(vault.tokenB, jsonProvider)];
98
+ return [4 /*yield*/, (0, _totalBalances_1.getTokenDecimals)(vault.tokenB, jsonProvider, chainId)];
91
99
  case 3:
92
100
  decimals1 = _b.sent();
93
101
  isInv = vault.allowTokenB;
94
- return [4 /*yield*/, (0, priceFromPool_1.getCurrLpPrice)(vaultAddress, jsonProvider, dex, isInv, decimals0, decimals1)];
102
+ return [4 /*yield*/, (0, priceFromPool_1.getCurrLpPrice)(vault, jsonProvider, dex, chainId, isInv, decimals0, decimals1)];
95
103
  case 4:
96
104
  currLpPrice = _b.sent();
97
105
  arrDays = timeIntervals && timeIntervals.length > 0 ? timeIntervals : [1, 7, 30];
106
+ maxDays = Math.max.apply(Math, arrDays) + 30;
98
107
  result = [];
99
- return [4 /*yield*/, (0, vaultEvents_1.getAllVaultEvents)(vaultAddress, jsonProvider, dex)];
108
+ return [4 /*yield*/, (0, _vaultEvents_1._getAllVaultEvents)(vaultAddress, chainId, dex, maxDays)];
100
109
  case 5:
101
110
  vaultEvents = _b.sent();
102
111
  arrDays.forEach(function (d) {
@@ -110,6 +119,7 @@ function getLpApr(vaultAddress, jsonProvider, dex, timeIntervals) {
110
119
  result.push({ timeInterval: d, apr: apr });
111
120
  }
112
121
  });
122
+ cache_1.default.set(key, result, ttl);
113
123
  return [2 /*return*/, result];
114
124
  }
115
125
  });
@@ -118,26 +128,34 @@ function getLpApr(vaultAddress, jsonProvider, dex, timeIntervals) {
118
128
  exports.getLpApr = getLpApr;
119
129
  function getLpPriceChange(vaultAddress, jsonProvider, dex, timeIntervals) {
120
130
  return __awaiter(this, void 0, void 0, function () {
121
- var _a, chainId, vault, decimals0, decimals1, isInv, currLpPrice, arrDays, result, vaultEvents;
131
+ var key, cachedData, ttl, _a, chainId, vault, decimals0, decimals1, isInv, currLpPrice, arrDays, maxDays, result, vaultEvents;
122
132
  return __generator(this, function (_b) {
123
133
  switch (_b.label) {
124
- case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
134
+ case 0:
135
+ key = "lpPriceChange-".concat(dex, "-").concat(vaultAddress);
136
+ cachedData = cache_1.default.get(key);
137
+ if (cachedData) {
138
+ return [2 /*return*/, cachedData];
139
+ }
140
+ ttl = 30 * 60 * 1000;
141
+ return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
125
142
  case 1:
126
143
  _a = _b.sent(), chainId = _a.chainId, vault = _a.vault;
127
144
  (0, getGraphUrls_1.default)(chainId, dex, true);
128
- return [4 /*yield*/, (0, totalBalances_1.getTokenDecimals)(vault.tokenA, jsonProvider)];
145
+ return [4 /*yield*/, (0, _totalBalances_1.getTokenDecimals)(vault.tokenA, jsonProvider, chainId)];
129
146
  case 2:
130
147
  decimals0 = _b.sent();
131
- return [4 /*yield*/, (0, totalBalances_1.getTokenDecimals)(vault.tokenB, jsonProvider)];
148
+ return [4 /*yield*/, (0, _totalBalances_1.getTokenDecimals)(vault.tokenB, jsonProvider, chainId)];
132
149
  case 3:
133
150
  decimals1 = _b.sent();
134
151
  isInv = vault.allowTokenB;
135
- return [4 /*yield*/, (0, priceFromPool_1.getCurrLpPrice)(vaultAddress, jsonProvider, dex, isInv, decimals0, decimals1)];
152
+ return [4 /*yield*/, (0, priceFromPool_1.getCurrLpPrice)(vault, jsonProvider, dex, chainId, isInv, decimals0, decimals1)];
136
153
  case 4:
137
154
  currLpPrice = _b.sent();
138
155
  arrDays = timeIntervals && timeIntervals.length > 0 ? timeIntervals : [1, 7, 30];
156
+ maxDays = Math.max.apply(Math, arrDays) + 30;
139
157
  result = [];
140
- return [4 /*yield*/, (0, vaultEvents_1.getAllVaultEvents)(vaultAddress, jsonProvider, dex)];
158
+ return [4 /*yield*/, (0, _vaultEvents_1._getAllVaultEvents)(vaultAddress, chainId, dex, maxDays)];
141
159
  case 5:
142
160
  vaultEvents = _b.sent();
143
161
  arrDays.forEach(function (d) {
@@ -150,6 +168,7 @@ function getLpPriceChange(vaultAddress, jsonProvider, dex, timeIntervals) {
150
168
  result.push({ timeInterval: d, priceChange: ((currLpPrice - prevLpPrice) / prevLpPrice) * 100 });
151
169
  }
152
170
  });
171
+ cache_1.default.set(key, result, ttl);
153
172
  return [2 /*return*/, result];
154
173
  }
155
174
  });
@@ -1 +1 @@
1
- {"version":3,"file":"calculateApr.js","sourceRoot":"","sources":["../../../src/functions/calculateApr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculateApr.js","sourceRoot":"","sources":["../../../src/functions/calculateApr.ts"],"names":[],"mappings":"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"}