• Mark Tyneway's avatar
    contracts-bedrock: L2 contracts reinit · 6730a05c
    Mark Tyneway authored
    Ensures that the L2 contracts cannot be reinitialized by
    making their storage value for `_initialze` match the value
    that is hardcoded in the contract. Since the call to `initialize()`
    never actually runs in the L2 genesis generation, we only have
    contract over setting state. Trying to call `reinitialize` again
    with the same value will cause it to revert.
    
    Also remove the unnecessary argument to the `L2ERC721Bridge`. This
    was noticed by trail of bits during the audit. It adds extra assurance
    that the `initialize` functions take no arguments on L2, meaning that
    even if they could be reinitialized, nothing horrible could happen.
    Note that this is very application specific and would result in nothing
    horrible happening based on how the optimism contracts are designed.
    We should stil not allow for contracts to be reinitialized.
    
    In the far future, we will move towards removing the concept of
    `initialize` completely by breaking storage layout migrations
    into their own upgrade step.
    6730a05c
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...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.eslintrc.js Loading commit data...
.foundryrc 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...
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...