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.
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
Changes to Core Features:
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 mainnetTestResolveEthereum
failing because theethereum.eth
has no address assignedCheers from the Blockful team 👋🏼