Add swap borrow rate method

This commit is contained in:
Mubaris NK 2021-03-28 19:09:16 +05:30
parent 352f1c8812
commit 39cf67a830
No known key found for this signature in database
GPG Key ID: 9AC09AD0F8D68561

View File

@ -18,6 +18,7 @@ interface AaveInterface {
) external; ) external;
function repay(address _asset, uint256 _amount, uint256 _rateMode, address _onBehalfOf) external; function repay(address _asset, uint256 _amount, uint256 _rateMode, address _onBehalfOf) external;
function setUserUseReserveAsCollateral(address _asset, bool _useAsCollateral) external; function setUserUseReserveAsCollateral(address _asset, bool _useAsCollateral) external;
function swapBorrowRateMode(address asset, uint256 rateMode) external;
} }
interface AaveLendingPoolProviderInterface { interface AaveLendingPoolProviderInterface {
@ -115,6 +116,7 @@ contract BasicResolver is AaveHelpers {
event LogBorrow(address indexed token, uint256 tokenAmt, uint256 indexed rateMode, uint256 getId, uint256 setId); event LogBorrow(address indexed token, uint256 tokenAmt, uint256 indexed rateMode, uint256 getId, uint256 setId);
event LogPayback(address indexed token, uint256 tokenAmt, uint256 indexed rateMode, uint256 getId, uint256 setId); event LogPayback(address indexed token, uint256 tokenAmt, uint256 indexed rateMode, uint256 getId, uint256 setId);
event LogEnableCollateral(address[] tokens); event LogEnableCollateral(address[] tokens);
event LogSwapRateMode(address indexed token, uint256 rateMode);
/** /**
* @dev Deposit ETH/ERC20_Token. * @dev Deposit ETH/ERC20_Token.
@ -259,8 +261,26 @@ contract BasicResolver is AaveHelpers {
emit LogEnableCollateral(tokens); emit LogEnableCollateral(tokens);
} }
/**
* @dev Swap borrow rate mode between stable and variable
* @param token The address of the token to swap borrow rate.(For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)
* @param rateMode Desired borrow rate mode. (Stable = 1, Variable = 2)
*/
function swapBorrowRateMode(address token, uint rateMode) external payable {
AaveInterface aave = AaveInterface(getAaveProvider().getLendingPool());
AaveDataProviderInterface aaveData = getAaveDataProvider();
uint currentRateMode = rateMode == 1 ? 2 : 1;
if (getPaybackBalance(aaveData, token, currentRateMode) > 0) {
aave.swapBorrowRateMode(token, rateMode);
}
emit LogSwapRateMode(token, rateMode);
}
} }
contract ConnectAaveV2 is BasicResolver { contract ConnectAaveV2 is BasicResolver {
string public name = "AaveV2-v1.1"; string public name = "AaveV2-v1.2";
} }