mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
Merge branch 'feat/105-msgsender-executeOperation' into 'master'
Passed `initiator` param to flashLoan()'s executeOperation() receiver. Closes #105 See merge request aave-tech/protocol-v2!114
This commit is contained in:
commit
8a9afaaea0
|
@ -12,6 +12,7 @@ interface IFlashLoanReceiver {
|
||||||
address[] calldata assets,
|
address[] calldata assets,
|
||||||
uint256[] calldata amounts,
|
uint256[] calldata amounts,
|
||||||
uint256[] calldata premiums,
|
uint256[] calldata premiums,
|
||||||
|
address initiator,
|
||||||
bytes calldata params
|
bytes calldata params
|
||||||
) external returns (bool);
|
) external returns (bool);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
// SPDX-License-Identifier: agpl-3.0
|
|
||||||
pragma solidity ^0.6.8;
|
|
||||||
|
|
||||||
interface ISwapAdapter {
|
|
||||||
/**
|
|
||||||
* @dev Swaps an `amountToSwap` of an asset to another, approving a `fundsDestination` to pull the funds
|
|
||||||
* @param assetToSwapFrom Origin asset
|
|
||||||
* @param assetToSwapTo Destination asset
|
|
||||||
* @param amountToSwap How much `assetToSwapFrom` needs to be swapped
|
|
||||||
* @param fundsDestination Address that will be pulling the swapped funds
|
|
||||||
* @param params Additional variadic field to include extra params
|
|
||||||
*/
|
|
||||||
function executeOperation(
|
|
||||||
address assetToSwapFrom,
|
|
||||||
address assetToSwapTo,
|
|
||||||
uint256 amountToSwap,
|
|
||||||
address fundsDestination,
|
|
||||||
bytes calldata params
|
|
||||||
) external;
|
|
||||||
}
|
|
|
@ -20,7 +20,6 @@ import {IStableDebtToken} from '../tokenization/interfaces/IStableDebtToken.sol'
|
||||||
import {IVariableDebtToken} from '../tokenization/interfaces/IVariableDebtToken.sol';
|
import {IVariableDebtToken} from '../tokenization/interfaces/IVariableDebtToken.sol';
|
||||||
import {DebtTokenBase} from '../tokenization/base/DebtTokenBase.sol';
|
import {DebtTokenBase} from '../tokenization/base/DebtTokenBase.sol';
|
||||||
import {IFlashLoanReceiver} from '../flashloan/interfaces/IFlashLoanReceiver.sol';
|
import {IFlashLoanReceiver} from '../flashloan/interfaces/IFlashLoanReceiver.sol';
|
||||||
import {ISwapAdapter} from '../interfaces/ISwapAdapter.sol';
|
|
||||||
import {LendingPoolCollateralManager} from './LendingPoolCollateralManager.sol';
|
import {LendingPoolCollateralManager} from './LendingPoolCollateralManager.sol';
|
||||||
import {IPriceOracleGetter} from '../interfaces/IPriceOracleGetter.sol';
|
import {IPriceOracleGetter} from '../interfaces/IPriceOracleGetter.sol';
|
||||||
import {SafeERC20} from '../dependencies/openzeppelin/contracts/SafeERC20.sol';
|
import {SafeERC20} from '../dependencies/openzeppelin/contracts/SafeERC20.sol';
|
||||||
|
@ -544,7 +543,7 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage
|
||||||
|
|
||||||
//execute action of the receiver
|
//execute action of the receiver
|
||||||
require(
|
require(
|
||||||
vars.receiver.executeOperation(assets, amounts, premiums, params),
|
vars.receiver.executeOperation(assets, amounts, premiums, msg.sender, params),
|
||||||
Errors.INVALID_FLASH_LOAN_EXECUTOR_RETURN
|
Errors.INVALID_FLASH_LOAN_EXECUTOR_RETURN
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,6 @@ import {Helpers} from '../libraries/helpers/Helpers.sol';
|
||||||
import {WadRayMath} from '../libraries/math/WadRayMath.sol';
|
import {WadRayMath} from '../libraries/math/WadRayMath.sol';
|
||||||
import {PercentageMath} from '../libraries/math/PercentageMath.sol';
|
import {PercentageMath} from '../libraries/math/PercentageMath.sol';
|
||||||
import {SafeERC20} from '../dependencies/openzeppelin/contracts/SafeERC20.sol';
|
import {SafeERC20} from '../dependencies/openzeppelin/contracts/SafeERC20.sol';
|
||||||
import {ISwapAdapter} from '../interfaces/ISwapAdapter.sol';
|
|
||||||
import {Errors} from '../libraries/helpers/Errors.sol';
|
import {Errors} from '../libraries/helpers/Errors.sol';
|
||||||
import {ValidationLogic} from '../libraries/logic/ValidationLogic.sol';
|
import {ValidationLogic} from '../libraries/logic/ValidationLogic.sol';
|
||||||
import {LendingPoolStorage} from './LendingPoolStorage.sol';
|
import {LendingPoolStorage} from './LendingPoolStorage.sol';
|
||||||
|
|
|
@ -47,9 +47,11 @@ contract MockFlashLoanReceiver is FlashLoanReceiverBase {
|
||||||
address[] memory assets,
|
address[] memory assets,
|
||||||
uint256[] memory amounts,
|
uint256[] memory amounts,
|
||||||
uint256[] memory premiums,
|
uint256[] memory premiums,
|
||||||
|
address initiator,
|
||||||
bytes memory params
|
bytes memory params
|
||||||
) public override returns (bool) {
|
) public override returns (bool) {
|
||||||
params;
|
params;
|
||||||
|
initiator;
|
||||||
|
|
||||||
if (_failExecution) {
|
if (_failExecution) {
|
||||||
emit ExecutedWithFail(assets, amounts, premiums);
|
emit ExecutedWithFail(assets, amounts, premiums);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user