Skip to content
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

Upgradeable L2 Resolver #98

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open

Conversation

stevieraykatz
Copy link
Collaborator

@stevieraykatz stevieraykatz commented Oct 17, 2024

The L2 Resolver contract currently deployed is immutable. Though it currently inherits all of the most modern ENS resolver profiles, we know that we'll want to add/upgrade our resolver in the future as new features and ENSIPs come online.

This PR implements a functionally equivalent L2 Resolver but with some notable features:

  • compatibility with the TransparentUpgradeableProxyPattern (through a disabled constructor and an initialize() method
  • migrates the state of the inherited resolver profiles into EIP-7201 compliant namespaced slots

@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Oct 17, 2024

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Slither found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@stevieraykatz stevieraykatz changed the title First pass at upgradeable L2 Resolver with EIP-7201 namespaced storage Upgradeable L2 Resolver Oct 17, 2024
src/L2/UpgradeableL2Resolver.sol Dismissed Show dismissed Hide dismissed
src/L2/UpgradeableL2Resolver.sol Dismissed Show dismissed Hide dismissed
src/L2/resolver/AddrResolver.sol Dismissed Show dismissed Hide dismissed
src/L2/resolver/AddrResolver.sol Dismissed Show dismissed Hide dismissed
src/L2/resolver/AddrResolver.sol Dismissed Show dismissed Hide dismissed
src/L2/resolver/ResolverBase.sol Dismissed Show dismissed Hide dismissed
src/L2/resolver/ResolverBase.sol Dismissed Show dismissed Hide dismissed
src/L2/resolver/TextResolver.sol Dismissed Show dismissed Hide dismissed
src/L2/resolver/TextResolver.sol Dismissed Show dismissed Hide dismissed
src/L2/resolver/TextResolver.sol Dismissed Show dismissed Hide dismissed
return implementer;
}

address a = IAddrResolver(address(this)).addr(node);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NOTE: This is a deviation from ENS's inheritance-based approach and should be looked at closely.

@stevieraykatz stevieraykatz marked this pull request as ready for review November 15, 2024 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants