Blockchain Dev: Log Indexer Sketch

Conceptual Node.js snippet using ethers to stream logs.

import { ethers } from 'ethers'
const provider = new ethers.JsonRpcProvider(process.env.RPC_URL)
const topic = ethers.id('Transfer(address,address,uint256)')
provider.on({ address: process.env.TOKEN, topics: [topic] }, (log) => {
  const iface = new ethers.Interface(['event Transfer(address indexed from,address indexed to,uint256 value)'])
  const { args } = iface.parseLog(log)
  console.log('Transfer', args.from, '->', args.to, args.value.toString())
})