• Mark Tyneway's avatar
    contracts-bedrock: include `initialize` checks for L2 contracts · 8b7226e8
    Mark Tyneway authored
    To also run the checks for L2 contracts with `initialize`, some
    changes to the pipelie are required. First off, when foundry
    compiles a single contract with 2 different versions of solc, it
    appends the solc version to the name of the file. This broke some of the
    tooling that we have around reading artifacts from disk. This commit
    updates the tooling to first check to see if the file exists and if
    not, then it grabs one of the multiple artifacts instead. This means
    that we need to be careful about the artifact because it may not exactly
    match what was used. There isn't a great way around this because its not
    possible to know the compiler version used within the evm.
    
    Also make some modifications that allow for the L2 predeploys to have
    their contract addresses fetched based on name. The method isn't super
    nice because it will require the script to be updated if new predeploys
    are added but its not the end of the world because the tooling
    likely will not be used with many different predeploys, and if it
    is in the future we can solve the problem then. In go we handle this
    problem with an `init` function that registers all of the predeploys
    into a map that we can iterate over. That just isn't possible in
    solidity.
    
    Add test coverage over the `L2CrossDomainMessenger` to ensure that
    it cannot be initialized. This is test coverage that unblocks the
    following PRs:
    - https://github.com/ethereum-optimism/optimism/pull/8353
    - https://github.com/ethereum-optimism/optimism/pull/8365
    Both of these are adding new L2 contracts that will be initializable and
    we want this test coverage ahead of time to prevent reinit bugs from
    being introduced.
    8b7226e8
Name
Last commit
Last update
.changeset Loading commit data...
.circleci Loading commit data...
.github Loading commit data...
.husky Loading commit data...
.vscode Loading commit data...
bedrock-devnet Loading commit data...
cannon Loading commit data...
docs Loading commit data...
endpoint-monitor Loading commit data...
indexer Loading commit data...
op-batcher Loading commit data...
op-bindings Loading commit data...
op-bootnode Loading commit data...
op-chain-ops Loading commit data...
op-challenger Loading commit data...
op-e2e Loading commit data...
op-exporter Loading commit data...
op-heartbeat Loading commit data...
op-node Loading commit data...
op-preimage Loading commit data...
op-program Loading commit data...
op-proposer Loading commit data...
op-service Loading commit data...
op-ufm Loading commit data...
op-wheel Loading commit data...
ops Loading commit data...
ops-bedrock Loading commit data...
packages Loading commit data...
patches Loading commit data...
proxyd Loading commit data...
specs Loading commit data...
ufm-test-services Loading commit data...
.abigenrc Loading commit data...
.coderabbit.yml Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.envrc.example Loading commit data...
.eslintrc.js Loading commit data...
.foundryrc Loading commit data...
.gethrc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.markdownlint.json Loading commit data...
.npmrc Loading commit data...
.nvmrc Loading commit data...
.pnpmfile.cjs Loading commit data...
.prettierrc.js Loading commit data...
.semgrepignore Loading commit data...
.snyk Loading commit data...
CITATION.cff Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
SECURITY.md Loading commit data...
cloudbuild.yaml Loading commit data...
codecov.yml Loading commit data...
docker-bake.hcl Loading commit data...
go.mod Loading commit data...
go.sum Loading commit data...
nx.json Loading commit data...
package.json Loading commit data...
pnpm-lock.yaml Loading commit data...
pnpm-workspace.yaml Loading commit data...
tsconfig.json Loading commit data...