mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
Merge branch 'fix/47' into 'master'
Resolve "Fix transferFrom() on flashLoan()" Closes #47 See merge request aave-tech/protocol-v2!56
This commit is contained in:
commit
ee0bc07238
|
@ -575,7 +575,7 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage
|
||||||
vars.amountPlusPremium = amount.add(vars.premium);
|
vars.amountPlusPremium = amount.add(vars.premium);
|
||||||
|
|
||||||
if (debtMode == ReserveLogic.InterestRateMode.NONE) {
|
if (debtMode == ReserveLogic.InterestRateMode.NONE) {
|
||||||
IERC20(asset).transferFrom(receiverAddress, vars.aTokenAddress, vars.amountPlusPremium);
|
IERC20(asset).safeTransferFrom(receiverAddress, vars.aTokenAddress, vars.amountPlusPremium);
|
||||||
|
|
||||||
reserve.updateState();
|
reserve.updateState();
|
||||||
reserve.cumulateToLiquidityIndex(IERC20(vars.aTokenAddress).totalSupply(), vars.premium);
|
reserve.cumulateToLiquidityIndex(IERC20(vars.aTokenAddress).totalSupply(), vars.premium);
|
||||||
|
@ -583,7 +583,8 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage
|
||||||
|
|
||||||
emit FlashLoan(receiverAddress, asset, amount, vars.premium, referralCode);
|
emit FlashLoan(receiverAddress, asset, amount, vars.premium, referralCode);
|
||||||
} else {
|
} else {
|
||||||
// If the transfer didn't succeed, the receiver either didn't return the funds, or didn't approve the transfer.
|
//if the user didn't choose to return the funds, the system checks if there
|
||||||
|
//is enough collateral and eventually open a position
|
||||||
_executeBorrow(
|
_executeBorrow(
|
||||||
ExecuteBorrowParams(
|
ExecuteBorrowParams(
|
||||||
asset,
|
asset,
|
||||||
|
|
|
@ -404,7 +404,7 @@ contract LendingPoolCollateralManager is VersionedInitializable, LendingPoolStor
|
||||||
vars.actualAmountToLiquidate,
|
vars.actualAmountToLiquidate,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
IERC20(principal).transferFrom(receiver, vars.principalAToken, vars.actualAmountToLiquidate);
|
IERC20(principal).safeTransferFrom(receiver, vars.principalAToken, vars.actualAmountToLiquidate);
|
||||||
|
|
||||||
if (vars.userVariableDebt >= vars.actualAmountToLiquidate) {
|
if (vars.userVariableDebt >= vars.actualAmountToLiquidate) {
|
||||||
IVariableDebtToken(debtReserve.variableDebtTokenAddress).burn(
|
IVariableDebtToken(debtReserve.variableDebtTokenAddress).burn(
|
||||||
|
@ -504,7 +504,7 @@ contract LendingPoolCollateralManager is VersionedInitializable, LendingPoolStor
|
||||||
|
|
||||||
vars.amountToReceive = IERC20(toAsset).balanceOf(receiverAddress);
|
vars.amountToReceive = IERC20(toAsset).balanceOf(receiverAddress);
|
||||||
if (vars.amountToReceive != 0) {
|
if (vars.amountToReceive != 0) {
|
||||||
IERC20(toAsset).transferFrom(
|
IERC20(toAsset).safeTransferFrom(
|
||||||
receiverAddress,
|
receiverAddress,
|
||||||
address(vars.toReserveAToken),
|
address(vars.toReserveAToken),
|
||||||
vars.amountToReceive
|
vars.amountToReceive
|
||||||
|
|
Loading…
Reference in New Issue
Block a user