@ichidao/ichi-vaults-sdk 0.0.35 → 0.0.37

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. package/README.md +68 -6
  2. package/dist/src/__tests__/index.test.js +128 -46
  3. package/dist/src/__tests__/index.test.js.map +1 -1
  4. package/dist/src/functions/calculateApr.d.ts +2 -1
  5. package/dist/src/functions/calculateApr.js +3 -2
  6. package/dist/src/functions/calculateApr.js.map +1 -1
  7. package/dist/src/functions/calculateDtr.d.ts +5 -1
  8. package/dist/src/functions/calculateDtr.js +5 -1
  9. package/dist/src/functions/calculateDtr.js.map +1 -1
  10. package/dist/src/functions/calculateFees.d.ts +3 -2
  11. package/dist/src/functions/calculateFees.js +2 -1
  12. package/dist/src/functions/calculateFees.js.map +1 -1
  13. package/dist/src/functions/deposit.js +100 -78
  14. package/dist/src/functions/deposit.js.map +1 -1
  15. package/dist/src/functions/userBalances.js +22 -14
  16. package/dist/src/functions/userBalances.js.map +1 -1
  17. package/dist/src/functions/vaultMetrics.d.ts +3 -0
  18. package/dist/src/functions/vaultMetrics.js +225 -0
  19. package/dist/src/functions/vaultMetrics.js.map +1 -0
  20. package/dist/src/functions/withdraw.js +97 -81
  21. package/dist/src/functions/withdraw.js.map +1 -1
  22. package/dist/src/index.cjs.js +2 -2
  23. package/dist/src/index.d.ts +1 -0
  24. package/dist/src/index.esm.js +2 -2
  25. package/dist/src/index.js +1 -1
  26. package/dist/src/index.js.map +1 -1
  27. package/dist/src/src/functions/calculateApr.d.ts +2 -1
  28. package/dist/src/src/functions/calculateDtr.d.ts +5 -1
  29. package/dist/src/src/functions/calculateFees.d.ts +3 -2
  30. package/dist/src/src/functions/vaultMetrics.d.ts +3 -0
  31. package/dist/src/src/index.d.ts +1 -0
  32. package/dist/src/src/types/index.d.ts +7 -0
  33. package/dist/src/types/index.d.ts +7 -0
  34. package/dist/src/utils/config/addresses.js +8 -8
  35. package/package.json +1 -1
