Estoy haciendo PoC en Ethereum usando la red Azure Ethereum y Web3. Estuve trabajando desde el último mes y creé un contrato inteligente para la gestión de estudiantes y funcionó de maravilla. Pero por alguna razón, eliminé mi red Azure Ethereum y creé una nueva. He seguido todos los pasos que hice anteriormente, pero muestra un error en la sección de verificación formal como
Error: el tipo int256 no se admite para la variable de estado
El mismo código de contrato inteligente funcionaba bien anteriormente. Las transacciones se realizan desde Metamask, pero no puedo leer los datos de las funciones, así que puedo averiguar dónde está exactamente el problema.
~pragma solidity ^0.4.9;
contract SimpleTest {
int public count;
function IncCounter()
{
count++;
}
function GetCounter() constant returns(int)
{
return count;
}
}
He buscado este problema pero no encontré nada valioso. ¿Puede alguien ayudarme a comprender el problema exacto y cómo resolverlo rápidamente?
Suena como un error del compilador (no tengo idea de qué es la "sección de verificación formal").
Lo más probable es que el compilador Solidity se haya actualizado a una versión más nueva que viene con controles más estrictos.
Sin embargo, es imposible saberlo a menos que incluya el código fuente de su contrato y los errores reales en la pregunta. Edite la pregunta y use las capacidades de formato de código de Markdown para agregar los detalles necesarios.
Su código de contrato funciona bien:
tu variable count
es pública de todos modos. puede intentar usar el captador automático, SimpleTestInstance.count()
supongo que el problema que tuvo fue con uint
y int
. Recuerda que int
o uint
significa uint256
y int256
. Entonces, dependiendo de las firmas de tipo de sus contratos, puede ser incorrecto.
enlace al violín: https://ethfiddle.com/C6ARx6vyyo
mikko ohtamaa