@gearbox-protocol/sdk 1.2.9 → 1.3.1

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 (63) hide show
  1. package/lib/core/creditAccount.js +1 -0
  2. package/lib/core/creditManager.js +10 -8
  3. package/lib/index.d.ts +0 -1
  4. package/lib/index.js +0 -1
  5. package/lib/tokens/normal.d.ts +1 -1
  6. package/lib/tokens/normal.js +4 -4
  7. package/lib/tokens/token.js +6 -6
  8. package/lib/tokens/tokenType.d.ts +9 -10
  9. package/lib/tokens/tokenType.js +10 -10
  10. package/lib/types/contracts/interfaces/V1/{IPriceOracle.sol/IPriceOracleV2.d.ts → IPriceOracle.d.ts} +4 -4
  11. package/lib/types/contracts/interfaces/V1/{IPriceOracle.sol/IPriceOracleV2.js → IPriceOracle.js} +0 -0
  12. package/lib/types/contracts/interfaces/V1/index.d.ts +1 -2
  13. package/lib/types/contracts/pathfinder/interfaces/IDepositor.sol/IDepositorOptions.d.ts +31 -8
  14. package/lib/types/contracts/pathfinder/interfaces/IPathFinder.d.ts +36 -7
  15. package/lib/types/contracts/test/index.d.ts +2 -0
  16. package/lib/types/contracts/test/suites/index.d.ts +2 -0
  17. package/lib/types/contracts/{interfaces/V1/IPriceOracle.sol → test/suites}/index.js +0 -0
  18. package/lib/types/contracts/test/suites/mainnet/IPriceFeedsRegistry.d.ts +42 -0
  19. package/lib/types/contracts/test/suites/mainnet/IPriceFeedsRegistry.js +2 -0
  20. package/lib/types/contracts/test/suites/mainnet/ITokenTestSuite.d.ts +58 -0
  21. package/lib/types/contracts/test/suites/mainnet/ITokenTestSuite.js +2 -0
  22. package/lib/types/contracts/test/suites/mainnet/index.d.ts +2 -0
  23. package/lib/types/contracts/test/suites/mainnet/index.js +2 -0
  24. package/lib/types/factories/contracts/interfaces/V1/{IPriceOracle.sol/IPriceOracleV2__factory.d.ts → IPriceOracle__factory.d.ts} +4 -4
  25. package/lib/types/factories/contracts/interfaces/V1/{IPriceOracle.sol/IPriceOracleV2__factory.js → IPriceOracle__factory.js} +8 -8
  26. package/lib/types/factories/contracts/interfaces/V1/index.d.ts +1 -1
  27. package/lib/types/factories/contracts/interfaces/V1/index.js +3 -25
  28. package/lib/types/factories/contracts/pathfinder/interfaces/IDepositor.sol/IDepositorOptions__factory.js +235 -0
  29. package/lib/types/factories/contracts/pathfinder/interfaces/IPathFinder__factory.js +45 -28
  30. package/lib/types/factories/contracts/support/MultiCall.sol/Multicall2__factory.d.ts +1 -1
  31. package/lib/types/factories/contracts/support/MultiCall.sol/Multicall2__factory.js +1 -1
  32. package/lib/types/factories/contracts/test/index.d.ts +1 -0
  33. package/lib/types/factories/contracts/test/index.js +2 -1
  34. package/lib/types/factories/contracts/test/suites/index.d.ts +1 -0
  35. package/lib/types/factories/contracts/test/suites/index.js +30 -0
  36. package/lib/types/factories/contracts/test/suites/mainnet/IPriceFeedsRegistry__factory.d.ts +32 -0
  37. package/lib/types/factories/contracts/test/suites/mainnet/IPriceFeedsRegistry__factory.js +52 -0
  38. package/lib/types/factories/contracts/test/suites/mainnet/ITokenTestSuite__factory.d.ts +32 -0
  39. package/lib/types/factories/contracts/test/suites/mainnet/ITokenTestSuite__factory.js +90 -0
  40. package/lib/types/factories/contracts/test/suites/mainnet/index.d.ts +2 -0
  41. package/lib/types/factories/contracts/test/suites/mainnet/index.js +10 -0
  42. package/lib/types/index.d.ts +6 -0
  43. package/lib/types/index.js +7 -1
  44. package/lib/utils/extracter.d.ts +1 -1
  45. package/lib/utils/loading.js +1 -1
  46. package/package.json +1 -1
  47. package/lib/pathfinder/contracts.d.ts +0 -3
  48. package/lib/pathfinder/contracts.js +0 -15
  49. package/lib/pathfinder/convexLP.d.ts +0 -4
  50. package/lib/pathfinder/convexLP.js +0 -77
  51. package/lib/pathfinder/curveLP.d.ts +0 -9
  52. package/lib/pathfinder/curveLP.js +0 -95
  53. package/lib/pathfinder/path.d.ts +0 -34
  54. package/lib/pathfinder/path.js +0 -178
  55. package/lib/pathfinder/priority.d.ts +0 -2
  56. package/lib/pathfinder/priority.js +0 -17
  57. package/lib/pathfinder/trade.d.ts +0 -34
  58. package/lib/pathfinder/trade.js +0 -62
  59. package/lib/pathfinder/yVault.d.ts +0 -10
  60. package/lib/pathfinder/yVault.js +0 -100
  61. package/lib/types/contracts/interfaces/V1/IPriceOracle.sol/index.d.ts +0 -1
  62. package/lib/types/factories/contracts/interfaces/V1/IPriceOracle.sol/index.d.ts +0 -1
  63. package/lib/types/factories/contracts/interfaces/V1/IPriceOracle.sol/index.js +0 -8
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ITokenTestSuite__factory = void 0;
7
+ var ethers_1 = require("ethers");
8
+ var _abi = [
9
+ {
10
+ inputs: [
11
+ {
12
+ internalType: "address",
13
+ name: "",
14
+ type: "address",
15
+ },
16
+ ],
17
+ name: "PriceFeedNotFoundException",
18
+ type: "error",
19
+ },
20
+ {
21
+ inputs: [
22
+ {
23
+ internalType: "enum Tokens",
24
+ name: "t",
25
+ type: "uint8",
26
+ },
27
+ ],
28
+ name: "addressOf",
29
+ outputs: [
30
+ {
31
+ internalType: "address",
32
+ name: "",
33
+ type: "address",
34
+ },
35
+ ],
36
+ stateMutability: "view",
37
+ type: "function",
38
+ },
39
+ {
40
+ inputs: [
41
+ {
42
+ internalType: "enum Tokens",
43
+ name: "t",
44
+ type: "uint8",
45
+ },
46
+ ],
47
+ name: "priceFeeds",
48
+ outputs: [
49
+ {
50
+ internalType: "address",
51
+ name: "",
52
+ type: "address",
53
+ },
54
+ ],
55
+ stateMutability: "view",
56
+ type: "function",
57
+ },
58
+ {
59
+ inputs: [
60
+ {
61
+ internalType: "address",
62
+ name: "token",
63
+ type: "address",
64
+ },
65
+ ],
66
+ name: "priceFeeds",
67
+ outputs: [
68
+ {
69
+ internalType: "address",
70
+ name: "",
71
+ type: "address",
72
+ },
73
+ ],
74
+ stateMutability: "view",
75
+ type: "function",
76
+ },
77
+ ];
78
+ var ITokenTestSuite__factory = /** @class */ (function () {
79
+ function ITokenTestSuite__factory() {
80
+ }
81
+ ITokenTestSuite__factory.createInterface = function () {
82
+ return new ethers_1.utils.Interface(_abi);
83
+ };
84
+ ITokenTestSuite__factory.connect = function (address, signerOrProvider) {
85
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
86
+ };
87
+ ITokenTestSuite__factory.abi = _abi;
88
+ return ITokenTestSuite__factory;
89
+ }());
90
+ exports.ITokenTestSuite__factory = ITokenTestSuite__factory;
@@ -0,0 +1,2 @@
1
+ export { IPriceFeedsRegistry__factory } from "./IPriceFeedsRegistry__factory";
2
+ export { ITokenTestSuite__factory } from "./ITokenTestSuite__factory";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ITokenTestSuite__factory = exports.IPriceFeedsRegistry__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ var IPriceFeedsRegistry__factory_1 = require("./IPriceFeedsRegistry__factory");
8
+ Object.defineProperty(exports, "IPriceFeedsRegistry__factory", { enumerable: true, get: function () { return IPriceFeedsRegistry__factory_1.IPriceFeedsRegistry__factory; } });
9
+ var ITokenTestSuite__factory_1 = require("./ITokenTestSuite__factory");
10
+ Object.defineProperty(exports, "ITokenTestSuite__factory", { enumerable: true, get: function () { return ITokenTestSuite__factory_1.ITokenTestSuite__factory; } });
@@ -221,6 +221,8 @@ export type { ICreditFilter } from "./contracts/interfaces/V1/ICreditFilter";
221
221
  export { ICreditFilter__factory } from "./factories/contracts/interfaces/V1/ICreditFilter__factory";
