-
Notifications
You must be signed in to change notification settings - Fork 49
Open
Description
SafeERC20Namer.tokenDecimals
returns zero in case the decimals
is not implemented by the provided token
address:
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));
+ }
Metadata
Metadata
Assignees
Labels
No labels