@curvefi/api 2.8.1 → 2.8.4
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/lib/constants/abis/atricrypto3/base_pool_zap.json +216 -0
- package/lib/constants/abis/gauge_v5.json +1 -1
- package/lib/factory/common.d.ts +1 -0
- package/lib/factory/common.js +12 -1
- package/lib/factory/constants.js +5 -0
- package/lib/factory/factory-api.js +101 -30
- package/lib/factory/factory-crypto.js +75 -22
- package/lib/factory/factory.js +31 -12
- package/lib/pools/PoolTemplate.d.ts +1 -0
- package/lib/pools/PoolTemplate.js +577 -503
- package/lib/pools/mixins/common.d.ts +1 -0
- package/lib/pools/mixins/common.js +30 -1
- package/lib/pools/mixins/poolBalancesMixin.js +14 -6
- package/lib/pools/mixins/withdrawExpectedMixins.js +17 -15
- package/lib/pools/poolConstructor.js +1 -1
- package/lib/utils.js +3 -3
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { ethers } from "ethers";
|
|
2
2
|
import { PoolTemplate } from "../PoolTemplate";
|
|
3
3
|
export declare function _calcExpectedAmounts(this: PoolTemplate, _lpTokenAmount: ethers.BigNumber): Promise<ethers.BigNumber[]>;
|
|
4
|
+
export declare function _atricrypto3CalcExpectedAmounts(this: PoolTemplate, _lpTokenAmount: ethers.BigNumber): Promise<ethers.BigNumber[]>;
|
|
@@ -35,8 +35,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
+
var __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
|
+
};
|
|
38
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports._calcExpectedAmounts = void 0;
|
|
48
|
+
exports._atricrypto3CalcExpectedAmounts = exports._calcExpectedAmounts = void 0;
|
|
49
|
+
var PoolTemplate_1 = require("../PoolTemplate");
|
|
40
50
|
var curve_1 = require("../../curve");
|
|
41
51
|
var utils_1 = require("../../utils");
|
|
42
52
|
function _calcExpectedAmounts(_lpTokenAmount) {
|
|
@@ -75,3 +85,22 @@ function _calcExpectedAmounts(_lpTokenAmount) {
|
|
|
75
85
|
});
|
|
76
86
|
}
|
|
77
87
|
exports._calcExpectedAmounts = _calcExpectedAmounts;
|
|
88
|
+
function _atricrypto3CalcExpectedAmounts(_lpTokenAmount) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
90
|
+
var _expectedWrappedAmounts, _expectedMetaCoinAmount, _expectedUnderlyingAmounts, basePool, _basePoolExpectedAmounts;
|
|
91
|
+
return __generator(this, function (_a) {
|
|
92
|
+
switch (_a.label) {
|
|
93
|
+
case 0: return [4 /*yield*/, _calcExpectedAmounts.call(this, _lpTokenAmount)];
|
|
94
|
+
case 1:
|
|
95
|
+
_expectedWrappedAmounts = _a.sent();
|
|
96
|
+
_expectedMetaCoinAmount = _expectedWrappedAmounts[0], _expectedUnderlyingAmounts = _expectedWrappedAmounts.slice(1);
|
|
97
|
+
basePool = new PoolTemplate_1.PoolTemplate(this.basePool);
|
|
98
|
+
return [4 /*yield*/, _calcExpectedAmounts.call(basePool, _expectedMetaCoinAmount)];
|
|
99
|
+
case 2:
|
|
100
|
+
_basePoolExpectedAmounts = _a.sent();
|
|
101
|
+
return [2 /*return*/, __spreadArray(__spreadArray([], _basePoolExpectedAmounts, true), _expectedUnderlyingAmounts, true)];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
exports._atricrypto3CalcExpectedAmounts = _atricrypto3CalcExpectedAmounts;
|
|
@@ -80,22 +80,30 @@ exports.poolBalancesAtricrypto3Mixin = {
|
|
|
80
80
|
exports.poolBalancesMetaMixin = {
|
|
81
81
|
statsUnderlyingBalances: function () {
|
|
82
82
|
return __awaiter(this, void 0, void 0, function () {
|
|
83
|
-
var swapContract, contractCalls, _poolWrappedBalances, _poolMetaCoinBalance, _poolNonMetaBalance, basePool, _basePoolExpectedAmounts, _poolUnderlyingBalances;
|
|
83
|
+
var swapContract, contractCalls, _poolWrappedBalances, _poolMetaCoinBalance, _poolNonMetaBalance, basePool, _basePoolExpectedAmounts, _a, _poolUnderlyingBalances;
|
|
84
84
|
var _this = this;
|
|
85
|
-
return __generator(this, function (
|
|
86
|
-
switch (
|
|
85
|
+
return __generator(this, function (_c) {
|
|
86
|
+
switch (_c.label) {
|
|
87
87
|
case 0:
|
|
88
88
|
swapContract = curve_1.curve.contracts[this.address].multicallContract;
|
|
89
89
|
contractCalls = this.wrappedCoins.map(function (_, i) { return swapContract.balances(i); });
|
|
90
90
|
return [4 /*yield*/, curve_1.curve.multicallProvider.all(contractCalls)];
|
|
91
91
|
case 1:
|
|
92
|
-
_poolWrappedBalances =
|
|
92
|
+
_poolWrappedBalances = _c.sent();
|
|
93
93
|
_poolWrappedBalances.unshift(_poolWrappedBalances.pop());
|
|
94
94
|
_poolMetaCoinBalance = _poolWrappedBalances[0], _poolNonMetaBalance = _poolWrappedBalances.slice(1);
|
|
95
95
|
basePool = new PoolTemplate_1.PoolTemplate(this.basePool);
|
|
96
|
-
return [
|
|
96
|
+
if (!(this.basePool === "atricrypto3")) return [3 /*break*/, 3];
|
|
97
|
+
return [4 /*yield*/, common_1._atricrypto3CalcExpectedAmounts.call(basePool, _poolMetaCoinBalance)];
|
|
97
98
|
case 2:
|
|
98
|
-
|
|
99
|
+
_a = _c.sent();
|
|
100
|
+
return [3 /*break*/, 5];
|
|
101
|
+
case 3: return [4 /*yield*/, common_1._calcExpectedAmounts.call(basePool, _poolMetaCoinBalance)];
|
|
102
|
+
case 4:
|
|
103
|
+
_a = _c.sent();
|
|
104
|
+
_c.label = 5;
|
|
105
|
+
case 5:
|
|
106
|
+
_basePoolExpectedAmounts = _a;
|
|
99
107
|
_poolUnderlyingBalances = __spreadArray(__spreadArray([], _poolNonMetaBalance, true), _basePoolExpectedAmounts, true);
|
|
100
108
|
return [2 /*return*/, _poolUnderlyingBalances.map(function (_b, i) { return ethers_1.ethers.utils.formatUnits(_b, _this.underlyingDecimals[i]); })];
|
|
101
109
|
}
|
|
@@ -96,21 +96,29 @@ exports.withdrawExpectedLendingOrCryptoMixin = {
|
|
|
96
96
|
exports.withdrawExpectedMetaMixin = {
|
|
97
97
|
withdrawExpected: function (lpTokenAmount) {
|
|
98
98
|
return __awaiter(this, void 0, void 0, function () {
|
|
99
|
-
var _lpTokenAmount, _expectedWrappedAmounts, _expectedMetaCoinAmount, _expectedUnderlyingAmounts, basePool, _basePoolExpectedAmounts, _expected;
|
|
99
|
+
var _lpTokenAmount, _expectedWrappedAmounts, _expectedMetaCoinAmount, _expectedUnderlyingAmounts, basePool, _basePoolExpectedAmounts, _a, _expected;
|
|
100
100
|
var _this = this;
|
|
101
|
-
return __generator(this, function (
|
|
102
|
-
switch (
|
|
101
|
+
return __generator(this, function (_b) {
|
|
102
|
+
switch (_b.label) {
|
|
103
103
|
case 0:
|
|
104
104
|
_lpTokenAmount = (0, utils_1.parseUnits)(lpTokenAmount);
|
|
105
105
|
return [4 /*yield*/, common_1._calcExpectedAmounts.call(this, _lpTokenAmount)];
|
|
106
106
|
case 1:
|
|
107
|
-
_expectedWrappedAmounts =
|
|
107
|
+
_expectedWrappedAmounts = _b.sent();
|
|
108
108
|
_expectedWrappedAmounts.unshift(_expectedWrappedAmounts.pop());
|
|
109
109
|
_expectedMetaCoinAmount = _expectedWrappedAmounts[0], _expectedUnderlyingAmounts = _expectedWrappedAmounts.slice(1);
|
|
110
110
|
basePool = new PoolTemplate_1.PoolTemplate(this.basePool);
|
|
111
|
-
return [
|
|
111
|
+
if (!(this.basePool === "atricrypto3")) return [3 /*break*/, 3];
|
|
112
|
+
return [4 /*yield*/, common_1._atricrypto3CalcExpectedAmounts.call(basePool, _expectedMetaCoinAmount)];
|
|
112
113
|
case 2:
|
|
113
|
-
|
|
114
|
+
_a = _b.sent();
|
|
115
|
+
return [3 /*break*/, 5];
|
|
116
|
+
case 3: return [4 /*yield*/, common_1._calcExpectedAmounts.call(basePool, _expectedMetaCoinAmount)];
|
|
117
|
+
case 4:
|
|
118
|
+
_a = _b.sent();
|
|
119
|
+
_b.label = 5;
|
|
120
|
+
case 5:
|
|
121
|
+
_basePoolExpectedAmounts = _a;
|
|
114
122
|
_expected = __spreadArray(__spreadArray([], _expectedUnderlyingAmounts, true), _basePoolExpectedAmounts, true);
|
|
115
123
|
return [2 /*return*/, _expected.map(function (amount, i) { return ethers_1.ethers.utils.formatUnits(amount, _this.underlyingDecimals[i]); })];
|
|
116
124
|
}
|
|
@@ -122,21 +130,15 @@ exports.withdrawExpectedMetaMixin = {
|
|
|
122
130
|
exports.withdrawExpectedAtricrypto3Mixin = {
|
|
123
131
|
withdrawExpected: function (lpTokenAmount) {
|
|
124
132
|
return __awaiter(this, void 0, void 0, function () {
|
|
125
|
-
var _lpTokenAmount,
|
|
133
|
+
var _lpTokenAmount, _expected;
|
|
126
134
|
var _this = this;
|
|
127
135
|
return __generator(this, function (_a) {
|
|
128
136
|
switch (_a.label) {
|
|
129
137
|
case 0:
|
|
130
138
|
_lpTokenAmount = (0, utils_1.parseUnits)(lpTokenAmount);
|
|
131
|
-
return [4 /*yield*/, common_1.
|
|
139
|
+
return [4 /*yield*/, common_1._atricrypto3CalcExpectedAmounts.call(this, _lpTokenAmount)];
|
|
132
140
|
case 1:
|
|
133
|
-
|
|
134
|
-
_expectedMetaCoinAmount = _expectedWrappedAmounts[0], _expectedUnderlyingAmounts = _expectedWrappedAmounts.slice(1);
|
|
135
|
-
basePool = new PoolTemplate_1.PoolTemplate(this.basePool);
|
|
136
|
-
return [4 /*yield*/, common_1._calcExpectedAmounts.call(basePool, _expectedMetaCoinAmount)];
|
|
137
|
-
case 2:
|
|
138
|
-
_basePoolExpectedAmounts = _a.sent();
|
|
139
|
-
_expected = __spreadArray(__spreadArray([], _basePoolExpectedAmounts, true), _expectedUnderlyingAmounts, true);
|
|
141
|
+
_expected = _a.sent();
|
|
140
142
|
return [2 /*return*/, _expected.map(function (amount, i) { return ethers_1.ethers.utils.formatUnits(amount, _this.underlyingDecimals[i]); })];
|
|
141
143
|
}
|
|
142
144
|
});
|
|
@@ -230,7 +230,7 @@ var getPool = function (poolId) {
|
|
|
230
230
|
if ('exchange(uint256,uint256,uint256,uint256,bool)' in curve_1.curve.contracts[poolDummy.address].contract) { // tricrypto2 (eth), tricrypto (arbitrum)
|
|
231
231
|
Object.assign(Pool.prototype, swapMixins_1.swapTricrypto2Mixin);
|
|
232
232
|
}
|
|
233
|
-
else if (poolDummy.isMetaFactory && (0, exports.getPool)(poolDummy.basePool).isLending) {
|
|
233
|
+
else if (poolDummy.isMetaFactory && ((0, exports.getPool)(poolDummy.basePool).isLending || (0, exports.getPool)(poolDummy.basePool).isFake)) {
|
|
234
234
|
Object.assign(Pool.prototype, swapMixins_1.swapMetaFactoryMixin);
|
|
235
235
|
}
|
|
236
236
|
else {
|
package/lib/utils.js
CHANGED
|
@@ -473,11 +473,11 @@ var _getUsdRate = function (assetId) { return __awaiter(void 0, void 0, void 0,
|
|
|
473
473
|
}
|
|
474
474
|
assetId = {
|
|
475
475
|
'CRV': 'curve-dao-token',
|
|
476
|
-
'EUR':
|
|
476
|
+
'EUR': 'stasis-eurs',
|
|
477
477
|
'BTC': 'bitcoin',
|
|
478
478
|
'ETH': 'ethereum',
|
|
479
479
|
'LINK': 'link',
|
|
480
|
-
}[assetId] || assetId;
|
|
480
|
+
}[assetId.toUpperCase()] || assetId;
|
|
481
481
|
assetId = (0, exports.isEth)(assetId) ? nativeTokenName : assetId.toLowerCase();
|
|
482
482
|
// No EURT on Coingecko Polygon
|
|
483
483
|
if (curve_1.curve.chainId === 137 && assetId.toLowerCase() === curve_1.curve.constants.COINS.eurt) {
|
|
@@ -489,7 +489,7 @@ var _getUsdRate = function (assetId) { return __awaiter(void 0, void 0, void 0,
|
|
|
489
489
|
assetId = 'curve-dao-token';
|
|
490
490
|
}
|
|
491
491
|
if (!((((_a = _usdRatesCache[assetId]) === null || _a === void 0 ? void 0 : _a.time) || 0) + 600000 < Date.now())) return [3 /*break*/, 3];
|
|
492
|
-
url = [nativeTokenName, 'bitcoin', 'link', 'curve-dao-token'].includes(assetId.toLowerCase()) ?
|
|
492
|
+
url = [nativeTokenName, 'ethereum', 'bitcoin', 'link', 'curve-dao-token', 'stasis-eurs'].includes(assetId.toLowerCase()) ?
|
|
493
493
|
"https://api.coingecko.com/api/v3/simple/price?ids=".concat(assetId, "&vs_currencies=usd") :
|
|
494
494
|
"https://api.coingecko.com/api/v3/simple/token_price/".concat(chainName, "?contract_addresses=").concat(assetId, "&vs_currencies=usd");
|
|
495
495
|
return [4 /*yield*/, axios_1.default.get(url)];
|