@gearbox-protocol/sdk 0.0.42 → 0.0.45

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,7 +1,8 @@
1
1
  import { NetworkType } from "./constants";
2
2
  import { ConvexPoolContract } from "./contracts";
3
+ import { TradeAction, TradeType } from "./tradeTypes";
3
4
 
4
- enum TokenType {
5
+ export enum TokenType {
5
6
  CONNECTOR,
6
7
  NORMAL_TOKEN,
7
8
  CURVE_LP,
@@ -98,33 +99,43 @@ export type TokenDataI =
98
99
  | {
99
100
  symbol: NormalToken;
100
101
  type: TokenType.CONNECTOR;
102
+ swapActions: Array<TradeAction>;
103
+ lpActions?: Array<TradeAction>;
101
104
  }
102
105
  | {
103
106
  symbol: NormalToken;
104
107
  type: TokenType.NORMAL_TOKEN;
108
+ swapActions: Array<TradeAction>;
109
+ lpActions?: Array<TradeAction>;
105
110
  }
106
111
  | {
107
112
  symbol: CurveLPToken;
108
113
  type: TokenType.CURVE_LP;
114
+ swapActions?: Array<TradeAction>;
115
+ lpActions: Array<TradeAction>;
109
116
  }
110
117
  | {
111
118
  symbol: YearnLPToken;
112
119
  type: TokenType.YEARN_VAULT;
113
120
  underlying: NormalToken;
121
+ lpActions: Array<TradeAction>;
114
122
  }
115
123
  | {
116
124
  symbol: CurveLPToken;
117
125
  type: TokenType.META_CURVE_LP;
126
+ lpActions: Array<TradeAction>;
118
127
  }
119
128
  | {
120
129
  symbol: YearnLPToken;
121
130
  type: TokenType.YEARN_VAULT_OF_CURVE_LP;
122
131
  underlying: CurveLPToken;
132
+ lpActions: Array<TradeAction>;
123
133
  }
124
134
  | {
125
135
  symbol: YearnLPToken;
126
136
  type: TokenType.YEARN_VAULT_OF_META_CURVE_LP;
127
137
  underlying: CurveLPToken;
138
+ lpActions: Array<TradeAction>;
128
139
  }
129
140
  | {
130
141
  symbol: ConvexLPToken;
@@ -132,6 +143,7 @@ export type TokenDataI =
132
143
  pool: ConvexPoolContract;
133
144
  underlying: CurveLPToken;
134
145
  stakedToken: ConvexStakedPhantomToken;
146
+ lpActions: Array<TradeAction>;
135
147
  }
136
148
  | {
137
149
  symbol: ConvexStakedPhantomToken;
@@ -139,204 +151,671 @@ export type TokenDataI =
139
151
  pool: ConvexPoolContract;
140
152
  underlying: CurveLPToken;
141
153
  lpToken: ConvexLPToken;
154
+ lpActions: Array<TradeAction>;
142
155
  };
143
156
 
144
157
  export const supportedTokens: Record<SupportedToken, TokenDataI> = {
145
158
  "1INCH": {
146
159
  symbol: "1INCH",
147
- type: TokenType.NORMAL_TOKEN
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
+ ]
148
175
  },
149
176
 
150
177
  AAVE: {
151
178
  symbol: "AAVE",
152
- type: TokenType.NORMAL_TOKEN
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
+ ]
153
194
  },
154
195
 
155
196
  COMP: {
156
197
  symbol: "COMP",
157
- type: TokenType.NORMAL_TOKEN
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
+ ]
158
213
  },
159
214
 
160
215
  CRV: {
161
216
  symbol: "CRV",
162
- type: TokenType.NORMAL_TOKEN
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
+ ]
163
232
  },
164
233
 
165
234
  DAI: {
166
235
  symbol: "DAI",
167
- type: TokenType.CONNECTOR
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
+ ]
168
268
  },
169
269
 
170
270
  DPI: {
171
271
  symbol: "DPI",
172
- type: TokenType.NORMAL_TOKEN
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
+ ]
173
287
  },
174
288
 
