@gearbox-protocol/sdk 0.0.39 → 0.0.42
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/core/adapters.d.ts +14 -0
- package/lib/core/adapters.js +18 -0
- package/lib/core/contracts.d.ts +32 -65
- package/lib/core/contracts.js +169 -105
- package/lib/core/contractsRegister.js +28 -31
- package/lib/core/oracles.d.ts +5 -5
- package/lib/core/pathfinder.d.ts +5 -5
- package/lib/core/pathfinder.js +1 -1
- package/lib/core/priceFeeds.d.ts +2 -2
- package/lib/core/priceFeeds.js +31 -0
- package/lib/core/protocols.d.ts +13 -0
- package/lib/core/protocols.js +39 -0
- package/lib/core/token.d.ts +30 -5
- package/lib/core/token.js +119 -11
- package/lib/core/tokenData.d.ts +2 -2
- package/lib/devops/loggedDeployer.d.ts +7 -0
- package/lib/devops/loggedDeployer.js +22 -0
- package/lib/devops/verifierDeployer.d.ts +13 -0
- package/lib/devops/verifierDeployer.js +161 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -2
- package/package.json +6 -2
- package/src/core/adapters.ts +16 -0
- package/src/core/contracts.ts +241 -140
- package/src/core/contractsRegister.ts +10 -17
- package/src/core/oracles.ts +5 -5
- package/src/core/pathfinder.ts +6 -6
- package/src/core/priceFeeds.ts +442 -412
- package/src/core/protocols.ts +40 -0
- package/src/core/token.ts +200 -60
- package/src/core/tokenData.ts +2 -2
- package/src/devops/loggedDeployer.ts +22 -0
- package/src/devops/verifierDeployer.ts +79 -0
- package/src/index.ts +2 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export enum Protocols {
|
|
2
|
+
Uniswap,
|
|
3
|
+
Sushiswap,
|
|
4
|
+
Curve,
|
|
5
|
+
Yearn,
|
|
6
|
+
Convex,
|
|
7
|
+
Lido
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface ProtocolData {
|
|
11
|
+
name: string;
|
|
12
|
+
icon: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const protocolData: Record<Protocols, ProtocolData> = {
|
|
16
|
+
[Protocols.Uniswap]: {
|
|
17
|
+
name: "Uniswap",
|
|
18
|
+
icon: "/protocols/uniswap.png"
|
|
19
|
+
},
|
|
20
|
+
[Protocols.Sushiswap]: {
|
|
21
|
+
name: "Sushiswap",
|
|
22
|
+
icon: "/protocols/sushi.svg"
|
|
23
|
+
},
|
|
24
|
+
[Protocols.Curve]: {
|
|
25
|
+
name: "Curve",
|
|
26
|
+
icon: "/protocols/curve.svg"
|
|
27
|
+
},
|
|
28
|
+
[Protocols.Yearn]: {
|
|
29
|
+
name: "Yearn",
|
|
30
|
+
icon: "/protocols/yearn.svg"
|
|
31
|
+
},
|
|
32
|
+
[Protocols.Convex]: {
|
|
33
|
+
name: "Convex",
|
|
34
|
+
icon: "/protocols/convex.svg"
|
|
35
|
+
},
|
|
36
|
+
[Protocols.Lido]: {
|
|
37
|
+
name: "Lido",
|
|
38
|
+
icon: "/protocols/lido.svg"
|
|
39
|
+
}
|
|
40
|
+
};
|
package/src/core/token.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NetworkType } from "./constants";
|
|
2
|
+
import { ConvexPoolContract } from "./contracts";
|
|
2
3
|
|
|
3
4
|
enum TokenType {
|
|
4
5
|
CONNECTOR,
|
|
@@ -9,10 +10,10 @@ enum TokenType {
|
|
|
9
10
|
YEARN_VAULT_OF_CURVE_LP,
|
|
10
11
|
YEARN_VAULT_OF_META_CURVE_LP,
|
|
11
12
|
CONVEX_LP_TOKEN,
|
|
12
|
-
CONVEX_STAKED_PHANTOM_TOKEN
|
|
13
|
+
CONVEX_STAKED_PHANTOM_TOKEN
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
export const priority
|
|
16
|
+
export const priority: Record<TokenType, number> = {
|
|
16
17
|
[TokenType.CONNECTOR]: 1,
|
|
17
18
|
[TokenType.NORMAL_TOKEN]: 2,
|
|
18
19
|
[TokenType.CURVE_LP]: 3,
|
|
@@ -24,34 +25,7 @@ export const priority : Record<TokenType, number> = {
|
|
|
24
25
|
[TokenType.CONVEX_STAKED_PHANTOM_TOKEN]: 5
|
|
25
26
|
};
|
|
26
27
|
|
|
27
|
-
export type
|
|
28
|
-
| {
|
|
29
|
-
type: TokenType.CONNECTOR;
|
|
30
|
-
}
|
|
31
|
-
| {
|
|
32
|
-
type: TokenType.NORMAL_TOKEN;
|
|
33
|
-
}
|
|
34
|
-
| {
|
|
35
|
-
type: TokenType.CURVE_LP;
|
|
36
|
-
}
|
|
37
|
-
| {
|
|
38
|
-
type: TokenType.YEARN_VAULT;
|
|
39
|
-
underlying: SupportedTokens,
|
|
40
|
-
}
|
|
41
|
-
| {
|
|
42
|
-
type: TokenType.META_CURVE_LP;
|
|
43
|
-
}
|
|
44
|
-
| {
|
|
45
|
-
type: TokenType.YEARN_VAULT_OF_CURVE_LP;
|
|
46
|
-
}
|
|
47
|
-
| {
|
|
48
|
-
type: TokenType.CONVEX_LP_TOKEN;
|
|
49
|
-
}
|
|
50
|
-
| {
|
|
51
|
-
type: TokenType.YEARN_VAULT_OF_META_CURVE_LP;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export type SupportedTokens =
|
|
28
|
+
export type NormalToken =
|
|
55
29
|
| "1INCH"
|
|
56
30
|
| "AAVE"
|
|
57
31
|
| "COMP"
|
|
@@ -81,229 +55,384 @@ export type SupportedTokens =
|
|
|
81
55
|
| "sUSD"
|
|
82
56
|
| "GUSD"
|
|
83
57
|
| "LUNA"
|
|
84
|
-
| "LQTY"
|
|
58
|
+
| "LQTY";
|
|
85
59
|
|
|
86
|
-
|
|
87
|
-
| "yvDAI"
|
|
88
|
-
| "yvUSDC"
|
|
89
|
-
| "yvWETH"
|
|
90
|
-
| "yvWBTC"
|
|
91
|
-
|
|
92
|
-
// CURVE LP TOKENS
|
|
60
|
+
export type CurveLPToken =
|
|
93
61
|
| "3Crv"
|
|
94
62
|
| "steCRV"
|
|
95
63
|
| "FRAX3CRV"
|
|
96
64
|
| "LUSD3CRV"
|
|
97
65
|
| "crvPlain3andSUSD"
|
|
98
|
-
| "gusd3CRV"
|
|
66
|
+
| "gusd3CRV";
|
|
99
67
|
|
|
100
|
-
|
|
68
|
+
export type YearnLPToken =
|
|
69
|
+
| "yvDAI"
|
|
70
|
+
| "yvUSDC"
|
|
71
|
+
| "yvWETH"
|
|
72
|
+
| "yvWBTC"
|
|
73
|
+
| "yvCurve_stETH"
|
|
74
|
+
| "yvCurve_FRAX";
|
|
75
|
+
|
|
76
|
+
export type ConvexLPToken =
|
|
101
77
|
| "cvx3Crv"
|
|
102
78
|
| "cvxsteCRV"
|
|
103
79
|
| "cvxFRAX3CRV"
|
|
104
80
|
| "cvxcrvPlain3andSUSD"
|
|
105
|
-
| "cvxgusd3CRV"
|
|
81
|
+
| "cvxgusd3CRV";
|
|
82
|
+
|
|
83
|
+
export type ConvexStakedPhantomToken =
|
|
84
|
+
| "stkcvx3Crv"
|
|
85
|
+
| "stkcvxsteCRV"
|
|
86
|
+
| "stkcvxFRAX3CRV"
|
|
87
|
+
| "stkcvxcrvPlain3andSUSD"
|
|
88
|
+
| "stkcvxgusd3CRV";
|
|
89
|
+
|
|
90
|
+
export type SupportedToken =
|
|
91
|
+
| NormalToken
|
|
92
|
+
| YearnLPToken
|
|
93
|
+
| CurveLPToken
|
|
94
|
+
| ConvexLPToken
|
|
95
|
+
| ConvexStakedPhantomToken;
|
|
106
96
|
|
|
107
|
-
|
|
108
|
-
|
|
|
109
|
-
|
|
97
|
+
export type TokenDataI =
|
|
98
|
+
| {
|
|
99
|
+
symbol: NormalToken;
|
|
100
|
+
type: TokenType.CONNECTOR;
|
|
101
|
+
}
|
|
102
|
+
| {
|
|
103
|
+
symbol: NormalToken;
|
|
104
|
+
type: TokenType.NORMAL_TOKEN;
|
|
105
|
+
}
|
|
106
|
+
| {
|
|
107
|
+
symbol: CurveLPToken;
|
|
108
|
+
type: TokenType.CURVE_LP;
|
|
109
|
+
}
|
|
110
|
+
| {
|
|
111
|
+
symbol: YearnLPToken;
|
|
112
|
+
type: TokenType.YEARN_VAULT;
|
|
113
|
+
underlying: NormalToken;
|
|
114
|
+
}
|
|
115
|
+
| {
|
|
116
|
+
symbol: CurveLPToken;
|
|
117
|
+
type: TokenType.META_CURVE_LP;
|
|
118
|
+
}
|
|
119
|
+
| {
|
|
120
|
+
symbol: YearnLPToken;
|
|
121
|
+
type: TokenType.YEARN_VAULT_OF_CURVE_LP;
|
|
122
|
+
underlying: CurveLPToken;
|
|
123
|
+
}
|
|
124
|
+
| {
|
|
125
|
+
symbol: YearnLPToken;
|
|
126
|
+
type: TokenType.YEARN_VAULT_OF_META_CURVE_LP;
|
|
127
|
+
underlying: CurveLPToken;
|
|
128
|
+
}
|
|
129
|
+
| {
|
|
130
|
+
symbol: ConvexLPToken;
|
|
131
|
+
type: TokenType.CONVEX_LP_TOKEN;
|
|
132
|
+
pool: ConvexPoolContract;
|
|
133
|
+
underlying: CurveLPToken;
|
|
134
|
+
stakedToken: ConvexStakedPhantomToken;
|
|
135
|
+
}
|
|
136
|
+
| {
|
|
137
|
+
symbol: ConvexStakedPhantomToken;
|
|
138
|
+
type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN;
|
|
139
|
+
pool: ConvexPoolContract;
|
|
140
|
+
underlying: CurveLPToken;
|
|
141
|
+
lpToken: ConvexLPToken;
|
|
142
|
+
};
|
|
110
143
|
|
|
111
|
-
export const supportedTokens: Record<
|
|
144
|
+
export const supportedTokens: Record<SupportedToken, TokenDataI> = {
|
|
112
145
|
"1INCH": {
|
|
146
|
+
symbol: "1INCH",
|
|
113
147
|
type: TokenType.NORMAL_TOKEN
|
|
114
148
|
},
|
|
115
149
|
|
|
116
150
|
AAVE: {
|
|
151
|
+
symbol: "AAVE",
|
|
117
152
|
type: TokenType.NORMAL_TOKEN
|
|
118
153
|
},
|
|
119
154
|
|
|
120
155
|
COMP: {
|
|
156
|
+
symbol: "COMP",
|
|
121
157
|
type: TokenType.NORMAL_TOKEN
|
|
122
158
|
},
|
|
123
159
|
|
|
124
160
|
CRV: {
|
|
161
|
+
symbol: "CRV",
|
|
125
162
|
type: TokenType.NORMAL_TOKEN
|
|
126
163
|
},
|
|
127
164
|
|
|
128
165
|
DAI: {
|
|
166
|
+
symbol: "DAI",
|
|
129
167
|
type: TokenType.CONNECTOR
|
|
130
168
|
},
|
|
131
169
|
|
|
132
170
|
DPI: {
|
|
171
|
+
symbol: "DPI",
|
|
133
172
|
type: TokenType.NORMAL_TOKEN
|
|
134
173
|
},
|
|
135
174
|
|
|
136
175
|
FEI: {
|
|
176
|
+
symbol: "FEI",
|
|
137
177
|
type: TokenType.NORMAL_TOKEN
|
|
138
178
|
},
|
|
139
179
|
|
|
140
180
|
LINK: {
|
|
181
|
+
symbol: "LINK",
|
|
141
182
|
type: TokenType.NORMAL_TOKEN
|
|
142
183
|
},
|
|
143
184
|
|
|
144
185
|
SNX: {
|
|
186
|
+
symbol: "SNX",
|
|
145
187
|
type: TokenType.NORMAL_TOKEN
|
|
146
188
|
},
|
|
147
189
|
|
|
148
190
|
SUSHI: {
|
|
191
|
+
symbol: "SUSHI",
|
|
149
192
|
type: TokenType.NORMAL_TOKEN
|
|
150
193
|
},
|
|
151
194
|
|
|
152
195
|
UNI: {
|
|
196
|
+
symbol: "UNI",
|
|
153
197
|
type: TokenType.NORMAL_TOKEN
|
|
154
198
|
},
|
|
155
199
|
|
|
156
200
|
USDC: {
|
|
201
|
+
symbol: "USDC",
|
|
157
202
|
type: TokenType.CONNECTOR
|
|
158
203
|
},
|
|
159
204
|
|
|
160
205
|
USDT: {
|
|
206
|
+
symbol: "USDT",
|
|
161
207
|
type: TokenType.NORMAL_TOKEN
|
|
162
208
|
},
|
|
163
209
|
|
|
164
210
|
WBTC: {
|
|
211
|
+
symbol: "WBTC",
|
|
165
212
|
type: TokenType.CONNECTOR
|
|
166
213
|
},
|
|
167
214
|
|
|
168
215
|
WETH: {
|
|
216
|
+
symbol: "WETH",
|
|
169
217
|
type: TokenType.CONNECTOR
|
|
170
218
|
},
|
|
171
219
|
|
|
172
220
|
YFI: {
|
|
221
|
+
symbol: "YFI",
|
|
173
222
|
type: TokenType.NORMAL_TOKEN
|
|
174
223
|
},
|
|
175
224
|
|
|
176
225
|
/// UPDATE
|
|
177
226
|
STETH: {
|
|
227
|
+
symbol: "STETH",
|
|
178
228
|
type: TokenType.NORMAL_TOKEN
|
|
179
229
|
},
|
|
180
230
|
|
|
181
231
|
FTM: {
|
|
232
|
+
symbol: "FTM",
|
|
182
233
|
type: TokenType.NORMAL_TOKEN
|
|
183
234
|
},
|
|
184
235
|
|
|
185
236
|
CVX: {
|
|
237
|
+
symbol: "CVX",
|
|
186
238
|
type: TokenType.NORMAL_TOKEN
|
|
187
239
|
},
|
|
188
240
|
|
|
189
241
|
FRAX: {
|
|
242
|
+
symbol: "FRAX",
|
|
190
243
|
type: TokenType.NORMAL_TOKEN
|
|
191
244
|
},
|
|
192
245
|
|
|
193
246
|
FXS: {
|
|
247
|
+
symbol: "FXS",
|
|
194
248
|
type: TokenType.NORMAL_TOKEN
|
|
195
249
|
},
|
|
196
250
|
|
|
197
251
|
LDO: {
|
|
252
|
+
symbol: "LDO",
|
|
198
253
|
type: TokenType.NORMAL_TOKEN
|
|
199
254
|
},
|
|
200
255
|
|
|
201
256
|
SPELL: {
|
|
257
|
+
symbol: "SPELL",
|
|
202
258
|
type: TokenType.NORMAL_TOKEN
|
|
203
259
|
},
|
|
204
260
|
|
|
205
261
|
LUSD: {
|
|
262
|
+
symbol: "LUSD",
|
|
206
263
|
type: TokenType.NORMAL_TOKEN
|
|
207
264
|
},
|
|
208
265
|
|
|
209
266
|
sUSD: {
|
|
267
|
+
symbol: "sUSD",
|
|
210
268
|
type: TokenType.NORMAL_TOKEN
|
|
211
269
|
},
|
|
212
270
|
|
|
213
271
|
GUSD: {
|
|
272
|
+
symbol: "GUSD",
|
|
214
273
|
type: TokenType.NORMAL_TOKEN
|
|
215
274
|
},
|
|
216
275
|
|
|
217
276
|
LUNA: {
|
|
277
|
+
symbol: "LUNA",
|
|
218
278
|
type: TokenType.NORMAL_TOKEN
|
|
219
279
|
},
|
|
220
280
|
LQTY: {
|
|
281
|
+
symbol: "LQTY",
|
|
221
282
|
type: TokenType.NORMAL_TOKEN
|
|
222
283
|
},
|
|
223
284
|
|
|
224
285
|
// YEARN TOKENS
|
|
225
286
|
yvDAI: {
|
|
287
|
+
symbol: "yvDAI",
|
|
226
288
|
type: TokenType.YEARN_VAULT,
|
|
227
|
-
underlying: "DAI"
|
|
289
|
+
underlying: "DAI"
|
|
228
290
|
},
|
|
229
291
|
|
|
230
292
|
yvUSDC: {
|
|
293
|
+
symbol: "yvUSDC",
|
|
231
294
|
type: TokenType.YEARN_VAULT,
|
|
232
295
|
underlying: "USDC"
|
|
233
296
|
},
|
|
234
297
|
|
|
235
298
|
yvWETH: {
|
|
299
|
+
symbol: "yvWETH",
|
|
236
300
|
type: TokenType.YEARN_VAULT,
|
|
237
|
-
underlying: "WETH"
|
|
301
|
+
underlying: "WETH"
|
|
238
302
|
},
|
|
239
303
|
|
|
240
304
|
yvWBTC: {
|
|
305
|
+
symbol: "yvWBTC",
|
|
241
306
|
type: TokenType.YEARN_VAULT,
|
|
242
307
|
underlying: "WBTC"
|
|
243
308
|
},
|
|
244
309
|
|
|
245
310
|
// CURVE LP TOKENS
|
|
246
|
-
|
|
247
311
|
"3Crv": {
|
|
248
|
-
|
|
312
|
+
symbol: "3Crv",
|
|
313
|
+
type: TokenType.CURVE_LP,
|
|
249
314
|
},
|
|
250
315
|
|
|
251
316
|
steCRV: {
|
|
317
|
+
symbol: "steCRV",
|
|
252
318
|
type: TokenType.CURVE_LP
|
|
253
319
|
},
|
|
254
320
|
|
|
255
321
|
crvPlain3andSUSD: {
|
|
322
|
+
symbol: "crvPlain3andSUSD",
|
|
256
323
|
type: TokenType.CURVE_LP
|
|
257
324
|
},
|
|
258
325
|
|
|
259
326
|
// META CURVE LP TOKENS
|
|
260
|
-
|
|
261
327
|
FRAX3CRV: {
|
|
328
|
+
symbol: "FRAX3CRV",
|
|
262
329
|
type: TokenType.META_CURVE_LP
|
|
263
330
|
},
|
|
264
331
|
|
|
265
332
|
LUSD3CRV: {
|
|
333
|
+
symbol: "LUSD3CRV",
|
|
266
334
|
type: TokenType.META_CURVE_LP
|
|
267
335
|
},
|
|
268
336
|
|
|
269
337
|
gusd3CRV: {
|
|
338
|
+
symbol: "gusd3CRV",
|
|
270
339
|
type: TokenType.META_CURVE_LP
|
|
271
340
|
},
|
|
272
341
|
|
|
273
342
|
// CONVEX LP TOKENS
|
|
274
|
-
|
|
275
343
|
cvx3Crv: {
|
|
276
|
-
|
|
344
|
+
symbol: "cvx3Crv",
|
|
345
|
+
type: TokenType.CONVEX_LP_TOKEN,
|
|
346
|
+
pool: "CONVEX_3CRV",
|
|
347
|
+
underlying: "3Crv",
|
|
348
|
+
stakedToken: "stkcvx3Crv",
|
|
277
349
|
},
|
|
278
350
|
|
|
279
351
|
cvxsteCRV: {
|
|
280
|
-
|
|
352
|
+
symbol: "cvxsteCRV",
|
|
353
|
+
type: TokenType.CONVEX_LP_TOKEN,
|
|
354
|
+
pool: "CONVEX_STECRV",
|
|
355
|
+
underlying: "steCRV",
|
|
356
|
+
stakedToken: "stkcvxsteCRV",
|
|
281
357
|
},
|
|
282
358
|
|
|
283
359
|
cvxFRAX3CRV: {
|
|
284
|
-
|
|
360
|
+
symbol: "cvxFRAX3CRV",
|
|
361
|
+
type: TokenType.CONVEX_LP_TOKEN,
|
|
362
|
+
pool: "CONVEX_FRAX3CRV",
|
|
363
|
+
underlying: "FRAX3CRV",
|
|
364
|
+
stakedToken: "stkcvxFRAX3CRV",
|
|
285
365
|
},
|
|
286
366
|
|
|
287
367
|
cvxcrvPlain3andSUSD: {
|
|
288
|
-
|
|
368
|
+
symbol: "cvxcrvPlain3andSUSD",
|
|
369
|
+
type: TokenType.CONVEX_LP_TOKEN,
|
|
370
|
+
pool: "CONVEX_SUSD",
|
|
371
|
+
underlying: "crvPlain3andSUSD",
|
|
372
|
+
stakedToken: "stkcvxcrvPlain3andSUSD",
|
|
289
373
|
},
|
|
290
374
|
|
|
291
375
|
cvxgusd3CRV: {
|
|
292
|
-
|
|
376
|
+
symbol: "cvxgusd3CRV",
|
|
377
|
+
type: TokenType.CONVEX_LP_TOKEN,
|
|
378
|
+
pool: "CONVEX_GUSD",
|
|
379
|
+
underlying: "gusd3CRV",
|
|
380
|
+
stakedToken: "stkcvxgusd3CRV"
|
|
293
381
|
},
|
|
294
382
|
|
|
295
383
|
// YEARN- CURVE TOKENS
|
|
296
384
|
yvCurve_stETH: {
|
|
297
|
-
|
|
385
|
+
symbol: "yvCurve_stETH",
|
|
386
|
+
type: TokenType.YEARN_VAULT_OF_CURVE_LP,
|
|
387
|
+
underlying: "steCRV"
|
|
298
388
|
},
|
|
299
389
|
yvCurve_FRAX: {
|
|
300
|
-
|
|
390
|
+
symbol: "yvCurve_FRAX",
|
|
391
|
+
type: TokenType.YEARN_VAULT_OF_META_CURVE_LP,
|
|
392
|
+
underlying: "FRAX3CRV"
|
|
393
|
+
},
|
|
394
|
+
|
|
395
|
+
// STAKED CONVEX
|
|
396
|
+
stkcvx3Crv: {
|
|
397
|
+
symbol: "stkcvx3Crv",
|
|
398
|
+
type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
|
|
399
|
+
pool: "CONVEX_3CRV",
|
|
400
|
+
underlying: "3Crv",
|
|
401
|
+
lpToken: "cvx3Crv",
|
|
402
|
+
},
|
|
403
|
+
stkcvxsteCRV: {
|
|
404
|
+
symbol: "stkcvxsteCRV",
|
|
405
|
+
type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
|
|
406
|
+
pool: "CONVEX_STECRV",
|
|
407
|
+
underlying: "steCRV",
|
|
408
|
+
lpToken: "cvxsteCRV",
|
|
409
|
+
},
|
|
410
|
+
stkcvxFRAX3CRV: {
|
|
411
|
+
symbol: "stkcvxFRAX3CRV",
|
|
412
|
+
type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
|
|
413
|
+
pool: "CONVEX_FRAX3CRV",
|
|
414
|
+
underlying: "FRAX3CRV",
|
|
415
|
+
lpToken: "cvxFRAX3CRV",
|
|
416
|
+
},
|
|
417
|
+
stkcvxcrvPlain3andSUSD: {
|
|
418
|
+
symbol: "stkcvxcrvPlain3andSUSD",
|
|
419
|
+
type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
|
|
420
|
+
pool: "CONVEX_SUSD",
|
|
421
|
+
underlying: "crvPlain3andSUSD",
|
|
422
|
+
lpToken: "cvxcrvPlain3andSUSD",
|
|
423
|
+
},
|
|
424
|
+
stkcvxgusd3CRV: {
|
|
425
|
+
symbol: "stkcvxgusd3CRV",
|
|
426
|
+
type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
|
|
427
|
+
pool: "CONVEX_GUSD",
|
|
428
|
+
underlying: "gusd3CRV",
|
|
429
|
+
lpToken: "cvxgusd3CRV"
|
|
301
430
|
}
|
|
302
431
|
};
|
|
303
432
|
|
|
304
433
|
export const tokenDataByNetwork: Record<
|
|
305
434
|
NetworkType,
|
|
306
|
-
Record<
|
|
435
|
+
Record<SupportedToken, string>
|
|
307
436
|
> = {
|
|
308
437
|
//
|
|
309
438
|
// MAINNET NETWORK
|
|
@@ -361,7 +490,11 @@ export const tokenDataByNetwork: Record<
|
|
|
361
490
|
cvxgusd3CRV: "0x15c2471ef46Fa721990730cfa526BcFb45574576",
|
|
362
491
|
|
|
363
492
|
// CONVEX PHANTOM TOKEN ADDRESSES
|
|
364
|
-
|
|
493
|
+
stkcvx3Crv: "",
|
|
494
|
+
stkcvxsteCRV: "",
|
|
495
|
+
stkcvxFRAX3CRV: "",
|
|
496
|
+
stkcvxcrvPlain3andSUSD: "",
|
|
497
|
+
stkcvxgusd3CRV: "",
|
|
365
498
|
|
|
366
499
|
// YEARN- CURVE TOKENS
|
|
367
500
|
yvCurve_stETH: "0xdCD90C7f6324cfa40d7169ef80b12031770B4325",
|
|
@@ -425,6 +558,13 @@ export const tokenDataByNetwork: Record<
|
|
|
425
558
|
cvxcrvPlain3andSUSD: "",
|
|
426
559
|
cvxgusd3CRV: "",
|
|
427
560
|
|
|
561
|
+
// CONVEX PHANTOM TOKEN ADDRESSES
|
|
562
|
+
stkcvx3Crv: "",
|
|
563
|
+
stkcvxsteCRV: "",
|
|
564
|
+
stkcvxFRAX3CRV: "",
|
|
565
|
+
stkcvxcrvPlain3andSUSD: "",
|
|
566
|
+
stkcvxgusd3CRV: "",
|
|
567
|
+
|
|
428
568
|
// YEARN- CURVE TOKENS
|
|
429
569
|
yvCurve_stETH: "0xdDc2FA328321573Bc2647C0135D75012c522CDAC",
|
|
430
570
|
yvCurve_FRAX: ""
|
package/src/core/tokenData.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { BigNumber } from "ethers";
|
|
|
2
2
|
import { TokenDataPayload } from "../payload/token";
|
|
3
3
|
import { STATIC_TOKEN } from "../config";
|
|
4
4
|
import { NetworkType } from "./constants";
|
|
5
|
-
import {
|
|
5
|
+
import { SupportedToken, tokenDataByNetwork } from "./token";
|
|
6
6
|
|
|
7
7
|
export class TokenData {
|
|
8
8
|
public readonly id: string;
|
|
@@ -50,7 +50,7 @@ export const WETHToken: Record<NetworkType, string> = {
|
|
|
50
50
|
Kovan: "0xd0a1e359811322d97991e03f863a0c30c2cf029c",
|
|
51
51
|
};
|
|
52
52
|
|
|
53
|
-
export const connectors: Record<NetworkType, Array<
|
|
53
|
+
export const connectors: Record<NetworkType, Array<SupportedToken>> = {
|
|
54
54
|
Mainnet: [
|
|
55
55
|
"WETH",
|
|
56
56
|
"1INCH",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Logger } from "tslog";
|
|
2
|
+
|
|
3
|
+
export abstract class LoggedDeployer {
|
|
4
|
+
protected readonly _logger: Logger;
|
|
5
|
+
|
|
6
|
+
protected constructor() {
|
|
7
|
+
this._logger = new Logger({
|
|
8
|
+
minLevel: "error",
|
|
9
|
+
displayFunctionName: false,
|
|
10
|
+
displayLoggerName: false,
|
|
11
|
+
displayFilePath: "hidden",
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
enableLogs() {
|
|
16
|
+
this._logger.setSettings({ minLevel: "debug" });
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
disableLogs() {
|
|
20
|
+
this._logger.setSettings({ minLevel: "error" });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021. Gearbox
|
|
3
|
+
*/
|
|
4
|
+
import { LoggedDeployer } from "./loggedDeployer";
|
|
5
|
+
import * as fs from "fs";
|
|
6
|
+
import { config as dotEnvConfig } from "dotenv";
|
|
7
|
+
import axios from "axios";
|
|
8
|
+
const hre = require("hardhat");
|
|
9
|
+
|
|
10
|
+
const VERIFIER_FILE = "./.verifier.json"
|
|
11
|
+
|
|
12
|
+
dotEnvConfig({ path: ".env" });
|
|
13
|
+
|
|
14
|
+
export interface VerifyRequest {
|
|
15
|
+
address: string;
|
|
16
|
+
constructorArguments: Array<any>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export class Verifier extends LoggedDeployer {
|
|
20
|
+
protected verifier: Array<VerifyRequest> = [];
|
|
21
|
+
protected apiKey: string;
|
|
22
|
+
|
|
23
|
+
constructor() {
|
|
24
|
+
super();
|
|
25
|
+
// this.verifier = verifierJson;
|
|
26
|
+
// JSON.parse("")
|
|
27
|
+
this.apiKey = process.env.ETHERSCAN_API_KEY || "";
|
|
28
|
+
if (this.apiKey === "") throw new Error("No etherscan API provided");
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
addContract(c: VerifyRequest) {
|
|
32
|
+
|
|
33
|
+
// Add logic to check if address is already exists
|
|
34
|
+
this.verifier.push(c);
|
|
35
|
+
this._saveVerifier();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
async deploy() {
|
|
41
|
+
this.enableLogs();
|
|
42
|
+
|
|
43
|
+
for (let i = 0; i < this.verifier.length; i++) {
|
|
44
|
+
const params = this.verifier.shift();
|
|
45
|
+
|
|
46
|
+
const url = `https://api-kovan.etherscan.io/api?module=contract&action=getabi&address=${params?.address}&apikey=${this.apiKey}`;
|
|
47
|
+
|
|
48
|
+
const isVerified = await axios.get(url);
|
|
49
|
+
|
|
50
|
+
console.log(isVerified.data)
|
|
51
|
+
|
|
52
|
+
if (isVerified.data.status === '1') {
|
|
53
|
+
this._logger.debug(`${params?.address} is already verified`);
|
|
54
|
+
} else {
|
|
55
|
+
this._logger.info(`Verifing: ${params?.address}`);
|
|
56
|
+
await hre.run("verify:verify", params);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
this._saveVerifier();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
protected _saveVerifier() {
|
|
64
|
+
fs.writeFileSync(VERIFIER_FILE, JSON.stringify(this.verifier));
|
|
65
|
+
this._logger.debug("Deploy progress was saved into .verifier.json");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// const verifier = new Verifier();
|
|
70
|
+
|
|
71
|
+
// verifier
|
|
72
|
+
// .deploy()
|
|
73
|
+
// .then(() => {
|
|
74
|
+
// process.exit(0);
|
|
75
|
+
// })
|
|
76
|
+
// .catch((error) => {
|
|
77
|
+
// console.error(error);
|
|
78
|
+
// process.exit(1);
|
|
79
|
+
// });
|
package/src/index.ts
CHANGED
|
@@ -28,6 +28,7 @@ export * from "./utils/math";
|
|
|
28
28
|
export * from "./core/creditCard";
|
|
29
29
|
export * from "./payload/graphPayload";
|
|
30
30
|
export * from "./types/index";
|
|
31
|
+
export * from "./devops/verifierDeployer";
|
|
31
32
|
|
|
32
33
|
export type {
|
|
33
34
|
IAppPoolService,
|
|
@@ -42,4 +43,4 @@ export * from "./core/history";
|
|
|
42
43
|
export { MultiCallContract } from "./utils/multicall";
|
|
43
44
|
export { callRepeater } from "./utils/repeater";
|
|
44
45
|
export { getContractName } from "./core/contractsRegister";
|
|
45
|
-
export { AdapterInterface } from "./core/
|
|
46
|
+
export { AdapterInterface } from "./core/adapters";
|