222
222
  export type { ICreditManager } from "./contracts/interfaces/V1/ICreditManager";
223
223
  export { ICreditManager__factory } from "./factories/contracts/interfaces/V1/ICreditManager__factory";
224
+ export type { IPriceOracle } from "./contracts/interfaces/V1/IPriceOracle";
225
+ export { IPriceOracle__factory } from "./factories/contracts/interfaces/V1/IPriceOracle__factory";
224
226
  export type { IClosePathResolver } from "./contracts/pathfinder/interfaces/IClosePathResolver";
225
227
  export { IClosePathResolver__factory } from "./factories/contracts/pathfinder/interfaces/IClosePathResolver__factory";
226
228
  export type { IDepositor } from "./contracts/pathfinder/interfaces/IDepositor.sol/IDepositor";
@@ -249,6 +251,10 @@ export type { ILidoMockEvents } from "./contracts/test/mocks/integrations/LidoMo
249
251
  export { ILidoMockEvents__factory } from "./factories/contracts/test/mocks/integrations/LidoMock.sol/ILidoMockEvents__factory";
250
252
  export type { ILockedCvx } from "./contracts/test/sigp/interfaces/ILockedCvx";
251
253
  export { ILockedCvx__factory } from "./factories/contracts/test/sigp/interfaces/ILockedCvx__factory";
