Reading Contract State and Events with web3.js: call vs send vs getPastEvents
A practical web3.js guide to choosing between .call(), .send(), and getPastEvents — with version caveats, gas estimation, bounded log queries, and polling vs WebSocket trade-offs.