@eth-optimism/viem • Docs
@eth-optimism/viem / actions/interop / relayCrossDomainMessage
relayCrossDomainMessage<
TChain,TAccount,TChainOverride>(client,parameters):Promise<RelayCrossDomainMessageReturnType>
Relays a message emitted by the CrossDomainMessenger
• TChain extends undefined | Chain
• TAccount extends undefined | Account
• TChainOverride extends undefined | Chain = undefined
• client: Client<Transport, TChain, TAccount>
L2 Client
• parameters: RelayCrossDomainMessageParameters<TChain, TAccount, TChainOverride, DeriveChain<TChain, TChainOverride>>
RelayCrossDomainMessageParameters
Promise<RelayCrossDomainMessageReturnType>
transaction hash - RelayCrossDomainMessageReturnType
import { createPublicClient } from 'viem'
import { http } from 'viem/transports'
import { op, unichain } from '@eth-optimism/viem/chains'
const publicClientOp = createPublicClient({ chain: op, transport: http() })
const publicClientUnichain = createPublicClient({ chain: unichain, transport: http() })
const receipt = await publicClientOp.getTransactionReceipt({ hash: '0x...' })
const messages = await getCrossDomainMessages(publicClientOp, { logs: receipt.logs })
const message = messages.filter((message) => message.destination === unichain.id)[0]
const params = await buildExecutingMessage(publicClientOp, { log: message.log })
const hash = await relayCrossDomainMessage(publicClientUnichain, params)
packages/viem/src/actions/interop/relayCrossDomainMessage.ts:87