@gearbox-protocol/sdk 1.5.7 → 1.5.10

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 (53) hide show
  1. package/lib/contracts/contracts.d.ts +1 -0
  2. package/lib/contracts/contracts.js +5 -1
  3. package/lib/core/adapter.d.ts +4 -9
  4. package/lib/core/adapter.js +2 -19
  5. package/lib/core/creditManager.d.ts +1 -1
  6. package/lib/core/creditManager.js +1 -1
  7. package/lib/core/trade.d.ts +20 -22
  8. package/lib/core/trade.js +108 -36
  9. package/lib/index.d.ts +0 -1
  10. package/lib/index.js +0 -1
  11. package/lib/parsers/txParser.d.ts +9 -1
  12. package/lib/parsers/txParser.js +11 -3
  13. package/lib/pathfinder/core.d.ts +22 -0
  14. package/lib/pathfinder/core.js +9 -0
  15. package/lib/pathfinder/pathOptions.d.ts +11 -0
  16. package/lib/pathfinder/pathOptions.js +74 -0
  17. package/lib/pathfinder/pathOptions.spec.d.ts +1 -0
  18. package/lib/pathfinder/pathOptions.spec.js +90 -0
  19. package/lib/pathfinder/pathfinder.d.ts +24 -0
  20. package/lib/pathfinder/pathfinder.js +177 -0
  21. package/lib/pathfinder/pathfinder.spec.d.ts +1 -0
  22. package/lib/pathfinder/pathfinder.spec.js +21 -0
  23. package/lib/types/contracts/interfaces/IAddressProvider.sol/IAddressProvider.d.ts +9 -1
  24. package/lib/types/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/ILidoV1Adapter.d.ts +17 -1
  25. package/lib/types/contracts/pathfinder/interfaces/IClosePathResolver.d.ts +4 -1
  26. package/lib/types/contracts/pathfinder/interfaces/IDepositor.sol/IDepositor.d.ts +6 -3
  27. package/lib/types/contracts/pathfinder/interfaces/IDepositor.sol/IDepositorOptions.d.ts +7 -4
  28. package/lib/types/contracts/pathfinder/interfaces/ILPWorker.sol/ILPWorker.d.ts +4 -1
  29. package/lib/types/contracts/pathfinder/interfaces/ILPWorker.sol/ILPWorkerOptions.d.ts +4 -1
  30. package/lib/types/contracts/pathfinder/interfaces/IPathFinder.d.ts +20 -7
  31. package/lib/types/contracts/pathfinder/interfaces/IPathResolver.d.ts +5 -2
  32. package/lib/types/contracts/pathfinder/interfaces/ISwapAggregator.d.ts +8 -5
  33. package/lib/types/contracts/pathfinder/interfaces/IWithdrawer.sol/IWithdrawer.d.ts +7 -4
  34. package/lib/types/contracts/pathfinder/interfaces/IWithdrawer.sol/IWithdrawerOptions.d.ts +7 -4
  35. package/lib/types/factories/contracts/interfaces/IAddressProvider.sol/IAddressProvider__factory.js +13 -0
  36. package/lib/types/factories/contracts/interfaces/adapters/lido/ILidoV1Adapter.sol/ILidoV1Adapter__factory.js +26 -0
  37. package/lib/types/factories/contracts/pathfinder/interfaces/IClosePathResolver__factory.js +10 -0
  38. package/lib/types/factories/contracts/pathfinder/interfaces/IDepositor.sol/IDepositorOptions__factory.js +40 -0
  39. package/lib/types/factories/contracts/pathfinder/interfaces/IDepositor.sol/IDepositor__factory.js +30 -0
  40. package/lib/types/factories/contracts/pathfinder/interfaces/ILPWorker.sol/ILPWorkerOptions__factory.js +10 -0
  41. package/lib/types/factories/contracts/pathfinder/interfaces/ILPWorker.sol/ILPWorker__factory.js +10 -0
  42. package/lib/types/factories/contracts/pathfinder/interfaces/IPathFinder__factory.d.ts +7 -17
  43. package/lib/types/factories/contracts/pathfinder/interfaces/IPathFinder__factory.js +10 -0
  44. package/lib/types/factories/contracts/pathfinder/interfaces/IPathResolver__factory.js +20 -0
  45. package/lib/types/factories/contracts/pathfinder/interfaces/ISwapAggregator__factory.js +50 -0
  46. package/lib/types/factories/contracts/pathfinder/interfaces/IWithdrawer.sol/IWithdrawerOptions__factory.js +40 -0
  47. package/lib/types/factories/contracts/pathfinder/interfaces/IWithdrawer.sol/IWithdrawer__factory.js +40 -0
  48. package/lib/types/factories/contracts/support/MultiCall.sol/Multicall2__factory.d.ts +1 -1
  49. package/lib/types/factories/contracts/support/MultiCall.sol/Multicall2__factory.js +1 -1
  50. package/lib/utils/multicall.d.ts +2 -2
  51. package/package.json +3 -1
  52. package/lib/tokens/connectors.d.ts +0 -2
  53. package/lib/tokens/connectors.js +0 -9
