有没有办法查看 Eris Blockchain 的所有区块上的所有事件?目前我已经设法订阅了一个特定的事件
合同
contract IdisContractsFTW {
uint storedData;
string name;
event SetName(address indexed _from, string _name);
function set(uint x) {
storedData = x;
}
function get() constant returns (uint retVal) {
return storedData;
}
function setName(string _name){
name = _name;
SetName(msg.sender, _name);
}
function getName() constant returns (string retVal){
return name;
}
}
节点.js
var myContract;
var IdisContractsFTW = JSON.parse(fs.readFileSync('./abi/' + 'IdisContractsFTW', 'utf8'));
var myContractFactory = manager.newContractFactory(IdisContractsFTW);
myContractFactory.at(incoming.address, function(error, contract){
if(error) {throw error}
myContract = contract;
if(myContract){
myContract.SetName(
function(error,eventSub){
if(error){
throw error;
}
if(eventSub){
console.log(JSON.stringify(eventSub));
response.statusCode = 200;
response.setHeader('Content-Type', 'application/json');
response.write(JSON.stringify(eventSub));
response.end('\n');
}
}, function (error,event) {
if(error){
console.log("listenContractEvent error:"+error);
}
if(event){
console.log("event:"+JSON.stringify(event));
}
}
);
}
});
我在 node.js 中的当前代码只是在创建事件时打印出一个事件。我正在尝试获取此合同 IdisContractFTW 创建的一系列事件。感谢您对此的建议。
这里的管理器对象是使用创建的
var contracts = require('eris-contracts');
manager = contracts.newContractManagerDev(chainUrl, accounts.simplechain_full_000);