From b7c4a255a96815f65287e24f7e482b0ff04b522c Mon Sep 17 00:00:00 2001 From: The3D Date: Mon, 21 Sep 2020 15:58:19 +0200 Subject: [PATCH] Refactored aToken --- contracts/tokenization/AToken.sol | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/contracts/tokenization/AToken.sol b/contracts/tokenization/AToken.sol index eef9ffa4..00025c05 100644 --- a/contracts/tokenization/AToken.sol +++ b/contracts/tokenization/AToken.sol @@ -20,19 +20,9 @@ import {SafeERC20} from '../misc/SafeERC20.sol'; */ contract AToken is VersionedInitializable, IncentivizedERC20, IAToken { using WadRayMath for uint256; - using SafeERC20 for IncentivizedERC20; + using SafeERC20 for IERC20; - uint256 public constant UINT_MAX_VALUE = uint256(-1); - address public immutable UNDERLYING_ASSET_ADDRESS; - address public immutable RESERVE_TREASURY_ADDRESS; - LendingPool public immutable POOL; - /// @dev owner => next valid nonce to submit with permit() - mapping(address => uint256) public _nonces; - - uint256 public constant ATOKEN_REVISION = 0x1; - - bytes32 public DOMAIN_SEPARATOR; bytes public constant EIP712_REVISION = bytes('1'); bytes32 internal constant EIP712_DOMAIN = keccak256( 'EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)' @@ -41,6 +31,17 @@ contract AToken is VersionedInitializable, IncentivizedERC20, IAToken { 'Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)' ); + uint256 public constant UINT_MAX_VALUE = uint256(-1); + uint256 public constant ATOKEN_REVISION = 0x1; + address public immutable UNDERLYING_ASSET_ADDRESS; + address public immutable RESERVE_TREASURY_ADDRESS; + LendingPool public immutable POOL; + + /// @dev owner => next valid nonce to submit with permit() + mapping(address => uint256) public _nonces; + + bytes32 public DOMAIN_SEPARATOR; + modifier onlyLendingPool { require(msg.sender == address(POOL), Errors.CALLER_MUST_BE_LENDING_POOL); _; @@ -110,7 +111,7 @@ contract AToken is VersionedInitializable, IncentivizedERC20, IAToken { _burn(user, scaledAmount); //transfers the underlying to the target - IncentivizedERC20(UNDERLYING_ASSET_ADDRESS).safeTransfer(receiverOfUnderlying, amount); + IERC20(UNDERLYING_ASSET_ADDRESS).safeTransfer(receiverOfUnderlying, amount); //transfer event to track balances emit Transfer(user, address(0), amount); @@ -239,7 +240,7 @@ contract AToken is VersionedInitializable, IncentivizedERC20, IAToken { onlyLendingPool returns (uint256) { - IncentivizedERC20(UNDERLYING_ASSET_ADDRESS).safeTransfer(target, amount); + IERC20(UNDERLYING_ASSET_ADDRESS).safeTransfer(target, amount); return amount; }