Usage Examples
Computing Event Selector
Copy
Ask AI
import { Event } from 'tevm'
import { Keccak256 } 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 signature
const signature = transferEvent.getSignature()
// "Transfer(address,address,uint256)"
// Hash to get selector (topic 0)
const selector = Keccak256.hash(signature)
console.log(selector)
// "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
Signature Ignores Parameter Names
Copy
Ask AI
import { Event } from 'tevm'
const event1 = new Event({
type: "event",
name: "Transfer",
inputs: [
{ type: "address", name: "from", indexed: true },
{ type: "address", name: "to", indexed: true },
{ type: "uint256", name: "value" }
]
})
const event2 = new Event({
type: "event",
name: "Transfer",
inputs: [
{ type: "address", name: "sender", indexed: true },
{ type: "address", name: "recipient", indexed: true },
{ type: "uint256", name: "amount" }
]
})
// Same signature despite different names
console.log(event1.getSignature() === event2.getSignature()) // true
See Also
- getSelector - Get event selector hash
- encodeTopics - Encode indexed parameters

