My function is:
function watchEvents(){
myEvent = contract_instance.NumberIsIncreased({},{fromBlock: 'latest', toBlock: 'latest'});
console.log(myEvent);
myEvent.watch(function(error, result){
if(error){
console.log(error);
} else{
console.log(result);
document.getElementById("events").innerHTML = document.getElementById("events").innerHTML + "<br />" + JSON.stringify(result);
}
});
}
This is the contract:
event NumberIsIncreased(address indexed whoIncreased, uint256 indexed oldNumber, uint256 indexed newNumber);
function setMyNumber(uint256 myNewNumber) public {
NumberIsIncreased(msg.sender, myNumber, myNewNumber);
myNumber = myNewNumber;
}
Although I can access other functions on the smart contract, when I'm calling the event, it's showing the error Uncaught TypeError: contract_instance.NumberIsIncreased is not a function
.
I can track events in the Mist browser too.
I'm using geth version : 1.7.2-stable
.
Edit 1:
I'm using web3.js version : 0.14.0
Other functions that are working:
function getCounter(){
contract_instance.getMyNumber(function(e,r){
document.getElementById("myCounter").innerText = r.toNumber();
});
}
function increaseCounter(){
contract_instance.getMyNumber(function(e,r){
currentNumber = r;
currentNumber++;
web3.eth.getAccounts(function(e,accounts){
web3.personal.unlockAccount(accounts,"password", function(e,r){});
contract_instance.setMyNumber(currentNumber, {from:accounts[0] , gas:200000}, function(error, result){
if (error){
console.error(error);
} else {
var txHash = result;
console.log(txHash);
callWhenMined(txHash, getCounter);
}
});
});
});
}
My contract file :
pragma solidity ^0.4.0;
contract MyContract {
address creator;
uint256 myNumber;
event NumberIsIncreased(address indexed whoIncreased, uint256 indexed oldNumber, uint256 indexed newNumber);
function MyContract() public {
creator = msg.sender;
myNumber = 3;
}
function getCreator() public constant returns (address) {
return creator;
}
function getMyNumber() public constant returns (uint256) {
return myNumber;
}
function setMyNumber(uint256 myNewNumber) public {
NumberIsIncreased(msg.sender, myNumber, myNewNumber);
myNumber = myNewNumber;
}
function kill() public {
if (msg.sender == creator) {
selfdestruct(creator);
}
}
}