2017-05-28 6 views
2

私はweb3jを手直ししています。私が成功したいことのほとんどは、イベントを聞くことができないようです。Web3jのイベントを聴く

リミックスとのballot.sol契約を延長しました。VoteEndedというイベントを追加しました。これはwinningProposalが呼び出されたときに呼び出され、Remix JavaScript VMで動作します。

... 
event VoteEnded(); 
... 

function winningProposal() constant returns (uint8 winningProposal) { 
    uint256 winningVoteCount = 0; 
    for (uint8 proposal = 0; proposal < proposals.length; proposal++) 
     if (proposals[proposal].voteCount > winningVoteCount) { 
      winningVoteCount = proposals[proposal].voteCount; 
      winningProposal = proposal; 
     } 
    VoteEnded(); 
} 
... 

私はWeb3jでこの契約と投票などを展開することができます。それから、VoteEndedを聞くフィルタを追加しました。私はそれが好きでした:

EthFilter filter = new EthFilter(DefaultBlockParameterName.EARLIEST, DefaultBlockParameterName.LATEST, contract.getContractAddress()); 
    web3.ethLogObservable(filter).subscribe(new Action1<Log>() { 
     @Override  
     public void call(Log log) { 
      System.out.println("log.toString(): " + log.toString()); 
     } 
    }); 

しかし、これがすべてでは何も印刷されません。

私は間違っていますか?

答えて

1

を追加する必要があります。eventは、インスタンス化されたorg.web3j.abi.datatypes.Eventオブジェクトです。

関連する問題