Ниже приведен очень простой контракт, который реализует функции ввода и вывода средств. Я определил два события:
Контракт заключается в следующем:
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.
Вы можете использовать события, такие как фильтры, и у них одни и те же методы, но вы передаете разные объекты для создания фильтра событий.
Параметры
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);
});
Чтение событий контракта
никсмак