@gearbox-protocol/sdk 0.0.39 → 0.0.42
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/adapters.d.ts +14 -0
- package/lib/core/adapters.js +18 -0
- package/lib/core/contracts.d.ts +32 -65
- package/lib/core/contracts.js +169 -105
- package/lib/core/contractsRegister.js +28 -31
- package/lib/core/oracles.d.ts +5 -5
- package/lib/core/pathfinder.d.ts +5 -5
- package/lib/core/pathfinder.js +1 -1
- package/lib/core/priceFeeds.d.ts +2 -2
- package/lib/core/priceFeeds.js +31 -0
- package/lib/core/protocols.d.ts +13 -0
- package/lib/core/protocols.js +39 -0
- package/lib/core/token.d.ts +30 -5
- package/lib/core/token.js +119 -11
- package/lib/core/tokenData.d.ts +2 -2
- package/lib/devops/loggedDeployer.d.ts +7 -0
- package/lib/devops/loggedDeployer.js +22 -0
- package/lib/devops/verifierDeployer.d.ts +13 -0
- package/lib/devops/verifierDeployer.js +161 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -2
- package/package.json +6 -2
- package/src/core/adapters.ts +16 -0
- package/src/core/contracts.ts +241 -140
- package/src/core/contractsRegister.ts +10 -17
- package/src/core/oracles.ts +5 -5
- package/src/core/pathfinder.ts +6 -6
- package/src/core/priceFeeds.ts +442 -412
- package/src/core/protocols.ts +40 -0
- package/src/core/token.ts +200 -60
- package/src/core/tokenData.ts +2 -2
- package/src/devops/loggedDeployer.ts +22 -0
- package/src/devops/verifierDeployer.ts +79 -0
- package/src/index.ts +2 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export enum AdapterInterface {
|
|
2
|
+
NO_SWAP, // 0 - 1
|
|
3
|
+
UNISWAP_V2_ROUTER, // 1 - 2
|
|
4
|
+
UNISWAP_V3_ROUTER, // 2 - 4
|
|
5
|
+
CURVE_V1_2ASSETS, // 3 - 8
|
|
6
|
+
CURVE_V1_3ASSETS, // 4 - 16
|
|
7
|
+
CURVE_V1_4ASSETS, // 5 - 32
|
|
8
|
+
CURVE_V1_STECRV_POOL, // 6 - 64
|
|
9
|
+
YEARN_V2, // 7 - 128
|
|
10
|
+
CONVEX_V1_BASE_REWARD_POOL, // 8 - 256
|
|
11
|
+
CONVEX_V1_BOOSTER, // 9 - 512
|
|
12
|
+
CONVEX_V1_CLAIM_ZAP, // 10 - 1024
|
|
13
|
+
LIDO_V1 // 11 - 2048
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
package/src/core/contracts.ts
CHANGED
|
@@ -4,168 +4,269 @@
|
|
|
4
4
|
* (c) Gearbox.fi, 2021
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { AdapterInterface } from "./adapters";
|
|
8
|
+
import { NetworkType } from "./constants";
|
|
9
|
+
import { Protocols } from "./protocols";
|
|
10
|
+
import {
|
|
11
|
+
CurveLPToken,
|
|
12
|
+
NormalToken,
|
|
13
|
+
tokenDataByNetwork
|
|
14
|
+
} from "./token";
|
|
15
|
+
|
|
16
|
+
export type CurvePoolContract = | "CURVE_3POOL"
|
|
17
|
+
| "CURVE_STETH_GATEWAY"
|
|
18
|
+
| "CURVE_FRAX"
|
|
19
|
+
| "CURVE_LUSD"
|
|
20
|
+
| "CURVE_GUSD"
|
|
21
|
+
| "CURVE_SUSD"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
export type ConvexPoolContract =
|
|
25
|
+
| "CONVEX_3CRV"
|
|
26
|
+
| "CONVEX_GUSD"
|
|
27
|
+
| "CONVEX_SUSD"
|
|
28
|
+
| "CONVEX_STECRV"
|
|
29
|
+
| "CONVEX_FRAX3CRV"
|
|
30
|
+
|
|
31
|
+
export type SupportedContract =
|
|
32
|
+
| "UNISWAP_V2_ROUTER"
|
|
33
|
+
| "UNISWAP_V3_ROUTER"
|
|
34
|
+
| "SUSHISWAP_ROUTER"
|
|
35
|
+
| CurvePoolContract
|
|
36
|
+
| "YEARN_DAI"
|
|
37
|
+
| "YEARN_USDC"
|
|
38
|
+
| "YEARN_WETH"
|
|
39
|
+
| "YEARN_WBTC"
|
|
40
|
+
| "YEARN_CURVE_FRAX"
|
|
41
|
+
| "YEARN_CURVE_STETH"
|
|
42
|
+
| "CONVEX_BOOSTER"
|
|
43
|
+
| ConvexPoolContract
|
|
44
|
+
| "CONVEX_CLAIM_ZAP"
|
|
45
|
+
| "LIDO_STETH_GATEWAY";
|
|
46
|
+
|
|
47
|
+
export const contractsByNetwork: Record<
|
|
48
|
+
NetworkType,
|
|
49
|
+
Record<SupportedContract, string>
|
|
50
|
+
> = {
|
|
51
|
+
Mainnet: {
|
|
52
|
+
UNISWAP_V2_ROUTER: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
|
|
53
|
+
UNISWAP_V3_ROUTER: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
|
|
54
|
+
SUSHISWAP_ROUTER: "0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F",
|
|
55
|
+
|
|
56
|
+
// CURVE
|
|
57
|
+
CURVE_3POOL: "0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7", // SEPARATE TOKEN
|
|
58
|
+
CURVE_STETH_GATEWAY: "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022", // SEPARATE TOKEN
|
|
59
|
+
CURVE_FRAX: tokenDataByNetwork.Mainnet.FRAX3CRV,
|
|
60
|
+
CURVE_LUSD: tokenDataByNetwork.Mainnet.LUSD3CRV,
|
|
61
|
+
CURVE_SUSD: "0xA5407eAE9Ba41422680e2e00537571bcC53efBfD", // SEPARATE TOKEN
|
|
62
|
+
CURVE_GUSD: "0x4f062658EaAF2C1ccf8C8e36D6824CDf41167956", // SEPARATE TOKEN
|
|
63
|
+
|
|
64
|
+
// YEARN
|
|
65
|
+
YEARN_DAI: tokenDataByNetwork.Mainnet.yvDAI,
|
|
66
|
+
YEARN_USDC: tokenDataByNetwork.Mainnet.yvUSDC,
|
|
67
|
+
YEARN_WETH: tokenDataByNetwork.Mainnet.yvWETH,
|
|
68
|
+
YEARN_WBTC: tokenDataByNetwork.Mainnet.yvWBTC,
|
|
69
|
+
YEARN_CURVE_FRAX: tokenDataByNetwork.Mainnet.yvCurve_FRAX,
|
|
70
|
+
YEARN_CURVE_STETH: tokenDataByNetwork.Mainnet.yvCurve_stETH,
|
|
71
|
+
|
|
72
|
+
// CONVEX
|
|
73
|
+
CONVEX_BOOSTER: "0xF403C135812408BFbE8713b5A23a04b3D48AAE31",
|
|
74
|
+
CONVEX_3CRV: "0x689440f2Ff927E1f24c72F1087E1FAF471eCe1c8",
|
|
75
|
+
CONVEX_GUSD: "0x7A7bBf95C44b144979360C3300B54A7D34b44985",
|
|
76
|
+
CONVEX_SUSD: "0x22eE18aca7F3Ee920D01F25dA85840D12d98E8Ca",
|
|
77
|
+
CONVEX_STECRV: "0x0A760466E1B4621579a82a39CB56Dda2F4E70f03",
|
|
78
|
+
CONVEX_FRAX3CRV: "0xB900EF131301B307dB5eFcbed9DBb50A3e209B2e",
|
|
79
|
+
CONVEX_CLAIM_ZAP: "0x92Cf9E5e4D1Dfbf7dA0d2BB3e884a68416a65070",
|
|
80
|
+
|
|
81
|
+
// LIDO
|
|
82
|
+
LIDO_STETH_GATEWAY: "0xae7ab96520de3a18e5e111b5eaab095312d7fe84"
|
|
83
|
+
},
|
|
84
|
+
Kovan: {
|
|
85
|
+
UNISWAP_V2_ROUTER: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
|
|
86
|
+
UNISWAP_V3_ROUTER: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
|
|
87
|
+
SUSHISWAP_ROUTER: "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506",
|
|
88
|
+
|
|
89
|
+
// CURVE
|
|
90
|
+
CURVE_3POOL: "0x769C784D1e958672bDef04cf12Fd5399b3db0f27",
|
|
91
|
+
CURVE_STETH_GATEWAY: "0xF695d3aa358D5087A0C157DBb9449d4f0d8E534a",
|
|
92
|
+
CURVE_FRAX: "",
|
|
93
|
+
CURVE_LUSD: tokenDataByNetwork.Kovan.LUSD3CRV,
|
|
94
|
+
CURVE_SUSD: "0x032f1cE00865F3499C0052ceBA5F2348842416DB", // SEPARATE TOKEN
|
|
95
|
+
CURVE_GUSD: "",
|
|
96
|
+
|
|
97
|
+
// YEARN
|
|
98
|
+
YEARN_DAI: tokenDataByNetwork.Kovan.yvDAI,
|
|
99
|
+
YEARN_USDC: tokenDataByNetwork.Kovan.yvUSDC,
|
|
100
|
+
YEARN_WETH: tokenDataByNetwork.Kovan.yvWETH,
|
|
101
|
+
YEARN_WBTC: tokenDataByNetwork.Kovan.yvWBTC,
|
|
102
|
+
YEARN_CURVE_FRAX: tokenDataByNetwork.Kovan.yvCurve_FRAX,
|
|
103
|
+
YEARN_CURVE_STETH: tokenDataByNetwork.Kovan.yvCurve_stETH,
|
|
104
|
+
|
|
105
|
+
// CONVEX
|
|
106
|
+
CONVEX_BOOSTER: "0x78A9261965F048b9FF055699569be4400EEC7005",
|
|
107
|
+
CONVEX_3CRV: "0x90D9E8ecc406cd7363C08fAdb4ac0f3994b4cA71",
|
|
108
|
+
CONVEX_GUSD: "",
|
|
109
|
+
CONVEX_SUSD: "",
|
|
110
|
+
CONVEX_STECRV: "0x0f64e188BFF97e09C71FF85f30509f5596D420dD",
|
|
111
|
+
CONVEX_FRAX3CRV: "",
|
|
112
|
+
CONVEX_CLAIM_ZAP: "",
|
|
113
|
+
|
|
114
|
+
// LIDO
|
|
115
|
+
LIDO_STETH_GATEWAY: ""
|
|
116
|
+
}
|
|
117
|
+
};
|
|
8
118
|
|
|
9
|
-
export const UNISWAP_V2_ROUTER = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D";
|
|
10
|
-
export const UNISWAP_V3_ROUTER = "0xE592427A0AEce92De3Edee1F18E0157C05861564";
|
|
11
119
|
export const UNISWAP_V3_QUOTER = "0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6";
|
|
12
120
|
|
|
13
|
-
export
|
|
14
|
-
export const CURVE_STETH_ADDRESS = "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022";
|
|
15
|
-
export const CURVE_STETH_GATEWAY_ADDRESS = "";
|
|
16
|
-
export const CURVE_FRAX_ADDRESS = "0xd632f22692FaC7611d2AA1C0D552930D43CAEd3B";
|
|
17
|
-
export const CURVE_LUSD_ADDRESS = "0x5a6a4d54456819380173272a5e8e9b9904bdf41b";
|
|
18
|
-
export const CURVE_SUSD_ADDRESS = "0x5a6a4d54456819380173272a5e8e9b9904bdf41b";
|
|
19
|
-
export const CURVE_GUSD_ADDRESS = "0x5a6a4d54456819380173272a5e8e9b9904bdf41b";
|
|
20
|
-
|
|
21
|
-
export const CURVE_3POOL_KOVAN_MOCK =
|
|
22
|
-
"0x769C784D1e958672bDef04cf12Fd5399b3db0f27";
|
|
23
|
-
export const CURVE_STE_CRV_KOVAN_MOCK =
|
|
24
|
-
"0xF695d3aa358D5087A0C157DBb9449d4f0d8E534a";
|
|
25
|
-
export const CURVE_SUSD_KOVAN_MOCK =
|
|
26
|
-
"0x032f1cE00865F3499C0052ceBA5F2348842416DB";
|
|
27
|
-
|
|
28
|
-
export const YEARN_DAI_ADDRESS = "0xdA816459F1AB5631232FE5e97a05BBBb94970c95";
|
|
29
|
-
export const YEARN_USDC_ADDRESS = "0xa354F35829Ae975e850e23e9615b11Da1B3dC4DE";
|
|
30
|
-
export const YEARN_WETH_ADDRESS = "0xa258C4606Ca8206D8aA700cE2143D7db854D168c";
|
|
31
|
-
export const YEARN_WBTC_ADDRESS = "0xA696a63cc78DfFa1a63E9E50587C197387FF6C7E";
|
|
32
|
-
|
|
33
|
-
export const YEARN_CURVE_FRAX_ADDRESS =
|
|
34
|
-
"0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139";
|
|
35
|
-
|
|
36
|
-
export const YEARN_CURVE_STETH_ADDRESS =
|
|
37
|
-
"0xdCD90C7f6324cfa40d7169ef80b12031770B4325";
|
|
38
|
-
|
|
39
|
-
// KOVAN
|
|
40
|
-
export const YEARN_DAI_KOVAN_MOCK = tokenDataByNetwork.Kovan.yvDAI;
|
|
41
|
-
export const YEARN_USDC_KOVAN_MOCK = tokenDataByNetwork.Kovan.yvUSDC;
|
|
42
|
-
export const YEARN_WETH_KOVAN_MOCK = tokenDataByNetwork.Kovan.yvWETH;
|
|
43
|
-
export const YEARN_WBTC_KOVAN_MOCK = tokenDataByNetwork.Kovan.yvWBTC;
|
|
44
|
-
export const YEARN_3POOL_KOVAN_MOCK = tokenDataByNetwork.Kovan.yvCurve_stETH;
|
|
45
|
-
|
|
46
|
-
export const SUSHISWAP_MAINNET = "0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F";
|
|
47
|
-
export const SUSHISWAP_KOVAN = "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506";
|
|
48
|
-
|
|
49
|
-
export const CONVEX_BOOSTER_KOVAN_ADDRESS =
|
|
50
|
-
"0x78A9261965F048b9FF055699569be4400EEC7005";
|
|
51
|
-
|
|
52
|
-
export const CONVEX_3CRV_KOVAN_POOL_ADDRESS =
|
|
53
|
-
"0x90D9E8ecc406cd7363C08fAdb4ac0f3994b4cA71";
|
|
54
|
-
|
|
55
|
-
export const CONVEX_STECRV_KOVAN_POOL_ADDRESS =
|
|
56
|
-
"0x0f64e188BFF97e09C71FF85f30509f5596D420dD";
|
|
57
|
-
|
|
58
|
-
export const CONVEX_BOOSTER_ADDRESS =
|
|
59
|
-
"0xF403C135812408BFbE8713b5A23a04b3D48AAE31";
|
|
60
|
-
|
|
61
|
-
export const CONVEX_3POOL_REWARD_POOL_ADDRESS =
|
|
62
|
-
"0x689440f2Ff927E1f24c72F1087E1FAF471eCe1c8";
|
|
63
|
-
|
|
64
|
-
export const CONVEX_FRAX3CRV_REWARD_POOL_ADDRESS =
|
|
65
|
-
"0xB900EF131301B307dB5eFcbed9DBb50A3e209B2e";
|
|
66
|
-
|
|
67
|
-
export const CONVEX_CLAIM_ZAP_ADDRESS =
|
|
68
|
-
"0x92Cf9E5e4D1Dfbf7dA0d2BB3e884a68416a65070";
|
|
69
|
-
|
|
70
|
-
export const LIDO_STETH_ADDRESS = "0xae7ab96520de3a18e5e111b5eaab095312d7fe84";
|
|
71
|
-
|
|
72
|
-
export enum AdapterInterface {
|
|
73
|
-
NO_SWAP, // 0 - 1
|
|
74
|
-
UNISWAP_V2, // 1 - 2
|
|
75
|
-
UNISWAP_V3, // 2 - 4
|
|
76
|
-
CURVE_V1_2ASSETS, // 3 - 8
|
|
77
|
-
CURVE_V1_3ASSETS, // 4 - 16
|
|
78
|
-
CURVE_V1_4ASSETS, // 5 - 32
|
|
79
|
-
CURVE_V1_STETH, // 6 - 64
|
|
80
|
-
YEARN_V2, // 7 - 128
|
|
81
|
-
CONVEX_V1_BASE_REWARD_POOL, // 8 - 256
|
|
82
|
-
CONVEX_V1_BOOSTER, // 9 - 512
|
|
83
|
-
CONVEX_V1_CLAIM_ZAP, // 10 - 1024
|
|
84
|
-
LIDO_V1 // 11 - 2048
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export type AdapterParams =
|
|
121
|
+
export type ContractParams =
|
|
88
122
|
| {
|
|
89
|
-
|
|
90
|
-
type: AdapterInterface.
|
|
91
|
-
icon: string;
|
|
123
|
+
protocol: Protocols.Uniswap | Protocols.Sushiswap;
|
|
124
|
+
type: AdapterInterface.UNISWAP_V2_ROUTER;
|
|
92
125
|
}
|
|
93
126
|
| {
|
|
94
|
-
|
|
95
|
-
type: AdapterInterface.
|
|
127
|
+
protocol: Protocols.Uniswap;
|
|
128
|
+
type: AdapterInterface.UNISWAP_V3_ROUTER;
|
|
96
129
|
quoter: string;
|
|
97
|
-
icon: string;
|
|
98
130
|
}
|
|
99
131
|
| {
|
|
100
|
-
|
|
101
|
-
type:
|
|
102
|
-
|
|
103
|
-
|
|
132
|
+
protocol: Protocols.Curve;
|
|
133
|
+
type:
|
|
134
|
+
| AdapterInterface.CURVE_V1_2ASSETS
|
|
135
|
+
| AdapterInterface.CURVE_V1_3ASSETS
|
|
136
|
+
| AdapterInterface.CURVE_V1_4ASSETS;
|
|
137
|
+
lpToken: CurveLPToken;
|
|
138
|
+
tokens: Array<NormalToken | CurveLPToken>;
|
|
104
139
|
}
|
|
105
140
|
| {
|
|
106
|
-
|
|
107
|
-
type: AdapterInterface.
|
|
108
|
-
|
|
109
|
-
|
|
141
|
+
protocol: Protocols.Curve;
|
|
142
|
+
type: AdapterInterface.CURVE_V1_STECRV_POOL;
|
|
143
|
+
pool: string;
|
|
144
|
+
poolKovan?: string;
|
|
110
145
|
}
|
|
111
146
|
| {
|
|
112
|
-
|
|
147
|
+
protocol: Protocols.Yearn;
|
|
113
148
|
type: AdapterInterface.YEARN_V2;
|
|
114
|
-
|
|
149
|
+
}
|
|
150
|
+
| {
|
|
151
|
+
protocol: Protocols.Convex;
|
|
152
|
+
type:
|
|
153
|
+
| AdapterInterface.CONVEX_V1_BOOSTER
|
|
154
|
+
| AdapterInterface.CONVEX_V1_CLAIM_ZAP;
|
|
155
|
+
}
|
|
156
|
+
| {
|
|
157
|
+
protocol: Protocols.Convex;
|
|
158
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL;
|
|
159
|
+
}
|
|
160
|
+
| {
|
|
161
|
+
protocol: Protocols.Lido;
|
|
162
|
+
type: AdapterInterface.LIDO_V1;
|
|
115
163
|
};
|
|
116
164
|
|
|
117
|
-
export const knownContracts: Record<
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
type: AdapterInterface.
|
|
121
|
-
icon: "/protocols/uniswap.png"
|
|
165
|
+
export const knownContracts: Record<SupportedContract, ContractParams> = {
|
|
166
|
+
UNISWAP_V2_ROUTER: {
|
|
167
|
+
protocol: Protocols.Uniswap,
|
|
168
|
+
type: AdapterInterface.UNISWAP_V2_ROUTER
|
|
122
169
|
},
|
|
123
|
-
|
|
124
|
-
|
|
170
|
+
UNISWAP_V3_ROUTER: {
|
|
171
|
+
protocol: Protocols.Uniswap,
|
|
125
172
|
quoter: UNISWAP_V3_QUOTER,
|
|
126
|
-
type: AdapterInterface.
|
|
127
|
-
icon: "/protocols/uniswap.png"
|
|
173
|
+
type: AdapterInterface.UNISWAP_V3_ROUTER
|
|
128
174
|
},
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
type: AdapterInterface.
|
|
132
|
-
icon: "/protocols/sushi.svg"
|
|
175
|
+
SUSHISWAP_ROUTER: {
|
|
176
|
+
protocol: Protocols.Sushiswap,
|
|
177
|
+
type: AdapterInterface.UNISWAP_V2_ROUTER
|
|
133
178
|
},
|
|
134
|
-
|
|
135
|
-
|
|
179
|
+
CURVE_3POOL: {
|
|
180
|
+
protocol: Protocols.Curve,
|
|
136
181
|
type: AdapterInterface.CURVE_V1_3ASSETS,
|
|
137
|
-
|
|
138
|
-
|
|
182
|
+
lpToken: "3Crv",
|
|
183
|
+
tokens: ["DAI", "USDC", "USDT"]
|
|
139
184
|
},
|
|
140
|
-
|
|
141
|
-
|
|
185
|
+
CURVE_STETH_GATEWAY: {
|
|
186
|
+
protocol: Protocols.Curve,
|
|
187
|
+
type: AdapterInterface.CURVE_V1_STECRV_POOL,
|
|
188
|
+
pool: "",
|
|
189
|
+
poolKovan: ""
|
|
190
|
+
},
|
|
191
|
+
CURVE_FRAX: {
|
|
192
|
+
protocol: Protocols.Curve,
|
|
193
|
+
type: AdapterInterface.CURVE_V1_2ASSETS,
|
|
194
|
+
lpToken: "FRAX3CRV",
|
|
195
|
+
tokens: ["3Crv", "FRAX"]
|
|
196
|
+
},
|
|
197
|
+
CURVE_LUSD: {
|
|
198
|
+
protocol: Protocols.Curve,
|
|
142
199
|
type: AdapterInterface.CURVE_V1_2ASSETS,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
type: AdapterInterface.
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
200
|
+
lpToken: "LUSD3CRV",
|
|
201
|
+
tokens: ["3Crv", "FRAX"]
|
|
202
|
+
},
|
|
203
|
+
CURVE_SUSD: {
|
|
204
|
+
protocol: Protocols.Curve,
|
|
205
|
+
type: AdapterInterface.CURVE_V1_2ASSETS,
|
|
206
|
+
lpToken: "crvPlain3andSUSD",
|
|
207
|
+
tokens: ["3Crv", "FRAX"]
|
|
208
|
+
},
|
|
209
|
+
CURVE_GUSD: {
|
|
210
|
+
protocol: Protocols.Curve,
|
|
211
|
+
type: AdapterInterface.CURVE_V1_2ASSETS,
|
|
212
|
+
lpToken: "gusd3CRV",
|
|
213
|
+
tokens: ["3Crv", "FRAX"]
|
|
214
|
+
},
|
|
215
|
+
YEARN_DAI: {
|
|
216
|
+
protocol: Protocols.Yearn,
|
|
217
|
+
type: AdapterInterface.YEARN_V2
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
YEARN_USDC: {
|
|
221
|
+
protocol: Protocols.Yearn,
|
|
222
|
+
type: AdapterInterface.YEARN_V2
|
|
223
|
+
},
|
|
224
|
+
YEARN_WETH: {
|
|
225
|
+
protocol: Protocols.Yearn,
|
|
226
|
+
type: AdapterInterface.YEARN_V2
|
|
227
|
+
},
|
|
228
|
+
YEARN_WBTC: {
|
|
229
|
+
protocol: Protocols.Yearn,
|
|
230
|
+
type: AdapterInterface.YEARN_V2
|
|
231
|
+
},
|
|
232
|
+
YEARN_CURVE_FRAX: {
|
|
233
|
+
protocol: Protocols.Yearn,
|
|
234
|
+
type: AdapterInterface.YEARN_V2
|
|
235
|
+
},
|
|
236
|
+
YEARN_CURVE_STETH: {
|
|
237
|
+
protocol: Protocols.Yearn,
|
|
238
|
+
type: AdapterInterface.YEARN_V2
|
|
239
|
+
},
|
|
240
|
+
CONVEX_BOOSTER: {
|
|
241
|
+
protocol: Protocols.Convex,
|
|
242
|
+
type: AdapterInterface.CONVEX_V1_BOOSTER
|
|
243
|
+
},
|
|
244
|
+
CONVEX_3CRV: {
|
|
245
|
+
protocol: Protocols.Convex,
|
|
246
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL
|
|
247
|
+
},
|
|
248
|
+
CONVEX_GUSD: {
|
|
249
|
+
protocol: Protocols.Convex,
|
|
250
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL
|
|
251
|
+
},
|
|
252
|
+
CONVEX_SUSD: {
|
|
253
|
+
protocol: Protocols.Convex,
|
|
254
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL
|
|
255
|
+
},
|
|
256
|
+
CONVEX_STECRV: {
|
|
257
|
+
protocol: Protocols.Convex,
|
|
258
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL
|
|
259
|
+
},
|
|
260
|
+
CONVEX_FRAX3CRV: {
|
|
261
|
+
protocol: Protocols.Convex,
|
|
262
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL
|
|
263
|
+
},
|
|
264
|
+
CONVEX_CLAIM_ZAP: {
|
|
265
|
+
protocol: Protocols.Convex,
|
|
266
|
+
type: AdapterInterface.CONVEX_V1_CLAIM_ZAP
|
|
267
|
+
},
|
|
268
|
+
LIDO_STETH_GATEWAY: {
|
|
269
|
+
protocol: Protocols.Lido,
|
|
270
|
+
type: AdapterInterface.LIDO_V1
|
|
170
271
|
}
|
|
171
272
|
};
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
CURVE_3POOL_ADDRESS, SUSHISWAP_KOVAN,
|
|
3
|
-
SUSHISWAP_MAINNET,
|
|
4
|
-
UNISWAP_V2_ROUTER,
|
|
5
|
-
UNISWAP_V3_ROUTER,
|
|
6
|
-
YEARN_DAI_ADDRESS, YEARN_DAI_KOVAN_MOCK,
|
|
7
|
-
YEARN_USDC_ADDRESS, YEARN_USDC_KOVAN_MOCK,
|
|
8
|
-
} from "./contracts";
|
|
1
|
+
|
|
9
2
|
|
|
10
3
|
export const deployedContracts: Record<string, string> = {
|
|
11
4
|
// MAINNET
|
|
@@ -20,12 +13,12 @@ export const deployedContracts: Record<string, string> = {
|
|
|
20
13
|
|
|
21
14
|
|
|
22
15
|
|
|
23
|
-
[UNISWAP_V2_ROUTER]: "Uniswap V2",
|
|
24
|
-
[UNISWAP_V3_ROUTER]: "Uniswap V3",
|
|
25
|
-
[CURVE_3POOL_ADDRESS]: "Curve 3Pool",
|
|
26
|
-
[SUSHISWAP_MAINNET]: "Sushiswap",
|
|
27
|
-
[YEARN_DAI_ADDRESS]: "Yearn DAI",
|
|
28
|
-
[YEARN_USDC_ADDRESS]: "Yearn USDC",
|
|
16
|
+
// [UNISWAP_V2_ROUTER]: "Uniswap V2",
|
|
17
|
+
// [UNISWAP_V3_ROUTER]: "Uniswap V3",
|
|
18
|
+
// [CURVE_3POOL_ADDRESS]: "Curve 3Pool",
|
|
19
|
+
// [SUSHISWAP_MAINNET]: "Sushiswap",
|
|
20
|
+
// [YEARN_DAI_ADDRESS]: "Yearn DAI",
|
|
21
|
+
// [YEARN_USDC_ADDRESS]: "Yearn USDC",
|
|
29
22
|
|
|
30
23
|
// KOVAN
|
|
31
24
|
"0xc40B71BCcb749D91923654571f715Bf1FC464E66": "DAI",
|
|
@@ -36,9 +29,9 @@ export const deployedContracts: Record<string, string> = {
|
|
|
36
29
|
"0x600073357c29d169aAF3E543A4519749830553F1": "WETH",
|
|
37
30
|
"0xdBAd1361d9A03B81Be8D3a54Ef0dc9e39a1bA5b3": "USDC",
|
|
38
31
|
"0x50d1fA47b0D88BA0D108148B8481b4A762eFB99e": "DAI",
|
|
39
|
-
[YEARN_DAI_KOVAN_MOCK]: "Yearn DAI",
|
|
40
|
-
[YEARN_USDC_KOVAN_MOCK]: "Yearn USDC",
|
|
41
|
-
[SUSHISWAP_KOVAN]: "Sushiswap"
|
|
32
|
+
// [YEARN_DAI_KOVAN_MOCK]: "Yearn DAI",
|
|
33
|
+
// [YEARN_USDC_KOVAN_MOCK]: "Yearn USDC",
|
|
34
|
+
// [SUSHISWAP_KOVAN]: "Sushiswap"
|
|
42
35
|
};
|
|
43
36
|
|
|
44
37
|
|
package/src/core/oracles.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SupportedToken } from "./token";
|
|
2
2
|
|
|
3
3
|
export interface PriceFeed {
|
|
4
4
|
token: string;
|
|
@@ -22,24 +22,24 @@ export type PriceFeedData =
|
|
|
22
22
|
}
|
|
23
23
|
| {
|
|
24
24
|
type: OracleType.YEARN_TOKEN_ORACLE;
|
|
25
|
-
token:
|
|
25
|
+
token: SupportedToken;
|
|
26
26
|
deployed?: string;
|
|
27
27
|
deployedKovan?: string;
|
|
28
28
|
}
|
|
29
29
|
| {
|
|
30
30
|
type: OracleType.CURVE_LP_ORACLE;
|
|
31
|
-
assets: Array<
|
|
31
|
+
assets: Array<SupportedToken>;
|
|
32
32
|
}
|
|
33
33
|
| {
|
|
34
34
|
type: OracleType.YEARN_CURVE_LP_ORACLE;
|
|
35
|
-
curveSymbol:
|
|
35
|
+
curveSymbol: SupportedToken;
|
|
36
36
|
}
|
|
37
37
|
| {
|
|
38
38
|
type: OracleType.ZERO_ORACLE;
|
|
39
39
|
}
|
|
40
40
|
| {
|
|
41
41
|
type: OracleType.LIKE_CURVE_LP_ORACLE;
|
|
42
|
-
curveSymbol:
|
|
42
|
+
curveSymbol: SupportedToken;
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
export type TokenPriceFeedData = {
|
package/src/core/pathfinder.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BigNumber } from "ethers";
|
|
2
2
|
import { CreditManagerData } from "./creditManager";
|
|
3
3
|
import { MultiCall } from "./multicall";
|
|
4
|
-
import {
|
|
4
|
+
import { SupportedToken } from "./token";
|
|
5
5
|
|
|
6
6
|
// const path = new Path({gasUsed:0, balances: creditAccount.balances, })
|
|
7
7
|
// const closurePath = await path.getBestPath();
|
|
@@ -15,16 +15,16 @@ import { SupportedTokens } from "./token";
|
|
|
15
15
|
|
|
16
16
|
export class Path {
|
|
17
17
|
public readonly calls: Array<MultiCall> = [];
|
|
18
|
-
public readonly balances: Record<
|
|
18
|
+
public readonly balances: Record<SupportedToken, BigNumber>;
|
|
19
19
|
// usedTokens: Array<SupportedTokens>;
|
|
20
20
|
protected _gasUsed: number;
|
|
21
|
-
public readonly pool:
|
|
21
|
+
public readonly pool: SupportedToken;
|
|
22
22
|
public readonly creditManager: CreditManagerData;
|
|
23
23
|
|
|
24
24
|
constructor(opts: {
|
|
25
25
|
gasUsed: number;
|
|
26
|
-
balances: Record<
|
|
27
|
-
pool:
|
|
26
|
+
balances: Record<SupportedToken, BigNumber>;
|
|
27
|
+
pool: SupportedToken;
|
|
28
28
|
creditManager: CreditManagerData;
|
|
29
29
|
}) {
|
|
30
30
|
this._gasUsed = opts.gasUsed;
|
|
@@ -44,7 +44,7 @@ export class Path {
|
|
|
44
44
|
// Get token type of this token
|
|
45
45
|
// switch (type) {
|
|
46
46
|
// case TokenType.YearnValut:
|
|
47
|
-
// const assetPathClass = new
|
|
47
|
+
// const assetPathClass = new YearnPathAsset();
|
|
48
48
|
// return assetPathClass.getBestPath(this);
|
|
49
49
|
// ...
|
|
50
50
|
|