Imprimiendo en la consola: Eventos TypeError - 'ver' no es una función

Imprimiendo en consola

Necesito imprimir valores como estas líneas verdes:

de ethereum.org

1) Intenté regresar

Cuando llamo a una función que devuelve una cadena, se imprime la dirección hexadecimal de la transacción en lugar del valor de la función.

2) Probé js

Haciendo referencia a este enlace , cargué el siguiente archivo js con la esperanza de imprimir valores variables.

var abi = /*abi interface*/
var Insurance= web3.eth.contract(abi);
var insurance = Insurance.at(web3.eth.accounts[0]);
var event = insurance.claimInsurance();

// watch for changes
event.watch(function(error, result){
    if (!error)
        console.log(result);
});
event.get(function(error, result){
    if (!error)
        console.log(result);
});

estoy err: TypeError: 'watch' is not a functionrecibiendo

¿Hay alguna manera de que pueda imprimir el valor de las variables desde la consola geth?

Respuestas (1)

Para lograr esto necesitas hacer 3 cosas:

  1. definir un evento en la solidez:

    event myEvent1(address _sender, string _msg);
    
  2. llame a este evento dentro de la función en solidez. en su caso "listProposal ()"

    myEvent1(msg.sender,"this event called")
    
  3. Primero, llame al método en el JS usando el objeto web3, que contiene su evento, es decir, listProposal(). cuando este se ejecute en la EVM, emitirá el evento. Por lo tanto, debe crear una función JS que escuche el cambio en el estado del evento:

    //method call
    var abc = insurance.listProposal(42,function(err,res){...});
    
    //now you should here start watching for any event being emitted from the EVM
    var eventGenerated = insurance.myEvent1({},function(err,res){
    if(!err){
     console.log(res.args._sender+"has this message:"+ res.args._msg);// this is the line which you want to show to the console, when your message gets called, which is in green line in the console.
    }
    else{
     console.log(err);
    }
    });
    

Espero que esto ayude. Lo hice usando el método de devolución de llamada. allí escribo el mensaje que desea, una vez que su contrato se ejecute con éxito.

Espero que esto ayude. Gracias.

¿No has usado abcvariable? @Vixon