Functions
| Function | Description |
|---|---|
fromSignature(str) | Hash event signature to topic |
fromHex(hex) | Parse 32-byte hex topic |
from(bytes) | From Uint8Array |
toHex(sig) | Convert to hex string |
equals(a, b) | Compare two signatures |
32-byte keccak256 event topic hash
import * as EventSignature from 'voltaire-effect/EventSignature'
import { Effect } from 'effect'
// From event signature string (computes keccak256)
const sig = yield* EventSignature.fromSignature('Transfer(address,address,uint256)')
// => 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
// From raw hex
const sig2 = yield* EventSignature.fromHex('0xddf252ad...')
// From bytes
const sig3 = yield* EventSignature.from(topicBytes)
| Function | Description |
|---|---|
fromSignature(str) | Hash event signature to topic |
fromHex(hex) | Parse 32-byte hex topic |
from(bytes) | From Uint8Array |
toHex(sig) | Convert to hex string |
equals(a, b) | Compare two signatures |
const transfer = yield* EventSignature.fromSignature('Transfer(address,address,uint256)')
const approval = yield* EventSignature.fromSignature('Approval(address,address,uint256)')
const isTransfer = yield* EventSignature.equals(log.topics[0], transfer)
const transferSig = yield* EventSignature.fromSignature('Transfer(address,address,uint256)')
const topicHex = yield* EventSignature.toHex(transferSig)
const filter = { address: contractAddress, topics: [topicHex] }