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