Wie werden Ereignisse in nodejs angezeigt oder protokolliert?

Es folgt ein sehr einfacher Vertrag, der Ein- und Auszahlungsfunktionen implementiert. Ich habe zwei Ereignisse definiert:

  1. hinterlegt (Adresse von, String msg)
  2. withDrawn(Adresse von, Zeichenfolge msg)

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.

Es hat sich bewährt, die Antwort als richtig zu akzeptieren, wenn sie Ihnen bei der Lösung des Problems geholfen hat. Das ist der springende Punkt bei SE. Keine der Antworten auf Ihre Fragen wird als richtig markiert. FYI, wenn Sie sich dessen nicht bewusst sind.

Antworten (1)

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