Skip to main content

Atom Events

Functions for parsing atom-related events from transaction receipts.

eventParseAtomCreated​

Parse AtomCreated events from a transaction.

Parameters​

ParameterTypeDescriptionRequired
publicClientPublicClientViem public clientYes
txHashHashTransaction hashYes

Returns​

Promise<Array<{
args: {
termId: bigint
termData: bytes
creatorAtomId: bigint
}
eventName: 'AtomCreated'
// ... other event fields
}>>

Example​

import { eventParseAtomCreated } from '@0xintuition/protocol'

const events = await eventParseAtomCreated(publicClient, txHash)

events.forEach((event) => {
console.log('Atom ID:', event.args.termId)
console.log('Atom URI:', event.args.termData)
console.log('Creator:', event.args.creatorAtomId)
})

eventParseAtomDepositCreated​

Parse AtomDepositCreated events (atom creation with initial deposit).

Returns​

Promise<Array<{
args: {
termId: bigint
sender: Address
receiver: Address
assets: bigint
shares: bigint
}
}>>

Example​

import { eventParseAtomDepositCreated } from '@0xintuition/protocol'

const events = await eventParseAtomDepositCreated(publicClient, txHash)

events.forEach((event) => {
console.log('Atom ID:', event.args.termId)
console.log('Initial deposit:', formatEther(event.args.assets))
console.log('Shares received:', formatEther(event.args.shares))
})

Complete Example​

import {
multiVaultCreateAtoms,
eventParseAtomCreated,
eventParseDeposited,
} from '@0xintuition/protocol'
import { toHex, parseEther } from 'viem'

// Create atom with deposit
const atomCost = await multiVaultGetAtomCost({ address, publicClient })
const deposit = atomCost + parseEther('1')

const txHash = await multiVaultCreateAtoms(
{ address, walletClient, publicClient },
{
args: [[toHex('My Atom')], [deposit]],
value: deposit,
}
)

// Parse all events
const atomEvents = await eventParseAtomCreated(publicClient, txHash)
const depositEvents = await eventParseDeposited(publicClient, txHash)

console.log('Created atoms:', atomEvents.map(e => e.args.termId))
console.log('Deposits:', depositEvents.map(e => formatEther(e.args.assets)))

See Also​