@gearbox-protocol/sdk 1.27.2 → 1.27.4

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.
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
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, 2023
3
+ // (c) Gearbox Foundation, 2023
4
4
  pragma solidity ^0.8.17;
5
5
 
6
6
  import {Tokens} from "./Tokens.sol";
@@ -46,82 +46,245 @@ contract AdapterData {
46
46
  ConvexBasePoolAdapter[] convexBasePoolAdapters;
47
47
 
48
48
  constructor() {
49
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.UNISWAP_V2_ROUTER,
50
- adapterType: AdapterType.UNISWAP_V2_ROUTER}));
51
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.UNISWAP_V3_ROUTER,
52
- adapterType: AdapterType.UNISWAP_V3_ROUTER}));
53
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.SUSHISWAP_ROUTER,
54
- adapterType: AdapterType.UNISWAP_V2_ROUTER}));
55
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.YEARN_DAI_VAULT,
56
- adapterType: AdapterType.YEARN_V2}));
57
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.YEARN_USDC_VAULT,
58
- adapterType: AdapterType.YEARN_V2}));
59
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.YEARN_WETH_VAULT,
60
- adapterType: AdapterType.YEARN_V2}));
61
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.YEARN_WBTC_VAULT,
62
- adapterType: AdapterType.YEARN_V2}));
63
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.YEARN_CURVE_FRAX_VAULT,
64
- adapterType: AdapterType.YEARN_V2}));
65
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.YEARN_CURVE_STETH_VAULT,
66
- adapterType: AdapterType.YEARN_V2}));
67
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.CONVEX_BOOSTER,
68
- adapterType: AdapterType.CONVEX_V1_BOOSTER}));
69
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.LIDO_STETH_GATEWAY,
70
- adapterType: AdapterType.LIDO_V1}));
71
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.LIDO_WSTETH,
72
- adapterType: AdapterType.LIDO_WSTETH_V1}));
73
- simpleAdapters.push(SimpleAdapter({targetContract: Contracts.UNIVERSAL_ADAPTER,
74
- adapterType: AdapterType.UNIVERSAL}));curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_3CRV_POOL,
75
- adapterType: AdapterType.CURVE_V1_3ASSETS, lpToken: Tokens._3Crv, basePool: Contracts.NO_CONTRACT}));
76
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_FRAX_USDC_POOL,
77
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.crvFRAX, basePool: Contracts.NO_CONTRACT}));
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
+ );
78
104
 
79
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_FRAX_POOL,
80
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.FRAX3CRV, basePool: Contracts.CURVE_3CRV_POOL}));
81
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_LUSD_POOL,
82
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.LUSD3CRV, basePool: Contracts.CURVE_3CRV_POOL}));
83
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_SUSD_POOL,
84
- adapterType: AdapterType.CURVE_V1_4ASSETS, lpToken: Tokens.crvPlain3andSUSD, basePool: Contracts.NO_CONTRACT}));
85
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_GUSD_POOL,
86
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.gusd3CRV, basePool: Contracts.CURVE_3CRV_POOL}));
87
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_OHMFRAXBP_POOL,
88
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.OHMFRAXBP, basePool: Contracts.NO_CONTRACT}));
89
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_MIM_POOL,
90
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.MIM_3LP3CRV, basePool: Contracts.CURVE_3CRV_POOL}));
91
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_CRVETH_POOL,
92
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.crvCRVETH, basePool: Contracts.NO_CONTRACT}));
93
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_CVXETH_POOL,
94
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.crvCVXETH, basePool: Contracts.NO_CONTRACT}));
95
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_3CRYPTO_POOL,
96
- adapterType: AdapterType.CURVE_V1_3ASSETS, lpToken: Tokens.crvUSDTWBTCWETH, basePool: Contracts.NO_CONTRACT}));
97
- curveAdapters.push(CurveAdapter({targetContract: Contracts.CURVE_LDOETH_POOL,
98
- adapterType: AdapterType.CURVE_V1_2ASSETS, lpToken: Tokens.LDOETH, basePool: Contracts.NO_CONTRACT}));curveStEthAdapter = CurveStETHAdapter({curveETHGateway: Contracts.CURVE_STETH_GATEWAY,
99
- adapterType: AdapterType.CURVE_V1_STECRV_POOL, lpToken: Tokens.steCRV});curveWrappers.push(CurveWrapper({targetContract: Contracts.CURVE_SUSD_DEPOSIT,
100
- adapterType: AdapterType.CURVE_V1_WRAPPER, lpToken: Tokens.crvPlain3andSUSD, nCoins: 4}));convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_3CRV_POOL,
101
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvx3Crv}));
102
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_FRAX_USDC_POOL,
103
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxcrvFRAX}));
104
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_GUSD_POOL,
105
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxgusd3CRV}));
106
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_SUSD_POOL,
107
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxcrvPlain3andSUSD}));
108
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_STECRV_POOL,
109
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxsteCRV}));
110
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_FRAX3CRV_POOL,
111
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxFRAX3CRV}));
112
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_LUSD3CRV_POOL,
113
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxLUSD3CRV}));
114
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_OHMFRAXBP_POOL,
115
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxOHMFRAXBP}));
116
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_MIM3CRV_POOL,
117
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxMIM_3LP3CRV}));
118
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_CRVETH_POOL,
119
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxcrvCRVETH}));
120
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_CVXETH_POOL,
121
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxcrvCVXETH}));
122
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_3CRYPTO_POOL,
123
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxcrvUSDTWBTCWETH}));
124
- convexBasePoolAdapters.push(ConvexBasePoolAdapter({targetContract: Contracts.CONVEX_LDOETH_POOL,
125
- adapterType: AdapterType.CONVEX_V1_BASE_REWARD_POOL, stakedToken: Tokens.stkcvxLDOETH}));
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
+ );
126
289
  }