@@ -0,0 +1,24 @@
1
+ import { Provider } from "@ethersproject/abstract-provider";
2
+ import { BigNumber, BigNumberish, Signer } from "ethers";
3
+ import { NetworkType } from "../core/constants";
4
+ import { CreditAccountData } from "../core/creditAccount";
5
+ import { CreditManagerData } from "../core/creditManager";
6
+ import { SupportedToken } from "../tokens/token";
7
+ import { IPathFinder } from "../types";
8
+ import { PathFinderOpenStrategyResult, PathFinderResult, SwapOperation } from "./core";
9
+ export interface CloseResult {
10
+ amount: BigNumberish;
11
+ gasUsage: BigNumberish;
12
+ }
13
+ export declare class PathFinder {
14
+ pathFinder: IPathFinder;
15
+ network: NetworkType;
16
+ static connectors: Array<SupportedToken>;
17
+ protected readonly _connectors: Array<string>;
18
+ constructor(address: string, provider: Signer | Provider, network?: NetworkType, connectors?: Array<SupportedToken>);
19
+ findAllSwaps(creditAccount: CreditAccountData, swapOperation: SwapOperation, tokenIn: SupportedToken | string, tokenOut: SupportedToken | string, amount: BigNumberish, slippage: number): Promise<Array<PathFinderResult>>;
20
+ findOneTokenPath(creditAccount: CreditAccountData, tokenIn: SupportedToken | string, tokenOut: SupportedToken | string, amount: BigNumberish, slippage: number): Promise<PathFinderResult>;
21
+ findOpenStrategyPath(cm: CreditManagerData, expectedBalances: Record<SupportedToken | string, BigNumberish>, target: SupportedToken | string, slippage: number): Promise<PathFinderOpenStrategyResult>;
22
+ findBestClosePath(creditAccount: CreditAccountData, slippage: number): Promise<BigNumber>;
23
+ static compare(r1: CloseResult, r2: CloseResult, gasPriceRAY: BigNumberish): CloseResult;
24
+ }
@@ -0,0 +1,177 @@
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.PathFinder = void 0;
40
+ var ethers_1 = require("ethers");
41
+ var constants_1 = require("../core/constants");
42
+ var token_1 = require("../tokens/token");
43
+ var types_1 = require("../types");
44
+ var pathOptions_1 = require("./pathOptions");
45
+ var MAX_GAS_PER_ROUTE = 14e6;
46
+ var GAS_PER_BLOCK = 30e6;
47
+ var PathFinder = /** @class */ (function () {
48
+ function PathFinder(address, provider, network, connectors) {
49
+ if (network === void 0) { network = "Mainnet"; }
50
+ var _this = this;
51
+ this.pathFinder = types_1.IPathFinder__factory.connect(address, provider);
52
+ this.network = network;
53
+ this._connectors = (connectors || PathFinder.connectors).map(function (c) { return token_1.tokenDataByNetwork[_this.network][c]; });
54
+ }
55
+ PathFinder.prototype.findAllSwaps = function (creditAccount, swapOperation, tokenIn, tokenOut, amount, slippage) {
56
+ return __awaiter(this, void 0, void 0, function () {
57
+ var swapTask, results;
58
+ return __generator(this, function (_a) {
59
+ switch (_a.label) {
60
+ case 0:
61
+ swapTask = {
62
+ swapOperation: swapOperation,
63
+ creditAccount: creditAccount.addr,
64
+ tokenIn: token_1.tokenDataByNetwork[this.network][tokenIn] || tokenIn,
65
+ tokenOut: token_1.tokenDataByNetwork[this.network][tokenOut] ||
66
+ tokenOut,
67
+ connectors: this._connectors,
68
+ amount: amount,
69
+ slippage: slippage,
70
+ externalSlippage: false,
71
+ };
72
+ return [4 /*yield*/, this.pathFinder.callStatic.findAllSwaps(swapTask)];
73
+ case 1:
74
+ results = _a.sent();
75
+ return [2 /*return*/, results.map(function (r) { return ({
76
+ amount: ethers_1.BigNumber.from(r.amount),
77
+ gasUsage: r.gasUsage.toNumber(),
78
+ calls: r.calls,
79
+ }); })];
80
+ }
81
+ });
82
+ });
83
+ };
84
+ PathFinder.prototype.findOneTokenPath = function (creditAccount, tokenIn, tokenOut, amount, slippage) {
85
+ return __awaiter(this, void 0, void 0, function () {
86
+ var tokenInAddr, result;
87
+ return __generator(this, function (_a) {
88
+ switch (_a.label) {
89
+ case 0:
90
+ tokenInAddr = token_1.tokenDataByNetwork[this.network][tokenIn] || tokenIn;
91
+ if (creditAccount.balances[tokenInAddr.toLowerCase()].lt(amount)) {
92
+ throw new Error("Not enough balance for token ".concat(tokenIn));
93
+ }
94
+ return [4 /*yield*/, this.pathFinder.callStatic.findOneTokenPath(tokenInAddr, amount, token_1.tokenDataByNetwork[this.network][tokenOut] || tokenOut, creditAccount.addr, this._connectors, slippage)];
95
+ case 1:
96
+ result = _a.sent();
97
+ return [2 /*return*/, {
98
+ amount: ethers_1.BigNumber.from(result.amount),
99
+ calls: result.calls,
100
+ }];
101
+ }
102
+ });
103
+ });
104
+ };
105
+ PathFinder.prototype.findOpenStrategyPath = function (cm, expectedBalances, target, slippage) {
106
+ return __awaiter(this, void 0, void 0, function () {
107
+ var targetAddr, expectedBalancesAddr, balances, result, balancesAfter;
108
+ var _this = this;
109
+ return __generator(this, function (_a) {
110
+ switch (_a.label) {
111
+ case 0:
112
+ targetAddr = token_1.tokenDataByNetwork[this.network][target] || target;
113
+ expectedBalancesAddr = Object.entries(expectedBalances).reduce(function (acc, _a) {
114
+ var token = _a[0], balance = _a[1];
115
+ var tokenAddr = token_1.tokenDataByNetwork[_this.network][token] || token;
116
+ acc[tokenAddr.toLowerCase()] = balance;
117
+ return acc;
118
+ }, {});
119
+ balances = cm.collateralTokens.map(function (token) { return ({
120
+ token: token,
121
+ balance: expectedBalancesAddr[token] || 0,
122
+ }); });
123
+ return [4 /*yield*/, this.pathFinder.callStatic.findOpenStrategyPath(cm.address, balances, targetAddr, this._connectors, slippage)];
124
+ case 1:
125
+ result = _a.sent();
126
+ balancesAfter = result[0].reduce(function (acc, b) {
127
+ acc[b.token.toLowerCase()] = ethers_1.BigNumber.from(b.balance);
128
+ return acc;
129
+ }, {});
130
+ return [2 /*return*/, {
131
+ balances: balancesAfter,
132
+ calls: result[1].calls,
133
+ }];
134
+ }
135
+ });
136
+ });
137
+ };
138
+ PathFinder.prototype.findBestClosePath = function (creditAccount, slippage) {
139
+ return __awaiter(this, void 0, void 0, function () {
140
+ var loopsPerTx, pathOptions, requests, results, bestResult;
141
+ var _this = this;
142
+ return __generator(this, function (_a) {
143
+ switch (_a.label) {
144
+ case 0:
145
+ loopsPerTx = GAS_PER_BLOCK / MAX_GAS_PER_ROUTE;
146
+ pathOptions = pathOptions_1.PathOptionFactory.generatePathOptions(creditAccount.allBalances, loopsPerTx);
147
+ requests = pathOptions.map(function (po) {
148
+ return _this.pathFinder.callStatic.findBestClosePath(creditAccount.addr, _this._connectors, slippage, po, loopsPerTx, false);
149
+ });
150
+ return [4 /*yield*/, Promise.all(requests)];
151
+ case 1:
152
+ results = _a.sent();
153
+ bestResult = results.reduce(function (best, _a) {
154
+ var pathFinderResult = _a[0], gasPriceRAY = _a[1];
155
+ return PathFinder.compare(best, pathFinderResult, gasPriceRAY);
156
+ }, {
157
+ amount: ethers_1.BigNumber.from(0),
158
+ gasUsage: 0,
159
+ });
160
+ return [2 /*return*/, ethers_1.BigNumber.from(bestResult.amount)];
161
+ }
162
+ });
163
+ });
164
+ };
165
+ PathFinder.compare = function (r1, r2, gasPriceRAY) {
166
+ var comparator = function (_a, gasPrice) {
167
+ var amount = _a.amount, gasUsage = _a.gasUsage;
168
+ return ethers_1.BigNumber.from(amount).sub(ethers_1.BigNumber.from(gasUsage).mul(gasPrice).div(constants_1.RAY));
169
+ };
170
+ return comparator(r1, gasPriceRAY).gt(comparator(r2, gasPriceRAY))
171
+ ? r1
172
+ : r2;
173
+ };
174
+ PathFinder.connectors = ["USDC", "WETH", "DAI"];
175
+ return PathFinder;
176
+ }());
177
+ exports.PathFinder = PathFinder;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var chai_1 = require("chai");
4
+ var constants_1 = require("../core/constants");
5
+ var pathfinder_1 = require("./pathfinder");
6
+ describe("PathFinder test", function () {
7
+ it("compare works correctly", function () {
8
+ var r1 = {
9
+ amount: 2000,
10
+ gasUsage: 1000,
11
+ };
12
+ var r2 = {
13
+ amount: 3000,
14
+ gasUsage: 2000,
15
+ };
16
+ var result = pathfinder_1.PathFinder.compare(r1, r2, constants_1.RAY);
17
+ (0, chai_1.expect)(result).to.be.eql(r2);
18
+ result = pathfinder_1.PathFinder.compare(r1, r2, constants_1.RAY.mul(2));
19
+ (0, chai_1.expect)(result).to.be.eql(r1);
20
+ });
21
+ });
@@ -9,18 +9,20 @@ export interface IAddressProviderInterface extends utils.Interface {
9
9
  "getContractsRegister()": FunctionFragment;
10
10
  "getDataCompressor()": FunctionFragment;
11
11
  "getGearToken()": FunctionFragment;
12
+ "getLeveragedActions()": FunctionFragment;
12
13
  "getPriceOracle()": FunctionFragment;
13
14
  "getTreasuryContract()": FunctionFragment;
14
15
  "getWETHGateway()": FunctionFragment;
15
16
  "getWethToken()": FunctionFragment;
16
17
  "version()": FunctionFragment;
17
18
  };
