Skip to content

Conversation

TateB
Copy link
Member

@TateB TateB commented Nov 21, 2024

No description provided.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Nov 21, 2024

Deploying ensips with  Cloudflare Pages  Cloudflare Pages

Latest commit: f4ed924
Status: ✅  Deploy successful!
Preview URL: https://e6650744.ensips.pages.dev
Branch Preview URL: https://edits-evm-chain-reverse-reso.ensips.pages.dev

View logs

@TateB TateB requested review from Arachnid and adraffy March 11, 2025 08:55
ensips/19.md Outdated
* Reverse registrars will be setup on each EVM-chain, with a corresponding registry
* Reverse registrar will only allow setting the name and text record without resolver customisability.
- Reverse Registrars will be setup on each EVM-chain, with combined registry/registrar/resolver functionality.
- Registrars will only allow setting the name, without resolver customisability.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- Registrars will only allow setting the name, without resolver customisability.
- Reverse resolvers will only allow setting the name, without resolver customisability.

Copy link
Member Author

Choose a reason for hiding this comment

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

did you mean it should be "Reverse registrars" rather than "Registrars"? otherwise the change makes the terminology inconsistent

Copy link
Member

Choose a reason for hiding this comment

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

Fair enough. In that case it should make it clear that reverse registrars set their own custom resolver, which only allows the name to be set.

Copy link
Member Author

Choose a reason for hiding this comment

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

i might need to reword some of this. "Reverse registrar" = L2 contract that maintains the registrar capability, "Reverse resolver" = L1 contract that resolves to the L2 registrar values.

Copy link
Member

@adraffy adraffy left a comment

Choose a reason for hiding this comment

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

funny, I just talked to Nick about this ENSIP. I think your changes to the steps are good (rather than using the UR's perspective.)

Comment on lines +62 to +63
- For a valid resolution, the user must also set the appropriate `addr()` record on their ENS name
- This completes the two-way verification between address and name
Copy link
Contributor

Choose a reason for hiding this comment

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

I am interested in something resembling this draft acting as a fallback for the ENSIP-11 close-loop addr check. Not sure if it should be enshrined here against the ENSIP-19 spec or just added as additional functionality for ENSIP-11.


### Resolving an avatar by a dapp on another EVM chain
1. Let `chainId` be the chain ID of the client.
2. If `chainId` is an L1 chain ID (including Ethereum testnets), set `reverseName = "[address].addr.reverse"` and `coinType = 60` and go to step 5.
Copy link
Member

@adraffy adraffy May 25, 2025

Choose a reason for hiding this comment

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

Maybe: If default (chainId = 0), set reverseName = "[address].default.reverse" and coinType = 0x80000000 and go to step 5.

9. Set `node = namehash(name)`
10. Fetch the forward-resolved address from the resolver:
- If `coinType == 60`, with: `resolvedAddress = ensip10.resolve(reverseName, encodeCall('addr', [node]))`
- Otherwise, with: `resolvedAddress = ensip10.resolve(reverseName, encodeCall('addr', [node, coinType]))`
Copy link
Member

Choose a reason for hiding this comment

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

This and the prior line, reverseName should be name

Copy link
Member

Choose a reason for hiding this comment

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

I've discussed this a bit with Tate before, but should we include the forward fallback logic? or add another ENSIP after this? (I prefer including it.)


If resolvedAddress is null and chainFromCoinType(coinType) > 0, then resolvedAddress = ensip10.resolve(reverseName, encodeCall('addr', [node, 0x80000000])).

Note: chainFromCoinType() > 0 ⟺ "non-default EVM coin type"

Note: this can be accomplished with a multicall.

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.

5 participants