@curvefi/api 2.63.10 → 2.65.0
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/arbitrum.d.ts +0 -4
- package/lib/constants/coins/arbitrum.js +0 -4
- package/lib/constants/coins/aurora.d.ts +0 -4
- package/lib/constants/coins/aurora.js +0 -4
- package/lib/constants/coins/avalanche.d.ts +0 -3
- package/lib/constants/coins/avalanche.js +0 -3
- package/lib/constants/coins/base.d.ts +0 -4
- package/lib/constants/coins/base.js +0 -4
- package/lib/constants/coins/bsc.d.ts +0 -4
- package/lib/constants/coins/bsc.js +0 -4
- package/lib/constants/coins/celo.d.ts +0 -4
- package/lib/constants/coins/celo.js +0 -4
- package/lib/constants/coins/ethereum.js +4 -1
- package/lib/constants/coins/fantom.d.ts +0 -2
- package/lib/constants/coins/fantom.js +0 -2
- package/lib/constants/coins/fraxtal.d.ts +0 -4
- package/lib/constants/coins/fraxtal.js +0 -4
- package/lib/constants/coins/index.d.ts +18 -0
- package/lib/constants/coins/index.js +18 -0
- package/lib/constants/coins/kava.d.ts +0 -4
- package/lib/constants/coins/kava.js +0 -4
- package/lib/constants/coins/mantle.d.ts +0 -4
- package/lib/constants/coins/mantle.js +0 -4
- package/lib/constants/coins/moonbeam.d.ts +0 -4
- package/lib/constants/coins/moonbeam.js +0 -4
- package/lib/constants/coins/optimism.d.ts +0 -4
- package/lib/constants/coins/optimism.js +0 -4
- package/lib/constants/coins/polygon.d.ts +0 -3
- package/lib/constants/coins/polygon.js +0 -3
- package/lib/constants/coins/xdai.d.ts +0 -4
- package/lib/constants/coins/xdai.js +0 -4
- package/lib/constants/coins/xlayer.d.ts +0 -4
- package/lib/constants/coins/xlayer.js +0 -4
- package/lib/constants/coins/zksync.d.ts +0 -4
- package/lib/constants/coins/zksync.js +0 -4
- package/lib/constants/{tricryptoDeployImplementations.d.ts → factory/crypto.d.ts} +21 -0
- package/lib/constants/{tricryptoDeployImplementations.js → factory/crypto.js} +85 -0
- package/lib/constants/factory/index.d.ts +3 -0
- package/lib/constants/factory/index.js +3 -0
- package/lib/{factory/constants.d.ts → constants/factory/stable.d.ts} +6 -52
- package/lib/{factory/constants.js → constants/factory/stable.js} +41 -151
- package/lib/constants/network_constants.d.ts +3 -0
- package/lib/constants/{aliases.js → network_constants.js} +255 -97
- package/lib/curve.d.ts +22 -16
- package/lib/curve.js +96 -362
- package/lib/external-api.d.ts +5 -3
- package/lib/external-api.js +86 -12
- package/lib/factory/common.js +2 -3
- package/lib/factory/deploy.js +5 -4
- package/lib/factory/factory-api.js +53 -61
- package/lib/factory/factory-crypto.js +3 -3
- package/lib/factory/factory-tricrypto.js +2 -2
- package/lib/factory/factory.js +22 -11
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/interfaces.d.ts +26 -1
- package/lib/pools/PoolTemplate.d.ts +9 -82
- package/lib/pools/PoolTemplate.js +37 -379
- package/lib/pools/mixins/depositBalancedAmountsMixins.js +3 -3
- package/lib/pools/mixins/poolBalancesMixin.d.ts +3 -3
- package/lib/pools/mixins/poolBalancesMixin.js +11 -11
- package/lib/pools/poolConstructor.js +14 -7
- package/lib/pools/subClasses/corePool.d.ts +68 -0
- package/lib/pools/subClasses/corePool.js +39 -0
- package/lib/pools/{gaugePool.d.ts → subClasses/gaugePool.d.ts} +1 -1
- package/lib/pools/{gaugePool.js → subClasses/gaugePool.js} +2 -2
- package/lib/pools/subClasses/statsPool.d.ts +45 -0
- package/lib/pools/subClasses/statsPool.js +227 -0
- package/lib/pools/subClasses/walletPool.d.ts +19 -0
- package/lib/pools/subClasses/walletPool.js +72 -0
- package/lib/pools/utils.d.ts +1 -0
- package/lib/pools/utils.js +36 -0
- package/lib/route-graph.worker.js +50 -2
- package/lib/utils.d.ts +10 -1
- package/lib/utils.js +45 -7
- package/package.json +1 -1
- package/lib/constants/aliases.d.ts +0 -17
- package/lib/factory/constants-crypto.d.ts +0 -90
- package/lib/factory/constants-crypto.js +0 -122
package/lib/curve.js
CHANGED
|
@@ -9,6 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { ethers, Contract, AbstractProvider, } from "ethers";
|
|
11
11
|
import { Provider as MulticallProvider, Contract as MulticallContract } from "@curvefi/ethcall";
|
|
12
|
+
import { NETWORK_CONSTANTS } from "./constants/network_constants.js";
|
|
13
|
+
import { STABLE_FACTORY_CONSTANTS, CRYPTO_FACTORY_CONSTANTS } from "./constants/factory/index.js";
|
|
12
14
|
import { getFactoryPoolData } from "./factory/factory.js";
|
|
13
15
|
import { getFactoryPoolsDataFromApi } from "./factory/factory-api.js";
|
|
14
16
|
import { getCryptoFactoryPoolData } from "./factory/factory-crypto.js";
|
|
@@ -44,30 +46,12 @@ import gasOracleABI from './constants/abis/gas_oracle_optimism.json' assert { ty
|
|
|
44
46
|
import gasOracleBlobABI from './constants/abis/gas_oracle_optimism_blob.json' assert { type: 'json' };
|
|
45
47
|
import votingProposalABI from './constants/abis/voting_proposal.json' assert { type: 'json' };
|
|
46
48
|
import circulatingSupplyABI from './constants/abis/circulating_supply.json' assert { type: 'json' };
|
|
47
|
-
import rootGaugeFactoryABI from "./constants/abis/gauge_factory/root_gauge_factory.json";
|
|
48
|
-
import { POOLS_DATA_ETHEREUM, LLAMMAS_DATA_ETHEREUM, POOLS_DATA_POLYGON, POOLS_DATA_FANTOM, POOLS_DATA_AVALANCHE, POOLS_DATA_ARBITRUM, POOLS_DATA_OPTIMISM, POOLS_DATA_XDAI, POOLS_DATA_MOONBEAM, POOLS_DATA_AURORA, POOLS_DATA_KAVA, POOLS_DATA_CELO, POOLS_DATA_ZKSYNC, POOLS_DATA_BASE, POOLS_DATA_BSC, POOLS_DATA_FRAXTAL, POOLS_DATA_XLAYER, POOLS_DATA_MANTLE, } from './constants/pools/index.js';
|
|
49
|
-
import { ALIASES_ETHEREUM, ALIASES_OPTIMISM, ALIASES_POLYGON, ALIASES_FANTOM, ALIASES_AVALANCHE, ALIASES_ARBITRUM, ALIASES_XDAI, ALIASES_MOONBEAM, ALIASES_AURORA, ALIASES_KAVA, ALIASES_CELO, ALIASES_ZKSYNC, ALIASES_BASE, ALIASES_BSC, ALIASES_FRAXTAL, ALIASES_XLAYER, ALIASES_MANTLE, } from "./constants/aliases.js";
|
|
50
|
-
import { COINS_ETHEREUM, cTokensEthereum, yTokensEthereum, ycTokensEthereum, aTokensEthereum } from "./constants/coins/ethereum.js";
|
|
51
|
-
import { COINS_OPTIMISM, cTokensOptimism, yTokensOptimism, ycTokensOptimism, aTokensOptimism } from "./constants/coins/optimism.js";
|
|
52
|
-
import { COINS_POLYGON, cTokensPolygon, yTokensPolygon, ycTokensPolygon, aTokensPolygon } from "./constants/coins/polygon.js";
|
|
53
|
-
import { COINS_FANTOM, cTokensFantom, yTokensFantom, ycTokensFantom, aTokensFantom } from "./constants/coins/fantom.js";
|
|
54
|
-
import { COINS_AVALANCHE, cTokensAvalanche, yTokensAvalanche, ycTokensAvalanche, aTokensAvalanche } from "./constants/coins/avalanche.js";
|
|
55
|
-
import { COINS_ARBITRUM, cTokensArbitrum, yTokensArbitrum, ycTokensArbitrum, aTokensArbitrum } from "./constants/coins/arbitrum.js";
|
|
56
|
-
import { COINS_XDAI, cTokensXDai, yTokensXDai, ycTokensXDai, aTokensXDai } from "./constants/coins/xdai.js";
|
|
57
|
-
import { COINS_MOONBEAM, cTokensMoonbeam, yTokensMoonbeam, ycTokensMoonbeam, aTokensMoonbeam } from "./constants/coins/moonbeam.js";
|
|
58
|
-
import { COINS_AURORA, cTokensAurora, yTokensAurora, ycTokensAurora, aTokensAurora } from "./constants/coins/aurora.js";
|
|
59
|
-
import { COINS_KAVA, cTokensKava, yTokensKava, ycTokensKava, aTokensKava } from "./constants/coins/kava.js";
|
|
60
|
-
import { COINS_CELO, cTokensCelo, yTokensCelo, ycTokensCelo, aTokensCelo } from "./constants/coins/celo.js";
|
|
61
|
-
import { COINS_ZKSYNC, cTokensZkSync, yTokensZkSync, ycTokensZkSync, aTokensZkSync } from "./constants/coins/zksync.js";
|
|
62
|
-
import { COINS_BASE, cTokensBase, yTokensBase, ycTokensBase, aTokensBase } from "./constants/coins/base.js";
|
|
63
|
-
import { COINS_BSC, cTokensBsc, yTokensBsc, ycTokensBsc, aTokensBsc } from "./constants/coins/bsc.js";
|
|
64
|
-
import { COINS_FRAXTAL, cTokensFraxtal, yTokensFraxtal, ycTokensFraxtal, aTokensFraxtal } from "./constants/coins/fraxtal.js";
|
|
65
|
-
import { COINS_XLAYER, cTokensXLayer, yTokensXLayer, ycTokensXLayer, aTokensXLayer } from "./constants/coins/xlayer.js";
|
|
66
|
-
import { COINS_MANTLE, cTokensMantle, yTokensMantle, ycTokensMantle, aTokensMantle } from "./constants/coins/mantle.js";
|
|
49
|
+
import rootGaugeFactoryABI from "./constants/abis/gauge_factory/root_gauge_factory.json" assert { type: 'json' };
|
|
67
50
|
import { lowerCasePoolDataAddresses, extractDecimals, extractGauges } from "./constants/utils.js";
|
|
68
51
|
import { _getHiddenPools } from "./external-api.js";
|
|
69
52
|
import { L2Networks } from "./constants/L2Networks.js";
|
|
70
53
|
import { getTwocryptoFactoryPoolData } from "./factory/factory-twocrypto.js";
|
|
54
|
+
import { getNetworkConstants } from "./utils.js";
|
|
71
55
|
export const memoizedContract = () => {
|
|
72
56
|
const cache = {};
|
|
73
57
|
return (address, abi, provider) => {
|
|
@@ -94,290 +78,12 @@ export const memoizedMulticallContract = () => {
|
|
|
94
78
|
}
|
|
95
79
|
};
|
|
96
80
|
};
|
|
97
|
-
export const NATIVE_TOKENS = {
|
|
98
|
-
1: {
|
|
99
|
-
symbol: 'ETH',
|
|
100
|
-
wrappedSymbol: 'WETH',
|
|
101
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
102
|
-
wrappedAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'.toLowerCase(),
|
|
103
|
-
},
|
|
104
|
-
10: {
|
|
105
|
-
symbol: 'ETH',
|
|
106
|
-
wrappedSymbol: 'WETH',
|
|
107
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
108
|
-
wrappedAddress: '0x4200000000000000000000000000000000000006'.toLowerCase(),
|
|
109
|
-
},
|
|
110
|
-
56: {
|
|
111
|
-
symbol: 'BNB',
|
|
112
|
-
wrappedSymbol: 'WBNB',
|
|
113
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
114
|
-
wrappedAddress: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c'.toLowerCase(),
|
|
115
|
-
},
|
|
116
|
-
100: {
|
|
117
|
-
symbol: 'XDAi',
|
|
118
|
-
wrappedSymbol: 'WXDAI',
|
|
119
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
120
|
-
wrappedAddress: '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d'.toLowerCase(),
|
|
121
|
-
},
|
|
122
|
-
137: {
|
|
123
|
-
symbol: 'MATIC',
|
|
124
|
-
wrappedSymbol: 'WMATIC',
|
|
125
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
126
|
-
wrappedAddress: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270'.toLowerCase(),
|
|
127
|
-
},
|
|
128
|
-
196: {
|
|
129
|
-
symbol: 'OKB',
|
|
130
|
-
wrappedSymbol: 'WOKB',
|
|
131
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
132
|
-
wrappedAddress: '0xe538905cf8410324e03a5a23c1c177a474d59b2b'.toLowerCase(),
|
|
133
|
-
},
|
|
134
|
-
250: {
|
|
135
|
-
symbol: 'FTM',
|
|
136
|
-
wrappedSymbol: 'WFTM',
|
|
137
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
138
|
-
wrappedAddress: '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83'.toLowerCase(),
|
|
139
|
-
},
|
|
140
|
-
252: {
|
|
141
|
-
symbol: 'frxETH',
|
|
142
|
-
wrappedSymbol: 'wfrxETH',
|
|
143
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
144
|
-
wrappedAddress: '0xfc00000000000000000000000000000000000006'.toLowerCase(),
|
|
145
|
-
},
|
|
146
|
-
324: {
|
|
147
|
-
symbol: 'ETH',
|
|
148
|
-
wrappedSymbol: 'WETH',
|
|
149
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
150
|
-
wrappedAddress: '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91'.toLowerCase(),
|
|
151
|
-
},
|
|
152
|
-
1284: {
|
|
153
|
-
symbol: 'GLMR',
|
|
154
|
-
wrappedSymbol: 'WGLMR',
|
|
155
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
156
|
-
wrappedAddress: '0xAcc15dC74880C9944775448304B263D191c6077F'.toLowerCase(),
|
|
157
|
-
},
|
|
158
|
-
2222: {
|
|
159
|
-
symbol: 'KAVA',
|
|
160
|
-
wrappedSymbol: 'WKAVA',
|
|
161
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
162
|
-
wrappedAddress: '0xc86c7C0eFbd6A49B35E8714C5f59D99De09A225b'.toLowerCase(),
|
|
163
|
-
},
|
|
164
|
-
5000: {
|
|
165
|
-
symbol: 'MNT',
|
|
166
|
-
wrappedSymbol: 'WMNT',
|
|
167
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
168
|
-
wrappedAddress: '0x78c1b0c915c4faa5fffa6cabf0219da63d7f4cb8'.toLowerCase(),
|
|
169
|
-
},
|
|
170
|
-
8453: {
|
|
171
|
-
symbol: 'ETH',
|
|
172
|
-
wrappedSymbol: 'WETH',
|
|
173
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
174
|
-
wrappedAddress: '0x4200000000000000000000000000000000000006'.toLowerCase(),
|
|
175
|
-
},
|
|
176
|
-
42161: {
|
|
177
|
-
symbol: 'ETH',
|
|
178
|
-
wrappedSymbol: 'WETH',
|
|
179
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
180
|
-
wrappedAddress: '0x82af49447d8a07e3bd95bd0d56f35241523fbab1'.toLowerCase(),
|
|
181
|
-
},
|
|
182
|
-
42220: {
|
|
183
|
-
symbol: 'CELO',
|
|
184
|
-
wrappedSymbol: 'WCELO',
|
|
185
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
186
|
-
wrappedAddress: '0x3Ad443d769A07f287806874F8E5405cE3Ac902b9'.toLowerCase(),
|
|
187
|
-
},
|
|
188
|
-
43114: {
|
|
189
|
-
symbol: 'AVAX',
|
|
190
|
-
wrappedSymbol: 'WAVAX',
|
|
191
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
192
|
-
wrappedAddress: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7'.toLowerCase(),
|
|
193
|
-
},
|
|
194
|
-
1313161554: {
|
|
195
|
-
symbol: 'ETH',
|
|
196
|
-
wrappedSymbol: 'WETH',
|
|
197
|
-
address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
198
|
-
wrappedAddress: '0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB'.toLowerCase(),
|
|
199
|
-
},
|
|
200
|
-
};
|
|
201
|
-
export const NETWORK_CONSTANTS = {
|
|
202
|
-
1: {
|
|
203
|
-
NAME: 'ethereum',
|
|
204
|
-
ALIASES: ALIASES_ETHEREUM,
|
|
205
|
-
POOLS_DATA: POOLS_DATA_ETHEREUM,
|
|
206
|
-
LLAMMAS_DATA: LLAMMAS_DATA_ETHEREUM,
|
|
207
|
-
COINS: COINS_ETHEREUM,
|
|
208
|
-
cTokens: cTokensEthereum,
|
|
209
|
-
yTokens: yTokensEthereum,
|
|
210
|
-
ycTokens: ycTokensEthereum,
|
|
211
|
-
aTokens: aTokensEthereum,
|
|
212
|
-
},
|
|
213
|
-
10: {
|
|
214
|
-
NAME: 'optimism',
|
|
215
|
-
ALIASES: ALIASES_OPTIMISM,
|
|
216
|
-
POOLS_DATA: POOLS_DATA_OPTIMISM,
|
|
217
|
-
COINS: COINS_OPTIMISM,
|
|
218
|
-
cTokens: cTokensOptimism,
|
|
219
|
-
yTokens: yTokensOptimism,
|
|
220
|
-
ycTokens: ycTokensOptimism,
|
|
221
|
-
aTokens: aTokensOptimism,
|
|
222
|
-
},
|
|
223
|
-
56: {
|
|
224
|
-
NAME: 'bsc',
|
|
225
|
-
ALIASES: ALIASES_BSC,
|
|
226
|
-
POOLS_DATA: POOLS_DATA_BSC,
|
|
227
|
-
COINS: COINS_BSC,
|
|
228
|
-
cTokens: cTokensBsc,
|
|
229
|
-
yTokens: yTokensBsc,
|
|
230
|
-
ycTokens: ycTokensBsc,
|
|
231
|
-
aTokens: aTokensBsc,
|
|
232
|
-
},
|
|
233
|
-
100: {
|
|
234
|
-
NAME: 'xdai',
|
|
235
|
-
ALIASES: ALIASES_XDAI,
|
|
236
|
-
POOLS_DATA: POOLS_DATA_XDAI,
|
|
237
|
-
COINS: COINS_XDAI,
|
|
238
|
-
cTokens: cTokensXDai,
|
|
239
|
-
yTokens: yTokensXDai,
|
|
240
|
-
ycTokens: ycTokensXDai,
|
|
241
|
-
aTokens: aTokensXDai,
|
|
242
|
-
},
|
|
243
|
-
137: {
|
|
244
|
-
NAME: 'polygon',
|
|
245
|
-
ALIASES: ALIASES_POLYGON,
|
|
246
|
-
POOLS_DATA: POOLS_DATA_POLYGON,
|
|
247
|
-
COINS: COINS_POLYGON,
|
|
248
|
-
cTokens: cTokensPolygon,
|
|
249
|
-
yTokens: yTokensPolygon,
|
|
250
|
-
ycTokens: ycTokensPolygon,
|
|
251
|
-
aTokens: aTokensPolygon,
|
|
252
|
-
},
|
|
253
|
-
196: {
|
|
254
|
-
NAME: 'x-layer',
|
|
255
|
-
ALIASES: ALIASES_XLAYER,
|
|
256
|
-
POOLS_DATA: POOLS_DATA_XLAYER,
|
|
257
|
-
COINS: COINS_XLAYER,
|
|
258
|
-
cTokens: cTokensXLayer,
|
|
259
|
-
yTokens: yTokensXLayer,
|
|
260
|
-
ycTokens: ycTokensXLayer,
|
|
261
|
-
aTokens: aTokensXLayer,
|
|
262
|
-
},
|
|
263
|
-
250: {
|
|
264
|
-
NAME: 'fantom',
|
|
265
|
-
ALIASES: ALIASES_FANTOM,
|
|
266
|
-
POOLS_DATA: POOLS_DATA_FANTOM,
|
|
267
|
-
COINS: COINS_FANTOM,
|
|
268
|
-
cTokens: cTokensFantom,
|
|
269
|
-
yTokens: yTokensFantom,
|
|
270
|
-
ycTokens: ycTokensFantom,
|
|
271
|
-
aTokens: aTokensFantom,
|
|
272
|
-
},
|
|
273
|
-
252: {
|
|
274
|
-
NAME: 'fraxtal',
|
|
275
|
-
ALIASES: ALIASES_FRAXTAL,
|
|
276
|
-
POOLS_DATA: POOLS_DATA_FRAXTAL,
|
|
277
|
-
COINS: COINS_FRAXTAL,
|
|
278
|
-
cTokens: cTokensFraxtal,
|
|
279
|
-
yTokens: yTokensFraxtal,
|
|
280
|
-
ycTokens: ycTokensFraxtal,
|
|
281
|
-
aTokens: aTokensFraxtal,
|
|
282
|
-
},
|
|
283
|
-
324: {
|
|
284
|
-
NAME: 'zksync',
|
|
285
|
-
ALIASES: ALIASES_ZKSYNC,
|
|
286
|
-
POOLS_DATA: POOLS_DATA_ZKSYNC,
|
|
287
|
-
COINS: COINS_ZKSYNC,
|
|
288
|
-
cTokens: cTokensZkSync,
|
|
289
|
-
yTokens: yTokensZkSync,
|
|
290
|
-
ycTokens: ycTokensZkSync,
|
|
291
|
-
aTokens: aTokensZkSync,
|
|
292
|
-
},
|
|
293
|
-
1284: {
|
|
294
|
-
NAME: 'moonbeam',
|
|
295
|
-
ALIASES: ALIASES_MOONBEAM,
|
|
296
|
-
POOLS_DATA: POOLS_DATA_MOONBEAM,
|
|
297
|
-
COINS: COINS_MOONBEAM,
|
|
298
|
-
cTokens: cTokensMoonbeam,
|
|
299
|
-
yTokens: yTokensMoonbeam,
|
|
300
|
-
ycTokens: ycTokensMoonbeam,
|
|
301
|
-
aTokens: aTokensMoonbeam,
|
|
302
|
-
},
|
|
303
|
-
2222: {
|
|
304
|
-
NAME: 'kava',
|
|
305
|
-
ALIASES: ALIASES_KAVA,
|
|
306
|
-
POOLS_DATA: POOLS_DATA_KAVA,
|
|
307
|
-
COINS: COINS_KAVA,
|
|
308
|
-
cTokens: cTokensKava,
|
|
309
|
-
yTokens: yTokensKava,
|
|
310
|
-
ycTokens: ycTokensKava,
|
|
311
|
-
aTokens: aTokensKava,
|
|
312
|
-
},
|
|
313
|
-
5000: {
|
|
314
|
-
NAME: 'mantle',
|
|
315
|
-
ALIASES: ALIASES_MANTLE,
|
|
316
|
-
POOLS_DATA: POOLS_DATA_MANTLE,
|
|
317
|
-
COINS: COINS_MANTLE,
|
|
318
|
-
cTokens: cTokensMantle,
|
|
319
|
-
yTokens: yTokensMantle,
|
|
320
|
-
ycTokens: ycTokensMantle,
|
|
321
|
-
aTokens: aTokensMantle,
|
|
322
|
-
},
|
|
323
|
-
8453: {
|
|
324
|
-
NAME: 'base',
|
|
325
|
-
ALIASES: ALIASES_BASE,
|
|
326
|
-
POOLS_DATA: POOLS_DATA_BASE,
|
|
327
|
-
COINS: COINS_BASE,
|
|
328
|
-
cTokens: cTokensBase,
|
|
329
|
-
yTokens: yTokensBase,
|
|
330
|
-
ycTokens: ycTokensBase,
|
|
331
|
-
aTokens: aTokensBase,
|
|
332
|
-
},
|
|
333
|
-
42161: {
|
|
334
|
-
NAME: 'arbitrum',
|
|
335
|
-
ALIASES: ALIASES_ARBITRUM,
|
|
336
|
-
POOLS_DATA: POOLS_DATA_ARBITRUM,
|
|
337
|
-
COINS: COINS_ARBITRUM,
|
|
338
|
-
cTokens: cTokensArbitrum,
|
|
339
|
-
yTokens: yTokensArbitrum,
|
|
340
|
-
ycTokens: ycTokensArbitrum,
|
|
341
|
-
aTokens: aTokensArbitrum,
|
|
342
|
-
},
|
|
343
|
-
42220: {
|
|
344
|
-
NAME: 'celo',
|
|
345
|
-
ALIASES: ALIASES_CELO,
|
|
346
|
-
POOLS_DATA: POOLS_DATA_CELO,
|
|
347
|
-
COINS: COINS_CELO,
|
|
348
|
-
cTokens: cTokensCelo,
|
|
349
|
-
yTokens: yTokensCelo,
|
|
350
|
-
ycTokens: ycTokensCelo,
|
|
351
|
-
aTokens: aTokensCelo,
|
|
352
|
-
},
|
|
353
|
-
43114: {
|
|
354
|
-
NAME: 'avalanche',
|
|
355
|
-
ALIASES: ALIASES_AVALANCHE,
|
|
356
|
-
POOLS_DATA: POOLS_DATA_AVALANCHE,
|
|
357
|
-
COINS: COINS_AVALANCHE,
|
|
358
|
-
cTokens: cTokensAvalanche,
|
|
359
|
-
yTokens: yTokensAvalanche,
|
|
360
|
-
ycTokens: ycTokensAvalanche,
|
|
361
|
-
aTokens: aTokensAvalanche,
|
|
362
|
-
},
|
|
363
|
-
1313161554: {
|
|
364
|
-
NAME: 'aurora',
|
|
365
|
-
ALIASES: ALIASES_AURORA,
|
|
366
|
-
POOLS_DATA: POOLS_DATA_AURORA,
|
|
367
|
-
COINS: COINS_AURORA,
|
|
368
|
-
cTokens: cTokensAurora,
|
|
369
|
-
yTokens: yTokensAurora,
|
|
370
|
-
ycTokens: ycTokensAurora,
|
|
371
|
-
aTokens: aTokensAurora,
|
|
372
|
-
},
|
|
373
|
-
};
|
|
374
|
-
const OLD_CHAINS = [1, 10, 56, 100, 137, 250, 1284, 2222, 8453, 42161, 42220, 43114, 1313161554]; // these chains have non-ng pools
|
|
375
81
|
class Curve {
|
|
376
82
|
constructor() {
|
|
377
83
|
this.initContract = memoizedContract();
|
|
378
84
|
this.initMulticallContract = memoizedMulticallContract();
|
|
379
85
|
this.fetchFactoryPools = (useApi = true) => __awaiter(this, void 0, void 0, function* () {
|
|
380
|
-
if (
|
|
86
|
+
if (!("factory" in this.constants.ALIASES))
|
|
381
87
|
return;
|
|
382
88
|
if (useApi) {
|
|
383
89
|
this.constants.FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolsDataFromApi.call(this, "factory"));
|
|
@@ -390,7 +96,7 @@ class Curve {
|
|
|
390
96
|
this.constants.FACTORY_GAUGE_IMPLEMENTATIONS["factory"] = yield this.contracts[this.constants.ALIASES.factory].contract.gauge_implementation(this.constantOptions);
|
|
391
97
|
});
|
|
392
98
|
this.fetchCrvusdFactoryPools = (useApi = true) => __awaiter(this, void 0, void 0, function* () {
|
|
393
|
-
if (this.
|
|
99
|
+
if (!("crvusd_factory" in this.constants.ALIASES))
|
|
394
100
|
return;
|
|
395
101
|
if (useApi) {
|
|
396
102
|
this.constants.CRVUSD_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolsDataFromApi.call(this, "factory-crvusd"));
|
|
@@ -402,7 +108,7 @@ class Curve {
|
|
|
402
108
|
this._updateDecimalsAndGauges(this.constants.CRVUSD_FACTORY_POOLS_DATA);
|
|
403
109
|
});
|
|
404
110
|
this.fetchEywaFactoryPools = (useApi = true) => __awaiter(this, void 0, void 0, function* () {
|
|
405
|
-
if (this.
|
|
111
|
+
if (!("eywa_factory" in this.constants.ALIASES))
|
|
406
112
|
return;
|
|
407
113
|
if (useApi) {
|
|
408
114
|
this.constants.EYWA_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolsDataFromApi.call(this, "factory-eywa"));
|
|
@@ -414,7 +120,7 @@ class Curve {
|
|
|
414
120
|
this._updateDecimalsAndGauges(this.constants.EYWA_FACTORY_POOLS_DATA);
|
|
415
121
|
});
|
|
416
122
|
this.fetchCryptoFactoryPools = (useApi = true) => __awaiter(this, void 0, void 0, function* () {
|
|
417
|
-
if (!
|
|
123
|
+
if (!("crypto_factory" in this.constants.ALIASES))
|
|
418
124
|
return;
|
|
419
125
|
if (useApi) {
|
|
420
126
|
this.constants.CRYPTO_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolsDataFromApi.call(this, "factory-crypto"));
|
|
@@ -426,8 +132,20 @@ class Curve {
|
|
|
426
132
|
this._updateDecimalsAndGauges(this.constants.CRYPTO_FACTORY_POOLS_DATA);
|
|
427
133
|
this.constants.FACTORY_GAUGE_IMPLEMENTATIONS["factory-crypto"] = yield this.contracts[this.constants.ALIASES.crypto_factory].contract.gauge_implementation(this.constantOptions);
|
|
428
134
|
});
|
|
135
|
+
this.fetchStableNgFactoryPools = (useApi = true) => __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
if (!("stable_ng_factory" in this.constants.ALIASES))
|
|
137
|
+
return;
|
|
138
|
+
if (useApi) {
|
|
139
|
+
this.constants.STABLE_NG_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolsDataFromApi.call(this, "factory-stable-ng"));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
this.constants.STABLE_NG_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolData.call(this, 0, undefined, this.constants.ALIASES.stable_ng_factory));
|
|
143
|
+
}
|
|
144
|
+
this.constants.STABLE_NG_FACTORY_POOLS_DATA = yield this._filterHiddenPools(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
145
|
+
this._updateDecimalsAndGauges(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
146
|
+
});
|
|
429
147
|
this.fetchTworyptoFactoryPools = (useApi = true) => __awaiter(this, void 0, void 0, function* () {
|
|
430
|
-
if (
|
|
148
|
+
if (!("twocrypto_factory" in this.constants.ALIASES))
|
|
431
149
|
return;
|
|
432
150
|
if (useApi) {
|
|
433
151
|
this.constants.TWOCRYPTO_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolsDataFromApi.call(this, "factory-twocrypto"));
|
|
@@ -437,10 +155,17 @@ class Curve {
|
|
|
437
155
|
}
|
|
438
156
|
this.constants.TWOCRYPTO_FACTORY_POOLS_DATA = yield this._filterHiddenPools(this.constants.TWOCRYPTO_FACTORY_POOLS_DATA);
|
|
439
157
|
this._updateDecimalsAndGauges(this.constants.TWOCRYPTO_FACTORY_POOLS_DATA);
|
|
440
|
-
this.
|
|
158
|
+
if (this.chainId === 1) {
|
|
159
|
+
this.constants.FACTORY_GAUGE_IMPLEMENTATIONS["factory-twocrypto"] =
|
|
160
|
+
yield this.contracts[this.constants.ALIASES.twocrypto_factory].contract.gauge_implementation(this.constantOptions);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
this.constants.FACTORY_GAUGE_IMPLEMENTATIONS["factory-twocrypto"] =
|
|
164
|
+
yield this.contracts[this.constants.ALIASES.child_gauge_factory].contract.get_implementation(this.constantOptions);
|
|
165
|
+
}
|
|
441
166
|
});
|
|
442
167
|
this.fetchTricryptoFactoryPools = (useApi = true) => __awaiter(this, void 0, void 0, function* () {
|
|
443
|
-
if (
|
|
168
|
+
if (!("tricrypto_factory" in this.constants.ALIASES))
|
|
444
169
|
return;
|
|
445
170
|
if (useApi) {
|
|
446
171
|
this.constants.TRICRYPTO_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolsDataFromApi.call(this, "factory-tricrypto"));
|
|
@@ -459,20 +184,8 @@ class Curve {
|
|
|
459
184
|
yield this.contracts[this.constants.ALIASES.child_gauge_factory].contract.get_implementation(this.constantOptions);
|
|
460
185
|
}
|
|
461
186
|
});
|
|
462
|
-
this.fetchStableNgFactoryPools = (useApi = true) => __awaiter(this, void 0, void 0, function* () {
|
|
463
|
-
if (this.chainId === 1313161554)
|
|
464
|
-
return;
|
|
465
|
-
if (useApi) {
|
|
466
|
-
this.constants.STABLE_NG_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolsDataFromApi.call(this, "factory-stable-ng"));
|
|
467
|
-
}
|
|
468
|
-
else {
|
|
469
|
-
this.constants.STABLE_NG_FACTORY_POOLS_DATA = lowerCasePoolDataAddresses(yield getFactoryPoolData.call(this, 0, undefined, this.constants.ALIASES.stable_ng_factory));
|
|
470
|
-
}
|
|
471
|
-
this.constants.STABLE_NG_FACTORY_POOLS_DATA = yield this._filterHiddenPools(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
472
|
-
this._updateDecimalsAndGauges(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
473
|
-
});
|
|
474
187
|
this.fetchNewFactoryPools = () => __awaiter(this, void 0, void 0, function* () {
|
|
475
|
-
if (
|
|
188
|
+
if (!("factory" in this.constants.ALIASES))
|
|
476
189
|
return [];
|
|
477
190
|
const currentPoolIds = Object.keys(this.constants.FACTORY_POOLS_DATA);
|
|
478
191
|
const lastPoolIdx = currentPoolIds.length === 0 ? -1 : Number(currentPoolIds[currentPoolIds.length - 1].split("-")[2]);
|
|
@@ -481,16 +194,8 @@ class Curve {
|
|
|
481
194
|
this._updateDecimalsAndGauges(this.constants.FACTORY_POOLS_DATA);
|
|
482
195
|
return Object.keys(poolData);
|
|
483
196
|
});
|
|
484
|
-
this.fetchNewStableNgFactoryPools = () => __awaiter(this, void 0, void 0, function* () {
|
|
485
|
-
const currentPoolIds = Object.keys(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
486
|
-
const lastPoolIdx = currentPoolIds.length === 0 ? -1 : Number(currentPoolIds[currentPoolIds.length - 1].split("-")[3]);
|
|
487
|
-
const poolData = lowerCasePoolDataAddresses(yield getFactoryPoolData.call(this, lastPoolIdx + 1, undefined, this.constants.ALIASES.stable_ng_factory));
|
|
488
|
-
this.constants.STABLE_NG_FACTORY_POOLS_DATA = Object.assign(Object.assign({}, this.constants.STABLE_NG_FACTORY_POOLS_DATA), poolData);
|
|
489
|
-
this._updateDecimalsAndGauges(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
490
|
-
return Object.keys(poolData);
|
|
491
|
-
});
|
|
492
197
|
this.fetchNewCryptoFactoryPools = () => __awaiter(this, void 0, void 0, function* () {
|
|
493
|
-
if (!
|
|
198
|
+
if (!("crypto_factory" in this.constants.ALIASES))
|
|
494
199
|
return [];
|
|
495
200
|
const currentPoolIds = Object.keys(this.constants.CRYPTO_FACTORY_POOLS_DATA);
|
|
496
201
|
const lastPoolIdx = currentPoolIds.length === 0 ? -1 : Number(currentPoolIds[currentPoolIds.length - 1].split("-")[2]);
|
|
@@ -499,8 +204,18 @@ class Curve {
|
|
|
499
204
|
this._updateDecimalsAndGauges(this.constants.CRYPTO_FACTORY_POOLS_DATA);
|
|
500
205
|
return Object.keys(poolData);
|
|
501
206
|
});
|
|
207
|
+
this.fetchNewStableNgFactoryPools = () => __awaiter(this, void 0, void 0, function* () {
|
|
208
|
+
if (!("stable_ng_factory" in this.constants.ALIASES))
|
|
209
|
+
return [];
|
|
210
|
+
const currentPoolIds = Object.keys(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
211
|
+
const lastPoolIdx = currentPoolIds.length === 0 ? -1 : Number(currentPoolIds[currentPoolIds.length - 1].split("-")[3]);
|
|
212
|
+
const poolData = lowerCasePoolDataAddresses(yield getFactoryPoolData.call(this, lastPoolIdx + 1, undefined, this.constants.ALIASES.stable_ng_factory));
|
|
213
|
+
this.constants.STABLE_NG_FACTORY_POOLS_DATA = Object.assign(Object.assign({}, this.constants.STABLE_NG_FACTORY_POOLS_DATA), poolData);
|
|
214
|
+
this._updateDecimalsAndGauges(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
215
|
+
return Object.keys(poolData);
|
|
216
|
+
});
|
|
502
217
|
this.fetchNewTwocryptoFactoryPools = () => __awaiter(this, void 0, void 0, function* () {
|
|
503
|
-
if (
|
|
218
|
+
if (!("twocrypto_factory" in this.constants.ALIASES))
|
|
504
219
|
return [];
|
|
505
220
|
const currentPoolIds = Object.keys(this.constants.TWOCRYPTO_FACTORY_POOLS_DATA);
|
|
506
221
|
const lastPoolIdx = currentPoolIds.length === 0 ? -1 : Number(currentPoolIds[currentPoolIds.length - 1].split("-")[2]);
|
|
@@ -510,7 +225,7 @@ class Curve {
|
|
|
510
225
|
return Object.keys(poolData);
|
|
511
226
|
});
|
|
512
227
|
this.fetchNewTricryptoFactoryPools = () => __awaiter(this, void 0, void 0, function* () {
|
|
513
|
-
if (
|
|
228
|
+
if (!("tricrypto_factory" in this.constants.ALIASES))
|
|
514
229
|
return [];
|
|
515
230
|
const currentPoolIds = Object.keys(this.constants.TRICRYPTO_FACTORY_POOLS_DATA);
|
|
516
231
|
const lastPoolIdx = currentPoolIds.length === 0 ? -1 : Number(currentPoolIds[currentPoolIds.length - 1].split("-")[2]);
|
|
@@ -520,31 +235,31 @@ class Curve {
|
|
|
520
235
|
return Object.keys(poolData);
|
|
521
236
|
});
|
|
522
237
|
this.fetchRecentlyDeployedFactoryPool = (poolAddress) => __awaiter(this, void 0, void 0, function* () {
|
|
523
|
-
if (
|
|
238
|
+
if (!("factory" in this.constants.ALIASES))
|
|
524
239
|
return '';
|
|
525
240
|
const poolData = lowerCasePoolDataAddresses(yield getFactoryPoolData.call(this, 0, poolAddress));
|
|
526
241
|
this.constants.FACTORY_POOLS_DATA = Object.assign(Object.assign({}, this.constants.FACTORY_POOLS_DATA), poolData);
|
|
527
242
|
this._updateDecimalsAndGauges(this.constants.FACTORY_POOLS_DATA);
|
|
528
243
|
return Object.keys(poolData)[0]; // id
|
|
529
244
|
});
|
|
530
|
-
this.fetchRecentlyDeployedStableNgFactoryPool = (poolAddress) => __awaiter(this, void 0, void 0, function* () {
|
|
531
|
-
if (this.chainId === 1313161554)
|
|
532
|
-
return '';
|
|
533
|
-
const poolData = lowerCasePoolDataAddresses(yield getFactoryPoolData.call(this, 0, poolAddress, this.constants.ALIASES.stable_ng_factory));
|
|
534
|
-
this.constants.STABLE_NG_FACTORY_POOLS_DATA = Object.assign(Object.assign({}, this.constants.STABLE_NG_FACTORY_POOLS_DATA), poolData);
|
|
535
|
-
this._updateDecimalsAndGauges(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
536
|
-
return Object.keys(poolData)[0]; // id
|
|
537
|
-
});
|
|
538
245
|
this.fetchRecentlyDeployedCryptoFactoryPool = (poolAddress) => __awaiter(this, void 0, void 0, function* () {
|
|
539
|
-
if (!
|
|
246
|
+
if (!("crypto_factory" in this.constants.ALIASES))
|
|
540
247
|
return '';
|
|
541
248
|
const poolData = lowerCasePoolDataAddresses(yield getCryptoFactoryPoolData.call(this, 0, poolAddress));
|
|
542
249
|
this.constants.CRYPTO_FACTORY_POOLS_DATA = Object.assign(Object.assign({}, this.constants.CRYPTO_FACTORY_POOLS_DATA), poolData);
|
|
543
250
|
this._updateDecimalsAndGauges(this.constants.CRYPTO_FACTORY_POOLS_DATA);
|
|
544
251
|
return Object.keys(poolData)[0]; // id
|
|
545
252
|
});
|
|
253
|
+
this.fetchRecentlyDeployedStableNgFactoryPool = (poolAddress) => __awaiter(this, void 0, void 0, function* () {
|
|
254
|
+
if (!("stable_ng_factory" in this.constants.ALIASES))
|
|
255
|
+
return '';
|
|
256
|
+
const poolData = lowerCasePoolDataAddresses(yield getFactoryPoolData.call(this, 0, poolAddress, this.constants.ALIASES.stable_ng_factory));
|
|
257
|
+
this.constants.STABLE_NG_FACTORY_POOLS_DATA = Object.assign(Object.assign({}, this.constants.STABLE_NG_FACTORY_POOLS_DATA), poolData);
|
|
258
|
+
this._updateDecimalsAndGauges(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
259
|
+
return Object.keys(poolData)[0]; // id
|
|
260
|
+
});
|
|
546
261
|
this.fetchRecentlyDeployedTwocryptoFactoryPool = (poolAddress) => __awaiter(this, void 0, void 0, function* () {
|
|
547
|
-
if (
|
|
262
|
+
if (!("twocrypto_factory" in this.constants.ALIASES))
|
|
548
263
|
return '';
|
|
549
264
|
const poolData = lowerCasePoolDataAddresses(yield getTwocryptoFactoryPoolData.call(this, 0, poolAddress));
|
|
550
265
|
this.constants.TWOCRYPTO_FACTORY_POOLS_DATA = Object.assign(Object.assign({}, this.constants.TWOCRYPTO_FACTORY_POOLS_DATA), poolData);
|
|
@@ -552,7 +267,7 @@ class Curve {
|
|
|
552
267
|
return Object.keys(poolData)[0]; // id
|
|
553
268
|
});
|
|
554
269
|
this.fetchRecentlyDeployedTricryptoFactoryPool = (poolAddress) => __awaiter(this, void 0, void 0, function* () {
|
|
555
|
-
if (
|
|
270
|
+
if (!("tricrypto_factory" in this.constants.ALIASES))
|
|
556
271
|
return '';
|
|
557
272
|
const poolData = lowerCasePoolDataAddresses(yield getTricryptoFactoryPoolData.call(this, 0, poolAddress));
|
|
558
273
|
this.constants.TRICRYPTO_FACTORY_POOLS_DATA = Object.assign(Object.assign({}, this.constants.TRICRYPTO_FACTORY_POOLS_DATA), poolData);
|
|
@@ -564,9 +279,9 @@ class Curve {
|
|
|
564
279
|
this.getCrvusdFactoryPoolList = () => Object.keys(this.constants.CRVUSD_FACTORY_POOLS_DATA);
|
|
565
280
|
this.getEywaFactoryPoolList = () => Object.keys(this.constants.EYWA_FACTORY_POOLS_DATA);
|
|
566
281
|
this.getCryptoFactoryPoolList = () => Object.keys(this.constants.CRYPTO_FACTORY_POOLS_DATA);
|
|
282
|
+
this.getStableNgFactoryPoolList = () => Object.keys(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
567
283
|
this.getTworyptoFactoryPoolList = () => Object.keys(this.constants.TWOCRYPTO_FACTORY_POOLS_DATA);
|
|
568
284
|
this.getTricryptoFactoryPoolList = () => Object.keys(this.constants.TRICRYPTO_FACTORY_POOLS_DATA);
|
|
569
|
-
this.getStableNgFactoryPoolList = () => Object.keys(this.constants.STABLE_NG_FACTORY_POOLS_DATA);
|
|
570
285
|
this.getPoolList = () => {
|
|
571
286
|
return [
|
|
572
287
|
...this.getMainPoolList(),
|
|
@@ -574,12 +289,12 @@ class Curve {
|
|
|
574
289
|
...this.getCrvusdFactoryPoolList(),
|
|
575
290
|
...this.getEywaFactoryPoolList(),
|
|
576
291
|
...this.getCryptoFactoryPoolList(),
|
|
292
|
+
...this.getStableNgFactoryPoolList(),
|
|
577
293
|
...this.getTworyptoFactoryPoolList(),
|
|
578
294
|
...this.getTricryptoFactoryPoolList(),
|
|
579
|
-
...this.getStableNgFactoryPoolList(),
|
|
580
295
|
];
|
|
581
296
|
};
|
|
582
|
-
this.getPoolsData = () => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, this.constants.POOLS_DATA), this.constants.FACTORY_POOLS_DATA), this.constants.CRVUSD_FACTORY_POOLS_DATA), this.constants.EYWA_FACTORY_POOLS_DATA), this.constants.CRYPTO_FACTORY_POOLS_DATA), this.constants.
|
|
297
|
+
this.getPoolsData = () => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, this.constants.POOLS_DATA), this.constants.FACTORY_POOLS_DATA), this.constants.CRVUSD_FACTORY_POOLS_DATA), this.constants.EYWA_FACTORY_POOLS_DATA), this.constants.CRYPTO_FACTORY_POOLS_DATA), this.constants.STABLE_NG_FACTORY_POOLS_DATA), this.constants.TWOCRYPTO_FACTORY_POOLS_DATA), this.constants.TRICRYPTO_FACTORY_POOLS_DATA), this.constants.LLAMMAS_DATA));
|
|
583
298
|
this.getGaugeImplementation = (factoryType) => this.constants.FACTORY_GAUGE_IMPLEMENTATIONS[factoryType] || this.constants.ZERO_ADDRESS;
|
|
584
299
|
// @ts-ignore
|
|
585
300
|
this.provider = null;
|
|
@@ -587,6 +302,7 @@ class Curve {
|
|
|
587
302
|
this.signer = null;
|
|
588
303
|
this.signerAddress = '';
|
|
589
304
|
this.chainId = 1;
|
|
305
|
+
this.isLiteChain = false;
|
|
590
306
|
// @ts-ignore
|
|
591
307
|
this.multicallProvider = null;
|
|
592
308
|
this.contracts = {};
|
|
@@ -594,10 +310,12 @@ class Curve {
|
|
|
594
310
|
this.constantOptions = { gasLimit: 12000000 };
|
|
595
311
|
this.options = {};
|
|
596
312
|
this.constants = {
|
|
597
|
-
NATIVE_TOKEN:
|
|
313
|
+
NATIVE_TOKEN: NETWORK_CONSTANTS[1].NATIVE_COIN,
|
|
598
314
|
NETWORK_NAME: 'ethereum',
|
|
599
315
|
ALIASES: {},
|
|
600
316
|
POOLS_DATA: {},
|
|
317
|
+
STABLE_FACTORY_CONSTANTS: {},
|
|
318
|
+
CRYPTO_FACTORY_CONSTANTS: {},
|
|
601
319
|
FACTORY_POOLS_DATA: {},
|
|
602
320
|
CRVUSD_FACTORY_POOLS_DATA: {},
|
|
603
321
|
EYWA_FACTORY_POOLS_DATA: {},
|
|
@@ -616,7 +334,7 @@ class Curve {
|
|
|
616
334
|
}
|
|
617
335
|
init(providerType, providerSettings, options = {} // gasPrice in Gwei
|
|
618
336
|
) {
|
|
619
|
-
var _a;
|
|
337
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
620
338
|
return __awaiter(this, void 0, void 0, function* () {
|
|
621
339
|
// @ts-ignore
|
|
622
340
|
this.provider = null;
|
|
@@ -631,10 +349,12 @@ class Curve {
|
|
|
631
349
|
this.constantOptions = { gasLimit: 12000000 };
|
|
632
350
|
this.options = {};
|
|
633
351
|
this.constants = {
|
|
634
|
-
NATIVE_TOKEN:
|
|
352
|
+
NATIVE_TOKEN: NETWORK_CONSTANTS[1].NATIVE_COIN,
|
|
635
353
|
NETWORK_NAME: 'ethereum',
|
|
636
354
|
ALIASES: {},
|
|
637
355
|
POOLS_DATA: {},
|
|
356
|
+
STABLE_FACTORY_CONSTANTS: {},
|
|
357
|
+
CRYPTO_FACTORY_CONSTANTS: {},
|
|
638
358
|
FACTORY_POOLS_DATA: {},
|
|
639
359
|
CRVUSD_FACTORY_POOLS_DATA: {},
|
|
640
360
|
EYWA_FACTORY_POOLS_DATA: {},
|
|
@@ -703,28 +423,36 @@ class Curve {
|
|
|
703
423
|
const network = yield this.provider.getNetwork();
|
|
704
424
|
console.log("CURVE-JS IS CONNECTED TO NETWORK:", { name: network.name.toUpperCase(), chainId: Number(network.chainId) });
|
|
705
425
|
this.chainId = Number(network.chainId) === 133 || Number(network.chainId) === 31337 ? 1 : Number(network.chainId);
|
|
706
|
-
this.
|
|
707
|
-
|
|
708
|
-
this.constants.
|
|
426
|
+
this.isLiteChain = !(this.chainId in NETWORK_CONSTANTS);
|
|
427
|
+
const network_constants = yield getNetworkConstants(this.chainId, this.isLiteChain);
|
|
428
|
+
this.constants.NATIVE_TOKEN = network_constants.NATIVE_COIN;
|
|
429
|
+
this.constants.NETWORK_NAME = network_constants.NAME;
|
|
430
|
+
this.constants.ALIASES = network_constants.ALIASES;
|
|
709
431
|
this.constants.ALIASES.anycall = "0x37414a8662bc1d25be3ee51fb27c2686e2490a89";
|
|
710
432
|
this.constants.ALIASES.voting_escrow_oracle = "0x12F407340697Ae0b177546E535b91A5be021fBF9";
|
|
711
|
-
this.constants.POOLS_DATA =
|
|
712
|
-
|
|
713
|
-
this.constants.LLAMMAS_DATA = NETWORK_CONSTANTS[this.chainId].LLAMMAS_DATA;
|
|
433
|
+
this.constants.POOLS_DATA = (_b = network_constants.POOLS_DATA) !== null && _b !== void 0 ? _b : {};
|
|
434
|
+
this.constants.LLAMMAS_DATA = (_c = network_constants.LLAMMAS_DATA) !== null && _c !== void 0 ? _c : {};
|
|
714
435
|
for (const poolId in this.constants.POOLS_DATA)
|
|
715
436
|
this.constants.POOLS_DATA[poolId].in_api = true;
|
|
716
|
-
this.constants.COINS =
|
|
437
|
+
this.constants.COINS = (_d = network_constants.COINS) !== null && _d !== void 0 ? _d : {};
|
|
717
438
|
this.constants.DECIMALS = extractDecimals(Object.assign(Object.assign({}, this.constants.POOLS_DATA), this.constants.LLAMMAS_DATA));
|
|
718
439
|
this.constants.DECIMALS[this.constants.NATIVE_TOKEN.address] = 18;
|
|
719
440
|
this.constants.DECIMALS[this.constants.NATIVE_TOKEN.wrappedAddress] = 18;
|
|
720
441
|
this.constants.GAUGES = extractGauges(this.constants.POOLS_DATA);
|
|
721
442
|
const [cTokens, yTokens, ycTokens, aTokens] = [
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
443
|
+
(_e = network_constants.cTokens) !== null && _e !== void 0 ? _e : [],
|
|
444
|
+
(_f = network_constants.yTokens) !== null && _f !== void 0 ? _f : [],
|
|
445
|
+
(_g = network_constants.ycTokens) !== null && _g !== void 0 ? _g : [],
|
|
446
|
+
(_h = network_constants.aTokens) !== null && _h !== void 0 ? _h : [],
|
|
726
447
|
];
|
|
727
448
|
const customAbiTokens = [...cTokens, ...yTokens, ...ycTokens, ...aTokens];
|
|
449
|
+
if (this.isLiteChain) {
|
|
450
|
+
this.constants.STABLE_FACTORY_CONSTANTS.stableNgBasePoolZap = network_constants.stableNgBasePoolZap;
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
this.constants.STABLE_FACTORY_CONSTANTS = (_j = STABLE_FACTORY_CONSTANTS[this.chainId]) !== null && _j !== void 0 ? _j : {};
|
|
454
|
+
this.constants.CRYPTO_FACTORY_CONSTANTS = (_k = CRYPTO_FACTORY_CONSTANTS[this.chainId]) !== null && _k !== void 0 ? _k : {};
|
|
455
|
+
}
|
|
728
456
|
if (this.chainId === 5000) {
|
|
729
457
|
this.constantOptions = {};
|
|
730
458
|
}
|
|
@@ -785,6 +513,8 @@ class Curve {
|
|
|
785
513
|
this.setContract(this.constants.NATIVE_TOKEN.wrappedAddress, ERC20Abi);
|
|
786
514
|
this.setContract(this.constants.ALIASES.crv, ERC20Abi);
|
|
787
515
|
this.constants.DECIMALS[this.constants.ALIASES.crv] = 18;
|
|
516
|
+
this.setContract(this.constants.COINS.scrvusd, ERC20Abi);
|
|
517
|
+
this.constants.DECIMALS[this.constants.COINS.scrvusd] = 18;
|
|
788
518
|
if (this.chainId === 1) {
|
|
789
519
|
this.setContract(this.constants.ALIASES.minter, minterMainnetABI);
|
|
790
520
|
this.setContract(this.constants.ALIASES.fee_distributor_crvusd, feeDistributorCrvUSDABI);
|
|
@@ -804,7 +534,7 @@ class Curve {
|
|
|
804
534
|
if (this.chainId == 137) {
|
|
805
535
|
this.setContract(this.constants.ALIASES.router, routerPolygonABI);
|
|
806
536
|
}
|
|
807
|
-
else if (
|
|
537
|
+
else if ("factory" in this.constants.ALIASES) {
|
|
808
538
|
this.setContract(this.constants.ALIASES.router, routerABI);
|
|
809
539
|
}
|
|
810
540
|
else {
|
|
@@ -813,8 +543,9 @@ class Curve {
|
|
|
813
543
|
this.setContract(this.constants.ALIASES.deposit_and_stake, depositAndStakeABI);
|
|
814
544
|
this.setContract(this.constants.ALIASES.crypto_calc, cryptoCalcZapABI);
|
|
815
545
|
this.setContract(this.constants.ALIASES.stable_calc, StableCalcZapABI);
|
|
816
|
-
|
|
817
|
-
if (
|
|
546
|
+
// --------- POOL FACTORY ---------
|
|
547
|
+
if ("factory" in this.constants.ALIASES) {
|
|
548
|
+
this.setContract(this.constants.ALIASES.factory, factoryABI);
|
|
818
549
|
const factoryContract = this.contracts[this.constants.ALIASES.factory].contract;
|
|
819
550
|
this.constants.ALIASES.factory_admin = (yield factoryContract.admin(this.constantOptions)).toLowerCase();
|
|
820
551
|
this.setContract(this.constants.ALIASES.factory_admin, factoryAdminABI);
|
|
@@ -822,6 +553,7 @@ class Curve {
|
|
|
822
553
|
this.setContract(this.constants.ALIASES.crvusd_factory, factoryABI);
|
|
823
554
|
this.setContract(this.constants.ALIASES.eywa_factory, factoryEywaABI);
|
|
824
555
|
this.setContract(this.constants.ALIASES.crypto_factory, cryptoFactoryABI);
|
|
556
|
+
this.setContract(this.constants.ALIASES.stable_ng_factory, stableNgFactoryABI);
|
|
825
557
|
this.setContract(this.constants.ALIASES.twocrypto_factory, twocryptoFactoryABI);
|
|
826
558
|
if (this.chainId == 1) {
|
|
827
559
|
this.setContract(this.constants.ALIASES.tricrypto_factory, tricryptoFactoryMainnetABI);
|
|
@@ -829,7 +561,7 @@ class Curve {
|
|
|
829
561
|
else {
|
|
830
562
|
this.setContract(this.constants.ALIASES.tricrypto_factory, tricryptoFactorySidechainABI);
|
|
831
563
|
}
|
|
832
|
-
|
|
564
|
+
// --------------------------------
|
|
833
565
|
this.setContract(this.constants.ALIASES.anycall, anycallABI);
|
|
834
566
|
this.setContract(this.constants.ALIASES.voting_escrow_oracle, this.chainId === 1 ? votingEscrowOracleEthABI : votingEscrowOracleABI);
|
|
835
567
|
if (this.chainId === 1) {
|
|
@@ -883,6 +615,8 @@ class Curve {
|
|
|
883
615
|
});
|
|
884
616
|
}
|
|
885
617
|
setContract(address, abi) {
|
|
618
|
+
if (address === this.constants.ZERO_ADDRESS || address === undefined)
|
|
619
|
+
return;
|
|
886
620
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
887
621
|
const curveInstance = this;
|
|
888
622
|
const proxyHandler = {
|