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

45 lines
1.3 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 L1_TokenBridge
if (l2NetworkName === 'optimism') {
L1_TokenBridge = await ethers.getContractFactory('OVM_L1_ERC20_Bridge', {
signer: (await ethers.getSigners())[0]
})
} else if (l2NetworkName === 'arbitrum') {
L1_TokenBridge = await ethers.getContractFactory('Arbitrum_L1_ERC20_Bridge', {
signer: (await ethers.getSigners())[0]
})
}
const networkData = getNetworkDataByNetworkName(l1NetworkName)
const { l1MessengerAddress } = networkData[l2NetworkName]
console.log(l1MessengerAddress)
const l1_erc20Bridge = await L1_TokenBridge.deploy(l1MessengerAddress)
await l1_erc20Bridge.deployed()
console.log('L1 erc20 bridge address:', l1_erc20Bridge.address)
console.log(
'deployed bytecode:',
await ethers.provider.getCode(l1_erc20Bridge.address)
)
console.log('complete')
}
main()
.catch(error => {
console.error(error)
})
.finally(() => process.exit(0))