Events

有沒有辦法查看 Eris Blockchain 的所有區塊上的所有事件?

  • October 11, 2016

有沒有辦法查看 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);

這是我在stackoverflow中提出的一個問題的轉貼。但我沒有設法在那裡得到答案 https://stackoverflow.com/questions/39981393/is-there-a-way-to-view-all-events-on-all-blocks-for-eris-blockchain

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

引用自:https://ethereum.stackexchange.com/questions/9188