18
- getFunction(nameOrSignatureOrTopic: "getACL" | "getAccountFactory" | "getContractsRegister" | "getDataCompressor" | "getGearToken" | "getPriceOracle" | "getTreasuryContract" | "getWETHGateway" | "getWethToken" | "version"): FunctionFragment;
19
+ getFunction(nameOrSignatureOrTopic: "getACL" | "getAccountFactory" | "getContractsRegister" | "getDataCompressor" | "getGearToken" | "getLeveragedActions" | "getPriceOracle" | "getTreasuryContract" | "getWETHGateway" | "getWethToken" | "version"): FunctionFragment;
19
20
  encodeFunctionData(functionFragment: "getACL", values?: undefined): string;
20
21
  encodeFunctionData(functionFragment: "getAccountFactory", values?: undefined): string;
21
22
  encodeFunctionData(functionFragment: "getContractsRegister", values?: undefined): string;
22
23
  encodeFunctionData(functionFragment: "getDataCompressor", values?: undefined): string;
23
24
  encodeFunctionData(functionFragment: "getGearToken", values?: undefined): string;
25
+ encodeFunctionData(functionFragment: "getLeveragedActions", values?: undefined): string;
24
26
  encodeFunctionData(functionFragment: "getPriceOracle", values?: undefined): string;
