¿Cómo mostrar o registrar eventos en nodejs?

El siguiente es un contrato muy simple que implementa las funciones de depósito y retiro. He definido dos eventos:

  1. depositado (dirección de, mensaje de cadena)
  2. withDrawn(dirección de, mensaje de cadena)

El contrato es el siguiente:

pragma solidity ^0.4.4;
contract Bank{
uint balance;
address owner;

event deposited(address from, string msg);
event withDrawn(address from, string msg);

function deposit(uint amount){
    balance = balance + amount;
    deposited(msg.sender, "Amount has been deposited successfully");
}

function withDraw(uint amount){
    if(amount >= balance){
        throw;
    }
    else{
        balance = balance - amount;
        withDrawn(msg.sender, "Amount has been withdrawn successfully");
    }
}

function getBalance()constant returns (uint){
    return balance;
}

}

Ahora, cuando ejecuto este contrato desde el símbolo del sistema usando su código compilado, los eventos no se muestran. ¿Cómo debo generarlos en nodeJS?

Es una buena práctica aceptar la respuesta como correcta si te ayudó a resolver el problema. Ese es el objetivo de SE, ninguna de las respuestas a sus preguntas está marcada como correcta. Para tu información, si no eres consciente de ello.

Respuestas (1)

Puede usar eventos como filtros y tienen los mismos métodos, pero pasa diferentes objetos para crear el filtro de eventos.

Parámetros

Object - Indexed return values you want to filter the logs by, e.g. {'valueA': 1, 'valueB': [myFirstAddress, mySecondAddress]}.
Object - Additional filter options, see filters parameter 1 for more.

var event = myContractInstance.MyEvent({valueA: 23} [, additionalFilterObject])

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

// Or pass a callback to start watching immediately
var event = myContractInstance.MyEvent([{valueA: 23}] [, additionalFilterObject] , function(error, result){
  if (!error)
    console.log(result);
});

Leer eventos de contrato