Commit 4be4cd85 authored by Mark Tyneway's avatar Mark Tyneway

contracts-bedrock: fix check-l2 script

parent 7e808e75
...@@ -591,7 +591,7 @@ jobs: ...@@ -591,7 +591,7 @@ jobs:
make devnet-up-deploy make devnet-up-deploy
- run: - run:
name: Check L2 config name: Check L2 config
command: npx hardhat check-l2 --network devnetL2 command: npx hardhat check-l2 --network devnetL1 --l2-rpc-url http://localhost:9545 --l1-rpc-url http://localhost:8545
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- run: - run:
name: Deposit ERC20 through the bridge name: Deposit ERC20 through the bridge
......
...@@ -135,12 +135,35 @@ const assertProxy = async ( ...@@ -135,12 +135,35 @@ const assertProxy = async (
// was set correctly // was set correctly
const checkGenesisMagic = async ( const checkGenesisMagic = async (
hre: HardhatRuntimeEnvironment, hre: HardhatRuntimeEnvironment,
provider: providers.Provider l2Provider: providers.Provider,
args
) => { ) => {
const start = hre.deployConfig.l2OutputOracleStartingBlockNumber
const block = await provider.getBlock(start)
const extradata = block.extraData
const magic = '0x' + Buffer.from('BEDROCK').toString('hex') const magic = '0x' + Buffer.from('BEDROCK').toString('hex')
let startingBlockNumber: number
// We have a connection to the L1 chain, fetch the remote value
if (args.l1RpcUrl !== '') {
const l1Provider = new hre.ethers.providers.StaticJsonRpcProvider(
args.l1RpcUrl
)
const Deployment__L2OutputOracle = await hre.deployments.get(
'L2OutputOracle'
)
const L2OutputOracle = new hre.ethers.Contract(
Deployment__L2OutputOracle.address,
Deployment__L2OutputOracle.abi,
l1Provider
)
startingBlockNumber = await L2OutputOracle.startingBlockNumber()
} else {
// We do not have a connection to the L1 chain, use the local config
// The `--network` flag must be set to the L1 network
startingBlockNumber = hre.deployConfig.l2OutputOracleStartingBlockNumber
}
const block = await l2Provider.getBlock(startingBlockNumber)
const extradata = block.extraData
if (extradata !== magic) { if (extradata !== magic) {
throw new Error('magic value in extradata does not match') throw new Error('magic value in extradata does not match')
...@@ -610,7 +633,8 @@ const check = { ...@@ -610,7 +633,8 @@ const check = {
} }
task('check-l2', 'Checks a freshly migrated L2 system for correct migration') task('check-l2', 'Checks a freshly migrated L2 system for correct migration')
.addOptionalParam('rpcUrl', 'RPC URL of the remote node', '', types.string) .addOptionalParam('l1RpcUrl', 'L1 RPC URL of node', '', types.string)
.addOptionalParam('l2RpcUrl', 'L2 RPC URL of node', '', types.string)
.addOptionalParam('chainId', 'Expected chain id', 0, types.int) .addOptionalParam('chainId', 'Expected chain id', 0, types.int)
.addOptionalParam( .addOptionalParam(
'skipPredeployCheck', 'skipPredeployCheck',
...@@ -624,9 +648,9 @@ task('check-l2', 'Checks a freshly migrated L2 system for correct migration') ...@@ -624,9 +648,9 @@ task('check-l2', 'Checks a freshly migrated L2 system for correct migration')
let signer: Signer = hre.ethers.provider.getSigner() let signer: Signer = hre.ethers.provider.getSigner()
if (args.rpcUrl !== '') { if (args.l2RpcUrl !== '') {
console.log('Using CLI URL for provider instead of hardhat network') console.log('Using CLI URL for provider instead of hardhat network')
const provider = new hre.ethers.providers.JsonRpcProvider(args.rpcUrl) const provider = new hre.ethers.providers.JsonRpcProvider(args.l2RpcUrl)
signer = Wallet.createRandom().connect(provider) signer = Wallet.createRandom().connect(provider)
} }
...@@ -648,7 +672,7 @@ task('check-l2', 'Checks a freshly migrated L2 system for correct migration') ...@@ -648,7 +672,7 @@ task('check-l2', 'Checks a freshly migrated L2 system for correct migration')
await checkPredeploys(hre, signer.provider) await checkPredeploys(hre, signer.provider)
} }
await checkGenesisMagic(hre, signer.provider) await checkGenesisMagic(hre, signer.provider, args)
console.log() console.log()
// Check the currently configured predeploys // Check the currently configured predeploys
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment