@eth-乐观主义/观察者
监视器
我们 Watcher 允许您获取与存款和提款等交叉域信息相关的全部交易散列。 为了使用,首先发送发送跨域消息的交易,例如从L1到L2的存款. 在发送存款交易和存储交易散列后,使用 getMessageHashesFromL1Tx(l1TxHash) 以获取L1 tx内部发送的所有L1->L2 信件的散列(这通常只是单个元素阵列,但如果一个L1交易触发多封存款,则可以返回多封). getMessageHashesFromL2Tx(l2TxHash) 对 L2- > L1 信件进行相同的处理. getL2TransactionReceipt(messageHash) 使用 L1- > L2 消息散列,然后在 2-5 分钟后,返回信件最终被转发的 L2 tx 的收件 . getL1TransactionReceipt(messageHash) 对 L2- > L1 信件执行相同的操作,但延迟为7天.
import { Watcher } from '@eth-optimism/watcher'
import { JsonRpcProvider } from 'ethers/providers'
const watcher = new Watcher({
l1: {
provider: new JsonRpcProvider('INFURA_L1_URL'),
messengerAddress: '0x...'
},
l2: {
provider: new JsonRpcProvider('OPTIMISM_L2_URL'),
messengerAddress: '0x...'
}
})
const l1TxHash = (await depositContract.deposit(100)).hash
const [messageHash] = await watcher.getMessageHashesFromL1Tx(l1TxHash)
console.log('L1->L2 message hash:', messageHash)
const l2TxReceipt = await watcher.getL2TransactionReceipt(messageHash)