From 078123f0c079a4bc6d0f5afd1a66efbf795e4761 Mon Sep 17 00:00:00 2001 From: Sawit Trisirisatayawong Date: Wed, 10 Mar 2021 16:54:33 +0700 Subject: [PATCH] chore: add ctoken and clean up interfaces --- interfaces/aave/Aave.sol | 2 -- .../aave/LendingPoolAddressesProvider.sol | 2 +- interfaces/aave/Oracle.sol | 15 +++-------- interfaces/compound/Token.sol | 8 +----- interfaces/cream/CToken.sol | 27 +++++++++++++++++++ interfaces/cream/Controller.sol | 4 ++- 6 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 interfaces/cream/CToken.sol diff --git a/interfaces/aave/Aave.sol b/interfaces/aave/Aave.sol index 183d24d4..8491affa 100644 --- a/interfaces/aave/Aave.sol +++ b/interfaces/aave/Aave.sol @@ -1,8 +1,6 @@ pragma solidity ^0.5.17; interface Aave { - function getRevision() internal pure returns (uint256); - /** * @dev deposits The underlying asset into the reserve. A corresponding amount of the overlying asset (aTokens) * is minted. diff --git a/interfaces/aave/LendingPoolAddressesProvider.sol b/interfaces/aave/LendingPoolAddressesProvider.sol index 6748bb5e..de929109 100644 --- a/interfaces/aave/LendingPoolAddressesProvider.sol +++ b/interfaces/aave/LendingPoolAddressesProvider.sol @@ -5,7 +5,7 @@ pragma solidity ^0.5.17; @notice provides the interface to fetch the LendingPoolCore address */ -contract ILendingPoolAddressesProvider { +contract LendingPoolAddressesProvider { /** * @dev returns the address of the LendingPool proxy * @return the lending pool proxy address diff --git a/interfaces/aave/Oracle.sol b/interfaces/aave/Oracle.sol index 35996646..80c3d646 100644 --- a/interfaces/aave/Oracle.sol +++ b/interfaces/aave/Oracle.sol @@ -1,16 +1,7 @@ pragma solidity ^0.5.17; -/************ -@title IPriceOracle interface -@notice Interface for the Aave price oracle.*/ -interface IPriceOracle { - /*********** - @dev returns the asset price in ETH - */ - function getAssetPrice(address _asset) external view returns (uint256); +interface Oracle { + function getAssetPrice(address reserve) external view returns (uint256); - /*********** - @dev sets the asset price, in wei - */ - function setAssetPrice(address _asset, uint256 _price) external; + function latestAnswer() external view returns (uint256); } diff --git a/interfaces/compound/Token.sol b/interfaces/compound/Token.sol index 0d3ebf7a..7653ee73 100644 --- a/interfaces/compound/Token.sol +++ b/interfaces/compound/Token.sol @@ -42,12 +42,6 @@ interface cToken { */ function allowance(address owner, address spender) external view returns (uint256); - /** - * @dev Function to simply retrieve block number - * This exists mainly for inheriting test contracts to stub this result. - */ - function getBlockNumber() internal view returns (uint256); - /** * @notice Returns the current per-block borrow interest rate for this cToken * @return The borrow interest rate per block, scaled by 1e18 @@ -118,7 +112,7 @@ interface cToken { /** * @notice Get the token balance of the `owner` - * @param owner The address of the account to query + * @param _owner The address of the account to query * @return The number of tokens owned by `owner` */ function balanceOf(address _owner) external view returns (uint256); diff --git a/interfaces/cream/CToken.sol b/interfaces/cream/CToken.sol new file mode 100644 index 00000000..7870220e --- /dev/null +++ b/interfaces/cream/CToken.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.5.17; + +interface CToken { + function decimals() external view returns (uint8); + + function totalSupply() external view returns (uint256); + + function underlying() external view returns (address); + + function balanceOfUnderlying(address) external returns (uint256); + + function supplyRatePerBlock() external returns (uint256); + + function exchangeRateCurrent() external returns (uint256); + + function mint(uint256) external returns (uint256); + + function balanceOf(address) external view returns (uint256); + + function redeemUnderlying(uint256) external returns (uint256); + + function redeem(uint256) external returns (uint256); + + function approve(address, uint256) external returns (bool); +} diff --git a/interfaces/cream/Controller.sol b/interfaces/cream/Controller.sol index 916dc53a..017f0de7 100644 --- a/interfaces/cream/Controller.sol +++ b/interfaces/cream/Controller.sol @@ -2,6 +2,8 @@ pragma solidity ^0.5.17; +import "./CToken.sol"; + interface Creamtroller { /** * @notice Claim all the comp accrued by holder in all markets @@ -29,5 +31,5 @@ interface Creamtroller { * @param cTokens The list of addresses of the cToken markets to be enabled * @return Success indicator for whether each corresponding market was entered */ - function enterMarkets(address[] memory cTokens) public returns (uint256[] memory); + function enterMarkets(address[] calldata cTokens) external returns (uint256[] memory); }