Как отображать или регистрировать события в nodejs?

Ниже приведен очень простой контракт, который реализует функции ввода и вывода средств. Я определил два события:

  1. депонировано (адрес от, строка сообщения)
  2. withDrawn (адрес от, строка сообщения)

Контракт заключается в следующем:

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;
}

}

Теперь, когда я запускаю этот контракт из командной строки, используя его скомпилированный код, события не отображаются. Как мне вывести их в nodeJS.

Хорошей практикой является принятие ответа как правильного, если он помог вам решить проблему. В этом весь смысл SE, ни один из ответов на ваши вопросы не отмечен как правильный. К вашему сведению, если вы не знаете об этом.

Ответы (1)

Вы можете использовать события, такие как фильтры, и у них одни и те же методы, но вы передаете разные объекты для создания фильтра событий.

Параметры

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);
});

Чтение событий контракта