175
289
  FEI: {
176
290
  symbol: "FEI",
177
- type: TokenType.NORMAL_TOKEN
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
+ ]
178
306
  },
179
307
 
180
308
  LINK: {
181
309
  symbol: "LINK",
182
- type: TokenType.NORMAL_TOKEN
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
+ ]
183
325
  },
184
326
 
185
327
  SNX: {
186
328
  symbol: "SNX",
187
- type: TokenType.NORMAL_TOKEN
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
+ ]
188
344
  },
189
345
 
190
346
  SUSHI: {
191
347
  symbol: "SUSHI",
192
- type: TokenType.NORMAL_TOKEN
348
+ type: TokenType.NORMAL_TOKEN,
349
+ swapActions: [
350
+ {
351
+ type: TradeType.UniswapV2Swap,
352
+ contract: "SUSHISWAP_ROUTER"
353
+ }
354
+ ]
193
355
  },
194
356
 
195
357
  UNI: {
196
358
  symbol: "UNI",
197
- type: TokenType.NORMAL_TOKEN
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
+ ]
198
370
  },
199
371
 
200
372
  USDC: {
201
373
  symbol: "USDC",
202
- type: TokenType.CONNECTOR
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
+ ]
203
394
  },
204
395
 
205
396
  USDT: {
206
397
  symbol: "USDT",
207
- type: TokenType.NORMAL_TOKEN
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
+ ]
208
418
  },
209
419
 
210
420
  WBTC: {
211
421
  symbol: "WBTC",
212
- type: TokenType.CONNECTOR
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
+ ]
213
437
  },
214
438
 
215
439
  WETH: {
216
440
  symbol: "WETH",
217
- type: TokenType.CONNECTOR
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
+ ]
218
461
  },
219
462
 
220
463
  YFI: {
221
464
  symbol: "YFI",
222
- type: TokenType.NORMAL_TOKEN
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
+ ]
223
480
  },
224
481
 
225
482
  /// UPDATE
226
483
  STETH: {
227
484
  symbol: "STETH",
228
- type: TokenType.NORMAL_TOKEN
485
+ type: TokenType.NORMAL_TOKEN,
486
+ swapActions: [
487
+ {
488
+ type: TradeType.CurveExchange,
489
+ contract: "CURVE_STETH_GATEWAY",
490
+ tokenOut: ["STETH"]
491
+ }
492
+ ]
229
493
  },
230
494
 
231
495
  FTM: {
232
496
  symbol: "FTM",
233
- type: TokenType.NORMAL_TOKEN
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
+ ]
234
517
  },
235
518
 
236
519
  CVX: {
237
520
  symbol: "CVX",
238
- type: TokenType.NORMAL_TOKEN
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
+ ]
239
541
  },
240
542
 
241
543
  FRAX: {
242
544
  symbol: "FRAX",
243
- type: TokenType.NORMAL_TOKEN
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
+ ]
244
565
  },
245
566
 
246
567
  FXS: {
247
568
  symbol: "FXS",
248
- type: TokenType.NORMAL_TOKEN
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
+ ]
249
584
  },
250
585
 
251
586
  LDO: {
252
587
  symbol: "LDO",
253
- type: TokenType.NORMAL_TOKEN
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
+ ]
254
603
  },
255
604
 
256
605
  SPELL: {
257
606
  symbol: "SPELL",
258
- type: TokenType.NORMAL_TOKEN
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
+ ]
259
622
  },
260
623
 
261
624
  LUSD: {
262
625
  symbol: "LUSD",
263
- type: TokenType.NORMAL_TOKEN
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
+ ]
264
641
  },
265
642
 
266
643
  sUSD: {
267
644
  symbol: "sUSD",
268
- type: TokenType.NORMAL_TOKEN
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
+ ]
269
660
  },
270
661
 
271
662
  GUSD: {
272
663
  symbol: "GUSD",
273
- type: TokenType.NORMAL_TOKEN
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
+ ]
274
679
  },
275
680
 
276
681
  LUNA: {
277
682
  symbol: "LUNA",
278
- type: TokenType.NORMAL_TOKEN
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
+ ]
279
698
  },
