mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
Avoid param override in repay adapter
This commit is contained in:
parent
4c693d1947
commit
101c775789
|
@ -101,6 +101,8 @@ contract UniswapRepayAdapter is BaseUniswapAdapter, IFlashLoanReceiver {
|
||||||
uint256 premium,
|
uint256 premium,
|
||||||
PermitSignature memory permitSignature
|
PermitSignature memory permitSignature
|
||||||
) internal {
|
) internal {
|
||||||
|
uint256 debtRepayAmount;
|
||||||
|
|
||||||
if (repayAllDebt) {
|
if (repayAllDebt) {
|
||||||
ReserveLogic.ReserveData memory reserveDebtData = _getReserveData(assetTo);
|
ReserveLogic.ReserveData memory reserveDebtData = _getReserveData(assetTo);
|
||||||
|
|
||||||
|
@ -108,17 +110,19 @@ contract UniswapRepayAdapter is BaseUniswapAdapter, IFlashLoanReceiver {
|
||||||
? reserveDebtData.stableDebtTokenAddress
|
? reserveDebtData.stableDebtTokenAddress
|
||||||
: reserveDebtData.variableDebtTokenAddress;
|
: reserveDebtData.variableDebtTokenAddress;
|
||||||
|
|
||||||
repayAmount = IERC20(debtToken).balanceOf(initiator);
|
debtRepayAmount = IERC20(debtToken).balanceOf(initiator);
|
||||||
|
} else {
|
||||||
|
debtRepayAmount = repayAmount;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint256 amountSwapped = _swapTokensForExactTokens(assetFrom, assetTo, amount, repayAmount);
|
uint256 amountSwapped = _swapTokensForExactTokens(assetFrom, assetTo, amount, debtRepayAmount);
|
||||||
|
|
||||||
// Repay debt
|
// Repay debt
|
||||||
IERC20(assetTo).approve(address(POOL), repayAmount);
|
IERC20(assetTo).approve(address(POOL), debtRepayAmount);
|
||||||
POOL.repay(assetTo, repayAmount, rateMode, initiator);
|
POOL.repay(assetTo, debtRepayAmount, rateMode, initiator);
|
||||||
|
|
||||||
uint256 flashLoanDebt = amount.add(premium);
|
uint256 flashLoanDebt = amount.add(premium);
|
||||||
uint256 amountToPull = flashLoanDebt.sub(amount.sub(amountSwapped));
|
uint256 amountToPull = amountSwapped.add(premium);
|
||||||
|
|
||||||
ReserveLogic.ReserveData memory reserveData = _getReserveData(assetFrom);
|
ReserveLogic.ReserveData memory reserveData = _getReserveData(assetFrom);
|
||||||
_pullAToken(assetFrom, reserveData.aTokenAddress, initiator, amountToPull, permitSignature);
|
_pullAToken(assetFrom, reserveData.aTokenAddress, initiator, amountToPull, permitSignature);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user