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