@curvefi/api 2.56.14 → 2.57.1
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/README.md +2 -2
- package/lib/constants/abis/factory-tricrypto.json +12 -0
- package/lib/curve.js +27 -51
- package/lib/external-api.d.ts +1 -0
- package/lib/external-api.js +24 -0
- package/lib/pools/PoolTemplate.d.ts +4 -2
- package/lib/pools/PoolTemplate.js +30 -4
- package/lib/utils.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -393,9 +393,9 @@ import curve from "@curvefi/api";
|
|
|
393
393
|
// [ false, false, false, false ]
|
|
394
394
|
pool.inApi;
|
|
395
395
|
// true
|
|
396
|
-
pool.isGaugeKilled;
|
|
396
|
+
await pool.isGaugeKilled();
|
|
397
397
|
// false
|
|
398
|
-
pool.gaugeStatus;
|
|
398
|
+
await pool.gaugeStatus();
|
|
399
399
|
// null OR
|
|
400
400
|
//{
|
|
401
401
|
// rewardsNeedNudging: false,
|
|
@@ -585,5 +585,17 @@
|
|
|
585
585
|
"type": "address"
|
|
586
586
|
}
|
|
587
587
|
]
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"stateMutability": "view",
|
|
591
|
+
"type": "function",
|
|
592
|
+
"name": "gauge_implementation",
|
|
593
|
+
"inputs": [],
|
|
594
|
+
"outputs": [
|
|
595
|
+
{
|
|
596
|
+
"name": "",
|
|
597
|
+
"type": "address"
|
|
598
|
+
}
|
|
599
|
+
]
|
|
588
600
|
}
|
|
589
601
|
]
|
package/lib/curve.js
CHANGED
|
@@ -414,13 +414,10 @@ var Curve = /** @class */ (function () {
|
|
|
414
414
|
case 5:
|
|
415
415
|
_e.FACTORY_POOLS_DATA = _h.sent();
|
|
416
416
|
this._updateDecimalsAndGauges(this.constants.FACTORY_POOLS_DATA);
|
|
417
|
-
return [4 /*yield*/, _killGauges(this.constants.FACTORY_POOLS_DATA)];
|
|
418
|
-
case 6:
|
|
419
|
-
_h.sent();
|
|
420
417
|
_f = this.constants.FACTORY_GAUGE_IMPLEMENTATIONS;
|
|
421
418
|
_g = "factory";
|
|
422
419
|
return [4 /*yield*/, this.contracts[this.constants.ALIASES.factory].contract.gauge_implementation(this.constantOptions)];
|
|
423
|
-
case
|
|
420
|
+
case 6:
|
|
424
421
|
_f[_g] = _h.sent();
|
|
425
422
|
return [2 /*return*/];
|
|
426
423
|
}
|
|
@@ -456,9 +453,6 @@ var Curve = /** @class */ (function () {
|
|
|
456
453
|
case 5:
|
|
457
454
|
_e.CRVUSD_FACTORY_POOLS_DATA = _f.sent();
|
|
458
455
|
this._updateDecimalsAndGauges(this.constants.CRVUSD_FACTORY_POOLS_DATA);
|
|
459
|
-
return [4 /*yield*/, _killGauges(this.constants.CRVUSD_FACTORY_POOLS_DATA)];
|
|
460
|
-
case 6:
|
|
461
|
-
_f.sent();
|
|
462
456
|
return [2 /*return*/];
|
|
463
457
|
}
|
|
464
458
|
});
|
|
@@ -493,9 +487,6 @@ var Curve = /** @class */ (function () {
|
|
|
493
487
|
case 5:
|
|
494
488
|
_e.EYWA_FACTORY_POOLS_DATA = _f.sent();
|
|
495
489
|
this._updateDecimalsAndGauges(this.constants.EYWA_FACTORY_POOLS_DATA);
|
|
496
|
-
return [4 /*yield*/, _killGauges(this.constants.EYWA_FACTORY_POOLS_DATA)];
|
|
497
|
-
case 6:
|
|
498
|
-
_f.sent();
|
|
499
490
|
return [2 /*return*/];
|
|
500
491
|
}
|
|
501
492
|
});
|
|
@@ -530,13 +521,10 @@ var Curve = /** @class */ (function () {
|
|
|
530
521
|
case 5:
|
|
531
522
|
_e.CRYPTO_FACTORY_POOLS_DATA = _h.sent();
|
|
532
523
|
this._updateDecimalsAndGauges(this.constants.CRYPTO_FACTORY_POOLS_DATA);
|
|
533
|
-
return [4 /*yield*/, _killGauges(this.constants.CRYPTO_FACTORY_POOLS_DATA)];
|
|
534
|
-
case 6:
|
|
535
|
-
_h.sent();
|
|
536
524
|
_f = this.constants.FACTORY_GAUGE_IMPLEMENTATIONS;
|
|
537
525
|
_g = "factory-crypto";
|
|
538
526
|
return [4 /*yield*/, this.contracts[this.constants.ALIASES.crypto_factory].contract.gauge_implementation(this.constantOptions)];
|
|
539
|
-
case
|
|
527
|
+
case 6:
|
|
540
528
|
_f[_g] = _h.sent();
|
|
541
529
|
return [2 /*return*/];
|
|
542
530
|
}
|
|
@@ -572,13 +560,10 @@ var Curve = /** @class */ (function () {
|
|
|
572
560
|
case 5:
|
|
573
561
|
_e.TWOCRYPTO_FACTORY_POOLS_DATA = _h.sent();
|
|
574
562
|
this._updateDecimalsAndGauges(this.constants.TWOCRYPTO_FACTORY_POOLS_DATA);
|
|
575
|
-
return [4 /*yield*/, _killGauges(this.constants.TWOCRYPTO_FACTORY_POOLS_DATA)];
|
|
576
|
-
case 6:
|
|
577
|
-
_h.sent();
|
|
578
563
|
_f = this.constants.FACTORY_GAUGE_IMPLEMENTATIONS;
|
|
579
564
|
_g = "factory-twocrypto";
|
|
580
565
|
return [4 /*yield*/, this.contracts[this.constants.ALIASES.twocrypto_factory].contract.gauge_implementation(this.constantOptions)];
|
|
581
|
-
case
|
|
566
|
+
case 6:
|
|
582
567
|
_f[_g] = _h.sent();
|
|
583
568
|
return [2 /*return*/];
|
|
584
569
|
}
|
|
@@ -614,26 +599,23 @@ var Curve = /** @class */ (function () {
|
|
|
614
599
|
case 5:
|
|
615
600
|
_e.TRICRYPTO_FACTORY_POOLS_DATA = _k.sent();
|
|
616
601
|
this._updateDecimalsAndGauges(this.constants.TRICRYPTO_FACTORY_POOLS_DATA);
|
|
617
|
-
return [
|
|
618
|
-
case 6:
|
|
619
|
-
_k.sent();
|
|
620
|
-
if (!(this.chainId === 1)) return [3 /*break*/, 8];
|
|
602
|
+
if (!(this.chainId === 1)) return [3 /*break*/, 7];
|
|
621
603
|
_f = this.constants.FACTORY_GAUGE_IMPLEMENTATIONS;
|
|
622
604
|
_g = "factory-tricrypto";
|
|
623
605
|
return [4 /*yield*/, this.contracts[this.constants.ALIASES.tricrypto_factory].contract.gauge_implementation(this.constantOptions)];
|
|
624
|
-
case
|
|
606
|
+
case 6:
|
|
625
607
|
_f[_g] =
|
|
626
608
|
_k.sent();
|
|
627
|
-
return [3 /*break*/,
|
|
628
|
-
case
|
|
609
|
+
return [3 /*break*/, 9];
|
|
610
|
+
case 7:
|
|
629
611
|
_h = this.constants.FACTORY_GAUGE_IMPLEMENTATIONS;
|
|
630
612
|
_j = "factory-tricrypto";
|
|
631
613
|
return [4 /*yield*/, this.contracts[this.constants.ALIASES.gauge_factory].contract.get_implementation(this.constantOptions)];
|
|
632
|
-
case
|
|
614
|
+
case 8:
|
|
633
615
|
_h[_j] =
|
|
634
616
|
_k.sent();
|
|
635
|
-
_k.label =
|
|
636
|
-
case
|
|
617
|
+
_k.label = 9;
|
|
618
|
+
case 9: return [2 /*return*/];
|
|
637
619
|
}
|
|
638
620
|
});
|
|
639
621
|
});
|
|
@@ -667,9 +649,6 @@ var Curve = /** @class */ (function () {
|
|
|
667
649
|
case 5:
|
|
668
650
|
_e.STABLE_NG_FACTORY_POOLS_DATA = _f.sent();
|
|
669
651
|
this._updateDecimalsAndGauges(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
670
|
-
return [4 /*yield*/, _killGauges(this.constants.STABLE_NG_FACTORY_POOLS_DATA)];
|
|
671
|
-
case 6:
|
|
672
|
-
_f.sent();
|
|
673
652
|
return [2 /*return*/];
|
|
674
653
|
}
|
|
675
654
|
});
|
|
@@ -1024,31 +1003,28 @@ var Curve = /** @class */ (function () {
|
|
|
1024
1003
|
NETWORK_CONSTANTS[this.chainId].aTokens,
|
|
1025
1004
|
], cTokens = _d[0], yTokens = _d[1], ycTokens = _d[2], aTokens = _d[3];
|
|
1026
1005
|
customAbiTokens = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], cTokens, true), yTokens, true), ycTokens, true), aTokens, true);
|
|
1027
|
-
return [4 /*yield*/, _killGauges(this.constants.POOLS_DATA)];
|
|
1028
|
-
case 11:
|
|
1029
|
-
_p.sent();
|
|
1030
1006
|
this.multicallProvider = new MulticallProvider(this.chainId, this.provider);
|
|
1031
|
-
if (!this.signer) return [3 /*break*/,
|
|
1032
|
-
_p.label =
|
|
1033
|
-
case
|
|
1034
|
-
_p.trys.push([
|
|
1007
|
+
if (!this.signer) return [3 /*break*/, 15];
|
|
1008
|
+
_p.label = 11;
|
|
1009
|
+
case 11:
|
|
1010
|
+
_p.trys.push([11, 13, , 14]);
|
|
1035
1011
|
_e = this;
|
|
1036
1012
|
return [4 /*yield*/, this.signer.getAddress()];
|
|
1037
|
-
case
|
|
1013
|
+
case 12:
|
|
1038
1014
|
_e.signerAddress = _p.sent();
|
|
1039
|
-
return [3 /*break*/,
|
|
1040
|
-
case
|
|
1015
|
+
return [3 /*break*/, 14];
|
|
1016
|
+
case 13:
|
|
1041
1017
|
err_1 = _p.sent();
|
|
1042
1018
|
this.signer = null;
|
|
1043
|
-
return [3 /*break*/,
|
|
1044
|
-
case
|
|
1045
|
-
case
|
|
1019
|
+
return [3 /*break*/, 14];
|
|
1020
|
+
case 14: return [3 /*break*/, 16];
|
|
1021
|
+
case 15:
|
|
1046
1022
|
this.signerAddress = '';
|
|
1047
|
-
_p.label =
|
|
1048
|
-
case
|
|
1023
|
+
_p.label = 16;
|
|
1024
|
+
case 16:
|
|
1049
1025
|
this.feeData = { gasPrice: options.gasPrice, maxFeePerGas: options.maxFeePerGas, maxPriorityFeePerGas: options.maxPriorityFeePerGas };
|
|
1050
1026
|
return [4 /*yield*/, this.updateFeeData()];
|
|
1051
|
-
case
|
|
1027
|
+
case 17:
|
|
1052
1028
|
_p.sent();
|
|
1053
1029
|
for (_i = 0, _f = Object.values(__assign(__assign({}, this.constants.POOLS_DATA), this.constants.LLAMMAS_DATA)); _i < _f.length; _i++) {
|
|
1054
1030
|
pool = _f[_i];
|
|
@@ -1116,15 +1092,15 @@ var Curve = /** @class */ (function () {
|
|
|
1116
1092
|
this.setContract(this.constants.ALIASES.crypto_calc, cryptoCalcZapABI);
|
|
1117
1093
|
this.setContract(this.constants.ALIASES.stable_calc, StableCalcZapABI);
|
|
1118
1094
|
this.setContract(this.constants.ALIASES.factory, factoryABI);
|
|
1119
|
-
if (!(this.chainId !== 1313161554 && this.chainId !== 252)) return [3 /*break*/,
|
|
1095
|
+
if (!(this.chainId !== 1313161554 && this.chainId !== 252)) return [3 /*break*/, 19];
|
|
1120
1096
|
factoryContract = this.contracts[this.constants.ALIASES.factory].contract;
|
|
1121
1097
|
_o = this.constants.ALIASES;
|
|
1122
1098
|
return [4 /*yield*/, factoryContract.admin(this.constantOptions)];
|
|
1123
|
-
case
|
|
1099
|
+
case 18:
|
|
1124
1100
|
_o.factory_admin = (_p.sent()).toLowerCase();
|
|
1125
1101
|
this.setContract(this.constants.ALIASES.factory_admin, factoryAdminABI);
|
|
1126
|
-
_p.label =
|
|
1127
|
-
case
|
|
1102
|
+
_p.label = 19;
|
|
1103
|
+
case 19:
|
|
1128
1104
|
this.setContract(this.constants.ALIASES.crvusd_factory, factoryABI);
|
|
1129
1105
|
this.setContract(this.constants.ALIASES.eywa_factory, factoryEywaABI);
|
|
1130
1106
|
this.setContract(this.constants.ALIASES.crypto_factory, cryptoFactoryABI);
|
package/lib/external-api.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare const _getTotalVolumes: ((network: string) => Promise<{
|
|
|
15
15
|
cryptoShare: number;
|
|
16
16
|
}>>;
|
|
17
17
|
export declare const _getAllGauges: (() => Promise<IDict<IGaugesDataFromApi>>) & memoize.Memoized<() => Promise<IDict<IGaugesDataFromApi>>>;
|
|
18
|
+
export declare const _getAllGaugesFormatted: (() => Promise<IDict<any>>) & memoize.Memoized<() => Promise<IDict<any>>>;
|
|
18
19
|
export declare const _getHiddenPools: (() => Promise<IDict<string[]>>) & memoize.Memoized<() => Promise<IDict<string[]>>>;
|
|
19
20
|
export declare const _generateBoostingProof: ((block: number, address: string) => Promise<{
|
|
20
21
|
block_header_rlp: string;
|
package/lib/external-api.js
CHANGED
|
@@ -216,6 +216,30 @@ export var _getAllGauges = memoize(function () { return __awaiter(void 0, void 0
|
|
|
216
216
|
promise: true,
|
|
217
217
|
maxAge: 5 * 60 * 1000, // 5m
|
|
218
218
|
});
|
|
219
|
+
export var _getAllGaugesFormatted = memoize(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
220
|
+
var url, response, gaugesDict;
|
|
221
|
+
return __generator(this, function (_a) {
|
|
222
|
+
switch (_a.label) {
|
|
223
|
+
case 0:
|
|
224
|
+
url = "https://api.curve.fi/api/getAllGauges";
|
|
225
|
+
return [4 /*yield*/, axios.get(url, { validateStatus: function () { return true; } })];
|
|
226
|
+
case 1:
|
|
227
|
+
response = _a.sent();
|
|
228
|
+
gaugesDict = {};
|
|
229
|
+
Object.values(response.data.data).forEach(function (d) {
|
|
230
|
+
var _a, _b;
|
|
231
|
+
gaugesDict[d.gauge.toLowerCase()] = {
|
|
232
|
+
is_killed: (_a = d.is_killed) !== null && _a !== void 0 ? _a : false,
|
|
233
|
+
gaugeStatus: (_b = d.gaugeStatus) !== null && _b !== void 0 ? _b : null,
|
|
234
|
+
};
|
|
235
|
+
});
|
|
236
|
+
return [2 /*return*/, gaugesDict];
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}); }, {
|
|
240
|
+
promise: true,
|
|
241
|
+
maxAge: 60 * 60 * 1000, // 60m
|
|
242
|
+
});
|
|
219
243
|
export var _getHiddenPools = memoize(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
220
244
|
var url, response;
|
|
221
245
|
return __generator(this, function (_a) {
|
|
@@ -32,8 +32,8 @@ export declare class PoolTemplate {
|
|
|
32
32
|
wrappedDecimals: number[];
|
|
33
33
|
useLending: boolean[];
|
|
34
34
|
inApi: boolean;
|
|
35
|
-
isGaugeKilled: boolean
|
|
36
|
-
gaugeStatus:
|
|
35
|
+
isGaugeKilled: () => Promise<boolean>;
|
|
36
|
+
gaugeStatus: () => Promise<any>;
|
|
37
37
|
estimateGas: {
|
|
38
38
|
depositApprove: (amounts: (number | string)[]) => Promise<number | number[]>;
|
|
39
39
|
deposit: (amounts: (number | string)[]) => Promise<number | number[]>;
|
|
@@ -262,4 +262,6 @@ export declare class PoolTemplate {
|
|
|
262
262
|
private _stored_rates;
|
|
263
263
|
private _underlyingPrices;
|
|
264
264
|
private _wrappedPrices;
|
|
265
|
+
private getGaugeStatus;
|
|
266
|
+
private getIsGaugeKilled;
|
|
265
267
|
}
|
|
@@ -55,7 +55,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
55
55
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
56
56
|
};
|
|
57
57
|
import memoize from "memoizee";
|
|
58
|
-
import { _getPoolsFromApi } from '../external-api.js';
|
|
58
|
+
import { _getAllGaugesFormatted, _getPoolsFromApi } from '../external-api.js';
|
|
59
59
|
import { _getCoinAddresses, _getBalances, _prepareAddresses, _ensureAllowance, _getUsdRate, hasAllowance, ensureAllowance, ensureAllowanceEstimateGas, BN, toBN, toStringFromBN, parseUnits, getEthIndex, fromBN, _cutZeros, _setContracts, _get_small_x, _get_price_impact, checkNumber, _getCrvApyFromApi, _getRewardsFromApi, mulBy1_3, smartNumber, DIGas, _getAddress, isMethodExist, getVolumeApiController, } from '../utils.js';
|
|
60
60
|
import { curve } from "../curve.js";
|
|
61
61
|
import ERC20Abi from '../constants/abis/ERC20.json' assert { type: 'json' };
|
|
@@ -66,7 +66,7 @@ var YEAR = 365 * DAY;
|
|
|
66
66
|
var PoolTemplate = /** @class */ (function () {
|
|
67
67
|
function PoolTemplate(id) {
|
|
68
68
|
var _this = this;
|
|
69
|
-
var _c, _d
|
|
69
|
+
var _c, _d;
|
|
70
70
|
this.statsParameters = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
71
71
|
var multicallContract, lpMulticallContract, calls, i, additionalCalls, _virtualPrice, _fee, _prices, _adminFee, _A, _lpTokenSupply, _gamma, e_1, _c, virtualPrice, fee, adminFee, A, lpTokenSupply, gamma, priceOracle, priceScale, prices, i, A_PRECISION, _d, _future_A, _initial_A, _future_A_time, _initial_A_time, _e, future_A, initial_A, future_A_time, initial_A_time;
|
|
72
72
|
var _f, _g, _h;
|
|
@@ -1178,8 +1178,8 @@ var PoolTemplate = /** @class */ (function () {
|
|
|
1178
1178
|
this.wrappedDecimals = poolData.wrapped_decimals;
|
|
1179
1179
|
this.useLending = poolData.use_lending || poolData.underlying_coin_addresses.map(function () { return false; });
|
|
1180
1180
|
this.inApi = (_d = poolData.in_api) !== null && _d !== void 0 ? _d : false;
|
|
1181
|
-
this.isGaugeKilled = (
|
|
1182
|
-
this.gaugeStatus = (
|
|
1181
|
+
this.isGaugeKilled = this.getIsGaugeKilled.bind(this);
|
|
1182
|
+
this.gaugeStatus = this.getGaugeStatus.bind(this);
|
|
1183
1183
|
this.estimateGas = {
|
|
1184
1184
|
depositApprove: this.depositApproveEstimateGas.bind(this),
|
|
1185
1185
|
deposit: this.depositEstimateGas.bind(this),
|
|
@@ -3346,6 +3346,32 @@ var PoolTemplate = /** @class */ (function () {
|
|
|
3346
3346
|
});
|
|
3347
3347
|
});
|
|
3348
3348
|
};
|
|
3349
|
+
PoolTemplate.prototype.getGaugeStatus = function () {
|
|
3350
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3351
|
+
var gaugeData;
|
|
3352
|
+
return __generator(this, function (_c) {
|
|
3353
|
+
switch (_c.label) {
|
|
3354
|
+
case 0: return [4 /*yield*/, _getAllGaugesFormatted()];
|
|
3355
|
+
case 1:
|
|
3356
|
+
gaugeData = _c.sent();
|
|
3357
|
+
return [2 /*return*/, gaugeData[this.gauge] ? gaugeData[this.gauge].gaugeStatus : null];
|
|
3358
|
+
}
|
|
3359
|
+
});
|
|
3360
|
+
});
|
|
3361
|
+
};
|
|
3362
|
+
PoolTemplate.prototype.getIsGaugeKilled = function () {
|
|
3363
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3364
|
+
var gaugeData;
|
|
3365
|
+
return __generator(this, function (_c) {
|
|
3366
|
+
switch (_c.label) {
|
|
3367
|
+
case 0: return [4 /*yield*/, _getAllGaugesFormatted()];
|
|
3368
|
+
case 1:
|
|
3369
|
+
gaugeData = _c.sent();
|
|
3370
|
+
return [2 /*return*/, gaugeData[this.gauge] ? gaugeData[this.gauge].is_killed : false];
|
|
3371
|
+
}
|
|
3372
|
+
});
|
|
3373
|
+
});
|
|
3374
|
+
};
|
|
3349
3375
|
return PoolTemplate;
|
|
3350
3376
|
}());
|
|
3351
3377
|
export { PoolTemplate };
|
package/lib/utils.js
CHANGED
|
@@ -766,7 +766,7 @@ export var getGasInfoForL2 = function () { return __awaiter(void 0, void 0, void
|
|
|
766
766
|
case 1:
|
|
767
767
|
baseFee = _a.sent();
|
|
768
768
|
return [2 /*return*/, {
|
|
769
|
-
maxFeePerGas: (baseFee * 1.1) + 0.01,
|
|
769
|
+
maxFeePerGas: Number(((baseFee * 1.1) + 0.01).toFixed(2)),
|
|
770
770
|
maxPriorityFeePerGas: 0.01,
|
|
771
771
|
}];
|
|
772
772
|
case 2: throw Error("This method exists only for L2 networks");
|