127
290
  }
@@ -1,29 +1,29 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
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, 2023
3
+ // (c) Gearbox Foundation, 2023
4
4
  pragma solidity ^0.8.17;
5
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
- ERC4626_VAULT
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
+ ERC4626_VAULT
29
29
  }
@@ -0,0 +1,63 @@
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 Foundation, 2023
4
+ pragma solidity ^0.8.17;
5
+
6
+ enum Contracts {
7
+ NO_CONTRACT,
8
+ UNISWAP_V2_ROUTER,
9
+ UNISWAP_V3_ROUTER,
10
+ SUSHISWAP_ROUTER,
11
+ CURVE_3CRV_POOL,
12
+ CURVE_FRAX_USDC_POOL,
13
+ CURVE_STETH_GATEWAY,
14
+ CURVE_FRAX_POOL,
15
+ CURVE_LUSD_POOL,
16
+ CURVE_SUSD_POOL,
17
+ CURVE_SUSD_DEPOSIT,
18
+ CURVE_GUSD_POOL,
19
+ CURVE_MIM_POOL,
20
+ CURVE_OHMFRAXBP_POOL,
21
+ CURVE_CRVETH_POOL,
22
+ CURVE_CVXETH_POOL,
23
+ CURVE_3CRYPTO_POOL,
24
+ CURVE_LDOETH_POOL,
25
+ CURVE_GEAR_POOL,
26
+ YEARN_DAI_VAULT,
27
+ YEARN_USDC_VAULT,
28
+ YEARN_WETH_VAULT,
29
+ YEARN_WBTC_VAULT,
30
+ YEARN_CURVE_FRAX_VAULT,
31
+ YEARN_CURVE_STETH_VAULT,
32
+ CONVEX_BOOSTER,
33
+ CONVEX_3CRV_POOL,
34
+ CONVEX_FRAX_USDC_POOL,
35
+ CONVEX_GUSD_POOL,
36
+ CONVEX_SUSD_POOL,
37
+ CONVEX_STECRV_POOL,
38
+ CONVEX_FRAX3CRV_POOL,
39
+ CONVEX_LUSD3CRV_POOL,
40
+ CONVEX_CLAIM_ZAP,
41
+ CONVEX_OHMFRAXBP_POOL,
42
+ CONVEX_MIM3CRV_POOL,
43
+ CONVEX_CRVETH_POOL,
44
+ CONVEX_CVXETH_POOL,
45
+ CONVEX_3CRYPTO_POOL,
46
+ CONVEX_LDOETH_POOL,
47
+ LIDO_STETH_GATEWAY,
48
+ LIDO_WSTETH,
49
+ BALANCER_VAULT,
50
+ UNIVERSAL_ADAPTER,
51
+ AAVE_V2_DAI_POOL,
52
+ AAVE_V2_USDC_POOL,
53
+ AAVE_V2_USDT_POOL,
54
+ AAVE_V2_WETH_POOL,
55
+ AAVE_V2_DAI_TOKEN_WRAPPER,
56
+ AAVE_V2_USDC_TOKEN_WRAPPER,
57
+ AAVE_V2_USDT_TOKEN_WRAPPER,
58
+ AAVE_V2_WETH_TOKEN_WRAPPER,
59
+ COMPOUND_V2_DAI_POOL,
60
+ COMPOUND_V2_USDC_POOL,
61
+ COMPOUND_V2_USDT_POOL,
62
+ COMPOUND_V2_WETH_POOL
63
+ }