25
27
  encodeFunctionData(functionFragment: "getTreasuryContract", values?: undefined): string;
26
28
  encodeFunctionData(functionFragment: "getWETHGateway", values?: undefined): string;
@@ -31,6 +33,7 @@ export interface IAddressProviderInterface extends utils.Interface {
31
33
  decodeFunctionResult(functionFragment: "getContractsRegister", data: BytesLike): Result;
32
34
  decodeFunctionResult(functionFragment: "getDataCompressor", data: BytesLike): Result;
33
35
  decodeFunctionResult(functionFragment: "getGearToken", data: BytesLike): Result;
36
+ decodeFunctionResult(functionFragment: "getLeveragedActions", data: BytesLike): Result;
34
37
  decodeFunctionResult(functionFragment: "getPriceOracle", data: BytesLike): Result;
35
38
  decodeFunctionResult(functionFragment: "getTreasuryContract", data: BytesLike): Result;
36
39
  decodeFunctionResult(functionFragment: "getWETHGateway", data: BytesLike): Result;
@@ -70,6 +73,7 @@ export interface IAddressProvider extends BaseContract {
70
73
  getContractsRegister(overrides?: CallOverrides): Promise<[string]>;
71
74
  getDataCompressor(overrides?: CallOverrides): Promise<[string]>;
72
75
  getGearToken(overrides?: CallOverrides): Promise<[string]>;
76
+ getLeveragedActions(overrides?: CallOverrides): Promise<[string]>;
73
77
  getPriceOracle(overrides?: CallOverrides): Promise<[string]>;
74
78
  getTreasuryContract(overrides?: CallOverrides): Promise<[string]>;
75
79
  getWETHGateway(overrides?: CallOverrides): Promise<[string]>;
@@ -81,6 +85,7 @@ export interface IAddressProvider extends BaseContract {
81
85
  getContractsRegister(overrides?: CallOverrides): Promise<string>;
82
86
  getDataCompressor(overrides?: CallOverrides): Promise<string>;
83
87
  getGearToken(overrides?: CallOverrides): Promise<string>;
88
+ getLeveragedActions(overrides?: CallOverrides): Promise<string>;
84
89
  getPriceOracle(overrides?: CallOverrides): Promise<string>;
85
90
  getTreasuryContract(overrides?: CallOverrides): Promise<string>;
86
91
  getWETHGateway(overrides?: CallOverrides): Promise<string>;
@@ -92,6 +97,7 @@ export interface IAddressProvider extends BaseContract {
92
97
  getContractsRegister(overrides?: CallOverrides): Promise<string>;
93
98
  getDataCompressor(overrides?: CallOverrides): Promise<string>;
94
99
  getGearToken(overrides?: CallOverrides): Promise<string>;
100
+ getLeveragedActions(overrides?: CallOverrides): Promise<string>;
95
101
  getPriceOracle(overrides?: CallOverrides): Promise<string>;
96
102
  getTreasuryContract(overrides?: CallOverrides): Promise<string>;
97
103
  getWETHGateway(overrides?: CallOverrides): Promise<string>;
@@ -108,6 +114,7 @@ export interface IAddressProvider extends BaseContract {
108
114
  getContractsRegister(overrides?: CallOverrides): Promise<BigNumber>;
109
115
  getDataCompressor(overrides?: CallOverrides): Promise<BigNumber>;
110
116
  getGearToken(overrides?: CallOverrides): Promise<BigNumber>;
117
+ getLeveragedActions(overrides?: CallOverrides): Promise<BigNumber>;
111
118
  getPriceOracle(overrides?: CallOverrides): Promise<BigNumber>;
112
119
  getTreasuryContract(overrides?: CallOverrides): Promise<BigNumber>;
113
120
  getWETHGateway(overrides?: CallOverrides): Promise<BigNumber>;
@@ -120,6 +127,7 @@ export interface IAddressProvider extends BaseContract {
120
127
  getContractsRegister(overrides?: CallOverrides): Promise<PopulatedTransaction>;
121
128
  getDataCompressor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
122
129
  getGearToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
130
+ getLeveragedActions(overrides?: CallOverrides): Promise<PopulatedTransaction>;
123
131
  getPriceOracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
124
132
  getTreasuryContract(overrides?: CallOverrides): Promise<PopulatedTransaction>;
125
133
  getWETHGateway(overrides?: CallOverrides): Promise<PopulatedTransaction>;
@@ -19,13 +19,15 @@ export interface ILidoV1AdapterInterface extends utils.Interface {
19
19
  "name()": FunctionFragment;
20
20
  "setLimit(uint256)": FunctionFragment;
21
21
  "sharesOf(address)": FunctionFragment;
22
+ "stETH()": FunctionFragment;
22
23
  "submit(uint256)": FunctionFragment;
23
24
  "submitAll()": FunctionFragment;
24
25
  "symbol()": FunctionFragment;
25
26
  "targetContract()": FunctionFragment;
26
27
  "totalSupply()": FunctionFragment;
28
+ "weth()": FunctionFragment;
27
29
  };
28
- getFunction(nameOrSignatureOrTopic: "_gearboxAdapterType" | "_gearboxAdapterVersion" | "allowance" | "balanceOf" | "creditFacade" | "creditManager" | "decimals" | "getFee" | "getPooledEthByShares" | "getSharesByPooledEth" | "getTotalPooledEther" | "getTotalShares" | "name" | "setLimit" | "sharesOf" | "submit" | "submitAll" | "symbol" | "targetContract" | "totalSupply"): FunctionFragment;
30
+ getFunction(nameOrSignatureOrTopic: "_gearboxAdapterType" | "_gearboxAdapterVersion" | "allowance" | "balanceOf" | "creditFacade" | "creditManager" | "decimals" | "getFee" | "getPooledEthByShares" | "getSharesByPooledEth" | "getTotalPooledEther" | "getTotalShares" | "name" | "setLimit" | "sharesOf" | "stETH" | "submit" | "submitAll" | "symbol" | "targetContract" | "totalSupply" | "weth"): FunctionFragment;
29
31
  encodeFunctionData(functionFragment: "_gearboxAdapterType", values?: undefined): string;
30
32
  encodeFunctionData(functionFragment: "_gearboxAdapterVersion", values?: undefined): string;
31
33
  encodeFunctionData(functionFragment: "allowance", values: [string, string]): string;
@@ -41,11 +43,13 @@ export interface ILidoV1AdapterInterface extends utils.Interface {
41
43
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
42
44
  encodeFunctionData(functionFragment: "setLimit", values: [BigNumberish]): string;
43
45
  encodeFunctionData(functionFragment: "sharesOf", values: [string]): string;
46
+ encodeFunctionData(functionFragment: "stETH", values?: undefined): string;
44
47
  encodeFunctionData(functionFragment: "submit", values: [BigNumberish]): string;
45
48
  encodeFunctionData(functionFragment: "submitAll", values?: undefined): string;
46
49
  encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
47
50
  encodeFunctionData(functionFragment: "targetContract", values?: undefined): string;
48
51
  encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string;
52
+ encodeFunctionData(functionFragment: "weth", values?: undefined): string;
49
53
  decodeFunctionResult(functionFragment: "_gearboxAdapterType", data: BytesLike): Result;
50
54
  decodeFunctionResult(functionFragment: "_gearboxAdapterVersion", data: BytesLike): Result;
51
55
  decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
@@ -61,11 +65,13 @@ export interface ILidoV1AdapterInterface extends utils.Interface {
61
65
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
62
66
  decodeFunctionResult(functionFragment: "setLimit", data: BytesLike): Result;
63
67
  decodeFunctionResult(functionFragment: "sharesOf", data: BytesLike): Result;
68
+ decodeFunctionResult(functionFragment: "stETH", data: BytesLike): Result;
64
69
  decodeFunctionResult(functionFragment: "submit", data: BytesLike): Result;
65
70
  decodeFunctionResult(functionFragment: "submitAll", data: BytesLike): Result;
66
71
  decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
67
72
  decodeFunctionResult(functionFragment: "targetContract", data: BytesLike): Result;
68
73
  decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result;
74
+ decodeFunctionResult(functionFragment: "weth", data: BytesLike): Result;
69
75
  events: {
70
76
  "NewLimit(uint256)": EventFragment;
71
77
  };
@@ -108,6 +114,7 @@ export interface ILidoV1Adapter extends BaseContract {
108
114
  from?: string | Promise<string>;
109
115
  }): Promise<ContractTransaction>;
110
116
  sharesOf(_account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
117
+ stETH(overrides?: CallOverrides): Promise<[string]>;
111
118
  submit(amount: BigNumberish, overrides?: Overrides & {
112
119
  from?: string | Promise<string>;
113
120
  }): Promise<ContractTransaction>;
@@ -117,6 +124,7 @@ export interface ILidoV1Adapter extends BaseContract {
117
124
  symbol(overrides?: CallOverrides): Promise<[string]>;
118
125
  targetContract(overrides?: CallOverrides): Promise<[string]>;
119
126
  totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
127
+ weth(overrides?: CallOverrides): Promise<[string]>;
120
128
  };
121
129
  _gearboxAdapterType(overrides?: CallOverrides): Promise<number>;
122
130
  _gearboxAdapterVersion(overrides?: CallOverrides): Promise<number>;
@@ -135,6 +143,7 @@ export interface ILidoV1Adapter extends BaseContract {
135
143
  from?: string | Promise<string>;
136
144
  }): Promise<ContractTransaction>;
137
145
  sharesOf(_account: string, overrides?: CallOverrides): Promise<BigNumber>;
146
+ stETH(overrides?: CallOverrides): Promise<string>;
138
147
  submit(amount: BigNumberish, overrides?: Overrides & {
139
148
  from?: string | Promise<string>;
140
149
  }): Promise<ContractTransaction>;
@@ -144,6 +153,7 @@ export interface ILidoV1Adapter extends BaseContract {
144
153
  symbol(overrides?: CallOverrides): Promise<string>;
145
154
  targetContract(overrides?: CallOverrides): Promise<string>;
146
155
  totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
156
+ weth(overrides?: CallOverrides): Promise<string>;
147
157
  callStatic: {
148
158
  _gearboxAdapterType(overrides?: CallOverrides): Promise<number>;
149
159
  _gearboxAdapterVersion(overrides?: CallOverrides): Promise<number>;
@@ -160,11 +170,13 @@ export interface ILidoV1Adapter extends BaseContract {
160
170
  name(overrides?: CallOverrides): Promise<string>;
161
171
  setLimit(_limit: BigNumberish, overrides?: CallOverrides): Promise<void>;
162
172
  sharesOf(_account: string, overrides?: CallOverrides): Promise<BigNumber>;
173
+ stETH(overrides?: CallOverrides): Promise<string>;
163
174
  submit(amount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
164
175
  submitAll(overrides?: CallOverrides): Promise<BigNumber>;
165
176
  symbol(overrides?: CallOverrides): Promise<string>;
166
177
  targetContract(overrides?: CallOverrides): Promise<string>;
167
178
  totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
179
+ weth(overrides?: CallOverrides): Promise<string>;
168
180
  };
169
181
  filters: {
170
182
  "NewLimit(uint256)"(_limit?: null): NewLimitEventFilter;
@@ -188,6 +200,7 @@ export interface ILidoV1Adapter extends BaseContract {
188
200
  from?: string | Promise<string>;
189
201
  }): Promise<BigNumber>;
190
202
  sharesOf(_account: string, overrides?: CallOverrides): Promise<BigNumber>;
203
+ stETH(overrides?: CallOverrides): Promise<BigNumber>;
191
204
  submit(amount: BigNumberish, overrides?: Overrides & {
192
205
  from?: string | Promise<string>;
193
206
  }): Promise<BigNumber>;
@@ -197,6 +210,7 @@ export interface ILidoV1Adapter extends BaseContract {
197
210
  symbol(overrides?: CallOverrides): Promise<BigNumber>;
198
211
  targetContract(overrides?: CallOverrides): Promise<BigNumber>;
199
212
  totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
213
+ weth(overrides?: CallOverrides): Promise<BigNumber>;
200
214
  };
201
215
  populateTransaction: {
202
216
  _gearboxAdapterType(overrides?: CallOverrides): Promise<PopulatedTransaction>;
@@ -216,6 +230,7 @@ export interface ILidoV1Adapter extends BaseContract {
216
230
  from?: string | Promise<string>;
217
231
  }): Promise<PopulatedTransaction>;
218
232
  sharesOf(_account: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
233
+ stETH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
219
234
  submit(amount: BigNumberish, overrides?: Overrides & {
220
235
  from?: string | Promise<string>;
221
236
  }): Promise<PopulatedTransaction>;
@@ -225,5 +240,6 @@ export interface ILidoV1Adapter extends BaseContract {
225
240
  symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
226
241
  targetContract(overrides?: CallOverrides): Promise<PopulatedTransaction>;
227
242
  totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
243
+ weth(overrides?: CallOverrides): Promise<PopulatedTransaction>;
228
244
  };
229
245
  }
@@ -35,6 +35,7 @@ export declare type StrategyPathTaskStruct = {
35
35
  connectors: string[];
36
36
  adapters: string[];
37
37
  slippagePerStep: BigNumberish;
38
+ force: boolean;
38
39
  targetType: BigNumberish;
39
40
  foundAdapters: TokenAdaptersStruct[];
40
41
  gasPriceTargetRAY: BigNumberish;
@@ -50,6 +51,7 @@ export declare type StrategyPathTaskStructOutput = [
50
51
  string[],
51
52
  string[],
52
53
  BigNumber,
54
+ boolean,
53
55
  number,
54
56
  TokenAdaptersStructOutput[],
55
57
  BigNumber,
@@ -64,6 +66,7 @@ export declare type StrategyPathTaskStructOutput = [
64
66
  connectors: string[];
65
67
  adapters: string[];
66
68
  slippagePerStep: BigNumber;
69
+ force: boolean;
67
70
  targetType: number;
68
71
  foundAdapters: TokenAdaptersStructOutput[];
69
72
  gasPriceTargetRAY: BigNumber;
@@ -84,7 +87,7 @@ export declare type PathOptionStructOutput = [string, number, number] & {
84
87
  };
85
88
  export interface IClosePathResolverInterface extends utils.Interface {
86
89
  functions: {
87
- "findBestClosePath((address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]),(address,uint8,uint8)[],uint256)": FunctionFragment;
90
+ "findBestClosePath((address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]),(address,uint8,uint8)[],uint256)": FunctionFragment;
88
91
  "getComponentId()": FunctionFragment;
89
92
  "version()": FunctionFragment;
90
93
  };
@@ -35,6 +35,7 @@ export declare type StrategyPathTaskStruct = {
35
35
  connectors: string[];
36
36
  adapters: string[];
37
37
  slippagePerStep: BigNumberish;
38
+ force: boolean;
38
39
  targetType: BigNumberish;
39
40
  foundAdapters: TokenAdaptersStruct[];
40
41
  gasPriceTargetRAY: BigNumberish;
@@ -50,6 +51,7 @@ export declare type StrategyPathTaskStructOutput = [
50
51
  string[],
51
52
  string[],
52
53
  BigNumber,
54
+ boolean,
53
55
  number,
54
56
  TokenAdaptersStructOutput[],
55
57
  BigNumber,
@@ -64,6 +66,7 @@ export declare type StrategyPathTaskStructOutput = [
64
66
  connectors: string[];
65
67
  adapters: string[];
66
68
  slippagePerStep: BigNumber;
69
+ force: boolean;
67
70
  targetType: number;
68
71
  foundAdapters: TokenAdaptersStructOutput[];
69
72
  gasPriceTargetRAY: BigNumber;
@@ -74,10 +77,10 @@ export declare type StrategyPathTaskStructOutput = [
74
77
  };
75
78
  export interface IDepositorInterface extends utils.Interface {
76
79
  functions: {
77
- "deposit(uint256,address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
78
- "depositAll(address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
80
+ "deposit(uint256,address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
81
+ "depositAll(address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
79
82
  "getComponentId()": FunctionFragment;
80
- "getUnderlying(address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
83
+ "getUnderlying(address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
81
84
  "version()": FunctionFragment;
82
85
  };
83
86
  getFunction(nameOrSignatureOrTopic: "deposit" | "depositAll" | "getComponentId" | "getUnderlying" | "version"): FunctionFragment;
@@ -35,6 +35,7 @@ export declare type StrategyPathTaskStruct = {
35
35
  connectors: string[];
36
36
  adapters: string[];
37
37
  slippagePerStep: BigNumberish;
38
+ force: boolean;
38
39
  targetType: BigNumberish;
39
40
  foundAdapters: TokenAdaptersStruct[];
40
41
  gasPriceTargetRAY: BigNumberish;
@@ -50,6 +51,7 @@ export declare type StrategyPathTaskStructOutput = [
50
51
  string[],
51
52
  string[],
52
53
  BigNumber,
54
+ boolean,
53
55
  number,
54
56
  TokenAdaptersStructOutput[],
55
57
  BigNumber,
@@ -64,6 +66,7 @@ export declare type StrategyPathTaskStructOutput = [
64
66
  connectors: string[];
65
67
  adapters: string[];
66
68
  slippagePerStep: BigNumber;
69
+ force: boolean;
67
70
  targetType: number;
68
71
  foundAdapters: TokenAdaptersStructOutput[];
69
72
  gasPriceTargetRAY: BigNumber;
@@ -74,11 +77,11 @@ export declare type StrategyPathTaskStructOutput = [
74
77
  };
75
78
  export interface IDepositorOptionsInterface extends utils.Interface {
76
79
  functions: {
77
- "deposit(uint8,address,uint256,address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
78
- "depositAll(uint8,address,address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
79
- "depositAllTokens(address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
80
+ "deposit(uint8,address,uint256,address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
81
+ "depositAll(uint8,address,address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
82
+ "depositAllTokens(address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
80
83
  "getComponentId()": FunctionFragment;
81
- "getUnderlyings(uint8,address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
84
+ "getUnderlyings(uint8,address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
82
85
  "version()": FunctionFragment;
83
86
  };
84
87
  getFunction(nameOrSignatureOrTopic: "deposit" | "depositAll" | "depositAllTokens" | "getComponentId" | "getUnderlyings" | "version"): FunctionFragment;
@@ -35,6 +35,7 @@ export declare type StrategyPathTaskStruct = {
35
35
  connectors: string[];
36
36
  adapters: string[];
37
37
  slippagePerStep: BigNumberish;
38
+ force: boolean;
38
39
  targetType: BigNumberish;
39
40
  foundAdapters: TokenAdaptersStruct[];
40
41
  gasPriceTargetRAY: BigNumberish;
@@ -50,6 +51,7 @@ export declare type StrategyPathTaskStructOutput = [
50
51
  string[],
51
52
  string[],
52
53
  BigNumber,
54
+ boolean,
53
55
  number,
54
56
  TokenAdaptersStructOutput[],
55
57
  BigNumber,
@@ -64,6 +66,7 @@ export declare type StrategyPathTaskStructOutput = [
64
66
  connectors: string[];
65
67
  adapters: string[];
66
68
  slippagePerStep: BigNumber;
69
+ force: boolean;
67
70
  targetType: number;
68
71
  foundAdapters: TokenAdaptersStructOutput[];
69
72
  gasPriceTargetRAY: BigNumber;
@@ -75,7 +78,7 @@ export declare type StrategyPathTaskStructOutput = [
75
78
  export interface ILPWorkerInterface extends utils.Interface {
76
79
  functions: {
77
80
  "getComponentId()": FunctionFragment;
78
- "getUnderlying(address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
81
+ "getUnderlying(address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
79
82
  "version()": FunctionFragment;
80
83
  };
81
84
  getFunction(nameOrSignatureOrTopic: "getComponentId" | "getUnderlying" | "version"): FunctionFragment;
@@ -35,6 +35,7 @@ export declare type StrategyPathTaskStruct = {
35
35
  connectors: string[];
36
36
  adapters: string[];
37
37
  slippagePerStep: BigNumberish;
38
+ force: boolean;
38
39
  targetType: BigNumberish;
39
40
  foundAdapters: TokenAdaptersStruct[];
40
41
  gasPriceTargetRAY: BigNumberish;
@@ -50,6 +51,7 @@ export declare type StrategyPathTaskStructOutput = [
50
51
  string[],
51
52
  string[],
52
53
  BigNumber,
54
+ boolean,
53
55
  number,
54
56
  TokenAdaptersStructOutput[],
55
57
  BigNumber,
@@ -64,6 +66,7 @@ export declare type StrategyPathTaskStructOutput = [
64
66
  connectors: string[];
65
67
  adapters: string[];
66
68
  slippagePerStep: BigNumber;
69
+ force: boolean;
67
70
  targetType: number;
68
71
  foundAdapters: TokenAdaptersStructOutput[];
69
72
  gasPriceTargetRAY: BigNumber;
@@ -75,7 +78,7 @@ export declare type StrategyPathTaskStructOutput = [
75
78
  export interface ILPWorkerOptionsInterface extends utils.Interface {
76
79
  functions: {
77
80
  "getComponentId()": FunctionFragment;
78
- "getUnderlyings(uint8,address,(address,(address,uint256)[],address,address[],address[],uint256,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
81
+ "getUnderlyings(uint8,address,(address,(address,uint256)[],address,address[],address[],uint256,bool,uint8,(address,address,address)[],uint256,uint256,uint256,uint256,(address,bytes)[]))": FunctionFragment;
79
82
  "version()": FunctionFragment;
80
83
  };
81
84
  getFunction(nameOrSignatureOrTopic: "getComponentId" | "getUnderlyings" | "version"): FunctionFragment;