Estoy tratando de usar el comando .watch() en un evento de mi contrato. Cada vez que ejecuto el archivo .js, aparece lo siguiente:
Error: respuesta JSON RPC no válida: “”
No estoy en mi computadora y no puedo pegar mi archivo .js hasta más tarde hoy, pero ¿qué sugiere este error? Se muestra cada vez que se ejecuta el archivo. ¿Podría ser un problema con la instancia del contrato o con el propio web3?
Gracias de antemano.
Como mencionó Ismael, Infura no admite el uso de eventos .watch(). La solución es usar los websockets de Infura. El código de trabajo se puede encontrar aquí: proveedor Infura web3 para eventos (.get y .watch)
También agrego problemas al usar watch() en web3 para ver eventos.
Pero logro resolverlos usando el método alternativo ( docs ):
// Or pass a callback to start watching immediately
var event = myContractInstance.MyEvent([{valueA: 23}] [, additionalFilterObject] , function(error, result){
if (!error)
console.log(result);
});
Para un evento de este tipo:
event singleNumber(uint256 number);
Obtengo el valor así:
var event = myContractInstance.singleNumber({}, function(error, result){
if (!error)
var number = result.args.number.toNumber();
});
Hay un hilo de github sobre esta respuesta: https://github.com/trufflesuite/truffle/issues/852
De acuerdo con esto, es un problema con Infura y los controladores abiertos.
Prashant Prabhakar Singh
buena vibración
noob_23
ismael