2022-12-09 18:11:04 +08:00

57 lines
1.5 KiB
TypeScript

require('dotenv').config()
import hre from 'hardhat'
import { getNetworkDataByNetworkName } from '../shared/utils'
const ethers = hre.ethers
async function main () {
console.log('network:', await ethers.provider.getNetwork())
const signer = (await ethers.getSigners())[0]
console.log('signer:', await signer.getAddress())
const l1NetworkName = 'kovan'
const l2NetworkName = 'optimism'
let L2_TokenBridge
if (l2NetworkName === 'optimism') {
L2_TokenBridge = await ethers.getContractFactory('OVM_L2_ERC20_Bridge', {
signer: (await ethers.getSigners())[0]
})
} else if (l2NetworkName === 'arbitrum') {
L2_TokenBridge = await ethers.getContractFactory('Arbitrum_L2_ERC20_Bridge', {
signer: (await ethers.getSigners())[0]
})
}
const networkData = getNetworkDataByNetworkName(l1NetworkName)
const { l2MessengerAddress } = networkData[l2NetworkName]
// Get this after deploying the L1 equivalent
const l1TokenBridge = ''
if (!l1TokenBridge) {
throw new Error('Deploy an L1 Token Bridge')
}
console.log(l2MessengerAddress)
console.log(l1TokenBridge)
const l2_tokenBridge = await L2_TokenBridge.deploy(
l2MessengerAddress,
l1TokenBridge
)
await l2_tokenBridge.deployed()
console.log('L2 Token Bridge address:', l2_tokenBridge.address)
console.log(
'deployed bytecode:',
await ethers.provider.getCode(l2_tokenBridge.address)
)
console.log('complete')
}
main()
.catch(error => {
console.error(error)
})
.finally(() => process.exit(0))