254
+ export type { IPriceFeedsRegistry } from "./contracts/test/suites/mainnet/IPriceFeedsRegistry";
255
+ export { IPriceFeedsRegistry__factory } from "./factories/contracts/test/suites/mainnet/IPriceFeedsRegistry__factory";
256
+ export type { ITokenTestSuite } from "./contracts/test/suites/mainnet/ITokenTestSuite";
257
+ export { ITokenTestSuite__factory } from "./factories/contracts/test/suites/mainnet/ITokenTestSuite__factory";
252
258
  export type { AggregatorV3Interface } from "./@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface";
253
259
  export { AggregatorV3Interface__factory } from "./factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface__factory";
254
260
  export type { Multicall2 } from "./contracts/support/MultiCall.sol/Multicall2";
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ICurveV1Adapter__factory = exports.IConvexV1BoosterAdapter__factory = exports.IConvexV1BaseRewardPoolAdapterErrors__factory = exports.IConvexV1BaseRewardPoolAdapter__factory = exports.IYVault__factory = exports.IUniswapV3SwapCallback__factory = exports.ISwapRouter__factory = exports.IUniswapV2Router02__factory = exports.IUniswapV2Router01__factory = exports.IQuoter__factory = exports.IstETHGetters__factory = exports.IstETH__factory = exports.ILidoOracle__factory = exports.ICurveRegistry__factory = exports.ICurvePoolStETH__factory = exports.ICurvePool__factory = exports.ICurvePool4Assets__factory = exports.ICurvePool3Assets__factory = exports.ICurvePool2Assets__factory = exports.ICRVToken__factory = exports.IBasicRewards__factory = exports.IWalletChecker__factory = exports.IVoting__factory = exports.IVestedEscrow__factory = exports.ITokenMinter__factory = exports.ITokenFactory__factory = exports.IStashFactory__factory = exports.IStash__factory = exports.IStaker__factory = exports.IRewards__factory = exports.IRewardFactory__factory = exports.IRegistry__factory = exports.IPools__factory = exports.IMinter__factory = exports.IFeeDistro__factory = exports.IDeposit__factory = exports.ICurveVoteEscrow__factory = exports.ICurveGauge__factory = exports.ICrvDeposit__factory = exports.IConvexToken__factory = exports.IClaimZap__factory = exports.IBooster__factory = exports.IBaseRewardPool__factory = exports.IERC165__factory = exports.IERC721Receiver__factory = exports.IERC721__factory = exports.IERC721Metadata__factory = exports.IERC20__factory = exports.IERC20Metadata__factory = exports.factories = void 0;
27
27
  exports.IPriceFeedAddress__factory = exports.IPoolServiceEvents__factory = exports.IPoolService__factory = exports.IPhantomERC20__factory = exports.IMerkleDistributor__factory = exports.ILPPriceFeedExceptions__factory = exports.ILPPriceFeedEvents__factory = exports.ILPPriceFeed__factory = exports.IInterestRateModel__factory = exports.IGearToken__factory = exports.IDieselTokenExceptions__factory = exports.IDieselToken__factory = exports.IDegenNFTExceptions__factory = exports.IDegenNFT__factory = exports.IDataCompressorExceptions__factory = exports.IDataCompressor__factory = exports.ICreditManagerV2Exceptions__factory = exports.ICreditManagerV2Events__factory = exports.ICreditManagerV2__factory = exports.ICreditFacadeExtended__factory = exports.ICreditFacadeExceptions__factory = exports.ICreditFacadeEvents__factory = exports.ICreditFacade__factory = exports.ICreditConfiguratorExceptions__factory = exports.ICreditConfiguratorEvents__factory = exports.ICreditConfigurator__factory = exports.ICreditAccount__factory = exports.ICrediAccountExceptions__factory = exports.IContractsRegisterEvents__factory = exports.IContractsRegister__factory = exports.IAddressProviderEvents__factory = exports.IAddressProvider__factory = exports.IACLExceptions__factory = exports.IACLEvents__factory = exports.IACL__factory = exports.IAccountFactoryGetters__factory = exports.IAccountFactoryEvents__factory = exports.IAccountFactory__factory = exports.IWETH__factory = exports.IUniswapV3AdapterExceptions__factory = exports.IUniswapV3Adapter__factory = exports.IUniswapV2Adapter__factory = exports.ILidoV1AdapterExceptions__factory = exports.ILidoV1AdapterEvents__factory = exports.ILidoV1Adapter__factory = exports.IUniversalAdapterExceptions__factory = exports.IUniversalAdapter__factory = exports.IAdapterExceptions__factory = exports.IAdapter__factory = exports.ICurveV1AdapterExceptions__factory = void 0;
