@curvefi/api 2.21.5 → 2.22.0
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/aliases.js +10 -10
- package/lib/factory/factory-api.js +8 -9
- package/lib/pools/PoolTemplate.js +25 -23
- package/package.json +1 -1
package/lib/constants/aliases.js
CHANGED
|
@@ -18,7 +18,7 @@ exports.ALIASES_ETHEREUM = (0, utils_1.lowerCaseValues)({
|
|
|
18
18
|
exports.ALIASES_POLYGON = (0, utils_1.lowerCaseValues)({
|
|
19
19
|
"crv": "0x172370d5cd63279efa6d502dab29171933a610af",
|
|
20
20
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
21
|
-
"voting_escrow": "
|
|
21
|
+
"voting_escrow": "0xb5acc710aede048600e10eedcefdf98d4abf4b1e",
|
|
22
22
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
23
23
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
24
24
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -31,7 +31,7 @@ exports.ALIASES_POLYGON = (0, utils_1.lowerCaseValues)({
|
|
|
31
31
|
exports.ALIASES_FANTOM = (0, utils_1.lowerCaseValues)({
|
|
32
32
|
"crv": "0x1E4F97b9f9F913c46F1632781732927B9019C68b",
|
|
33
33
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
34
|
-
"voting_escrow": "
|
|
34
|
+
"voting_escrow": "0xb75dca485e21a77e1b433ecacb74475fc67e259c",
|
|
35
35
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
36
36
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
37
37
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -44,7 +44,7 @@ exports.ALIASES_FANTOM = (0, utils_1.lowerCaseValues)({
|
|
|
44
44
|
exports.ALIASES_AVALANCHE = (0, utils_1.lowerCaseValues)({
|
|
45
45
|
"crv": "0x47536F17F4fF30e64A96a7555826b8f9e66ec468",
|
|
46
46
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
47
|
-
"voting_escrow": "
|
|
47
|
+
"voting_escrow": "0xc55837710bc500f1e3c7bb9dd1d51f7c5647e657",
|
|
48
48
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
49
49
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
50
50
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -57,7 +57,7 @@ exports.ALIASES_AVALANCHE = (0, utils_1.lowerCaseValues)({
|
|
|
57
57
|
exports.ALIASES_ARBITRUM = (0, utils_1.lowerCaseValues)({
|
|
58
58
|
"crv": "0x11cDb42B0EB46D95f990BeDD4695A6e3fA034978",
|
|
59
59
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
60
|
-
"voting_escrow": "
|
|
60
|
+
"voting_escrow": "0x98c80fa823759b642c3e02f40533c164f40727ae",
|
|
61
61
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
62
62
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
63
63
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -70,7 +70,7 @@ exports.ALIASES_ARBITRUM = (0, utils_1.lowerCaseValues)({
|
|
|
70
70
|
exports.ALIASES_OPTIMISM = (0, utils_1.lowerCaseValues)({
|
|
71
71
|
"crv": "0x0994206dfE8De6Ec6920FF4D779B0d950605Fb53",
|
|
72
72
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
73
|
-
"voting_escrow": "
|
|
73
|
+
"voting_escrow": "0x65a0b01756e837e6670634816e4f5b3a3ff21107",
|
|
74
74
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
75
75
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
76
76
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -83,7 +83,7 @@ exports.ALIASES_OPTIMISM = (0, utils_1.lowerCaseValues)({
|
|
|
83
83
|
exports.ALIASES_XDAI = (0, utils_1.lowerCaseValues)({
|
|
84
84
|
"crv": "0x712b3d230f3c1c19db860d80619288b1f0bdd0bd",
|
|
85
85
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
86
|
-
"voting_escrow": "
|
|
86
|
+
"voting_escrow": "0xefde221f306152971d8e9f181bfe998447975810",
|
|
87
87
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
88
88
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
89
89
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -96,7 +96,7 @@ exports.ALIASES_XDAI = (0, utils_1.lowerCaseValues)({
|
|
|
96
96
|
exports.ALIASES_MOONBEAM = (0, utils_1.lowerCaseValues)({
|
|
97
97
|
"crv": "0x7C598c96D02398d89FbCb9d41Eab3DF0C16F227D",
|
|
98
98
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
99
|
-
"voting_escrow": "
|
|
99
|
+
"voting_escrow": "0x0000000000000000000000000000000000000000",
|
|
100
100
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
101
101
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
102
102
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -109,7 +109,7 @@ exports.ALIASES_MOONBEAM = (0, utils_1.lowerCaseValues)({
|
|
|
109
109
|
exports.ALIASES_AURORA = (0, utils_1.lowerCaseValues)({
|
|
110
110
|
"crv": "0x64D5BaF5ac030e2b7c435aDD967f787ae94D0205",
|
|
111
111
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
112
|
-
"voting_escrow": "
|
|
112
|
+
"voting_escrow": "0x0000000000000000000000000000000000000000",
|
|
113
113
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
114
114
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
115
115
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -122,7 +122,7 @@ exports.ALIASES_AURORA = (0, utils_1.lowerCaseValues)({
|
|
|
122
122
|
exports.ALIASES_KAVA = (0, utils_1.lowerCaseValues)({
|
|
123
123
|
"crv": "0x64D5BaF5ac030e2b7c435aDD967f787ae94D0205",
|
|
124
124
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
125
|
-
"voting_escrow": "
|
|
125
|
+
"voting_escrow": "0x0000000000000000000000000000000000000000",
|
|
126
126
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
127
127
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
128
128
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -135,7 +135,7 @@ exports.ALIASES_KAVA = (0, utils_1.lowerCaseValues)({
|
|
|
135
135
|
exports.ALIASES_CELO = (0, utils_1.lowerCaseValues)({
|
|
136
136
|
"crv": "0x0a7432cF27F1aE3825c313F3C81e7D3efD7639aB",
|
|
137
137
|
"minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
|
|
138
|
-
"voting_escrow": "
|
|
138
|
+
"voting_escrow": "0x0000000000000000000000000000000000000000",
|
|
139
139
|
"fee_distributor": "0xA464e6DCda8AC41e03616F95f4BC98a13b8922Dc",
|
|
140
140
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
141
141
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
@@ -70,6 +70,7 @@ var factory_crypto_pool_2_json_1 = __importDefault(require("../constants/abis/fa
|
|
|
70
70
|
var constants_1 = require("./constants");
|
|
71
71
|
var constants_crypto_1 = require("./constants-crypto");
|
|
72
72
|
var common_1 = require("./common");
|
|
73
|
+
var external_api_1 = require("../external-api");
|
|
73
74
|
function setFactorySwapContracts(rawPoolList, isCrypto) {
|
|
74
75
|
var _this = this;
|
|
75
76
|
if (isCrypto) {
|
|
@@ -131,27 +132,25 @@ function setFactoryCoinsContracts(rawPoolList) {
|
|
|
131
132
|
}
|
|
132
133
|
function getFactoryPoolsDataFromApi(isCrypto) {
|
|
133
134
|
return __awaiter(this, void 0, void 0, function () {
|
|
134
|
-
var network, factoryType,
|
|
135
|
+
var network, factoryType, rawPoolList, mainAddresses, url, response, poolGaugeDict, _i, _a, gaugeData, i, FACTORY_POOLS_DATA;
|
|
135
136
|
var _this = this;
|
|
136
137
|
return __generator(this, function (_b) {
|
|
137
138
|
switch (_b.label) {
|
|
138
139
|
case 0:
|
|
139
140
|
network = this.constants.NETWORK_NAME;
|
|
140
141
|
factoryType = isCrypto ? "factory-crypto" : "factory";
|
|
141
|
-
|
|
142
|
-
return [4 /*yield*/, axios_1.default.get(url)];
|
|
142
|
+
return [4 /*yield*/, (0, external_api_1._getPoolsFromApi)(network, factoryType)];
|
|
143
143
|
case 1:
|
|
144
|
-
|
|
145
|
-
rawPoolList = response.data.data.poolData;
|
|
144
|
+
rawPoolList = (_b.sent()).poolData;
|
|
146
145
|
mainAddresses = Object.values(this.constants.POOLS_DATA).map(function (pool) { return pool.swap_address.toLowerCase(); });
|
|
147
146
|
rawPoolList = rawPoolList.filter(function (p) { return !mainAddresses.includes(p.address.toLowerCase()); });
|
|
148
147
|
if (!(this.chainId !== 1)) return [3 /*break*/, 3];
|
|
149
|
-
|
|
150
|
-
return [4 /*yield*/, axios_1.default.get(
|
|
148
|
+
url = "https://api.curve.fi/api/getFactoGauges/".concat(network);
|
|
149
|
+
return [4 /*yield*/, axios_1.default.get(url)];
|
|
151
150
|
case 2:
|
|
152
|
-
|
|
151
|
+
response = _b.sent();
|
|
153
152
|
poolGaugeDict = {};
|
|
154
|
-
for (_i = 0, _a =
|
|
153
|
+
for (_i = 0, _a = response.data.data.gauges; _i < _a.length; _i++) {
|
|
155
154
|
gaugeData = _a[_i];
|
|
156
155
|
poolGaugeDict[gaugeData.swap] = gaugeData.gauge;
|
|
157
156
|
}
|
|
@@ -280,7 +280,8 @@ var PoolTemplate = /** @class */ (function () {
|
|
|
280
280
|
});
|
|
281
281
|
}); };
|
|
282
282
|
this.statsTokenApy = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
283
|
-
var totalLiquidityUSD,
|
|
283
|
+
var totalLiquidityUSD, inflationRateBN, workingSupplyBN, totalSupplyBN, gaugeContract, lpTokenContract, crvContract, currentWeek, _c, gaugeContract, lpTokenContract, gaugeControllerContract, weightBN, rateBN, crvPrice, baseApyBN, boostedApyBN;
|
|
284
|
+
var _d, _e;
|
|
284
285
|
return __generator(this, function (_f) {
|
|
285
286
|
switch (_f.label) {
|
|
286
287
|
case 0:
|
|
@@ -291,47 +292,48 @@ var PoolTemplate = /** @class */ (function () {
|
|
|
291
292
|
totalLiquidityUSD = _f.sent();
|
|
292
293
|
if (Number(totalLiquidityUSD) === 0)
|
|
293
294
|
return [2 /*return*/, ["0", "0"]];
|
|
294
|
-
if (!(curve_1.curve.chainId !== 1)) return [3 /*break*/,
|
|
295
|
-
|
|
295
|
+
if (!(curve_1.curve.chainId !== 1)) return [3 /*break*/, 5];
|
|
296
|
+
gaugeContract = curve_1.curve.contracts[this.gauge].multicallContract;
|
|
297
|
+
lpTokenContract = curve_1.curve.contracts[this.lpToken].multicallContract;
|
|
296
298
|
crvContract = curve_1.curve.contracts[curve_1.curve.constants.ALIASES.crv].contract;
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
299
|
+
currentWeek = Math.floor(Date.now() / 1000 / WEEK);
|
|
300
|
+
return [4 /*yield*/, curve_1.curve.multicallProvider.all([
|
|
301
|
+
gaugeContract.inflation_rate(currentWeek),
|
|
302
|
+
gaugeContract.working_supply(),
|
|
303
|
+
lpTokenContract.totalSupply(),
|
|
304
|
+
])];
|
|
301
305
|
case 2:
|
|
302
|
-
|
|
306
|
+
_d = (_f.sent()).map(function (value) { return (0, utils_1.toBN)(value); }), inflationRateBN = _d[0], workingSupplyBN = _d[1], totalSupplyBN = _d[2];
|
|
303
307
|
if (!inflationRateBN.eq(0)) return [3 /*break*/, 4];
|
|
304
|
-
|
|
308
|
+
_c = utils_1.toBN;
|
|
305
309
|
return [4 /*yield*/, crvContract.balanceOf(this.gauge, curve_1.curve.constantOptions)];
|
|
306
310
|
case 3:
|
|
307
|
-
inflationRateBN =
|
|
311
|
+
inflationRateBN = _c.apply(void 0, [_f.sent()]).div(WEEK);
|
|
308
312
|
_f.label = 4;
|
|
309
|
-
case 4: return [
|
|
313
|
+
case 4: return [3 /*break*/, 7];
|
|
310
314
|
case 5:
|
|
311
|
-
crvRate_1 = _f.sent();
|
|
312
|
-
apy = inflationRateBN.times(31536000).times(0.4).times(crvRate_1).div(Number(totalLiquidityUSD));
|
|
313
|
-
return [2 /*return*/, [apy.times(100).toFixed(4), apy.times(100).toFixed(4)]];
|
|
314
|
-
case 6:
|
|
315
315
|
gaugeContract = curve_1.curve.contracts[this.gauge].multicallContract;
|
|
316
316
|
lpTokenContract = curve_1.curve.contracts[this.lpToken].multicallContract;
|
|
317
317
|
gaugeControllerContract = curve_1.curve.contracts[curve_1.curve.constants.ALIASES.gauge_controller].multicallContract;
|
|
318
|
+
weightBN = void 0;
|
|
318
319
|
return [4 /*yield*/, curve_1.curve.multicallProvider.all([
|
|
319
320
|
gaugeContract.inflation_rate(),
|
|
320
321
|
gaugeControllerContract.gauge_relative_weight(this.gauge),
|
|
321
322
|
gaugeContract.working_supply(),
|
|
322
323
|
lpTokenContract.totalSupply(),
|
|
323
324
|
])];
|
|
325
|
+
case 6:
|
|
326
|
+
_e = (_f.sent()).map(function (value) { return (0, utils_1.toBN)(value); }), inflationRateBN = _e[0], weightBN = _e[1], workingSupplyBN = _e[2], totalSupplyBN = _e[3];
|
|
327
|
+
inflationRateBN = inflationRateBN.times(weightBN);
|
|
328
|
+
_f.label = 7;
|
|
324
329
|
case 7:
|
|
325
|
-
|
|
326
|
-
if (Number(workingSupply) === 0)
|
|
327
|
-
return [2 /*return*/, ["0", "0"]];
|
|
328
|
-
rate = inflation.times(weight).times(31536000).times(0.4).div(workingSupply).times(totalSupply).div(Number(totalLiquidityUSD));
|
|
330
|
+
rateBN = inflationRateBN.times(31536000).times(0.4).div(workingSupplyBN).times(totalSupplyBN).div(Number(totalLiquidityUSD));
|
|
329
331
|
return [4 /*yield*/, (0, utils_1._getUsdRate)(curve_1.curve.constants.ALIASES.crv)];
|
|
330
332
|
case 8:
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
return [2 /*return*/, [
|
|
333
|
+
crvPrice = _f.sent();
|
|
334
|
+
baseApyBN = rateBN.times(crvPrice);
|
|
335
|
+
boostedApyBN = baseApyBN.times(2.5);
|
|
336
|
+
return [2 /*return*/, [baseApyBN.times(100).toFixed(4), boostedApyBN.times(100).toFixed(4)]];
|
|
335
337
|
}
|
|
336
338
|
});
|
|
337
339
|
}); };
|