I'm subscribing to token transfer events for OMG using the code below
let contract = new web3.eth.Contract(this.abi, this.omgContractAddress);
contract.events.Transfer({}, (err,data) => {
if(err)
console.error(err)
if(data)
console.log(`OMG Transfer: block:${data.blockNumber} ${data.returnValues.to} received ${data.returnValues.value/1000000000000000000}. txHash:${data.transactionHash}`);
});
This is working and logs to the console however it does not take long for a missing transfer to become evident:
OMG Transfer: block:4979638 0x16ae5217Fa04E9827508900C1C2f64f8EF91183b received 29.36. txHash:0xa55bc6b01048b4ec161cc8ca3bd119234a08aaa54e4a4f852d2bfe12885ca566
OMG Transfer: block:4979643 0xAC949Fd4c2204A19eA7d947c2e2841F3B0433A7f received 21.39896667. txHash:0x130a855aa470dc519d294871fc89349985d6f6465d6ac0a03738c2c1e08d7a05
*missing from block 4979644 0x0b184d2aa2193ea492a79ed894b2bee14cc7321e95038f54f98f1dab2d60befd from block *
OMG Transfer: block:4979646 0x06d58A4A17301402b216B5AEa613aEa99E78A5D9 received 5338.28022204. txHash:0x07bf2db1d62e2b60d19253fec9d0fdef2208baa6f6d19e2649b846b3450268b5
You can just run it from the latest block to see this behaviour.
Interesting if you call getPastEvents then the missing Transfers from above are present
I am have this issue as well with a different event. Just seemingly randomly misses events. I too seem to get them correctly after running getPastEvents - I wonder if you miss event on large sets of events?
I use the on listeners, no data, changed or error events fired.
[email protected]
parity v1.9.4
the same issue, randomly misses events while listening on local node
geth 1.8.2-stable
[email protected]
node.js v8.11.1
same here...
parity 1.9.4-1.10.1
[email protected]
node.js v8.9.4
const Web3 = require('web3');
const web3 = new Web3(new Web3.providers.WebsocketProvider(env.BC_ROPSTEN_URL_HTTP));
var contractObj = new web3.eth.Contract(JSON.parse(contract.dataValues.contract_abi),
contract.dataValues.contract_address);
//log(contractObj)
contractObj.events.Transfer({}, (err, tran) => {
if (err)
log('Error in subscribed event : ', err);
getting error while subscribing event
Error: connection not open
1|ICOWalle | at WebsocketProvider.send (/var/www/TLPICOWalletApp/node_modules/web3-providers-ws/src/index.js:247:18)
1|ICOWalle | at Timeout._onTimeout (/var/www/TLPICOWalletApp/node_modules/web3-providers-ws/src/index.js:232:19)
1|ICOWalle | at ontimeout (timers.js:482:11)
We are experiencing lost events too:
Web3/0.20.6
Node/v9.11.1
Parity/v1.10.3-stable
hello i see,解决了吗
This is an issue of geth and parity please have a look on the issue list there. @wallaceturner