-
Notifications
You must be signed in to change notification settings - Fork 0
Seq chains contract to UUPS upgradability #763
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
Conversation
namespaced storage slots are an alternative to gap variables that prevent storage layout conflicts when modifying the base contracts
use struct_link instead of link as the contract storage variable is now a struct field
Previously, signed transactions were represented verbatim, unsigned ones as the unsigned tx type prefix, and compressed ones as null. Now unsigned transactions include the full tx data so that the sequencing module can use it as part of the isAllowed() check. Additionally, signed transactions include the signed transaction type prefix to make them easier to detect, prevent collisions with the other tx types, and allow for new tx types with a different prefix byte to be added in the future. Finally compressed transactions are represented as the compressed tx prefix byte instead of null to prevent reverts when checking the tx type.
* add implementations list and gas ban to the factory, make sequencing contract call back to the factory for upgrades * bindings, e2e upgrade lifecycle test * cleanup * use minimal UUPS for deterministic addresses * update storage layout
…reserve storage slots for future upgrades
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.
Some key questions on security. Let me know if you have answers here
* add fee for appchain contracts creation * make -C shared create-contract-bindings * Update synd-contracts/src/factory/SyndicateFactory.sol Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| @@ -0,0 +1,17 @@ | |||
| # Claude Code Preferences | |||
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.
do we need/want this file?
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.
Yes. It is for claude to know rules for when it adds code.
| { | ||
| "storage": [], | ||
| "types": {} | ||
| } |
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.
this doesn't look right. Can we update this to make sure the storage doesn't change?
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.
We want if new variables are added to the SyndicateSequencingChain contract. If new vars are added the CI will pick it up and error that the layout has changed so we need to check if all is well.
|
|
||
| ## Code Style | ||
|
|
||
| - Always run `forge fmt --check` for linting |
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.
if we do keep this file, let's please remove the forge fmt thingy. otherwise it will waste a lot of agent cycles. its litteraly 1 command to run before git commit.
|
Closing this so we dont have draft PR's hanging around too long but we will come back to this work with the larger upgrade process project |
Ticket
What does this PR do?
Breaking changes?
Documentation
How can this PR be tested?
forge test