-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
contracts-bedrock: remove crossdomain messenger pausability #4913
Conversation
|
Hey @tynes! This PR has merge conflicts. Please fix them before continuing review. |
06a9cc2
to
8e3f3af
Compare
This can remove the ownable upgradable from the crossdomain messenger as well |
Hey @tynes! This PR has merge conflicts. Please fix them before continuing review. |
3922ab5
to
9398712
Compare
a96b37d
to
2b35023
Compare
Hey @tynes! This PR has merge conflicts. Please fix them before continuing review. |
2b35023
to
09ed8e1
Compare
1692625
to
800779d
Compare
Will follow up with notes on how to review this |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## develop #4913 +/- ##
===========================================
- Coverage 40.84% 40.17% -0.68%
===========================================
Files 324 303 -21
Lines 19652 19009 -643
Branches 770 655 -115
===========================================
- Hits 8027 7637 -390
+ Misses 11026 10772 -254
- Partials 599 600 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
|
Hey @tynes! This PR has merge conflicts. Please fix them before continuing review. |
2c4c4bd
to
49c0a3e
Compare
This PR is going to need some changes once #4921 is merged |
Hey @tynes! This PR has merge conflicts. Please fix them before continuing review. |
49c0a3e
to
39d8d7a
Compare
bfcee85
to
49a8621
Compare
Hey @tynes! This PR has merge conflicts. Please fix them before continuing review. |
49a8621
to
356c9d1
Compare
Hey @tynes! This PR has merge conflicts. Please fix them before continuing review. |
packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol
Outdated
Show resolved
Hide resolved
These storage values were removed from the contracts so we no longer need to configure them in the storage config
356c9d1
to
608ebc9
Compare
@Mergifyio refresh |
✅ Pull request refreshed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Go changes LGTM.
Description
Removes pausability from the messenger and ensures to maintain the storage layout.
This touches a lot of parts of the system. The deploy scripts should get special attention during review.
The storage layout checking script was refactored a bit so that it shows progress when it runs, because it is pretty slow.
Tests
Unit tests simply needed to be removed for this feature. The tests covering ownability of the cross domain messengers are removed. The storage layout is preserved, you can look at the layout lock file to see this.
Additional Context
This builds on top of #4921 which added pausability to the portal. Now it is expected that the portal can be paused (withdrawals only) and there is no more pausability at the layer of the cross domain messenger. This prevents issues that arise when users try to do withdrawals when the messenger is paused, causing their withdrawals to get stuck.
Follow Up
I'd like to unify the spacer contracts in a follow up PR and then add the initializable contract afterwards. This would mean that we only need a single spacer contract and the old initialize storage slot would become a legacy spacer. The
Initializable
contract would follow the spacer contract in the inheritance chain, so that a new storage slot would be used for the new initialized slot. This would allow us to delete the try/catch in the dictator for the call to initializing the portal.