1

有没有办法查看 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);
4

1 回答 1

2

这在今天是不可能的,但它是一个普遍要求的功能

于 2016-10-11T18:39:17.197 回答