Check for non-zero admin address when importing transparent proxy #887
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #882
When importing a proxy, the proxy kind can be inferred based on the presence of upgrade function signatures in the implementation.
For transparent proxies, we import the admin address using the admin address slot. During this import, we check whether the admin address has code.
If the proxy kind was inferred incorrectly, or if the user provided the wrong
kind
option (e.g. passed in 'transparent' but the proxy is actually UUPS), the admin address is the zero address. This causes the error when we check for code at the admin address:Instead, we should throw an error if the admin address is zero, and tell the user to set the correct proxy kind.
NOTE: This assumes that a zero admin address is never a valid scenario for a transparent proxy.