From 2842fed13af0896460d9a5b9727d4b7dc189f256 Mon Sep 17 00:00:00 2001 From: bhavik-m Date: Mon, 21 Feb 2022 15:47:39 +0530 Subject: [PATCH] added e-mode func --- .../mainnet/connectors/aave/v3/events.sol | 35 +++++++++++++++---- contracts/mainnet/connectors/aave/v3/main.sol | 22 ++++++++++-- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/contracts/mainnet/connectors/aave/v3/events.sol b/contracts/mainnet/connectors/aave/v3/events.sol index 805b2209..9f60f22b 100644 --- a/contracts/mainnet/connectors/aave/v3/events.sol +++ b/contracts/mainnet/connectors/aave/v3/events.sol @@ -1,10 +1,33 @@ pragma solidity ^0.7.0; contract Events { - event LogDeposit(address indexed token, uint256 tokenAmt, uint256 getId, uint256 setId); - event LogWithdraw(address indexed token, uint256 tokenAmt, 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 LogEnableCollateral(address[] tokens); - event LogSwapRateMode(address indexed token, uint256 rateMode); + event LogDeposit( + address indexed token, + uint256 tokenAmt, + uint256 getId, + uint256 setId + ); + event LogWithdraw( + address indexed token, + uint256 tokenAmt, + 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 LogEnableCollateral(address[] tokens); + event LogSwapRateMode(address indexed token, uint256 rateMode); + event LogSetUserEMode(uint8 categoryId); } diff --git a/contracts/mainnet/connectors/aave/v3/main.sol b/contracts/mainnet/connectors/aave/v3/main.sol index d55e0339..980ce1e0 100644 --- a/contracts/mainnet/connectors/aave/v3/main.sol +++ b/contracts/mainnet/connectors/aave/v3/main.sol @@ -182,8 +182,9 @@ abstract contract AaveResolver is Events, Helpers { } /** - * @dev Payback borrowed ETH/ERC20_Token . - * @notice Payback debt owed. + * @dev Payback borrowed ETH/ERC20_Token using aTokens. + * @notice Repays a borrowed `amount` on a specific reserve using the reserve aTokens, burning the + * equivalent debt tokens. * @param token The address of the token to payback.(For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) * @param amt The amount of the token to payback. (For max: `uint256(-1)`) * @param rateMode The type of debt paying back. (For Stable: 1, Variable: 2) @@ -272,6 +273,23 @@ abstract contract AaveResolver is Events, Helpers { _eventName = "LogSwapRateMode(address,uint256)"; _eventParam = abi.encode(token, rateMode); } + + /** + * @dev Set user e-mode + * @notice Updates the user's e-mode category + * @param categoryId The category Id of the e-mode user want to set + */ + function setUserEMode(uint8 categoryId) + external + returns (string memory _eventName, bytes memory _eventParam) + { + AaveInterface aave = AaveInterface(aaveProvider.getPool()); + + aave.setUserEMode(categoryId); + + _eventName = "LogSetUserEMode(uint8)"; + _eventParam = abi.encode(categoryId); + } } contract ConnectV2AaveV3 is AaveResolver {