removal of transferToReserve method

This commit is contained in:
andyk 2020-06-03 15:51:17 +03:00
parent 43ae2f36e7
commit 199d386b3e
3 changed files with 24 additions and 37 deletions

View File

@ -315,8 +315,13 @@ contract LendingPool is ReentrancyGuard, VersionedInitializable {
//minting AToken to user 1:1 with the specific exchange rate
aToken.mintOnDeposit(msg.sender, _amount);
//transfer to the core contract
core.transferToReserve{value: msg.value}(_reserve, msg.sender, _amount);
//transfer to the pool
if (!IERC20(_reserve).isETH()) { //TODO: review needed, most probably we can remove it
require(
msg.value == 0,
"User is sending ETH along with the ERC20 transfer."
);
IERC20(_reserve).universalTransferFromSenderToThis(_amount);
//solium-disable-next-line
emit Deposit(_reserve, msg.sender, _amount, _referralCode, block.timestamp);
@ -623,13 +628,17 @@ contract LendingPool is ReentrancyGuard, VersionedInitializable {
}
//sending the total msg.value if the transfer is ETH.
//the transferToReserve() function will take care of sending the
//the universalTransferFromSenderToThis() function will take care of sending the
//excess ETH back to the caller
core.transferToReserve{ value: vars.isETH ? msg.value.sub(vars.originationFee) : 0 }(
_reserve,
msg.sender,
vars.paybackAmountMinusFees
);
if (!IERC20(_reserve).isETH()) { //TODO: review needed, most probably we can remove it
require(
msg.value == 0,
"User is sending ETH along with the ERC20 transfer."
);
}
IERC20(_reserve).universalTransferFromSenderToThis{
value: vars.isETH ? msg.value.sub(vars.originationFee) : 0
}(vars.paybackAmountMinusFees);
emit Repay(
_reserve,

View File

@ -472,33 +472,6 @@ contract LendingPoolCore is VersionedInitializable {
IERC20(_token).universalTransfer(_feeAddress, _amount);
}
/**
* @dev transfers an amount from a user to the destination reserve
* @param _reserve the address of the reserve where the amount is being transferred
* @param _user the address of the user from where the transfer is happening
* @param _amount the amount being transferred
**/
function transferToReserve(address _reserve, address payable _user, uint256 _amount)
external
payable
onlyLendingPool
{
IERC20 reserve = IERC20(_reserve);
if (!reserve.isETH()) {
require(
msg.value == 0,
"User is sending ETH along with the ERC20 transfer."
);
} else {
require(
msg.value >= _amount,
"The amount and the value sent to deposit do not match"
);
}
reserve.universalTransferFrom(_user, address(this), _amount, true);
}
/**
* @notice data access functions
**/

View File

@ -246,11 +246,16 @@ contract LendingPoolLiquidationManager is ReentrancyGuard, VersionedInitializabl
//otherwise receives the underlying asset
//burn the equivalent amount of atoken
collateralAtoken.burnOnLiquidation(_user, maxCollateralToLiquidate);
core.transferToUser(_collateral, msg.sender, maxCollateralToLiquidate);
core.transferToUser(_collateral, msg.sender, maxCollateralToLiquidate); //TODO: update to universal transfer
}
//transfers the principal currency to the pool
core.transferToReserve{value: msg.value}(_reserve, msg.sender, vars.actualAmountToLiquidate);
IERC20(_reserve).universalTransferFrom(
msg.sender,
addressesProvider.getLendingPool(),
vars.actualAmountToLiquidate,
true
);
if (vars.feeLiquidated > 0) {
//if there is enough collateral to liquidate the fee, first transfer burn an equivalent amount of