280
699
  LQTY: {
281
700
  symbol: "LQTY",
282
- type: TokenType.NORMAL_TOKEN
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
+ ]
283
716
  },
284
717
 
285
718
  // YEARN TOKENS
286
719
  yvDAI: {
287
720
  symbol: "yvDAI",
288
721
  type: TokenType.YEARN_VAULT,
289
- underlying: "DAI"
722
+ underlying: "DAI",
723
+ lpActions: [
724
+ {
725
+ type: TradeType.YearnWithdraw,
726
+ contract: "YEARN_DAI",
727
+ tokenOut: "DAI"
728
+ }
729
+ ]
290
730
  },
291
731
 
292
732
  yvUSDC: {
293
733
  symbol: "yvUSDC",
294
734
  type: TokenType.YEARN_VAULT,
295
- underlying: "USDC"
735
+ underlying: "USDC",
736
+ lpActions: [
737
+ {
738
+ type: TradeType.YearnWithdraw,
739
+ contract: "YEARN_USDC",
740
+ tokenOut: "USDC"
741
+ }
742
+ ]
296
743
  },
297
744
 
298
745
  yvWETH: {
299
746
  symbol: "yvWETH",
300
747
  type: TokenType.YEARN_VAULT,
301
- underlying: "WETH"
748
+ underlying: "WETH",
749
+ lpActions: [
750
+ {
751
+ type: TradeType.YearnWithdraw,
752
+ contract: "YEARN_WETH",
753
+ tokenOut: "WETH"
754
+ }
755
+ ]
302
756
  },
303
757
 
304
758
  yvWBTC: {
305
759
  symbol: "yvWBTC",
306
760
  type: TokenType.YEARN_VAULT,
307
- underlying: "WBTC"
761
+ underlying: "WBTC",
762
+ lpActions: [
763
+ {
764
+ type: TradeType.YearnWithdraw,
765
+ contract: "YEARN_WBTC",
766
+ tokenOut: "WBTC"
767
+ }
768
+ ]
308
769
  },
309
770
 
310
771
  // CURVE LP TOKENS
311
772
  "3Crv": {
312
773
  symbol: "3Crv",
313
774
  type: TokenType.CURVE_LP,
775
+ lpActions: [
776
+ {
777
+ type: TradeType.CurveWithdrawLP,
778
+ contract: "CURVE_3POOL",
779
+ tokenOut: ["DAI", "USDC", "USDT"]
780
+ }
781
+ ]
314
782
  },
315
783
 
316
784
  steCRV: {
317
785
  symbol: "steCRV",
318
- type: TokenType.CURVE_LP
786
+ type: TokenType.CURVE_LP,
787
+ lpActions: [
788
+ {
789
+ type: TradeType.CurveWithdrawLP,
790
+ contract: "CURVE_STETH_GATEWAY",
791
+ tokenOut: ["STETH"]
792
+ }
793
+ ]
319
794
  },
320
795
 
321
796
  crvPlain3andSUSD: {
322
797
  symbol: "crvPlain3andSUSD",
323
- type: TokenType.CURVE_LP
798
+ type: TokenType.CURVE_LP,
799
+ lpActions: []
324
800
  },
325
801
 
326
802
  // META CURVE LP TOKENS
327
803
  FRAX3CRV: {
328
804
  symbol: "FRAX3CRV",
329
- type: TokenType.META_CURVE_LP
805
+ type: TokenType.META_CURVE_LP,
806
+ lpActions: []
330
807
  },
331
808
 
332
809
  LUSD3CRV: {
333
810
  symbol: "LUSD3CRV",
334
- type: TokenType.META_CURVE_LP
811
+ type: TokenType.META_CURVE_LP,
812
+ lpActions: []
335
813
  },
336
814
 
337
815
  gusd3CRV: {
338
816
  symbol: "gusd3CRV",
339
- type: TokenType.META_CURVE_LP
817
+ type: TokenType.META_CURVE_LP,
818
+ lpActions: []
340
819
  },
341
820
 
342
821
  // CONVEX LP TOKENS
@@ -346,6 +825,7 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
346
825
  pool: "CONVEX_3CRV",
347
826
  underlying: "3Crv",
