@gearbox-protocol/sdk 1.24.0 → 1.24.1
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/contracts/AdapterData.sol +290 -0
- package/contracts/AdapterType.sol +28 -0
- package/contracts/PriceFeedDataLive.sol +353 -0
- package/contracts/SupportedContracts.sol +309 -0
- package/contracts/Tokens.sol +97 -0
- package/contracts/TokensData.sol +704 -0
- package/contracts/TokensLib.sol +34 -0
- package/package.json +3 -2
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
|
2
|
+
// Gearbox. Generalized leverage protocol that allows to take leverage and then use it across other DeFi protocols and platforms in a composable way.
|
|
3
|
+
// (c) Gearbox Holdings, 2022
|
|
4
|
+
pragma solidity ^0.8.17;
|
|
5
|
+
|
|
6
|
+
import {Tokens} from "./Tokens.sol";
|
|
7
|
+
import {Contracts} from "./SupportedContracts.sol";
|
|
8
|
+
import {AdapterType} from "./AdapterType.sol";
|
|
9
|
+
|
|
10
|
+
struct SimpleAdapter {
|
|
11
|
+
Contracts targetContract;
|
|
12
|
+
AdapterType adapterType;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
struct CurveAdapter {
|
|
16
|
+
Contracts targetContract;
|
|
17
|
+
AdapterType adapterType;
|
|
18
|
+
Tokens lpToken;
|
|
19
|
+
Contracts basePool;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
struct CurveStETHAdapter {
|
|
23
|
+
Contracts curveETHGateway;
|
|
24
|
+
AdapterType adapterType;
|
|
25
|
+
Tokens lpToken;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
struct CurveWrapper {
|
|
29
|
+
Contracts targetContract;
|
|
30
|
+
AdapterType adapterType;
|
|
31
|
+
Tokens lpToken;
|
|
32
|
+
uint256 nCoins;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
struct ConvexBasePoolAdapter {
|
|
36
|
+
Contracts targetContract;
|
|
37
|
+
AdapterType adapterType;
|
|
38
|
+
Tokens stakedToken;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
contract AdapterData {
|
|
42
|
+
SimpleAdapter[] simpleAdapters;
|
|
43
|
+
CurveAdapter[] curveAdapters;
|
|
44
|
+
CurveStETHAdapter curveStEthAdapter;
|
|
45
|
+
CurveWrapper[] curveWrappers;
|
|
46
|
+
ConvexBasePoolAdapter[] convexBasePoolAdapters;
|
|
47
|
+
|
|
48
|
+
constructor() {
|
|
49
|
+
simpleAdapters.push(
|
|
50
|
+
SimpleAdapter({targetContract: Contracts.UNISWAP_V2_ROUTER, adapterType: AdapterType.UNISWAP_V2_ROUTER})
|
|
51
|
+
);
|
|
52
|
+
simpleAdapters.push(
|
|
53
|
+
SimpleAdapter({targetContract: Contracts.UNISWAP_V3_ROUTER, adapterType: AdapterType.UNISWAP_V3_ROUTER})
|
|
54
|
+
);
|
|
55
|
+
simpleAdapters.push(
|
|
56
|
+
SimpleAdapter({targetContract: Contracts.SUSHISWAP_ROUTER, adapterType: AdapterType.UNISWAP_V2_ROUTER})
|
|
57
|
+
);
|
|
58
|
+
simpleAdapters.push(
|
|
59
|
+
SimpleAdapter({targetContract: Contracts.YEARN_DAI_VAULT, adapterType: AdapterType.YEARN_V2})
|
|
60
|
+
);
|
|
61
|
+
simpleAdapters.push(
|
|
62
|
+
SimpleAdapter({targetContract: Contracts.YEARN_USDC_VAULT, adapterType: AdapterType.YEARN_V2})
|
|
63
|
+
);
|
|
64
|
+
simpleAdapters.push(
|
|
65
|
+
SimpleAdapter({targetContract: Contracts.YEARN_WETH_VAULT, adapterType: AdapterType.YEARN_V2})
|
|
66
|
+
);
|
|
67
|
+
simpleAdapters.push(
|
|
68
|
+
SimpleAdapter({targetContract: Contracts.YEARN_WBTC_VAULT, adapterType: AdapterType.YEARN_V2})
|
|
69
|
+
);
|
|
70
|
+
simpleAdapters.push(
|
|
71
|
+
SimpleAdapter({targetContract: Contracts.YEARN_CURVE_FRAX_VAULT, adapterType: AdapterType.YEARN_V2})
|
|
72
|
+
);
|
|
73
|
+
simpleAdapters.push(
|
|
74
|
+
SimpleAdapter({targetContract: Contracts.YEARN_CURVE_STETH_VAULT, adapterType: AdapterType.YEARN_V2})
|
|
75
|
+
);
|
|
76
|
+
simpleAdapters.push(
|
|
77
|
+
SimpleAdapter({targetContract: Contracts.CONVEX_BOOSTER, adapterType: AdapterType.CONVEX_V1_BOOSTER})
|
|
78
|
+
);
|
|
79
|
+
simpleAdapters.push(
|
|
80
|
+
SimpleAdapter({targetContract: Contracts.LIDO_STETH_GATEWAY, adapterType: AdapterType.LIDO_V1})
|
|
81
|
+
);
|
|
82
|
+
simpleAdapters.push(
|
|
83
|
+
SimpleAdapter({targetContract: Contracts.LIDO_WSTETH, adapterType: AdapterType.LIDO_WSTETH_V1})
|
|
84
|
+
);
|
|
85
|
+
simpleAdapters.push(
|
|
86
|
+
SimpleAdapter({targetContract: Contracts.UNIVERSAL_ADAPTER, adapterType: AdapterType.UNIVERSAL})
|
|
87
|
+
);
|
|
88
|
+
curveAdapters.push(
|
|
89
|
+
CurveAdapter({
|
|
90
|
+
targetContract: Contracts.CURVE_3CRV_POOL,
|
|
91
|
+
adapterType: AdapterType.CURVE_V1_3ASSETS,
|
|
92
|
+
lpToken: Tokens._3Crv,
|
|
93
|
+
basePool: Contracts.NO_CONTRACT
|
|
94
|
+
})
|
|
95
|
+
);
|
|
96
|
+
curveAdapters.push(
|
|
97
|
+
CurveAdapter({
|
|
98
|
+
targetContract: Contracts.CURVE_FRAX_USDC_POOL,
|
|
99
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
100
|
+
lpToken: Tokens.crvFRAX,
|
|
101
|
+
basePool: Contracts.NO_CONTRACT
|
|
102
|
+
})
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
curveAdapters.push(
|
|
106
|
+
CurveAdapter({
|
|
107
|
+
targetContract: Contracts.CURVE_FRAX_POOL,
|
|
108
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
109
|
+
lpToken: Tokens.FRAX3CRV,
|
|
110
|
+
basePool: Contracts.CURVE_3CRV_POOL
|
|
111
|
+
})
|
|
112
|
+
);
|
|
113
|
+
curveAdapters.push(
|
|
114
|
+
CurveAdapter({
|
|
115
|
+
targetContract: Contracts.CURVE_LUSD_POOL,
|
|
116
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
117
|
+
lpToken: Tokens.LUSD3CRV,
|
|
118
|
+
basePool: Contracts.CURVE_3CRV_POOL
|
|
119
|
+
})
|
|
120
|
+
);
|
|
121
|
+
curveAdapters.push(
|
|
122
|
+
CurveAdapter({
|
|
123
|
+
targetContract: Contracts.CURVE_SUSD_POOL,
|
|
124
|
+
adapterType: AdapterType.CURVE_V1_4ASSETS,
|
|
125
|
+
lpToken: Tokens.crvPlain3andSUSD,
|
|
126
|
+
basePool: Contracts.NO_CONTRACT
|
|
127
|
+
})
|
|
128
|
+
);
|
|
129
|
+
curveAdapters.push(
|
|
130
|
+
CurveAdapter({
|
|
131
|
+
targetContract: Contracts.CURVE_GUSD_POOL,
|
|
132
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
133
|
+
lpToken: Tokens.gusd3CRV,
|
|
134
|
+
basePool: Contracts.CURVE_3CRV_POOL
|
|
135
|
+
})
|
|
136
|
+
);
|
|
137
|
+
curveAdapters.push(
|
|
138
|
+
CurveAdapter({
|
|
139
|
+
targetContract: Contracts.CURVE_OHMFRAXBP_POOL,
|
|
140
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
141
|
+
lpToken: Tokens.OHMFRAXBP,
|
|
142
|
+
basePool: Contracts.NO_CONTRACT
|
|
143
|
+
})
|
|
144
|
+
);
|
|
145
|
+
curveAdapters.push(
|
|
146
|
+
CurveAdapter({
|
|
147
|
+
targetContract: Contracts.CURVE_MIM_POOL,
|
|
148
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
149
|
+
lpToken: Tokens.MIM_3LP3CRV,
|
|
150
|
+
basePool: Contracts.CURVE_3CRV_POOL
|
|
151
|
+
})
|
|
152
|
+
);
|
|
153
|
+
curveAdapters.push(
|
|
154
|
+
CurveAdapter({
|
|
155
|
+
targetContract: Contracts.CURVE_CRVETH_POOL,
|
|
156
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
157
|
+
lpToken: Tokens.crvCRVETH,
|
|
158
|
+
basePool: Contracts.NO_CONTRACT
|
|
159
|
+
})
|
|
160
|
+
);
|
|
161
|
+
curveAdapters.push(
|
|
162
|
+
CurveAdapter({
|
|
163
|
+
targetContract: Contracts.CURVE_CVXETH_POOL,
|
|
164
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
165
|
+
lpToken: Tokens.crvCVXETH,
|
|
166
|
+
basePool: Contracts.NO_CONTRACT
|
|
167
|
+
})
|
|
168
|
+
);
|
|
169
|
+
curveAdapters.push(
|
|
170
|
+
CurveAdapter({
|
|
171
|
+
targetContract: Contracts.CURVE_3CRYPTO_POOL,
|
|
172
|
+
adapterType: AdapterType.CURVE_V1_3ASSETS,
|
|
173
|
+
lpToken: Tokens.crvUSDTWBTCWETH,
|
|
174
|
+
basePool: Contracts.NO_CONTRACT
|
|
175
|
+
})
|
|
176
|
+
);
|
|
177
|
+
curveAdapters.push(
|
|
178
|
+
CurveAdapter({
|
|
179
|
+
targetContract: Contracts.CURVE_LDOETH_POOL,
|
|
180
|
+
adapterType: AdapterType.CURVE_V1_2ASSETS,
|
|
181
|
+
lpToken: Tokens.LDOETH,
|
|
182
|
+
basePool: Contracts.NO_CONTRACT
|
|
183
|
+
})
|
|
184
|
+
);
|
|
185
|
+
curveStEthAdapter = CurveStETHAdapter({
|
|
186
|
+
curveETHGateway: Contracts.CURVE_STETH_GATEWAY,
|
|
187
|
+
adapterType: AdapterType.CURVE_V1_STECRV_POOL,
|
|
188
|
+
lpToken: Tokens.steCRV
|
|
189
|
+
});
|
|
190
|
+
curveWrappers.push(
|
|
191
|
+
CurveWrapper({
|
|
192
|
+
targetContract: Contracts.CURVE_SUSD_DEPOSIT,
|
|
193
|
+
adapterType: AdapterType.CURVE_V1_WRAPPER,
|
|
194
|
+
lpToken: Tokens.crvPlain3andSUSD,
|
|
195
|
+
nCoins: 4
|
|
196
|
+
})
|
|
197
|
+
);
|
|
198
|
+
convexBasePoolAdapters.push(
|
|
199
|
+
ConvexBasePoolAdapter({
|
|
200
|
+
targetContract: Contracts.CONVEX_3CRV_POOL,
|
|
201
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
202
|
+
stakedToken: Tokens.stkcvx3Crv
|
|
203
|
+
})
|
|
204
|
+
);
|
|
205
|
+
convexBasePoolAdapters.push(
|
|
206
|
+
ConvexBasePoolAdapter({
|
|
207
|
+
targetContract: Contracts.CONVEX_FRAX_USDC_POOL,
|
|
208
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
209
|
+
stakedToken: Tokens.stkcvxcrvFRAX
|
|
210
|
+
})
|
|
211
|
+
);
|
|
212
|
+
convexBasePoolAdapters.push(
|
|
213
|
+
ConvexBasePoolAdapter({
|
|
214
|
+
targetContract: Contracts.CONVEX_GUSD_POOL,
|
|
215
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
216
|
+
stakedToken: Tokens.stkcvxgusd3CRV
|
|
217
|
+
})
|
|
218
|
+
);
|
|
219
|
+
convexBasePoolAdapters.push(
|
|
220
|
+
ConvexBasePoolAdapter({
|
|
221
|
+
targetContract: Contracts.CONVEX_SUSD_POOL,
|
|
222
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
223
|
+
stakedToken: Tokens.stkcvxcrvPlain3andSUSD
|
|
224
|
+
})
|
|
225
|
+
);
|
|
226
|
+
convexBasePoolAdapters.push(
|
|
227
|
+
ConvexBasePoolAdapter({
|
|
228
|
+
targetContract: Contracts.CONVEX_STECRV_POOL,
|
|
229
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
230
|
+
stakedToken: Tokens.stkcvxsteCRV
|
|
231
|
+
})
|
|
232
|
+
);
|
|
233
|
+
convexBasePoolAdapters.push(
|
|
234
|
+
ConvexBasePoolAdapter({
|
|
235
|
+
targetContract: Contracts.CONVEX_FRAX3CRV_POOL,
|
|
236
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
237
|
+
stakedToken: Tokens.stkcvxFRAX3CRV
|
|
238
|
+
})
|
|
239
|
+
);
|
|
240
|
+
convexBasePoolAdapters.push(
|
|
241
|
+
ConvexBasePoolAdapter({
|
|
242
|
+
targetContract: Contracts.CONVEX_LUSD3CRV_POOL,
|
|
243
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
244
|
+
stakedToken: Tokens.stkcvxLUSD3CRV
|
|
245
|
+
})
|
|
246
|
+
);
|
|
247
|
+
convexBasePoolAdapters.push(
|
|
248
|
+
ConvexBasePoolAdapter({
|
|
249
|
+
targetContract: Contracts.CONVEX_OHMFRAXBP_POOL,
|
|
250
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
251
|
+
stakedToken: Tokens.stkcvxOHMFRAXBP
|
|
252
|
+
})
|
|
253
|
+
);
|
|
254
|
+
convexBasePoolAdapters.push(
|
|
255
|
+
ConvexBasePoolAdapter({
|
|
256
|
+
targetContract: Contracts.CONVEX_MIM3CRV_POOL,
|
|
257
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
258
|
+
stakedToken: Tokens.stkcvxMIM_3LP3CRV
|
|
259
|
+
})
|
|
260
|
+
);
|
|
261
|
+
convexBasePoolAdapters.push(
|
|
262
|
+
ConvexBasePoolAdapter({
|
|
263
|
+
targetContract: Contracts.CONVEX_CRVETH_POOL,
|
|
264
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
265
|
+
stakedToken: Tokens.stkcvxcrvCRVETH
|
|
266
|
+
})
|
|
267
|
+
);
|
|
268
|
+
convexBasePoolAdapters.push(
|
|
269
|
+
ConvexBasePoolAdapter({
|
|
270
|
+
targetContract: Contracts.CONVEX_CVXETH_POOL,
|
|
271
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
272
|
+
stakedToken: Tokens.stkcvxcrvCVXETH
|
|
273
|
+
})
|
|
274
|
+
);
|
|
275
|
+
convexBasePoolAdapters.push(
|
|
276
|
+
ConvexBasePoolAdapter({
|
|
277
|
+
targetContract: Contracts.CONVEX_3CRYPTO_POOL,
|
|
278
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
279
|
+
stakedToken: Tokens.stkcvxcrvUSDTWBTCWETH
|
|
280
|
+
})
|
|
281
|
+
);
|
|
282
|
+
convexBasePoolAdapters.push(
|
|
283
|
+
ConvexBasePoolAdapter({
|
|
284
|
+
targetContract: Contracts.CONVEX_LDOETH_POOL,
|
|
285
|
+
adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL,
|
|
286
|
+
stakedToken: Tokens.stkcvxLDOETH
|
|
287
|
+
})
|
|
288
|
+
);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
|
2
|
+
// Gearbox. Generalized leverage protocol that allows to take leverage and then use it across other DeFi protocols and platforms in a composable way.
|
|
3
|
+
// (c) Gearbox Holdings, 2022
|
|
4
|
+
pragma solidity ^0.8.17;
|
|
5
|
+
|
|
6
|
+
enum AdapterType {
|
|
7
|
+
ABSTRACT,
|
|
8
|
+
UNISWAP_V2_ROUTER,
|
|
9
|
+
UNISWAP_V3_ROUTER,
|
|
10
|
+
CURVE_V1_EXCHANGE_ONLY,
|
|
11
|
+
YEARN_V2,
|
|
12
|
+
CURVE_V1_2ASSETS,
|
|
13
|
+
CURVE_V1_3ASSETS,
|
|
14
|
+
CURVE_V1_4ASSETS,
|
|
15
|
+
CURVE_V1_STECRV_POOL,
|
|
16
|
+
CURVE_V1_WRAPPER,
|
|
17
|
+
CONVEX_V1_BASE_REWARD_POOL,
|
|
18
|
+
CONVEX_V1_BOOSTER,
|
|
19
|
+
CONVEX_V1_CLAIM_ZAP,
|
|
20
|
+
LIDO_V1,
|
|
21
|
+
UNIVERSAL,
|
|
22
|
+
LIDO_WSTETH_V1,
|
|
23
|
+
BALANCER_VAULT,
|
|
24
|
+
AAVE_V2_LENDING_POOL,
|
|
25
|
+
AAVE_V2_WRAPPED_ATOKEN,
|
|
26
|
+
COMPOUND_V2_CERC20,
|
|
27
|
+
COMPOUND_V2_CETHER
|
|
28
|
+
}
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
|
2
|
+
// Gearbox. Generalized leverage protocol that allows to take leverage and then use it across other DeFi protocols and platforms in a composable way.
|
|
3
|
+
// (c) Gearbox Holdings, 2022
|
|
4
|
+
pragma solidity ^0.8.17;
|
|
5
|
+
|
|
6
|
+
import {Tokens} from "./Tokens.sol";
|
|
7
|
+
import {Contracts} from "./SupportedContracts.sol";
|
|
8
|
+
|
|
9
|
+
import {TokensLib} from "./TokensLib.sol";
|
|
10
|
+
|
|
11
|
+
struct ChainlinkPriceFeedData {
|
|
12
|
+
Tokens token;
|
|
13
|
+
address priceFeed;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
struct CurvePriceFeedData {
|
|
17
|
+
Tokens lpToken;
|
|
18
|
+
Tokens[] assets;
|
|
19
|
+
Contracts pool;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
struct CurveLikePriceFeedData {
|
|
23
|
+
Tokens lpToken;
|
|
24
|
+
Tokens curveToken;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
struct SingeTokenPriceFeedData {
|
|
28
|
+
Tokens token;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
struct CompositePriceFeedData {
|
|
32
|
+
Tokens token;
|
|
33
|
+
address targetToBaseFeed;
|
|
34
|
+
address baseToUSDFeed;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
struct BoundedPriceFeedData {
|
|
38
|
+
Tokens token;
|
|
39
|
+
address priceFeed;
|
|
40
|
+
uint256 upperBound;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
contract PriceFeedDataLive {
|
|
44
|
+
uint16 networkId;
|
|
45
|
+
|
|
46
|
+
mapping(uint16 => ChainlinkPriceFeedData[]) chainlinkPriceFeedsByNetwork;
|
|
47
|
+
SingeTokenPriceFeedData[] zeroPriceFeeds;
|
|
48
|
+
CurvePriceFeedData[] curvePriceFeeds;
|
|
49
|
+
CurveLikePriceFeedData[] likeCurvePriceFeeds;
|
|
50
|
+
SingeTokenPriceFeedData[] yearnPriceFeeds;
|
|
51
|
+
mapping(uint16 => BoundedPriceFeedData[]) boundedPriceFeedsByNetwork;
|
|
52
|
+
mapping(uint16 => CompositePriceFeedData[]) compositePriceFeedsByNetwork;
|
|
53
|
+
SingeTokenPriceFeedData wstethPriceFeed;
|
|
54
|
+
|
|
55
|
+
constructor(uint16 _networkId) {
|
|
56
|
+
networkId = _networkId;
|
|
57
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
58
|
+
ChainlinkPriceFeedData({token: Tokens._1INCH, priceFeed: 0xc929ad75B72593967DE83E7F7Cda0493458261D9})
|
|
59
|
+
);
|
|
60
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
61
|
+
ChainlinkPriceFeedData({token: Tokens.AAVE, priceFeed: 0x547a514d5e3769680Ce22B2361c10Ea13619e8a9})
|
|
62
|
+
);
|
|
63
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
64
|
+
ChainlinkPriceFeedData({token: Tokens.COMP, priceFeed: 0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5})
|
|
65
|
+
);
|
|
66
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
67
|
+
ChainlinkPriceFeedData({token: Tokens.CRV, priceFeed: 0xCd627aA160A6fA45Eb793D19Ef54f5062F20f33f})
|
|
68
|
+
);
|
|
69
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
70
|
+
ChainlinkPriceFeedData({token: Tokens.DAI, priceFeed: 0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9})
|
|
71
|
+
);
|
|
72
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
73
|
+
ChainlinkPriceFeedData({token: Tokens.DPI, priceFeed: 0xD2A593BF7594aCE1faD597adb697b5645d5edDB2})
|
|
74
|
+
);
|
|
75
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
76
|
+
ChainlinkPriceFeedData({token: Tokens.FEI, priceFeed: 0x31e0a88fecB6eC0a411DBe0e9E76391498296EE9})
|
|
77
|
+
);
|
|
78
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
79
|
+
ChainlinkPriceFeedData({token: Tokens.GUSD, priceFeed: 0xa89f5d2365ce98B3cD68012b6f503ab1416245Fc})
|
|
80
|
+
);
|
|
81
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
82
|
+
ChainlinkPriceFeedData({token: Tokens.LINK, priceFeed: 0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c})
|
|
83
|
+
);
|
|
84
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
85
|
+
ChainlinkPriceFeedData({token: Tokens.SNX, priceFeed: 0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699})
|
|
86
|
+
);
|
|
87
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
88
|
+
ChainlinkPriceFeedData({token: Tokens.UNI, priceFeed: 0x553303d460EE0afB37EdFf9bE42922D8FF63220e})
|
|
89
|
+
);
|
|
90
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
91
|
+
ChainlinkPriceFeedData({token: Tokens.USDC, priceFeed: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6})
|
|
92
|
+
);
|
|
93
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
94
|
+
ChainlinkPriceFeedData({token: Tokens.USDT, priceFeed: 0x3E7d1eAB13ad0104d2750B8863b489D65364e32D})
|
|
95
|
+
);
|
|
96
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
97
|
+
ChainlinkPriceFeedData({token: Tokens.WETH, priceFeed: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419})
|
|
98
|
+
);
|
|
99
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
100
|
+
ChainlinkPriceFeedData({token: Tokens.YFI, priceFeed: 0xA027702dbb89fbd58938e4324ac03B58d812b0E1})
|
|
101
|
+
);
|
|
102
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
103
|
+
ChainlinkPriceFeedData({token: Tokens.CVX, priceFeed: 0xd962fC30A72A84cE50161031391756Bf2876Af5D})
|
|
104
|
+
);
|
|
105
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
106
|
+
ChainlinkPriceFeedData({token: Tokens.FRAX, priceFeed: 0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD})
|
|
107
|
+
);
|
|
108
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
109
|
+
ChainlinkPriceFeedData({token: Tokens.sUSD, priceFeed: 0xad35Bd71b9aFE6e4bDc266B345c198eaDEf9Ad94})
|
|
110
|
+
);
|
|
111
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
112
|
+
ChainlinkPriceFeedData({token: Tokens.FXS, priceFeed: 0x6Ebc52C8C1089be9eB3945C4350B68B8E4C2233f})
|
|
113
|
+
);
|
|
114
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
115
|
+
ChainlinkPriceFeedData({token: Tokens.MIM, priceFeed: 0x7A364e8770418566e3eb2001A96116E6138Eb32F})
|
|
116
|
+
);
|
|
117
|
+
chainlinkPriceFeedsByNetwork[1].push(
|
|
118
|
+
ChainlinkPriceFeedData({token: Tokens.SPELL, priceFeed: 0x8c110B94C5f1d347fAcF5E1E938AB2db60E3c9a8})
|
|
119
|
+
);
|
|
120
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
121
|
+
ChainlinkPriceFeedData({token: Tokens._1INCH, priceFeed: 0xc929ad75B72593967DE83E7F7Cda0493458261D9})
|
|
122
|
+
);
|
|
123
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
124
|
+
ChainlinkPriceFeedData({token: Tokens.AAVE, priceFeed: 0x547a514d5e3769680Ce22B2361c10Ea13619e8a9})
|
|
125
|
+
);
|
|
126
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
127
|
+
ChainlinkPriceFeedData({token: Tokens.COMP, priceFeed: 0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5})
|
|
128
|
+
);
|
|
129
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
130
|
+
ChainlinkPriceFeedData({token: Tokens.CRV, priceFeed: 0xCd627aA160A6fA45Eb793D19Ef54f5062F20f33f})
|
|
131
|
+
);
|
|
132
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
133
|
+
ChainlinkPriceFeedData({token: Tokens.DAI, priceFeed: 0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9})
|
|
134
|
+
);
|
|
135
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
136
|
+
ChainlinkPriceFeedData({token: Tokens.DPI, priceFeed: 0xD2A593BF7594aCE1faD597adb697b5645d5edDB2})
|
|
137
|
+
);
|
|
138
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
139
|
+
ChainlinkPriceFeedData({token: Tokens.FEI, priceFeed: 0x31e0a88fecB6eC0a411DBe0e9E76391498296EE9})
|
|
140
|
+
);
|
|
141
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
142
|
+
ChainlinkPriceFeedData({token: Tokens.GUSD, priceFeed: 0xa89f5d2365ce98B3cD68012b6f503ab1416245Fc})
|
|
143
|
+
);
|
|
144
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
145
|
+
ChainlinkPriceFeedData({token: Tokens.LINK, priceFeed: 0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c})
|
|
146
|
+
);
|
|
147
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
148
|
+
ChainlinkPriceFeedData({token: Tokens.SNX, priceFeed: 0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699})
|
|
149
|
+
);
|
|
150
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
151
|
+
ChainlinkPriceFeedData({token: Tokens.UNI, priceFeed: 0x553303d460EE0afB37EdFf9bE42922D8FF63220e})
|
|
152
|
+
);
|
|
153
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
154
|
+
ChainlinkPriceFeedData({token: Tokens.USDC, priceFeed: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6})
|
|
155
|
+
);
|
|
156
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
157
|
+
ChainlinkPriceFeedData({token: Tokens.USDT, priceFeed: 0x3E7d1eAB13ad0104d2750B8863b489D65364e32D})
|
|
158
|
+
);
|
|
159
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
160
|
+
ChainlinkPriceFeedData({token: Tokens.WETH, priceFeed: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419})
|
|
161
|
+
);
|
|
162
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
163
|
+
ChainlinkPriceFeedData({token: Tokens.YFI, priceFeed: 0xA027702dbb89fbd58938e4324ac03B58d812b0E1})
|
|
164
|
+
);
|
|
165
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
166
|
+
ChainlinkPriceFeedData({token: Tokens.CVX, priceFeed: 0xd962fC30A72A84cE50161031391756Bf2876Af5D})
|
|
167
|
+
);
|
|
168
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
169
|
+
ChainlinkPriceFeedData({token: Tokens.FRAX, priceFeed: 0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD})
|
|
170
|
+
);
|
|
171
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
172
|
+
ChainlinkPriceFeedData({token: Tokens.sUSD, priceFeed: 0xad35Bd71b9aFE6e4bDc266B345c198eaDEf9Ad94})
|
|
173
|
+
);
|
|
174
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
175
|
+
ChainlinkPriceFeedData({token: Tokens.FXS, priceFeed: 0x6Ebc52C8C1089be9eB3945C4350B68B8E4C2233f})
|
|
176
|
+
);
|
|
177
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
178
|
+
ChainlinkPriceFeedData({token: Tokens.MIM, priceFeed: 0x7A364e8770418566e3eb2001A96116E6138Eb32F})
|
|
179
|
+
);
|
|
180
|
+
chainlinkPriceFeedsByNetwork[42161].push(
|
|
181
|
+
ChainlinkPriceFeedData({token: Tokens.SPELL, priceFeed: 0x8c110B94C5f1d347fAcF5E1E938AB2db60E3c9a8})
|
|
182
|
+
);
|
|
183
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvx3Crv, curveToken: Tokens._3Crv}));
|
|
184
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxcrvFRAX, curveToken: Tokens.crvFRAX}));
|
|
185
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxsteCRV, curveToken: Tokens.steCRV}));
|
|
186
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxFRAX3CRV, curveToken: Tokens.FRAX3CRV}));
|
|
187
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxLUSD3CRV, curveToken: Tokens.LUSD3CRV}));
|
|
188
|
+
likeCurvePriceFeeds.push(
|
|
189
|
+
CurveLikePriceFeedData({lpToken: Tokens.cvxcrvPlain3andSUSD, curveToken: Tokens.crvPlain3andSUSD})
|
|
190
|
+
);
|
|
191
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxgusd3CRV, curveToken: Tokens.gusd3CRV}));
|
|
192
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxOHMFRAXBP, curveToken: Tokens.OHMFRAXBP}));
|
|
193
|
+
likeCurvePriceFeeds.push(
|
|
194
|
+
CurveLikePriceFeedData({lpToken: Tokens.cvxMIM_3LP3CRV, curveToken: Tokens.MIM_3LP3CRV})
|
|
195
|
+
);
|
|
196
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxcrvCRVETH, curveToken: Tokens.crvCRVETH}));
|
|
197
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxcrvCVXETH, curveToken: Tokens.crvCVXETH}));
|
|
198
|
+
likeCurvePriceFeeds.push(
|
|
199
|
+
CurveLikePriceFeedData({lpToken: Tokens.cvxcrvUSDTWBTCWETH, curveToken: Tokens.crvUSDTWBTCWETH})
|
|
200
|
+
);
|
|
201
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.cvxLDOETH, curveToken: Tokens.LDOETH}));
|
|
202
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.stkcvx3Crv, curveToken: Tokens._3Crv}));
|
|
203
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.stkcvxcrvFRAX, curveToken: Tokens.crvFRAX}));
|
|
204
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.stkcvxsteCRV, curveToken: Tokens.steCRV}));
|
|
205
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.stkcvxFRAX3CRV, curveToken: Tokens.FRAX3CRV}));
|
|
206
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.stkcvxLUSD3CRV, curveToken: Tokens.LUSD3CRV}));
|
|
207
|
+
likeCurvePriceFeeds.push(
|
|
208
|
+
CurveLikePriceFeedData({lpToken: Tokens.stkcvxcrvPlain3andSUSD, curveToken: Tokens.crvPlain3andSUSD})
|
|
209
|
+
);
|
|
210
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.stkcvxgusd3CRV, curveToken: Tokens.gusd3CRV}));
|
|
211
|
+
likeCurvePriceFeeds.push(
|
|
212
|
+
CurveLikePriceFeedData({lpToken: Tokens.stkcvxOHMFRAXBP, curveToken: Tokens.OHMFRAXBP})
|
|
213
|
+
);
|
|
214
|
+
likeCurvePriceFeeds.push(
|
|
215
|
+
CurveLikePriceFeedData({lpToken: Tokens.stkcvxMIM_3LP3CRV, curveToken: Tokens.MIM_3LP3CRV})
|
|
216
|
+
);
|
|
217
|
+
likeCurvePriceFeeds.push(
|
|
218
|
+
CurveLikePriceFeedData({lpToken: Tokens.stkcvxcrvCRVETH, curveToken: Tokens.crvCRVETH})
|
|
219
|
+
);
|
|
220
|
+
likeCurvePriceFeeds.push(
|
|
221
|
+
CurveLikePriceFeedData({lpToken: Tokens.stkcvxcrvCVXETH, curveToken: Tokens.crvCVXETH})
|
|
222
|
+
);
|
|
223
|
+
likeCurvePriceFeeds.push(
|
|
224
|
+
CurveLikePriceFeedData({lpToken: Tokens.stkcvxcrvUSDTWBTCWETH, curveToken: Tokens.crvUSDTWBTCWETH})
|
|
225
|
+
);
|
|
226
|
+
likeCurvePriceFeeds.push(CurveLikePriceFeedData({lpToken: Tokens.stkcvxLDOETH, curveToken: Tokens.LDOETH}));
|
|
227
|
+
compositePriceFeedsByNetwork[1].push(
|
|
228
|
+
CompositePriceFeedData({
|
|
229
|
+
token: Tokens.WBTC,
|
|
230
|
+
targetToBaseFeed: 0xfdFD9C85aD200c506Cf9e21F1FD8dd01932FBB23,
|
|
231
|
+
baseToUSDFeed: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c
|
|
232
|
+
})
|
|
233
|
+
);
|
|
234
|
+
compositePriceFeedsByNetwork[1].push(
|
|
235
|
+
CompositePriceFeedData({
|
|
236
|
+
token: Tokens.STETH,
|
|
237
|
+
targetToBaseFeed: 0x86392dC19c0b719886221c78AB11eb8Cf5c52812,
|
|
238
|
+
baseToUSDFeed: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
|
|
239
|
+
})
|
|
240
|
+
);
|
|
241
|
+
compositePriceFeedsByNetwork[1].push(
|
|
242
|
+
CompositePriceFeedData({
|
|
243
|
+
token: Tokens.LDO,
|
|
244
|
+
targetToBaseFeed: 0x4e844125952D32AcdF339BE976c98E22F6F318dB,
|
|
245
|
+
baseToUSDFeed: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
|
|
246
|
+
})
|
|
247
|
+
);
|
|
248
|
+
compositePriceFeedsByNetwork[1].push(
|
|
249
|
+
CompositePriceFeedData({
|
|
250
|
+
token: Tokens.OHM,
|
|
251
|
+
targetToBaseFeed: 0x9a72298ae3886221820B1c878d12D872087D3a23,
|
|
252
|
+
baseToUSDFeed: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
|
|
253
|
+
})
|
|
254
|
+
);
|
|
255
|
+
compositePriceFeedsByNetwork[42161].push(
|
|
256
|
+
CompositePriceFeedData({
|
|
257
|
+
token: Tokens.STETH,
|
|
258
|
+
targetToBaseFeed: 0x78622A939324C5dC1B646D113358f54f0BA4353B,
|
|
259
|
+
baseToUSDFeed: 0x491741d9F426130d1bC27Aee82f8b4Bd4E6E5f5D
|
|
260
|
+
})
|
|
261
|
+
);
|
|
262
|
+
compositePriceFeedsByNetwork[42161].push(
|
|
263
|
+
CompositePriceFeedData({
|
|
264
|
+
token: Tokens.LDO,
|
|
265
|
+
targetToBaseFeed: 0x6569bae7114121aE82303F42f42b64012DcCbD7d,
|
|
266
|
+
baseToUSDFeed: 0x491741d9F426130d1bC27Aee82f8b4Bd4E6E5f5D
|
|
267
|
+
})
|
|
268
|
+
);
|
|
269
|
+
boundedPriceFeedsByNetwork[1].push(
|
|
270
|
+
BoundedPriceFeedData({
|
|
271
|
+
token: Tokens.LUSD,
|
|
272
|
+
priceFeed: 0x3D7aE7E594f2f2091Ad8798313450130d0Aba3a0,
|
|
273
|
+
upperBound: 110000000
|
|
274
|
+
})
|
|
275
|
+
);
|
|
276
|
+
boundedPriceFeedsByNetwork[42161].push(
|
|
277
|
+
BoundedPriceFeedData({
|
|
278
|
+
token: Tokens.LUSD,
|
|
279
|
+
priceFeed: 0xd6852347062aB885B6Fb9F7220BedCc5A39CE862,
|
|
280
|
+
upperBound: 110000000
|
|
281
|
+
})
|
|
282
|
+
);
|
|
283
|
+
|
|
284
|
+
zeroPriceFeeds.push(SingeTokenPriceFeedData({token: Tokens.LQTY}));
|
|
285
|
+
curvePriceFeeds.push(
|
|
286
|
+
CurvePriceFeedData({
|
|
287
|
+
lpToken: Tokens._3Crv,
|
|
288
|
+
assets: TokensLib.arrayOf(Tokens.DAI, Tokens.USDC, Tokens.USDT),
|
|
289
|
+
pool: Contracts.CURVE_3CRV_POOL
|
|
290
|
+
})
|
|
291
|
+
);
|
|
292
|
+
curvePriceFeeds.push(
|
|
293
|
+
CurvePriceFeedData({
|
|
294
|
+
lpToken: Tokens.crvFRAX,
|
|
295
|
+
assets: TokensLib.arrayOf(Tokens.FRAX, Tokens.USDC),
|
|
296
|
+
pool: Contracts.CURVE_FRAX_USDC_POOL
|
|
297
|
+
})
|
|
298
|
+
);
|
|
299
|
+
curvePriceFeeds.push(
|
|
300
|
+
CurvePriceFeedData({
|
|
301
|
+
lpToken: Tokens.steCRV,
|
|
302
|
+
assets: TokensLib.arrayOf(Tokens.STETH, Tokens.WETH),
|
|
303
|
+
pool: Contracts.CURVE_STETH_GATEWAY
|
|
304
|
+
})
|
|
305
|
+
);
|
|
306
|
+
curvePriceFeeds.push(
|
|
307
|
+
CurvePriceFeedData({
|
|
308
|
+
lpToken: Tokens.FRAX3CRV,
|
|
309
|
+
assets: TokensLib.arrayOf(Tokens.FRAX, Tokens.DAI, Tokens.USDC, Tokens.USDT),
|
|
310
|
+
pool: Contracts.CURVE_FRAX_POOL
|
|
311
|
+
})
|
|
312
|
+
);
|
|
313
|
+
curvePriceFeeds.push(
|
|
314
|
+
CurvePriceFeedData({
|
|
315
|
+
lpToken: Tokens.LUSD3CRV,
|
|
316
|
+
assets: TokensLib.arrayOf(Tokens.LUSD, Tokens.DAI, Tokens.USDC, Tokens.USDT),
|
|
317
|
+
pool: Contracts.CURVE_LUSD_POOL
|
|
318
|
+
})
|
|
319
|
+
);
|
|
320
|
+
curvePriceFeeds.push(
|
|
321
|
+
CurvePriceFeedData({
|
|
322
|
+
lpToken: Tokens.crvPlain3andSUSD,
|
|
323
|
+
assets: TokensLib.arrayOf(Tokens.DAI, Tokens.USDC, Tokens.USDT, Tokens.sUSD),
|
|
324
|
+
pool: Contracts.CURVE_SUSD_POOL
|
|
325
|
+
})
|
|
326
|
+
);
|
|
327
|
+
curvePriceFeeds.push(
|
|
328
|
+
CurvePriceFeedData({
|
|
329
|
+
lpToken: Tokens.gusd3CRV,
|
|
330
|
+
assets: TokensLib.arrayOf(Tokens.GUSD, Tokens.DAI, Tokens.USDC, Tokens.USDT),
|
|
331
|
+
pool: Contracts.CURVE_GUSD_POOL
|
|
332
|
+
})
|
|
333
|
+
);
|
|
334
|
+
curvePriceFeeds.push(
|
|
335
|
+
CurvePriceFeedData({
|
|
336
|
+
lpToken: Tokens.MIM_3LP3CRV,
|
|
337
|
+
assets: TokensLib.arrayOf(Tokens.MIM, Tokens.DAI, Tokens.USDC, Tokens.USDT),
|
|
338
|
+
pool: Contracts.CURVE_MIM_POOL
|
|
339
|
+
})
|
|
340
|
+
);
|
|
341
|
+
yearnPriceFeeds.push(SingeTokenPriceFeedData({token: Tokens.yvDAI}));
|
|
342
|
+
yearnPriceFeeds.push(SingeTokenPriceFeedData({token: Tokens.yvUSDC}));
|
|
343
|
+
yearnPriceFeeds.push(SingeTokenPriceFeedData({token: Tokens.yvWETH}));
|
|
344
|
+
yearnPriceFeeds.push(SingeTokenPriceFeedData({token: Tokens.yvWBTC}));
|
|
345
|
+
yearnPriceFeeds.push(SingeTokenPriceFeedData({token: Tokens.yvCurve_stETH}));
|
|
346
|
+
yearnPriceFeeds.push(SingeTokenPriceFeedData({token: Tokens.yvCurve_FRAX}));
|
|
347
|
+
wstethPriceFeed = SingeTokenPriceFeedData({token: Tokens.wstETH});
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
function chainlinkPriceFeeds(uint256 index) external view returns (ChainlinkPriceFeedData memory) {
|
|
351
|
+
return chainlinkPriceFeedsByNetwork[networkId][index];
|
|
352
|
+
}
|
|
353
|
+
}
|