@gearbox-protocol/sdk 0.0.67 → 0.0.70

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 (66) 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/events.js +1 -1
  10. package/lib/core/tradeTypes.d.ts +1 -1
  11. package/lib/core/transactions.js +1 -1
  12. package/lib/index.d.ts +8 -9
  13. package/lib/index.js +10 -10
  14. package/lib/oracles/oracles.d.ts +38 -0
  15. package/lib/oracles/oracles.js +12 -0
  16. package/lib/oracles/priceFeeds.d.ts +3 -0
  17. package/lib/oracles/priceFeeds.js +492 -0
  18. package/lib/pathfinder/convexLP.d.ts +1 -1
  19. package/lib/pathfinder/convexLP.js +2 -20
  20. package/lib/pathfinder/curveLP.d.ts +2 -2
  21. package/lib/pathfinder/curveLP.js +8 -27
  22. package/lib/pathfinder/path.d.ts +2 -8
  23. package/lib/pathfinder/path.js +27 -34
  24. package/lib/pathfinder/trade.d.ts +35 -0
  25. package/lib/pathfinder/trade.js +62 -0
  26. package/lib/pathfinder/tradeTypes.d.ts +83 -0
  27. package/lib/pathfinder/tradeTypes.js +26 -0
  28. package/lib/pathfinder/yVault.d.ts +1 -1
  29. package/lib/pathfinder/yVault.js +4 -23
  30. package/lib/tokens/convex.d.ts +2 -2
  31. package/lib/tokens/convex.js +1 -1
  32. package/lib/tokens/curveLP.d.ts +1 -1
  33. package/lib/tokens/curveLP.js +1 -1
  34. package/lib/tokens/gear.d.ts +1 -1
  35. package/lib/tokens/normal.d.ts +1 -1
  36. package/lib/tokens/normal.js +1 -1
  37. package/lib/tokens/token.d.ts +1 -1
  38. package/lib/tokens/token.js +10 -10
  39. package/lib/tokens/yearn.d.ts +2 -2
  40. package/lib/tokens/yearn.js +3 -3
  41. package/package.json +1 -1
  42. package/src/{core → contracts}/adapters.ts +0 -0
  43. package/src/{core → contracts}/contracts.ts +9 -9
  44. package/src/{core → contracts}/contractsRegister.ts +0 -0
  45. package/src/{core → contracts}/protocols.ts +0 -0
  46. package/src/core/events.ts +932 -915
  47. package/src/core/transactions.ts +360 -352
  48. package/src/index.ts +8 -9
  49. package/src/{core → oracles}/oracles.ts +0 -0
  50. package/src/oracles/priceFeeds.ts +528 -0
  51. package/src/pathfinder/convexLP.ts +1 -1
  52. package/src/pathfinder/curveLP.ts +3 -4
  53. package/src/pathfinder/path.ts +23 -53
  54. package/src/pathfinder/trade.ts +83 -0
  55. package/src/{core → pathfinder}/tradeTypes.ts +6 -6
  56. package/src/pathfinder/yVault.ts +1 -2
  57. package/src/tokens/convex.ts +2 -2
  58. package/src/tokens/curveLP.ts +1 -1
  59. package/src/tokens/gear.ts +1 -1
  60. package/src/tokens/normal.ts +1 -1
  61. package/src/tokens/token.ts +22 -12
  62. package/src/tokens/yearn.ts +4 -4
  63. package/src/core/creditCard.ts +0 -15
  64. package/src/core/priceFeeds.ts +0 -528
  65. package/src/core/swap.ts +0 -4
  66. 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: "0x48364De693fdE2D4AB0A6D5EAB9c5e5f79D77e47",
61
+ CURVE_STETH_GATEWAY: "0x464C874c54Bf8d48e1CcbA20636837E5EfBBA4B0",
62
+ CURVE_FRAX_POOL: token_1.tokenDataByNetwork.Kovan.FRAX3CRV,
63
+ CURVE_LUSD_POOL: token_1.tokenDataByNetwork.Kovan.LUSD3CRV,
64
+ CURVE_SUSD_POOL: "0x446973eC709A3e2ce2845988E9BF737Fb1eF4aDD",
65
+ CURVE_SUSD_DEPOSIT: "0x614Dca6b90DC22Ca3A0f2d8Fb44f7B3FA2664E97",
66
+ CURVE_GUSD_POOL: "0x03Cc4B5a6f271B50F2b8244AA9C4995b5608Fae2",
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: "0x485B855a1B5e05e31e635344aF345C426CA5ae3F"
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);
@@ -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
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OracleType = void 0;
4
+ var OracleType;
5
+ (function (OracleType) {
6
+ OracleType[OracleType["CHAINLINK_ORACLE"] = 0] = "CHAINLINK_ORACLE";
7
+ OracleType[OracleType["YEARN_TOKEN_ORACLE"] = 1] = "YEARN_TOKEN_ORACLE";
8
+ OracleType[OracleType["CURVE_LP_ORACLE"] = 2] = "CURVE_LP_ORACLE";
9
+ OracleType[OracleType["YEARN_CURVE_LP_ORACLE"] = 3] = "YEARN_CURVE_LP_ORACLE";
10
+ OracleType[OracleType["ZERO_ORACLE"] = 4] = "ZERO_ORACLE";
11
+ OracleType[OracleType["LIKE_CURVE_LP_ORACLE"] = 5] = "LIKE_CURVE_LP_ORACLE";
12
+ })(OracleType = exports.OracleType || (exports.OracleType = {}));
@@ -0,0 +1,3 @@
1
+ import { TokenPriceFeedData } from "./oracles";
2
+ import { SupportedToken } from "../tokens/token";
3
+ export declare const priceFeedsByNetwork: Record<SupportedToken, TokenPriceFeedData>;