I have a problem when listening for events from my contract.
Code js :
var Web3 = require('web3');
var abi = '...';
var contractAddress = '0x62e7Dd1Af52d5A08D401b1e156cC4CB1d2f89d57';
var eventName = 'Transfer';
//var web3;
var etat;
const web3 = new Web3(new Web3.providers.WebsocketProvider('http://127.0.0.1:8545'));
/*
var MyContract = new web3.eth.Contract(JSON.parse(abi));
var myContractInstance = MyContract.at('0x78e97bcc5b5dd9ed228fed7a4887c0d7287344a9');
// watch for an event with {some: 'args'}
var myEvent = myContractInstance.Transfer({}, {fromBlock: 0, toBlock: 'latest'});
myEvent.watch(function(error, result){
console.log(result)
});
// would get all past logs again.
var myResults = myEvent.get(function(error, logs){ console.log(logs) });
// would stop and uninstall the filter
myEvent.stopWatching();
*/
var TokenContract = new web3.eth.Contract(JSON.parse(abi),contractAddress);
TokenContract.events.allEvents({ fromBlock: 'latest' }, console.log)
console.log('1********************************************************************************')
console.log(TokenContract);
console.log('2********************************************************************************')
var event = TokenContract.events.Transfer();
console.log(event);
console.log('3********************************************************************************')
TokenContract.once('Transfer', {
}, function(error, event){ console.log(event); });
event.watch(function(error, result){
if (!error) {
alert("wait for a while, check for block Synchronization or block creation");
console.log(result);
console.log('pas d erreur');
}else {
console.log(error);
console.log('erreur')
}
});
I have tested a lot of possibilities but the function .watch
doesn't run :
TypeError: event.watch is not a function
How do you listen to events using Web3 1.0?
var event = TokenContract.events.Transfer();
. Does it work?event
var has an object?