@gearbox-protocol/sdk 0.0.65 → 0.0.68

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.
Files changed (67) hide show
  1. package/lib/contracts/adapters.d.ts +15 -0
  2. package/lib/contracts/adapters.js +19 -0
  3. package/lib/contracts/contracts.d.ts +60 -0
  4. package/lib/contracts/contracts.js +242 -0
  5. package/lib/contracts/contractsRegister.d.ts +2 -0
  6. package/lib/contracts/contractsRegister.js +58 -0
  7. package/lib/contracts/protocols.d.ts +13 -0
  8. package/lib/contracts/protocols.js +39 -0
  9. package/lib/core/contracts.js +3 -3
  10. package/lib/core/events.js +1 -1
  11. package/lib/core/tradeTypes.d.ts +1 -1
  12. package/lib/core/transactions.js +1 -1
  13. package/lib/index.d.ts +8 -9
  14. package/lib/index.js +10 -10
  15. package/lib/oracles/oracles.d.ts +38 -0
  16. package/lib/oracles/oracles.js +12 -0
  17. package/lib/oracles/priceFeeds.d.ts +3 -0
  18. package/lib/oracles/priceFeeds.js +492 -0
  19. package/lib/pathfinder/convexLP.d.ts +1 -1
  20. package/lib/pathfinder/convexLP.js +2 -20
  21. package/lib/pathfinder/curveLP.d.ts +2 -2
  22. package/lib/pathfinder/curveLP.js +8 -27
  23. package/lib/pathfinder/path.d.ts +2 -8
  24. package/lib/pathfinder/path.js +27 -34
  25. package/lib/pathfinder/trade.d.ts +35 -0
  26. package/lib/pathfinder/trade.js +62 -0
  27. package/lib/pathfinder/tradeTypes.d.ts +83 -0
  28. package/lib/pathfinder/tradeTypes.js +26 -0
  29. package/lib/pathfinder/yVault.d.ts +1 -1
  30. package/lib/pathfinder/yVault.js +4 -23
  31. package/lib/tokens/convex.d.ts +2 -2
  32. package/lib/tokens/convex.js +1 -1
  33. package/lib/tokens/curveLP.d.ts +1 -1
  34. package/lib/tokens/curveLP.js +1 -1
  35. package/lib/tokens/gear.d.ts +1 -1
  36. package/lib/tokens/normal.d.ts +1 -1
  37. package/lib/tokens/normal.js +1 -1
  38. package/lib/tokens/token.d.ts +1 -1
  39. package/lib/tokens/token.js +5 -5
  40. package/lib/tokens/yearn.d.ts +2 -2
  41. package/lib/tokens/yearn.js +3 -3
  42. package/package.json +1 -1
  43. package/src/{core → contracts}/adapters.ts +0 -0
  44. package/src/{core → contracts}/contracts.ts +6 -6
  45. package/src/{core → contracts}/contractsRegister.ts +0 -0
  46. package/src/{core → contracts}/protocols.ts +0 -0
  47. package/src/core/events.ts +932 -915
  48. package/src/core/transactions.ts +360 -352
  49. package/src/index.ts +8 -9
  50. package/src/{core → oracles}/oracles.ts +0 -0
  51. package/src/oracles/priceFeeds.ts +528 -0
  52. package/src/pathfinder/convexLP.ts +1 -1
  53. package/src/pathfinder/curveLP.ts +3 -4
  54. package/src/pathfinder/path.ts +23 -53
  55. package/src/pathfinder/trade.ts +83 -0
  56. package/src/{core → pathfinder}/tradeTypes.ts +6 -6
  57. package/src/pathfinder/yVault.ts +1 -2
  58. package/src/tokens/convex.ts +2 -2
  59. package/src/tokens/curveLP.ts +1 -1
  60. package/src/tokens/gear.ts +1 -1
  61. package/src/tokens/normal.ts +1 -1
  62. package/src/tokens/token.ts +17 -7
  63. package/src/tokens/yearn.ts +4 -4
  64. package/src/core/creditCard.ts +0 -15
  65. package/src/core/priceFeeds.ts +0 -528
  66. package/src/core/swap.ts +0 -4
  67. package/src/core/trade.ts +0 -83
