diff --git a/contracts/flashloan/base/FlashLoanReceiverBase.sol b/contracts/flashloan/base/FlashLoanReceiverBase.sol index 9852b2d4..35cb17cf 100644 --- a/contracts/flashloan/base/FlashLoanReceiverBase.sol +++ b/contracts/flashloan/base/FlashLoanReceiverBase.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '@openzeppelin/contracts/math/SafeMath.sol'; -import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; -import '../interfaces/IFlashLoanReceiver.sol'; -import '../../interfaces/ILendingPoolAddressesProvider.sol'; +import {SafeMath} from '@openzeppelin/contracts/math/SafeMath.sol'; +import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import {IFlashLoanReceiver} from '../interfaces/IFlashLoanReceiver.sol'; +import {ILendingPoolAddressesProvider} from '../../interfaces/ILendingPoolAddressesProvider.sol'; import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; import '@nomiclabs/buidler/console.sol'; @@ -35,5 +35,4 @@ abstract contract FlashLoanReceiverBase is IFlashLoanReceiver { ) internal { IERC20(_reserve).safeTransfer(_destination, _amount); } - } diff --git a/contracts/interfaces/IERC20Detailed.sol b/contracts/interfaces/IERC20Detailed.sol index 75812687..89ac6f52 100644 --- a/contracts/interfaces/IERC20Detailed.sol +++ b/contracts/interfaces/IERC20Detailed.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; interface IERC20Detailed is IERC20 { function name() external view returns (string memory); diff --git a/contracts/interfaces/IExchangeAdapter.sol b/contracts/interfaces/IExchangeAdapter.sol index 4e7af43a..b1a0d208 100644 --- a/contracts/interfaces/IExchangeAdapter.sol +++ b/contracts/interfaces/IExchangeAdapter.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; interface IExchangeAdapter { event Exchange( diff --git a/contracts/misc/ChainlinkProxyPriceProvider.sol b/contracts/misc/ChainlinkProxyPriceProvider.sol index fdd7908c..38292d0f 100644 --- a/contracts/misc/ChainlinkProxyPriceProvider.sol +++ b/contracts/misc/ChainlinkProxyPriceProvider.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '@openzeppelin/contracts/access/Ownable.sol'; -import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; +import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; -import '../interfaces/IPriceOracleGetter.sol'; -import '../interfaces/IChainlinkAggregator.sol'; +import {IPriceOracleGetter} from '../interfaces/IPriceOracleGetter.sol'; +import {IChainlinkAggregator} from '../interfaces/IChainlinkAggregator.sol'; import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; /// @title ChainlinkProxyPriceProvider @@ -77,17 +77,17 @@ contract ChainlinkProxyPriceProvider is IPriceOracleGetter, Ownable { /// @param _asset The asset address function getAssetPrice(address _asset) public override view returns (uint256) { IChainlinkAggregator source = assetsSources[_asset]; - // If there is no registered source for the asset, call the fallbackOracle - if (address(source) == address(0)) { - return IPriceOracleGetter(fallbackOracle).getAssetPrice(_asset); + // If there is no registered source for the asset, call the fallbackOracle + if (address(source) == address(0)) { + return IPriceOracleGetter(fallbackOracle).getAssetPrice(_asset); + } else { + int256 _price = IChainlinkAggregator(source).latestAnswer(); + if (_price > 0) { + return uint256(_price); } else { - int256 _price = IChainlinkAggregator(source).latestAnswer(); - if (_price > 0) { - return uint256(_price); - } else { - return IPriceOracleGetter(fallbackOracle).getAssetPrice(_asset); - } + return IPriceOracleGetter(fallbackOracle).getAssetPrice(_asset); } + } } /// @notice Gets a list of prices from a list of assets addresses diff --git a/contracts/misc/WalletBalanceProvider.sol b/contracts/misc/WalletBalanceProvider.sol index 7ae1ab63..a4ee05dc 100644 --- a/contracts/misc/WalletBalanceProvider.sol +++ b/contracts/misc/WalletBalanceProvider.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '@openzeppelin/contracts/utils/Address.sol'; -import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import {Address} from '@openzeppelin/contracts/utils/Address.sol'; +import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; -import '../configuration/LendingPoolAddressesProvider.sol'; -import '../lendingpool/LendingPool.sol'; +import {LendingPoolAddressesProvider} from '../configuration/LendingPoolAddressesProvider.sol'; +import {LendingPool} from '../lendingpool/LendingPool.sol'; import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; /** @@ -26,7 +26,7 @@ contract WalletBalanceProvider { provider = _provider; } - /** + /** @dev Fallback function, don't accept any ETH **/ receive() external payable { @@ -97,7 +97,7 @@ contract WalletBalanceProvider { balances[j] = 0; continue; } - balances[j] = balanceOf(_user, reserves[j]); + balances[j] = balanceOf(_user, reserves[j]); } return (reserves, balances); diff --git a/contracts/mocks/flashloan/MockFlashLoanReceiver.sol b/contracts/mocks/flashloan/MockFlashLoanReceiver.sol index aef4b128..1c6657a9 100644 --- a/contracts/mocks/flashloan/MockFlashLoanReceiver.sol +++ b/contracts/mocks/flashloan/MockFlashLoanReceiver.sol @@ -1,12 +1,13 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '@openzeppelin/contracts/math/SafeMath.sol'; -import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import {SafeMath} from '@openzeppelin/contracts/math/SafeMath.sol'; +import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; -import '../../flashloan/base/FlashLoanReceiverBase.sol'; -import '../tokens/MintableERC20.sol'; -import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; +import {FlashLoanReceiverBase} from '../../flashloan/base/FlashLoanReceiverBase.sol'; +import {MintableERC20} from '../tokens/MintableERC20.sol'; +import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; +import {ILendingPoolAddressesProvider} from '../../interfaces/ILendingPoolAddressesProvider.sol'; contract MockFlashLoanReceiver is FlashLoanReceiverBase { using SafeMath for uint256; diff --git a/contracts/mocks/oracle/LendingRateOracle.sol b/contracts/mocks/oracle/LendingRateOracle.sol index 7bfb7380..c0cadf31 100644 --- a/contracts/mocks/oracle/LendingRateOracle.sol +++ b/contracts/mocks/oracle/LendingRateOracle.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '../../interfaces/ILendingRateOracle.sol'; -import '@openzeppelin/contracts/access/Ownable.sol'; +import {ILendingRateOracle} from '../../interfaces/ILendingRateOracle.sol'; +import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; contract LendingRateOracle is ILendingRateOracle, Ownable { mapping(address => uint256) borrowRates; diff --git a/contracts/mocks/oracle/PriceOracle.sol b/contracts/mocks/oracle/PriceOracle.sol index b1b00f59..20d576f2 100644 --- a/contracts/mocks/oracle/PriceOracle.sol +++ b/contracts/mocks/oracle/PriceOracle.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '../../interfaces/IPriceOracle.sol'; +import {IPriceOracle} from '../../interfaces/IPriceOracle.sol'; contract PriceOracle is IPriceOracle { mapping(address => uint256) prices; diff --git a/contracts/mocks/tokens/MintableERC20.sol b/contracts/mocks/tokens/MintableERC20.sol index 470dc816..c5c857d5 100644 --- a/contracts/mocks/tokens/MintableERC20.sol +++ b/contracts/mocks/tokens/MintableERC20.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; +import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol'; /** * @title ERC20Mintable