-
Notifications
You must be signed in to change notification settings - Fork 50
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
feat: UniversalFactory #139
Conversation
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.
added some comments
…contracts into feat/UniversalFactory
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.
Added comments.
The Solidity linter in the CI also picked up some warnings to either fix or disable in the contract.
we need tests as well, do we have some? |
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.
CI seems to not be running anymore.
…o-58-Refactor-function-_fallbackLSP17Extendable-to-enable-to-run-code-after-this-function-is-called_Jean fix: (C4 #139) refactor `_fallbackLSP17Extendable` function to enable to run code after it is called + prevent potential solc bug "storage write removal"
What does this PR introduce?
UniversalFactory
that should be used to deploy contracts deterministically.This contract gives the ability to deploy normal and EIP 1167 minimal proxy contracts, with the ability to specify if the contract should be initialized or not by passing the
initializeCallData
bytes.Deploying and initializing in one tx eliminate the risk of an initialize race (someone initializing before the right deployer).
If the UniversalFactory is deployed using nick's method on several chains, given the same salt and the same parameters, the contract created will have the same address on each chain.
This method is especially useful for UniversalProfiles, where you will have the ability to reproduce the same UniversalProfile at the same address on each chain you deploy to.