From d26b1beb68e086e77ffda7aa429c05ee085e24d5 Mon Sep 17 00:00:00 2001 From: Jason Raymond Bell Date: Thu, 20 May 2021 14:14:51 +0100 Subject: [PATCH] Fix _getDecimals function Added a limit on number of decimals and changed return type to uint8. Fixes MixBytes Warning 5 and ABDK CVF-30. --- contracts/adapters/BaseParaSwapAdapter.sol | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/contracts/adapters/BaseParaSwapAdapter.sol b/contracts/adapters/BaseParaSwapAdapter.sol index 70947d92..2ef5314a 100644 --- a/contracts/adapters/BaseParaSwapAdapter.sol +++ b/contracts/adapters/BaseParaSwapAdapter.sol @@ -56,8 +56,11 @@ abstract contract BaseParaSwapAdapter is FlashLoanReceiverBase, Ownable { * @dev Get the decimals of an asset * @return number of decimals of the asset */ - function _getDecimals(address asset) internal view returns (uint256) { - return IERC20Detailed(asset).decimals(); + function _getDecimals(address asset) internal view returns (uint8) { + uint8 decimals = IERC20Detailed(asset).decimals(); + // Ensure 10**decimals won't overflow a uint256 + require(decimals <= 77, 'TOO_MANY_DECIMALS_ON_TOKEN'); + return decimals; } /**