Integer Overflow en Solidity
[crayon-6a6187e334eb6621327308/]
Este contrato de Solidity ilustra un ejemplo de desbordamiento de enteros. Veamos el código paso a paso:
- contract IntegerOverflowExample: Aquí se define el contrato
IntegerOverflowExample. - uint public maxValue = 2**256 – 1 En esta línea se declara una variable pública
maxValuede tipouint(entero sin signo de 256 bits) y se le asigna el valor máximo que puede contener unuint256. Este valor se calcula como 2 elevado a la potencia de 256 menos 1. Es importante destacar que el valor máximo es extremadamente grande y prácticamente imposible de representar en la práctica. - function overflow() public view returns (uint): Aquí se define una función pública llamada
overflow, que no modifica el estado del contrato (view) y devuelve un valor de tipouint. - return maxValue + 1; Dentro de la función
overflow, se intenta realizar una operación de suma conmaxValuey 1. Dado quemaxValueya es el valor máximo que puede contener unuint256, sumarle 1 resultará en un desbordamiento de enteros.
