@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.
- package/README.md +68 -6
- package/dist/src/__tests__/index.test.js +128 -46
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/functions/calculateApr.d.ts +2 -1
- package/dist/src/functions/calculateApr.js +3 -2
- package/dist/src/functions/calculateApr.js.map +1 -1
- package/dist/src/functions/calculateDtr.d.ts +5 -1
- package/dist/src/functions/calculateDtr.js +5 -1
- package/dist/src/functions/calculateDtr.js.map +1 -1
- package/dist/src/functions/calculateFees.d.ts +3 -2
- package/dist/src/functions/calculateFees.js +2 -1
- package/dist/src/functions/calculateFees.js.map +1 -1
- package/dist/src/functions/deposit.js +100 -78
- package/dist/src/functions/deposit.js.map +1 -1
- package/dist/src/functions/userBalances.js +22 -14
- package/dist/src/functions/userBalances.js.map +1 -1
- package/dist/src/functions/vaultMetrics.d.ts +3 -0
- package/dist/src/functions/vaultMetrics.js +225 -0
- package/dist/src/functions/vaultMetrics.js.map +1 -0
- package/dist/src/functions/withdraw.js +97 -81
- package/dist/src/functions/withdraw.js.map +1 -1
- package/dist/src/index.cjs.js +2 -2
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.esm.js +2 -2
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/src/functions/calculateApr.d.ts +2 -1
- package/dist/src/src/functions/calculateDtr.d.ts +5 -1
- package/dist/src/src/functions/calculateFees.d.ts +3 -2
- package/dist/src/src/functions/vaultMetrics.d.ts +3 -0
- package/dist/src/src/index.d.ts +1 -0
- package/dist/src/src/types/index.d.ts +7 -0
- package/dist/src/types/index.d.ts +7 -0
- package/dist/src/utils/config/addresses.js +8 -8
- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,kCASkB;AAClB,2CAA2C;AAC3C,iCAA4C;AAC5C,iDAAmD;AACnD,iDAAgD;AAChD,6CAAiG;AACjG,kDAAyD;AACzD,+DAAyC;AACzC,0CAKsB;AACtB,uEAAiD;AACjD,wEAAsD;AACtD,+CAAqG;AACrG,iDAAiE;AACjE,+CAA8C;AAE9C,SAAsB,eAAe,CACnC,YAAoB,EACpB,YAA6B,EAC7B,GAAiB,EACjB,aAAwB;;;;;;;wBAEG,qBAAM,IAAA,yBAAiB,EAAC,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,EAAA;;oBAA7E,KAAqB,SAAwD,EAA3E,OAAO,aAAA,EAAE,KAAK,WAAA;oBAEJ,qBAAM,IAAA,gCAAgB,EAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAA;;oBAA9D,SAAS,GAAG,SAAkD;oBAClD,qBAAM,IAAA,gCAAgB,EAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAA;;oBAA9D,SAAS,GAAG,SAAkD;oBAC9D,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;oBAC1B,oBAAoB,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;oBACrD,mBAAmB,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpD,aAAa,GAAG,IAAA,gCAAoB,EAAC,YAAY,EAAE,YAAY,CAAC,CAAC;oBAGjE,OAAO,GAAG,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjF,eAAe,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,OAAO,CAAC,CAAC;oBAGzC,WAAW,GAAG,CAAC,CAAC;oBAChB,OAAO,GAAG,CAAC,CAAC;;;;oBAES,qBAAM,aAAa,CAAC,eAAe,EAAE,EAAA;;oBAAtD,cAAc,GAAG,SAAqC;oBACtD,YAAY,GAAG;wBACnB,MAAM,EAAE,IAAA,sBAAY,EAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;wBACtD,MAAM,EAAE,IAAA,sBAAY,EAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;wBACtD,CAAC,EAAE,IAAA,sBAAY,EAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;wBACjD,CAAC,EAAE,IAAA,sBAAY,EAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;qBAClC,CAAC;oBAEd,SAAS,SAAW,CAAC;oBACG,qBAAM,aAAa,CAAC,IAAI,EAAE,EAAA;;oBAAhD,WAAW,GAAW,SAA0B;yBAElD,CAAA,MAAA,mBAAa,CAAC,OAA2B,CAAE,CAAC,GAAG,CAAC,0CAAE,SAAS,CAAA,EAA3D,yBAA2D;yBACzD,CAAA,CAAA,MAAA,mBAAa,CAAC,OAA2B,CAAE,CAAC,GAAG,CAAC,0CAAE,UAAU,MAAK,iBAAiB,CAAA,EAAlF,wBAAkF;oBAC9E,YAAY,GAAG,IAAA,0CAA8B,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oBAC3D,qBAAM,YAAY,CAAC,WAAW,EAAE,EAAA;;oBAA9C,WAAW,GAAG,SAAgC;oBACpD,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;;;oBAExB,YAAY,GAAG,IAAA,kCAAsB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oBACnD,qBAAM,YAAY,CAAC,WAAW,EAAE,EAAA;;oBAA9C,WAAW,GAAG,SAAgC;oBACpD,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;;;;oBAG1B,YAAY,GAAG,IAAA,oCAAwB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oBAC3D,qBAAM,YAAY,CAAC,KAAK,EAAE,EAAA;;oBAAlC,KAAK,GAAG,SAA0B;oBACxC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;;;oBAE3B,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;oBACxF,OAAO,GAAG,CAAC,KAAK;wBACd,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,KAAK;wBACnE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBAEhD,qBAAM,aAAa,CAAC,WAAW,EAAE,EAAA;;oBAAjD,aAAa,GAAG,SAAiC;oBACjD,WAAW,GAAG,IAAA,sBAAY,EAAC,aAAa,EAAE,yBAAiB,CAAC,CAAC;oBAEnE,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;wBAC7B,MAAM,IAAI,KAAK,CAAC,oEAA6D,YAAY,uBAAa,OAAO,CAAE,CAAC,CAAC;qBAClH;oBAED,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;;;;oBAE5C,OAAO,CAAC,KAAK,CAAC,4CAAqC,YAAY,MAAG,CAAC,CAAC;oBACpE,MAAM,GAAC,CAAC;yBAGU,qBAAM,IAAA,2BAAa,EAAC,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,EAAA;;oBAAlE,UAAU,GAAG,CAAC,SAAoD,CAAW;oBACnF,IAAI,CAAC,UAAU;wBAAE,MAAM,IAAI,KAAK,CAAC,4CAAqC,OAAO,kBAAQ,YAAY,CAAE,CAAC,CAAC;oBAC9E,qBAAM,IAAA,oCAAsB,EAAC,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,EAAA;;oBAA9E,aAAa,GAAG,CAAC,SAA6D,CAAW;oBAC/F,IAAI,CAAC,aAAa;wBAAE,MAAM,IAAI,KAAK,CAAC,gDAAyC,OAAO,kBAAQ,YAAY,CAAE,CAAC,CAAC;oBAC1F,qBAAM,IAAA,yBAAW,EAAC,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,EAAA;;oBAA9D,QAAQ,GAAG,CAAC,SAAkD,CAA4B;oBAChG,IAAI,CAAC,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,0CAAmC,OAAO,kBAAQ,YAAY,CAAE,CAAC,CAAC;oBAC9E,qBAAM,IAAA,0BAAY,EAAC,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,EAAA;;oBAAhE,SAAS,GAAG,CAAC,SAAmD,CAA4B;oBAClG,IAAI,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,2CAAoC,OAAO,kBAAQ,YAAY,CAAE,CAAC,CAAC;oBAE7F,WAAW,GAAG,4DAAI,QAAQ,SAAK,SAAS,SAAK,UAAU,SAAK,aAAa,QAAE,IAAI,CACnF,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAA3D,CAA2D,CACtE,CAAC;oBAEI,aAAa,GAAG,UAAU;yBAC7B,KAAK,EAAE;yBACP,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,+BAAkB,EAAC,eAAe,CAAC,EAAtF,CAAsF,CAAC;yBACrG,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAA,yCAA0B,EAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAA1D,CAA0D,CAAC,CAAC;oBACpE,YAAY,GAAG,aAAa;yBAC/B,KAAK,EAAE;yBACP,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,+BAAkB,EAAC,eAAe,CAAC,EAAtF,CAAsF,CAAC;yBACrG,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAA,yCAA0B,EAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAA1D,CAA0D,CAAC,CAAC;oBACpE,WAAW,GAAG,QAAQ;yBACzB,KAAK,EAAE;yBACP,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,+BAAkB,EAAC,eAAe,CAAC,EAAtF,CAAsF,CAAC;yBACrG,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAA,uCAAwB,EAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAxD,CAAwD,CAAC,CAAC;oBAClE,YAAY,GAAG,SAAS;yBAC3B,KAAK,EAAE;yBACP,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,+BAAkB,EAAC,eAAe,CAAC,EAAtF,CAAsF,CAAC;yBACrG,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAA,uCAAwB,EAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAxD,CAAwD,CAAC,CAAC;;wBAEtE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE;;oBAC5C,qBAAM,IAAA,6BAAa,EAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAA;;oBAFtF,UAAU,GAAG,CAEjB,UAAO,GAAE,SAAiF;0BACtE,CAAA;oBAEhB,OAAO,GAAG,0EAAI,WAAW,SAAK,YAAY,SAAK,aAAa,SAAK,YAAY,UAAE,UAAU,UAAE,IAAI,CACnG,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,EAA7C,CAA6C,CACxD,CAAC;oBAEI,MAAM,GAAG,EAAoB,CAAC;oBAEpC,OAAO,CAAC,OAAO,CAAC,UAAC,CAAC;wBAChB,IAAM,UAAU,GAAG,IAAA,2BAAY,EAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;wBAC7E,IAAM,WAAW,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAC;wBAC5C,IAAM,WAAW,GAAG,CAAC,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;wBAEjH,IAAM,KAAK,GAAG,CAAC,WAAW;4BACxB,CAAC,CAAC,IAAI;4BACN,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;wBAE1F,IAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CACxC,UAAC,IAAI,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,+BAAkB,EAAC,CAAC,CAAC,EAArE,CAAqE,CAChF,CAAC;wBACF,IAAM,UAAU,GAAG,IAAA,4BAAa,EAAC,mBAAmB,CAAC,CAAC;wBAEtD,IAAM,kBAAkB,GAAG,UAAU;6BAClC,KAAK,EAAE;6BACP,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,+BAAkB,EAAC,CAAC,CAAC,EAAxE,CAAwE,CAAC,CAAC;wBAC3F,IAAM,YAAY,GAAG,aAAa;6BAC/B,KAAK,EAAE;6BACP,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,+BAAkB,EAAC,CAAC,CAAC,EAAxE,CAAwE,CAAC,CAAC;wBAC3F,IAAM,eAAe,GACnB,IAAA,8CAA8B,EAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;4BAC/E,IAAA,8CAA8B,EAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBAC5E,IAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAE9F,MAAM,CAAC,IAAI,CAAC;4BACV,YAAY,EAAE,CAAC;4BACf,aAAa,EAAE,WAAW;4BAC1B,KAAK,OAAA;4BACL,MAAM,EAAE,UAAU;4BAClB,MAAM,QAAA;yBACP,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,sBAAO,MAAM,EAAC;;;;CACf;AA7ID,0CA6IC"}
|
@@ -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
|
-
|
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
|
117
|
+
var signer, vaultTokenContract, depositGuardAddress, currentAllowanceBN, vaultTokenDecimals, currentAllowance;
|
116
118
|
return __generator(this, function (_b) {
|
117
119
|
switch (_b.label) {
|
118
|
-
case 0:
|
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
|
-
|
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(
|
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
|
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,
|
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*/,
|
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
|
-
|
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
|
-
|
164
|
-
|
165
|
-
|
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
|
193
|
-
return __generator(this, function (
|
194
|
-
switch (
|
195
|
-
case 0: return [4 /*yield*/,
|
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
|
-
|
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
|
224
|
-
amounts =
|
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*/,
|
237
|
-
|
238
|
-
return [3 /*break*/,
|
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
|
-
|
244
|
-
|
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
|
-
|
247
|
-
|
253
|
+
_f = _g.apply(void 0, [_h.sent()]);
|
254
|
+
_h.label = 7;
|
248
255
|
case 7:
|
249
|
-
|
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
|
261
|
-
return __generator(this, function (
|
262
|
-
switch (
|
263
|
-
case 0: return [4 /*yield*/,
|
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
|
-
|
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
|
290
|
-
wrappedNative =
|
291
|
-
if (wrappedNative !== vault.tokenA
|
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
|
298
|
-
amounts =
|
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*/,
|
311
|
-
|
312
|
-
return [3 /*break*/,
|
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
|
-
|
318
|
-
|
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
|
-
|
321
|
-
|
333
|
+
_f = _g.apply(void 0, [_h.sent()]);
|
334
|
+
_h.label = 8;
|
322
335
|
case 8:
|
323
|
-
|
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":";AAAA,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIjD,iCAAmC;AACnC,sDAAsD;AACtD,0CAA+F;AAC/F,qEAA+C;AAC/C,
|
1
|
+
{"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/functions/withdraw.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.cjs.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
/**
|
3
3
|
* @license
|
4
4
|
* author: ICHI DAO <core@ichi.org>
|
5
|
-
* ichi-vaults-sdk.js v0.0.
|
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);
|