@@ -0,0 +1,15 @@
1
+ export declare enum AdapterInterface {
2
+ NO_SWAP = 0,
3
+ UNISWAP_V2_ROUTER = 1,
4
+ UNISWAP_V3_ROUTER = 2,
5
+ CURVE_V1_2ASSETS = 3,
6
+ CURVE_V1_3ASSETS = 4,
7
+ CURVE_V1_4ASSETS = 5,
8
+ CURVE_V1_WRAPPER = 6,
9
+ CURVE_V1_STECRV_POOL = 7,
10
+ YEARN_V2 = 8,
11
+ CONVEX_V1_BASE_REWARD_POOL = 9,
12
+ CONVEX_V1_BOOSTER = 10,
13
+ CONVEX_V1_CLAIM_ZAP = 11,
14
+ LIDO_V1 = 12
15
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdapterInterface = void 0;
4
+ var AdapterInterface;
5
+ (function (AdapterInterface) {
6
+ AdapterInterface[AdapterInterface["NO_SWAP"] = 0] = "NO_SWAP";
7
+ AdapterInterface[AdapterInterface["UNISWAP_V2_ROUTER"] = 1] = "UNISWAP_V2_ROUTER";
8
+ AdapterInterface[AdapterInterface["UNISWAP_V3_ROUTER"] = 2] = "UNISWAP_V3_ROUTER";
9
+ AdapterInterface[AdapterInterface["CURVE_V1_2ASSETS"] = 3] = "CURVE_V1_2ASSETS";
10
+ AdapterInterface[AdapterInterface["CURVE_V1_3ASSETS"] = 4] = "CURVE_V1_3ASSETS";
11
+ AdapterInterface[AdapterInterface["CURVE_V1_4ASSETS"] = 5] = "CURVE_V1_4ASSETS";
12
+ AdapterInterface[AdapterInterface["CURVE_V1_WRAPPER"] = 6] = "CURVE_V1_WRAPPER";
13
+ AdapterInterface[AdapterInterface["CURVE_V1_STECRV_POOL"] = 7] = "CURVE_V1_STECRV_POOL";
14
+ AdapterInterface[AdapterInterface["YEARN_V2"] = 8] = "YEARN_V2";
15
+ AdapterInterface[AdapterInterface["CONVEX_V1_BASE_REWARD_POOL"] = 9] = "CONVEX_V1_BASE_REWARD_POOL";
16
+ AdapterInterface[AdapterInterface["CONVEX_V1_BOOSTER"] = 10] = "CONVEX_V1_BOOSTER";
17
+ AdapterInterface[AdapterInterface["CONVEX_V1_CLAIM_ZAP"] = 11] = "CONVEX_V1_CLAIM_ZAP";
18
+ AdapterInterface[AdapterInterface["LIDO_V1"] = 12] = "LIDO_V1"; // 11 - 2048
19
+ })(AdapterInterface = exports.AdapterInterface || (exports.AdapterInterface = {}));
@@ -0,0 +1,60 @@
1
+ import { AdapterInterface } from "./adapters";
2
+ import { NetworkType } from "../core/constants";
3
+ import { Protocols } from "./protocols";
4
+ import { ConvexStakedPhantomToken } from "../tokens/convex";
5
+ import { CurveLPToken } from "../tokens/curveLP";
6
+ import { NormalToken } from "../tokens/normal";
7
+ export declare type UniswapV2Contract = "UNISWAP_V2_ROUTER" | "SUSHISWAP_ROUTER";
8
+ export declare type CurvePoolContract = "CURVE_3CRV_POOL" | "CURVE_STETH_GATEWAY" | "CURVE_FRAX_POOL" | "CURVE_LUSD_POOL" | "CURVE_GUSD_POOL" | "CURVE_SUSD_POOL" | "CURVE_SUSD_DEPOSIT";
9
+ export declare type YearnVaultContract = "YEARN_DAI_VAULT" | "YEARN_USDC_VAULT" | "YEARN_WETH_VAULT" | "YEARN_WBTC_VAULT" | "YEARN_CURVE_FRAX_VAULT" | "YEARN_CURVE_STETH_VAULT";
10
+ export declare type ConvexPoolContract = "CONVEX_3CRV_POOL" | "CONVEX_GUSD_POOL" | "CONVEX_SUSD_POOL" | "CONVEX_STECRV_POOL" | "CONVEX_FRAX3CRV_POOL";
11
+ export declare type SupportedContract = UniswapV2Contract | "UNISWAP_V3_ROUTER" | CurvePoolContract | YearnVaultContract | "CONVEX_BOOSTER" | ConvexPoolContract | "CONVEX_CLAIM_ZAP" | "LIDO_STETH_GATEWAY";
12
+ export declare const contractsByNetwork: Record<NetworkType, Record<SupportedContract, string>>;
13
+ export declare const UNISWAP_V3_QUOTER = "0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6";
14
+ export interface BaseContractParams {
15
+ name: string;
16
+ }
17
+ declare type UniswapV2Params = {
18
+ protocol: Protocols.Uniswap | Protocols.Sushiswap;
19
+ type: AdapterInterface.UNISWAP_V2_ROUTER;
20
+ } & BaseContractParams;
21
+ declare type UniswapV3Params = {
22
+ protocol: Protocols.Uniswap;
23
+ type: AdapterInterface.UNISWAP_V3_ROUTER;
24
+ quoter: string;
25
+ } & BaseContractParams;
26
+ export declare type CurveParams = {
27
+ protocol: Protocols.Curve;
28
+ type: AdapterInterface.CURVE_V1_2ASSETS | AdapterInterface.CURVE_V1_3ASSETS | AdapterInterface.CURVE_V1_4ASSETS | AdapterInterface.CURVE_V1_WRAPPER;
29
+ lpToken: CurveLPToken;
30
+ tokens: Array<NormalToken | CurveLPToken>;
31
+ wrapper?: CurvePoolContract;
32
+ } & BaseContractParams;
33
+ export declare type CurveSteCRVPoolParams = {
34
+ protocol: Protocols.Curve;
35
+ type: AdapterInterface.CURVE_V1_STECRV_POOL;
36
+ pool: Record<NetworkType, string>;
37
+ lpToken: "steCRV";
38
+ } & BaseContractParams;
39
+ declare type YearnParams = {
40
+ protocol: Protocols.Yearn;
41
+ type: AdapterInterface.YEARN_V2;
42
+ } & BaseContractParams;
43
+ declare type ConvexParams = {
44
+ protocol: Protocols.Convex;
45
+ type: AdapterInterface.CONVEX_V1_BOOSTER | AdapterInterface.CONVEX_V1_CLAIM_ZAP;
46
+ } & BaseContractParams;
47
+ declare type ConvexPoolParams = {
48
+ protocol: Protocols.Convex;
49
+ type: AdapterInterface.CONVEX_V1_BASE_REWARD_POOL;
50
+ stakedToken: ConvexStakedPhantomToken;
51
+ } & BaseContractParams;
52
+ export declare type LidoParams = {
53
+ protocol: Protocols.Lido;
54
+ type: AdapterInterface.LIDO_V1;
55
+ lpToken: "steCRV";
56
+ } & BaseContractParams;
57
+ export declare type ContractParams = UniswapV2Params | UniswapV3Params | CurveParams | CurveSteCRVPoolParams | YearnParams | ConvexParams | ConvexPoolParams | LidoParams;
58
+ export declare const contractParams: Record<SupportedContract, ContractParams>;
59
+ export declare const contractsByAddress: Record<string, SupportedContract>;
60
+ export {};
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.contractsByAddress = exports.contractParams = exports.UNISWAP_V3_QUOTER = exports.contractsByNetwork = void 0;
15
+ /*
16
+ * SPDX-License-Identifier: BSL-1.1
17
+ * Gearbox. Generalized leverage protocol, which allows to take leverage and then use it across other DeFi protocols and platforms in a composable way.
18
+ * (c) Gearbox.fi, 2021
19
+ */
20
+ var mappers_1 = require("../utils/mappers");
21
+ var adapters_1 = require("./adapters");
22
+ var protocols_1 = require("./protocols");
23
+ var token_1 = require("../tokens/token");
24
+ exports.contractsByNetwork = {
25
+ Mainnet: {
26
+ UNISWAP_V2_ROUTER: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
27
+ UNISWAP_V3_ROUTER: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
28
+ SUSHISWAP_ROUTER: "0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F",
29
+ // CURVE
30
+ CURVE_3CRV_POOL: "0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7",
31
+ CURVE_STETH_GATEWAY: "0xB949Ef5b39164537ee97BF17b968e465368C97AD",
32
+ CURVE_FRAX_POOL: token_1.tokenDataByNetwork.Mainnet.FRAX3CRV,
33
+ CURVE_LUSD_POOL: token_1.tokenDataByNetwork.Mainnet.LUSD3CRV,
34
+ CURVE_SUSD_POOL: "0xA5407eAE9Ba41422680e2e00537571bcC53efBfD",
35
+ CURVE_GUSD_POOL: "0x4f062658EaAF2C1ccf8C8e36D6824CDf41167956",
36
+ // YEARN
37
+ YEARN_DAI_VAULT: token_1.tokenDataByNetwork.Mainnet.yvDAI,
38
+ YEARN_USDC_VAULT: token_1.tokenDataByNetwork.Mainnet.yvUSDC,
39
+ YEARN_WETH_VAULT: token_1.tokenDataByNetwork.Mainnet.yvWETH,
40
+ YEARN_WBTC_VAULT: token_1.tokenDataByNetwork.Mainnet.yvWBTC,
41
+ YEARN_CURVE_FRAX_VAULT: token_1.tokenDataByNetwork.Mainnet.yvCurve_FRAX,
42
+ YEARN_CURVE_STETH_VAULT: token_1.tokenDataByNetwork.Mainnet.yvCurve_stETH,
43
+ // CONVEX
44
+ CONVEX_BOOSTER: "0xF403C135812408BFbE8713b5A23a04b3D48AAE31",
45
+ CONVEX_3CRV_POOL: "0x689440f2Ff927E1f24c72F1087E1FAF471eCe1c8",
46
+ CONVEX_GUSD_POOL: "0x7A7bBf95C44b144979360C3300B54A7D34b44985",
47
+ CONVEX_SUSD_POOL: "0x22eE18aca7F3Ee920D01F25dA85840D12d98E8Ca",
48
+ CURVE_SUSD_DEPOSIT: "0xFCBa3E75865d2d561BE8D220616520c171F12851",
49
+ CONVEX_STECRV_POOL: "0x0A760466E1B4621579a82a39CB56Dda2F4E70f03",
50
+ CONVEX_FRAX3CRV_POOL: "0xB900EF131301B307dB5eFcbed9DBb50A3e209B2e",
51
+ CONVEX_CLAIM_ZAP: "0x92Cf9E5e4D1Dfbf7dA0d2BB3e884a68416a65070",
52
+ // LIDO
53
+ LIDO_STETH_GATEWAY: "0x55045Eaae19d92680E02231e4Ce7bBEB4814ca64",
54
+ },
55
+ Kovan: {
56
+ UNISWAP_V2_ROUTER: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
57
+ UNISWAP_V3_ROUTER: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
58
+ SUSHISWAP_ROUTER: "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506",
59
+ // CURVE
60
+ CURVE_3CRV_POOL: "0x5544FDA32B8F64262295DD0720A4D36BEB3F438c",
61
+ CURVE_STETH_GATEWAY: "0xa5F7C2D7A1125ae47818A7371F9c48553305b077",
62
+ CURVE_FRAX_POOL: token_1.tokenDataByNetwork.Kovan.FRAX3CRV,
63
+ CURVE_LUSD_POOL: token_1.tokenDataByNetwork.Kovan.LUSD3CRV,
64
+ CURVE_SUSD_POOL: "0xf4fD22A7c99D389e4ddBb8185B59F9D6eF6775c0",
65
+ CURVE_SUSD_DEPOSIT: "0x0558CBb362fbDff28c913D91d0ec11315Ff69b4A",
66
+ CURVE_GUSD_POOL: "0xeB9D96059bd466EBbd0E5EeBdD596566f31EbB7B",
67
+ // YEARN
68
+ YEARN_DAI_VAULT: token_1.tokenDataByNetwork.Kovan.yvDAI,
69
+ YEARN_USDC_VAULT: token_1.tokenDataByNetwork.Kovan.yvUSDC,
70
+ YEARN_WETH_VAULT: token_1.tokenDataByNetwork.Kovan.yvWETH,
71
+ YEARN_WBTC_VAULT: token_1.tokenDataByNetwork.Kovan.yvWBTC,
72
+ YEARN_CURVE_FRAX_VAULT: token_1.tokenDataByNetwork.Kovan.yvCurve_FRAX,
73
+ YEARN_CURVE_STETH_VAULT: token_1.tokenDataByNetwork.Kovan.yvCurve_stETH,
74
+ // CONVEX
75
+ CONVEX_BOOSTER: "",
76
+ CONVEX_3CRV_POOL: "",
77
+ CONVEX_GUSD_POOL: "",
78
+ CONVEX_SUSD_POOL: "",
79
+ CONVEX_STECRV_POOL: "",
80
+ CONVEX_FRAX3CRV_POOL: "",
81
+ CONVEX_CLAIM_ZAP: "",
82
+ // LIDO
83
+ LIDO_STETH_GATEWAY: "0x0aaEB0372c2a32088D4F2c9a6ECfB3fFc7Fa2ffF",
84
+ }
85
+ };
86
+ exports.UNISWAP_V3_QUOTER = "0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6";
87
+ exports.contractParams = {
88
+ UNISWAP_V2_ROUTER: {
89
+ name: "Uniswap V2",
90
+ protocol: protocols_1.Protocols.Uniswap,
91
+ type: adapters_1.AdapterInterface.UNISWAP_V2_ROUTER
92
+ },
93
+ UNISWAP_V3_ROUTER: {
94
+ name: "Uniswap V3",
95
+ protocol: protocols_1.Protocols.Uniswap,
96
+ quoter: exports.UNISWAP_V3_QUOTER,
97
+ type: adapters_1.AdapterInterface.UNISWAP_V3_ROUTER
98
+ },
99
+ SUSHISWAP_ROUTER: {
100
+ name: "Sushiswap",
101
+ protocol: protocols_1.Protocols.Sushiswap,
102
+ type: adapters_1.AdapterInterface.UNISWAP_V2_ROUTER
103
+ },
104
+ CURVE_3CRV_POOL: {
105
+ name: "Curve 3Pool",
106
+ protocol: protocols_1.Protocols.Curve,
107
+ type: adapters_1.AdapterInterface.CURVE_V1_3ASSETS,
108
+ lpToken: "3Crv",
109
+ tokens: ["DAI", "USDC", "USDT"]
110
+ },
111
+ CURVE_STETH_GATEWAY: {
112
+ name: "Curve stETH",
113
+ protocol: protocols_1.Protocols.Curve,
114
+ type: adapters_1.AdapterInterface.CURVE_V1_STECRV_POOL,
115
+ pool: {
116
+ Mainnet: "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022",
117
+ Kovan: "0x39311C60F6EC014b2c954aD469CE61946A3Ee460"
118
+ },
119
+ lpToken: "steCRV"
120
+ },
121
+ CURVE_FRAX_POOL: {
122
+ name: "Curve FRAX",
123
+ protocol: protocols_1.Protocols.Curve,
124
+ type: adapters_1.AdapterInterface.CURVE_V1_2ASSETS,
125
+ lpToken: "FRAX3CRV",
126
+ tokens: ["3Crv", "FRAX"]
127
+ },
128
+ CURVE_LUSD_POOL: {
129
+ name: "Curve LUSD",
130
+ protocol: protocols_1.Protocols.Curve,
131
+ type: adapters_1.AdapterInterface.CURVE_V1_2ASSETS,
132
+ lpToken: "LUSD3CRV",
133
+ tokens: ["3Crv", "LUSD"]
134
+ },
135
+ CURVE_SUSD_POOL: {
136
+ name: "Curve SUSD",
137
+ protocol: protocols_1.Protocols.Curve,
138
+ type: adapters_1.AdapterInterface.CURVE_V1_4ASSETS,
139
+ lpToken: "crvPlain3andSUSD",
140
+ tokens: ["DAI", "USDC", "USDT", "sUSD"],
141
+ wrapper: "CURVE_SUSD_DEPOSIT"
142
+ },
143
+ CURVE_SUSD_DEPOSIT: {
144
+ name: "Curve SUSD",
145
+ protocol: protocols_1.Protocols.Curve,
146
+ type: adapters_1.AdapterInterface.CURVE_V1_WRAPPER,
147
+ lpToken: "crvPlain3andSUSD",
148
+ tokens: ["DAI", "USDC", "USDT", "sUSD"],
149
+ wrapper: "CURVE_SUSD_DEPOSIT"
150
+ },
151
+ CURVE_GUSD_POOL: {
152
+ name: "Curve GUSD",
153
+ protocol: protocols_1.Protocols.Curve,
154
+ type: adapters_1.AdapterInterface.CURVE_V1_2ASSETS,
155
+ lpToken: "gusd3CRV",
156
+ tokens: ["3Crv", "FRAX"]
157
+ },
158
+ YEARN_DAI_VAULT: {
159
+ name: "Yearn DAI",
160
+ protocol: protocols_1.Protocols.Yearn,
161
+ type: adapters_1.AdapterInterface.YEARN_V2
162
+ },
163
+ YEARN_USDC_VAULT: {
164
+ name: "Yearn USDC",
165
+ protocol: protocols_1.Protocols.Yearn,
166
+ type: adapters_1.AdapterInterface.YEARN_V2
167
+ },
168
+ YEARN_WETH_VAULT: {
169
+ name: "Yearn WETH",
170
+ protocol: protocols_1.Protocols.Yearn,
171
+ type: adapters_1.AdapterInterface.YEARN_V2
172
+ },
173
+ YEARN_WBTC_VAULT: {
174
+ name: "Yearn WBTC",
175
+ protocol: protocols_1.Protocols.Yearn,
176
+ type: adapters_1.AdapterInterface.YEARN_V2
177
+ },
178
+ YEARN_CURVE_FRAX_VAULT: {
179
+ name: "Yearn Curve FRAX",
180
+ protocol: protocols_1.Protocols.Yearn,
181
+ type: adapters_1.AdapterInterface.YEARN_V2
182
+ },
183
+ YEARN_CURVE_STETH_VAULT: {
184
+ name: "Yearn Curve STETH",
185
+ protocol: protocols_1.Protocols.Yearn,
186
+ type: adapters_1.AdapterInterface.YEARN_V2
187
+ },
188
+ CONVEX_BOOSTER: {
189
+ name: "Convex BOOSTER",
190
+ protocol: protocols_1.Protocols.Convex,
191
+ type: adapters_1.AdapterInterface.CONVEX_V1_BOOSTER
192
+ },
193
+ CONVEX_3CRV_POOL: {
194
+ name: "Convex 3crv",
195
+ protocol: protocols_1.Protocols.Convex,
196
+ type: adapters_1.AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
197
+ stakedToken: "stkcvx3Crv"
198
+ },
199
+ CONVEX_GUSD_POOL: {
200
+ name: "Convex GUSD",
201
+ protocol: protocols_1.Protocols.Convex,
202
+ type: adapters_1.AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
203
+ stakedToken: "stkcvxgusd3CRV"
204
+ },
205
+ CONVEX_SUSD_POOL: {
206
+ name: "Convex SUSD",
207
+ protocol: protocols_1.Protocols.Convex,
208
+ type: adapters_1.AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
209
+ stakedToken: "stkcvxcrvPlain3andSUSD"
210
+ },
211
+ CONVEX_STECRV_POOL: {
212
+ name: "Convex STECRV",
213
+ protocol: protocols_1.Protocols.Convex,
214
+ type: adapters_1.AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
215
+ stakedToken: "stkcvxsteCRV"
216
+ },
217
+ CONVEX_FRAX3CRV_POOL: {
218
+ name: "Convex FRAX3CRV",
219
+ protocol: protocols_1.Protocols.Convex,
220
+ type: adapters_1.AdapterInterface.CONVEX_V1_BASE_REWARD_POOL,
221
+ stakedToken: "stkcvxFRAX3CRV"
222
+ },
223
+ CONVEX_CLAIM_ZAP: {
224
+ name: "Convex ZAP",
225
+ protocol: protocols_1.Protocols.Convex,
226
+ type: adapters_1.AdapterInterface.CONVEX_V1_CLAIM_ZAP
227
+ },
228
+ LIDO_STETH_GATEWAY: {
229
+ name: "Lido STETH",
230
+ protocol: protocols_1.Protocols.Lido,
231
+ type: adapters_1.AdapterInterface.LIDO_V1,
232
+ // contract: {
233
+ // Mainnet: "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
234
+ // Kovan: ""
235
+ // },
236
+ lpToken: "steCRV"
237
+ }
238
+ };
239
+ exports.contractsByAddress = (0, mappers_1.objectEntries)(exports.contractsByNetwork).reduce(function (sum, _a) {
240
+ var _ = _a[0], contracts = _a[1];
241
+ return __assign(__assign({}, sum), (0, mappers_1.keyToLowercase)((0, mappers_1.swapKeyValue)(contracts)));
242
+ }, {});
@@ -0,0 +1,2 @@
1
+ export declare const deployedContracts: Record<string, string>;
2
+ export declare function getContractName(address: string): string;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getContractName = exports.deployedContracts = void 0;
15
+ var mappers_1 = require("../utils/mappers");
16
+ var contracts_1 = require("./contracts");
17
+ exports.deployedContracts = {
18
+ // MAINNET
19
+ "0x24946bCbBd028D5ABb62ad9B635EB1b1a67AF668": "DAI",
20
+ "0x777E23A2AcB2fCbB35f6ccF98272d03C722Ba6EB": "DAI",
21
+ "0x86130bDD69143D8a4E5fc50bf4323D48049E98E4": "USDC",
22
+ "0x2664cc24CBAd28749B3Dd6fC97A6B402484De527": "USDC",
23
+ "0xB03670c20F87f2169A7c4eBE35746007e9575901": "WETH",
24
+ "0x968f9a68a98819E2e6Bb910466e191A7b6cf02F0": "WETH",
25
+ "0xB2A015c71c17bCAC6af36645DEad8c572bA08A08": "WBTC",
26
+ "0xC38478B0A4bAFE964C3526EEFF534d70E1E09017": "WBTC",
27
+ // [UNISWAP_V2_ROUTER]: "Uniswap V2",
28
+ // [UNISWAP_V3_ROUTER]: "Uniswap V3",
29
+ // [CURVE_3CRV_POOL_ADDRESS]: "Curve 3Pool",
30
+ // [SUSHISWAP_MAINNET]: "Sushiswap",
31
+ // [YEARN_DAI_VAULT_ADDRESS]: "Yearn DAI",
32
+ // [YEARN_USDC_VAULT_ADDRESS]: "Yearn USDC",
33
+ // KOVAN
34
+ "0xc40B71BCcb749D91923654571f715Bf1FC464E66": "DAI",
35
+ "0x1b0c9312FB74d08e57F49Ee5e4601a1846dc2207": "USDC",
36
+ "0x4b20dD834B8898caC2c1B2C94163f14FA866AadC": "WETH",
37
+ "0x2c52bc97485bcb3BeA763Fb5793eF15BA388D140": "WBTC",
38
+ "0xe04b4db67127d1930D36f16B51653120C4285708": "WBTC",
39
+ "0x600073357c29d169aAF3E543A4519749830553F1": "WETH",
40
+ "0xdBAd1361d9A03B81Be8D3a54Ef0dc9e39a1bA5b3": "USDC",
41
+ "0x50d1fA47b0D88BA0D108148B8481b4A762eFB99e": "DAI"
42
+ // [YEARN_DAI_VAULT_KOVAN_MOCK]: "Yearn DAI",
43
+ // [YEARN_USDC_VAULT_KOVAN_MOCK]: "Yearn USDC",
44
+ // [SUSHISWAP_KOVAN]: "Sushiswap"
45
+ };
46
+ var contractNames = Object.entries(contracts_1.contractsByAddress).reduce(function (sum, _a) {
47
+ var _b;
48
+ var addr = _a[0], cSymbol = _a[1];
49
+ var params = contracts_1.contractParams[cSymbol];
50
+ if (!params)
51
+ return sum;
52
+ return __assign(__assign({}, sum), (_b = {}, _b[addr] = params.name, _b));
53
+ }, {});
54
+ var contractsFullList = __assign(__assign({}, (0, mappers_1.keyToLowercase)(exports.deployedContracts)), contractNames);
55
+ function getContractName(address) {
56
+ return contractsFullList[address.toLowerCase()] || address;
57
+ }
58
+ exports.getContractName = getContractName;
@@ -0,0 +1,13 @@
1
+ export declare enum Protocols {
2
+ Uniswap = 0,
3
+ Sushiswap = 1,
4
+ Curve = 2,
5
+ Yearn = 3,
6
+ Convex = 4,
7
+ Lido = 5
8
+ }
9
+ export interface ProtocolData {
10
+ name: string;
11
+ icon: string;
12
+ }
13
+ export declare const protocolData: Record<Protocols, ProtocolData>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.protocolData = exports.Protocols = void 0;
5
+ var Protocols;
6
+ (function (Protocols) {
7
+ Protocols[Protocols["Uniswap"] = 0] = "Uniswap";
8
+ Protocols[Protocols["Sushiswap"] = 1] = "Sushiswap";
9
+ Protocols[Protocols["Curve"] = 2] = "Curve";
10
+ Protocols[Protocols["Yearn"] = 3] = "Yearn";
11
+ Protocols[Protocols["Convex"] = 4] = "Convex";
12
+ Protocols[Protocols["Lido"] = 5] = "Lido";
13
+ })(Protocols = exports.Protocols || (exports.Protocols = {}));
14
+ exports.protocolData = (_a = {},
15
+ _a[Protocols.Uniswap] = {
16
+ name: "Uniswap",
17
+ icon: "/protocols/uniswap.png"
18
+ },
19
+ _a[Protocols.Sushiswap] = {
20
+ name: "Sushiswap",
21
+ icon: "/protocols/sushi.svg"
22
+ },
23
+ _a[Protocols.Curve] = {
24
+ name: "Curve",
25
+ icon: "/protocols/curve.svg"
26
+ },
27
+ _a[Protocols.Yearn] = {
28
+ name: "Yearn",
29
+ icon: "/protocols/yearn.svg"
30
+ },
31
+ _a[Protocols.Convex] = {
32
+ name: "Convex",
33
+ icon: "/protocols/convex.svg"
34
+ },
35
+ _a[Protocols.Lido] = {
36
+ name: "Lido",
37
+ icon: "/protocols/lido.svg"
38
+ },
39
+ _a);
@@ -45,7 +45,7 @@ exports.contractsByNetwork = {
45
45
  CONVEX_3CRV_POOL: "0x689440f2Ff927E1f24c72F1087E1FAF471eCe1c8",
46
46
  CONVEX_GUSD_POOL: "0x7A7bBf95C44b144979360C3300B54A7D34b44985",
47
47
  CONVEX_SUSD_POOL: "0x22eE18aca7F3Ee920D01F25dA85840D12d98E8Ca",
48
- CURVE_SUSD_DEPOSIT: "0x22eE18aca7F3Ee920D01F25dA85840D12d98E8Ca",
48
+ CURVE_SUSD_DEPOSIT: "0xFCBa3E75865d2d561BE8D220616520c171F12851",
49
49
  CONVEX_STECRV_POOL: "0x0A760466E1B4621579a82a39CB56Dda2F4E70f03",
50
50
  CONVEX_FRAX3CRV_POOL: "0xB900EF131301B307dB5eFcbed9DBb50A3e209B2e",
51
51
  CONVEX_CLAIM_ZAP: "0x92Cf9E5e4D1Dfbf7dA0d2BB3e884a68416a65070",
@@ -58,10 +58,11 @@ exports.contractsByNetwork = {
58
58
  SUSHISWAP_ROUTER: "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506",
59
59
  // CURVE
60
60
  CURVE_3CRV_POOL: "0x5544FDA32B8F64262295DD0720A4D36BEB3F438c",
61
- CURVE_STETH_GATEWAY: "",
61
+ CURVE_STETH_GATEWAY: "0xa5F7C2D7A1125ae47818A7371F9c48553305b077",
62
62
  CURVE_FRAX_POOL: token_1.tokenDataByNetwork.Kovan.FRAX3CRV,
63
63
  CURVE_LUSD_POOL: token_1.tokenDataByNetwork.Kovan.LUSD3CRV,
64
64
  CURVE_SUSD_POOL: "0xf4fD22A7c99D389e4ddBb8185B59F9D6eF6775c0",
65
+ CURVE_SUSD_DEPOSIT: "0x0558CBb362fbDff28c913D91d0ec11315Ff69b4A",
65
66
  CURVE_GUSD_POOL: "0xeB9D96059bd466EBbd0E5EeBdD596566f31EbB7B",
66
67
  // YEARN
67
68
  YEARN_DAI_VAULT: token_1.tokenDataByNetwork.Kovan.yvDAI,
@@ -75,7 +76,6 @@ exports.contractsByNetwork = {
75
76
  CONVEX_3CRV_POOL: "",
76
77
  CONVEX_GUSD_POOL: "",
77
78
  CONVEX_SUSD_POOL: "",
78
- CURVE_SUSD_DEPOSIT: "",
79
79
  CONVEX_STECRV_POOL: "",
80
80
  CONVEX_FRAX3CRV_POOL: "",
81
81
  CONVEX_CLAIM_ZAP: "",
@@ -20,7 +20,7 @@ var ethers_1 = require("ethers");
20
20
  var formatter_1 = require("../utils/formatter");
21
21
  var constants_1 = require("./constants");
22
22
  var eventOrTx_1 = require("./eventOrTx");
23
- var contractsRegister_1 = require("./contractsRegister");
23
+ var contractsRegister_1 = require("../contracts/contractsRegister");
24
24
  var EventParser = /** @class */ (function () {
25
25
  function EventParser() {
26
26
  }
@@ -1,4 +1,4 @@
1
- import { ConvexPoolContract, CurvePoolContract, UniswapV2Contract, YearnVaultContract } from "./contracts";
1
+ import { ConvexPoolContract, CurvePoolContract, UniswapV2Contract, YearnVaultContract } from "../contracts/contracts";
2
2
  import { NormalToken } from "../tokens/normal";
3
3
  import { CurveLPToken } from "../tokens/curveLP";
4
4
  import { YearnLPToken } from "../tokens/yearn";
@@ -19,7 +19,7 @@ exports.TxApprove = exports.TxCloseAccount = exports.TxRepayAccount = exports.Tx
19
19
  var ethers_1 = require("ethers");
20
20
  var formatter_1 = require("../utils/formatter");
21
21
  var eventOrTx_1 = require("./eventOrTx");
22
- var contractsRegister_1 = require("./contractsRegister");
22
+ var contractsRegister_1 = require("../contracts/contractsRegister");
23
23
  var constants_1 = require("./constants");
24
24
  var TxSerializer = /** @class */ (function () {
25
25
  function TxSerializer() {
package/lib/index.d.ts CHANGED
@@ -2,19 +2,18 @@ export * from "./core/constants";
2
2
  export * from "./core/creditAccount";
3
3
  export * from "./core/creditManager";
4
4
  export * from "./core/creditSession";
5
- export * from "./core/contracts";
5
+ export * from "./contracts/contracts";
6
6
  export * from "./core/events";
7
7
  export * from "./core/errors";
8
8
  export * from "./core/pool";
9
- export * from "./core/protocols";
10
- export * from "./core/priceFeeds";
9
+ export * from "./contracts/protocols";
10
+ export * from "./oracles/priceFeeds";
11
11
  export * from "./core/operations";
12
- export * from "./core/oracles";
13
- export * from "./core/swap";
12
+ export * from "./oracles/oracles";
14
13
  export * from "./tokens/token";
15
14
  export * from "./tokens/tokenData";
16
15
  export * from "./core/tokenDistributor";
17
- export * from "./core/trade";
16
+ export * from "./pathfinder/trade";
18
17
  export * from "./core/transactions";
19
18
  export * from "./payload/creditAccount";
20
19
  export * from "./payload/creditManager";
@@ -26,14 +25,14 @@ export * from "./utils/loading";
26
25
  export * from "./utils/validate";
27
26
  export * from "./utils/events";
28
27
  export * from "./utils/math";
29
- export * from "./core/creditCard";
30
28
  export * from "./payload/graphPayload";
31
29
  export * from "./types/index";
32
30
  export type { IDataCompressor, IWETHGateway } from "./types";
33
31
  export * from "./core/history";
34
32
  export { MultiCallContract } from "./utils/multicall";
35
33
  export { callRepeater } from "./utils/repeater";
36
- export { getContractName } from "./core/contractsRegister";
37
- export { AdapterInterface } from "./core/adapters";
34
+ export { getContractName } from "./contracts/contractsRegister";
35
+ export { AdapterInterface } from "./contracts/adapters";
38
36
  export { objectEntries, swapKeyValue, keyToLowercase } from "./utils/mappers";
39
37
  export { TokenType } from "./tokens/tokenType";
38
+ export { SwapType } from "./pathfinder/tradeTypes";
package/lib/index.js CHANGED
@@ -14,24 +14,23 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.TokenType = exports.keyToLowercase = exports.swapKeyValue = exports.objectEntries = exports.AdapterInterface = exports.getContractName = exports.callRepeater = exports.MultiCallContract = void 0;
17
+ exports.SwapType = exports.TokenType = exports.keyToLowercase = exports.swapKeyValue = exports.objectEntries = exports.AdapterInterface = exports.getContractName = exports.callRepeater = exports.MultiCallContract = void 0;
18
18
  __exportStar(require("./core/constants"), exports);
19
19
  __exportStar(require("./core/creditAccount"), exports);
20
20
  __exportStar(require("./core/creditManager"), exports);
21
21
  __exportStar(require("./core/creditSession"), exports);
22
- __exportStar(require("./core/contracts"), exports);
22
+ __exportStar(require("./contracts/contracts"), exports);
23
23
  __exportStar(require("./core/events"), exports);
24
24
  __exportStar(require("./core/errors"), exports);
25
25
  __exportStar(require("./core/pool"), exports);
26
- __exportStar(require("./core/protocols"), exports);
27
- __exportStar(require("./core/priceFeeds"), exports);
26
+ __exportStar(require("./contracts/protocols"), exports);
27
+ __exportStar(require("./oracles/priceFeeds"), exports);
28
28
  __exportStar(require("./core/operations"), exports);
29
- __exportStar(require("./core/oracles"), exports);
30
- __exportStar(require("./core/swap"), exports);
29
+ __exportStar(require("./oracles/oracles"), exports);
31
30
  __exportStar(require("./tokens/token"), exports);
32
31
  __exportStar(require("./tokens/tokenData"), exports);
33
32
  __exportStar(require("./core/tokenDistributor"), exports);
34
- __exportStar(require("./core/trade"), exports);
33
+ __exportStar(require("./pathfinder/trade"), exports);
35
34
  __exportStar(require("./core/transactions"), exports);
36
35
  __exportStar(require("./payload/creditAccount"), exports);
37
36
  __exportStar(require("./payload/creditManager"), exports);
@@ -43,7 +42,6 @@ __exportStar(require("./utils/loading"), exports);
43
42
  __exportStar(require("./utils/validate"), exports);
44
43
  __exportStar(require("./utils/events"), exports);
45
44
  __exportStar(require("./utils/math"), exports);
46
- __exportStar(require("./core/creditCard"), exports);
47
45
  __exportStar(require("./payload/graphPayload"), exports);
48
46
  __exportStar(require("./types/index"), exports);
49
47
  __exportStar(require("./core/history"), exports);
@@ -51,9 +49,9 @@ var multicall_1 = require("./utils/multicall");
51
49
  Object.defineProperty(exports, "MultiCallContract", { enumerable: true, get: function () { return multicall_1.MultiCallContract; } });
52
50
  var repeater_1 = require("./utils/repeater");
53
51
  Object.defineProperty(exports, "callRepeater", { enumerable: true, get: function () { return repeater_1.callRepeater; } });
54
- var contractsRegister_1 = require("./core/contractsRegister");
52
+ var contractsRegister_1 = require("./contracts/contractsRegister");
55
53
  Object.defineProperty(exports, "getContractName", { enumerable: true, get: function () { return contractsRegister_1.getContractName; } });
56
- var adapters_1 = require("./core/adapters");
54
+ var adapters_1 = require("./contracts/adapters");
57
55
  Object.defineProperty(exports, "AdapterInterface", { enumerable: true, get: function () { return adapters_1.AdapterInterface; } });
58
56
  var mappers_1 = require("./utils/mappers");
59
57
  Object.defineProperty(exports, "objectEntries", { enumerable: true, get: function () { return mappers_1.objectEntries; } });
@@ -61,3 +59,5 @@ Object.defineProperty(exports, "swapKeyValue", { enumerable: true, get: function
61
59
  Object.defineProperty(exports, "keyToLowercase", { enumerable: true, get: function () { return mappers_1.keyToLowercase; } });
62
60
  var tokenType_1 = require("./tokens/tokenType");
63
61
  Object.defineProperty(exports, "TokenType", { enumerable: true, get: function () { return tokenType_1.TokenType; } });
62
+ var tradeTypes_1 = require("./pathfinder/tradeTypes");
63
+ Object.defineProperty(exports, "SwapType", { enumerable: true, get: function () { return tradeTypes_1.SwapType; } });
@@ -0,0 +1,38 @@
1
+ import { SupportedToken } from "../tokens/token";
2
+ export interface PriceFeed {
3
+ token: string;
4
+ priceFeed: string;
5
+ }
6
+ export declare enum OracleType {
7
+ CHAINLINK_ORACLE = 0,
8
+ YEARN_TOKEN_ORACLE = 1,
9
+ CURVE_LP_ORACLE = 2,
10
+ YEARN_CURVE_LP_ORACLE = 3,
11
+ ZERO_ORACLE = 4,
12
+ LIKE_CURVE_LP_ORACLE = 5
13
+ }
14
+ export declare type PriceFeedData = {
15
+ type: OracleType.CHAINLINK_ORACLE;
16
+ address: string;
17
+ kovan?: string;
18
+ } | {
19
+ type: OracleType.YEARN_TOKEN_ORACLE;
20
+ token: SupportedToken;
21
+ deployed?: string;
22
+ deployedKovan?: string;
23
+ } | {
24
+ type: OracleType.CURVE_LP_ORACLE;
25
+ assets: Array<SupportedToken>;
26
+ } | {
27
+ type: OracleType.YEARN_CURVE_LP_ORACLE;
28
+ curveSymbol: SupportedToken;
29
+ } | {
30
+ type: OracleType.ZERO_ORACLE;
31
+ } | {
32
+ type: OracleType.LIKE_CURVE_LP_ORACLE;
33
+ curveSymbol: SupportedToken;
34
+ };
35
+ export declare type TokenPriceFeedData = {
36
+ priceFeedETH?: PriceFeedData;
37
+ priceFeedUSD?: PriceFeedData;
38
+ };