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

ENSIP-10: Subdomain resolution #40

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

pikonha
Copy link

@pikonha pikonha commented Mar 13, 2024

ENSIP-10: Subdomain resolution

Description

This PR implements the ENSIP-10 feature that makes it possible for subdomains to be resolved to their respective address.

The implementation was based on the ENS' Universal Resolver implementation, taking advantage of the findResolver subdomain resolution.

In general, the Universal Resolver utilizes fewer RPC calls, It is deployed on all major Ethereum networks such as Mainnet and Sepolia and is widely used by well known JS libraries that interact with Ethereum, see Viem's implementation.

Related Issue

This was part of the solution proposed by #38. The CCIP-Read from an offchain data source will be implemented on a future PR given its complexity.

Changes

  • New feature implementation
  • Bug fix
  • Code refactoring
  • Documentation update
  • Other (please specify)

Changes to Core Features:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

Additional Notes

There are 2 failing tests on the main branch that are the only ones that are failing:

  • TestResolveNoResolver (currently commented out on main) failing because the address has a resolver on mainnet
  • TestResolveEthereum failing because the ethereum.eth has no address assigned

Cheers from the Blockful team 👋🏼

@@ -22,7 +22,7 @@ func TestDeriveTokenId(t *testing.T) {
{
name: "Invalid ENS domain",
expected: "",
input: "foo.bar",
input: "invalid.domain",
Copy link
Author

Choose a reason for hiding this comment

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

I had to change this because for some reason, even though it isn't a registered domain, the contract returns the OffchainLookup revert due to the bar TLD's external resolver.

@pikonha pikonha mentioned this pull request Mar 19, 2024
8 tasks
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.

1 participant