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