@curvefi/api 2.53.5 → 2.53.7

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.
@@ -26,15 +26,20 @@ export declare const _getLegacyAPYsAndVolumes: ((network: string) => Promise<IDi
26
26
  };
27
27
  volume: number;
28
28
  }>>>;
29
- export declare const _getFactoryAPYsAndVolumes: ((network: string) => Promise<{
29
+ export declare const _getFactoryAPYsAndVolumes: ((network: string, mode?: 'stable' | 'crypto') => Promise<{
30
30
  poolAddress: string;
31
31
  apy: number;
32
32
  volume: number;
33
- }[]>) & memoize.Memoized<(network: string) => Promise<{
33
+ }[]>) & memoize.Memoized<(network: string, mode?: 'stable' | 'crypto') => Promise<{
34
34
  poolAddress: string;
35
35
  apy: number;
36
36
  volume: number;
37
37
  }[]>>;
38
+ export declare const _getTotalVolumes: ((network: string, mode?: 'stable' | 'crypto') => Promise<{
39
+ totalVolumeUsd: number;
40
+ }>) & memoize.Memoized<(network: string, mode?: 'stable' | 'crypto') => Promise<{
41
+ totalVolumeUsd: number;
42
+ }>>;
38
43
  export declare const _getAllGauges: (() => Promise<IDict<IGaugesDataFromApi>>) & memoize.Memoized<() => Promise<IDict<IGaugesDataFromApi>>>;
39
44
  export declare const _getHiddenPools: (() => Promise<IDict<string[]>>) & memoize.Memoized<() => Promise<IDict<string[]>>>;
40
45
  export declare const _generateBoostingProof: ((block: number, address: string) => Promise<{
@@ -119,22 +119,46 @@ export var _getLegacyAPYsAndVolumes = memoize(function (network) { return __awai
119
119
  maxAge: 5 * 60 * 1000, // 5m
120
120
  });
121
121
  // Base, Bsc, ZkSync, Moonbeam, Kava and Celo only
122
- export var _getFactoryAPYsAndVolumes = memoize(function (network) { return __awaiter(void 0, void 0, void 0, function () {
123
- var url, response;
124
- var _a;
125
- return __generator(this, function (_b) {
126
- switch (_b.label) {
127
- case 0:
128
- if (network === "aurora")
129
- return [2 /*return*/, []]; // Exclude Aurora
130
- url = "https://api.curve.fi/api/getFactoryAPYs-".concat(network);
131
- return [4 /*yield*/, axios.get(url, { validateStatus: function () { return true; } })];
132
- case 1:
133
- response = _b.sent();
134
- return [2 /*return*/, (_a = response.data.data.poolDetails) !== null && _a !== void 0 ? _a : []];
135
- }
122
+ export var _getFactoryAPYsAndVolumes = memoize(function (network, mode) {
123
+ if (mode === void 0) { mode = 'stable'; }
124
+ return __awaiter(void 0, void 0, void 0, function () {
125
+ var url, response;
126
+ var _a;
127
+ return __generator(this, function (_b) {
128
+ switch (_b.label) {
129
+ case 0:
130
+ if (network === "aurora")
131
+ return [2 /*return*/, []]; // Exclude Aurora
132
+ url = "https://api.curve.fi/api/getFactoryAPYs/".concat(network, "/").concat(mode);
133
+ return [4 /*yield*/, axios.get(url, { validateStatus: function () { return true; } })];
134
+ case 1:
135
+ response = _b.sent();
136
+ return [2 /*return*/, (_a = response.data.data.poolDetails) !== null && _a !== void 0 ? _a : []];
137
+ }
138
+ });
136
139
  });
137
- }); }, {
140
+ }, {
141
+ promise: true,
142
+ maxAge: 5 * 60 * 1000, // 5m
143
+ });
144
+ export var _getTotalVolumes = memoize(function (network, mode) {
145
+ if (mode === void 0) { mode = 'stable'; }
146
+ return __awaiter(void 0, void 0, void 0, function () {
147
+ var url, response;
148
+ return __generator(this, function (_a) {
149
+ switch (_a.label) {
150
+ case 0:
151
+ if (network === "aurora")
152
+ return [2 /*return*/, { totalVolumeUsd: 0 }]; // Exclude Aurora
153
+ url = "https://api.curve.fi/api/getFactoryAPYs/".concat(network, "/").concat(mode);
154
+ return [4 /*yield*/, axios.get(url, { validateStatus: function () { return true; } })];
155
+ case 1:
156
+ response = _a.sent();
157
+ return [2 /*return*/, response.data.data];
158
+ }
159
+ });
160
+ });
161
+ }, {
138
162
  promise: true,
139
163
  maxAge: 5 * 60 * 1000, // 5m
140
164
  });
@@ -217,7 +217,7 @@ var PoolTemplate = /** @class */ (function () {
217
217
  });
218
218
  };
219
219
  this.statsVolume = function () { return __awaiter(_this, void 0, void 0, function () {
220
- var _c, mainPoolsData, factoryPoolsData, poolData_1, lpPrice, network, poolsData, poolData;
220
+ var _response, _c, mainPoolsData, factoryPoolsData, poolData_1, lpPrice, network, poolsData, poolData;
221
221
  var _this = this;
222
222
  var _d;
223
223
  return __generator(this, function (_e) {
@@ -226,10 +226,12 @@ var PoolTemplate = /** @class */ (function () {
226
226
  if (![56, 324, 1284, 2222, 8453, 42220, 1313161554].includes(curve.chainId)) return [3 /*break*/, 3];
227
227
  return [4 /*yield*/, Promise.all([
228
228
  _getLegacyAPYsAndVolumes(curve.constants.NETWORK_NAME),
229
- _getFactoryAPYsAndVolumes(curve.constants.NETWORK_NAME),
229
+ _getFactoryAPYsAndVolumes(curve.constants.NETWORK_NAME, 'stable'),
230
+ _getFactoryAPYsAndVolumes(curve.constants.NETWORK_NAME, 'crypto'),
230
231
  ])];
231
232
  case 1:
232
- _c = _e.sent(), mainPoolsData = _c[0], factoryPoolsData = _c[1];
233
+ _response = _e.sent();
234
+ _c = [_response[0], __spreadArray(__spreadArray([], _response[1], true), _response[2], true)], mainPoolsData = _c[0], factoryPoolsData = _c[1];
233
235
  if (this.id in mainPoolsData) {
234
236
  return [2 /*return*/, ((_d = mainPoolsData[this.id].volume) !== null && _d !== void 0 ? _d : 0).toString()];
235
237
  }
@@ -253,7 +255,7 @@ var PoolTemplate = /** @class */ (function () {
253
255
  });
254
256
  }); };
255
257
  this.statsBaseApy = function () { return __awaiter(_this, void 0, void 0, function () {
256
- var _c, mainPoolsData, factoryPoolsData, poolData_2, network, poolsData, poolData;
258
+ var _response, _c, mainPoolsData, factoryPoolsData, poolData_2, network, poolsData, poolData;
257
259
  var _this = this;
258
260
  return __generator(this, function (_d) {
259
261
  switch (_d.label) {
@@ -261,10 +263,12 @@ var PoolTemplate = /** @class */ (function () {
261
263
  if (![56, 324, 1284, 2222, 8453, 42220, 1313161554].includes(curve.chainId)) return [3 /*break*/, 2];
262
264
  return [4 /*yield*/, Promise.all([
263
265
  _getLegacyAPYsAndVolumes(curve.constants.NETWORK_NAME),
264
- _getFactoryAPYsAndVolumes(curve.constants.NETWORK_NAME),
266
+ _getFactoryAPYsAndVolumes(curve.constants.NETWORK_NAME, 'stable'),
267
+ _getFactoryAPYsAndVolumes(curve.constants.NETWORK_NAME, 'crypto'),
265
268
  ])];
266
269
  case 1:
267
- _c = _d.sent(), mainPoolsData = _c[0], factoryPoolsData = _c[1];
270
+ _response = _d.sent();
271
+ _c = [_response[0], __spreadArray(__spreadArray([], _response[1], true), _response[2], true)], mainPoolsData = _c[0], factoryPoolsData = _c[1];
268
272
  if (this.id in mainPoolsData) {
269
273
  return [2 /*return*/, {
270
274
  day: mainPoolsData[this.id].apy.day.toString(),
package/lib/utils.js CHANGED
@@ -59,7 +59,7 @@ import { Contract } from 'ethers';
59
59
  import { Contract as MulticallContract } from "ethcall";
60
60
  import BigNumber from 'bignumber.js';
61
61
  import { curve, NETWORK_CONSTANTS } from "./curve.js";
62
- import { _getFactoryAPYsAndVolumes, _getLegacyAPYsAndVolumes, _getAllPoolsFromApi, _getSubgraphData } from "./external-api.js";
62
+ import { _getAllPoolsFromApi, _getSubgraphData, _getTotalVolumes, } from "./external-api.js";
63
63
  import ERC20Abi from './constants/abis/ERC20.json' assert { type: 'json' };
64
64
  import { L2Networks } from './constants/L2Networks.js';
65
65
  export var ETH_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
@@ -638,7 +638,7 @@ export var _getUsdRate = function (assetId) { return __awaiter(void 0, void 0, v
638
638
  nativeTokenName = {
639
639
  1: 'ethereum',
640
640
  10: 'ethereum',
641
- 56: 'bnb',
641
+ 56: 'binancecoin',
642
642
  100: 'xdai',
643
643
  137: 'matic-network',
644
644
  250: 'fantom',
@@ -781,51 +781,27 @@ export var getTVL = function (network) {
781
781
  export var getVolume = function (network) {
782
782
  if (network === void 0) { network = curve.chainId; }
783
783
  return __awaiter(void 0, void 0, void 0, function () {
784
- var chainId, _a, mainPoolsData, factoryPoolsData, volume, id, _i, factoryPoolsData_1, pool, lpToken, lpPrice, _b, _c, totalVolume, cryptoVolume, cryptoShare;
785
- var _d;
786
- return __generator(this, function (_e) {
787
- switch (_e.label) {
784
+ var chainId, _a, factoryPoolsData, cryptoPoolsData, stableVolume, cryptoVolume_1, _b, totalVolume, cryptoVolume, cryptoShare;
785
+ return __generator(this, function (_c) {
786
+ switch (_c.label) {
788
787
  case 0:
789
788
  network = _getNetworkName(network);
790
- if (!["zksync", "moonbeam", "kava", "base", "celo", "aurora", "bsc"].includes(network)) return [3 /*break*/, 8];
789
+ if (!["zksync", "moonbeam", "kava", "base", "celo", "aurora", "bsc"].includes(network)) return [3 /*break*/, 2];
791
790
  chainId = _getChainId(network);
792
791
  if (curve.chainId !== chainId)
793
792
  throw Error("To get volume for ZkSync, Moonbeam, Kava, Base, Celo, Aurora or Bsc connect to the network first");
794
793
  return [4 /*yield*/, Promise.all([
795
- _getLegacyAPYsAndVolumes(network),
796
- _getFactoryAPYsAndVolumes(network),
794
+ _getTotalVolumes(network, 'stable'),
795
+ _getTotalVolumes(network, 'crypto'),
797
796
  ])];
798
797
  case 1:
799
- _a = _e.sent(), mainPoolsData = _a[0], factoryPoolsData = _a[1];
800
- volume = 0;
801
- for (id in mainPoolsData) {
802
- volume += (_d = mainPoolsData[id].volume) !== null && _d !== void 0 ? _d : 0;
803
- }
804
- _i = 0, factoryPoolsData_1 = factoryPoolsData;
805
- _e.label = 2;
806
- case 2:
807
- if (!(_i < factoryPoolsData_1.length)) return [3 /*break*/, 7];
808
- pool = factoryPoolsData_1[_i];
809
- lpToken = _getTokenAddressBySwapAddress(pool.poolAddress);
810
- if (!lpToken) return [3 /*break*/, 4];
811
- return [4 /*yield*/, _getUsdRate(lpToken)];
798
+ _a = _c.sent(), factoryPoolsData = _a[0], cryptoPoolsData = _a[1];
799
+ stableVolume = factoryPoolsData.totalVolumeUsd;
800
+ cryptoVolume_1 = cryptoPoolsData.totalVolumeUsd;
801
+ return [2 /*return*/, { totalVolume: stableVolume + cryptoVolume_1, cryptoVolume: cryptoVolume_1, cryptoShare: cryptoVolume_1 / (stableVolume + cryptoVolume_1) }];
802
+ case 2: return [4 /*yield*/, _getSubgraphData(network)];
812
803
  case 3:
813
- _b = _e.sent();
814
- return [3 /*break*/, 5];
815
- case 4:
816
- _b = 0;
817
- _e.label = 5;
818
- case 5:
819
- lpPrice = _b;
820
- volume += pool.volume * lpPrice;
821
- _e.label = 6;
822
- case 6:
823
- _i++;
824
- return [3 /*break*/, 2];
825
- case 7: return [2 /*return*/, { totalVolume: volume, cryptoVolume: 0, cryptoShare: 0 }];
826
- case 8: return [4 /*yield*/, _getSubgraphData(network)];
827
- case 9:
828
- _c = _e.sent(), totalVolume = _c.totalVolume, cryptoVolume = _c.cryptoVolume, cryptoShare = _c.cryptoShare;
804
+ _b = _c.sent(), totalVolume = _b.totalVolume, cryptoVolume = _b.cryptoVolume, cryptoShare = _b.cryptoShare;
829
805
  return [2 /*return*/, { totalVolume: totalVolume, cryptoVolume: cryptoVolume, cryptoShare: cryptoShare }];
830
806
  }
831
807
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curvefi/api",
3
- "version": "2.53.5",
3
+ "version": "2.53.7",
4
4
  "description": "JavaScript library for curve.fi",
5
5
  "main": "lib/index.js",
6
6
  "author": "Macket",