45 lines
1.3 KiB
TypeScript
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))
|