@gearbox-protocol/sdk 0.0.33 → 0.0.36
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/multicall.d.ts +5 -0
- package/lib/core/multicall.js +2 -0
- package/lib/core/pathfinder.d.ts +18 -0
- package/lib/core/pathfinder.js +19 -0
- package/lib/core/priceFeeds.js +3 -0
- package/lib/core/token.d.ts +37 -3
- package/lib/core/token.js +70 -101
- package/package.json +1 -1
- package/src/core/multicall.ts +6 -0
- package/src/core/pathfinder.ts +41 -0
- package/src/core/priceFeeds.ts +3 -0
- package/src/core/token.ts +92 -103
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BigNumber } from "ethers";
|
|
2
|
+
import { CreditManagerData } from "./creditManager";
|
|
3
|
+
import { MultiCall } from "./multicall";
|
|
4
|
+
import { SupportedTokens } from "./token";
|
|
5
|
+
export interface Path {
|
|
6
|
+
calls: Array<MultiCall>;
|
|
7
|
+
balances: Record<SupportedTokens, BigNumber>;
|
|
8
|
+
gasUsed: number;
|
|
9
|
+
pool: SupportedTokens;
|
|
10
|
+
creditManager: CreditManagerData;
|
|
11
|
+
getBestPath(): Promise<Path>;
|
|
12
|
+
}
|
|
13
|
+
export interface PathAsset {
|
|
14
|
+
getBestPath(p: Path): Promise<Path>;
|
|
15
|
+
}
|
|
16
|
+
export declare class ConnectorPathAsset implements PathAsset {
|
|
17
|
+
getBestPath(p: Path): Promise<Path>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConnectorPathAsset = void 0;
|
|
4
|
+
var ConnectorPathAsset = /** @class */ (function () {
|
|
5
|
+
function ConnectorPathAsset() {
|
|
6
|
+
}
|
|
7
|
+
ConnectorPathAsset.prototype.getBestPath = function (p) {
|
|
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())
|
|
15
|
+
throw new Error("Method not implemented.");
|
|
16
|
+
};
|
|
17
|
+
return ConnectorPathAsset;
|
|
18
|
+
}());
|
|
19
|
+
exports.ConnectorPathAsset = ConnectorPathAsset;
|
package/lib/core/priceFeeds.js
CHANGED
|
@@ -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
|
},
|
package/lib/core/token.d.ts
CHANGED
|
@@ -1,8 +1,42 @@
|
|
|
1
1
|
import { NetworkType } from "./constants";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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_PHANTOM = 7
|
|
5
11
|
}
|
|
12
|
+
export declare const priority: {
|
|
13
|
+
0: number;
|
|
14
|
+
1: number;
|
|
15
|
+
2: number;
|
|
16
|
+
4: number;
|
|
17
|
+
3: number;
|
|
18
|
+
5: number;
|
|
19
|
+
7: number;
|
|
20
|
+
6: number;
|
|
21
|
+
};
|
|
22
|
+
export declare type TokenDataI = {
|
|
23
|
+
type: TokenType.CONNECTOR;
|
|
24
|
+
} | {
|
|
25
|
+
type: TokenType.NORMAL_TOKEN;
|
|
26
|
+
} | {
|
|
27
|
+
type: TokenType.CURVE_LP;
|
|
28
|
+
} | {
|
|
29
|
+
type: TokenType.YEARN_VAULT;
|
|
30
|
+
} | {
|
|
31
|
+
type: TokenType.META_CURVE_LP;
|
|
32
|
+
} | {
|
|
33
|
+
type: TokenType.YEARN_VAULT_OF_CURVE_LP;
|
|
34
|
+
} | {
|
|
35
|
+
type: TokenType.CONVEX_PHANTOM;
|
|
36
|
+
} | {
|
|
37
|
+
type: TokenType.YEARN_VAULT_OF_META_CURVE_LP;
|
|
38
|
+
};
|
|
6
39
|
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";
|
|
7
40
|
export declare const supportedTokens: Record<SupportedTokens, TokenDataI>;
|
|
8
41
|
export declare const tokenDataByNetwork: Record<NetworkType, Record<SupportedTokens, string>>;
|
|
42
|
+
export {};
|
package/lib/core/token.js
CHANGED
|
@@ -1,200 +1,169 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tokenDataByNetwork = exports.supportedTokens = void 0;
|
|
4
|
-
var
|
|
5
|
-
(function (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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_PHANTOM"] = 7] = "CONVEX_PHANTOM";
|
|
15
|
+
})(TokenType || (TokenType = {}));
|
|
16
|
+
exports.priority = (_a = {},
|
|
17
|
+
_a[TokenType.CONNECTOR] = 1,
|
|
18
|
+
_a[TokenType.NORMAL_TOKEN] = 2,
|
|
19
|
+
_a[TokenType.CURVE_LP] = 3,
|
|
20
|
+
_a[TokenType.YEARN_VAULT] = 3,
|
|
21
|
+
_a[TokenType.META_CURVE_LP] = 4,
|
|
22
|
+
_a[TokenType.YEARN_VAULT_OF_CURVE_LP] = 4,
|
|
23
|
+
_a[TokenType.CONVEX_PHANTOM] = 5,
|
|
24
|
+
_a[TokenType.YEARN_VAULT_OF_META_CURVE_LP] = 5,
|
|
25
|
+
_a);
|
|
12
26
|
exports.supportedTokens = {
|
|
13
27
|
"1INCH": {
|
|
14
|
-
type:
|
|
15
|
-
priority: Priority.NORMAL_TOKEN
|
|
28
|
+
type: TokenType.NORMAL_TOKEN
|
|
16
29
|
},
|
|
17
30
|
AAVE: {
|
|
18
|
-
type:
|
|
19
|
-
priority: Priority.NORMAL_TOKEN
|
|
31
|
+
type: TokenType.NORMAL_TOKEN
|
|
20
32
|
},
|
|
21
33
|
COMP: {
|
|
22
|
-
type:
|
|
23
|
-
priority: Priority.NORMAL_TOKEN
|
|
34
|
+
type: TokenType.NORMAL_TOKEN
|
|
24
35
|
},
|
|
25
36
|
CRV: {
|
|
26
|
-
type:
|
|
27
|
-
priority: Priority.NORMAL_TOKEN
|
|
37
|
+
type: TokenType.NORMAL_TOKEN
|
|
28
38
|
},
|
|
29
39
|
DAI: {
|
|
30
|
-
type:
|
|
31
|
-
priority: Priority.CONNECTOR
|
|
40
|
+
type: TokenType.CONNECTOR
|
|
32
41
|
},
|
|
33
42
|
DPI: {
|
|
34
|
-
type:
|
|
35
|
-
priority: Priority.NORMAL_TOKEN
|
|
43
|
+
type: TokenType.NORMAL_TOKEN
|
|
36
44
|
},
|
|
37
45
|
FEI: {
|
|
38
|
-
type:
|
|
39
|
-
priority: Priority.NORMAL_TOKEN
|
|
46
|
+
type: TokenType.NORMAL_TOKEN
|
|
40
47
|
},
|
|
41
48
|
LINK: {
|
|
42
|
-
type:
|
|
43
|
-
priority: Priority.NORMAL_TOKEN
|
|
49
|
+
type: TokenType.NORMAL_TOKEN
|
|
44
50
|
},
|
|
45
51
|
SNX: {
|
|
46
|
-
type:
|
|
47
|
-
priority: Priority.NORMAL_TOKEN
|
|
52
|
+
type: TokenType.NORMAL_TOKEN
|
|
48
53
|
},
|
|
49
54
|
SUSHI: {
|
|
50
|
-
type:
|
|
51
|
-
priority: Priority.NORMAL_TOKEN
|
|
55
|
+
type: TokenType.NORMAL_TOKEN
|
|
52
56
|
},
|
|
53
57
|
UNI: {
|
|
54
|
-
type:
|
|
55
|
-
priority: Priority.NORMAL_TOKEN
|
|
58
|
+
type: TokenType.NORMAL_TOKEN
|
|
56
59
|
},
|
|
57
60
|
USDC: {
|
|
58
|
-
type:
|
|
59
|
-
priority: Priority.CONNECTOR
|
|
61
|
+
type: TokenType.CONNECTOR
|
|
60
62
|
},
|
|
61
63
|
USDT: {
|
|
62
|
-
type:
|
|
63
|
-
priority: Priority.NORMAL_TOKEN
|
|
64
|
+
type: TokenType.NORMAL_TOKEN
|
|
64
65
|
},
|
|
65
66
|
WBTC: {
|
|
66
|
-
type:
|
|
67
|
-
priority: Priority.CONNECTOR
|
|
67
|
+
type: TokenType.CONNECTOR
|
|
68
68
|
},
|
|
69
69
|
WETH: {
|
|
70
|
-
type:
|
|
71
|
-
priority: Priority.CONNECTOR
|
|
70
|
+
type: TokenType.CONNECTOR
|
|
72
71
|
},
|
|
73
72
|
YFI: {
|
|
74
|
-
type:
|
|
75
|
-
priority: Priority.NORMAL_TOKEN
|
|
73
|
+
type: TokenType.NORMAL_TOKEN
|
|
76
74
|
},
|
|
77
75
|
/// UPDATE
|
|
78
76
|
STETH: {
|
|
79
|
-
type:
|
|
80
|
-
priority: Priority.NORMAL_TOKEN
|
|
77
|
+
type: TokenType.NORMAL_TOKEN
|
|
81
78
|
},
|
|
82
79
|
FTM: {
|
|
83
|
-
type:
|
|
84
|
-
priority: Priority.NORMAL_TOKEN
|
|
80
|
+
type: TokenType.NORMAL_TOKEN
|
|
85
81
|
},
|
|
86
82
|
CVX: {
|
|
87
|
-
type:
|
|
88
|
-
priority: Priority.NORMAL_TOKEN
|
|
83
|
+
type: TokenType.NORMAL_TOKEN
|
|
89
84
|
},
|
|
90
85
|
FRAX: {
|
|
91
|
-
type:
|
|
92
|
-
priority: Priority.NORMAL_TOKEN
|
|
86
|
+
type: TokenType.NORMAL_TOKEN
|
|
93
87
|
},
|
|
94
88
|
FXS: {
|
|
95
|
-
type:
|
|
96
|
-
priority: Priority.NORMAL_TOKEN
|
|
89
|
+
type: TokenType.NORMAL_TOKEN
|
|
97
90
|
},
|
|
98
91
|
LDO: {
|
|
99
|
-
type:
|
|
100
|
-
priority: Priority.NORMAL_TOKEN
|
|
92
|
+
type: TokenType.NORMAL_TOKEN
|
|
101
93
|
},
|
|
102
94
|
SPELL: {
|
|
103
|
-
type:
|
|
104
|
-
priority: Priority.NORMAL_TOKEN
|
|
95
|
+
type: TokenType.NORMAL_TOKEN
|
|
105
96
|
},
|
|
106
97
|
LUSD: {
|
|
107
|
-
type:
|
|
108
|
-
priority: Priority.NORMAL_TOKEN
|
|
98
|
+
type: TokenType.NORMAL_TOKEN
|
|
109
99
|
},
|
|
110
100
|
sUSD: {
|
|
111
|
-
type:
|
|
112
|
-
priority: Priority.NORMAL_TOKEN
|
|
101
|
+
type: TokenType.NORMAL_TOKEN
|
|
113
102
|
},
|
|
114
103
|
GUSD: {
|
|
115
|
-
type:
|
|
116
|
-
priority: Priority.NORMAL_TOKEN
|
|
104
|
+
type: TokenType.NORMAL_TOKEN
|
|
117
105
|
},
|
|
118
106
|
LUNA: {
|
|
119
|
-
type:
|
|
120
|
-
priority: Priority.NORMAL_TOKEN
|
|
107
|
+
type: TokenType.NORMAL_TOKEN
|
|
121
108
|
},
|
|
122
109
|
LQTY: {
|
|
123
|
-
type:
|
|
124
|
-
priority: Priority.NORMAL_TOKEN
|
|
110
|
+
type: TokenType.NORMAL_TOKEN
|
|
125
111
|
},
|
|
126
112
|
// YEARN TOKENS
|
|
127
113
|
yvDAI: {
|
|
128
|
-
type:
|
|
129
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
114
|
+
type: TokenType.YEARN_VAULT
|
|
130
115
|
},
|
|
131
116
|
yvUSDC: {
|
|
132
|
-
type:
|
|
133
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
117
|
+
type: TokenType.YEARN_VAULT
|
|
134
118
|
},
|
|
135
119
|
yvWETH: {
|
|
136
|
-
type:
|
|
137
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
120
|
+
type: TokenType.YEARN_VAULT
|
|
138
121
|
},
|
|
139
122
|
yvWBTC: {
|
|
140
|
-
type:
|
|
141
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
123
|
+
type: TokenType.YEARN_VAULT
|
|
142
124
|
},
|
|
143
125
|
// CURVE LP TOKENS
|
|
144
126
|
"3Crv": {
|
|
145
|
-
type:
|
|
146
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
127
|
+
type: TokenType.CURVE_LP
|
|
147
128
|
},
|
|
148
129
|
steCRV: {
|
|
149
|
-
type:
|
|
150
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
130
|
+
type: TokenType.CURVE_LP
|
|
151
131
|
},
|
|
152
132
|
crvPlain3andSUSD: {
|
|
153
|
-
type:
|
|
154
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
133
|
+
type: TokenType.CURVE_LP
|
|
155
134
|
},
|
|
156
135
|
// META CURVE LP TOKENS
|
|
157
136
|
FRAX3CRV: {
|
|
158
|
-
type:
|
|
159
|
-
priority: Priority.META_CURVE_LP_OR_YEARN_ON_CURVE
|
|
137
|
+
type: TokenType.META_CURVE_LP
|
|
160
138
|
},
|
|
161
139
|
LUSD3CRV: {
|
|
162
|
-
type:
|
|
163
|
-
priority: Priority.META_CURVE_LP_OR_YEARN_ON_CURVE
|
|
140
|
+
type: TokenType.META_CURVE_LP
|
|
164
141
|
},
|
|
165
142
|
gusd3CRV: {
|
|
166
|
-
type:
|
|
167
|
-
priority: Priority.META_CURVE_LP_OR_YEARN_ON_CURVE
|
|
143
|
+
type: TokenType.META_CURVE_LP
|
|
168
144
|
},
|
|
169
145
|
// CONVEX LP TOKENS
|
|
170
146
|
cvx3Crv: {
|
|
171
|
-
type:
|
|
172
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
147
|
+
type: TokenType.CONVEX_PHANTOM
|
|
173
148
|
},
|
|
174
149
|
cvxsteCRV: {
|
|
175
|
-
type:
|
|
176
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
150
|
+
type: TokenType.CONVEX_PHANTOM
|
|
177
151
|
},
|
|
178
152
|
cvxFRAX3CRV: {
|
|
179
|
-
type:
|
|
180
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
153
|
+
type: TokenType.CONVEX_PHANTOM
|
|
181
154
|
},
|
|
182
155
|
cvxcrvPlain3andSUSD: {
|
|
183
|
-
type:
|
|
184
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
156
|
+
type: TokenType.CONVEX_PHANTOM
|
|
185
157
|
},
|
|
186
158
|
cvxgusd3CRV: {
|
|
187
|
-
type:
|
|
188
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
159
|
+
type: TokenType.CONVEX_PHANTOM
|
|
189
160
|
},
|
|
190
161
|
// YEARN- CURVE TOKENS
|
|
191
162
|
yvCurve_stETH: {
|
|
192
|
-
type:
|
|
193
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
163
|
+
type: TokenType.YEARN_VAULT_OF_CURVE_LP
|
|
194
164
|
},
|
|
195
165
|
yvCurve_FRAX: {
|
|
196
|
-
type:
|
|
197
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
166
|
+
type: TokenType.YEARN_VAULT_OF_META_CURVE_LP
|
|
198
167
|
}
|
|
199
168
|
};
|
|
200
169
|
exports.tokenDataByNetwork = {
|
|
@@ -250,7 +219,7 @@ exports.tokenDataByNetwork = {
|
|
|
250
219
|
cvxgusd3CRV: "0x15c2471ef46Fa721990730cfa526BcFb45574576",
|
|
251
220
|
// YEARN- CURVE TOKENS
|
|
252
221
|
yvCurve_stETH: "0xdCD90C7f6324cfa40d7169ef80b12031770B4325",
|
|
253
|
-
yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139"
|
|
222
|
+
yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139"
|
|
254
223
|
},
|
|
255
224
|
//
|
|
256
225
|
// KOVAN NETWORK
|
|
@@ -306,6 +275,6 @@ exports.tokenDataByNetwork = {
|
|
|
306
275
|
cvxgusd3CRV: "",
|
|
307
276
|
// YEARN- CURVE TOKENS
|
|
308
277
|
yvCurve_stETH: "0xdDc2FA328321573Bc2647C0135D75012c522CDAC",
|
|
309
|
-
yvCurve_FRAX: ""
|
|
278
|
+
yvCurve_FRAX: ""
|
|
310
279
|
}
|
|
311
280
|
};
|
package/package.json
CHANGED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BigNumber } from "ethers";
|
|
2
|
+
import { CreditManagerData } from "./creditManager";
|
|
3
|
+
import { MultiCall } from "./multicall";
|
|
4
|
+
import { SupportedTokens } from "./token";
|
|
5
|
+
|
|
6
|
+
export interface Path {
|
|
7
|
+
calls: Array<MultiCall>;
|
|
8
|
+
balances: Record<SupportedTokens, BigNumber>;
|
|
9
|
+
// usedTokens: Array<SupportedTokens>;
|
|
10
|
+
gasUsed: number;
|
|
11
|
+
pool: SupportedTokens;
|
|
12
|
+
creditManager: CreditManagerData;
|
|
13
|
+
|
|
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
|
+
//}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface PathAsset {
|
|
27
|
+
getBestPath(p: Path): Promise<Path>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export class ConnectorPathAsset implements PathAsset {
|
|
31
|
+
getBestPath(p: Path): Promise<Path> {
|
|
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())
|
|
39
|
+
throw new Error("Method not implemented.");
|
|
40
|
+
}
|
|
41
|
+
}
|
package/src/core/priceFeeds.ts
CHANGED
|
@@ -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!
|
package/src/core/token.ts
CHANGED
|
@@ -1,18 +1,53 @@
|
|
|
1
1
|
import { NetworkType } from "./constants";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
priority: number;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
enum Priority {
|
|
9
|
-
CONNECTOR = 0,
|
|
3
|
+
enum TokenType {
|
|
4
|
+
CONNECTOR,
|
|
10
5
|
NORMAL_TOKEN,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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_PHANTOM
|
|
14
12
|
}
|
|
15
13
|
|
|
14
|
+
export const priority = {
|
|
15
|
+
[TokenType.CONNECTOR]: 1,
|
|
16
|
+
[TokenType.NORMAL_TOKEN]: 2,
|
|
17
|
+
[TokenType.CURVE_LP]: 3,
|
|
18
|
+
[TokenType.YEARN_VAULT]: 3,
|
|
19
|
+
[TokenType.META_CURVE_LP]: 4,
|
|
20
|
+
[TokenType.YEARN_VAULT_OF_CURVE_LP]: 4,
|
|
21
|
+
[TokenType.CONVEX_PHANTOM]: 5,
|
|
22
|
+
[TokenType.YEARN_VAULT_OF_META_CURVE_LP]: 5
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export type TokenDataI =
|
|
26
|
+
| {
|
|
27
|
+
type: TokenType.CONNECTOR;
|
|
28
|
+
}
|
|
29
|
+
| {
|
|
30
|
+
type: TokenType.NORMAL_TOKEN;
|
|
31
|
+
}
|
|
32
|
+
| {
|
|
33
|
+
type: TokenType.CURVE_LP;
|
|
34
|
+
}
|
|
35
|
+
| {
|
|
36
|
+
type: TokenType.YEARN_VAULT;
|
|
37
|
+
}
|
|
38
|
+
| {
|
|
39
|
+
type: TokenType.META_CURVE_LP;
|
|
40
|
+
}
|
|
41
|
+
| {
|
|
42
|
+
type: TokenType.YEARN_VAULT_OF_CURVE_LP;
|
|
43
|
+
}
|
|
44
|
+
| {
|
|
45
|
+
type: TokenType.CONVEX_PHANTOM;
|
|
46
|
+
}
|
|
47
|
+
| {
|
|
48
|
+
type: TokenType.YEARN_VAULT_OF_META_CURVE_LP;
|
|
49
|
+
};
|
|
50
|
+
|
|
16
51
|
export type SupportedTokens =
|
|
17
52
|
| "1INCH"
|
|
18
53
|
| "AAVE"
|
|
@@ -72,235 +107,190 @@ export type SupportedTokens =
|
|
|
72
107
|
|
|
73
108
|
export const supportedTokens: Record<SupportedTokens, TokenDataI> = {
|
|
74
109
|
"1INCH": {
|
|
75
|
-
type:
|
|
76
|
-
priority: Priority.NORMAL_TOKEN
|
|
110
|
+
type: TokenType.NORMAL_TOKEN
|
|
77
111
|
},
|
|
78
112
|
|
|
79
113
|
AAVE: {
|
|
80
|
-
type:
|
|
81
|
-
priority: Priority.NORMAL_TOKEN
|
|
114
|
+
type: TokenType.NORMAL_TOKEN
|
|
82
115
|
},
|
|
83
116
|
|
|
84
117
|
COMP: {
|
|
85
|
-
type:
|
|
86
|
-
priority: Priority.NORMAL_TOKEN
|
|
118
|
+
type: TokenType.NORMAL_TOKEN
|
|
87
119
|
},
|
|
88
120
|
|
|
89
121
|
CRV: {
|
|
90
|
-
type:
|
|
91
|
-
priority: Priority.NORMAL_TOKEN
|
|
122
|
+
type: TokenType.NORMAL_TOKEN
|
|
92
123
|
},
|
|
93
124
|
|
|
94
125
|
DAI: {
|
|
95
|
-
type:
|
|
96
|
-
priority: Priority.CONNECTOR
|
|
126
|
+
type: TokenType.CONNECTOR
|
|
97
127
|
},
|
|
98
128
|
|
|
99
129
|
DPI: {
|
|
100
|
-
type:
|
|
101
|
-
priority: Priority.NORMAL_TOKEN
|
|
130
|
+
type: TokenType.NORMAL_TOKEN
|
|
102
131
|
},
|
|
103
132
|
|
|
104
133
|
FEI: {
|
|
105
|
-
type:
|
|
106
|
-
priority: Priority.NORMAL_TOKEN
|
|
134
|
+
type: TokenType.NORMAL_TOKEN
|
|
107
135
|
},
|
|
108
136
|
|
|
109
137
|
LINK: {
|
|
110
|
-
type:
|
|
111
|
-
priority: Priority.NORMAL_TOKEN
|
|
138
|
+
type: TokenType.NORMAL_TOKEN
|
|
112
139
|
},
|
|
113
140
|
|
|
114
141
|
SNX: {
|
|
115
|
-
type:
|
|
116
|
-
priority: Priority.NORMAL_TOKEN
|
|
142
|
+
type: TokenType.NORMAL_TOKEN
|
|
117
143
|
},
|
|
118
144
|
|
|
119
145
|
SUSHI: {
|
|
120
|
-
type:
|
|
121
|
-
priority: Priority.NORMAL_TOKEN
|
|
146
|
+
type: TokenType.NORMAL_TOKEN
|
|
122
147
|
},
|
|
123
148
|
|
|
124
149
|
UNI: {
|
|
125
|
-
type:
|
|
126
|
-
priority: Priority.NORMAL_TOKEN
|
|
150
|
+
type: TokenType.NORMAL_TOKEN
|
|
127
151
|
},
|
|
128
152
|
|
|
129
153
|
USDC: {
|
|
130
|
-
type:
|
|
131
|
-
priority: Priority.CONNECTOR
|
|
154
|
+
type: TokenType.CONNECTOR
|
|
132
155
|
},
|
|
133
156
|
|
|
134
157
|
USDT: {
|
|
135
|
-
type:
|
|
136
|
-
priority: Priority.NORMAL_TOKEN
|
|
158
|
+
type: TokenType.NORMAL_TOKEN
|
|
137
159
|
},
|
|
138
160
|
|
|
139
161
|
WBTC: {
|
|
140
|
-
type:
|
|
141
|
-
priority: Priority.CONNECTOR
|
|
162
|
+
type: TokenType.CONNECTOR
|
|
142
163
|
},
|
|
143
164
|
|
|
144
165
|
WETH: {
|
|
145
|
-
type:
|
|
146
|
-
priority: Priority.CONNECTOR
|
|
166
|
+
type: TokenType.CONNECTOR
|
|
147
167
|
},
|
|
148
168
|
|
|
149
169
|
YFI: {
|
|
150
|
-
type:
|
|
151
|
-
priority: Priority.NORMAL_TOKEN
|
|
170
|
+
type: TokenType.NORMAL_TOKEN
|
|
152
171
|
},
|
|
153
172
|
|
|
154
173
|
/// UPDATE
|
|
155
174
|
STETH: {
|
|
156
|
-
type:
|
|
157
|
-
priority: Priority.NORMAL_TOKEN
|
|
175
|
+
type: TokenType.NORMAL_TOKEN
|
|
158
176
|
},
|
|
159
177
|
|
|
160
178
|
FTM: {
|
|
161
|
-
type:
|
|
162
|
-
priority: Priority.NORMAL_TOKEN
|
|
179
|
+
type: TokenType.NORMAL_TOKEN
|
|
163
180
|
},
|
|
164
181
|
|
|
165
182
|
CVX: {
|
|
166
|
-
type:
|
|
167
|
-
priority: Priority.NORMAL_TOKEN
|
|
183
|
+
type: TokenType.NORMAL_TOKEN
|
|
168
184
|
},
|
|
169
185
|
|
|
170
186
|
FRAX: {
|
|
171
|
-
type:
|
|
172
|
-
priority: Priority.NORMAL_TOKEN
|
|
187
|
+
type: TokenType.NORMAL_TOKEN
|
|
173
188
|
},
|
|
174
189
|
|
|
175
190
|
FXS: {
|
|
176
|
-
type:
|
|
177
|
-
priority: Priority.NORMAL_TOKEN
|
|
191
|
+
type: TokenType.NORMAL_TOKEN
|
|
178
192
|
},
|
|
179
193
|
|
|
180
194
|
LDO: {
|
|
181
|
-
type:
|
|
182
|
-
priority: Priority.NORMAL_TOKEN
|
|
195
|
+
type: TokenType.NORMAL_TOKEN
|
|
183
196
|
},
|
|
184
197
|
|
|
185
198
|
SPELL: {
|
|
186
|
-
type:
|
|
187
|
-
priority: Priority.NORMAL_TOKEN
|
|
199
|
+
type: TokenType.NORMAL_TOKEN
|
|
188
200
|
},
|
|
189
201
|
|
|
190
202
|
LUSD: {
|
|
191
|
-
type:
|
|
192
|
-
priority: Priority.NORMAL_TOKEN
|
|
203
|
+
type: TokenType.NORMAL_TOKEN
|
|
193
204
|
},
|
|
194
205
|
|
|
195
206
|
sUSD: {
|
|
196
|
-
type:
|
|
197
|
-
priority: Priority.NORMAL_TOKEN
|
|
207
|
+
type: TokenType.NORMAL_TOKEN
|
|
198
208
|
},
|
|
199
209
|
|
|
200
210
|
GUSD: {
|
|
201
|
-
type:
|
|
202
|
-
priority: Priority.NORMAL_TOKEN
|
|
211
|
+
type: TokenType.NORMAL_TOKEN
|
|
203
212
|
},
|
|
204
213
|
|
|
205
214
|
LUNA: {
|
|
206
|
-
type:
|
|
207
|
-
priority: Priority.NORMAL_TOKEN
|
|
215
|
+
type: TokenType.NORMAL_TOKEN
|
|
208
216
|
},
|
|
209
217
|
LQTY: {
|
|
210
|
-
type:
|
|
211
|
-
priority: Priority.NORMAL_TOKEN
|
|
218
|
+
type: TokenType.NORMAL_TOKEN
|
|
212
219
|
},
|
|
213
220
|
|
|
214
221
|
// YEARN TOKENS
|
|
215
222
|
yvDAI: {
|
|
216
|
-
type:
|
|
217
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
223
|
+
type: TokenType.YEARN_VAULT
|
|
218
224
|
},
|
|
219
225
|
|
|
220
226
|
yvUSDC: {
|
|
221
|
-
type:
|
|
222
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
227
|
+
type: TokenType.YEARN_VAULT
|
|
223
228
|
},
|
|
224
229
|
|
|
225
230
|
yvWETH: {
|
|
226
|
-
type:
|
|
227
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
231
|
+
type: TokenType.YEARN_VAULT
|
|
228
232
|
},
|
|
229
233
|
|
|
230
234
|
yvWBTC: {
|
|
231
|
-
type:
|
|
232
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
235
|
+
type: TokenType.YEARN_VAULT
|
|
233
236
|
},
|
|
234
237
|
|
|
235
238
|
// CURVE LP TOKENS
|
|
236
239
|
|
|
237
240
|
"3Crv": {
|
|
238
|
-
type:
|
|
239
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
241
|
+
type: TokenType.CURVE_LP
|
|
240
242
|
},
|
|
241
243
|
|
|
242
244
|
steCRV: {
|
|
243
|
-
type:
|
|
244
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
245
|
+
type: TokenType.CURVE_LP
|
|
245
246
|
},
|
|
246
247
|
|
|
247
248
|
crvPlain3andSUSD: {
|
|
248
|
-
type:
|
|
249
|
-
priority: Priority.CURVE_LP_OR_YEARN
|
|
249
|
+
type: TokenType.CURVE_LP
|
|
250
250
|
},
|
|
251
251
|
|
|
252
252
|
// META CURVE LP TOKENS
|
|
253
253
|
|
|
254
254
|
FRAX3CRV: {
|
|
255
|
-
type:
|
|
256
|
-
priority: Priority.META_CURVE_LP_OR_YEARN_ON_CURVE
|
|
255
|
+
type: TokenType.META_CURVE_LP
|
|
257
256
|
},
|
|
258
257
|
|
|
259
258
|
LUSD3CRV: {
|
|
260
|
-
type:
|
|
261
|
-
priority: Priority.META_CURVE_LP_OR_YEARN_ON_CURVE
|
|
259
|
+
type: TokenType.META_CURVE_LP
|
|
262
260
|
},
|
|
263
261
|
|
|
264
262
|
gusd3CRV: {
|
|
265
|
-
type:
|
|
266
|
-
priority: Priority.META_CURVE_LP_OR_YEARN_ON_CURVE
|
|
263
|
+
type: TokenType.META_CURVE_LP
|
|
267
264
|
},
|
|
268
265
|
|
|
269
266
|
// CONVEX LP TOKENS
|
|
270
267
|
|
|
271
268
|
cvx3Crv: {
|
|
272
|
-
type:
|
|
273
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
269
|
+
type: TokenType.CONVEX_PHANTOM
|
|
274
270
|
},
|
|
275
271
|
|
|
276
272
|
cvxsteCRV: {
|
|
277
|
-
type:
|
|
278
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
273
|
+
type: TokenType.CONVEX_PHANTOM
|
|
279
274
|
},
|
|
280
275
|
|
|
281
276
|
cvxFRAX3CRV: {
|
|
282
|
-
type:
|
|
283
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
277
|
+
type: TokenType.CONVEX_PHANTOM
|
|
284
278
|
},
|
|
285
279
|
|
|
286
280
|
cvxcrvPlain3andSUSD: {
|
|
287
|
-
type:
|
|
288
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
281
|
+
type: TokenType.CONVEX_PHANTOM
|
|
289
282
|
},
|
|
290
283
|
|
|
291
284
|
cvxgusd3CRV: {
|
|
292
|
-
type:
|
|
293
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
285
|
+
type: TokenType.CONVEX_PHANTOM
|
|
294
286
|
},
|
|
295
287
|
|
|
296
288
|
// YEARN- CURVE TOKENS
|
|
297
289
|
yvCurve_stETH: {
|
|
298
|
-
type:
|
|
299
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
290
|
+
type: TokenType.YEARN_VAULT_OF_CURVE_LP
|
|
300
291
|
},
|
|
301
292
|
yvCurve_FRAX: {
|
|
302
|
-
type:
|
|
303
|
-
priority: Priority.CONVEX_OR_YEARN_ON_META_CURVE_LP
|
|
293
|
+
type: TokenType.YEARN_VAULT_OF_META_CURVE_LP
|
|
304
294
|
}
|
|
305
295
|
};
|
|
306
296
|
|
|
@@ -365,7 +355,7 @@ export const tokenDataByNetwork: Record<
|
|
|
365
355
|
|
|
366
356
|
// YEARN- CURVE TOKENS
|
|
367
357
|
yvCurve_stETH: "0xdCD90C7f6324cfa40d7169ef80b12031770B4325",
|
|
368
|
-
yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139"
|
|
358
|
+
yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139"
|
|
369
359
|
},
|
|
370
360
|
|
|
371
361
|
//
|
|
@@ -427,7 +417,6 @@ export const tokenDataByNetwork: Record<
|
|
|
427
417
|
|
|
428
418
|
// YEARN- CURVE TOKENS
|
|
429
419
|
yvCurve_stETH: "0xdDc2FA328321573Bc2647C0135D75012c522CDAC",
|
|
430
|
-
yvCurve_FRAX: ""
|
|
431
|
-
|
|
420
|
+
yvCurve_FRAX: ""
|
|
432
421
|
}
|
|
433
422
|
};
|