-
Notifications
You must be signed in to change notification settings - Fork 38
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
Research how to best handle changing proxy addresses #38
Comments
So a big question that has come up is the direction of this project. Should we try to resolve the issue of changing proxy addresses once and for all, or would it be not a big deal, or even a feature, if the proxy that is used is tied to the configuration of the CPK? I can think of some pros and cons: Pros:
Cons:
The relayer service will have to change as well, especially to accommodate #67, so the factory would have to be able to take into account the "true" requester when setting up proxies. I think this might mean that any final proxy factory would essentially be proprietary. Should we support GSN in this case? (#76 #79) Anyway, auto-updating would be easier with finalizing the proxy address determination. It might not be easily doable otherwise though, since there would have to be some way of figuring out how to move from version A to version G, or B to G, C to G, etc, and then from A to H, B to H, etc., after an update. Then again, if sticking within Safe versions, we probably can specify an interface updating relies on in order to make auto-updating more feasible, which means declaring something like this to be part of the interface: https://github.com/gnosis/safe-contracts/blob/94f9b9083790495f67b661bfa93b06dcba2d3949/contracts/common/MasterCopy.sol#L18 Currently, the function that updates the implementation of the proxy isn't implemented on the proxy, but rather the GnosisSafe implementation. However, the accessor that reports the implementation address is implemented on the proxy. So while the storage slot (0) that reports the implementation is determined by the accessor implemented on the proxy, the proxy can be sealed by updating to an implementation that does not allow further mutations of that slot's value. |
It would be good to have an outline what our strategy is to handle new mastercopies.
As new master copies will change the predicted proxy address we should probably add a lib that can check based on the different mastercopies (and other params) if a proxy exists.
Questions
The text was updated successfully, but these errors were encountered: