@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.
- package/lib/core/creditAccount.js +1 -0
- package/lib/core/creditManager.js +10 -8
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -1
- package/lib/tokens/normal.d.ts +1 -1
- package/lib/tokens/normal.js +4 -4
- package/lib/tokens/token.js +6 -6
- package/lib/tokens/tokenType.d.ts +9 -10
- package/lib/tokens/tokenType.js +10 -10
- package/lib/types/contracts/interfaces/V1/{IPriceOracle.sol/IPriceOracleV2.d.ts → IPriceOracle.d.ts} +4 -4
- package/lib/types/contracts/interfaces/V1/{IPriceOracle.sol/IPriceOracleV2.js → IPriceOracle.js} +0 -0
- package/lib/types/contracts/interfaces/V1/index.d.ts +1 -2
- package/lib/types/contracts/pathfinder/interfaces/IDepositor.sol/IDepositorOptions.d.ts +31 -8
- package/lib/types/contracts/pathfinder/interfaces/IPathFinder.d.ts +36 -7
- package/lib/types/contracts/test/index.d.ts +2 -0
- package/lib/types/contracts/test/suites/index.d.ts +2 -0
- package/lib/types/contracts/{interfaces/V1/IPriceOracle.sol → test/suites}/index.js +0 -0
- package/lib/types/contracts/test/suites/mainnet/IPriceFeedsRegistry.d.ts +42 -0
- package/lib/types/contracts/test/suites/mainnet/IPriceFeedsRegistry.js +2 -0
- package/lib/types/contracts/test/suites/mainnet/ITokenTestSuite.d.ts +58 -0
- package/lib/types/contracts/test/suites/mainnet/ITokenTestSuite.js +2 -0
- package/lib/types/contracts/test/suites/mainnet/index.d.ts +2 -0
- package/lib/types/contracts/test/suites/mainnet/index.js +2 -0
- package/lib/types/factories/contracts/interfaces/V1/{IPriceOracle.sol/IPriceOracleV2__factory.d.ts → IPriceOracle__factory.d.ts} +4 -4
- package/lib/types/factories/contracts/interfaces/V1/{IPriceOracle.sol/IPriceOracleV2__factory.js → IPriceOracle__factory.js} +8 -8
- package/lib/types/factories/contracts/interfaces/V1/index.d.ts +1 -1
- package/lib/types/factories/contracts/interfaces/V1/index.js +3 -25
- package/lib/types/factories/contracts/pathfinder/interfaces/IDepositor.sol/IDepositorOptions__factory.js +235 -0
- package/lib/types/factories/contracts/pathfinder/interfaces/IPathFinder__factory.js +45 -28
- package/lib/types/factories/contracts/support/MultiCall.sol/Multicall2__factory.d.ts +1 -1
- package/lib/types/factories/contracts/support/MultiCall.sol/Multicall2__factory.js +1 -1
- package/lib/types/factories/contracts/test/index.d.ts +1 -0
- package/lib/types/factories/contracts/test/index.js +2 -1
- package/lib/types/factories/contracts/test/suites/index.d.ts +1 -0
- package/lib/types/factories/contracts/test/suites/index.js +30 -0
- package/lib/types/factories/contracts/test/suites/mainnet/IPriceFeedsRegistry__factory.d.ts +32 -0
- package/lib/types/factories/contracts/test/suites/mainnet/IPriceFeedsRegistry__factory.js +52 -0
- package/lib/types/factories/contracts/test/suites/mainnet/ITokenTestSuite__factory.d.ts +32 -0
- package/lib/types/factories/contracts/test/suites/mainnet/ITokenTestSuite__factory.js +90 -0
- package/lib/types/factories/contracts/test/suites/mainnet/index.d.ts +2 -0
- package/lib/types/factories/contracts/test/suites/mainnet/index.js +10 -0
- package/lib/types/index.d.ts +6 -0
- package/lib/types/index.js +7 -1
- package/lib/utils/extracter.d.ts +1 -1
- package/lib/utils/loading.js +1 -1
- package/package.json +1 -1
- package/lib/pathfinder/contracts.d.ts +0 -3
- package/lib/pathfinder/contracts.js +0 -15
- package/lib/pathfinder/convexLP.d.ts +0 -4
- package/lib/pathfinder/convexLP.js +0 -77
- package/lib/pathfinder/curveLP.d.ts +0 -9
- package/lib/pathfinder/curveLP.js +0 -95
- package/lib/pathfinder/path.d.ts +0 -34
- package/lib/pathfinder/path.js +0 -178
- package/lib/pathfinder/priority.d.ts +0 -2
- package/lib/pathfinder/priority.js +0 -17
- package/lib/pathfinder/trade.d.ts +0 -34
- package/lib/pathfinder/trade.js +0 -62
- package/lib/pathfinder/yVault.d.ts +0 -10
- package/lib/pathfinder/yVault.js +0 -100
- package/lib/types/contracts/interfaces/V1/IPriceOracle.sol/index.d.ts +0 -1
- package/lib/types/factories/contracts/interfaces/V1/IPriceOracle.sol/index.d.ts +0 -1
- 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,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; } });
|
package/lib/types/index.d.ts
CHANGED
|
@@ -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";
|
package/lib/types/index.js
CHANGED
|
@@ -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");
|
package/lib/utils/extracter.d.ts
CHANGED
|
@@ -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 {};
|
package/lib/utils/loading.js
CHANGED
|
@@ -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,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,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;
|
package/lib/pathfinder/path.d.ts
DELETED
|
@@ -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
|
-
}
|
package/lib/pathfinder/path.js
DELETED
|
@@ -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,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);
|