@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.
- package/lib/external-api.d.ts +7 -2
- package/lib/external-api.js +39 -15
- package/lib/pools/PoolTemplate.js +10 -6
- package/lib/utils.js +14 -38
- package/package.json +1 -1
package/lib/external-api.d.ts
CHANGED
|
@@ -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<{
|
package/lib/external-api.js
CHANGED
|
@@ -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
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
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: '
|
|
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,
|
|
785
|
-
|
|
786
|
-
|
|
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*/,
|
|
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
|
-
|
|
796
|
-
|
|
794
|
+
_getTotalVolumes(network, 'stable'),
|
|
795
|
+
_getTotalVolumes(network, 'crypto'),
|
|
797
796
|
])];
|
|
798
797
|
case 1:
|
|
799
|
-
_a =
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
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 =
|
|
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
|
});
|