@@ -0,0 +1,225 @@
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.getVaultMetrics = void 0;
52
+ var types_1 = require("../types");
53
+ // eslint-disable-next-line import/no-cycle
54
+ var vault_1 = require("./vault");
55
+ var totalBalances_1 = require("./totalBalances");
56
+ var priceFromPool_1 = require("./priceFromPool");
57
+ var vaultEvents_1 = require("./vaultEvents");
58
+ var timestamps_1 = require("../utils/timestamps");
59
+ var getPrice_1 = __importDefault(require("../utils/getPrice"));
60
+ var contracts_1 = require("../contracts");
61
+ var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
62
+ var addresses_1 = __importDefault(require("../utils/config/addresses"));
63
+ var calculateDtr_1 = require("./calculateDtr");
64
+ var calculateFees_1 = require("./calculateFees");
65
+ var calculateApr_1 = require("./calculateApr");
66
+ function getVaultMetrics(vaultAddress, jsonProvider, dex, timeIntervals) {
67
+ var _a, _b;
68
+ return __awaiter(this, void 0, void 0, function () {
69
+ var _c, chainId, vault, decimals0, decimals1, isInv, depositTokenDecimals, scarseTokenDecimals, vaultContract, arrDays, maxTimeInterval, currLpPrice, currTvl, totalAmountsBN, totalAmounts, sqrtPrice, poolAddress, poolContract, globalState, poolContract, globalState, poolContract, slot0, price, totalSupplyBN, totalSupply, e_1, rebalances, collectedFees, deposits, withdraws, vaultEvents, arrRebalances, arrOtherFees, arrDeposits, arrWithdraws, currentDtr, allDtrs, result;
70
+ var _d;
71
+ return __generator(this, function (_e) {
72
+ switch (_e.label) {
73
+ case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
74
+ case 1:
75
+ _c = _e.sent(), chainId = _c.chainId, vault = _c.vault;
76
+ return [4 /*yield*/, (0, totalBalances_1.getTokenDecimals)(vault.tokenA, jsonProvider)];
77
+ case 2:
78
+ decimals0 = _e.sent();
79
+ return [4 /*yield*/, (0, totalBalances_1.getTokenDecimals)(vault.tokenB, jsonProvider)];
80
+ case 3:
81
+ decimals1 = _e.sent();
82
+ isInv = vault.allowTokenB;
83
+ depositTokenDecimals = isInv ? decimals1 : decimals0;
84
+ scarseTokenDecimals = isInv ? decimals0 : decimals1;
85
+ vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, jsonProvider);
86
+ arrDays = timeIntervals && timeIntervals.length > 0 ? timeIntervals : [1, 7, 30];
87
+ maxTimeInterval = Math.max.apply(Math, arrDays);
88
+ currLpPrice = 0;
89
+ currTvl = 0;
90
+ _e.label = 4;
91
+ case 4:
92
+ _e.trys.push([4, 15, , 16]);
93
+ return [4 /*yield*/, vaultContract.getTotalAmounts()];
94
+ case 5:
95
+ totalAmountsBN = _e.sent();
96
+ totalAmounts = {
97
+ total0: (0, formatBigInt_1.default)(totalAmountsBN.total0, decimals0),
98
+ total1: (0, formatBigInt_1.default)(totalAmountsBN.total1, decimals1),
99
+ 0: (0, formatBigInt_1.default)(totalAmountsBN.total0, decimals0),
100
+ 1: (0, formatBigInt_1.default)(totalAmountsBN.total1, decimals1),
101
+ };
102
+ sqrtPrice = void 0;
103
+ return [4 /*yield*/, vaultContract.pool()];
104
+ case 6:
105
+ poolAddress = _e.sent();
106
+ if (!((_a = addresses_1.default[chainId][dex]) === null || _a === void 0 ? void 0 : _a.isAlgebra)) return [3 /*break*/, 11];
107
+ if (!(((_b = addresses_1.default[chainId][dex]) === null || _b === void 0 ? void 0 : _b.ammVersion) === 'algebraIntegral')) return [3 /*break*/, 8];
108
+ poolContract = (0, contracts_1.getAlgebraIntegralPoolContract)(poolAddress, jsonProvider);
109
+ return [4 /*yield*/, poolContract.globalState()];
110
+ case 7:
111
+ globalState = _e.sent();
112
+ sqrtPrice = globalState.price;
113
+ return [3 /*break*/, 10];
114
+ case 8:
115
+ poolContract = (0, contracts_1.getAlgebraPoolContract)(poolAddress, jsonProvider);
116
+ return [4 /*yield*/, poolContract.globalState()];
117
+ case 9:
118
+ globalState = _e.sent();
119
+ sqrtPrice = globalState.price;
120
+ _e.label = 10;
121
+ case 10: return [3 /*break*/, 13];
122
+ case 11:
123
+ poolContract = (0, contracts_1.getUniswapV3PoolContract)(poolAddress, jsonProvider);
124
+ return [4 /*yield*/, poolContract.slot0()];
125
+ case 12:
126
+ slot0 = _e.sent();
127
+ sqrtPrice = slot0.sqrtPriceX96;
128
+ _e.label = 13;
129
+ case 13:
130
+ price = (0, getPrice_1.default)(isInv, sqrtPrice, depositTokenDecimals, scarseTokenDecimals, 15);
131
+ currTvl = !isInv
132
+ ? Number(totalAmounts.total0) + Number(totalAmounts.total1) * price
133
+ : Number(totalAmounts.total1) + Number(totalAmounts.total0) * price;
134
+ return [4 /*yield*/, vaultContract.totalSupply()];
135
+ case 14:
136
+ totalSupplyBN = _e.sent();
137
+ totalSupply = (0, formatBigInt_1.default)(totalSupplyBN, types_1.ichiVaultDecimals);
138
+ if (Number(totalSupply) === 0) {
139
+ throw new Error("Could not get LP price. Vault total supply is 0 for vault ".concat(vaultAddress, " on chain ").concat(chainId));
140
+ }
141
+ currLpPrice = currTvl / Number(totalSupply);
142
+ return [3 /*break*/, 16];
143
+ case 15:
144
+ e_1 = _e.sent();
145
+ console.error("Could not get LP price from vault ".concat(vaultAddress, " "));
146
+ throw e_1;
147
+ case 16: return [4 /*yield*/, (0, vaultEvents_1.getRebalances)(vaultAddress, jsonProvider, dex)];
148
+ case 17:
149
+ rebalances = (_e.sent());
150
+ if (!rebalances)
151
+ throw new Error("Error getting vault rebalances on ".concat(chainId, " for ").concat(vaultAddress));
152
+ return [4 /*yield*/, (0, vaultEvents_1.getFeesCollectedEvents)(vaultAddress, jsonProvider, dex)];
153
+ case 18:
154
+ collectedFees = (_e.sent());
155
+ if (!collectedFees)
156
+ throw new Error("Error getting vault collected fees on ".concat(chainId, " for ").concat(vaultAddress));
157
+ return [4 /*yield*/, (0, vaultEvents_1.getDeposits)(vaultAddress, jsonProvider, dex)];
158
+ case 19:
159
+ deposits = (_e.sent());
160
+ if (!deposits)
161
+ throw new Error("Error getting vault deposits on ".concat(chainId, " for ").concat(vaultAddress));
162
+ return [4 /*yield*/, (0, vaultEvents_1.getWithdraws)(vaultAddress, jsonProvider, dex)];
163
+ case 20:
164
+ withdraws = (_e.sent());
165
+ if (!withdraws)
166
+ throw new Error("Error getting vault withdraws on ".concat(chainId, " for ").concat(vaultAddress));
167
+ vaultEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], deposits, true), withdraws, true), rebalances, true), collectedFees, true).sort(function (a, b) { return Number(b.createdAtTimestamp) - Number(a.createdAtTimestamp); });
168
+ arrRebalances = rebalances
169
+ .slice()
170
+ .filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(maxTimeInterval); })
171
+ .map(function (e) { return (0, calculateDtr_1.getDtrAtFeeCollectionEvent)(e, isInv, decimals0, decimals1); });
172
+ arrOtherFees = collectedFees
173
+ .slice()
174
+ .filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(maxTimeInterval); })
175
+ .map(function (e) { return (0, calculateDtr_1.getDtrAtFeeCollectionEvent)(e, isInv, decimals0, decimals1); });
176
+ arrDeposits = deposits
177
+ .slice()
178
+ .filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(maxTimeInterval); })
179
+ .map(function (e) { return (0, calculateDtr_1.getDtrAtTransactionEvent)(e, isInv, decimals0, decimals1); });
180
+ arrWithdraws = withdraws
181
+ .slice()
182
+ .filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(maxTimeInterval); })
183
+ .map(function (e) { return (0, calculateDtr_1.getDtrAtTransactionEvent)(e, isInv, decimals0, decimals1); });
184
+ _d = {
185
+ atTimestamp: Math.floor(Date.now() / 1000).toString()
186
+ };
187
+ return [4 /*yield*/, (0, priceFromPool_1.getCurrentDtr)(vaultAddress, jsonProvider, dex, isInv, decimals0, decimals1)];
188
+ case 21:
189
+ currentDtr = (_d.percent = _e.sent(),
190
+ _d);
191
+ allDtrs = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], arrDeposits, true), arrWithdraws, true), arrRebalances, true), arrOtherFees, true), [currentDtr], false).sort(function (a, b) { return Number(b.atTimestamp) - Number(a.atTimestamp); });
192
+ result = [];
193
+ arrDays.forEach(function (d) {
194
+ var objLpPrice = (0, calculateApr_1.getLpPriceAt)(vaultEvents, d, isInv, decimals0, decimals1);
195
+ var prevLpPrice = objLpPrice === null || objLpPrice === void 0 ? void 0 : objLpPrice.priceChange;
196
+ var priceChange = !prevLpPrice || prevLpPrice === 0 ? null : ((currLpPrice - prevLpPrice) / prevLpPrice) * 100;
197
+ var lpApr = !prevLpPrice
198
+ ? null
199
+ : ((currLpPrice - prevLpPrice) / ((prevLpPrice * objLpPrice.timeInterval) / 365)) * 100;
200
+ var dtrsForTimeInterval = allDtrs.filter(function (elem) { return Number(elem.atTimestamp) * 1000 >= Date.now() - (0, timestamps_1.daysToMilliseconds)(d); });
201
+ var averageDtr = (0, calculateDtr_1.getAverageDtr)(dtrsForTimeInterval);
202
+ var filteredRebalances = rebalances
203
+ .slice()
204
+ .filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(d); });
205
+ var filteredFees = collectedFees
206
+ .slice()
207
+ .filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(d); });
208
+ var totalFeesAmount = (0, calculateFees_1.getTotalFeesAmountInBaseTokens)(filteredRebalances, decimals0, decimals1, isInv) +
209
+ (0, calculateFees_1.getTotalFeesAmountInBaseTokens)(filteredFees, decimals0, decimals1, isInv);
210
+ var feeApr = d !== 0 && currTvl !== 0 ? (((totalFeesAmount / d) * 365) / currTvl) * 100 : 0;
211
+ result.push({
212
+ timeInterval: d,
213
+ lpPriceChange: priceChange,
214
+ lpApr: lpApr,
215
+ avgDtr: averageDtr,
216
+ feeApr: feeApr,
217
+ });
218
+ });
219
+ return [2 /*return*/, result];
220
+ }
221
+ });
222
+ });
223
+ }
224
+ exports.getVaultMetrics = getVaultMetrics;
225
+ //# sourceMappingURL=vaultMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultMetrics.js","sourceRoot":"","sources":["../../../src/functions/vaultMetrics.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,7 @@ var vault_1 = require("./vault");
63
63
  var addresses_1 = __importDefault(require("../utils/config/addresses"));
