Soy nuevo en contratos inteligentes y me enfrento a un problema. Después de implementar el contrato en mi red blockchain local de prueba, trato de establecer un nuevo valor a través del setter, luego llamo al método get of contract y devuelve el valor anterior.
Este es mi contrato,
pragma solidity ^0.4.10;
contract Storage {
uint256 storedData;
function set(uint256 data) {
storedData = data;
}
function get() constant returns (uint256) {
return storedData;
}
}
Que pasos hice:
- Implemente el contrato a través de web3j en código Java, después de implementar veo la dirección de mi contrato, por lo que está implementado
- Después de eso, en la consola geth, cree la variable abi: var abi = [{"constante":falso,"entradas":[{"nombre":"datos","tipo":"uint256"}],"nombre":"conjunto ","salidas":[],"de pago":falso,"estadomutabilidad":"no pagadero","tipo":"función"},{"constante":verdadero,"entradas":[],"nombre": "get","outputs":[{"name":"","type":"uint256"}],"payable":false,"statemutability":"view","type":"function"}] ;
- contrato de carga: var almacenamiento = eth.contrato(abi)
- cargar contrato por dirección: var contractInstance = storage.at("0x45564fe8d90e542f3f896dd43b374210bc109299");
- intente llamar al método get(): var result = contractInstance.get(); es salida 0
- luego intente establecer un nuevo valor: var result = contractInstance.set(566); After that I see something like this: INFO [09-07|08:42:07] Submitted transaction fullhash=0x7110b3fdfc8005187ed367beb8275a6f4b926f4852f726784219a5a3aa9c8d9e recipient=0x45564fe8d90e542f3f896dd43b374210bc109299 "0x7110b3fdfc8005187ed367beb8275a6f4b926f4852f726784219a5a3aa9c8d9e"
- A continuación, empiezo a minar: miner.start(), al comienzo de la extracción, veo un registro como este: INFO [09-07|08:44:15] Confirmar nuevo número de trabajo de minería = 38 txs = 1 tíos = 0 transcurrido = 1.044 ms INFO [09-07|08:44:15] Número de bloque sellado con éxito = 38 hash=e62548…39ad89 INFO [09-07|08:44:15] 🔗 el bloque alcanzó el número de cadena canónica=33 hash=9a6ae1…9cb82d INFO [09-07|08:44:15] 🔨 número de bloque potencial extraído=38 hash=e62548…39ad89 INFO [09-07|08:44:15] Confirmar nuevo trabajo de minería número=39 txs=0 tíos=0 transcurrido =182.5µs INFO [09-07|08:44:15] Número de bloque sellado con éxito = 39 hash=87b682…f52e39 INFO [09-07|08:44:15] 🔗 el bloque alcanzó el número de cadena canónica=34 hash=cc9a2d …36838a INFO [09-07|08:44:15] 🔨 número de bloque potencial minado=39 hash=87b682…f52e39 INFO [09-07|08:44:15] Minería demasiado en el futuro espera=2s
- Luego dejo de minar: miner.stop() 9. Luego llamo a contractInstance.get(): y veo el mismo valor 0
Estoy confundido (¡Gracias a todos por la ayuda!
BinGoBinBin
Molinero
wtk219
Molinero
Edmundo Edgar
storedData
un valor predeterminado antes de intentar cambiarlo, eso le dirá si su problema es la lectura o la escritura.Molinero
Molinero
Nikita Fuchs
constructor()
función.