Usage Examples
Parse Transfer Events
Copy
Ask AI
import { Event } from 'tevm'
const transferEvent = new Event({
type: "event",
name: "Transfer",
inputs: [
{ type: "address", name: "from", indexed: true },
{ type: "address", name: "to", indexed: true },
{ type: "uint256", name: "value" }
]
})
// Get logs from blockchain
const logs = await provider.getLogs({
address: tokenAddress,
topics: [transferEvent.getSelector()]
})
// Decode each log
const transfers = logs.map(log =>
transferEvent.decodeLog(log.data, log.topics)
)
console.log(transfers)
// [
// { from: "0x...", to: "0x...", value: 1000n },
// { from: "0x...", to: "0x...", value: 2000n }
// ]
Complex Event Types
Copy
Ask AI
import { Event } from 'tevm'
const swapEvent = new Event({
type: "event",
name: "Swap",
inputs: [
{ type: "address", name: "sender", indexed: true },
{ type: "uint256", name: "amount0In" },
{ type: "uint256", name: "amount1In" },
{ type: "uint256", name: "amount0Out" },
{ type: "uint256", name: "amount1Out" },
{ type: "address", name: "to", indexed: true }
]
})
const decoded = swapEvent.decodeLog(log.data, log.topics)
console.log({
sender: decoded.sender,
amount0In: decoded.amount0In,
amount1In: decoded.amount1In,
amount0Out: decoded.amount0Out,
amount1Out: decoded.amount1Out,
to: decoded.to
})
See Also
- encodeTopics - Encode indexed parameters
- getSelector - Get event selector
- parseLogs - Parse multiple logs with ABI

