@gearbox-protocol/sdk 2.1.32 → 2.1.34
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/contracts/protocols.d.ts +0 -5
- package/lib/contracts/protocols.js +1 -43
- package/lib/core/creditManager.d.ts +3 -0
- package/lib/core/creditManager.js +22 -0
- package/lib/core/pool/index.d.ts +0 -1
- package/lib/core/pool/index.js +0 -1
- package/lib/core/trade.d.ts +29 -16
- package/lib/core/trade.js +67 -10
- package/lib/index.d.ts +0 -11
- package/lib/index.js +1 -14
- package/lib/parsers/txParser.js +1 -1
- package/lib/tokens/aave.d.ts +0 -3
- package/lib/tokens/aave.js +0 -57
- package/lib/tokens/balancer.d.ts +1 -11
- package/lib/tokens/balancer.js +3 -32
- package/lib/tokens/compound.d.ts +0 -2
- package/lib/tokens/compound.js +0 -36
- package/lib/tokens/convex.d.ts +2 -2
- package/lib/tokens/convex.js +9 -322
- package/lib/tokens/curveLP.d.ts +3 -4
- package/lib/tokens/curveLP.js +17 -240
- package/lib/tokens/decimals.js +1 -1
- package/lib/tokens/gear.d.ts +0 -2
- package/lib/tokens/normal.d.ts +0 -3
- package/lib/tokens/normal.js +0 -718
- package/lib/tokens/token.js +2 -2
- package/lib/tokens/tokens.spec.js +25 -4
- package/lib/tokens/yearn.d.ts +0 -4
- package/lib/tokens/yearn.js +0 -43
- package/lib/utils/multicall.d.ts +1 -1
- package/lib/utils/multicall.js +21 -6
- package/package.json +1 -1
- package/lib/core/adapter.d.ts +0 -20
- package/lib/core/adapter.js +0 -20
- package/lib/core/creditOperation.d.ts +0 -9
- package/lib/core/creditOperation.js +0 -2
- package/lib/core/operations.d.ts +0 -22
- package/lib/core/operations.js +0 -26
- package/lib/core/pool/operation.d.ts +0 -28
- package/lib/core/pool/operation.js +0 -36
- package/lib/pathfinder/tradeTypes.d.ts +0 -113
- package/lib/pathfinder/tradeTypes.js +0 -28
- package/lib/strategies/convex.d.ts +0 -57
- package/lib/strategies/convex.js +0 -220
- package/lib/strategies/creditFacade.d.ts +0 -21
- package/lib/strategies/creditFacade.js +0 -71
- package/lib/strategies/curve.d.ts +0 -45
- package/lib/strategies/curve.js +0 -207
- package/lib/strategies/lido.d.ts +0 -18
- package/lib/strategies/lido.js +0 -51
- package/lib/strategies/uniswapV2.d.ts +0 -15
- package/lib/strategies/uniswapV2.js +0 -44
- package/lib/strategies/uniswapV3.d.ts +0 -21
- package/lib/strategies/uniswapV3.js +0 -71
- package/lib/strategies/yearn.d.ts +0 -20
- package/lib/strategies/yearn.js +0 -128
- package/lib/utils/extracter.d.ts +0 -11
- package/lib/utils/extracter.js +0 -19
package/lib/strategies/convex.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConvexStrategies = exports.ConvexClaimZapMulticaller = exports.ConvexPoolMulticaller = exports.ConvexBoosterMulticaller = exports.ConvexClaimZapCalls = exports.ConvexPoolCalls = exports.ConvexBoosterCalls = void 0;
|
|
4
|
-
const contracts_1 = require("../contracts/contracts");
|
|
5
|
-
const token_1 = require("../tokens/token");
|
|
6
|
-
const types_1 = require("../types");
|
|
7
|
-
const curve_1 = require("./curve");
|
|
8
|
-
const uniswapV2_1 = require("./uniswapV2");
|
|
9
|
-
class ConvexBoosterCalls {
|
|
10
|
-
static deposit(pid, amount, stake) {
|
|
11
|
-
return types_1.IBooster__factory.createInterface().encodeFunctionData("deposit", [
|
|
12
|
-
pid,
|
|
13
|
-
amount,
|
|
14
|
-
stake,
|
|
15
|
-
]);
|
|
16
|
-
}
|
|
17
|
-
static depositAll(pid, stake) {
|
|
18
|
-
return types_1.IBooster__factory.createInterface().encodeFunctionData("depositAll", [pid, stake]);
|
|
19
|
-
}
|
|
20
|
-
static withdraw(pid, amount) {
|
|
21
|
-
return types_1.IBooster__factory.createInterface().encodeFunctionData("withdraw", [
|
|
22
|
-
pid,
|
|
23
|
-
amount,
|
|
24
|
-
]);
|
|
25
|
-
}
|
|
26
|
-
static withdrawAll(pid) {
|
|
27
|
-
return types_1.IBooster__factory.createInterface().encodeFunctionData("withdrawAll", [pid]);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
exports.ConvexBoosterCalls = ConvexBoosterCalls;
|
|
31
|
-
class ConvexPoolCalls {
|
|
32
|
-
static stake(amount) {
|
|
33
|
-
return types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("stake", [amount]);
|
|
34
|
-
}
|
|
35
|
-
static stakeAll() {
|
|
36
|
-
return types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("stakeAll");
|
|
37
|
-
}
|
|
38
|
-
static withdraw(amount, claim) {
|
|
39
|
-
return types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("withdraw", [amount, claim]);
|
|
40
|
-
}
|
|
41
|
-
static withdrawAll(claim) {
|
|
42
|
-
return types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("withdrawAll", [claim]);
|
|
43
|
-
}
|
|
44
|
-
static withdrawAndUnwrap(amount, claim) {
|
|
45
|
-
return types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("withdrawAndUnwrap", [amount, claim]);
|
|
46
|
-
}
|
|
47
|
-
static withdrawAllAndUnwrap(claim) {
|
|
48
|
-
return types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("withdrawAllAndUnwrap", [claim]);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.ConvexPoolCalls = ConvexPoolCalls;
|
|
52
|
-
class ConvexClaimZapCalls {
|
|
53
|
-
static claimRewards(rewardContracts, extraRewardContracts, tokenRewardContracts, tokenRewardTokens, depositCrvMaxAmount, minAmountOut, depositCvxMaxAmount, spendCvxAmount, options) {
|
|
54
|
-
return types_1.IClaimZap__factory.createInterface().encodeFunctionData("claimRewards", [
|
|
55
|
-
rewardContracts,
|
|
56
|
-
extraRewardContracts,
|
|
57
|
-
tokenRewardContracts,
|
|
58
|
-
tokenRewardTokens,
|
|
59
|
-
depositCrvMaxAmount,
|
|
60
|
-
minAmountOut,
|
|
61
|
-
depositCvxMaxAmount,
|
|
62
|
-
spendCvxAmount,
|
|
63
|
-
options,
|
|
64
|
-
]);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
exports.ConvexClaimZapCalls = ConvexClaimZapCalls;
|
|
68
|
-
class ConvexBoosterMulticaller {
|
|
69
|
-
_address;
|
|
70
|
-
constructor(address) {
|
|
71
|
-
this._address = address;
|
|
72
|
-
}
|
|
73
|
-
static connect(address) {
|
|
74
|
-
return new ConvexBoosterMulticaller(address);
|
|
75
|
-
}
|
|
76
|
-
deposit(pid, amount, stake) {
|
|
77
|
-
return {
|
|
78
|
-
target: this._address,
|
|
79
|
-
callData: ConvexBoosterCalls.deposit(pid, amount, stake),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
depositAll(pid, stake) {
|
|
83
|
-
return {
|
|
84
|
-
target: this._address,
|
|
85
|
-
callData: ConvexBoosterCalls.depositAll(pid, stake),
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
withdraw(pid, amount) {
|
|
89
|
-
return {
|
|
90
|
-
target: this._address,
|
|
91
|
-
callData: ConvexBoosterCalls.withdraw(pid, amount),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
withdrawAll(pid) {
|
|
95
|
-
return {
|
|
96
|
-
target: this._address,
|
|
97
|
-
callData: ConvexBoosterCalls.withdrawAll(pid),
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.ConvexBoosterMulticaller = ConvexBoosterMulticaller;
|
|
102
|
-
class ConvexPoolMulticaller {
|
|
103
|
-
_address;
|
|
104
|
-
constructor(address) {
|
|
105
|
-
this._address = address;
|
|
106
|
-
}
|
|
107
|
-
static connect(address) {
|
|
108
|
-
return new ConvexPoolMulticaller(address);
|
|
109
|
-
}
|
|
110
|
-
stake(amount) {
|
|
111
|
-
return {
|
|
112
|
-
target: this._address,
|
|
113
|
-
callData: ConvexPoolCalls.stake(amount),
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
stakeAll() {
|
|
117
|
-
return {
|
|
118
|
-
target: this._address,
|
|
119
|
-
callData: ConvexPoolCalls.stakeAll(),
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
withdraw(amount, claim) {
|
|
123
|
-
return {
|
|
124
|
-
target: this._address,
|
|
125
|
-
callData: ConvexPoolCalls.withdraw(amount, claim),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
withdrawAll(claim) {
|
|
129
|
-
return {
|
|
130
|
-
target: this._address,
|
|
131
|
-
callData: ConvexPoolCalls.withdrawAll(claim),
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
withdrawAndUnwrap(amount, claim) {
|
|
135
|
-
return {
|
|
136
|
-
target: this._address,
|
|
137
|
-
callData: ConvexPoolCalls.withdrawAndUnwrap(amount, claim),
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
withdrawAllAndUnwrap(claim) {
|
|
141
|
-
return {
|
|
142
|
-
target: this._address,
|
|
143
|
-
callData: ConvexPoolCalls.withdrawAllAndUnwrap(claim),
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
exports.ConvexPoolMulticaller = ConvexPoolMulticaller;
|
|
148
|
-
class ConvexClaimZapMulticaller {
|
|
149
|
-
_address;
|
|
150
|
-
constructor(address) {
|
|
151
|
-
this._address = address;
|
|
152
|
-
}
|
|
153
|
-
static connect(address) {
|
|
154
|
-
return new ConvexClaimZapMulticaller(address);
|
|
155
|
-
}
|
|
156
|
-
claimRewards(rewardContracts, extraRewardContracts, tokenRewardContracts, tokenRewardTokens, depositCrvMaxAmount, minAmountOut, depositCvxMaxAmount, spendCvxAmount, options) {
|
|
157
|
-
return {
|
|
158
|
-
target: this._address,
|
|
159
|
-
callData: ConvexClaimZapCalls.claimRewards(rewardContracts, extraRewardContracts, tokenRewardContracts, tokenRewardTokens, depositCrvMaxAmount, minAmountOut, depositCvxMaxAmount, spendCvxAmount, options),
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
exports.ConvexClaimZapMulticaller = ConvexClaimZapMulticaller;
|
|
164
|
-
class ConvexStrategies {
|
|
165
|
-
static underlyingToStakedConvex(data, network, convexPool, underlyingAmount) {
|
|
166
|
-
let calls = [];
|
|
167
|
-
const convexParams = contracts_1.contractParams[convexPool];
|
|
168
|
-
const { stakedToken } = convexParams;
|
|
169
|
-
const stakedTokenParams = token_1.supportedTokens[stakedToken];
|
|
170
|
-
const curveLpToken = stakedTokenParams.underlying;
|
|
171
|
-
const curveLpTokenData = token_1.supportedTokens[curveLpToken];
|
|
172
|
-
const curvePool = curveLpTokenData.pool;
|
|
173
|
-
calls = curve_1.CurveStrategies.underlyingToCurveLP(data, network, curvePool, underlyingAmount);
|
|
174
|
-
calls.push(ConvexBoosterMulticaller.connect(data.adapters[contracts_1.contractsByNetwork[network].CONVEX_BOOSTER.toLowerCase()]).depositAll(stakedTokenParams.pid, true));
|
|
175
|
-
return calls;
|
|
176
|
-
}
|
|
177
|
-
static stakedConvexToUnderlying(data, network, convexPool, convexLpAmount, sellRewards) {
|
|
178
|
-
const calls = [];
|
|
179
|
-
const convexParams = contracts_1.contractParams[convexPool];
|
|
180
|
-
const { stakedToken } = convexParams;
|
|
181
|
-
const stakedTokenParams = token_1.supportedTokens[stakedToken];
|
|
182
|
-
const curveLpToken = stakedTokenParams.underlying;
|
|
183
|
-
const curveLpTokenData = token_1.supportedTokens[curveLpToken];
|
|
184
|
-
const curvePool = curveLpTokenData.pool;
|
|
185
|
-
calls.push(ConvexPoolMulticaller.connect(data.adapters[contracts_1.contractsByNetwork[network][convexPool].toLowerCase()]).withdrawAndUnwrap(convexLpAmount, true));
|
|
186
|
-
calls.push(...curve_1.CurveStrategies.allCurveLPToUnderlying(data, network, curvePool));
|
|
187
|
-
if (sellRewards) {
|
|
188
|
-
calls.push(...ConvexStrategies.sellRewards(data, network, convexPool));
|
|
189
|
-
}
|
|
190
|
-
return calls;
|
|
191
|
-
}
|
|
192
|
-
static allStakedConvexToUnderlying(data, network, convexPool, sellRewards) {
|
|
193
|
-
const calls = [];
|
|
194
|
-
const convexParams = contracts_1.contractParams[convexPool];
|
|
195
|
-
const { stakedToken } = convexParams;
|
|
196
|
-
const stakedTokenParams = token_1.supportedTokens[stakedToken];
|
|
197
|
-
const curveLpToken = stakedTokenParams.underlying;
|
|
198
|
-
const curveLpTokenData = token_1.supportedTokens[curveLpToken];
|
|
199
|
-
const curvePool = curveLpTokenData.pool;
|
|
200
|
-
calls.push(ConvexPoolMulticaller.connect(data.adapters[contracts_1.contractsByNetwork[network][convexPool].toLowerCase()]).withdrawAllAndUnwrap(true));
|
|
201
|
-
calls.push(...curve_1.CurveStrategies.allCurveLPToUnderlying(data, network, curvePool));
|
|
202
|
-
if (sellRewards) {
|
|
203
|
-
calls.push(...ConvexStrategies.sellRewards(data, network, convexPool));
|
|
204
|
-
}
|
|
205
|
-
return calls;
|
|
206
|
-
}
|
|
207
|
-
static sellRewards(data, network, convexPool) {
|
|
208
|
-
const calls = [];
|
|
209
|
-
const convexParams = contracts_1.contractParams[convexPool];
|
|
210
|
-
calls.push(uniswapV2_1.UniswapV2Multicaller.connect(data.adapters[contracts_1.contractsByNetwork[network].UNISWAP_V2_ROUTER.toLowerCase()]).swapAllTokensForTokens(0, [token_1.tokenDataByNetwork[network].CRV, data.underlyingToken], Math.floor(new Date().getTime() / 1000) + 3600), uniswapV2_1.UniswapV2Multicaller.connect(data.adapters[contracts_1.contractsByNetwork[network].UNISWAP_V2_ROUTER.toLowerCase()]).swapAllTokensForTokens(0, [token_1.tokenDataByNetwork[network].CVX, data.underlyingToken], Math.floor(new Date().getTime() / 1000) + 3600));
|
|
211
|
-
convexParams.extraRewards.forEach(extraReward => {
|
|
212
|
-
uniswapV2_1.UniswapV2Multicaller.connect(data.adapters[contracts_1.contractsByNetwork[network].UNISWAP_V2_ROUTER.toLowerCase()]).swapAllTokensForTokens(0, [
|
|
213
|
-
token_1.tokenDataByNetwork[network][extraReward.rewardToken],
|
|
214
|
-
data.underlyingToken,
|
|
215
|
-
], Math.floor(new Date().getTime() / 1000) + 3600);
|
|
216
|
-
});
|
|
217
|
-
return calls;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
exports.ConvexStrategies = ConvexStrategies;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { BigNumberish } from "ethers";
|
|
2
|
-
import { MultiCallStruct } from "../types/@gearbox-protocol/router/contracts/interfaces/IClosePathResolver";
|
|
3
|
-
export declare class CreditFacadeCalls {
|
|
4
|
-
static addCollateral(onBehalfOf: string, token: string, amount: BigNumberish): string;
|
|
5
|
-
static increaseDebt(amount: BigNumberish): string;
|
|
6
|
-
static decreaseDebt(amount: BigNumberish): string;
|
|
7
|
-
static revertIfBalanceLessThan(token: string, minBalance: BigNumberish): string;
|
|
8
|
-
static disableToken(token: string): string;
|
|
9
|
-
static enableToken(token: string): string;
|
|
10
|
-
}
|
|
11
|
-
export declare class CreditFacadeMulticaller {
|
|
12
|
-
private readonly _address;
|
|
13
|
-
constructor(address: string);
|
|
14
|
-
static connect(address: string): CreditFacadeMulticaller;
|
|
15
|
-
addCollateral(onBehalfOf: string, token: string, amount: BigNumberish): MultiCallStruct;
|
|
16
|
-
increaseDebt(amount: BigNumberish): MultiCallStruct;
|
|
17
|
-
decreaseDebt(amount: BigNumberish): MultiCallStruct;
|
|
18
|
-
revertIfBalanceLessThan(token: string, minBalance: BigNumberish): MultiCallStruct;
|
|
19
|
-
disableToken(token: string): MultiCallStruct;
|
|
20
|
-
enableToken(token: string): MultiCallStruct;
|
|
21
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CreditFacadeMulticaller = exports.CreditFacadeCalls = void 0;
|
|
4
|
-
const types_1 = require("../types");
|
|
5
|
-
class CreditFacadeCalls {
|
|
6
|
-
static addCollateral(onBehalfOf, token, amount) {
|
|
7
|
-
return types_1.ICreditFacade__factory.createInterface().encodeFunctionData("addCollateral", [onBehalfOf, token, amount]);
|
|
8
|
-
}
|
|
9
|
-
static increaseDebt(amount) {
|
|
10
|
-
return types_1.ICreditFacade__factory.createInterface().encodeFunctionData("increaseDebt", [amount]);
|
|
11
|
-
}
|
|
12
|
-
static decreaseDebt(amount) {
|
|
13
|
-
return types_1.ICreditFacade__factory.createInterface().encodeFunctionData("decreaseDebt", [amount]);
|
|
14
|
-
}
|
|
15
|
-
static revertIfBalanceLessThan(token, minBalance) {
|
|
16
|
-
return types_1.ICreditFacadeExtended__factory.createInterface().encodeFunctionData("revertIfReceivedLessThan", [[{ token, balance: minBalance }]]);
|
|
17
|
-
}
|
|
18
|
-
static disableToken(token) {
|
|
19
|
-
return types_1.ICreditFacadeExtended__factory.createInterface().encodeFunctionData("disableToken", [token]);
|
|
20
|
-
}
|
|
21
|
-
static enableToken(token) {
|
|
22
|
-
return types_1.ICreditFacade__factory.createInterface().encodeFunctionData("enableToken", [token]);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.CreditFacadeCalls = CreditFacadeCalls;
|
|
26
|
-
class CreditFacadeMulticaller {
|
|
27
|
-
_address;
|
|
28
|
-
constructor(address) {
|
|
29
|
-
this._address = address;
|
|
30
|
-
}
|
|
31
|
-
static connect(address) {
|
|
32
|
-
return new CreditFacadeMulticaller(address);
|
|
33
|
-
}
|
|
34
|
-
addCollateral(onBehalfOf, token, amount) {
|
|
35
|
-
return {
|
|
36
|
-
target: this._address,
|
|
37
|
-
callData: CreditFacadeCalls.addCollateral(onBehalfOf, token, amount),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
increaseDebt(amount) {
|
|
41
|
-
return {
|
|
42
|
-
target: this._address,
|
|
43
|
-
callData: CreditFacadeCalls.increaseDebt(amount),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
decreaseDebt(amount) {
|
|
47
|
-
return {
|
|
48
|
-
target: this._address,
|
|
49
|
-
callData: CreditFacadeCalls.decreaseDebt(amount),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
revertIfBalanceLessThan(token, minBalance) {
|
|
53
|
-
return {
|
|
54
|
-
target: this._address,
|
|
55
|
-
callData: CreditFacadeCalls.revertIfBalanceLessThan(token, minBalance),
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
disableToken(token) {
|
|
59
|
-
return {
|
|
60
|
-
target: this._address,
|
|
61
|
-
callData: CreditFacadeCalls.disableToken(token),
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
enableToken(token) {
|
|
65
|
-
return {
|
|
66
|
-
target: this._address,
|
|
67
|
-
callData: CreditFacadeCalls.enableToken(token),
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
exports.CreditFacadeMulticaller = CreditFacadeMulticaller;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { BigNumberish } from "ethers";
|
|
2
|
-
import { CurvePoolContract } from "../contracts/contracts";
|
|
3
|
-
import { NetworkType } from "../core/chains";
|
|
4
|
-
import { CreditManagerData } from "../core/creditManager";
|
|
5
|
-
import { MultiCallStruct } from "../types/@gearbox-protocol/router/contracts/interfaces/IClosePathResolver";
|
|
6
|
-
export declare class CurveCalls {
|
|
7
|
-
static exchange(i: BigNumberish, j: BigNumberish, dx: BigNumberish, min_dy: BigNumberish): string;
|
|
8
|
-
static exchange_all(i: BigNumberish, j: BigNumberish, rateMinRAY: BigNumberish): string;
|
|
9
|
-
static exchange_underlying(i: BigNumberish, j: BigNumberish, dx: BigNumberish, min_dy: BigNumberish): string;
|
|
10
|
-
static exchange_all_underlying(i: BigNumberish, j: BigNumberish, rateMinRAY: BigNumberish): string;
|
|
11
|
-
static add_liquidity_one_coin(amount: BigNumberish, i: BigNumberish, minAmount: BigNumberish): string;
|
|
12
|
-
static add_all_liquidity_one_coin(i: BigNumberish, rateMinRAY: BigNumberish): string;
|
|
13
|
-
static remove_liquidity_one_coin(token_amount: BigNumberish, i: BigNumberish, min_amount: BigNumberish): string;
|
|
14
|
-
static remove_all_liquidity_one_coin(i: BigNumberish, minRateRAY: BigNumberish): string;
|
|
15
|
-
static add_liquidity(amounts: [BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish, BigNumberish], min_mint_amount: BigNumberish): string;
|
|
16
|
-
static remove_liquidity(amount: BigNumberish, min_amounts: [BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish, BigNumberish]): string;
|
|
17
|
-
static remove_liquidity_imbalance(amounts: [BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish, BigNumberish], max_burn_amount: BigNumberish): string;
|
|
18
|
-
}
|
|
19
|
-
export declare class CurveMulticaller {
|
|
20
|
-
private readonly _address;
|
|
21
|
-
constructor(address: string);
|
|
22
|
-
static connect(address: string): CurveMulticaller;
|
|
23
|
-
exchange(i: BigNumberish, j: BigNumberish, dx: BigNumberish, min_dy: BigNumberish): MultiCallStruct;
|
|
24
|
-
exchange_all(i: BigNumberish, j: BigNumberish, rateMinRAY: BigNumberish): MultiCallStruct;
|
|
25
|
-
exchange_underlying(i: BigNumberish, j: BigNumberish, dx: BigNumberish, min_dy: BigNumberish): MultiCallStruct;
|
|
26
|
-
exchange_all_underlying(i: BigNumberish, j: BigNumberish, rateMinRAY: BigNumberish): MultiCallStruct;
|
|
27
|
-
add_liquidity_one_coin(amount: BigNumberish, i: BigNumberish, minAmount: BigNumberish): MultiCallStruct;
|
|
28
|
-
add_all_liquidity_one_coin(i: BigNumberish, rateMinRAY: BigNumberish): MultiCallStruct;
|
|
29
|
-
remove_liquidity_one_coin(token_amount: BigNumberish, i: BigNumberish, min_amount: BigNumberish): {
|
|
30
|
-
target: string;
|
|
31
|
-
callData: string;
|
|
32
|
-
};
|
|
33
|
-
remove_all_liquidity_one_coin(i: BigNumberish, minRateRAY: BigNumberish): {
|
|
34
|
-
target: string;
|
|
35
|
-
callData: string;
|
|
36
|
-
};
|
|
37
|
-
add_liquidity(amounts: [BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish, BigNumberish], min_mint_amount: BigNumberish): MultiCallStruct;
|
|
38
|
-
remove_liquidity(amount: BigNumberish, min_amounts: [BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish, BigNumberish]): MultiCallStruct;
|
|
39
|
-
remove_liquidity_imbalance(amounts: [BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish] | [BigNumberish, BigNumberish, BigNumberish, BigNumberish], max_burn_amount: BigNumberish): MultiCallStruct;
|
|
40
|
-
}
|
|
41
|
-
export declare class CurveStrategies {
|
|
42
|
-
static underlyingToCurveLP(data: CreditManagerData, network: NetworkType, curvePool: CurvePoolContract, underlyingAmount: BigNumberish): MultiCallStruct[];
|
|
43
|
-
static curveLPToUnderlying(data: CreditManagerData, network: NetworkType, curvePool: CurvePoolContract, curveLPAmount: BigNumberish): MultiCallStruct[];
|
|
44
|
-
static allCurveLPToUnderlying(data: CreditManagerData, network: NetworkType, curvePool: CurvePoolContract): MultiCallStruct[];
|
|
45
|
-
}
|
package/lib/strategies/curve.js
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CurveStrategies = exports.CurveMulticaller = exports.CurveCalls = void 0;
|
|
4
|
-
const contracts_1 = require("../contracts/contracts");
|
|
5
|
-
const constants_1 = require("../core/constants");
|
|
6
|
-
const token_1 = require("../tokens/token");
|
|
7
|
-
const types_1 = require("../types");
|
|
8
|
-
const uniswapV2_1 = require("./uniswapV2");
|
|
9
|
-
class CurveCalls {
|
|
10
|
-
static exchange(i, j, dx, min_dy) {
|
|
11
|
-
return types_1.ICurveV1Adapter__factory.createInterface().encodeFunctionData("exchange", [i, j, dx, min_dy]);
|
|
12
|
-
}
|
|
13
|
-
static exchange_all(i, j, rateMinRAY) {
|
|
14
|
-
return types_1.ICurveV1Adapter__factory.createInterface().encodeFunctionData("exchange_all", [i, j, rateMinRAY]);
|
|
15
|
-
}
|
|
16
|
-
static exchange_underlying(i, j, dx, min_dy) {
|
|
17
|
-
return types_1.ICurveV1Adapter__factory.createInterface().encodeFunctionData("exchange_underlying", [i, j, dx, min_dy]);
|
|
18
|
-
}
|
|
19
|
-
static exchange_all_underlying(i, j, rateMinRAY) {
|
|
20
|
-
return types_1.ICurveV1Adapter__factory.createInterface().encodeFunctionData("exchange_all_underlying", [i, j, rateMinRAY]);
|
|
21
|
-
}
|
|
22
|
-
static add_liquidity_one_coin(amount, i, minAmount) {
|
|
23
|
-
return types_1.ICurveV1Adapter__factory.createInterface().encodeFunctionData("add_liquidity_one_coin", [amount, i, minAmount]);
|
|
24
|
-
}
|
|
25
|
-
static add_all_liquidity_one_coin(i, rateMinRAY) {
|
|
26
|
-
return types_1.ICurveV1Adapter__factory.createInterface().encodeFunctionData("add_all_liquidity_one_coin", [i, rateMinRAY]);
|
|
27
|
-
}
|
|
28
|
-
static remove_liquidity_one_coin(token_amount, i, min_amount) {
|
|
29
|
-
return types_1.ICurveV1Adapter__factory.createInterface().encodeFunctionData("remove_liquidity_one_coin", [token_amount, i, min_amount]);
|
|
30
|
-
}
|
|
31
|
-
static remove_all_liquidity_one_coin(i, minRateRAY) {
|
|
32
|
-
return types_1.ICurveV1Adapter__factory.createInterface().encodeFunctionData("remove_all_liquidity_one_coin", [i, minRateRAY]);
|
|
33
|
-
}
|
|
34
|
-
static add_liquidity(amounts, min_mint_amount) {
|
|
35
|
-
switch (amounts.length) {
|
|
36
|
-
case 2:
|
|
37
|
-
return types_1.ICurvePool2Assets__factory.createInterface().encodeFunctionData("add_liquidity", [amounts, min_mint_amount]);
|
|
38
|
-
case 3:
|
|
39
|
-
return types_1.ICurvePool3Assets__factory.createInterface().encodeFunctionData("add_liquidity", [amounts, min_mint_amount]);
|
|
40
|
-
case 4:
|
|
41
|
-
return types_1.ICurvePool4Assets__factory.createInterface().encodeFunctionData("add_liquidity", [amounts, min_mint_amount]);
|
|
42
|
-
default:
|
|
43
|
-
throw new Error("Wrong calls number: add_liquidity");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
static remove_liquidity(amount, min_amounts) {
|
|
47
|
-
switch (min_amounts.length) {
|
|
48
|
-
case 2:
|
|
49
|
-
return types_1.ICurvePool2Assets__factory.createInterface().encodeFunctionData("remove_liquidity", [amount, min_amounts]);
|
|
50
|
-
case 3:
|
|
51
|
-
return types_1.ICurvePool3Assets__factory.createInterface().encodeFunctionData("remove_liquidity", [amount, min_amounts]);
|
|
52
|
-
case 4:
|
|
53
|
-
return types_1.ICurvePool4Assets__factory.createInterface().encodeFunctionData("remove_liquidity", [amount, min_amounts]);
|
|
54
|
-
default:
|
|
55
|
-
throw new Error("Wrong calls number: remove_liquidity");
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
static remove_liquidity_imbalance(amounts, max_burn_amount) {
|
|
59
|
-
switch (amounts.length) {
|
|
60
|
-
case 2:
|
|
61
|
-
return types_1.ICurvePool2Assets__factory.createInterface().encodeFunctionData("remove_liquidity_imbalance", [amounts, max_burn_amount]);
|
|
62
|
-
case 3:
|
|
63
|
-
return types_1.ICurvePool3Assets__factory.createInterface().encodeFunctionData("remove_liquidity_imbalance", [amounts, max_burn_amount]);
|
|
64
|
-
case 4:
|
|
65
|
-
return types_1.ICurvePool4Assets__factory.createInterface().encodeFunctionData("remove_liquidity_imbalance", [amounts, max_burn_amount]);
|
|
66
|
-
default:
|
|
67
|
-
throw new Error("Wrong calls number: remove_liquidity_imbalance");
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
exports.CurveCalls = CurveCalls;
|
|
72
|
-
class CurveMulticaller {
|
|
73
|
-
_address;
|
|
74
|
-
constructor(address) {
|
|
75
|
-
this._address = address;
|
|
76
|
-
}
|
|
77
|
-
static connect(address) {
|
|
78
|
-
return new CurveMulticaller(address);
|
|
79
|
-
}
|
|
80
|
-
exchange(i, j, dx, min_dy) {
|
|
81
|
-
return {
|
|
82
|
-
target: this._address,
|
|
83
|
-
callData: CurveCalls.exchange(i, j, dx, min_dy),
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
exchange_all(i, j, rateMinRAY) {
|
|
87
|
-
return {
|
|
88
|
-
target: this._address,
|
|
89
|
-
callData: CurveCalls.exchange_all(i, j, rateMinRAY),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
exchange_underlying(i, j, dx, min_dy) {
|
|
93
|
-
return {
|
|
94
|
-
target: this._address,
|
|
95
|
-
callData: CurveCalls.exchange_underlying(i, j, dx, min_dy),
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
exchange_all_underlying(i, j, rateMinRAY) {
|
|
99
|
-
return {
|
|
100
|
-
target: this._address,
|
|
101
|
-
callData: CurveCalls.exchange_all_underlying(i, j, rateMinRAY),
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
add_liquidity_one_coin(amount, i, minAmount) {
|
|
105
|
-
return {
|
|
106
|
-
target: this._address,
|
|
107
|
-
callData: CurveCalls.add_liquidity_one_coin(amount, i, minAmount),
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
add_all_liquidity_one_coin(i, rateMinRAY) {
|
|
111
|
-
return {
|
|
112
|
-
target: this._address,
|
|
113
|
-
callData: CurveCalls.add_all_liquidity_one_coin(i, rateMinRAY),
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
remove_liquidity_one_coin(token_amount, i, min_amount) {
|
|
117
|
-
return {
|
|
118
|
-
target: this._address,
|
|
119
|
-
callData: CurveCalls.remove_liquidity_one_coin(token_amount, i, min_amount),
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
remove_all_liquidity_one_coin(i, minRateRAY) {
|
|
123
|
-
return {
|
|
124
|
-
target: this._address,
|
|
125
|
-
callData: CurveCalls.remove_all_liquidity_one_coin(i, minRateRAY),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
add_liquidity(amounts, min_mint_amount) {
|
|
129
|
-
return {
|
|
130
|
-
target: this._address,
|
|
131
|
-
callData: CurveCalls.add_liquidity(amounts, min_mint_amount),
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
remove_liquidity(amount, min_amounts) {
|
|
135
|
-
return {
|
|
136
|
-
target: this._address,
|
|
137
|
-
callData: CurveCalls.remove_liquidity(amount, min_amounts),
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
remove_liquidity_imbalance(amounts, max_burn_amount) {
|
|
141
|
-
return {
|
|
142
|
-
target: this._address,
|
|
143
|
-
callData: CurveCalls.remove_liquidity_imbalance(amounts, max_burn_amount),
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
exports.CurveMulticaller = CurveMulticaller;
|
|
148
|
-
class CurveStrategies {
|
|
149
|
-
static underlyingToCurveLP(data, network, curvePool, underlyingAmount) {
|
|
150
|
-
const calls = [];
|
|
151
|
-
const curveParams = contracts_1.contractParams[curvePool];
|
|
152
|
-
const tokenToDeposit = curveParams.tokens[0];
|
|
153
|
-
if (data.underlyingToken.toLowerCase() !==
|
|
154
|
-
token_1.tokenDataByNetwork[network][tokenToDeposit].toLowerCase()) {
|
|
155
|
-
calls.push(uniswapV2_1.UniswapV2Multicaller.connect(data.adapters[contracts_1.contractsByNetwork[network].UNISWAP_V2_ROUTER.toLowerCase()]).swapExactTokensForTokens(underlyingAmount, 0, [data.underlyingToken, token_1.tokenDataByNetwork[network][tokenToDeposit]], constants_1.ADDRESS_0X0, Math.floor(new Date().getTime() / 1000) + 3600), CurveMulticaller.connect(data.adapters[contracts_1.contractsByNetwork[network][curvePool].toLowerCase()]).add_all_liquidity_one_coin(0, 0));
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
calls.push(CurveMulticaller.connect(data.adapters[contracts_1.contractsByNetwork[network][curvePool].toLowerCase()]).add_liquidity_one_coin(underlyingAmount, 0, 0));
|
|
159
|
-
}
|
|
160
|
-
return calls;
|
|
161
|
-
}
|
|
162
|
-
static curveLPToUnderlying(data, network, curvePool, curveLPAmount) {
|
|
163
|
-
const calls = [];
|
|
164
|
-
const curveParams = contracts_1.contractParams[curvePool];
|
|
165
|
-
let curveContractAddress;
|
|
166
|
-
if (curveParams.wrapper) {
|
|
167
|
-
curveContractAddress =
|
|
168
|
-
data.adapters[contracts_1.contractsByNetwork[network][curveParams.wrapper].toLowerCase()];
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
curveContractAddress =
|
|
172
|
-
data.adapters[contracts_1.contractsByNetwork[network][curvePool].toLowerCase()];
|
|
173
|
-
}
|
|
174
|
-
calls.push(CurveMulticaller.connect(curveContractAddress).remove_liquidity_one_coin(curveLPAmount, 0, 0));
|
|
175
|
-
if (token_1.tokenDataByNetwork[network][curveParams.tokens[0]].toLowerCase() !==
|
|
176
|
-
data.underlyingToken.toLowerCase()) {
|
|
177
|
-
calls.push(uniswapV2_1.UniswapV2Multicaller.connect(data.adapters[contracts_1.contractsByNetwork[network].UNISWAP_V2_ROUTER.toLowerCase()]).swapAllTokensForTokens(0, [
|
|
178
|
-
token_1.tokenDataByNetwork[network][curveParams.tokens[0]],
|
|
179
|
-
data.underlyingToken,
|
|
180
|
-
], Math.floor(new Date().getTime() / 1000) + 3600));
|
|
181
|
-
}
|
|
182
|
-
return calls;
|
|
183
|
-
}
|
|
184
|
-
static allCurveLPToUnderlying(data, network, curvePool) {
|
|
185
|
-
const calls = [];
|
|
186
|
-
const curveParams = contracts_1.contractParams[curvePool];
|
|
187
|
-
let curveContractAddress;
|
|
188
|
-
if (curveParams.wrapper) {
|
|
189
|
-
curveContractAddress =
|
|
190
|
-
data.adapters[contracts_1.contractsByNetwork[network][curveParams.wrapper].toLowerCase()];
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
curveContractAddress =
|
|
194
|
-
data.adapters[contracts_1.contractsByNetwork[network][curvePool].toLowerCase()];
|
|
195
|
-
}
|
|
196
|
-
calls.push(CurveMulticaller.connect(curveContractAddress).remove_all_liquidity_one_coin(0, 0));
|
|
197
|
-
if (token_1.tokenDataByNetwork[network][curveParams.tokens[0]].toLowerCase() !==
|
|
198
|
-
data.underlyingToken.toLowerCase()) {
|
|
199
|
-
calls.push(uniswapV2_1.UniswapV2Multicaller.connect(data.adapters[contracts_1.contractsByNetwork[network].UNISWAP_V2_ROUTER.toLowerCase()]).swapAllTokensForTokens(0, [
|
|
200
|
-
token_1.tokenDataByNetwork[network][curveParams.tokens[0]],
|
|
201
|
-
data.underlyingToken,
|
|
202
|
-
], Math.floor(new Date().getTime() / 1000) + 3600));
|
|
203
|
-
}
|
|
204
|
-
return calls;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
exports.CurveStrategies = CurveStrategies;
|
package/lib/strategies/lido.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { BigNumberish } from "ethers";
|
|
2
|
-
import { NetworkType } from "../core/chains";
|
|
3
|
-
import { CreditManagerData } from "../core/creditManager";
|
|
4
|
-
import { MultiCallStruct } from "../types/@gearbox-protocol/router/contracts/interfaces/IClosePathResolver";
|
|
5
|
-
export declare class LidoCalls {
|
|
6
|
-
static submit(amount: BigNumberish): string;
|
|
7
|
-
static submitAll(): string;
|
|
8
|
-
}
|
|
9
|
-
export declare class LidoMulticaller {
|
|
10
|
-
private readonly _address;
|
|
11
|
-
constructor(address: string);
|
|
12
|
-
static connect(address: string): LidoMulticaller;
|
|
13
|
-
submit(amount: BigNumberish): MultiCallStruct;
|
|
14
|
-
submitAll(): MultiCallStruct;
|
|
15
|
-
}
|
|
16
|
-
export declare class LidoStrategies {
|
|
17
|
-
static mintSteth(data: CreditManagerData, network: NetworkType, underlyingAmount: BigNumberish): MultiCallStruct[];
|
|
18
|
-
}
|
package/lib/strategies/lido.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LidoStrategies = exports.LidoMulticaller = exports.LidoCalls = void 0;
|
|
4
|
-
const contracts_1 = require("../contracts/contracts");
|
|
5
|
-
const constants_1 = require("../core/constants");
|
|
6
|
-
const token_1 = require("../tokens/token");
|
|
7
|
-
const types_1 = require("../types");
|
|
8
|
-
const uniswapV2_1 = require("./uniswapV2");
|
|
9
|
-
class LidoCalls {
|
|
10
|
-
static submit(amount) {
|
|
11
|
-
return types_1.ILidoV1Adapter__factory.createInterface().encodeFunctionData("submit", [amount]);
|
|
12
|
-
}
|
|
13
|
-
static submitAll() {
|
|
14
|
-
return types_1.ILidoV1Adapter__factory.createInterface().encodeFunctionData("submitAll");
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.LidoCalls = LidoCalls;
|
|
18
|
-
class LidoMulticaller {
|
|
19
|
-
_address;
|
|
20
|
-
constructor(address) {
|
|
21
|
-
this._address = address;
|
|
22
|
-
}
|
|
23
|
-
static connect(address) {
|
|
24
|
-
return new LidoMulticaller(address);
|
|
25
|
-
}
|
|
26
|
-
submit(amount) {
|
|
27
|
-
return {
|
|
28
|
-
target: this._address,
|
|
29
|
-
callData: LidoCalls.submit(amount),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
submitAll() {
|
|
33
|
-
return {
|
|
34
|
-
target: this._address,
|
|
35
|
-
callData: LidoCalls.submitAll(),
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.LidoMulticaller = LidoMulticaller;
|
|
40
|
-
class LidoStrategies {
|
|
41
|
-
static mintSteth(data, network, underlyingAmount) {
|
|
42
|
-
const calls = [];
|
|
43
|
-
// This should be a pathfinder call
|
|
44
|
-
if (!data.isWETH) {
|
|
45
|
-
calls.push(uniswapV2_1.UniswapV2Multicaller.connect(data.adapters[contracts_1.contractsByNetwork[network].UNISWAP_V2_ROUTER.toLowerCase()]).swapExactTokensForTokens(underlyingAmount, 0, [data.underlyingToken, token_1.tokenDataByNetwork[network].WETH], constants_1.ADDRESS_0X0, Math.floor(new Date().getTime() / 1000) + 3600));
|
|
46
|
-
}
|
|
47
|
-
calls.push(LidoMulticaller.connect(data.adapters[contracts_1.contractsByNetwork[network].LIDO_STETH_GATEWAY.toLowerCase()]).submitAll());
|
|
48
|
-
return calls;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.LidoStrategies = LidoStrategies;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { BigNumberish } from "ethers";
|
|
2
|
-
import { MultiCallStruct } from "../types/@gearbox-protocol/router/contracts/interfaces/IClosePathResolver";
|
|
3
|
-
export declare class UniswapV2Calls {
|
|
4
|
-
static swapExactTokensForTokens(amountIn: BigNumberish, amountOutMin: BigNumberish, path: Array<string>, to: string, deadline: BigNumberish): string;
|
|
5
|
-
static swapTokensForExactTokens(amountOut: BigNumberish, amountInMax: BigNumberish, path: Array<string>, to: string, deadline: BigNumberish): string;
|
|
6
|
-
static swapAllTokensForTokens(rateMinRAY: BigNumberish, path: Array<string>, deadline: BigNumberish): string;
|
|
7
|
-
}
|
|
8
|
-
export declare class UniswapV2Multicaller {
|
|
9
|
-
private readonly _address;
|
|
10
|
-
constructor(address: string);
|
|
11
|
-
static connect(address: string): UniswapV2Multicaller;
|
|
12
|
-
swapExactTokensForTokens(amountIn: BigNumberish, amountOutMin: BigNumberish, path: Array<string>, to: string, deadline: BigNumberish): MultiCallStruct;
|
|
13
|
-
swapTokensForExactTokens(amountOut: BigNumberish, amountInMax: BigNumberish, path: Array<string>, to: string, deadline: BigNumberish): MultiCallStruct;
|
|
14
|
-
swapAllTokensForTokens(rateMinRAY: BigNumberish, path: Array<string>, deadline: BigNumberish): MultiCallStruct;
|
|
15
|
-
}
|