@curvefi/api 2.53.6 → 2.53.8

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.
@@ -0,0 +1,7 @@
1
+ import { IChainId } from "../interfaces";
2
+ export interface IVolumeNetworks {
3
+ getVolumes: IChainId[];
4
+ getSubgraphData: IChainId[];
5
+ getFactoryAPYs: IChainId[];
6
+ }
7
+ export declare const volumeNetworks: IVolumeNetworks;
@@ -0,0 +1,5 @@
1
+ export var volumeNetworks = {
2
+ getVolumes: [1, 137, 8453, 42161],
3
+ getSubgraphData: [10, 100, 250, 1284, 42220, 43114, 1313161554],
4
+ getFactoryAPYs: [56, 324, 2222],
5
+ };
@@ -1,40 +1,19 @@
1
1
  import memoize from "memoizee";
2
- import { IExtendedPoolDataFromApi, ISubgraphPoolData, IDict, INetworkName, IPoolType, IGaugesDataFromApi, IDaoProposal, IDaoProposalListItem } from "./interfaces";
2
+ import { IExtendedPoolDataFromApi, IDict, INetworkName, IPoolType, IGaugesDataFromApi, IDaoProposal, IDaoProposalListItem, IVolumeAndAPYs } from "./interfaces";
3
3
  export declare const _getPoolsFromApi: ((network: INetworkName, poolType: IPoolType) => Promise<IExtendedPoolDataFromApi>) & memoize.Memoized<(network: INetworkName, poolType: IPoolType) => Promise<IExtendedPoolDataFromApi>>;
4
4
  export declare const _getAllPoolsFromApi: (network: INetworkName) => Promise<IExtendedPoolDataFromApi[]>;
