Using the ** operator with an exponent of type shorter than 256 bits can result in unexpected values.
Higher order bits in the exponent are not properly cleaned before the EXP opcode is applied if the type of the exponent expression is smaller than 256 bits and not smaller than the type of the base. In that case, the result might be larger than expected if the exponent is assumed to lie within the value range of the type. Literal numbers as exponents are unaffected as are exponents or bases of type uint256. - Link: https://blog.soliditylang.org/2018/09/13/solidity-bugfix-release/ - First Introduced: - Fixed in Version: 0.4.25 - Published: - Severity<: medium/high