yield-utils-v2
yield-utils-v2 copied to clipboard
Unnecessary return of default value
SafeERC20Namer.tokenDecimals
returns zero in case the decimals
is not implemented by the provided token
address:
https://github.com/yieldprotocol/yield-utils-v2/blob/dbeb85ac94befc477bf8cdff9f178fdf331eb83d/src/token/SafeERC20Namer.sol#L99-102
However, this is not necessary, because "0" is the implicit default value for uint8
. You might be able to save a little bit of gas if you refactor the code like this:
- function tokenDecimals(address token) public view returns (uint8) {
+ function tokenDecimals(address token) public view returns (uint8 decimals) {
(bool success, bytes memory data) = token.staticcall(abi.encodeWithSelector(IERC20Metadata.decimals.selector));
- return success && data.length == 32 ? abi.decode(data, (uint8)) : 0;
+ if (success && data.length == 32) {
+ decimals = abi.decode(data, (uint8));
+ }
Though, on second thoughts, I am not so sure that this would save gas.