Es folgt ein sehr einfacher Vertrag, der Ein- und Auszahlungsfunktionen implementiert. Ich habe zwei Ereignisse definiert:
Der Vertrag lautet wie folgt:
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;
}
}
Wenn ich diesen Vertrag jetzt über die Eingabeaufforderung mit seinem kompilierten Code ausführe, werden die Ereignisse nicht angezeigt. Wie soll ich sie in nodeJS ausgeben.
Sie können Ereignisse wie Filter verwenden und sie haben die gleichen Methoden, aber Sie übergeben unterschiedliche Objekte, um den Ereignisfilter zu erstellen.
Parameter
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);
});
Vertragsereignisse lesen
Niksmac