@curvefi/api 2.16.0 → 2.16.2
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/constants/coins/ethereum.js +2 -1
- package/lib/constants/pools/arbitrum.js +0 -4
- package/lib/constants/pools/optimism.js +2 -3
- package/lib/constants/pools/xdai.js +3 -2
- package/lib/index.d.ts +2 -2
- package/lib/pools/PoolTemplate.js +10 -3
- package/lib/pools/utils.d.ts +1 -1
- package/lib/pools/utils.js +63 -68
- package/package.json +1 -1
|
@@ -41,7 +41,8 @@ exports.LINK_COINS_ETHEREUM = {
|
|
|
41
41
|
exports.EUR_COINS_ETHEREUM = {
|
|
42
42
|
eurs: "0xdB25f211AB05b1c97D595516F45794528a807ad8",
|
|
43
43
|
seur: "0xD71eCFF9342A5Ced620049e616c5035F1dB98620",
|
|
44
|
-
eurt: "0xC581b735A1688071A1746c968e0798D642EDE491",
|
|
44
|
+
eurt: "0xC581b735A1688071A1746c968e0798D642EDE491",
|
|
45
|
+
euroc: "0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c",
|
|
45
46
|
};
|
|
46
47
|
exports.USD_COINS_ETHEREUM = {
|
|
47
48
|
ycdai: "0x99d1Fa417f94dcD62BfE781a1213c092a47041Bc",
|
|
@@ -21,7 +21,6 @@ exports.POOLS_DATA_ARBITRUM = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
|
21
21
|
reference_asset: "USD",
|
|
22
22
|
swap_address: '0x7f90122bf0700f9e7e1f688fe926940e8839f353',
|
|
23
23
|
token_address: '0x7f90122bf0700f9e7e1f688fe926940e8839f353',
|
|
24
|
-
// gauge_address: '0xbF7E49483881C76487b0989CD7d9A8239B20CA41', // Rewards-Only
|
|
25
24
|
gauge_address: '0xCE5F24B7A95e9cBa7df4B54E911B4A3Dc8CDAf6f',
|
|
26
25
|
is_plain: true,
|
|
27
26
|
underlying_coins: ['USDC', 'USDT'],
|
|
@@ -47,7 +46,6 @@ exports.POOLS_DATA_ARBITRUM = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
|
47
46
|
is_crypto: true,
|
|
48
47
|
swap_address: '0x960ea3e3C7FB317332d990873d354E18d7645590',
|
|
49
48
|
token_address: '0x8e0B8c8BB9db49a46697F3a5Bb8A308e744821D2',
|
|
50
|
-
// gauge_address: '0x97E2768e8E73511cA874545DC5Ff8067eB19B787', // Rewards-Only
|
|
51
49
|
gauge_address: '0x555766f3da968ecBefa690Ffd49A2Ac02f47aa5f',
|
|
52
50
|
deposit_address: '0xF97c707024ef0DD3E77a0824555a46B622bfB500',
|
|
53
51
|
underlying_coins: ['USDT', 'WBTC', 'ETH'],
|
|
@@ -76,7 +74,6 @@ exports.POOLS_DATA_ARBITRUM = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
|
76
74
|
is_plain: true,
|
|
77
75
|
swap_address: '0x3E01dD8a5E1fb3481F0F589056b428Fc308AF0Fb',
|
|
78
76
|
token_address: '0x3E01dD8a5E1fb3481F0F589056b428Fc308AF0Fb',
|
|
79
|
-
// gauge_address: '0xC2b1DF84112619D190193E48148000e3990Bf627', // Rewards-Only
|
|
80
77
|
gauge_address: '0xDB3fd1bfC67b5D4325cb31C04E0Cae52f1787FD6',
|
|
81
78
|
underlying_coins: ['WBTC', 'renBTC'],
|
|
82
79
|
wrapped_coins: ['WBTC', 'renBTC'],
|
|
@@ -100,7 +97,6 @@ exports.POOLS_DATA_ARBITRUM = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
|
100
97
|
reference_asset: 'CRYPTO',
|
|
101
98
|
swap_address: '0xA827a652Ead76c6B0b3D19dba05452E06e25c27e',
|
|
102
99
|
token_address: '0x3dFe1324A0ee9d86337d06aEB829dEb4528DB9CA',
|
|
103
|
-
// gauge_address: '0x37C7ef6B0E23C9bd9B620A6daBbFEC13CE30D824', // Rewards-Only
|
|
104
100
|
gauge_address: '0x6339eF8Df0C2d3d3E7eE697E241666a916B81587',
|
|
105
101
|
deposit_address: '0x25e2e8d104BC1A70492e2BE32dA7c1f8367F9d2c',
|
|
106
102
|
is_meta: true,
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.POOLS_DATA_OPTIMISM = void 0;
|
|
7
7
|
var swap_json_1 = __importDefault(require("../abis/3pool-optimism/swap.json"));
|
|
8
8
|
var swap_json_2 = __importDefault(require("../abis/wsteth/swap.json"));
|
|
9
|
-
var gauge_rewards_only_json_1 = __importDefault(require("../abis/gauge_rewards_only.json"));
|
|
10
9
|
var gauge_child_json_1 = __importDefault(require("../abis/gauge_child.json"));
|
|
11
10
|
var utils_1 = require("../utils");
|
|
12
11
|
exports.POOLS_DATA_OPTIMISM = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
@@ -18,7 +17,7 @@ exports.POOLS_DATA_OPTIMISM = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
|
18
17
|
is_plain: true,
|
|
19
18
|
swap_address: '0x1337BedC9D22ecbe766dF105c9623922A27963EC',
|
|
20
19
|
token_address: '0x1337BedC9D22ecbe766dF105c9623922A27963EC',
|
|
21
|
-
gauge_address: '
|
|
20
|
+
gauge_address: '0x15F52286C0FF1d7A7dDbC9E300dd66628D46D4e6',
|
|
22
21
|
underlying_coins: ['DAI', 'USDC', 'USDT'],
|
|
23
22
|
wrapped_coins: ['DAI', 'USDC', 'USDT'],
|
|
24
23
|
underlying_coin_addresses: [
|
|
@@ -34,7 +33,7 @@ exports.POOLS_DATA_OPTIMISM = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
|
34
33
|
underlying_decimals: [18, 6, 6],
|
|
35
34
|
wrapped_decimals: [18, 6, 6],
|
|
36
35
|
swap_abi: swap_json_1.default,
|
|
37
|
-
gauge_abi:
|
|
36
|
+
gauge_abi: gauge_child_json_1.default,
|
|
38
37
|
},
|
|
39
38
|
wsteth: {
|
|
40
39
|
name: "wsteth",
|
|
@@ -10,6 +10,7 @@ var deposit_json_1 = __importDefault(require("../abis/rai/deposit.json"));
|
|
|
10
10
|
var swap_json_3 = __importDefault(require("../abis/tricrypto-xdai/swap.json"));
|
|
11
11
|
var zap_json_1 = __importDefault(require("../abis/tricrypto-xdai/zap.json"));
|
|
12
12
|
var gauge_rewards_only_json_1 = __importDefault(require("../abis/gauge_rewards_only.json"));
|
|
13
|
+
var gauge_child_json_1 = __importDefault(require("../abis/gauge_child.json"));
|
|
13
14
|
var streamer_json_1 = __importDefault(require("../abis/streamer.json"));
|
|
14
15
|
var utils_1 = require("../utils");
|
|
15
16
|
exports.POOLS_DATA_XDAI = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
@@ -20,7 +21,7 @@ exports.POOLS_DATA_XDAI = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
|
20
21
|
reference_asset: 'USD',
|
|
21
22
|
swap_address: '0x7f90122BF0700F9E7e1F688fe926940E8839F353',
|
|
22
23
|
token_address: '0x1337BedC9D22ecbe766dF105c9623922A27963EC',
|
|
23
|
-
gauge_address: '
|
|
24
|
+
gauge_address: '0xb721cc32160ab0da2614cc6ab16ed822aeebc101',
|
|
24
25
|
sCurveRewards_address: '0x6C09F6727113543Fd061a721da512B7eFCDD0267',
|
|
25
26
|
is_plain: true,
|
|
26
27
|
underlying_coins: ['WXDAI', 'USDC', 'USDT'],
|
|
@@ -38,7 +39,7 @@ exports.POOLS_DATA_XDAI = (0, utils_1.lowerCasePoolDataAddresses)({
|
|
|
38
39
|
underlying_decimals: [18, 6, 6],
|
|
39
40
|
wrapped_decimals: [18, 6, 6],
|
|
40
41
|
swap_abi: swap_json_1.default,
|
|
41
|
-
gauge_abi:
|
|
42
|
+
gauge_abi: gauge_child_json_1.default,
|
|
42
43
|
sCurveRewards_abi: streamer_json_1.default,
|
|
43
44
|
},
|
|
44
45
|
rai: {
|
package/lib/index.d.ts
CHANGED
|
@@ -32,8 +32,8 @@ declare const curve: {
|
|
|
32
32
|
getPoolList: () => string[];
|
|
33
33
|
getFactoryPoolList: () => string[];
|
|
34
34
|
getCryptoFactoryPoolList: () => string[];
|
|
35
|
-
getUserPoolList: (address?: string
|
|
36
|
-
getUserLiquidityUSD: (pools: string[], address?: string
|
|
35
|
+
getUserPoolList: (address?: string) => Promise<string[]>;
|
|
36
|
+
getUserLiquidityUSD: (pools: string[], address?: string) => Promise<string[]>;
|
|
37
37
|
PoolTemplate: typeof PoolTemplate;
|
|
38
38
|
getPool: (poolId: string) => PoolTemplate;
|
|
39
39
|
getUsdRate: (coin: string) => Promise<number>;
|
|
@@ -365,16 +365,18 @@ var PoolTemplate = /** @class */ (function () {
|
|
|
365
365
|
if (isDeposit === void 0) { isDeposit = true; }
|
|
366
366
|
if (useUnderlying === void 0) { useUnderlying = true; }
|
|
367
367
|
return __awaiter(_this, void 0, void 0, function () {
|
|
368
|
-
var
|
|
368
|
+
var _rates, e_1, lpContract, _lpTotalSupply, decimals_1, amounts, seedAmounts_1, N_coins, decimals_2, calcContractAddress, calcContract, poolContract, lpContract, calls, res, _c, _totalSupply, _fee, _lpTokenAmount, balances, _d, totalSupplyBN, feeBN, lpTokenAmountBN, balancesBN, amountsBN, feesBN, i, _fees, _lpTokenFee, e_2, lpContract, _lpTotalSupply, decimals_3, amounts_1, _amounts18Decimals;
|
|
369
369
|
return __generator(this, function (_e) {
|
|
370
370
|
switch (_e.label) {
|
|
371
371
|
case 0:
|
|
372
|
+
_rates = [];
|
|
372
373
|
if (!(!this.isMeta && useUnderlying)) return [3 /*break*/, 2];
|
|
373
374
|
return [4 /*yield*/, this._getRates()];
|
|
374
375
|
case 1:
|
|
375
|
-
|
|
376
|
+
// For lending pools. For others rate = 1
|
|
377
|
+
_rates = _e.sent();
|
|
376
378
|
_amounts = _amounts.map(function (_amount, i) {
|
|
377
|
-
return _amount.mul(ethers_1.ethers.BigNumber.from(10).pow(18)).div(
|
|
379
|
+
return _amount.mul(ethers_1.ethers.BigNumber.from(10).pow(18)).div(_rates[i]);
|
|
378
380
|
});
|
|
379
381
|
_e.label = 2;
|
|
380
382
|
case 2:
|
|
@@ -443,6 +445,11 @@ var PoolTemplate = /** @class */ (function () {
|
|
|
443
445
|
}
|
|
444
446
|
}
|
|
445
447
|
_fees = feesBN.map(function (fBN, i) { return (0, utils_1.fromBN)(fBN, decimals_2[i]); });
|
|
448
|
+
if (!this.isMeta && useUnderlying) {
|
|
449
|
+
_fees = _fees.map(function (_fee, i) {
|
|
450
|
+
return _fee.mul(ethers_1.ethers.BigNumber.from(10).pow(18)).div(_rates[i]);
|
|
451
|
+
});
|
|
452
|
+
}
|
|
446
453
|
return [4 /*yield*/, this._pureCalcLpTokenAmount(_fees, !isDeposit, useUnderlying)];
|
|
447
454
|
case 10:
|
|
448
455
|
_lpTokenFee = _e.sent();
|
package/lib/pools/utils.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import { ethers } from "ethers";
|
|
|
2
2
|
export declare const getPoolList: () => string[];
|
|
3
3
|
export declare const getFactoryPoolList: () => string[];
|
|
4
4
|
export declare const getCryptoFactoryPoolList: () => string[];
|
|
5
|
-
export declare const _getUserLpBalances: (pools: string[], address
|
|
5
|
+
export declare const _getUserLpBalances: (pools: string[], address: string, useCache: boolean) => Promise<ethers.BigNumber[]>;
|
|
6
6
|
export declare const getUserPoolList: (address?: string) => Promise<string[]>;
|
|
7
7
|
export declare const getUserLiquidityUSD: (pools: string[], address?: string) => Promise<string[]>;
|
package/lib/pools/utils.js
CHANGED
|
@@ -57,29 +57,18 @@ exports.getFactoryPoolList = getFactoryPoolList;
|
|
|
57
57
|
var getCryptoFactoryPoolList = function () { return Object.keys(curve_1.curve.constants.CRYPTO_FACTORY_POOLS_DATA); };
|
|
58
58
|
exports.getCryptoFactoryPoolList = getCryptoFactoryPoolList;
|
|
59
59
|
var _userLpBalance = {};
|
|
60
|
-
var _isUserLpBalanceExpired = function (address, poolId) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
var _d;
|
|
67
|
-
return __generator(this, function (_e) {
|
|
68
|
-
switch (_e.label) {
|
|
60
|
+
var _isUserLpBalanceExpired = function (address, poolId) { var _a, _b; return (((_b = (_a = _userLpBalance[address]) === null || _a === void 0 ? void 0 : _a[poolId]) === null || _b === void 0 ? void 0 : _b.time) || 0) + 600000 < Date.now(); };
|
|
61
|
+
var _getUserLpBalances = function (pools, address, useCache) { return __awaiter(void 0, void 0, void 0, function () {
|
|
62
|
+
var poolsToFetch, calls, _i, poolsToFetch_1, poolId, pool, _rawBalances, _a, poolsToFetch_2, poolId, pool, _balance, _lpBalances, _b, pools_1, poolId;
|
|
63
|
+
var _c;
|
|
64
|
+
return __generator(this, function (_d) {
|
|
65
|
+
switch (_d.label) {
|
|
69
66
|
case 0:
|
|
70
|
-
|
|
71
|
-
address = curve_1.curve.signerAddress;
|
|
72
|
-
address = address;
|
|
73
|
-
poolsToFetch = [];
|
|
74
|
-
for (_i = 0, pools_1 = pools; _i < pools_1.length; _i++) {
|
|
75
|
-
poolId = pools_1[_i];
|
|
76
|
-
if (_isUserLpBalanceExpired(address, poolId))
|
|
77
|
-
poolsToFetch.push(poolId);
|
|
78
|
-
}
|
|
67
|
+
poolsToFetch = useCache ? pools.filter(function (poolId) { return _isUserLpBalanceExpired(address, poolId); }) : pools;
|
|
79
68
|
if (!(poolsToFetch.length > 0)) return [3 /*break*/, 2];
|
|
80
69
|
calls = [];
|
|
81
|
-
for (
|
|
82
|
-
poolId = poolsToFetch_1[
|
|
70
|
+
for (_i = 0, poolsToFetch_1 = poolsToFetch; _i < poolsToFetch_1.length; _i++) {
|
|
71
|
+
poolId = poolsToFetch_1[_i];
|
|
83
72
|
pool = (0, poolConstructor_1.getPool)(poolId);
|
|
84
73
|
calls.push(curve_1.curve.contracts[pool.lpToken].multicallContract.balanceOf(address));
|
|
85
74
|
if (pool.gauge !== ethers_1.ethers.constants.AddressZero)
|
|
@@ -87,9 +76,9 @@ var _getUserLpBalances = function (pools, address) { return __awaiter(void 0, vo
|
|
|
87
76
|
}
|
|
88
77
|
return [4 /*yield*/, curve_1.curve.multicallProvider.all(calls)];
|
|
89
78
|
case 1:
|
|
90
|
-
_rawBalances =
|
|
91
|
-
for (
|
|
92
|
-
poolId = poolsToFetch_2[
|
|
79
|
+
_rawBalances = _d.sent();
|
|
80
|
+
for (_a = 0, poolsToFetch_2 = poolsToFetch; _a < poolsToFetch_2.length; _a++) {
|
|
81
|
+
poolId = poolsToFetch_2[_a];
|
|
93
82
|
pool = (0, poolConstructor_1.getPool)(poolId);
|
|
94
83
|
_balance = _rawBalances.shift();
|
|
95
84
|
if (pool.gauge !== ethers_1.ethers.constants.AddressZero)
|
|
@@ -98,61 +87,67 @@ var _getUserLpBalances = function (pools, address) { return __awaiter(void 0, vo
|
|
|
98
87
|
_userLpBalance[address] = {};
|
|
99
88
|
_userLpBalance[address][poolId] = { '_lpBalance': _balance, 'time': Date.now() };
|
|
100
89
|
}
|
|
101
|
-
|
|
90
|
+
_d.label = 2;
|
|
102
91
|
case 2:
|
|
103
92
|
_lpBalances = [];
|
|
104
|
-
for (
|
|
105
|
-
poolId =
|
|
106
|
-
_lpBalances.push((
|
|
93
|
+
for (_b = 0, pools_1 = pools; _b < pools_1.length; _b++) {
|
|
94
|
+
poolId = pools_1[_b];
|
|
95
|
+
_lpBalances.push((_c = _userLpBalance[address]) === null || _c === void 0 ? void 0 : _c[poolId]._lpBalance);
|
|
107
96
|
}
|
|
108
97
|
return [2 /*return*/, _lpBalances];
|
|
109
98
|
}
|
|
110
99
|
});
|
|
111
100
|
}); };
|
|
112
101
|
exports._getUserLpBalances = _getUserLpBalances;
|
|
113
|
-
var getUserPoolList = function (address) {
|
|
114
|
-
|
|
115
|
-
return
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
102
|
+
var getUserPoolList = function (address) {
|
|
103
|
+
if (address === void 0) { address = curve_1.curve.signerAddress; }
|
|
104
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
105
|
+
var pools, _lpBalances, userPoolList, i;
|
|
106
|
+
return __generator(this, function (_a) {
|
|
107
|
+
switch (_a.label) {
|
|
108
|
+
case 0:
|
|
109
|
+
pools = __spreadArray(__spreadArray(__spreadArray([], (0, exports.getPoolList)(), true), (0, exports.getFactoryPoolList)(), true), (0, exports.getCryptoFactoryPoolList)(), true);
|
|
110
|
+
return [4 /*yield*/, (0, exports._getUserLpBalances)(pools, address, false)];
|
|
111
|
+
case 1:
|
|
112
|
+
_lpBalances = _a.sent();
|
|
113
|
+
userPoolList = [];
|
|
114
|
+
for (i = 0; i < pools.length; i++) {
|
|
115
|
+
if (_lpBalances[i].gt(0)) {
|
|
116
|
+
userPoolList.push(pools[i]);
|
|
117
|
+
}
|
|
126
118
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}
|
|
119
|
+
return [2 /*return*/, userPoolList];
|
|
120
|
+
}
|
|
121
|
+
});
|
|
130
122
|
});
|
|
131
|
-
}
|
|
123
|
+
};
|
|
132
124
|
exports.getUserPoolList = getUserPoolList;
|
|
133
|
-
var getUserLiquidityUSD = function (pools, address) {
|
|
134
|
-
|
|
135
|
-
return
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
125
|
+
var getUserLiquidityUSD = function (pools, address) {
|
|
126
|
+
if (address === void 0) { address = curve_1.curve.signerAddress; }
|
|
127
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
128
|
+
var _lpBalances, userLiquidityUSD, i, pool, price;
|
|
129
|
+
return __generator(this, function (_a) {
|
|
130
|
+
switch (_a.label) {
|
|
131
|
+
case 0: return [4 /*yield*/, (0, exports._getUserLpBalances)(pools, address, true)];
|
|
132
|
+
case 1:
|
|
133
|
+
_lpBalances = _a.sent();
|
|
134
|
+
userLiquidityUSD = [];
|
|
135
|
+
i = 0;
|
|
136
|
+
_a.label = 2;
|
|
137
|
+
case 2:
|
|
138
|
+
if (!(i < pools.length)) return [3 /*break*/, 5];
|
|
139
|
+
pool = (0, poolConstructor_1.getPool)(pools[i]);
|
|
140
|
+
return [4 /*yield*/, (0, utils_1._getUsdRate)(pool.lpToken)];
|
|
141
|
+
case 3:
|
|
142
|
+
price = _a.sent();
|
|
143
|
+
userLiquidityUSD.push((0, utils_1.toBN)(_lpBalances[i]).times(price).toFixed(8));
|
|
144
|
+
_a.label = 4;
|
|
145
|
+
case 4:
|
|
146
|
+
i++;
|
|
147
|
+
return [3 /*break*/, 2];
|
|
148
|
+
case 5: return [2 /*return*/, userLiquidityUSD];
|
|
149
|
+
}
|
|
150
|
+
});
|
|
156
151
|
});
|
|
157
|
-
}
|
|
152
|
+
};
|
|
158
153
|
exports.getUserLiquidityUSD = getUserLiquidityUSD;
|