28
- exports.Multicall2__factory = exports.AggregatorV3Interface__factory = exports.ILockedCvx__factory = exports.ILidoMockEvents__factory = exports.IWithdrawerOptions__factory = exports.IWithdrawer__factory = exports.ISwapper__factory = exports.ISwapAggregator__factory = exports.IPathResolver__factory = exports.IPathFinder__factory = exports.ILPWorkerOptions__factory = exports.ILPWorker__factory = exports.IGasPricer__factory = exports.IDepositorOptions__factory = exports.IDepositor__factory = exports.IClosePathResolver__factory = exports.ICreditManager__factory = exports.ICreditFilter__factory = exports.IWETHGateway__factory = exports.IVersion__factory = exports.IPriceOracleV2Ext__factory = exports.IPriceOracleV2Exceptions__factory = exports.IPriceOracleV2Events__factory = exports.IPriceOracleV2__factory = exports.IPriceFeedType__factory = void 0;
28
+ exports.Multicall2__factory = exports.AggregatorV3Interface__factory = exports.ITokenTestSuite__factory = exports.IPriceFeedsRegistry__factory = exports.ILockedCvx__factory = exports.ILidoMockEvents__factory = exports.IWithdrawerOptions__factory = exports.IWithdrawer__factory = exports.ISwapper__factory = exports.ISwapAggregator__factory = exports.IPathResolver__factory = exports.IPathFinder__factory = exports.ILPWorkerOptions__factory = exports.ILPWorker__factory = exports.IGasPricer__factory = exports.IDepositorOptions__factory = exports.IDepositor__factory = exports.IClosePathResolver__factory = exports.IPriceOracle__factory = exports.ICreditManager__factory = exports.ICreditFilter__factory = exports.IWETHGateway__factory = exports.IVersion__factory = exports.IPriceOracleV2Ext__factory = exports.IPriceOracleV2Exceptions__factory = exports.IPriceOracleV2Events__factory = exports.IPriceOracleV2__factory = exports.IPriceFeedType__factory = void 0;
29
29
  exports.factories = __importStar(require("./factories"));
30
30
  var IERC20Metadata__factory_1 = require("./factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory");
31
31
  Object.defineProperty(exports, "IERC20Metadata__factory", { enumerable: true, get: function () { return IERC20Metadata__factory_1.IERC20Metadata__factory; } });
