El siguiente es un contrato muy simple que implementa las funciones de depósito y retiro. He definido dos eventos:
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?
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
niksmac