5
- export declare const _getSubgraphData: ((network: INetworkName) => Promise<{
6
- poolsData: ISubgraphPoolData[];
5
+ export declare const _getSubgraphData: ((network: INetworkName) => Promise<IVolumeAndAPYs>) & memoize.Memoized<(network: INetworkName) => Promise<IVolumeAndAPYs>>;
6
+ export declare const _getVolumes: ((network: string) => Promise<IVolumeAndAPYs>) & memoize.Memoized<(network: string) => Promise<IVolumeAndAPYs>>;
7
+ export declare const _getFactoryAPYs: ((network: string) => Promise<IVolumeAndAPYs>) & memoize.Memoized<(network: string) => Promise<IVolumeAndAPYs>>;
8
+ export declare const _getTotalVolumes: ((network: string) => Promise<{
7
9
  totalVolume: number;
8
10
  cryptoVolume: number;
9
11
  cryptoShare: number;
10
- }>) & memoize.Memoized<(network: INetworkName) => Promise<{
11
- poolsData: ISubgraphPoolData[];
12
+ }>) & memoize.Memoized<(network: string) => Promise<{
12
13
  totalVolume: number;
13
14
  cryptoVolume: number;
14
15
  cryptoShare: number;
15
16
  }>>;
16
- export declare const _getLegacyAPYsAndVolumes: ((network: string) => Promise<IDict<{
17
- apy: {
18
- day: number;
19
- week: number;
20
- };
21
- volume: number;
22
- }>>) & memoize.Memoized<(network: string) => Promise<IDict<{
23
- apy: {
24
- day: number;
25
- week: number;
26
- };
27
- volume: number;
28
- }>>>;
29
- export declare const _getFactoryAPYsAndVolumes: ((network: string) => Promise<{
30
- poolAddress: string;
31
- apy: number;
32
- volume: number;
33
- }[]>) & memoize.Memoized<(network: string) => Promise<{
34
- poolAddress: string;
35
- apy: number;
36
- volume: number;
37
- }[]>>;
38
17
  export declare const _getAllGauges: (() => Promise<IDict<IGaugesDataFromApi>>) & memoize.Memoized<() => Promise<IDict<IGaugesDataFromApi>>>;
39
18
  export declare const _getHiddenPools: (() => Promise<IDict<string[]>>) & memoize.Memoized<() => Promise<IDict<string[]>>>;
40
19
  export declare const _generateBoostingProof: ((block: number, address: string) => Promise<{
@@ -34,6 +34,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39
+ if (ar || !(i in from)) {
40
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
41
+ ar[i] = from[i];
42
+ }
43
+ }
44
+ return to.concat(ar || Array.prototype.slice.call(from));
45
+ };
37
46
  import axios from "axios";
38
47
  import memoize from "memoizee";
39
48
  export var _getPoolsFromApi = memoize(function (network, poolType) { return __awaiter(void 0, void 0, void 0, function () {
@@ -71,20 +80,28 @@ export var _getAllPoolsFromApi = function (network) { return __awaiter(void 0, v
71
80
  });
72
81
  }); };
73
82
  export var _getSubgraphData = memoize(function (network) { return __awaiter(void 0, void 0, void 0, function () {
74
- var url, response;
75
- var _a, _b, _c, _d;
76
- return __generator(this, function (_e) {
77
- switch (_e.label) {
83
+ var url, response, poolsData;
84
+ var _a, _b, _c;
85
+ return __generator(this, function (_d) {
86
+ switch (_d.label) {
78
87
  case 0:
79
88
  url = "https://api.curve.fi/api/getSubgraphData/".concat(network);
80
89
  return [4 /*yield*/, axios.get(url, { validateStatus: function () { return true; } })];
81
90
  case 1:
82
- response = _e.sent();
91
+ response = _d.sent();
92
+ poolsData = response.data.data.poolList.map(function (item) {
93
+ return {
94
+ address: item.address,
95
+ volumeUSD: item.volumeUSD,
96
+ day: item.latestDailyApy,
97
+ week: item.latestWeeklyApy,
98
+ };
99
+ });
83
100
  return [2 /*return*/, {
84
- poolsData: (_a = response.data.data.poolList) !== null && _a !== void 0 ? _a : [],
85
- totalVolume: (_b = response.data.data.totalVolume) !== null && _b !== void 0 ? _b : 0,
86
- cryptoVolume: (_c = response.data.data.cryptoVolume) !== null && _c !== void 0 ? _c : 0,
87
- cryptoShare: (_d = response.data.data.cryptoShare) !== null && _d !== void 0 ? _d : 0,
101
+ poolsData: poolsData !== null && poolsData !== void 0 ? poolsData : [],
102
+ totalVolume: (_a = response.data.data.totalVolume) !== null && _a !== void 0 ? _a : 0,
103
+ cryptoVolume: (_b = response.data.data.cryptoVolume) !== null && _b !== void 0 ? _b : 0,
104
+ cryptoShare: (_c = response.data.data.cryptoShare) !== null && _c !== void 0 ? _c : 0,
88
105
  }];
89
106
  }
90
107
  });
@@ -92,46 +109,89 @@ export var _getSubgraphData = memoize(function (network) { return __awaiter(void
92
109
  promise: true,
93
110
  maxAge: 5 * 60 * 1000, // 5m
94
111
  });
95
- // Moonbeam and Aurora only
96
- export var _getLegacyAPYsAndVolumes = memoize(function (network) { return __awaiter(void 0, void 0, void 0, function () {
97
- var url, data, result;
98
- return __generator(this, function (_a) {
99
- switch (_a.label) {
112
+ export var _getVolumes = memoize(function (network) { return __awaiter(void 0, void 0, void 0, function () {
113
+ var url, response, poolsData;
114
+ var _a, _b, _c;
115
+ return __generator(this, function (_d) {
116
+ switch (_d.label) {
100
117
  case 0:
101
- if (["kava", "celo", "zksync", "base", "bsc"].includes(network))
102
- return [2 /*return*/, {}]; // Exclude Kava, Celo, ZkSync, Base and Bsc
103
- url = "https://api.curve.fi/api/getMainPoolsAPYs/" + network;
118
+ url = "https://api.curve.fi/api/getVolumes/".concat(network);
104
119
  return [4 /*yield*/, axios.get(url, { validateStatus: function () { return true; } })];
105
120
  case 1:
106
- data = (_a.sent()).data;
107
- result = {};
108
- Object.keys(data.apy.day).forEach(function (poolId) {
109
- result[poolId] = { apy: { day: 0, week: 0 }, volume: 0 };
110
- result[poolId].apy.day = data.apy.day[poolId] * 100;
111
- result[poolId].apy.week = data.apy.week[poolId] * 100;
112
- result[poolId].volume = data.volume[poolId];
121
+ response = _d.sent();
122
+ poolsData = response.data.data.pools.map(function (item) {
123
+ return {
124
+ address: item.address,
125
+ volumeUSD: item.volumeUSD,
126
+ day: item.latestDailyApyPcent,
127
+ week: item.latestWeeklyApyPcent,
128
+ };
113
129
  });
114
- return [2 /*return*/, result];
130
+ return [2 /*return*/, {
131
+ poolsData: poolsData !== null && poolsData !== void 0 ? poolsData : [],
132
+ totalVolume: (_a = response.data.data.totalVolumes.totalVolume) !== null && _a !== void 0 ? _a : 0,
133
+ cryptoVolume: (_b = response.data.data.totalVolumes.totalCryptoVolume) !== null && _b !== void 0 ? _b : 0,
134
+ cryptoShare: (_c = response.data.data.totalVolumes.cryptoVolumeSharePcent) !== null && _c !== void 0 ? _c : 0,
135
+ }];
115
136
  }
116
137
  });
117
138
  }); }, {
118
139
  promise: true,
119
140
  maxAge: 5 * 60 * 1000, // 5m
120
141
  });
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 () {
142
+ export var _getFactoryAPYs = memoize(function (network) { return __awaiter(void 0, void 0, void 0, function () {
143
+ var urlStable, urlCrypto, response, stableVolume, cryptoVolume, poolsData;
144
+ var _a, _b;
145
+ return __generator(this, function (_c) {
146
+ switch (_c.label) {
147
+ case 0:
148
+ urlStable = "getFactoryAPYs/".concat(network, "/stable}");
149
+ urlCrypto = "getFactoryAPYs/".concat(network, "/crypto}");
150
+ return [4 /*yield*/, Promise.all([
151
+ axios.get(urlStable, { validateStatus: function () { return true; } }),
152
+ axios.get(urlCrypto, { validateStatus: function () { return true; } }),
153
+ ])];
154
+ case 1:
155
+ response = _c.sent();
156
+ stableVolume = response[0].data.data.totalVolumeUsd || response[0].data.data.totalVolume;
157
+ cryptoVolume = response[1].data.data.totalVolumeUsd || response[1].data.data.totalVolume;
158
+ poolsData = __spreadArray(__spreadArray([], response[0].data.data.pools, true), response[1].data.data.pools, true).map(function (item) {
159
+ return {
160
+ address: item.poolAddress,
161
+ volumeUSD: item.totalVolumeUsd,
162
+ day: item.apy,
163
+ week: item.apy * 7, //Because api does not return week apy
164
+ };
165
+ });
166
+ return [2 /*return*/, {
167
+ poolsData: poolsData !== null && poolsData !== void 0 ? poolsData : [],
168
+ totalVolume: (_a = stableVolume + cryptoVolume) !== null && _a !== void 0 ? _a : 0,
169
+ cryptoVolume: cryptoVolume !== null && cryptoVolume !== void 0 ? cryptoVolume : 0,
170
+ cryptoShare: (_b = 100 * cryptoVolume / (stableVolume + cryptoVolume)) !== null && _b !== void 0 ? _b : 0,
171
+ }];
172
+ }
173
+ });
174
+ }); }, {
175
+ promise: true,
176
+ maxAge: 5 * 60 * 1000, // 5m
177
+ });
178
+ //4
179
+ export var _getTotalVolumes = memoize(function (network) { return __awaiter(void 0, void 0, void 0, function () {
123
180
  var url, response;
124
- var _a;
125
- return __generator(this, function (_b) {
126
- switch (_b.label) {
181
+ return __generator(this, function (_a) {
182
+ switch (_a.label) {
127
183
  case 0:
128
184
  if (network === "aurora")
129
- return [2 /*return*/, []]; // Exclude Aurora
130
- url = "https://api.curve.fi/api/getFactoryAPYs-".concat(network);
185
+ return [2 /*return*/, {
186
+ totalVolume: 0,
187
+ cryptoVolume: 0,
188
+ cryptoShare: 0,
189
+ }]; // Exclude Aurora
190
+ url = "https://api.curve.fi/api/getSubgraphData/".concat(network);
131
191
  return [4 /*yield*/, axios.get(url, { validateStatus: function () { return true; } })];
132
192
  case 1:
133
- response = _b.sent();
134
- return [2 /*return*/, (_a = response.data.data.poolDetails) !== null && _a !== void 0 ? _a : []];
193
+ response = _a.sent();
194
+ return [2 /*return*/, response.data.data];
135
195
  }
136
196
  });
137
197
  }); }, {
@@ -247,3 +247,15 @@ export interface IDaoProposal extends IDaoProposalListItem {
247
247
  script: string;
248
248
  votes: IDaoProposalVote[];
249
249
  }
250
+ export interface IVolumeAndAPYsPoolData {
251
+ address: string;
252
+ volumeUSD: number;
253
+ day: number;
254
+ week: number;
255
+ }
256
+ export interface IVolumeAndAPYs {
257
+ totalVolume: number;
258
+ cryptoVolume: number;
259
+ cryptoShare: number;
260
+ poolsData: IVolumeAndAPYsPoolData[];
261
+ }
@@ -55,8 +55,8 @@ 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, _getSubgraphData, _getFactoryAPYsAndVolumes, _getLegacyAPYsAndVolumes } from '../external-api.js';
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, } from '../utils.js';
58
+ import { _getPoolsFromApi } from '../external-api.js';
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' };
62
62
  var DAY = 86400;
@@ -217,79 +217,41 @@ 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 network, poolsData, poolData;
221
221
  var _this = this;
222
- var _d;
223
- return __generator(this, function (_e) {
224
- switch (_e.label) {
222
+ return __generator(this, function (_c) {
223
+ switch (_c.label) {
225
224
  case 0:
226
- if (![56, 324, 1284, 2222, 8453, 42220, 1313161554].includes(curve.chainId)) return [3 /*break*/, 3];
227
- return [4 /*yield*/, Promise.all([
228
- _getLegacyAPYsAndVolumes(curve.constants.NETWORK_NAME),
229
- _getFactoryAPYsAndVolumes(curve.constants.NETWORK_NAME),
230
- ])];
231
- case 1:
232
- _c = _e.sent(), mainPoolsData = _c[0], factoryPoolsData = _c[1];
233
- if (this.id in mainPoolsData) {
234
- return [2 /*return*/, ((_d = mainPoolsData[this.id].volume) !== null && _d !== void 0 ? _d : 0).toString()];
235
- }
236
- poolData_1 = factoryPoolsData.find(function (d) { return d.poolAddress.toLowerCase() === _this.address; });
237
- if (!poolData_1)
238
- throw Error("Can't get Volume for ".concat(this.name, " (id: ").concat(this.id, ")"));
239
- return [4 /*yield*/, _getUsdRate(this.lpToken)];
240
- case 2:
241
- lpPrice = _e.sent();
242
- return [2 /*return*/, (poolData_1.volume * lpPrice).toString()];
243
- case 3:
244
225
  network = curve.constants.NETWORK_NAME;
245
- return [4 /*yield*/, _getSubgraphData(network)];
246
- case 4:
247
- poolsData = (_e.sent()).poolsData;
226
+ return [4 /*yield*/, getVolumeApiController(network)];
227
+ case 1:
228
+ poolsData = (_c.sent()).poolsData;
248
229
  poolData = poolsData.find(function (d) { return d.address.toLowerCase() === _this.address; });
249
- if (!poolData)
250
- throw Error("Can't get Volume for ".concat(this.name, " (id: ").concat(this.id, ")"));
251
- return [2 /*return*/, poolData.volumeUSD.toString()];
230
+ if (poolData) {
231
+ return [2 /*return*/, poolData.volumeUSD.toString()];
232
+ }
233
+ throw Error("Can't get Volume for ".concat(this.name, " (id: ").concat(this.id, ")"));
252
234
  }
253
235
  });
254
236
  }); };
255
237
  this.statsBaseApy = function () { return __awaiter(_this, void 0, void 0, function () {
256
- var _c, mainPoolsData, factoryPoolsData, poolData_2, network, poolsData, poolData;
238
+ var network, poolsData, poolData;
257
239
  var _this = this;
258
- return __generator(this, function (_d) {
259
- switch (_d.label) {
240
+ return __generator(this, function (_c) {
241
+ switch (_c.label) {
260
242
  case 0:
261
- if (![56, 324, 1284, 2222, 8453, 42220, 1313161554].includes(curve.chainId)) return [3 /*break*/, 2];
262
- return [4 /*yield*/, Promise.all([
263
- _getLegacyAPYsAndVolumes(curve.constants.NETWORK_NAME),
264
- _getFactoryAPYsAndVolumes(curve.constants.NETWORK_NAME),
265
- ])];
243
+ network = curve.constants.NETWORK_NAME;
244
+ return [4 /*yield*/, getVolumeApiController(network)];
266
245
  case 1:
267
- _c = _d.sent(), mainPoolsData = _c[0], factoryPoolsData = _c[1];
268
- if (this.id in mainPoolsData) {
246
+ poolsData = (_c.sent()).poolsData;
247
+ poolData = poolsData.find(function (d) { return d.address.toLowerCase() === _this.address; });
248
+ if (poolData) {
269
249
  return [2 /*return*/, {
270
- day: mainPoolsData[this.id].apy.day.toString(),
271
- week: mainPoolsData[this.id].apy.week.toString(),
250
+ day: poolData.day.toString(),
251
+ week: poolData.week.toString(),
272
252
  }];
273
253
  }
274
- poolData_2 = factoryPoolsData.find(function (d) { return d.poolAddress.toLowerCase() === _this.address; });
275
- if (!poolData_2)
276
- throw Error("Can't get base APY for ".concat(this.name, " (id: ").concat(this.id, ")"));
277
- return [2 /*return*/, {
278
- day: poolData_2.apy.toString(),
279
- week: poolData_2.apy.toString(),
280
- }];
281
- case 2:
282
- network = curve.constants.NETWORK_NAME;
283
- return [4 /*yield*/, _getSubgraphData(network)];
284
- case 3:
285
- poolsData = (_d.sent()).poolsData;
286
- poolData = poolsData.find(function (d) { return d.address.toLowerCase() === _this.address; });
287
- if (!poolData)
288
- throw Error("Can't get base APY for ".concat(this.name, " (id: ").concat(this.id, ")"));
289
- return [2 /*return*/, {
290
- day: poolData.latestDailyApy.toString(),
291
- week: poolData.latestWeeklyApy.toString(),
292
- }];
254
+ throw Error("Can't get base APY for ".concat(this.name, " (id: ").concat(this.id, ")"));
293
255
  }
294
256
  });
295
257
  }); };
package/lib/utils.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Contract } from 'ethers';
2
2
  import BigNumber from 'bignumber.js';
3
- import { IChainId, IDict, INetworkName, IRewardFromApi, REFERENCE_ASSET } from './interfaces';
3
+ import { IChainId, IDict, INetworkName, IRewardFromApi, IVolumeAndAPYs, REFERENCE_ASSET } from './interfaces';
4
4
  export declare const ETH_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
5
5
  export declare const MAX_ALLOWANCE: bigint;
6
6
  export declare const _cutZeros: (strn: string) => string;
@@ -41,6 +41,7 @@ export declare const getGasPriceFromL1: () => Promise<number>;
41
41
  export declare const getGasPriceFromL2: () => Promise<number>;
42
42
  export declare const getTxCostsUsd: (ethUsdRate: number, gasPrice: number, gas: number | number[], gasPriceL1?: number) => number;
43
43
  export declare const getTVL: (network?: INetworkName | IChainId) => Promise<number>;
44
+ export declare const getVolumeApiController: (network: INetworkName) => Promise<IVolumeAndAPYs>;
44
45
  export declare const getVolume: (network?: INetworkName | IChainId) => Promise<{
45
46
  totalVolume: number;
46
47
  cryptoVolume: number;
package/lib/utils.js CHANGED
@@ -59,9 +59,10 @@ 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, _getFactoryAPYs, _getSubgraphData, _getVolumes, } 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
+ import { volumeNetworks } from "./constants/volumeNetworks";
65
66
  export var ETH_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
66
67
  // export const MAX_ALLOWANCE = curve.parseUnits(new BigNumber(2).pow(256).minus(1).toFixed(), 0);
67
68
  export var MAX_ALLOWANCE = BigInt("115792089237316195423570985008687907853269984665640564039457584007913129639935"); // 2**256 - 1
@@ -778,54 +779,36 @@ export var getTVL = function (network) {
778
779
  });
779
780
  });
780
781
  };
782
+ export var getVolumeApiController = function (network) { return __awaiter(void 0, void 0, void 0, function () {
783
+ return __generator(this, function (_a) {
784
+ switch (_a.label) {
785
+ case 0:
786
+ if (!volumeNetworks.getVolumes.includes(curve.chainId)) return [3 /*break*/, 2];
787
+ return [4 /*yield*/, _getVolumes(network)];
788
+ case 1: return [2 /*return*/, _a.sent()];
789
+ case 2:
790
+ if (!volumeNetworks.getFactoryAPYs.includes(curve.chainId)) return [3 /*break*/, 4];
791
+ return [4 /*yield*/, _getFactoryAPYs(network)];
792
+ case 3: return [2 /*return*/, _a.sent()];
793
+ case 4:
794
+ if (!volumeNetworks.getSubgraphData.includes(curve.chainId)) return [3 /*break*/, 6];
795
+ return [4 /*yield*/, _getSubgraphData(network)];
796
+ case 5: return [2 /*return*/, _a.sent()];
797
+ case 6: throw Error("Can't get volume for network: ".concat(network));
798
+ }
799
+ });
800
+ }); };
781
801
  export var getVolume = function (network) {
782
802
  if (network === void 0) { network = curve.chainId; }
783
803
  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) {
804
+ var _a, totalVolume, cryptoVolume, cryptoShare;
805
+ return __generator(this, function (_b) {
806
+ switch (_b.label) {
788
807
  case 0:
789
808
  network = _getNetworkName(network);
790
- if (!["zksync", "moonbeam", "kava", "base", "celo", "aurora", "bsc"].includes(network)) return [3 /*break*/, 8];
791
- chainId = _getChainId(network);
792
- if (curve.chainId !== chainId)
793
- throw Error("To get volume for ZkSync, Moonbeam, Kava, Base, Celo, Aurora or Bsc connect to the network first");
794
- return [4 /*yield*/, Promise.all([
795
- _getLegacyAPYsAndVolumes(network),
796
- _getFactoryAPYsAndVolumes(network),
797
- ])];
809
+ return [4 /*yield*/, getVolumeApiController(network)];
798
810
  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)];
812
- 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;
811
+ _a = _b.sent(), totalVolume = _a.totalVolume, cryptoVolume = _a.cryptoVolume, cryptoShare = _a.cryptoShare;
829
812
  return [2 /*return*/, { totalVolume: totalVolume, cryptoVolume: cryptoVolume, cryptoShare: cryptoShare }];
830
813
  }
831
814
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curvefi/api",
3
- "version": "2.53.6",
3
+ "version": "2.53.8",
4
4
  "description": "JavaScript library for curve.fi",
5
5
  "main": "lib/index.js",
6
6
  "author": "Macket",