Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add L1 Proxy Contract with ability to pause during upgrade #707

Closed
karlfloersch opened this issue Apr 30, 2021 · 1 comment
Closed

Add L1 Proxy Contract with ability to pause during upgrade #707

karlfloersch opened this issue Apr 30, 2021 · 1 comment
Assignees

Comments

@karlfloersch
Copy link
Contributor

Is your feature request related to a problem? Please describe.
We need to pause all interactions with our L1 contracts during an upgrade. If we don't then we don't know what crazy interactions might happen if someone sent a transaction mid deploy.

Describe the solution you'd like
Implement a ChugSplashProxy which, before executing any transactions, checks to see if a deployment is currently under-way. This should be called in the fallback function before any interactions with the contract. Also, to enable folks to eth_call even during an upgrade, we can use the following logic:

function() {
  if (isUpgradeHappening()) {
    require(msg.sender == 0, "Only eth_call is allowed during an upgrade!");
  }
}

Blockers
#703

@tynes
Copy link
Contributor

tynes commented May 3, 2021

You can set any from address during eth_call so the function listed above is not sufficient.

Would be nice to have IS_STATIC - https://eips.ethereum.org/EIPS/eip-2970

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants