@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 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 7:
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 7:
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 7:
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 [4 /*yield*/, _killGauges(this.constants.TRICRYPTO_FACTORY_POOLS_DATA)];
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 7:
606
+ case 6:
625
607
  _f[_g] =
626
608
  _k.sent();
627
- return [3 /*break*/, 10];
628
- case 8:
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 9:
614
+ case 8:
633
615
  _h[_j] =
634
616
  _k.sent();
635
- _k.label = 10;
636
- case 10: return [2 /*return*/];
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*/, 16];
1032
- _p.label = 12;
1033
- case 12:
1034
- _p.trys.push([12, 14, , 15]);
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 13:
1013
+ case 12:
1038
1014
  _e.signerAddress = _p.sent();
1039
- return [3 /*break*/, 15];
1040
- case 14:
1015
+ return [3 /*break*/, 14];
1016
+ case 13:
1041
1017
  err_1 = _p.sent();
1042
1018
  this.signer = null;
1043
- return [3 /*break*/, 15];
1044
- case 15: return [3 /*break*/, 17];
1045
- case 16:
1019
+ return [3 /*break*/, 14];
1020
+ case 14: return [3 /*break*/, 16];
1021
+ case 15:
1046
1022
  this.signerAddress = '';
1047
- _p.label = 17;
1048
- case 17:
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 18:
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*/, 20];
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 19:
1099
+ case 18:
1124
1100
  _o.factory_admin = (_p.sent()).toLowerCase();
1125
1101
  this.setContract(this.constants.ALIASES.factory_admin, factoryAdminABI);
1126
- _p.label = 20;
1127
- case 20:
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);
@@ -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;
@@ -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: Record<string, boolean> | null;
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, _e, _f;
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 = (_e = poolData.is_gauge_killed) !== null && _e !== void 0 ? _e : false;
1182
- this.gaugeStatus = (_f = poolData.gauge_status) !== null && _f !== void 0 ? _f : null;
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");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curvefi/api",
3
- "version": "2.56.14",
3
+ "version": "2.57.1",
4
4
  "description": "JavaScript library for curve.fi",
5
5
  "main": "lib/index.js",
6
6
  "author": "Macket",