@gearbox-protocol/sdk 0.0.35 → 0.0.38

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.
@@ -18,7 +18,8 @@ export declare type PriceFeedData = {
18
18
  } | {
19
19
  type: OracleType.YEARN_TOKEN_ORACLE;
20
20
  token: SupportedTokens;
21
- priceFeedKovan?: string;
21
+ deployed?: string;
22
+ deployedKovan?: string;
22
23
  } | {
23
24
  type: OracleType.CURVE_LP_ORACLE;
24
25
  assets: Array<SupportedTokens>;
@@ -5,11 +5,10 @@ import { SupportedTokens } from "./token";
5
5
  export interface Path {
6
6
  calls: Array<MultiCall>;
7
7
  balances: Record<SupportedTokens, BigNumber>;
8
- usedTokens: Array<SupportedTokens>;
9
8
  gasUsed: number;
10
9
  pool: SupportedTokens;
11
10
  creditManager: CreditManagerData;
12
- getBestPath(p: Path): Promise<Path>;
11
+ getBestPath(): Promise<Path>;
13
12
  }
14
13
  export interface PathAsset {
15
14
  getBestPath(p: Path): Promise<Path>;
@@ -6,6 +6,12 @@ var ConnectorPathAsset = /** @class */ (function () {
6
6
  }
7
7
  ConnectorPathAsset.prototype.getBestPath = function (p) {
8
8
  console.log(p);
9
+ // How to unwrap
10
+ // set balance of current token to 0
11
+ // add balnace what we get
12
+ // add call
13
+ // create new Paths
14
+ // return maxValuable(new Paths.getBestPath())
9
15
  throw new Error("Method not implemented.");
10
16
  };
11
17
  return ConnectorPathAsset;
@@ -257,6 +257,9 @@ exports.priceFeedsByNetwork = {
257
257
  type: oracles_1.OracleType.CHAINLINK_ORACLE,
258
258
  address: "0x4e844125952d32acdf339be976c98e22f6f318db",
259
259
  kovan: "0x6204148EF888786A2988E7b09c8e0A67e32cb387"
260
+ },
261
+ priceFeedUSD: {
262
+ type: oracles_1.OracleType.ZERO_ORACLE
260
263
  }
261
264
  // ADD ETH-> DAI Oracle!
262
265
  },
@@ -282,7 +285,8 @@ exports.priceFeedsByNetwork = {
282
285
  yvDAI: {
283
286
  priceFeedETH: {
284
287
  type: oracles_1.OracleType.YEARN_TOKEN_ORACLE,
285
- token: "DAI"
288
+ token: "DAI",
289
+ deployedKovan: ""
286
290
  },
287
291
  priceFeedUSD: {
288
292
  type: oracles_1.OracleType.YEARN_TOKEN_ORACLE,
@@ -292,7 +296,8 @@ exports.priceFeedsByNetwork = {
292
296
  yvUSDC: {
293
297
  priceFeedETH: {
294
298
  type: oracles_1.OracleType.YEARN_TOKEN_ORACLE,
295
- token: "USDC"
299
+ token: "USDC",
300
+ deployedKovan: ""
296
301
  },
297
302
  priceFeedUSD: {
298
303
  type: oracles_1.OracleType.YEARN_TOKEN_ORACLE,
@@ -361,12 +366,6 @@ exports.priceFeedsByNetwork = {
361
366
  curveSymbol: "FRAX3CRV"
362
367
  }
363
368
  },
364
- yvCurve_d3pool: {
365
- priceFeedUSD: {
366
- type: oracles_1.OracleType.YEARN_CURVE_LP_ORACLE,
367
- curveSymbol: "crvPlain3andSUSD"
368
- }
369
- },
370
369
  // CVX tokens
371
370
  cvx3Crv: {
372
371
  priceFeedUSD: {
@@ -1,143 +1,34 @@
1
1
  import { NetworkType } from "./constants";
2
- export declare const supportedTokens: {
3
- "1INCH": {
4
- type: string;
5
- };
6
- AAVE: {
7
- type: string;
8
- };
9
- COMP: {
10
- type: string;
11
- };
12
- CRV: {
13
- type: string;
14
- };
15
- DAI: {
16
- type: string;
17
- };
18
- DPI: {
19
- type: string;
20
- };
21
- FEI: {
22
- type: string;
23
- };
24
- LINK: {
25
- type: string;
26
- };
27
- SNX: {
28
- type: string;
29
- };
30
- SUSHI: {
31
- type: string;
32
- };
33
- UNI: {
34
- type: string;
35
- };
36
- USDC: {
37
- type: string;
38
- };
39
- USDT: {
40
- type: string;
41
- };
42
- WBTC: {
43
- type: string;
44
- };
45
- WETH: {
46
- type: string;
47
- };
48
- YFI: {
49
- type: string;
50
- };
51
- STETH: {
52
- type: string;
53
- };
54
- FTM: {
55
- type: string;
56
- };
57
- CVX: {
58
- type: string;
59
- };
60
- FRAX: {
61
- type: string;
62
- };
63
- FXS: {
64
- type: string;
65
- };
66
- LDO: {
67
- type: string;
68
- };
69
- SPELL: {
70
- type: string;
71
- };
72
- LUSD: {
73
- type: string;
74
- };
75
- sUSD: {
76
- type: string;
77
- };
78
- GUSD: {
79
- type: string;
80
- };
81
- LUNA: {
82
- type: string;
83
- };
84
- LQTY: {
85
- type: string;
86
- };
87
- yvDAI: {
88
- type: string;
89
- };
90
- yvUSDC: {
91
- type: string;
92
- };
93
- yvWETH: {
94
- type: string;
95
- };
96
- yvWBTC: {
97
- type: string;
98
- };
99
- "3Crv": {
100
- type: string;
101
- };
102
- steCRV: {
103
- type: string;
104
- };
105
- FRAX3CRV: {
106
- type: string;
107
- };
108
- LUSD3CRV: {
109
- type: string;
110
- };
111
- crvPlain3andSUSD: {
112
- type: string;
113
- };
114
- gusd3CRV: {
115
- type: string;
116
- };
117
- cvx3Crv: {
118
- type: string;
119
- };
120
- cvxsteCRV: {
121
- type: string;
122
- };
123
- cvxFRAX3CRV: {
124
- type: string;
125
- };
126
- cvxcrvPlain3andSUSD: {
127
- type: string;
128
- };
129
- cvxgusd3CRV: {
130
- type: string;
131
- };
132
- yvCurve_stETH: {
133
- type: string;
134
- };
135
- yvCurve_FRAX: {
136
- type: string;
137
- };
138
- yvCurve_d3pool: {
139
- type: string;
140
- };
2
+ declare enum TokenType {
3
+ CONNECTOR = 0,
4
+ NORMAL_TOKEN = 1,
5
+ CURVE_LP = 2,
6
+ META_CURVE_LP = 3,
7
+ YEARN_VAULT = 4,
8
+ YEARN_VAULT_OF_CURVE_LP = 5,
9
+ YEARN_VAULT_OF_META_CURVE_LP = 6,
10
+ CONVEX_LP_TOKEN = 7,
11
+ CONVEX_STAKED_PHANTOM_TOKEN = 8
12
+ }
13
+ export declare const priority: Record<TokenType, number>;
14
+ export declare type TokenDataI = {
15
+ type: TokenType.CONNECTOR;
16
+ } | {
17
+ type: TokenType.NORMAL_TOKEN;
18
+ } | {
19
+ type: TokenType.CURVE_LP;
20
+ } | {
21
+ type: TokenType.YEARN_VAULT;
22
+ } | {
23
+ type: TokenType.META_CURVE_LP;
24
+ } | {
25
+ type: TokenType.YEARN_VAULT_OF_CURVE_LP;
26
+ } | {
27
+ type: TokenType.CONVEX_LP_TOKEN;
28
+ } | {
29
+ type: TokenType.YEARN_VAULT_OF_META_CURVE_LP;
141
30
  };
142
- export declare type SupportedTokens = keyof typeof supportedTokens;
31
+ export declare type SupportedTokens = "1INCH" | "AAVE" | "COMP" | "CRV" | "DAI" | "DPI" | "FEI" | "LINK" | "SNX" | "SUSHI" | "UNI" | "USDC" | "USDT" | "WBTC" | "WETH" | "YFI" | "STETH" | "FTM" | "CVX" | "FRAX" | "FXS" | "LDO" | "SPELL" | "LUSD" | "sUSD" | "GUSD" | "LUNA" | "LQTY" | "yvDAI" | "yvUSDC" | "yvWETH" | "yvWBTC" | "3Crv" | "steCRV" | "FRAX3CRV" | "LUSD3CRV" | "crvPlain3andSUSD" | "gusd3CRV" | "cvx3Crv" | "cvxsteCRV" | "cvxFRAX3CRV" | "cvxcrvPlain3andSUSD" | "cvxgusd3CRV" | "yvCurve_stETH" | "yvCurve_FRAX";
32
+ export declare const supportedTokens: Record<SupportedTokens, TokenDataI>;
143
33
  export declare const tokenDataByNetwork: Record<NetworkType, Record<SupportedTokens, string>>;
34
+ export {};
package/lib/core/token.js CHANGED
@@ -1,157 +1,176 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tokenDataByNetwork = exports.supportedTokens = void 0;
4
+ exports.tokenDataByNetwork = exports.supportedTokens = exports.priority = void 0;
5
+ var TokenType;
6
+ (function (TokenType) {
7
+ TokenType[TokenType["CONNECTOR"] = 0] = "CONNECTOR";
8
+ TokenType[TokenType["NORMAL_TOKEN"] = 1] = "NORMAL_TOKEN";
9
+ TokenType[TokenType["CURVE_LP"] = 2] = "CURVE_LP";
10
+ TokenType[TokenType["META_CURVE_LP"] = 3] = "META_CURVE_LP";
11
+ TokenType[TokenType["YEARN_VAULT"] = 4] = "YEARN_VAULT";
12
+ TokenType[TokenType["YEARN_VAULT_OF_CURVE_LP"] = 5] = "YEARN_VAULT_OF_CURVE_LP";
13
+ TokenType[TokenType["YEARN_VAULT_OF_META_CURVE_LP"] = 6] = "YEARN_VAULT_OF_META_CURVE_LP";
14
+ TokenType[TokenType["CONVEX_LP_TOKEN"] = 7] = "CONVEX_LP_TOKEN";
15
+ TokenType[TokenType["CONVEX_STAKED_PHANTOM_TOKEN"] = 8] = "CONVEX_STAKED_PHANTOM_TOKEN";
16
+ })(TokenType || (TokenType = {}));
17
+ exports.priority = (_a = {},
18
+ _a[TokenType.CONNECTOR] = 1,
19
+ _a[TokenType.NORMAL_TOKEN] = 2,
20
+ _a[TokenType.CURVE_LP] = 3,
21
+ _a[TokenType.YEARN_VAULT] = 3,
22
+ _a[TokenType.META_CURVE_LP] = 4,
23
+ _a[TokenType.YEARN_VAULT_OF_CURVE_LP] = 4,
24
+ _a[TokenType.CONVEX_LP_TOKEN] = 5,
25
+ _a[TokenType.YEARN_VAULT_OF_META_CURVE_LP] = 5,
26
+ _a[TokenType.CONVEX_STAKED_PHANTOM_TOKEN] = 5,
27
+ _a);
4
28
  exports.supportedTokens = {
5
29
  "1INCH": {
6
- type: "volatile"
30
+ type: TokenType.NORMAL_TOKEN
7
31
  },
8
32
  AAVE: {
9
- type: "volatile"
33
+ type: TokenType.NORMAL_TOKEN
10
34
  },
11
35
  COMP: {
12
- type: "volatile"
36
+ type: TokenType.NORMAL_TOKEN
13
37
  },
14
38
  CRV: {
15
- type: "volatile"
39
+ type: TokenType.NORMAL_TOKEN
16
40
  },
17
41
  DAI: {
18
- type: "stable"
42
+ type: TokenType.CONNECTOR
19
43
  },
20
44
  DPI: {
21
- type: "volatile"
45
+ type: TokenType.NORMAL_TOKEN
22
46
  },
23
47
  FEI: {
24
- type: "stable"
48
+ type: TokenType.NORMAL_TOKEN
25
49
  },
26
50
  LINK: {
27
- type: "volatile"
51
+ type: TokenType.NORMAL_TOKEN
28
52
  },
29
53
  SNX: {
30
- type: "volatile"
54
+ type: TokenType.NORMAL_TOKEN
31
55
  },
32
56
  SUSHI: {
33
- type: "volatile"
57
+ type: TokenType.NORMAL_TOKEN
34
58
  },
35
59
  UNI: {
36
- type: "volatile"
60
+ type: TokenType.NORMAL_TOKEN
37
61
  },
38
62
  USDC: {
39
- type: "stable"
63
+ type: TokenType.CONNECTOR
40
64
  },
41
65
  USDT: {
42
- type: "stable"
66
+ type: TokenType.NORMAL_TOKEN
43
67
  },
44
68
  WBTC: {
45
- type: "core"
69
+ type: TokenType.CONNECTOR
46
70
  },
47
71
  WETH: {
48
- type: "core"
72
+ type: TokenType.CONNECTOR
49
73
  },
50
74
  YFI: {
51
- type: "volatile"
75
+ type: TokenType.NORMAL_TOKEN
52
76
  },
53
77
  /// UPDATE
54
78
  STETH: {
55
- type: "volatile"
79
+ type: TokenType.NORMAL_TOKEN
56
80
  },
57
81
  FTM: {
58
- type: "volatile"
82
+ type: TokenType.NORMAL_TOKEN
59
83
  },
60
84
  CVX: {
61
- type: "volatile"
85
+ type: TokenType.NORMAL_TOKEN
62
86
  },
63
87
  FRAX: {
64
- type: "stable"
88
+ type: TokenType.NORMAL_TOKEN
65
89
  },
66
90
  FXS: {
67
- type: "volatile"
91
+ type: TokenType.NORMAL_TOKEN
68
92
  },
69
93
  LDO: {
70
- type: "volatile"
94
+ type: TokenType.NORMAL_TOKEN
71
95
  },
72
96
  SPELL: {
73
- type: "volatile"
97
+ type: TokenType.NORMAL_TOKEN
74
98
  },
75
99
  LUSD: {
76
- type: "stable"
100
+ type: TokenType.NORMAL_TOKEN
77
101
  },
78
102
  sUSD: {
79
- type: "stable"
103
+ type: TokenType.NORMAL_TOKEN
80
104
  },
81
105
  GUSD: {
82
- type: "stable"
106
+ type: TokenType.NORMAL_TOKEN
83
107
  },
84
108
  LUNA: {
85
- type: "volatile"
109
+ type: TokenType.NORMAL_TOKEN
86
110
  },
87
111
  LQTY: {
88
- type: "volatile"
112
+ type: TokenType.NORMAL_TOKEN
89
113
  },
90
114
  // YEARN TOKENS
91
115
  yvDAI: {
92
- type: "lp"
116
+ type: TokenType.YEARN_VAULT
93
117
  },
94
118
  yvUSDC: {
95
- type: "lp"
119
+ type: TokenType.YEARN_VAULT
96
120
  },
97
121
  yvWETH: {
98
- type: "lp"
122
+ type: TokenType.YEARN_VAULT
99
123
  },
100
124
  yvWBTC: {
101
- type: "lp"
125
+ type: TokenType.YEARN_VAULT
102
126
  },
103
127
  // CURVE LP TOKENS
104
128
  "3Crv": {
105
- type: "lp"
129
+ type: TokenType.CURVE_LP
106
130
  },
107
131
  steCRV: {
108
- type: "lp"
132
+ type: TokenType.CURVE_LP
109
133
  },
134
+ crvPlain3andSUSD: {
135
+ type: TokenType.CURVE_LP
136
+ },
137
+ // META CURVE LP TOKENS
110
138
  FRAX3CRV: {
111
- type: "lp"
139
+ type: TokenType.META_CURVE_LP
112
140
  },
113
141
  LUSD3CRV: {
114
- type: "lp"
115
- },
116
- crvPlain3andSUSD: {
117
- type: "lp"
142
+ type: TokenType.META_CURVE_LP
118
143
  },
119
144
  gusd3CRV: {
120
- type: "lp"
145
+ type: TokenType.META_CURVE_LP
121
146
  },
122
147
  // CONVEX LP TOKENS
123
148
  cvx3Crv: {
124
- type: "lp"
149
+ type: TokenType.CONVEX_LP_TOKEN
125
150
  },
126
151
  cvxsteCRV: {
127
- type: "lp"
152
+ type: TokenType.CONVEX_LP_TOKEN
128
153
  },
129
154
  cvxFRAX3CRV: {
130
- type: "lp"
155
+ type: TokenType.CONVEX_LP_TOKEN
131
156
  },
132
157
  cvxcrvPlain3andSUSD: {
133
- type: "lp"
158
+ type: TokenType.CONVEX_LP_TOKEN
134
159
  },
135
160
  cvxgusd3CRV: {
136
- type: "lp"
161
+ type: TokenType.CONVEX_LP_TOKEN
137
162
  },
138
163
  // YEARN- CURVE TOKENS
139
164
  yvCurve_stETH: {
140
- type: "lp"
165
+ type: TokenType.YEARN_VAULT_OF_CURVE_LP
141
166
  },
142
167
  yvCurve_FRAX: {
143
- type: "lp"
144
- },
145
- yvCurve_d3pool: {
146
- type: "lp"
168
+ type: TokenType.YEARN_VAULT_OF_META_CURVE_LP
147
169
  }
148
170
  };
149
171
  exports.tokenDataByNetwork = {
150
172
  //
151
173
  // MAINNET NETWORK
152
- // 1INCH ETH AAVE BADGER BAL BTC COMP CREAM CRV
153
- // DAI DPI GRT LINK SNX SRM SUSHI UNI USDC
154
- // USDT YFI ZRX
155
174
  Mainnet: {
156
175
  "1INCH": "0x111111111117dc0aa78b770fa6a738034120c302",
157
176
  AAVE: "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9",
@@ -200,10 +219,11 @@ exports.tokenDataByNetwork = {
200
219
  cvxFRAX3CRV: "0xbE0F6478E0E4894CFb14f32855603A083A57c7dA",
201
220
  cvxcrvPlain3andSUSD: "0x11D200ef1409cecA8D6d23e6496550f707772F11",
202
221
  cvxgusd3CRV: "0x15c2471ef46Fa721990730cfa526BcFb45574576",
222
+ // CONVEX PHANTOM TOKEN ADDRESSES
223
+ // <Provide them here>
203
224
  // YEARN- CURVE TOKENS
204
225
  yvCurve_stETH: "0xdCD90C7f6324cfa40d7169ef80b12031770B4325",
205
- yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139",
206
- yvCurve_d3pool: "0x16825039dfe2a5b01F3E1E6a2BBF9a576c6F95c4"
226
+ yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139"
207
227
  },
208
228
  //
209
229
  // KOVAN NETWORK
@@ -259,7 +279,6 @@ exports.tokenDataByNetwork = {
259
279
  cvxgusd3CRV: "",
260
280
  // YEARN- CURVE TOKENS
261
281
  yvCurve_stETH: "0xdDc2FA328321573Bc2647C0135D75012c522CDAC",
262
- yvCurve_FRAX: "",
263
- yvCurve_d3pool: ""
282
+ yvCurve_FRAX: ""
264
283
  }
265
284
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "0.0.35",
3
+ "version": "0.0.38",
4
4
  "description": "Gearbox SDK",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -1,6 +1,6 @@
1
1
  import { BytesLike } from "ethers";
2
2
 
3
3
  export interface MultiCall {
4
- targetContract: string,
5
- callData: BytesLike
6
- }
4
+ targetContract: string;
5
+ callData: BytesLike;
6
+ }
@@ -23,7 +23,8 @@ export type PriceFeedData =
23
23
  | {
24
24
  type: OracleType.YEARN_TOKEN_ORACLE;
25
25
  token: SupportedTokens;
26
- priceFeedKovan?: string;
26
+ deployed?: string;
27
+ deployedKovan?: string;
27
28
  }
28
29
  | {
29
30
  type: OracleType.CURVE_LP_ORACLE;
@@ -6,12 +6,21 @@ import { SupportedTokens } from "./token";
6
6
  export interface Path {
7
7
  calls: Array<MultiCall>;
8
8
  balances: Record<SupportedTokens, BigNumber>;
9
- usedTokens: Array<SupportedTokens>;
9
+ // usedTokens: Array<SupportedTokens>;
10
10
  gasUsed: number;
11
11
  pool: SupportedTokens;
12
12
  creditManager: CreditManagerData;
13
13
 
14
- getBestPath(p: Path): Promise<Path>;
14
+ getBestPath(): Promise<Path>;
15
+ // Get balances and keep non-zero only
16
+ // Find token with highest priority
17
+ // Get token type of this token
18
+ // switch (type) {
19
+ // case TokenType.YearnValut:
20
+ // const assetPathClass = new YearnVaultPathAsset(tokenData);
21
+ // return assetPathClass.getBestPath(this);
22
+ // ...
23
+ //}
15
24
  }
16
25
 
17
26
  export interface PathAsset {
@@ -21,6 +30,12 @@ export interface PathAsset {
21
30
  export class ConnectorPathAsset implements PathAsset {
22
31
  getBestPath(p: Path): Promise<Path> {
23
32
  console.log(p);
33
+ // How to unwrap
34
+ // set balance of current token to 0
35
+ // add balnace what we get
36
+ // add call
37
+ // create new Paths
38
+ // return maxValuable(new Paths.getBestPath())
24
39
  throw new Error("Method not implemented.");
25
40
  }
26
41
  }
@@ -278,6 +278,9 @@ export const priceFeedsByNetwork: Record<SupportedTokens, TokenPriceFeedData> =
278
278
  type: OracleType.CHAINLINK_ORACLE,
279
279
  address: "0x4e844125952d32acdf339be976c98e22f6f318db",
280
280
  kovan: "0x6204148EF888786A2988E7b09c8e0A67e32cb387"
281
+ },
282
+ priceFeedUSD: {
283
+ type: OracleType.ZERO_ORACLE
281
284
  }
282
285
 
283
286
  // ADD ETH-> DAI Oracle!
@@ -305,7 +308,8 @@ export const priceFeedsByNetwork: Record<SupportedTokens, TokenPriceFeedData> =
305
308
  yvDAI: {
306
309
  priceFeedETH: {
307
310
  type: OracleType.YEARN_TOKEN_ORACLE,
308
- token: "DAI"
311
+ token: "DAI",
312
+ deployedKovan: ""
309
313
  },
310
314
  priceFeedUSD: {
311
315
  type: OracleType.YEARN_TOKEN_ORACLE,
@@ -315,7 +319,8 @@ export const priceFeedsByNetwork: Record<SupportedTokens, TokenPriceFeedData> =
315
319
  yvUSDC: {
316
320
  priceFeedETH: {
317
321
  type: OracleType.YEARN_TOKEN_ORACLE,
318
- token: "USDC"
322
+ token: "USDC",
323
+ deployedKovan: ""
319
324
  },
320
325
  priceFeedUSD: {
321
326
  type: OracleType.YEARN_TOKEN_ORACLE,
@@ -392,12 +397,6 @@ export const priceFeedsByNetwork: Record<SupportedTokens, TokenPriceFeedData> =
392
397
  curveSymbol: "FRAX3CRV"
393
398
  }
394
399
  },
395
- yvCurve_d3pool: {
396
- priceFeedUSD: {
397
- type: OracleType.YEARN_CURVE_LP_ORACLE,
398
- curveSymbol: "crvPlain3andSUSD"
399
- }
400
- },
401
400
 
402
401
  // CVX tokens
403
402
  cvx3Crv: {
package/src/core/token.ts CHANGED
@@ -1,207 +1,307 @@
1
1
  import { NetworkType } from "./constants";
2
2
 
3
- export const supportedTokens = {
3
+ enum TokenType {
4
+ CONNECTOR,
5
+ NORMAL_TOKEN,
6
+ CURVE_LP,
7
+ META_CURVE_LP,
8
+ YEARN_VAULT,
9
+ YEARN_VAULT_OF_CURVE_LP,
10
+ YEARN_VAULT_OF_META_CURVE_LP,
11
+ CONVEX_LP_TOKEN,
12
+ CONVEX_STAKED_PHANTOM_TOKEN,
13
+ }
14
+
15
+ export const priority : Record<TokenType, number> = {
16
+ [TokenType.CONNECTOR]: 1,
17
+ [TokenType.NORMAL_TOKEN]: 2,
18
+ [TokenType.CURVE_LP]: 3,
19
+ [TokenType.YEARN_VAULT]: 3,
20
+ [TokenType.META_CURVE_LP]: 4,
21
+ [TokenType.YEARN_VAULT_OF_CURVE_LP]: 4,
22
+ [TokenType.CONVEX_LP_TOKEN]: 5,
23
+ [TokenType.YEARN_VAULT_OF_META_CURVE_LP]: 5,
24
+ [TokenType.CONVEX_STAKED_PHANTOM_TOKEN]: 5
25
+ };
26
+
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
+ }
40
+ | {
41
+ type: TokenType.META_CURVE_LP;
42
+ }
43
+ | {
44
+ type: TokenType.YEARN_VAULT_OF_CURVE_LP;
45
+ }
46
+ | {
47
+ type: TokenType.CONVEX_LP_TOKEN;
48
+ }
49
+ | {
50
+ type: TokenType.YEARN_VAULT_OF_META_CURVE_LP;
51
+ };
52
+
53
+ export type SupportedTokens =
54
+ | "1INCH"
55
+ | "AAVE"
56
+ | "COMP"
57
+ | "CRV"
58
+ | "DAI"
59
+ | "DPI"
60
+ | "FEI"
61
+ | "LINK"
62
+ | "SNX"
63
+ | "SUSHI"
64
+ | "UNI"
65
+ | "USDC"
66
+ | "USDT"
67
+ | "WBTC"
68
+ | "WETH"
69
+ | "YFI"
70
+
71
+ // NEW TOKENS
72
+ | "STETH"
73
+ | "FTM"
74
+ | "CVX"
75
+ | "FRAX"
76
+ | "FXS"
77
+ | "LDO"
78
+ | "SPELL"
79
+ | "LUSD"
80
+ | "sUSD"
81
+ | "GUSD"
82
+ | "LUNA"
83
+ | "LQTY"
84
+
85
+ // YEARN
86
+ | "yvDAI"
87
+ | "yvUSDC"
88
+ | "yvWETH"
89
+ | "yvWBTC"
90
+
91
+ // CURVE LP TOKENS
92
+ | "3Crv"
93
+ | "steCRV"
94
+ | "FRAX3CRV"
95
+ | "LUSD3CRV"
96
+ | "crvPlain3andSUSD"
97
+ | "gusd3CRV"
98
+
99
+ // CONVEX LP TOKENS
100
+ | "cvx3Crv"
101
+ | "cvxsteCRV"
102
+ | "cvxFRAX3CRV"
103
+ | "cvxcrvPlain3andSUSD"
104
+ | "cvxgusd3CRV"
105
+
106
+ // YEARN- CURVE TOKENS
107
+ | "yvCurve_stETH"
108
+ | "yvCurve_FRAX";
109
+
110
+ export const supportedTokens: Record<SupportedTokens, TokenDataI> = {
4
111
  "1INCH": {
5
- type: "volatile"
112
+ type: TokenType.NORMAL_TOKEN
6
113
  },
7
114
 
8
115
  AAVE: {
9
- type: "volatile"
116
+ type: TokenType.NORMAL_TOKEN
10
117
  },
11
118
 
12
119
  COMP: {
13
- type: "volatile"
120
+ type: TokenType.NORMAL_TOKEN
14
121
  },
15
122
 
16
123
  CRV: {
17
- type: "volatile"
124
+ type: TokenType.NORMAL_TOKEN
18
125
  },
19
126
 
20
127
  DAI: {
21
- type: "stable"
128
+ type: TokenType.CONNECTOR
22
129
  },
23
130
 
24
131
  DPI: {
25
- type: "volatile"
132
+ type: TokenType.NORMAL_TOKEN
26
133
  },
27
134
 
28
135
  FEI: {
29
- type: "stable"
136
+ type: TokenType.NORMAL_TOKEN
30
137
  },
31
138
 
32
139
  LINK: {
33
- type: "volatile"
140
+ type: TokenType.NORMAL_TOKEN
34
141
  },
35
142
 
36
143
  SNX: {
37
- type: "volatile"
144
+ type: TokenType.NORMAL_TOKEN
38
145
  },
39
146
 
40
147
  SUSHI: {
41
- type: "volatile"
148
+ type: TokenType.NORMAL_TOKEN
42
149
  },
43
150
 
44
151
  UNI: {
45
- type: "volatile"
152
+ type: TokenType.NORMAL_TOKEN
46
153
  },
47
154
 
48
155
  USDC: {
49
- type: "stable"
156
+ type: TokenType.CONNECTOR
50
157
  },
51
158
 
52
159
  USDT: {
53
- type: "stable"
160
+ type: TokenType.NORMAL_TOKEN
54
161
  },
55
162
 
56
163
  WBTC: {
57
- type: "core"
164
+ type: TokenType.CONNECTOR
58
165
  },
59
166
 
60
167
  WETH: {
61
- type: "core"
168
+ type: TokenType.CONNECTOR
62
169
  },
63
170
 
64
171
  YFI: {
65
- type: "volatile"
172
+ type: TokenType.NORMAL_TOKEN
66
173
  },
67
174
 
68
175
  /// UPDATE
69
176
  STETH: {
70
- type: "volatile"
177
+ type: TokenType.NORMAL_TOKEN
71
178
  },
72
179
 
73
180
  FTM: {
74
- type: "volatile"
181
+ type: TokenType.NORMAL_TOKEN
75
182
  },
76
183
 
77
184
  CVX: {
78
- type: "volatile"
185
+ type: TokenType.NORMAL_TOKEN
79
186
  },
80
187
 
81
188
  FRAX: {
82
- type: "stable"
189
+ type: TokenType.NORMAL_TOKEN
83
190
  },
84
191
 
85
192
  FXS: {
86
- type: "volatile"
193
+ type: TokenType.NORMAL_TOKEN
87
194
  },
88
195
 
89
196
  LDO: {
90
- type: "volatile"
197
+ type: TokenType.NORMAL_TOKEN
91
198
  },
92
199
 
93
200
  SPELL: {
94
- type: "volatile"
201
+ type: TokenType.NORMAL_TOKEN
95
202
  },
96
203
 
97
204
  LUSD: {
98
- type: "stable"
205
+ type: TokenType.NORMAL_TOKEN
99
206
  },
100
207
 
101
208
  sUSD: {
102
- type: "stable"
209
+ type: TokenType.NORMAL_TOKEN
103
210
  },
104
211
 
105
212
  GUSD: {
106
- type: "stable"
213
+ type: TokenType.NORMAL_TOKEN
107
214
  },
108
215
 
109
216
  LUNA: {
110
- type: "volatile"
217
+ type: TokenType.NORMAL_TOKEN
111
218
  },
112
219
  LQTY: {
113
- type: "volatile"
220
+ type: TokenType.NORMAL_TOKEN
114
221
  },
115
222
 
116
223
  // YEARN TOKENS
117
224
  yvDAI: {
118
- type: "lp"
225
+ type: TokenType.YEARN_VAULT
119
226
  },
120
227
 
121
228
  yvUSDC: {
122
- type: "lp"
229
+ type: TokenType.YEARN_VAULT
123
230
  },
124
231
 
125
232
  yvWETH: {
126
- type: "lp"
233
+ type: TokenType.YEARN_VAULT
127
234
  },
128
235
 
129
236
  yvWBTC: {
130
- type: "lp"
237
+ type: TokenType.YEARN_VAULT
131
238
  },
132
239
 
133
240
  // CURVE LP TOKENS
134
241
 
135
242
  "3Crv": {
136
- type: "lp"
243
+ type: TokenType.CURVE_LP
137
244
  },
138
245
 
139
246
  steCRV: {
140
- type: "lp"
247
+ type: TokenType.CURVE_LP
141
248
  },
142
249
 
143
- FRAX3CRV: {
144
- type: "lp"
250
+ crvPlain3andSUSD: {
251
+ type: TokenType.CURVE_LP
145
252
  },
146
253
 
147
- LUSD3CRV: {
148
- type: "lp"
254
+ // META CURVE LP TOKENS
255
+
256
+ FRAX3CRV: {
257
+ type: TokenType.META_CURVE_LP
149
258
  },
150
259
 
151
- crvPlain3andSUSD: {
152
- type: "lp"
260
+ LUSD3CRV: {
261
+ type: TokenType.META_CURVE_LP
153
262
  },
154
263
 
155
264
  gusd3CRV: {
156
- type: "lp"
265
+ type: TokenType.META_CURVE_LP
157
266
  },
158
267
 
159
268
  // CONVEX LP TOKENS
160
269
 
161
270
  cvx3Crv: {
162
- type: "lp"
271
+ type: TokenType.CONVEX_LP_TOKEN
163
272
  },
164
273
 
165
274
  cvxsteCRV: {
166
- type: "lp"
275
+ type: TokenType.CONVEX_LP_TOKEN
167
276
  },
168
277
 
169
278
  cvxFRAX3CRV: {
170
- type: "lp"
279
+ type: TokenType.CONVEX_LP_TOKEN
171
280
  },
172
281
 
173
282
  cvxcrvPlain3andSUSD: {
174
- type: "lp"
283
+ type: TokenType.CONVEX_LP_TOKEN
175
284
  },
176
285
 
177
286
  cvxgusd3CRV: {
178
- type: "lp"
287
+ type: TokenType.CONVEX_LP_TOKEN
179
288
  },
180
289
 
181
290
  // YEARN- CURVE TOKENS
182
291
  yvCurve_stETH: {
183
- type: "lp"
292
+ type: TokenType.YEARN_VAULT_OF_CURVE_LP
184
293
  },
185
294
  yvCurve_FRAX: {
186
- type: "lp"
187
- },
188
-
189
- yvCurve_d3pool: {
190
- type: "lp"
295
+ type: TokenType.YEARN_VAULT_OF_META_CURVE_LP
191
296
  }
192
297
  };
193
298
 
194
- export type SupportedTokens = keyof typeof supportedTokens;
195
-
196
299
  export const tokenDataByNetwork: Record<
197
300
  NetworkType,
198
301
  Record<SupportedTokens, string>
199
302
  > = {
200
303
  //
201
304
  // MAINNET NETWORK
202
- // 1INCH ETH AAVE BADGER BAL BTC COMP CREAM CRV
203
- // DAI DPI GRT LINK SNX SRM SUSHI UNI USDC
204
- // USDT YFI ZRX
205
305
  Mainnet: {
206
306
  "1INCH": "0x111111111117dc0aa78b770fa6a738034120c302",
207
307
  AAVE: "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9",
@@ -255,10 +355,12 @@ export const tokenDataByNetwork: Record<
255
355
  cvxcrvPlain3andSUSD: "0x11D200ef1409cecA8D6d23e6496550f707772F11",
256
356
  cvxgusd3CRV: "0x15c2471ef46Fa721990730cfa526BcFb45574576",
257
357
 
358
+ // CONVEX PHANTOM TOKEN ADDRESSES
359
+ // <Provide them here>
360
+
258
361
  // YEARN- CURVE TOKENS
259
362
  yvCurve_stETH: "0xdCD90C7f6324cfa40d7169ef80b12031770B4325",
260
- yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139",
261
- yvCurve_d3pool: "0x16825039dfe2a5b01F3E1E6a2BBF9a576c6F95c4"
363
+ yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139"
262
364
  },
263
365
 
264
366
  //
@@ -296,7 +398,7 @@ export const tokenDataByNetwork: Record<
296
398
  GUSD: "0x3cee6494bf400F8C24871dBD331B9436a9CfaBbb",
297
399
  LUNA: "0x9dc1D71fAeE18bF77C6166aBC8b218D3336919F1",
298
400
  LQTY: "0xC948BB323d753B37eA8195DeAFE904138Df11fbC",
299
-
401
+
300
402
  // YEARN TOKENS
301
403
  yvDAI: "0xe5267045739E4d6FcA15BB4a79190012F146893b",
302
404
  yvUSDC: "0x980E4d8A22105c2a2fA2252B7685F32fc7564512",
@@ -320,7 +422,6 @@ export const tokenDataByNetwork: Record<
320
422
 
321
423
  // YEARN- CURVE TOKENS
322
424
  yvCurve_stETH: "0xdDc2FA328321573Bc2647C0135D75012c522CDAC",
323
- yvCurve_FRAX: "",
324
- yvCurve_d3pool: ""
425
+ yvCurve_FRAX: ""
325
426
  }
326
427
  };