diff --git a/.changeset/tiny-rules-report.md b/.changeset/tiny-rules-report.md new file mode 100644 index 0000000000000000000000000000000000000000..3afe6d3b539bed4ee5c6cf97d464b26d421e5c96 --- /dev/null +++ b/.changeset/tiny-rules-report.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/integration-tests': patch +--- + +Add tests for system addrs on verifiers/replicas diff --git a/integration-tests/test/system-addresses.spec.ts b/integration-tests/test/system-addresses.spec.ts index 4cf0031282b8d886b91156d0301fb0c2fbf616bb..72f0c07b6b102b024f785e7a52e21e9ac2fd8a20 100644 --- a/integration-tests/test/system-addresses.spec.ts +++ b/integration-tests/test/system-addresses.spec.ts @@ -2,6 +2,7 @@ import { BigNumber, Contract, ContractFactory, utils, Wallet } from 'ethers' import { ethers } from 'hardhat' import { futurePredeploys } from '@eth-optimism/contracts' +import { sleep } from '@eth-optimism/core-utils' /* Imports: Internal */ import { expect } from './shared/setup' @@ -102,4 +103,42 @@ describe('System addresses', () => { expect(receipt.contractAddress).not.to.eq(null) } }) + + const testReplica = async (otherProvider) => { + const seqBlock = await env.l2Provider.getBlock('latest') + while (true) { + const verHeight = await otherProvider.getBlockNumber() + if (verHeight >= seqBlock.number) { + break + } + await sleep(200) + } + + const verBlock = await otherProvider.getBlock(seqBlock.number) + expect(verBlock).to.deep.eq(seqBlock) + + for (const addr of SYSTEM_ADDRESSES) { + const seqCode = await env.l2Provider.getCode(addr) + const verCode = await otherProvider.getCode(addr) + expect(seqCode).to.eq(verCode) + } + } + + it('should be properly handled on verifiers', async function () { + if (!envConfig.RUN_VERIFIER_TESTS) { + this.skip() + return + } + + await testReplica(env.verifierProvider) + }) + + it('should be properly handled on replicas', async function () { + if (!envConfig.RUN_REPLICA_TESTS) { + this.skip() + return + } + + await testReplica(env.replicaProvider) + }) })