@gearbox-protocol/sdk 0.0.41 → 0.0.44

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/src/core/token.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { NetworkType } from "./constants";
2
+ import { ConvexPoolContract } from "./contracts";
3
+ import { TradeAction, TradeType } from "./tradeTypes";
2
4
 
3
5
  enum TokenType {
4
6
  CONNECTOR,
@@ -9,10 +11,10 @@ enum TokenType {
9
11
  YEARN_VAULT_OF_CURVE_LP,
10
12
  YEARN_VAULT_OF_META_CURVE_LP,
11
13
  CONVEX_LP_TOKEN,
12
- CONVEX_STAKED_PHANTOM_TOKEN,
14
+ CONVEX_STAKED_PHANTOM_TOKEN
13
15
  }
14
16
 
15
- export const priority : Record<TokenType, number> = {
17
+ export const priority: Record<TokenType, number> = {
16
18
  [TokenType.CONNECTOR]: 1,
17
19
  [TokenType.NORMAL_TOKEN]: 2,
18
20
  [TokenType.CURVE_LP]: 3,
@@ -24,34 +26,7 @@ export const priority : Record<TokenType, number> = {
24
26
  [TokenType.CONVEX_STAKED_PHANTOM_TOKEN]: 5
25
27
  };
26
28
 
27
- export type TokenDataI =
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 =
29
+ export type NormalToken =
55
30
  | "1INCH"
56
31
  | "AAVE"
57
32
  | "COMP"
@@ -81,229 +56,874 @@ export type SupportedTokens =
81
56
  | "sUSD"
82
57
  | "GUSD"
83
58
  | "LUNA"
84
- | "LQTY"
85
-
86
- // YEARN
87
- | "yvDAI"
88
- | "yvUSDC"
89
- | "yvWETH"
90
- | "yvWBTC"
59
+ | "LQTY";
91
60
 
92
- // CURVE LP TOKENS
61
+ export type CurveLPToken =
93
62
  | "3Crv"
94
63
  | "steCRV"
95
64
  | "FRAX3CRV"
96
65
  | "LUSD3CRV"
97
66
  | "crvPlain3andSUSD"
98
- | "gusd3CRV"
67
+ | "gusd3CRV";
99
68
 
100
- // CONVEX LP TOKENS
69
+ export type YearnLPToken =
70
+ | "yvDAI"
71
+ | "yvUSDC"
72
+ | "yvWETH"
73
+ | "yvWBTC"
74
+ | "yvCurve_stETH"
75
+ | "yvCurve_FRAX";
76
+
77
+ export type ConvexLPToken =
101
78
  | "cvx3Crv"
102
79
  | "cvxsteCRV"
103
80
  | "cvxFRAX3CRV"
104
81
  | "cvxcrvPlain3andSUSD"
105
- | "cvxgusd3CRV"
82
+ | "cvxgusd3CRV";
83
+
84
+ export type ConvexStakedPhantomToken =
85
+ | "stkcvx3Crv"
86
+ | "stkcvxsteCRV"
87
+ | "stkcvxFRAX3CRV"
88
+ | "stkcvxcrvPlain3andSUSD"
89
+ | "stkcvxgusd3CRV";
90
+
91
+ export type SupportedToken =
92
+ | NormalToken
93
+ | YearnLPToken
94
+ | CurveLPToken
95
+ | ConvexLPToken
96
+ | ConvexStakedPhantomToken;
106
97
 
107
- // YEARN- CURVE TOKENS
108
- | "yvCurve_stETH"
109
- | "yvCurve_FRAX";
98
+ export type TokenDataI =
99
+ | {
100
+ symbol: NormalToken;
101
+ type: TokenType.CONNECTOR;
102
+ swapActions: Array<TradeAction>;
103
+ lpActions?: Array<TradeAction>;
104
+ }
105
+ | {
106
+ symbol: NormalToken;
107
+ type: TokenType.NORMAL_TOKEN;
108
+ swapActions: Array<TradeAction>;
109
+ lpActions?: Array<TradeAction>;
110
+ }
111
+ | {
112
+ symbol: CurveLPToken;
113
+ type: TokenType.CURVE_LP;
114
+ swapActions?: Array<TradeAction>;
115
+ lpActions: Array<TradeAction>;
116
+ }
117
+ | {
118
+ symbol: YearnLPToken;
119
+ type: TokenType.YEARN_VAULT;
120
+ underlying: NormalToken;
121
+ lpActions: Array<TradeAction>;
122
+ }
123
+ | {
124
+ symbol: CurveLPToken;
125
+ type: TokenType.META_CURVE_LP;
126
+ lpActions: Array<TradeAction>;
127
+ }
128
+ | {
129
+ symbol: YearnLPToken;
130
+ type: TokenType.YEARN_VAULT_OF_CURVE_LP;
131
+ underlying: CurveLPToken;
132
+ lpActions: Array<TradeAction>;
133
+ }
134
+ | {
135
+ symbol: YearnLPToken;
136
+ type: TokenType.YEARN_VAULT_OF_META_CURVE_LP;
137
+ underlying: CurveLPToken;
138
+ lpActions: Array<TradeAction>;
139
+ }
140
+ | {
141
+ symbol: ConvexLPToken;
142
+ type: TokenType.CONVEX_LP_TOKEN;
143
+ pool: ConvexPoolContract;
144
+ underlying: CurveLPToken;
145
+ stakedToken: ConvexStakedPhantomToken;
146
+ lpActions: Array<TradeAction>;
147
+ }
148
+ | {
149
+ symbol: ConvexStakedPhantomToken;
150
+ type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN;
151
+ pool: ConvexPoolContract;
152
+ underlying: CurveLPToken;
153
+ lpToken: ConvexLPToken;
154
+ lpActions: Array<TradeAction>;
155
+ };
110
156
 
111
- export const supportedTokens: Record<SupportedTokens, TokenDataI> = {
157
+ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
112
158
  "1INCH": {
113
- type: TokenType.NORMAL_TOKEN
159
+ symbol: "1INCH",
160
+ type: TokenType.NORMAL_TOKEN,
161
+ swapActions: [
162
+ {
163
+ type: TradeType.UniswapV3Swap,
164
+ contract: "UNISWAP_V3_ROUTER"
165
+ },
166
+ {
167
+ type: TradeType.UniswapV2Swap,
168
+ contract: "UNISWAP_V2_ROUTER"
169
+ },
170
+ {
171
+ type: TradeType.UniswapV2Swap,
172
+ contract: "SUSHISWAP_ROUTER"
173
+ },
174
+ ]
114
175
  },
115
176
 
116
177
  AAVE: {
117
- type: TokenType.NORMAL_TOKEN
178
+ symbol: "AAVE",
179
+ type: TokenType.NORMAL_TOKEN,
180
+ swapActions: [
181
+ {
182
+ type: TradeType.UniswapV3Swap,
183
+ contract: "UNISWAP_V3_ROUTER"
184
+ },
185
+ {
186
+ type: TradeType.UniswapV2Swap,
187
+ contract: "UNISWAP_V2_ROUTER"
188
+ },
189
+ {
190
+ type: TradeType.UniswapV2Swap,
191
+ contract: "SUSHISWAP_ROUTER"
192
+ },
193
+ ]
118
194
  },
119
195
 
120
196
  COMP: {
121
- type: TokenType.NORMAL_TOKEN
197
+ symbol: "COMP",
198
+ type: TokenType.NORMAL_TOKEN,
199
+ swapActions: [
200
+ {
201
+ type: TradeType.UniswapV3Swap,
202
+ contract: "UNISWAP_V3_ROUTER"
203
+ },
204
+ {
205
+ type: TradeType.UniswapV2Swap,
206
+ contract: "UNISWAP_V2_ROUTER"
207
+ },
208
+ {
209
+ type: TradeType.UniswapV2Swap,
210
+ contract: "SUSHISWAP_ROUTER"
211
+ },
212
+ ]
122
213
  },
123
214
 
124
215
  CRV: {
125
- type: TokenType.NORMAL_TOKEN
216
+ symbol: "CRV",
217
+ type: TokenType.NORMAL_TOKEN,
218
+ swapActions: [
219
+ {
220
+ type: TradeType.UniswapV3Swap,
221
+ contract: "UNISWAP_V3_ROUTER"
222
+ },
223
+ {
224
+ type: TradeType.UniswapV2Swap,
225
+ contract: "UNISWAP_V2_ROUTER"
226
+ },
227
+ {
228
+ type: TradeType.UniswapV2Swap,
229
+ contract: "SUSHISWAP_ROUTER"
230
+ },
231
+ ]
126
232
  },
127
233
 
128
234
  DAI: {
129
- type: TokenType.CONNECTOR
235
+ symbol: "DAI",
236
+ type: TokenType.CONNECTOR,
237
+ swapActions: [
238
+ {
239
+ type: TradeType.UniswapV3Swap,
240
+ contract: "UNISWAP_V3_ROUTER"
241
+ },
242
+ {
243
+ type: TradeType.UniswapV2Swap,
244
+ contract: "UNISWAP_V2_ROUTER"
245
+ },
246
+ {
247
+ type: TradeType.UniswapV2Swap,
248
+ contract: "SUSHISWAP_ROUTER"
249
+ },
250
+ {
251
+ type: TradeType.CurveExchange,
252
+ contract: "CURVE_3POOL",
253
+ tokenOut: ["USDC", "USDT"]
254
+ }
255
+ ],
256
+ lpActions: [
257
+ {
258
+ type: TradeType.CurveDepositLP,
259
+ contract: "CURVE_3POOL",
260
+ tokenOut: "3Crv"
261
+ },
262
+ {
263
+ type: TradeType.YearnDeposit,
264
+ contract: "YEARN_DAI",
265
+ tokenOut: "yvDAI"
266
+ }
267
+ ]
130
268
  },
131
269
 
132
270
  DPI: {
133
- type: TokenType.NORMAL_TOKEN
271
+ symbol: "DPI",
272
+ type: TokenType.NORMAL_TOKEN,
273
+ swapActions: [
274
+ {
275
+ type: TradeType.UniswapV3Swap,
276
+ contract: "UNISWAP_V3_ROUTER"
277
+ },
278
+ {
279
+ type: TradeType.UniswapV2Swap,
280
+ contract: "UNISWAP_V2_ROUTER"
281
+ },
282
+ {
283
+ type: TradeType.UniswapV2Swap,
284
+ contract: "SUSHISWAP_ROUTER"
285
+ }
286
+ ]
134
287
  },
135
288
 
136
289
  FEI: {
137
- type: TokenType.NORMAL_TOKEN
290
+ symbol: "FEI",
291
+ type: TokenType.NORMAL_TOKEN,
292
+ swapActions: [
293
+ {
294
+ type: TradeType.UniswapV3Swap,
295
+ contract: "UNISWAP_V3_ROUTER"
296
+ },
297
+ {
298
+ type: TradeType.UniswapV2Swap,
299
+ contract: "UNISWAP_V2_ROUTER"
300
+ },
301
+ {
302
+ type: TradeType.UniswapV2Swap,
303
+ contract: "SUSHISWAP_ROUTER"
304
+ }
305
+ ]
138
306
  },
139
307
 
140
308
  LINK: {
141
- type: TokenType.NORMAL_TOKEN
309
+ symbol: "LINK",
310
+ type: TokenType.NORMAL_TOKEN,
311
+ swapActions: [
312
+ {
313
+ type: TradeType.UniswapV3Swap,
314
+ contract: "UNISWAP_V3_ROUTER"
315
+ },
316
+ {
317
+ type: TradeType.UniswapV2Swap,
318
+ contract: "UNISWAP_V2_ROUTER"
319
+ },
320
+ {
321
+ type: TradeType.UniswapV2Swap,
322
+ contract: "SUSHISWAP_ROUTER"
323
+ }
324
+ ]
142
325
  },
143
326
 
144
327
  SNX: {
145
- type: TokenType.NORMAL_TOKEN
328
+ symbol: "SNX",
329
+ type: TokenType.NORMAL_TOKEN,
330
+ swapActions: [
331
+ {
332
+ type: TradeType.UniswapV3Swap,
333
+ contract: "UNISWAP_V3_ROUTER"
334
+ },
335
+ {
336
+ type: TradeType.UniswapV2Swap,
337
+ contract: "UNISWAP_V2_ROUTER"
338
+ },
339
+ {
340
+ type: TradeType.UniswapV2Swap,
341
+ contract: "SUSHISWAP_ROUTER"
342
+ }
343
+ ]
146
344
  },
147
345
 
148
346
  SUSHI: {
149
- type: TokenType.NORMAL_TOKEN
347
+ symbol: "SUSHI",
348
+ type: TokenType.NORMAL_TOKEN,
349
+ swapActions: [
350
+ {
351
+ type: TradeType.UniswapV2Swap,
352
+ contract: "SUSHISWAP_ROUTER"
353
+ }
354
+ ]
150
355
  },
151
356
 
152
357
  UNI: {
153
- type: TokenType.NORMAL_TOKEN
358
+ symbol: "UNI",
359
+ type: TokenType.NORMAL_TOKEN,
360
+ swapActions: [
361
+ {
362
+ type: TradeType.UniswapV3Swap,
363
+ contract: "UNISWAP_V3_ROUTER"
364
+ },
365
+ {
366
+ type: TradeType.UniswapV2Swap,
367
+ contract: "UNISWAP_V2_ROUTER"
368
+ }
369
+ ]
154
370
  },
155
371
 
156
372
  USDC: {
157
- type: TokenType.CONNECTOR
373
+ symbol: "USDC",
374
+ type: TokenType.CONNECTOR,
375
+ swapActions: [
376
+ {
377
+ type: TradeType.UniswapV3Swap,
378
+ contract: "UNISWAP_V3_ROUTER"
379
+ },
380
+ {
381
+ type: TradeType.UniswapV2Swap,
382
+ contract: "UNISWAP_V2_ROUTER"
383
+ },
384
+ {
385
+ type: TradeType.UniswapV2Swap,
386
+ contract: "SUSHISWAP_ROUTER"
387
+ },
388
+ {
389
+ type: TradeType.CurveExchange,
390
+ contract: "CURVE_3POOL",
391
+ tokenOut: ["DAI", "USDT"]
392
+ }
393
+ ]
158
394
  },
159
395
 
160
396
  USDT: {
161
- type: TokenType.NORMAL_TOKEN
397
+ symbol: "USDT",
398
+ type: TokenType.NORMAL_TOKEN,
399
+ swapActions: [
400
+ {
401
+ type: TradeType.UniswapV3Swap,
402
+ contract: "UNISWAP_V3_ROUTER"
403
+ },
404
+ {
405
+ type: TradeType.UniswapV2Swap,
406
+ contract: "UNISWAP_V2_ROUTER"
407
+ },
408
+ {
409
+ type: TradeType.UniswapV2Swap,
410
+ contract: "SUSHISWAP_ROUTER"
411
+ },
412
+ {
413
+ type: TradeType.CurveExchange,
414
+ contract: "CURVE_3POOL",
415
+ tokenOut: ["USDC", "DAI"]
416
+ }
417
+ ]
162
418
  },
163
419
 
164
420
  WBTC: {
165
- type: TokenType.CONNECTOR
421
+ symbol: "WBTC",
422
+ type: TokenType.CONNECTOR,
423
+ swapActions: [
424
+ {
425
+ type: TradeType.UniswapV3Swap,
426
+ contract: "UNISWAP_V3_ROUTER"
427
+ },
428
+ {
429
+ type: TradeType.UniswapV2Swap,
430
+ contract: "UNISWAP_V2_ROUTER"
431
+ },
432
+ {
433
+ type: TradeType.UniswapV2Swap,
434
+ contract: "SUSHISWAP_ROUTER"
435
+ }
436
+ ]
166
437
  },
167
438
 
168
439
  WETH: {
169
- type: TokenType.CONNECTOR
440
+ symbol: "WETH",
441
+ type: TokenType.CONNECTOR,
442
+ swapActions: [
443
+ {
444
+ type: TradeType.UniswapV3Swap,
445
+ contract: "UNISWAP_V3_ROUTER"
446
+ },
447
+ {
448
+ type: TradeType.UniswapV2Swap,
449
+ contract: "UNISWAP_V2_ROUTER"
450
+ },
451
+ {
452
+ type: TradeType.UniswapV2Swap,
453
+ contract: "SUSHISWAP_ROUTER"
454
+ },
455
+ {
456
+ type: TradeType.CurveExchange,
457
+ contract: "CURVE_STETH_GATEWAY",
458
+ tokenOut: ["STETH"]
459
+ }
460
+ ]
170
461
  },
171
462
 
172
463
  YFI: {
173
- type: TokenType.NORMAL_TOKEN
464
+ symbol: "YFI",
465
+ type: TokenType.NORMAL_TOKEN,
466
+ swapActions: [
467
+ {
468
+ type: TradeType.UniswapV3Swap,
469
+ contract: "UNISWAP_V3_ROUTER"
470
+ },
471
+ {
472
+ type: TradeType.UniswapV2Swap,
473
+ contract: "UNISWAP_V2_ROUTER"
474
+ },
475
+ {
476
+ type: TradeType.UniswapV2Swap,
477
+ contract: "SUSHISWAP_ROUTER"
478
+ }
479
+ ]
174
480
  },
175
481
 
176
482
  /// UPDATE
177
483
  STETH: {
178
- type: TokenType.NORMAL_TOKEN
484
+ symbol: "STETH",
485
+ type: TokenType.NORMAL_TOKEN,
486
+ swapActions: [
487
+ {
488
+ type: TradeType.CurveExchange,
489
+ contract: "CURVE_STETH_GATEWAY",
490
+ tokenOut: ["STETH"]
491
+ }
492
+ ]
179
493
  },
180
494
 
181
495
  FTM: {
182
- type: TokenType.NORMAL_TOKEN
496
+ symbol: "FTM",
497
+ type: TokenType.NORMAL_TOKEN,
498
+ swapActions: [
499
+ {
500
+ type: TradeType.UniswapV3Swap,
501
+ contract: "UNISWAP_V3_ROUTER"
502
+ },
503
+ {
504
+ type: TradeType.UniswapV2Swap,
505
+ contract: "UNISWAP_V2_ROUTER"
506
+ },
507
+ {
508
+ type: TradeType.UniswapV2Swap,
509
+ contract: "SUSHISWAP_ROUTER"
510
+ },
511
+ {
512
+ type: TradeType.CurveExchange,
513
+ contract: "CURVE_STETH_GATEWAY",
514
+ tokenOut: ["STETH"]
515
+ }
516
+ ]
183
517
  },
184
518
 
185
519
  CVX: {
186
- type: TokenType.NORMAL_TOKEN
520
+ symbol: "CVX",
521
+ type: TokenType.NORMAL_TOKEN,
522
+ swapActions: [
523
+ {
524
+ type: TradeType.UniswapV3Swap,
525
+ contract: "UNISWAP_V3_ROUTER"
526
+ },
527
+ {
528
+ type: TradeType.UniswapV2Swap,
529
+ contract: "UNISWAP_V2_ROUTER"
530
+ },
531
+ {
532
+ type: TradeType.UniswapV2Swap,
533
+ contract: "SUSHISWAP_ROUTER"
534
+ },
535
+ {
536
+ type: TradeType.CurveExchange,
537
+ contract: "CURVE_STETH_GATEWAY",
538
+ tokenOut: ["STETH"]
539
+ }
540
+ ]
187
541
  },
188
542
 
189
543
  FRAX: {
190
- type: TokenType.NORMAL_TOKEN
544
+ symbol: "FRAX",
545
+ type: TokenType.NORMAL_TOKEN,
546
+ swapActions: [
547
+ {
548
+ type: TradeType.UniswapV3Swap,
549
+ contract: "UNISWAP_V3_ROUTER"
550
+ },
551
+ {
552
+ type: TradeType.UniswapV2Swap,
553
+ contract: "UNISWAP_V2_ROUTER"
554
+ },
555
+ {
556
+ type: TradeType.UniswapV2Swap,
557
+ contract: "SUSHISWAP_ROUTER"
558
+ },
559
+ {
560
+ type: TradeType.CurveExchange,
561
+ contract: "CURVE_FRAX",
562
+ tokenOut: ["3Crv"]
563
+ }
564
+ ]
191
565
  },
192
566
 
193
567
  FXS: {
194
- type: TokenType.NORMAL_TOKEN
568
+ symbol: "FXS",
569
+ type: TokenType.NORMAL_TOKEN,
570
+ swapActions: [
571
+ {
572
+ type: TradeType.UniswapV3Swap,
573
+ contract: "UNISWAP_V3_ROUTER"
574
+ },
575
+ {
576
+ type: TradeType.UniswapV2Swap,
577
+ contract: "UNISWAP_V2_ROUTER"
578
+ },
579
+ {
580
+ type: TradeType.UniswapV2Swap,
581
+ contract: "SUSHISWAP_ROUTER"
582
+ }
583
+ ]
195
584
  },
196
585
 
197
586
  LDO: {
198
- type: TokenType.NORMAL_TOKEN
587
+ symbol: "LDO",
588
+ type: TokenType.NORMAL_TOKEN,
589
+ swapActions: [
590
+ {
591
+ type: TradeType.UniswapV3Swap,
592
+ contract: "UNISWAP_V3_ROUTER"
593
+ },
594
+ {
595
+ type: TradeType.UniswapV2Swap,
596
+ contract: "UNISWAP_V2_ROUTER"
597
+ },
598
+ {
599
+ type: TradeType.UniswapV2Swap,
600
+ contract: "SUSHISWAP_ROUTER"
601
+ }
602
+ ]
199
603
  },
200
604
 
201
605
  SPELL: {
202
- type: TokenType.NORMAL_TOKEN
606
+ symbol: "SPELL",
607
+ type: TokenType.NORMAL_TOKEN,
608
+ swapActions: [
609
+ {
610
+ type: TradeType.UniswapV3Swap,
611
+ contract: "UNISWAP_V3_ROUTER"
612
+ },
613
+ {
614
+ type: TradeType.UniswapV2Swap,
615
+ contract: "UNISWAP_V2_ROUTER"
616
+ },
617
+ {
618
+ type: TradeType.UniswapV2Swap,
619
+ contract: "SUSHISWAP_ROUTER"
620
+ }
621
+ ]
203
622
  },
204
623
 
205
624
  LUSD: {
206
- type: TokenType.NORMAL_TOKEN
625
+ symbol: "LUSD",
626
+ type: TokenType.NORMAL_TOKEN,
627
+ swapActions: [
628
+ {
629
+ type: TradeType.UniswapV3Swap,
630
+ contract: "UNISWAP_V3_ROUTER"
631
+ },
632
+ {
633
+ type: TradeType.UniswapV2Swap,
634
+ contract: "UNISWAP_V2_ROUTER"
635
+ },
636
+ {
637
+ type: TradeType.UniswapV2Swap,
638
+ contract: "SUSHISWAP_ROUTER"
639
+ }
640
+ ]
207
641
  },
208
642
 
209
643
  sUSD: {
210
- type: TokenType.NORMAL_TOKEN
644
+ symbol: "sUSD",
645
+ type: TokenType.NORMAL_TOKEN,
646
+ swapActions: [
647
+ {
648
+ type: TradeType.UniswapV3Swap,
649
+ contract: "UNISWAP_V3_ROUTER"
650
+ },
651
+ {
652
+ type: TradeType.UniswapV2Swap,
653
+ contract: "UNISWAP_V2_ROUTER"
654
+ },
655
+ {
656
+ type: TradeType.UniswapV2Swap,
657
+ contract: "SUSHISWAP_ROUTER"
658
+ }
659
+ ]
211
660
  },
212
661
 
213
662
  GUSD: {
214
- type: TokenType.NORMAL_TOKEN
663
+ symbol: "GUSD",
664
+ type: TokenType.NORMAL_TOKEN,
665
+ swapActions: [
666
+ {
667
+ type: TradeType.UniswapV3Swap,
668
+ contract: "UNISWAP_V3_ROUTER"
669
+ },
670
+ {
671
+ type: TradeType.UniswapV2Swap,
672
+ contract: "UNISWAP_V2_ROUTER"
673
+ },
674
+ {
675
+ type: TradeType.UniswapV2Swap,
676
+ contract: "SUSHISWAP_ROUTER"
677
+ }
678
+ ]
215
679
  },
216
680
 
217
681
  LUNA: {
218
- type: TokenType.NORMAL_TOKEN
682
+ symbol: "LUNA",
683
+ type: TokenType.NORMAL_TOKEN,
684
+ swapActions: [
685
+ {
686
+ type: TradeType.UniswapV3Swap,
687
+ contract: "UNISWAP_V3_ROUTER"
688
+ },
689
+ {
690
+ type: TradeType.UniswapV2Swap,
691
+ contract: "UNISWAP_V2_ROUTER"
692
+ },
693
+ {
694
+ type: TradeType.UniswapV2Swap,
695
+ contract: "SUSHISWAP_ROUTER"
696
+ }
697
+ ]
219
698
  },
220
699
  LQTY: {
221
- type: TokenType.NORMAL_TOKEN
700
+ symbol: "LQTY",
701
+ type: TokenType.NORMAL_TOKEN,
702
+ swapActions: [
703
+ {
704
+ type: TradeType.UniswapV3Swap,
705
+ contract: "UNISWAP_V3_ROUTER"
706
+ },
707
+ {
708
+ type: TradeType.UniswapV2Swap,
709
+ contract: "UNISWAP_V2_ROUTER"
710
+ },
711
+ {
712
+ type: TradeType.UniswapV2Swap,
713
+ contract: "SUSHISWAP_ROUTER"
714
+ }
715
+ ]
222
716
  },
223
717
 
224
718
  // YEARN TOKENS
225
719
  yvDAI: {
720
+ symbol: "yvDAI",
226
721
  type: TokenType.YEARN_VAULT,
227
722
  underlying: "DAI",
723
+ lpActions: [
724
+ {
725
+ type: TradeType.YearnWithdraw,
726
+ contract: "YEARN_DAI",
727
+ tokenOut: "DAI"
728
+ }
729
+ ]
228
730
  },
229
731
 
230
732
  yvUSDC: {
733
+ symbol: "yvUSDC",
231
734
  type: TokenType.YEARN_VAULT,
232
- underlying: "USDC"
735
+ underlying: "USDC",
736
+ lpActions: [
737
+ {
738
+ type: TradeType.YearnWithdraw,
739
+ contract: "YEARN_USDC",
740
+ tokenOut: "USDC"
741
+ }
742
+ ]
233
743
  },
234
744
 
235
745
  yvWETH: {
746
+ symbol: "yvWETH",
236
747
  type: TokenType.YEARN_VAULT,
237
748
  underlying: "WETH",
749
+ lpActions: [
750
+ {
751
+ type: TradeType.YearnWithdraw,
752
+ contract: "YEARN_WETH",
753
+ tokenOut: "WETH"
754
+ }
755
+ ]
238
756
  },
239
757
 
240
758
  yvWBTC: {
759
+ symbol: "yvWBTC",
241
760
  type: TokenType.YEARN_VAULT,
242
- underlying: "WBTC"
761
+ underlying: "WBTC",
762
+ lpActions: [
763
+ {
764
+ type: TradeType.YearnWithdraw,
765
+ contract: "YEARN_WBTC",
766
+ tokenOut: "WBTC"
767
+ }
768
+ ]
243
769
  },
244
770
 
245
771
  // CURVE LP TOKENS
246
-
247
772
  "3Crv": {
248
- type: TokenType.CURVE_LP
773
+ symbol: "3Crv",
774
+ type: TokenType.CURVE_LP,
775
+ lpActions: [
776
+ {
777
+ type: TradeType.CurveWithdrawLP,
778
+ contract: "CURVE_3POOL",
779
+ tokenOut: ["DAI", "USDC", "USDT"]
780
+ }
781
+ ]
249
782
  },
250
783
 
251
784
  steCRV: {
252
- type: TokenType.CURVE_LP
785
+ symbol: "steCRV",
786
+ type: TokenType.CURVE_LP,
787
+ lpActions: [
788
+ {
789
+ type: TradeType.CurveWithdrawLP,
790
+ contract: "CURVE_STETH_GATEWAY",
791
+ tokenOut: ["STETH"]
792
+ }
793
+ ]
253
794
  },
254
795
 
255
796
  crvPlain3andSUSD: {
256
- type: TokenType.CURVE_LP
797
+ symbol: "crvPlain3andSUSD",
798
+ type: TokenType.CURVE_LP,
799
+ lpActions: []
257
800
  },
258
801
 
259
802
  // META CURVE LP TOKENS
260
-
261
803
  FRAX3CRV: {
262
- type: TokenType.META_CURVE_LP
804
+ symbol: "FRAX3CRV",
805
+ type: TokenType.META_CURVE_LP,
806
+ lpActions: []
263
807
  },
264
808
 
265
809
  LUSD3CRV: {
266
- type: TokenType.META_CURVE_LP
810
+ symbol: "LUSD3CRV",
811
+ type: TokenType.META_CURVE_LP,
812
+ lpActions: []
267
813
  },
268
814
 
269
815
  gusd3CRV: {
270
- type: TokenType.META_CURVE_LP
816
+ symbol: "gusd3CRV",
817
+ type: TokenType.META_CURVE_LP,
818
+ lpActions: []
271
819
  },
272
820
 
273
821
  // CONVEX LP TOKENS
274
-
275
822
  cvx3Crv: {
276
- type: TokenType.CONVEX_LP_TOKEN
823
+ symbol: "cvx3Crv",
824
+ type: TokenType.CONVEX_LP_TOKEN,
825
+ pool: "CONVEX_3CRV",
826
+ underlying: "3Crv",
827
+ stakedToken: "stkcvx3Crv",
828
+ lpActions: []
277
829
  },
278
830
 
279
831
  cvxsteCRV: {
280
- type: TokenType.CONVEX_LP_TOKEN
832
+ symbol: "cvxsteCRV",
833
+ type: TokenType.CONVEX_LP_TOKEN,
834
+ pool: "CONVEX_STECRV",
835
+ underlying: "steCRV",
836
+ stakedToken: "stkcvxsteCRV",
837
+ lpActions: []
281
838
  },
282
839
 
283
840
  cvxFRAX3CRV: {
284
- type: TokenType.CONVEX_LP_TOKEN
841
+ symbol: "cvxFRAX3CRV",
842
+ type: TokenType.CONVEX_LP_TOKEN,
843
+ pool: "CONVEX_FRAX3CRV",
844
+ underlying: "FRAX3CRV",
845
+ stakedToken: "stkcvxFRAX3CRV",
846
+ lpActions: []
285
847
  },
286
848
 
287
849
  cvxcrvPlain3andSUSD: {
288
- type: TokenType.CONVEX_LP_TOKEN
850
+ symbol: "cvxcrvPlain3andSUSD",
851
+ type: TokenType.CONVEX_LP_TOKEN,
852
+ pool: "CONVEX_SUSD",
853
+ underlying: "crvPlain3andSUSD",
854
+ stakedToken: "stkcvxcrvPlain3andSUSD",
855
+ lpActions: []
289
856
  },
290
857
 
291
858
  cvxgusd3CRV: {
292
- type: TokenType.CONVEX_LP_TOKEN
859
+ symbol: "cvxgusd3CRV",
860
+ type: TokenType.CONVEX_LP_TOKEN,
861
+ pool: "CONVEX_GUSD",
862
+ underlying: "gusd3CRV",
863
+ stakedToken: "stkcvxgusd3CRV",
864
+ lpActions: []
293
865
  },
294
866
 
295
867
  // YEARN- CURVE TOKENS
296
868
  yvCurve_stETH: {
297
- type: TokenType.YEARN_VAULT_OF_CURVE_LP
869
+ symbol: "yvCurve_stETH",
870
+ type: TokenType.YEARN_VAULT_OF_CURVE_LP,
871
+ underlying: "steCRV",
872
+ lpActions: []
298
873
  },
299
874
  yvCurve_FRAX: {
300
- type: TokenType.YEARN_VAULT_OF_META_CURVE_LP
875
+ symbol: "yvCurve_FRAX",
876
+ type: TokenType.YEARN_VAULT_OF_META_CURVE_LP,
877
+ underlying: "FRAX3CRV",
878
+ lpActions: []
879
+ },
880
+
881
+ // STAKED CONVEX
882
+ stkcvx3Crv: {
883
+ symbol: "stkcvx3Crv",
884
+ type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
885
+ pool: "CONVEX_3CRV",
886
+ underlying: "3Crv",
887
+ lpToken: "cvx3Crv",
888
+ lpActions: []
889
+ },
890
+ stkcvxsteCRV: {
891
+ symbol: "stkcvxsteCRV",
892
+ type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
893
+ pool: "CONVEX_STECRV",
894
+ underlying: "steCRV",
895
+ lpToken: "cvxsteCRV",
896
+ lpActions: []
897
+ },
898
+ stkcvxFRAX3CRV: {
899
+ symbol: "stkcvxFRAX3CRV",
900
+ type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
901
+ pool: "CONVEX_FRAX3CRV",
902
+ underlying: "FRAX3CRV",
903
+ lpToken: "cvxFRAX3CRV",
904
+ lpActions: []
905
+ },
906
+ stkcvxcrvPlain3andSUSD: {
907
+ symbol: "stkcvxcrvPlain3andSUSD",
908
+ type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
909
+ pool: "CONVEX_SUSD",
910
+ underlying: "crvPlain3andSUSD",
911
+ lpToken: "cvxcrvPlain3andSUSD",
912
+ lpActions: []
913
+ },
914
+ stkcvxgusd3CRV: {
915
+ symbol: "stkcvxgusd3CRV",
916
+ type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
917
+ pool: "CONVEX_GUSD",
918
+ underlying: "gusd3CRV",
919
+ lpToken: "cvxgusd3CRV",
920
+ lpActions: []
301
921
  }
302
922
  };
303
923
 
304
924
  export const tokenDataByNetwork: Record<
305
925
  NetworkType,
306
- Record<SupportedTokens, string>
926
+ Record<SupportedToken, string>
307
927
  > = {
308
928
  //
309
929
  // MAINNET NETWORK
@@ -361,7 +981,11 @@ export const tokenDataByNetwork: Record<
361
981
  cvxgusd3CRV: "0x15c2471ef46Fa721990730cfa526BcFb45574576",
362
982
 
363
983
  // CONVEX PHANTOM TOKEN ADDRESSES
364
- // <Provide them here>
984
+ stkcvx3Crv: "",
985
+ stkcvxsteCRV: "",
986
+ stkcvxFRAX3CRV: "",
987
+ stkcvxcrvPlain3andSUSD: "",
988
+ stkcvxgusd3CRV: "",
365
989
 
366
990
  // YEARN- CURVE TOKENS
367
991
  yvCurve_stETH: "0xdCD90C7f6324cfa40d7169ef80b12031770B4325",
@@ -425,6 +1049,13 @@ export const tokenDataByNetwork: Record<
425
1049
  cvxcrvPlain3andSUSD: "",
426
1050
  cvxgusd3CRV: "",
427
1051
 
1052
+ // CONVEX PHANTOM TOKEN ADDRESSES
1053
+ stkcvx3Crv: "",
1054
+ stkcvxsteCRV: "",
1055
+ stkcvxFRAX3CRV: "",
1056
+ stkcvxcrvPlain3andSUSD: "",
1057
+ stkcvxgusd3CRV: "",
1058
+
428
1059
  // YEARN- CURVE TOKENS
429
1060
  yvCurve_stETH: "0xdDc2FA328321573Bc2647C0135D75012c522CDAC",
430
1061
  yvCurve_FRAX: ""