I have a simple event subscription using web3:
contract.events.EventName().on('data', async event => {console.log(event)})
For some reason though, the event fires twice using web3 (in other words, the event is logged twice in this example), even though the event only fires once on the blockchain.
This also occurs for getPastEvents:
contract.getPastEvents("Event").then(events => console.log(events))
contract.getPastEvents("Event").then(console.log('a'))
Oddly enough, the first is fired twice, the second only once