@gearbox-protocol/sdk 0.0.41 → 0.0.44
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 +35 -66
- package/lib/core/contracts.js +174 -106
- 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/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 +43 -5
- package/lib/core/token.js +631 -44
- package/lib/core/tokenData.d.ts +2 -2
- package/lib/core/tradeTypes.d.ts +59 -0
- package/lib/core/tradeTypes.js +18 -0
- package/lib/index.d.ts +1 -2
- package/lib/index.js +2 -3
- package/package.json +1 -1
- package/src/core/adapters.ts +16 -0
- package/src/core/contracts.ts +252 -143
- package/src/core/contractsRegister.ts +10 -17
- package/src/core/oracles.ts +5 -5
- package/src/core/pathfinder.ts +5 -5
- package/src/core/priceFeeds.ts +442 -412
- package/src/core/protocols.ts +40 -0
- package/src/core/token.ts +724 -93
- package/src/core/tokenData.ts +2 -2
- package/src/core/tradeTypes.ts +83 -0
- package/src/index.ts +1 -2
- package/lib/devops/loggedDeployer.d.ts +0 -7
- package/lib/devops/loggedDeployer.js +0 -22
- package/lib/devops/verifierDeployer.d.ts +0 -13
- package/lib/devops/verifierDeployer.js +0 -160
- package/src/devops/loggedDeployer.ts +0 -22
- package/src/devops/verifierDeployer.ts +0 -74
package/lib/core/tokenData.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BigNumber } from "ethers";
|
|
2
2
|
import { TokenDataPayload } from "../payload/token";
|
|
3
3
|
import { NetworkType } from "./constants";
|
|
4
|
-
import {
|
|
4
|
+
import { SupportedToken } from "./token";
|
|
5
5
|
export declare class TokenData {
|
|
6
6
|
readonly id: string;
|
|
7
7
|
readonly symbol: string;
|
|
@@ -24,5 +24,5 @@ export interface TokenSavedData {
|
|
|
24
24
|
type: TokenType;
|
|
25
25
|
}
|
|
26
26
|
export declare const WETHToken: Record<NetworkType, string>;
|
|
27
|
-
export declare const connectors: Record<NetworkType, Array<
|
|
27
|
+
export declare const connectors: Record<NetworkType, Array<SupportedToken>>;
|
|
28
28
|
export declare function getConnectors(networkType: NetworkType): string[];
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ConvexPoolContract, CurvePoolContract, UniswapV2Contract, YearnVaultContract } from "./contracts";
|
|
2
|
+
import { NormalToken, CurveLPToken, YearnLPToken, ConvexLPToken, ConvexStakedPhantomToken } from "./token";
|
|
3
|
+
export declare enum TradeType {
|
|
4
|
+
UniswapV2Swap = 0,
|
|
5
|
+
UniswapV3Swap = 1,
|
|
6
|
+
CurveExchange = 2,
|
|
7
|
+
CurveExchangeUnderlying = 3,
|
|
8
|
+
CurveDepositLP = 4,
|
|
9
|
+
CurveWithdrawLP = 5,
|
|
10
|
+
YearnDeposit = 6,
|
|
11
|
+
YearnWithdraw = 7,
|
|
12
|
+
LidoStake = 8,
|
|
13
|
+
ConvexDeposit = 9,
|
|
14
|
+
ConvexStake = 10,
|
|
15
|
+
ConvexDepositAndStake = 11
|
|
16
|
+
}
|
|
17
|
+
export declare type TradeAction = {
|
|
18
|
+
type: TradeType.UniswapV2Swap;
|
|
19
|
+
contract: UniswapV2Contract;
|
|
20
|
+
} | {
|
|
21
|
+
type: TradeType.UniswapV3Swap;
|
|
22
|
+
contract: "UNISWAP_V3_ROUTER";
|
|
23
|
+
} | {
|
|
24
|
+
type: TradeType.CurveExchange;
|
|
25
|
+
contract: CurvePoolContract;
|
|
26
|
+
tokenOut: Array<NormalToken | CurveLPToken>;
|
|
27
|
+
} | {
|
|
28
|
+
type: TradeType.CurveDepositLP;
|
|
29
|
+
contract: CurvePoolContract;
|
|
30
|
+
tokenOut: CurveLPToken;
|
|
31
|
+
} | {
|
|
32
|
+
type: TradeType.CurveWithdrawLP;
|
|
33
|
+
contract: CurvePoolContract;
|
|
34
|
+
tokenOut: Array<CurveLPToken | NormalToken>;
|
|
35
|
+
} | {
|
|
36
|
+
type: TradeType.YearnDeposit;
|
|
37
|
+
contract: YearnVaultContract;
|
|
38
|
+
tokenOut: YearnLPToken;
|
|
39
|
+
} | {
|
|
40
|
+
type: TradeType.YearnWithdraw;
|
|
41
|
+
contract: YearnVaultContract;
|
|
42
|
+
tokenOut: NormalToken | CurveLPToken;
|
|
43
|
+
} | {
|
|
44
|
+
type: TradeType.LidoStake;
|
|
45
|
+
contract: "LIDO_STETH_GATEWAY";
|
|
46
|
+
tokenOut: NormalToken;
|
|
47
|
+
} | {
|
|
48
|
+
type: TradeType.ConvexDeposit;
|
|
49
|
+
contract: ConvexPoolContract;
|
|
50
|
+
tokenOut: ConvexLPToken;
|
|
51
|
+
} | {
|
|
52
|
+
type: TradeType.ConvexStake;
|
|
53
|
+
contract: ConvexPoolContract;
|
|
54
|
+
tokenOut: ConvexStakedPhantomToken;
|
|
55
|
+
} | {
|
|
56
|
+
type: TradeType.ConvexDepositAndStake;
|
|
57
|
+
contract: ConvexPoolContract;
|
|
58
|
+
tokenOut: ConvexStakedPhantomToken;
|
|
59
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TradeType = void 0;
|
|
4
|
+
var TradeType;
|
|
5
|
+
(function (TradeType) {
|
|
6
|
+
TradeType[TradeType["UniswapV2Swap"] = 0] = "UniswapV2Swap";
|
|
7
|
+
TradeType[TradeType["UniswapV3Swap"] = 1] = "UniswapV3Swap";
|
|
8
|
+
TradeType[TradeType["CurveExchange"] = 2] = "CurveExchange";
|
|
9
|
+
TradeType[TradeType["CurveExchangeUnderlying"] = 3] = "CurveExchangeUnderlying";
|
|
10
|
+
TradeType[TradeType["CurveDepositLP"] = 4] = "CurveDepositLP";
|
|
11
|
+
TradeType[TradeType["CurveWithdrawLP"] = 5] = "CurveWithdrawLP";
|
|
12
|
+
TradeType[TradeType["YearnDeposit"] = 6] = "YearnDeposit";
|
|
13
|
+
TradeType[TradeType["YearnWithdraw"] = 7] = "YearnWithdraw";
|
|
14
|
+
TradeType[TradeType["LidoStake"] = 8] = "LidoStake";
|
|
15
|
+
TradeType[TradeType["ConvexDeposit"] = 9] = "ConvexDeposit";
|
|
16
|
+
TradeType[TradeType["ConvexStake"] = 10] = "ConvexStake";
|
|
17
|
+
TradeType[TradeType["ConvexDepositAndStake"] = 11] = "ConvexDepositAndStake";
|
|
18
|
+
})(TradeType = exports.TradeType || (exports.TradeType = {}));
|
package/lib/index.d.ts
CHANGED
|
@@ -28,10 +28,9 @@ export * from "./utils/math";
|
|
|
28
28
|
export * from "./core/creditCard";
|
|
29
29
|
export * from "./payload/graphPayload";
|
|
30
30
|
export * from "./types/index";
|
|
31
|
-
export * from "./devops/verifierDeployer";
|
|
32
31
|
export type { IAppPoolService, IAppCreditManager, IAppERC20, IAppAddressProvider, IDataCompressor, IWETHGateway } from "./types";
|
|
33
32
|
export * from "./core/history";
|
|
34
33
|
export { MultiCallContract } from "./utils/multicall";
|
|
35
34
|
export { callRepeater } from "./utils/repeater";
|
|
36
35
|
export { getContractName } from "./core/contractsRegister";
|
|
37
|
-
export { AdapterInterface } from "./core/
|
|
36
|
+
export { AdapterInterface } from "./core/adapters";
|
package/lib/index.js
CHANGED
|
@@ -45,7 +45,6 @@ __exportStar(require("./utils/math"), exports);
|
|
|
45
45
|
__exportStar(require("./core/creditCard"), exports);
|
|
46
46
|
__exportStar(require("./payload/graphPayload"), exports);
|
|
47
47
|
__exportStar(require("./types/index"), exports);
|
|
48
|
-
__exportStar(require("./devops/verifierDeployer"), exports);
|
|
49
48
|
__exportStar(require("./core/history"), exports);
|
|
50
49
|
var multicall_1 = require("./utils/multicall");
|
|
51
50
|
Object.defineProperty(exports, "MultiCallContract", { enumerable: true, get: function () { return multicall_1.MultiCallContract; } });
|
|
@@ -53,5 +52,5 @@ var repeater_1 = require("./utils/repeater");
|
|
|
53
52
|
Object.defineProperty(exports, "callRepeater", { enumerable: true, get: function () { return repeater_1.callRepeater; } });
|
|
54
53
|
var contractsRegister_1 = require("./core/contractsRegister");
|
|
55
54
|
Object.defineProperty(exports, "getContractName", { enumerable: true, get: function () { return contractsRegister_1.getContractName; } });
|
|
56
|
-
var
|
|
57
|
-
Object.defineProperty(exports, "AdapterInterface", { enumerable: true, get: function () { return
|
|
55
|
+
var adapters_1 = require("./core/adapters");
|
|
56
|
+
Object.defineProperty(exports, "AdapterInterface", { enumerable: true, get: function () { return adapters_1.AdapterInterface; } });
|
package/package.json
CHANGED
|
@@ -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,171 +4,280 @@
|
|
|
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
|
+
ConvexStakedPhantomToken,
|
|
12
|
+
CurveLPToken,
|
|
13
|
+
NormalToken,
|
|
14
|
+
tokenDataByNetwork
|
|
15
|
+
} from "./token";
|
|
16
|
+
|
|
17
|
+
export type UniswapV2Contract = "UNISWAP_V2_ROUTER" | "SUSHISWAP_ROUTER";
|
|
18
|
+
|
|
19
|
+
export type CurvePoolContract =
|
|
20
|
+
| "CURVE_3POOL"
|
|
21
|
+
| "CURVE_STETH_GATEWAY"
|
|
22
|
+
| "CURVE_FRAX"
|
|
23
|
+
| "CURVE_LUSD"
|
|
24
|
+
| "CURVE_GUSD"
|
|
25
|
+
| "CURVE_SUSD";
|
|
26
|
+
|
|
27
|
+
export type YearnVaultContract =
|
|
28
|
+
| "YEARN_DAI"
|
|
29
|
+
| "YEARN_USDC"
|
|
30
|
+
| "YEARN_WETH"
|
|
31
|
+
| "YEARN_WBTC"
|
|
32
|
+
| "YEARN_CURVE_FRAX"
|
|
33
|
+
| "YEARN_CURVE_STETH";
|
|
34
|
+
|
|
35
|
+
export type ConvexPoolContract =
|
|
36
|
+
| "CONVEX_3CRV"
|
|
37
|
+
| "CONVEX_GUSD"
|
|
38
|
+
| "CONVEX_SUSD"
|
|
39
|
+
| "CONVEX_STECRV"
|
|
40
|
+
| "CONVEX_FRAX3CRV";
|
|
41
|
+
|
|
42
|
+
export type SupportedContract =
|
|
43
|
+
| UniswapV2Contract
|
|
44
|
+
| "UNISWAP_V3_ROUTER"
|
|
45
|
+
| CurvePoolContract
|
|
46
|
+
| YearnVaultContract
|
|
47
|
+
| "CONVEX_BOOSTER"
|
|
48
|
+
| ConvexPoolContract
|
|
49
|
+
| "CONVEX_CLAIM_ZAP"
|
|
50
|
+
| "LIDO_STETH_GATEWAY";
|
|
51
|
+
|
|
52
|
+
export const contractsByNetwork: Record<
|
|
53
|
+
NetworkType,
|
|
54
|
+
Record<SupportedContract, string>
|
|
55
|
+
> = {
|
|
56
|
+
Mainnet: {
|
|
57
|
+
UNISWAP_V2_ROUTER: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
|
|
58
|
+
UNISWAP_V3_ROUTER: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
|
|
59
|
+
SUSHISWAP_ROUTER: "0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F",
|
|
60
|
+
|
|
61
|
+
// CURVE
|
|
62
|
+
CURVE_3POOL: "0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7", // SEPARATE TOKEN
|
|
63
|
+
CURVE_STETH_GATEWAY: "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022", // SEPARATE TOKEN
|
|
64
|
+
CURVE_FRAX: tokenDataByNetwork.Mainnet.FRAX3CRV,
|
|
65
|
+
CURVE_LUSD: tokenDataByNetwork.Mainnet.LUSD3CRV,
|
|
66
|
+
CURVE_SUSD: "0xA5407eAE9Ba41422680e2e00537571bcC53efBfD", // SEPARATE TOKEN
|
|
67
|
+
CURVE_GUSD: "0x4f062658EaAF2C1ccf8C8e36D6824CDf41167956", // SEPARATE TOKEN
|
|
68
|
+
|
|
69
|
+
// YEARN
|
|
70
|
+
YEARN_DAI: tokenDataByNetwork.Mainnet.yvDAI,
|
|
71
|
+
YEARN_USDC: tokenDataByNetwork.Mainnet.yvUSDC,
|
|
72
|
+
YEARN_WETH: tokenDataByNetwork.Mainnet.yvWETH,
|
|
73
|
+
YEARN_WBTC: tokenDataByNetwork.Mainnet.yvWBTC,
|
|
74
|
+
YEARN_CURVE_FRAX: tokenDataByNetwork.Mainnet.yvCurve_FRAX,
|
|
75
|
+
YEARN_CURVE_STETH: tokenDataByNetwork.Mainnet.yvCurve_stETH,
|
|
76
|
+
|
|
77
|
+
// CONVEX
|
|
78
|
+
CONVEX_BOOSTER: "0xF403C135812408BFbE8713b5A23a04b3D48AAE31",
|
|
79
|
+
CONVEX_3CRV: "0x689440f2Ff927E1f24c72F1087E1FAF471eCe1c8",
|
|
80
|
+
CONVEX_GUSD: "0x7A7bBf95C44b144979360C3300B54A7D34b44985",
|
|
81
|
+
CONVEX_SUSD: "0x22eE18aca7F3Ee920D01F25dA85840D12d98E8Ca",
|
|
82
|
+
CONVEX_STECRV: "0x0A760466E1B4621579a82a39CB56Dda2F4E70f03",
|
|
83
|
+
CONVEX_FRAX3CRV: "0xB900EF131301B307dB5eFcbed9DBb50A3e209B2e",
|
|
84
|
+
CONVEX_CLAIM_ZAP: "0x92Cf9E5e4D1Dfbf7dA0d2BB3e884a68416a65070",
|
|
85
|
+
|
|
86
|
+
// LIDO
|
|
87
|
+
LIDO_STETH_GATEWAY: "0xae7ab96520de3a18e5e111b5eaab095312d7fe84"
|
|
88
|
+
},
|
|
89
|
+
Kovan: {
|
|
90
|
+
UNISWAP_V2_ROUTER: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
|
|
91
|
+
UNISWAP_V3_ROUTER: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
|
|
92
|
+
SUSHISWAP_ROUTER: "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506",
|
|
93
|
+
|
|
94
|
+
// CURVE
|
|
95
|
+
CURVE_3POOL: "0x769C784D1e958672bDef04cf12Fd5399b3db0f27",
|
|
96
|
+
CURVE_STETH_GATEWAY: "0xF695d3aa358D5087A0C157DBb9449d4f0d8E534a",
|
|
97
|
+
CURVE_FRAX: "",
|
|
98
|
+
CURVE_LUSD: tokenDataByNetwork.Kovan.LUSD3CRV,
|
|
99
|
+
CURVE_SUSD: "0x032f1cE00865F3499C0052ceBA5F2348842416DB", // SEPARATE TOKEN
|
|
100
|
+
CURVE_GUSD: "",
|
|
101
|
+
|
|
102
|
+
// YEARN
|
|
103
|
+
YEARN_DAI: tokenDataByNetwork.Kovan.yvDAI,
|
|
104
|
+
YEARN_USDC: tokenDataByNetwork.Kovan.yvUSDC,
|
|
105
|
+
YEARN_WETH: tokenDataByNetwork.Kovan.yvWETH,
|
|
106
|
+
YEARN_WBTC: tokenDataByNetwork.Kovan.yvWBTC,
|
|
107
|
+
YEARN_CURVE_FRAX: tokenDataByNetwork.Kovan.yvCurve_FRAX,
|
|
108
|
+
YEARN_CURVE_STETH: tokenDataByNetwork.Kovan.yvCurve_stETH,
|
|
109
|
+
|
|
110
|
+
// CONVEX
|
|
111
|
+
CONVEX_BOOSTER: "0x78A9261965F048b9FF055699569be4400EEC7005",
|
|
112
|
+
CONVEX_3CRV: "0x90D9E8ecc406cd7363C08fAdb4ac0f3994b4cA71",
|
|
113
|
+
CONVEX_GUSD: "",
|
|
114
|
+
CONVEX_SUSD: "",
|
|
115
|
+
CONVEX_STECRV: "0x0f64e188BFF97e09C71FF85f30509f5596D420dD",
|
|
116
|
+
CONVEX_FRAX3CRV: "",
|
|
117
|
+
CONVEX_CLAIM_ZAP: "",
|
|
118
|
+
|
|
119
|
+
// LIDO
|
|
120
|
+
LIDO_STETH_GATEWAY: ""
|
|
121
|
+
}
|
|
122
|
+
};
|
|
8
123
|
|
|
9
|
-
export const UNISWAP_V2_ROUTER = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D";
|
|
10
|
-
export const UNISWAP_V3_ROUTER = "0xE592427A0AEce92De3Edee1F18E0157C05861564";
|
|
11
124
|
export const UNISWAP_V3_QUOTER = "0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6";
|
|
12
125
|
|
|
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_POOL_ADDRESS =
|
|
56
|
-
"0x0A760466E1B4621579a82a39CB56Dda2F4E70f03";
|
|
57
|
-
|
|
58
|
-
export const CONVEX_STECRV_KOVAN_POOL_ADDRESS =
|
|
59
|
-
"0x0f64e188BFF97e09C71FF85f30509f5596D420dD";
|
|
60
|
-
|
|
61
|
-
export const CONVEX_BOOSTER_ADDRESS =
|
|
62
|
-
"0xF403C135812408BFbE8713b5A23a04b3D48AAE31";
|
|
63
|
-
|
|
64
|
-
export const CONVEX_3POOL_REWARD_POOL_ADDRESS =
|
|
65
|
-
"0x689440f2Ff927E1f24c72F1087E1FAF471eCe1c8";
|
|
66
|
-
|
|
67
|
-
export const CONVEX_FRAX3CRV_REWARD_POOL_ADDRESS =
|
|
68
|
-
"0xB900EF131301B307dB5eFcbed9DBb50A3e209B2e";
|
|
69
|
-
|
|
70
|
-
export const CONVEX_CLAIM_ZAP_ADDRESS =
|
|
71
|
-
"0x92Cf9E5e4D1Dfbf7dA0d2BB3e884a68416a65070";
|
|
72
|
-
|
|
73
|
-
export const LIDO_STETH_ADDRESS = "0xae7ab96520de3a18e5e111b5eaab095312d7fe84";
|
|
74
|
-
|
|
75
|
-
export enum AdapterInterface {
|
|
76
|
-
NO_SWAP, // 0 - 1
|
|
77
|
-
UNISWAP_V2, // 1 - 2
|
|
78
|
-
UNISWAP_V3, // 2 - 4
|
|
79
|
-
CURVE_V1_2ASSETS, // 3 - 8
|
|
80
|
-
CURVE_V1_3ASSETS, // 4 - 16
|
|
81
|
-
CURVE_V1_4ASSETS, // 5 - 32
|
|
82
|
-
CURVE_V1_STETH, // 6 - 64
|
|
83
|
-
YEARN_V2, // 7 - 128
|
|
84
|
-
CONVEX_V1_BASE_REWARD_POOL, // 8 - 256
|
|
85
|
-
CONVEX_V1_BOOSTER, // 9 - 512
|
|
86
|
-
CONVEX_V1_CLAIM_ZAP, // 10 - 1024
|
|
87
|
-
LIDO_V1 // 11 - 2048
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export type AdapterParams =
|
|
126
|
+
export type ContractParams =
|
|
91
127
|
| {
|
|
92
|
-
|
|
93
|
-
type: AdapterInterface.
|
|
94
|
-
icon: string;
|
|
128
|
+
protocol: Protocols.Uniswap | Protocols.Sushiswap;
|
|
129
|
+
type: AdapterInterface.UNISWAP_V2_ROUTER;
|
|
95
130
|
}
|
|
96
131
|
| {
|
|
97
|
-
|
|
98
|
-
type: AdapterInterface.
|
|
132
|
+
protocol: Protocols.Uniswap;
|
|
133
|
+
type: AdapterInterface.UNISWAP_V3_ROUTER;
|
|
99
134
|
quoter: string;
|
|
100
|
-
icon: string;
|
|
101
135
|
}
|
|
102
136
|
| {
|
|
103
|
-
|
|
104
|
-
type:
|
|
105
|
-
|
|
106
|
-
|
|
137
|
+
protocol: Protocols.Curve;
|
|
138
|
+
type:
|
|
139
|
+
| AdapterInterface.CURVE_V1_2ASSETS
|
|
140
|
+
| AdapterInterface.CURVE_V1_3ASSETS
|
|
141
|
+
| AdapterInterface.CURVE_V1_4ASSETS;
|
|
142
|
+
lpToken: CurveLPToken;
|
|
143
|
+
tokens: Array<NormalToken | CurveLPToken>;
|
|
107
144
|
}
|
|
108
145
|
| {
|
|
109
|
-
|
|
110
|
-
type: AdapterInterface.
|
|
111
|
-
|
|
112
|
-
|
|
146
|
+
protocol: Protocols.Curve;
|
|
147
|
+
type: AdapterInterface.CURVE_V1_STECRV_POOL;
|
|
148
|
+
pool: string;
|
|
149
|
+
poolKovan?: string;
|
|
113
150
|
}
|
|
114
151
|
| {
|
|
115
|
-
|
|
152
|
+
protocol: Protocols.Yearn;
|
|
116
153
|
type: AdapterInterface.YEARN_V2;
|
|
117
|
-
|
|
154
|
+
}
|
|
155
|
+
| {
|
|
156
|
+
protocol: Protocols.Convex;
|
|
157
|
+
type:
|
|
158
|
+
| AdapterInterface.CONVEX_V1_BOOSTER
|
|
159
|
+
| AdapterInterface.CONVEX_V1_CLAIM_ZAP;
|
|
160
|
+
}
|
|
161
|
+
| {
|
|
162
|
+
protocol: Protocols.Convex;
|
|
163
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL;
|
|
164
|
+
stakedToken: ConvexStakedPhantomToken;
|
|
165
|
+
}
|
|
166
|
+
| {
|
|
167
|
+
protocol: Protocols.Lido;
|
|
168
|
+
type: AdapterInterface.LIDO_V1;
|
|
118
169
|
};
|
|
119
170
|
|
|
120
|
-
export const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
type: AdapterInterface.
|
|
124
|
-
icon: "/protocols/uniswap.png"
|
|
171
|
+
export const contractParams: Record<SupportedContract, ContractParams> = {
|
|
172
|
+
UNISWAP_V2_ROUTER: {
|
|
173
|
+
protocol: Protocols.Uniswap,
|
|
174
|
+
type: AdapterInterface.UNISWAP_V2_ROUTER
|
|
125
175
|
},
|
|
126
|
-
|
|
127
|
-
|
|
176
|
+
UNISWAP_V3_ROUTER: {
|
|
177
|
+
protocol: Protocols.Uniswap,
|
|
128
178
|
quoter: UNISWAP_V3_QUOTER,
|
|
129
|
-
type: AdapterInterface.
|
|
130
|
-
icon: "/protocols/uniswap.png"
|
|
179
|
+
type: AdapterInterface.UNISWAP_V3_ROUTER
|
|
131
180
|
},
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
type: AdapterInterface.
|
|
135
|
-
icon: "/protocols/sushi.svg"
|
|
181
|
+
SUSHISWAP_ROUTER: {
|
|
182
|
+
protocol: Protocols.Sushiswap,
|
|
183
|
+
type: AdapterInterface.UNISWAP_V2_ROUTER
|
|
136
184
|
},
|
|
137
|
-
|
|
138
|
-
|
|
185
|
+
CURVE_3POOL: {
|
|
186
|
+
protocol: Protocols.Curve,
|
|
139
187
|
type: AdapterInterface.CURVE_V1_3ASSETS,
|
|
140
|
-
|
|
141
|
-
|
|
188
|
+
lpToken: "3Crv",
|
|
189
|
+
tokens: ["DAI", "USDC", "USDT"]
|
|
142
190
|
},
|
|
143
|
-
|
|
144
|
-
|
|
191
|
+
CURVE_STETH_GATEWAY: {
|
|
192
|
+
protocol: Protocols.Curve,
|
|
193
|
+
type: AdapterInterface.CURVE_V1_STECRV_POOL,
|
|
194
|
+
pool: "",
|
|
195
|
+
poolKovan: ""
|
|
196
|
+
},
|
|
197
|
+
CURVE_FRAX: {
|
|
198
|
+
protocol: Protocols.Curve,
|
|
199
|
+
type: AdapterInterface.CURVE_V1_2ASSETS,
|
|
200
|
+
lpToken: "FRAX3CRV",
|
|
201
|
+
tokens: ["3Crv", "FRAX"]
|
|
202
|
+
},
|
|
203
|
+
CURVE_LUSD: {
|
|
204
|
+
protocol: Protocols.Curve,
|
|
145
205
|
type: AdapterInterface.CURVE_V1_2ASSETS,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
type: AdapterInterface.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
206
|
+
lpToken: "LUSD3CRV",
|
|
207
|
+
tokens: ["3Crv", "FRAX"]
|
|
208
|
+
},
|
|
209
|
+
CURVE_SUSD: {
|
|
210
|
+
protocol: Protocols.Curve,
|
|
211
|
+
type: AdapterInterface.CURVE_V1_2ASSETS,
|
|
212
|
+
lpToken: "crvPlain3andSUSD",
|
|
213
|
+
tokens: ["3Crv", "FRAX"]
|
|
214
|
+
},
|
|
215
|
+
CURVE_GUSD: {
|
|
216
|
+
protocol: Protocols.Curve,
|
|
217
|
+
type: AdapterInterface.CURVE_V1_2ASSETS,
|
|
218
|
+
lpToken: "gusd3CRV",
|
|
219
|
+
tokens: ["3Crv", "FRAX"]
|
|
220
|
+
},
|
|
221
|
+
YEARN_DAI: {
|
|
222
|
+
protocol: Protocols.Yearn,
|
|
223
|
+
type: AdapterInterface.YEARN_V2
|
|
224
|
+
},
|
|
225
|
+
|
|
226
|
+
YEARN_USDC: {
|
|
227
|
+
protocol: Protocols.Yearn,
|
|
228
|
+
type: AdapterInterface.YEARN_V2
|
|
229
|
+
},
|
|
230
|
+
YEARN_WETH: {
|
|
231
|
+
protocol: Protocols.Yearn,
|
|
232
|
+
type: AdapterInterface.YEARN_V2
|
|
233
|
+
},
|
|
234
|
+
YEARN_WBTC: {
|
|
235
|
+
protocol: Protocols.Yearn,
|
|
236
|
+
type: AdapterInterface.YEARN_V2
|
|
237
|
+
},
|
|
238
|
+
YEARN_CURVE_FRAX: {
|
|
239
|
+
protocol: Protocols.Yearn,
|
|
240
|
+
type: AdapterInterface.YEARN_V2
|
|
241
|
+
},
|
|
242
|
+
YEARN_CURVE_STETH: {
|
|
243
|
+
protocol: Protocols.Yearn,
|
|
244
|
+
type: AdapterInterface.YEARN_V2
|
|
245
|
+
},
|
|
246
|
+
CONVEX_BOOSTER: {
|
|
247
|
+
protocol: Protocols.Convex,
|
|
248
|
+
type: AdapterInterface.CONVEX_V1_BOOSTER
|
|
249
|
+
},
|
|
250
|
+
CONVEX_3CRV: {
|
|
251
|
+
protocol: Protocols.Convex,
|
|
252
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
|
|
253
|
+
stakedToken: "stkcvx3Crv"
|
|
254
|
+
},
|
|
255
|
+
CONVEX_GUSD: {
|
|
256
|
+
protocol: Protocols.Convex,
|
|
257
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
|
|
258
|
+
stakedToken: "stkcvxgusd3CRV"
|
|
259
|
+
},
|
|
260
|
+
CONVEX_SUSD: {
|
|
261
|
+
protocol: Protocols.Convex,
|
|
262
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
|
|
263
|
+
stakedToken: "stkcvxcrvPlain3andSUSD"
|
|
264
|
+
},
|
|
265
|
+
CONVEX_STECRV: {
|
|
266
|
+
protocol: Protocols.Convex,
|
|
267
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
|
|
268
|
+
stakedToken: "stkcvxsteCRV"
|
|
269
|
+
},
|
|
270
|
+
CONVEX_FRAX3CRV: {
|
|
271
|
+
protocol: Protocols.Convex,
|
|
272
|
+
type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
|
|
273
|
+
stakedToken: "stkcvxFRAX3CRV"
|
|
274
|
+
},
|
|
275
|
+
CONVEX_CLAIM_ZAP: {
|
|
276
|
+
protocol: Protocols.Convex,
|
|
277
|
+
type: AdapterInterface.CONVEX_V1_CLAIM_ZAP
|
|
278
|
+
},
|
|
279
|
+
LIDO_STETH_GATEWAY: {
|
|
280
|
+
protocol: Protocols.Lido,
|
|
281
|
+
type: AdapterInterface.LIDO_V1
|
|
173
282
|
}
|
|
174
283
|
};
|
|
@@ -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 = {
|