@@ -243,6 +243,8 @@ var ICreditFilter__factory_1 = require("./factories/contracts/interfaces/V1/ICre
243
243
  Object.defineProperty(exports, "ICreditFilter__factory", { enumerable: true, get: function () { return ICreditFilter__factory_1.ICreditFilter__factory; } });
244
244
  var ICreditManager__factory_1 = require("./factories/contracts/interfaces/V1/ICreditManager__factory");
245
245
  Object.defineProperty(exports, "ICreditManager__factory", { enumerable: true, get: function () { return ICreditManager__factory_1.ICreditManager__factory; } });
246
+ var IPriceOracle__factory_1 = require("./factories/contracts/interfaces/V1/IPriceOracle__factory");
247
+ Object.defineProperty(exports, "IPriceOracle__factory", { enumerable: true, get: function () { return IPriceOracle__factory_1.IPriceOracle__factory; } });
246
248
  var IClosePathResolver__factory_1 = require("./factories/contracts/pathfinder/interfaces/IClosePathResolver__factory");
247
249
  Object.defineProperty(exports, "IClosePathResolver__factory", { enumerable: true, get: function () { return IClosePathResolver__factory_1.IClosePathResolver__factory; } });
248
250
  var IDepositor__factory_1 = require("./factories/contracts/pathfinder/interfaces/IDepositor.sol/IDepositor__factory");
@@ -271,6 +273,10 @@ var ILidoMockEvents__factory_1 = require("./factories/contracts/test/mocks/integ
271
273
  Object.defineProperty(exports, "ILidoMockEvents__factory", { enumerable: true, get: function () { return ILidoMockEvents__factory_1.ILidoMockEvents__factory; } });
272
274
  var ILockedCvx__factory_1 = require("./factories/contracts/test/sigp/interfaces/ILockedCvx__factory");
273
275
  Object.defineProperty(exports, "ILockedCvx__factory", { enumerable: true, get: function () { return ILockedCvx__factory_1.ILockedCvx__factory; } });
276
+ var IPriceFeedsRegistry__factory_1 = require("./factories/contracts/test/suites/mainnet/IPriceFeedsRegistry__factory");
277
+ Object.defineProperty(exports, "IPriceFeedsRegistry__factory", { enumerable: true, get: function () { return IPriceFeedsRegistry__factory_1.IPriceFeedsRegistry__factory; } });
278
+ var ITokenTestSuite__factory_1 = require("./factories/contracts/test/suites/mainnet/ITokenTestSuite__factory");
279
+ Object.defineProperty(exports, "ITokenTestSuite__factory", { enumerable: true, get: function () { return ITokenTestSuite__factory_1.ITokenTestSuite__factory; } });
274
280
  var AggregatorV3Interface__factory_1 = require("./factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface__factory");
275
281
  Object.defineProperty(exports, "AggregatorV3Interface__factory", { enumerable: true, get: function () { return AggregatorV3Interface__factory_1.AggregatorV3Interface__factory; } });
276
282
  var Multicall2__factory_1 = require("./factories/contracts/support/MultiCall.sol/Multicall2__factory");
@@ -7,5 +7,5 @@ export declare function getPoolTokens(pool: PoolData | undefined | Error): PoolT
7
7
  interface WithUnderlyingToken {
8
8
  readonly underlyingToken: string;
9
9
  }
10
- export declare function getUnderlyingToken(c: WithUnderlyingToken | undefined | Error): string | undefined;
10
+ export declare function getUnderlyingToken(c: WithUnderlyingToken | undefined | null | Error): string | undefined;
11
11
  export {};
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadingProgress = exports.allLoaded = void 0;
4
- var isLoaded = function (v) { return v !== undefined; };
4
+ var isLoaded = function (v) { return v !== undefined && v !== null; };
5
5
  function allLoaded(itemsToLoad) {
6
6
  return itemsToLoad.reduce(function (acc, item) { return acc && isLoaded(item); }, true);
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "1.2.9",
3
+ "version": "1.3.1",
4
4
  "description": "Gearbox SDK",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -1,3 +0,0 @@
1
- import { NetworkType } from "../core/constants";
2
- export declare type PathFinderContracts = "PATH_FINDER" | "CONVEX_PATH_FINDER";
3
- export declare const pathFindersByNetwork: Record<NetworkType, Record<PathFinderContracts, string>>;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pathFindersByNetwork = void 0;
4
- exports.pathFindersByNetwork = {
5
- Mainnet: {
6
- // PATH_FINDER
7
- PATH_FINDER: "",
8
- CONVEX_PATH_FINDER: "",
9
- },
10
- Goerli: {
11
- // PATH_FINDER
12
- PATH_FINDER: "",
13
- CONVEX_PATH_FINDER: "",
14
- },
15
- };
@@ -1,4 +0,0 @@
1
- import type { LPWithdrawPathFinder, Path } from "./path";
2
- export declare class ConvexLPPathFinder implements LPWithdrawPathFinder {
3
- findWithdrawPaths(p: Path): Promise<Array<Path>>;
4
- }
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.ConvexLPPathFinder = void 0;
40
- var convex_1 = require("../tokens/convex");
41
- var mappers_1 = require("../utils/mappers");
42
- var ConvexLPPathFinder = /** @class */ (function () {
43
- function ConvexLPPathFinder() {
44
- }
45
- // eslint-disable-next-line class-methods-use-this
46
- ConvexLPPathFinder.prototype.findWithdrawPaths = function (p) {
47
- return __awaiter(this, void 0, void 0, function () {
48
- var pids;
49
- return __generator(this, function (_a) {
50
- pids = (0, mappers_1.objectEntries)(convex_1.convexTokens).reduce(function (acc, _a) {
51
- var cvxToken = _a[0], tokenData = _a[1];
52
- var currentBalance = p.popBalance(cvxToken);
53
- if (currentBalance.gt(1)) {
54
- pids.add(tokenData.pid);
55
- }
56
- return acc;
57
- }, new Set());
58
- // const convexPathFinder = ConvexPathFinder__factory.connect(
59
- // pathFindersByNetwork[p.networkType].CONVEX_PATH_FINDER,
60
- // p.provider
61
- // );
62
- // const tokenBalances = await convexPathFinder.calcRewards(
63
- // p.creditAccount.addr,
64
- // Array.from(pids)
65
- // );
66
- // for (let balance of tokenBalances) {
67
- // p.balances[balance.token] = p.balances[balance.token].add(
68
- // balance.balance
69
- // );
70
- // }
71
- return [2 /*return*/, p.withdrawTokens()];
72
- });
73
- });
74
- };
75
- return ConvexLPPathFinder;
76
- }());
77
- exports.ConvexLPPathFinder = ConvexLPPathFinder;
@@ -1,9 +0,0 @@
1
- import { CurvePoolContract } from "../contracts/contracts";
2
- import { CurveLPToken } from "../tokens/curveLP";
3
- import type { LPWithdrawPathFinder, Path } from "./path";
4
- export declare class CurvePathFinder implements LPWithdrawPathFinder {
5
- lpToken: CurveLPToken;
6
- contract: CurvePoolContract;
7
- constructor(token: CurveLPToken);
8
- findWithdrawPaths(p: Path): Promise<Array<Path>>;
9
- }
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.CurvePathFinder = void 0;
40
- var contracts_1 = require("../contracts/contracts");
41
- var curveLP_1 = require("../tokens/curveLP");
42
- var types_1 = require("../types");
43
- var multicall_1 = require("../utils/multicall");
44
- var tradeTypes_1 = require("./tradeTypes");
45
- var CurvePathFinder = /** @class */ (function () {
46
- function CurvePathFinder(token) {
47
- this.lpToken = token;
48
- var curvePools = curveLP_1.curveTokens[this.lpToken].lpActions.filter(function (a) { return a.type === tradeTypes_1.TradeType.CurveWithdrawLP; });
49
- if (curvePools.length !== 1)
50
- throw new Error("Cant find Withdrawer");
51
- this.contract = curvePools[0].contract;
52
- var wrapper = contracts_1.contractParams[curvePools[0].contract].wrapper;
53
- if (wrapper) {
54
- this.contract = wrapper;
55
- }
56
- }
57
- CurvePathFinder.prototype.findWithdrawPaths = function (p) {
58
- return __awaiter(this, void 0, void 0, function () {
59
- var coins, nCoins, lpBalance, multiCallContract, data, i, balances, paths, i, newPath;
60
- return __generator(this, function (_a) {
61
- switch (_a.label) {
62
- case 0:
63
- coins = contracts_1.contractParams[this.contract].tokens;
64
- nCoins = coins.length;
65
- lpBalance = p.popBalance(this.lpToken);
66
- multiCallContract = new multicall_1.MultiCallContract(contracts_1.contractsByAddress[this.contract], types_1.ICurvePool__factory.createInterface(), p.provider);
67
- data = [];
68
- for (i = 0; i < nCoins; i += 1) {
69
- data.push({
70
- method: "calc_withdraw_one_coin(uint256,int128)",
71
- params: [lpBalance, i],
72
- });
73
- }
74
- return [4 /*yield*/, multiCallContract.call(data)];
75
- case 1:
76
- balances = _a.sent();
77
- console.debug(balances);
78
- paths = [];
79
- for (i = 0; i < nCoins; i += 1) {
80
- newPath = p.clone();
81
- // newPath.balances[coins[i]] = newPath.balances[coins[i]].add(balances[i]);
82
- // newPath.calls.push({
83
- // targetContract: contractsByNetwork[p.networkType][this.contract],
84
- // callData: ICurveV1Adapter__factory.createInterface().encodeFunctionData("remove_all_liquidity_one_coin", [i])
85
- // })
86
- paths.push(newPath);
87
- }
88
- return [2 /*return*/, paths];
89
- }
90
- });
91
- });
92
- };
93
- return CurvePathFinder;
94
- }());
95
- exports.CurvePathFinder = CurvePathFinder;
@@ -1,34 +0,0 @@
1
- import { BigNumber, ethers } from "ethers";
2
- import { NetworkType } from "../core/constants";
3
- import { CreditAccountData } from "../core/creditAccount";
4
- import { CreditManagerData } from "../core/creditManager";
5
- import { MultiCall } from "../core/multicall";
6
- import { SupportedToken } from "../tokens/token";
7
- import { PartialRecord } from "../utils/types";
8
- export declare class Path {
9
- readonly calls: Array<MultiCall>;
10
- readonly balances: PartialRecord<SupportedToken, BigNumber>;
11
- readonly underlying: SupportedToken;
12
- readonly creditManager: CreditManagerData;
13
- readonly creditAccount: CreditAccountData;
14
- readonly networkType: NetworkType;
15
- readonly provider: ethers.providers.Provider;
16
- totalGasLimit: number;
17
- constructor(opts: {
18
- balances: PartialRecord<SupportedToken, BigNumber>;
19
- underlying: SupportedToken;
20
- creditManager: CreditManagerData;
21
- creditAccount: CreditAccountData;
22
- networkType: NetworkType;
23
- provider: ethers.providers.Provider;
24
- totalGasLimit: number;
25
- });
26
- popBalance(token: SupportedToken): BigNumber;
27
- private static comparedByPriority;
28
- static findBestPath(creditAccount: CreditAccountData, creditManager: CreditManagerData, provider: ethers.providers.Provider): Promise<void>;
29
- withdrawTokens(): Promise<Array<Path>>;
30
- clone(): Path;
31
- }
32
- export interface LPWithdrawPathFinder {
33
- findWithdrawPaths: (p: Path) => Promise<Array<Path>>;
34
- }
@@ -1,178 +0,0 @@
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
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.Path = void 0;
51
- var ethers_1 = require("ethers");
52
- var token_1 = require("../tokens/token");
53
- var tokenType_1 = require("../tokens/tokenType");
54
- var network_1 = require("../utils/network");
55
- var convexLP_1 = require("./convexLP");
56
- var curveLP_1 = require("./curveLP");
57
- var priority_1 = require("./priority");
58
- var yVault_1 = require("./yVault");
59
- var Path = /** @class */ (function () {
60
- function Path(opts) {
61
- this.calls = [];
62
- this.balances = opts.balances;
63
- this.underlying = opts.underlying;
64
- this.creditManager = opts.creditManager;
65
- this.creditAccount = opts.creditAccount;
66
- this.networkType = opts.networkType;
67
- this.provider = opts.provider;
68
- this.totalGasLimit = opts.totalGasLimit;
69
- }
70
- Path.prototype.popBalance = function (token) {
71
- var currentBalance = this.balances[token];
72
- if (currentBalance === undefined || currentBalance.gt(1))
73
- return ethers_1.BigNumber.from(0);
74
- this.balances[token] = ethers_1.BigNumber.from(1);
75
- return currentBalance.sub(1);
76
- };
77
- Path.comparedByPriority = function (_a, _b) {
78
- var tokenA = _a[0];
79
- var tokenB = _b[0];
80
- var priorityTokenA = priority_1.priority[token_1.supportedTokens[tokenA].type];
81
- var priorityTokenB = priority_1.priority[token_1.supportedTokens[tokenB].type];
82
- if (priorityTokenA > priorityTokenB) {
83
- return -1;
84
- }
85
- if (priorityTokenA < priorityTokenB) {
86
- return 1;
87
- }
88
- return 0;
89
- };
90
- Path.findBestPath = function (creditAccount, creditManager, provider) {
91
- return __awaiter(this, void 0, void 0, function () {
92
- var networkType, balances, initialPath, lpPaths;
93
- return __generator(this, function (_a) {
94
- switch (_a.label) {
95
- case 0: return [4 /*yield*/, (0, network_1.detectNetwork)(provider)];
96
- case 1:
97
- networkType = _a.sent();
98
- balances = Object.entries(creditAccount.balances)
99
- .map(function (_a) {
100
- var address = _a[0], balance = _a[1];
101
- return ({
102
- token: token_1.tokenSymbolByAddress[address.toLowerCase()],
103
- balance: balance,
104
- });
105
- })
106
- .filter(function (t) { return t.balance.gt(1); })
107
- .reduce(function (obj, curValue) {
108
- var _a;
109
- return (__assign(__assign({}, obj), (_a = {}, _a[curValue.token] = curValue.balance, _a)));
110
- }, {});
111
- initialPath = new Path({
112
- balances: balances,
113
- creditAccount: creditAccount,
114
- creditManager: creditManager,
115
- networkType: networkType,
116
- provider: provider,
117
- underlying: "DAI",
118
- totalGasLimit: 0,
119
- });
120
- return [4 /*yield*/, initialPath.withdrawTokens()];
121
- case 2:
122
- lpPaths = _a.sent();
123
- // const pathFinder = ISwapPathFinder__factory.connect(
124
- // pathFindersByNetwork[networkType].PATH_FINDER,
125
- // provider,
126
- // );
127
- console.debug(lpPaths);
128
- return [2 /*return*/];
129
- }
130
- });
131
- });
132
- };
133
- Path.prototype.withdrawTokens = function () {
134
- return __awaiter(this, void 0, void 0, function () {
135
- var existingTokens, nextToken, lpPathFinder;
136
- return __generator(this, function (_a) {
137
- existingTokens = Object.entries(this.balances)
138
- .filter(function (_a) {
139
- var balance = _a[1];
140
- return balance.gt(1);
141
- })
142
- .sort(Path.comparedByPriority);
143
- // TODO: Add checks for lenght
144
- if (existingTokens.length === 0)
145
- throw new Error("No tokens with balance >1");
146
- nextToken = existingTokens[0][0];
147
- // Get balances and keep non-zero only
148
- // Find token with highest priority
149
- // Get token type of this token
150
- switch (token_1.supportedTokens[nextToken].type) {
151
- case tokenType_1.TokenType.NORMAL_TOKEN:
152
- case tokenType_1.TokenType.CONNECTOR:
153
- return [2 /*return*/, [this]];
154
- case tokenType_1.TokenType.YEARN_VAULT_OF_CURVE_LP:
155
- case tokenType_1.TokenType.YEARN_VAULT_OF_META_CURVE_LP:
156
- case tokenType_1.TokenType.YEARN_VAULT:
157
- lpPathFinder = new yVault_1.YearnVaultPathFinder(nextToken);
158
- break;
159
- case tokenType_1.TokenType.CONVEX_LP_TOKEN:
160
- lpPathFinder = new convexLP_1.ConvexLPPathFinder();
161
- break;
162
- case tokenType_1.TokenType.META_CURVE_LP:
163
- case tokenType_1.TokenType.CURVE_LP:
164
- lpPathFinder = new curveLP_1.CurvePathFinder(nextToken);
165
- break;
166
- default:
167
- throw new Error("Token type not supported yet");
168
- }
169
- return [2 /*return*/, lpPathFinder.findWithdrawPaths(this)];
170
- });
171
- });
172
- };
173
- Path.prototype.clone = function () {
174
- return Object.assign(Object.create(Object.getPrototypeOf(this)), this);
175
- };
176
- return Path;
177
- }());
178
- exports.Path = Path;
@@ -1,2 +0,0 @@
1
- import { TokenType } from "../tokens/tokenType";
2
- export declare const priority: Record<TokenType, number>;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.priority = void 0;
5
- var tokenType_1 = require("../tokens/tokenType");
6
- exports.priority = (_a = {},
7
- _a[tokenType_1.TokenType.CONNECTOR] = 1,
8
- _a[tokenType_1.TokenType.NORMAL_TOKEN] = 2,
9
- _a[tokenType_1.TokenType.CURVE_LP] = 3,
10
- _a[tokenType_1.TokenType.YEARN_VAULT] = 3,
11
- _a[tokenType_1.TokenType.META_CURVE_LP] = 4,
12
- _a[tokenType_1.TokenType.YEARN_VAULT_OF_CURVE_LP] = 4,
13
- _a[tokenType_1.TokenType.CONVEX_LP_TOKEN] = 5,
14
- _a[tokenType_1.TokenType.YEARN_VAULT_OF_META_CURVE_LP] = 5,
15
- _a[tokenType_1.TokenType.CONVEX_STAKED_PHANTOM_TOKEN] = 5,
16
- _a[tokenType_1.TokenType.DIESEL_LP_TOKEN] = 6,
17
- _a);