2
我正在修補web3j,並且我想要做的大部分事情都能成功,但是我似乎無法聽到事件。在Web3j中傾聽事件
我已經通過添加一個事件VoteEnded來擴展您通過混音獲得的ballot.sol合同,該事件在對callsProposal進行調用並且在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());
}
});
但是,這並不打印任何東西。
我在做什麼錯?