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