Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
protected async _init(): Promise {
this.logger.info('Initializing message relayer', {
relayGasLimit: this.options.relayGasLimit,
fromL2TransactionIndex: this.options.fromL2TransactionIndex,
pollingInterval: this.options.pollingInterval,
l2BlockOffset: this.options.l2BlockOffset,
getLogsInterval: this.options.getLogsInterval,
})
// Need to improve this, sorry.
this.state = {} as any
const address = await this.options.l1Wallet.getAddress()
this.logger.info('Using L1 EOA', { address })
this.state.Lib_AddressManager = loadContract(
'Lib_AddressManager',
this.options.addressManagerAddress,
this.options.l1RpcProvider
)
this.logger.info('Connecting to OVM_StateCommitmentChain...')
this.state.OVM_StateCommitmentChain = await loadContractFromManager({
name: 'OVM_StateCommitmentChain',
Lib_AddressManager: this.state.Lib_AddressManager,
provider: this.options.l1RpcProvider,
})
this.logger.info('Connected to OVM_StateCommitmentChain', {
address: this.state.OVM_StateCommitmentChain.address,
})
this.logger.info('Connecting to OVM_L1CrossDomainMessenger...')
this.logger.info('Connected to OVM_L1CrossDomainMessenger', {
address: this.state.OVM_L1CrossDomainMessenger.address,
})
this.logger.info('Connecting to OVM_L2CrossDomainMessenger...')
this.state.OVM_L2CrossDomainMessenger = await loadContractFromManager({
name: 'OVM_L2CrossDomainMessenger',
Lib_AddressManager: this.state.Lib_AddressManager,
provider: this.options.l2RpcProvider,
})
this.logger.info('Connected to OVM_L2CrossDomainMessenger', {
address: this.state.OVM_L2CrossDomainMessenger.address,
})
this.logger.info('Connecting to OVM_L2ToL1MessagePasser...')
this.state.OVM_L2ToL1MessagePasser = loadContract(
'OVM_L2ToL1MessagePasser',
'0x4200000000000000000000000000000000000000',
this.options.l2RpcProvider
)
this.logger.info('Connected to OVM_L2ToL1MessagePasser', {
address: this.state.OVM_L2ToL1MessagePasser.address,
})
this.logger.info('Connected to all contracts.')
this.state.lastQueriedL1Block = this.options.l1StartOffset
this.state.eventCache = []
this.state.lastFinalizedTxHeight = this.options.fromL2TransactionIndex || 0
this.state.nextUnfinalizedTxHeight =
this.options.fromL2TransactionIndex || 0