64
64
  var amountWithSlippage_1 = __importDefault(require("../utils/amountWithSlippage"));
65
65
  var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
66
+ var userBalances_1 = require("./userBalances");
66
67
  function approveVaultToken(accountAddress, vaultAddress, jsonProvider, dex, shares, overrides) {
67
68
  var _a, _b;
68
69
  return __awaiter(this, void 0, void 0, function () {
@@ -109,60 +110,64 @@ function approveVaultToken(accountAddress, vaultAddress, jsonProvider, dex, shar
109
110
  });
110
111
  }
111
112
  exports.approveVaultToken = approveVaultToken;
112
- function isVaultTokenApproved(accountAddress, shares, vaultAddress, jsonProvider, dex) {
113
+ // eslint-disable-next-line no-underscore-dangle
114
+ function _isVaultTokenApproved(accountAddress, shares, vault, chainId, jsonProvider, dex) {
113
115
  var _a;
114
116
  return __awaiter(this, void 0, void 0, function () {
115
- var chainId, signer, vault, vaultTokenContract, depositGuardAddress, currentAllowanceBN, vaultTokenDecimals, currentAllowance;
117
+ var signer, vaultTokenContract, depositGuardAddress, currentAllowanceBN, vaultTokenDecimals, currentAllowance;
116
118
  return __generator(this, function (_b) {
117
119
  switch (_b.label) {
118
- case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
119
- case 1:
120
- chainId = (_b.sent()).chainId;
121
- if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
122
- throw new Error("Unsupported chainId: ".concat(chainId));
123
- }
120
+ case 0:
124
121
  signer = jsonProvider.getSigner(accountAddress);
125
- return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress, jsonProvider)];
126
- case 2:
127
- vault = _b.sent();
128
- if (!vault)
129
- throw new Error("Vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
130
- vaultTokenContract = (0, contracts_1.getERC20Contract)(vaultAddress, signer);
122
+ vaultTokenContract = (0, contracts_1.getERC20Contract)(vault.id, signer);
131
123
  depositGuardAddress = (_a = addresses_1.default[chainId][dex]) === null || _a === void 0 ? void 0 : _a.depositGuard.address;
132
124
  if (!depositGuardAddress) {
133
- throw new Error("Deposit Guard for vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
125
+ throw new Error("Deposit Guard for vault ".concat(vault.id, " not found on chain ").concat(chainId, " and dex ").concat(dex));
134
126
  }
135
127
  return [4 /*yield*/, vaultTokenContract.allowance(accountAddress, depositGuardAddress)];
136
- case 3:
128
+ case 1:
137
129
  currentAllowanceBN = _b.sent();
138
130
  vaultTokenDecimals = types_1.ichiVaultDecimals;
139
131
  currentAllowance = +(0, formatBigInt_1.default)(currentAllowanceBN, vaultTokenDecimals);
132
+ console.log({ currentAllowance: currentAllowance });
140
133
  return [2 /*return*/, currentAllowance !== 0 && currentAllowance >= +(shares !== null && shares !== void 0 ? shares : 0)];
141
134
  }
142
135
  });
143
136
  });
144
137
  }
138
+ function isVaultTokenApproved(accountAddress, shares, vaultAddress, jsonProvider, dex) {
139
+ return __awaiter(this, void 0, void 0, function () {
140
+ var _a, chainId, vault;
141
+ return __generator(this, function (_b) {
142
+ switch (_b.label) {
143
+ case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
144
+ case 1:
145
+ _a = _b.sent(), chainId = _a.chainId, vault = _a.vault;
146
+ return [2 /*return*/, _isVaultTokenApproved(accountAddress, shares, vault, chainId, jsonProvider, dex)];
147
+ }
148
+ });
149
+ });
150
+ }
145
151
  exports.isVaultTokenApproved = isVaultTokenApproved;
146
152
  function withdraw(accountAddress, shares, vaultAddress, jsonProvider, dex, overrides) {
147
153
  var _a;
148
154
  return __awaiter(this, void 0, void 0, function () {
149
- var chainId, signer, vaultContract, vault, params, gasLimit, _b, _c;
155
+ var chainId, signer, vaultContract, userShares, withdrawShares, params, gasLimit, _b, _c;
150
156
  var _d;
151
157
  return __generator(this, function (_e) {
152
158
  switch (_e.label) {
153
- case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
159
+ case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
154
160
  case 1:
155
161
  chainId = (_e.sent()).chainId;
156
- if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
157
- throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
158
- }
159
162
  signer = jsonProvider.getSigner(accountAddress);
160
163
  vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, signer);
161
- return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress, jsonProvider)];
164
+ userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
165
+ withdrawShares = shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18);
166
+ return [4 /*yield*/, userShares];
162
167
  case 2:
163
- vault = _e.sent();
164
- if (!vault)
165
- throw new Error("Vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
168
+ if ((_e.sent()).lt(withdrawShares)) {
169
+ throw new Error("Withdraw amount exceeds user shares amount in vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
170
+ }
166
171
  params = [
167
172
  shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18),
168
173
  accountAddress,
@@ -189,39 +194,44 @@ function withdrawWithSlippage(accountAddress, shares, vaultAddress, jsonProvider
189
194
  var _a, _b, _c, _d;
190
195
  if (percentSlippage === void 0) { percentSlippage = 1; }
191
196
  return __awaiter(this, void 0, void 0, function () {
192
- var chainId, signer, vault, vaultDeployerAddress, withdrawShares, depositGuardAddress, depositGuardContract, amounts, gasLimit, _e, _f, tx;
193
- return __generator(this, function (_g) {
194
- switch (_g.label) {
195
- case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
197
+ var _e, chainId, vault, signer, vaultDeployerAddress, depositGuardAddress, userShares, withdrawShares, strShares, isApproved, depositGuardContract, amounts, gasLimit, _f, _g, tx;
198
+ return __generator(this, function (_h) {
199
+ switch (_h.label) {
200
+ case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
196
201
  case 1:
197
- chainId = (_g.sent()).chainId;
198
- if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
199
- throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
200
- }
202
+ _e = _h.sent(), chainId = _e.chainId, vault = _e.vault;
201
203
  if (((_a = addresses_1.default[chainId][dex]) === null || _a === void 0 ? void 0 : _a.depositGuard.version) !== 2) {
202
204
  throw new Error("Unsupported function for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
203
205
  }
204
206
  signer = jsonProvider.getSigner(accountAddress);
205
- return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress, jsonProvider)];
206
- case 2:
207
- vault = _g.sent();
208
- if (!vault)
209
- throw new Error("Vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
210
207
  vaultDeployerAddress = (_b = addresses_1.default[chainId][dex]) === null || _b === void 0 ? void 0 : _b.vaultDeployerAddress;
211
208
  if (!vaultDeployerAddress) {
212
209
  throw new Error("Vault deployer not found for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
213
210
  }
214
- withdrawShares = shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18);
215
211
  depositGuardAddress = (_c = addresses_1.default[chainId][dex]) === null || _c === void 0 ? void 0 : _c.depositGuard.address;
216
212
  if (!depositGuardAddress) {
217
213
  throw new Error("Deposit Guard for vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
218
214
  }
215
+ userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
216
+ withdrawShares = shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18);
217
+ return [4 /*yield*/, userShares];
218
+ case 2:
219
+ if ((_h.sent()).lt(withdrawShares)) {
220
+ throw new Error("Withdraw amount exceeds user shares amount in vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
221
+ }
222
+ strShares = shares instanceof ethers_1.BigNumber ? (0, formatBigInt_1.default)(shares, types_1.ichiVaultDecimals) : shares.toString();
223
+ return [4 /*yield*/, _isVaultTokenApproved(accountAddress, strShares, vault, chainId, jsonProvider, dex)];
224
+ case 3:
225
+ isApproved = _h.sent();
226
+ if (!isApproved) {
227
+ throw new Error("Vault token transfer is not approved for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
228
+ }
219
229
  depositGuardContract = (0, contracts_1.getDepositGuardContract)(depositGuardAddress, signer);
220
230
  return [4 /*yield*/, depositGuardContract.callStatic.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, ethers_1.BigNumber.from(0), ethers_1.BigNumber.from(0), {
221
231
  gasLimit: 5e6, // the deposit via guard tx should never exceed 5e6
222
232
  })];
223
- case 3:
224
- amounts = _g.sent();
233
+ case 4:
234
+ amounts = _h.sent();
225
235
  // reduce the estimated LP amount by an acceptable slippage %, default - 1%
226
236
  if (percentSlippage < 0.01)
227
237
  throw new Error('Slippage parameter is less than 0.01%.');
@@ -233,20 +243,20 @@ function withdrawWithSlippage(accountAddress, shares, vaultAddress, jsonProvider
233
243
  amount0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
234
244
  amount1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
235
245
  };
236
- if (!((_d = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _d !== void 0)) return [3 /*break*/, 4];
237
- _e = _d;
238
- return [3 /*break*/, 6];
239
- case 4:
240
- _f = calculateGasMargin_1.default;
241
- return [4 /*yield*/, depositGuardContract.estimateGas.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1])];
246
+ if (!((_d = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _d !== void 0)) return [3 /*break*/, 5];
247
+ _f = _d;
248
+ return [3 /*break*/, 7];
242
249
  case 5:
243
- _e = _f.apply(void 0, [_g.sent()]);
244
- _g.label = 6;
250
+ _g = calculateGasMargin_1.default;
251
+ return [4 /*yield*/, depositGuardContract.estimateGas.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1])];
245
252
  case 6:
246
- gasLimit = _e;
247
- return [4 /*yield*/, depositGuardContract.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1], __assign(__assign({}, overrides), { gasLimit: gasLimit }))];
253
+ _f = _g.apply(void 0, [_h.sent()]);
254
+ _h.label = 7;
248
255
  case 7:
249
- tx = _g.sent();
256
+ gasLimit = _f;
257
+ return [4 /*yield*/, depositGuardContract.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1], __assign(__assign({}, overrides), { gasLimit: gasLimit }))];
258
+ case 8:
259
+ tx = _h.sent();
250
260
  return [2 /*return*/, tx];
251
261
  }
252
262
  });
@@ -257,45 +267,51 @@ function withdrawNativeToken(accountAddress, shares, vaultAddress, jsonProvider,
257
267
  var _a, _b, _c, _d;
258
268
  if (percentSlippage === void 0) { percentSlippage = 1; }
259
269
  return __awaiter(this, void 0, void 0, function () {
260
- var chainId, signer, vault, vaultDeployerAddress, withdrawShares, depositGuardAddress, depositGuardContract, wrappedNative, amounts, gasLimit, _e, _f, tx;
261
- return __generator(this, function (_g) {
262
- switch (_g.label) {
263
- case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
270
+ var _e, chainId, vault, signer, vaultDeployerAddress, userShares, withdrawShares, strShares, isApproved, depositGuardAddress, depositGuardContract, wrappedNative, amounts, gasLimit, _f, _g, tx;
271
+ return __generator(this, function (_h) {
272
+ switch (_h.label) {
273
+ case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
264
274
  case 1:
265
- chainId = (_g.sent()).chainId;
266
- if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
267
- throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
268
- }
275
+ _e = _h.sent(), chainId = _e.chainId, vault = _e.vault;
269
276
  if (((_a = addresses_1.default[chainId][dex]) === null || _a === void 0 ? void 0 : _a.depositGuard.version) !== 2) {
270
277
  throw new Error("Unsupported function for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
271
278
  }
272
279
  signer = jsonProvider.getSigner(accountAddress);
273
- return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress, jsonProvider)];
274
- case 2:
275
- vault = _g.sent();
276
- if (!vault)
277
- throw new Error("Vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
278
280
  vaultDeployerAddress = (_b = addresses_1.default[chainId][dex]) === null || _b === void 0 ? void 0 : _b.vaultDeployerAddress;
279
281
  if (!vaultDeployerAddress) {
280
282
  throw new Error("Vault deployer not found for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
281
283
  }
284
+ userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
282
285
  withdrawShares = shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18);
286
+ return [4 /*yield*/, userShares];
287
+ case 2:
288
+ if ((_h.sent()).lt(withdrawShares)) {
289
+ throw new Error("Withdraw amount exceeds user shares amount in vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
290
+ }
291
+ strShares = shares instanceof ethers_1.BigNumber ? (0, formatBigInt_1.default)(shares, types_1.ichiVaultDecimals) : shares.toString();
292
+ return [4 /*yield*/, _isVaultTokenApproved(accountAddress, strShares, vault, chainId, jsonProvider, dex)];
293
+ case 3:
294
+ isApproved = _h.sent();
295
+ if (!isApproved) {
296
+ throw new Error("Vault token transfer is not approved for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
297
+ }
283
298
  depositGuardAddress = (_c = addresses_1.default[chainId][dex]) === null || _c === void 0 ? void 0 : _c.depositGuard.address;
284
299
  if (!depositGuardAddress) {
285
300
  throw new Error("Deposit Guard for vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
286
301
  }
287
302
  depositGuardContract = (0, contracts_1.getDepositGuardContract)(depositGuardAddress, signer);
288
303
  return [4 /*yield*/, depositGuardContract.WRAPPED_NATIVE()];
289
- case 3:
290
- wrappedNative = _g.sent();
291
- if (wrappedNative !== vault.tokenA && wrappedNative !== vault.tokenB) {
304
+ case 4:
305
+ wrappedNative = _h.sent();
306
+ if (wrappedNative.toLowerCase() !== vault.tokenA.toLowerCase() &&
307
+ wrappedNative.toLowerCase() !== vault.tokenB.toLowerCase()) {
292
308
  throw new Error('None of vault tokens is wrapped native token');
293
309
  }
294
310
  return [4 /*yield*/, depositGuardContract.callStatic.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, ethers_1.BigNumber.from(0), ethers_1.BigNumber.from(0), {
295
311
  gasLimit: 5e6, // the deposit via guard tx should never exceed 5e6
296
312
  })];
297
- case 4:
298
- amounts = _g.sent();
313
+ case 5:
314
+ amounts = _h.sent();
299
315
  // reduce the estimated LP amount by an acceptable slippage %, default - 1%
300
316
  if (percentSlippage < 0.01)
301
317
  throw new Error('Slippage parameter is less than 0.01%.');
@@ -307,20 +323,20 @@ function withdrawNativeToken(accountAddress, shares, vaultAddress, jsonProvider,
307
323
  amount0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
308
324
  amount1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
309
325
  };
310
- if (!((_d = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _d !== void 0)) return [3 /*break*/, 5];
311
- _e = _d;
312
- return [3 /*break*/, 7];
313
- case 5:
314
- _f = calculateGasMargin_1.default;
315
- return [4 /*yield*/, depositGuardContract.estimateGas.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1])];
326
+ if (!((_d = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _d !== void 0)) return [3 /*break*/, 6];
327
+ _f = _d;
328
+ return [3 /*break*/, 8];
316
329
  case 6:
317
- _e = _f.apply(void 0, [_g.sent()]);
318
- _g.label = 7;
330
+ _g = calculateGasMargin_1.default;
331
+ return [4 /*yield*/, depositGuardContract.estimateGas.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1])];
319
332
  case 7:
320
- gasLimit = _e;
321
- return [4 /*yield*/, depositGuardContract.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1], __assign(__assign({}, overrides), { gasLimit: gasLimit }))];
333
+ _f = _g.apply(void 0, [_h.sent()]);
334
+ _h.label = 8;
322
335
  case 8:
323
- tx = _g.sent();
336
+ gasLimit = _f;
337
+ return [4 /*yield*/, depositGuardContract.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1], __assign(__assign({}, overrides), { gasLimit: gasLimit }))];
338
+ case 9:
339
+ tx = _h.sent();
324
340
  return [2 /*return*/, tx];
325
341
  }
326
342
  });
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/functions/withdraw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/functions/withdraw.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @license
4
4
  * author: ICHI DAO <core@ichi.org>
5
- * ichi-vaults-sdk.js v0.0.35
5
+ * ichi-vaults-sdk.js v0.0.37
6
6
  * Released under the MIT license.
7
7
  */
8
8
 
@@ -10,7 +10,6 @@
10
10
 
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  var tslib_1 = require("tslib");
13
- /* eslint-disable import/prefer-default-export */
14
13
  // eslint-disable-next-line import/no-cycle
15
14
  tslib_1.__exportStar(require("./functions/totalBalances"), exports);
16
15
  tslib_1.__exportStar(require("./functions/userBalances"), exports);
@@ -20,4 +19,5 @@ tslib_1.__exportStar(require("./functions/vault"), exports);
20
19
  tslib_1.__exportStar(require("./functions/calculateFees"), exports);
21
20
  tslib_1.__exportStar(require("./functions/calculateDtr"), exports);
22
21
  tslib_1.__exportStar(require("./functions/calculateApr"), exports);
22
+ tslib_1.__exportStar(require("./functions/vaultMetrics"), exports);
23
23
  tslib_1.__exportStar(require("./types/index"), exports);