-
Notifications
You must be signed in to change notification settings - Fork 89
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
holocene: smart contract changes #358
Conversation
bc9d980
to
4c3d5d1
Compare
The |
We need to think about the semantics of the upgrade. For the L1Block storage part of the upgrade, we either need to:
Both have tradeoffs The migration contract approach would look like upgrading the L1Block contract to a contract that is able to make a bunch of calls to get the data it needs and then storing it in its storage at the correct locations. So this would be fetching the storage values, for example calling The fallback approach will not force the storage migration to ever happen and we will likely be stuck with the fallback forever or at least a good amount of time until we can be sure that a |
overall this LGTM other than the unresolved comments. |
Async reminder: |
@BlocksOnAChain no immediate concerns. From a purist view, I like if the post-genesis, but pre-user, state changes are immediately after genesis, rather than at any point (there may be gaps, because of the fixed block time). Should not be a concern if deposits are only enabled after the post-genesis system deposits complete. And the 1559 fee parameters have fun lower/upper bound cases, but won't brick the system as long as they can be modified through L1-initiated deposits. |
I will rebase this before merge |
This scopes out the work for implementing the standard L2 genesis smart contract changes. The additional diff on top of this smart contract work is defining the network upgrade transactions, the public interface for the `SystemConfig` for setting these values and the enum `ConfigType` definition.
4c3d5d1
to
0333ffd
Compare
I solved this with a |
* holocene: standard L2 genesis This scopes out the work for implementing the standard L2 genesis smart contract changes. The additional diff on top of this smart contract work is defining the network upgrade transactions, the public interface for the `SystemConfig` for setting these values and the enum `ConfigType` definition. * lint * lint: escape * specs: fixup * specs: fixup * specs: fixup * lint: fix * lint: fix * specs: update * specs: lintspecs: lintspecs: lintspecs: lintspecs: lintspecs: lintspecs: lintspecs: lint * lint: fix * specs: cleanup * specs: toc * specs: update * toc: update * specs: fix * lint: fix * lint: fix * lint: fix * lint * specs: update * lint: specs * specs: update * specs: more updates * specs: toc * specs: update name * specs: update * specs: specify initialize * specs: toc * lint: fix * specs: delete dead spec * specs: lint fix
Description
This PR is the spec for:
We are explicitly not scoping #122 because it will result in a large diff to the proofs. In the future we can work on proof optimizations.