348
827
  stakedToken: "stkcvx3Crv",
828
+ lpActions: []
349
829
  },
350
830
 
351
831
  cvxsteCRV: {
@@ -354,6 +834,7 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
354
834
  pool: "CONVEX_STECRV",
355
835
  underlying: "steCRV",
356
836
  stakedToken: "stkcvxsteCRV",
837
+ lpActions: []
357
838
  },
358
839
 
359
840
  cvxFRAX3CRV: {
@@ -362,6 +843,7 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
362
843
  pool: "CONVEX_FRAX3CRV",
363
844
  underlying: "FRAX3CRV",
364
845
  stakedToken: "stkcvxFRAX3CRV",
846
+ lpActions: []
365
847
  },
366
848
 
367
849
  cvxcrvPlain3andSUSD: {
@@ -370,6 +852,7 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
370
852
  pool: "CONVEX_SUSD",
371
853
  underlying: "crvPlain3andSUSD",
372
854
  stakedToken: "stkcvxcrvPlain3andSUSD",
855
+ lpActions: []
373
856
  },
374
857
 
375
858
  cvxgusd3CRV: {
@@ -377,19 +860,22 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
377
860
  type: TokenType.CONVEX_LP_TOKEN,
378
861
  pool: "CONVEX_GUSD",
379
862
  underlying: "gusd3CRV",
380
- stakedToken: "stkcvxgusd3CRV"
863
+ stakedToken: "stkcvxgusd3CRV",
864
+ lpActions: []
381
865
  },
382
866
 
383
867
  // YEARN- CURVE TOKENS
384
868
  yvCurve_stETH: {
385
869
  symbol: "yvCurve_stETH",
386
870
  type: TokenType.YEARN_VAULT_OF_CURVE_LP,
387
- underlying: "steCRV"
871
+ underlying: "steCRV",
872
+ lpActions: []
388
873
  },
389
874
  yvCurve_FRAX: {
390
875
  symbol: "yvCurve_FRAX",
391
876
  type: TokenType.YEARN_VAULT_OF_META_CURVE_LP,
392
- underlying: "FRAX3CRV"
877
+ underlying: "FRAX3CRV",
878
+ lpActions: []
393
879
  },
394
880
 
395
881
  // STAKED CONVEX
@@ -399,6 +885,7 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
399
885
  pool: "CONVEX_3CRV",
400
886
  underlying: "3Crv",
401
887
  lpToken: "cvx3Crv",
888
+ lpActions: []
402
889
  },
403
890
  stkcvxsteCRV: {
404
891
  symbol: "stkcvxsteCRV",
@@ -406,6 +893,7 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
406
893
  pool: "CONVEX_STECRV",
407
894
  underlying: "steCRV",
408
895
  lpToken: "cvxsteCRV",
896
+ lpActions: []
409
897
  },
410
898
  stkcvxFRAX3CRV: {
411
899
  symbol: "stkcvxFRAX3CRV",
@@ -413,6 +901,7 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
413
901
  pool: "CONVEX_FRAX3CRV",
414
902
  underlying: "FRAX3CRV",
415
903
  lpToken: "cvxFRAX3CRV",
904
+ lpActions: []
416
905
  },
417
906
  stkcvxcrvPlain3andSUSD: {
418
907
  symbol: "stkcvxcrvPlain3andSUSD",
@@ -420,13 +909,15 @@ export const supportedTokens: Record<SupportedToken, TokenDataI> = {
420
909
  pool: "CONVEX_SUSD",
421
910
  underlying: "crvPlain3andSUSD",
422
911
  lpToken: "cvxcrvPlain3andSUSD",
912
+ lpActions: []
423
913
  },
424
914
  stkcvxgusd3CRV: {
425
915
  symbol: "stkcvxgusd3CRV",
426
916
  type: TokenType.CONVEX_STAKED_PHANTOM_TOKEN,
427
917
  pool: "CONVEX_GUSD",
428
918
  underlying: "gusd3CRV",
429
- lpToken: "cvxgusd3CRV"
919
+ lpToken: "cvxgusd3CRV",
920
+ lpActions: []
430
921
  }
431
922
  };
432
923