ensdomains / ens-metadata-service

MIT License
71 stars 57 forks source link

Seemingly valid names are being reported as invalid by metadata service #71

Open serenae-fansubs opened 2 years ago

serenae-fansubs commented 2 years ago

This name appears to be valid: https://app.ens.domains/name/%E2%8C%90%E2%97%A8%E2%80%90%E2%97%A8.eth/details

⌐◨‐◨.eth

The eth-ens-namehash.normalize method also doesn't throw any errors:

require("@ensdomains/eth-ens-namehash").normalize('⌐◨‐◨.eth')

⌐◨‐◨.eth

Yet the metadata service is reporting that as invalid: https://metadata.ens.domains/mainnet/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/29374690480179650074424749477986431727881478513446796185670528844166493337335/image

image

schnapseth commented 2 years ago

I have the same problem with 𓃵𓃵𓃵.eth Have you found a solution?

serenae-fansubs commented 2 years ago

When this happens, it appears that the NFT metadata endpoint also returns is_normalized: false.

Are marketplaces like OpenSea/Rarible automatically delisting names because our metadata service is doing this? We have been getting many support tickets in recent days about OpenSea delisting ENS names, when it appears that there's nothing invalid about the name. In some cases this could be due to a human-intervention delisting because OpenSea staff thinks the name is trying to spoof/impersonate some other name.

mdtanrikulu commented 2 years ago

Oh my bad, I need to explain what goes wrong. So the issue is causing because of ens-validation library, which was previously not in use but after adding emoji support to the library I started to use it in ens-metadata-service actively. The reason why I needed that library is to evaluate non-ascii dangerous patterns more precisely.

Later on we started to see some names invalid. The reason for that, while ens-validation library supports full set of emojis, it apparently does not have support for some of b/w symbols. I was working on adding them into the validation library but there is a big issue about that. The "some" I mention above, basically a lot of it. Those symbols are represented as set of symbols, e.g. (Egyptian_Hieroglyphs, Anatolian_Hieroglyphs and many more.) I am still looking into it to grasp how to handle this issue easier, and what is the estimation of those addings. If this gonna take near forever we may revert usage of validation library for now.

serenae-fansubs commented 2 years ago

Thanks for the explanation, that definitely sheds some light!

It looks like it's not just those kinds of symbols, but characters from other more common languages too, like Spanish, Greek, etc. For example, someone reported an issue with this name today: ξlon.eth

ξ is lowercase so ξlon.eth should be a valid and normalized name too, but runs into the same problem:

https://metadata.ens.domains/mainnet/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/27978210512157853987895129733316778952294480585435466862955698074581821116023

schnapseth commented 2 years ago

Have you reverted yet? Thanks for the explanation.

serenae-fansubs commented 2 years ago

This also appears to be happening with other quite common characters too, like €. For example, someone registered €euro.eth today and it was immediately delisted from OpenSea.

Same thing in the metadata service, it's returning "is_normalized: false": https://metadata.ens.domains/mainnet/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/75146923466576329054850177628347347164866684791162808436924508302462317903567

require("@ensdomains/eth-ens-namehash").normalize('€euro.eth');

€euro.eth

It's just a guess on my part, but I think that the massive amount of OpenSea delistings we've seen recently are directly tied to our metadata service and the fact that it's incorrectly reporting names as not normalized.

malikrakhimov commented 2 years ago

Hi! thank you serenae-fansubs for mentioning my problem. Yes, I have registered €euro.eth domain. At first it wasn’t showing on opensea at all. Then, after long conversations with their support team, somehow it managed to show up in my account. But again as “invalid name”. checked my OS account today, it just disappeared from the list of my NFTs.

Is there any solution for that? Is there anything I can do about it or just wait ? thank you

toobusycoding12 commented 2 years ago

I've spoken to 8 other people and we are also having this issue! I registered a name a few hours ago and the metadata service incorrectly reported it as not normalized again. PLEASE FIX THIS ASAP! It is causing some of my clients who buy from me on OpenSea and Rarible to distrust me!! >:(

mdtanrikulu commented 2 years ago

I made a PR for this issue and it should solve the problem for many names, and I will be sure that mistakenly delisted names on NFT marketplaces will relist them.

However what I see in the discussion, some of the reported names may look valid when you check with normalization library but in actual they are not valid when it comes to domain spoof checking. The new library I introduced does this check properly unlike ens-validation library and in case you are in doubt that the name must be valid, you can make a check manually with the official confusable unicode character list.

One example is ⌐◨‐◨.eth @serenae-fansubs shared.

Here is the quick implementation of spoof check on given name; https://runkit.com/mdt/ens-confusable

in short, the result is;

'isConfusing'  true
'confusables' [
  { point: '⌐' },
  { point: '◨' },
  { point: '‐', similarTo: '-' },
  { point: '◨' },
  { point: '.' },
  { point: 'e' },
  { point: 't' },
  { point: 'h' }
]
'rectified version' '⌐◨-◨.eth'

'labelhash of original name' '29374690480179650074424749477986431727881478513446796185670528844166493337335'
'labelhash of rectified name' '111440747936573806392167052078801952303595836080754646941339900940965969244004'

Based on this result, if we check opensea with the labelhash of rectified name we see that there is already a valid name with valid characters, so that makes the given name invalid. https://opensea.io/assets/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/111440747936573806392167052078801952303595836080754646941339900940965969244004

serenae-fansubs commented 2 years ago

Thanks for the updates and work on this!! I definitely appreciate that this is not an easy problem to solve.

At the end of the day, if the manager UI allows a name to be registered, then it should be considered valid in my opinion.

Is this new library also going to be applied to the manager UI too, and will names automatically be redirected to the "rectified" version? Because right now you can search for both ⌐◨‐◨.eth and ⌐◨-◨.eth and different names come up.

And I'm assuming the same changes should be made to ens-eth-namehash too, for its normalize method?

Basically as far as normalization goes, I think it's less important what the actual rules are, and more important that all the places in ENS that use normalization are consistent, and it sounds like they are currently not consistent, which leads to these issues where someone registers a name and then finds out later that they can't use it.

Since it sounds like ENS is changing which names are valid/normalized and which ones aren't, and some people have already registered names through the manager UI that they thought were valid, I'm assuming those people will simply be stuck with unusable/unsellable names, right? Does the ENS core team have any kind of marketing/outreach announcement planned for when this goes live?

Again thanks, I know there is no perfect solution here, and there have been long discussions about this: https://discuss.ens.domains/t/ens-name-normalization/8652/54. Just want to make sure that if we are making this change, that it is made consistent across all the ENS libraries/tools/UI, so that users won't run into this issue again in the future!

mdtanrikulu commented 2 years ago

At the end of the day, if the manager UI allows a name to be registered, then it should be considered valid in my opinion.

Is this new library also going to be applied to the manager UI too, and will names automatically be redirected to the "rectified" version? Because right now you can search for both ⌐◨‐◨.eth and ⌐◨-◨.eth and different names come up.

Yes, definitely that's my aim to do so. This check should be done in wherever we can integrate it.

And I'm assuming the same changes should be made to ens-eth-namehash too, for its normalize method?

Basically as far as normalization goes, I think it's less important what the actual rules are, and more important that all the places in ENS that use normalization are consistent, and it sounds like they are currently not consistent, which leads to these issues where someone registers a name and then finds out later that they can't use it.

* Manager app UI

  * Searching for a name should yield the normalized/rectified version of that name
  * Going directly to the URL of a non-normalized name should redirect to the normalized version (like [⌐◨‐◨.eth](https://app.ens.domains/name/%E2%8C%90%E2%97%A8%E2%80%90%E2%97%A8.eth/details) should redirect to [⌐◨-◨.eth](https://app.ens.domains/name/%E2%8C%90%E2%97%A8-%E2%97%A8.eth/details))

* The ENS metadata service

* The ENS [eth-ens-namehash](https://github.com/ensdomains/eth-ens-namehash) `normalize` method, which [ENS explicitly recommends client dapps to use](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) for normalizing names

Currently the library remains separated from normalization library itself, in the future it might be unified or one can be used in another. But one thing is for sure that both checks needs to be done for consistency whenever we do normalization.

Since it sounds like ENS is changing which names are valid/normalized and which ones aren't, and some people have already registered names through the manager UI that they thought were valid, I'm assuming those people will simply be stuck with unusable/unsellable names, right? Does the ENS core team have any kind of marketing/outreach announcement planned for when this goes live?

Currently it is not yet clear. But in general yes, I believe this will be done at some point.

Again thanks, I know there is no perfect solution here, and there have been long discussions about this: https://discuss.ens.domains/t/ens-name-normalization/8652/54. Just want to make sure that if we are making this change, that it is made consistent across all the ENS libraries/tools/UI, so that users won't run into this issue again in the future!

🙏 Absolutely same thoughts

toobusycoding12 commented 2 years ago

Yea that’s what the issue is. We go and register a name for x amount of years just to find out we can’t transact with it on 3rd party marketplaces such as Opensea. There was an instance a few weeks ago where I was going to buy it’s.eth from Opensea and once the seller and I finally came to an agreed upon price it became invalid on opensea and was later removed from the website as a whole. It seems to be happening to many names that have ‘ in them

timtamjam100301 commented 2 years ago

yep I have the same issue I bought a domain name is it has been delisted and I contacted opensea and they said its been permanently delisted and I reckon I have such as good domain being ßullish.eth can I please get some help

Lord-Highfixer commented 2 years ago

Hello ENS team. Support sent me here to report on another 3-letter ENS domain that gives "Invalid name" orange background with an exclamation point for:

õ¿ö.eth

On a different issue, I do have this one without any errors but does not display properly. The mouth doesn't appear.

ʕʘ̅͜ʘ̅ʔ

Thank you.

DIAMONDDOXXED commented 2 years ago

Hi ENS.

I'm having trouble with three new names. Same issue. Support forwarded me to you guys:

t≡sla.eth https://app.ens.eth.limo/#/name/t%E2%89%A1sla.eth/details tξsla.eth https://app.ens.eth.limo/#/name/t%CE%BEsla.eth/details ≡lon.eth https://app.ens.eth.limo/#/name/%E2%89%A1lon.eth/details

From support: "FYI those other two are not using the letter xi Ξ, they are using the mathematical operator ≡. I'm not sure if that mathematical operator will be considered valid in the future, but you may want to ask the devs on that GitHub issue"

Please help and thank you so much!

image

Crazyalltnt commented 2 years ago

I also have the same issue. I just registered an ens domain name that contains the characters [₿], but I can't use this domain name to transfer money in metamask, I can't see my domain name nft on opensea, os prompts me that it can't be displayed, and I can't use this ens domain name in etherscan Search for the corresponding address.

rogersmarin commented 2 years ago

Same issue here but i have domains with emoji letters (🅰🅱🅲🅳🅴, 🅐🅑🅒🅓🅔) all have been delisted

serenae-fansubs commented 2 years ago

Hey again @mdtanrikulu!

I know the normalization discussion is still ongoing on the forums, but can we expect the metadata service to be reverted in the meantime so that people don't run into the invalid image problem?

Or, should the ENS manager app be updated to not allow the same set of characters that the metadata service currently doesn't allow?

The main issue right now is that people go to the ENS manager website, and it allows them to type in and register a name, and it's only later on that they find out it's invalid. So if this issue isn't going to be resolved anytime soon, would it make sense to at least apply the same normalization changes to the manager UI in the meantime as a stopgap solution?

Thanks!

ZeroPie commented 2 years ago

Hi guys

i registered https://app.ens.domains/name/%E2%80%8D01.eth/details it was acceptable input in the search bar but it's being marked as an invalid domain

same for: https://app.ens.domains/name/%E2%97%AF%E2%80%8D%E2%97%AF%E2%80%8D%E2%97%AF%E2%80%8D.eth/details

‍‍I used the Zero Width Joiner

See: https://adraffy.github.io/ens-normalize.js/test/resolver.html#%E2%80%8D01

sanskaryo commented 2 years ago

👱‍♀‍.eth is not showing on opensea , and invalid on looksrare/ x2y2

It is present on my keyboard, does it has xwz ?

Ralph89 commented 2 years ago

I also do have this problem with ◕ω◕.eth

yoleyo commented 2 years ago

can u do somethin to make appear my https://app.ens.domains/name/1%D0%BE%D0%BE.eth/details thanks

nickroels commented 2 years ago

I have the same problem. https://app.ens.domains/name/%D0%B7o%D0%B7o.eth/details

itjustis commented 2 years ago

hi! have the same issue with 𓂀𓂀𓂀𓂀.eth :( https://app.ens.domains/name/%F0%93%82%80%F0%93%82%80%F0%93%82%80%F0%93%82%80.eth/details

seanmichael23 commented 2 years ago

I’m having the same issue I registered sΞanmichaΞl.eth and it’s showing up on ens as the lower case Xi, doesn’t show in OS and on Looks says it’s invalid

serenae-fansubs commented 2 years ago

Here is also the latest live demo app from adraffy: https://adraffy.github.io/ens-normalize.js/test/resolver.html

The normalization ENSIP is not final, but you can use the above tool to check whether your name will be valid in the future or not.

For example @itjustis that name looks fine: https://adraffy.github.io/ens-normalize.js/test/resolver.html#%F0%93%82%80%F0%93%82%80%F0%93%82%80%F0%93%82%80.eth image

But others like the name in the post at the top ⌐◨‐◨.eth will not be valid: https://adraffy.github.io/ens-normalize.js/test/resolver.html#%E2%8C%90%E2%97%A8%E2%80%90%E2%97%A8.eth image

yoleyo commented 2 years ago

thanks for the link serenae, when u say future, how long do u think it will take to have a normal display? cause with 3 charachters 1 month registration is around 100$..

yoleyo commented 2 years ago

i mean when u have a valid name but no display or airdrop this is almost useless

serenae-fansubs commented 2 years ago

@yoleyo With the current build of that normalization code, it looks like your name will be considered valid: https://adraffy.github.io/ens-normalize.js/test/resolver.html#1%D0%BE%D0%BE.eth

image

That improvement proposal is still in progress and not finalized. Once something is finalized, my hope is that it is applied everywhere.

I'm sure @mdtanrikulu and the other devs will add that normalization code here to the metadata service and manager UI and other ENS places, but it'll be up to other devs in other web3 libraries to abide by the same rules.

yoleyo commented 2 years ago

All right thanks for the informations, i hope it will be on soon. is this on this post we will find updates about it? thanks

rmyoung17 commented 2 years ago

Hey can you guys do me the smallest favor and validate the character ⌐ please? It's the only thing standing in the way of this being a valid ens ⌐◨‐◨.eth. Thanks in advance if you can do it

M-Alahmad commented 2 years ago

I have also a problem with the following Domain ẞot.eth Do we have any time frame for solving the Problem

hopefulbeasts commented 2 years ago

Same issue here with po⅁.eth Registered, appeared on opensea without a name, refreshed metadata and it disappeared. Thanks for fixing this!

yoleyo commented 2 years ago

do u have any idea when this will be fixed?

alimobh commented 2 years ago

I registered the following names and they are not showing on OpenSea and shows as Invalid names on LooksRare 713D8A70-1BD8-43BC-9EA8-1D59FF9C65B0

topraktepeefe commented 2 years ago

https://adraffy.github.io/ens-normalize.js/test/resolver.html

When I queried my ens name at this address, everything seems normal, but my NFT delist from opensea. I can't even see my NFT in my Trust Wallet.

Please resolve this issue as soon as possible.

delbagir commented 2 years ago

I seem to also have this problem.. i am able to see the nft when i see the transaction hash, but on OS/looksrare and other marketplace, it shows as invalid. on metamask and trying to transfer it works fine. This is my address 😱‍‍😱‍‍.eth please help

serenae-fansubs commented 2 years ago

I seem to also have this problem.. i am able to see the nft when i see the transaction hash, but on OS/looksrare and other marketplace, it shows as invalid. on metamask and trying to transfer it works fine. This is my address 😱‍‍😱‍‍.eth please help

I think that one would never be considered valid because of the extra Zero-Width Joiner characters you (or whoever registered it) put in there: https://adraffy.github.io/ens-normalize.js/test/resolver.html#%F0%9F%98%B1%E2%80%8D%E2%80%8D%F0%9F%98%B1%E2%80%8D%E2%80%8D.eth

image

Ralph89 commented 2 years ago

my opinion when you can buy it from the app.ens.domain website it should be valid.

topraktepeefe commented 2 years ago

I use Turkish in my country and we have a capital letter i. He was banned from everywhere just because his first name had a capital i.

https://en.wikipedia.org/wiki/%C4%B0

EtczunksOfficial commented 2 years ago

im also having problems with my doamin, 2pác.eth , as soon i bought it, it got instantly delisted

trxyl commented 2 years ago

I have same issue with moonbird’s.eth No where to be seen on open sea hopefully resolved soon thanks

yoleyo commented 2 years ago

any uptdates?

trxyl commented 2 years ago

I talked to the team. And the devs are trying to address the issue with opensea metadata. It should be resolved. They just haven’t given me a time frame

Get Outlook for iOShttps://aka.ms/o0ukef


From: yoleyo @.> Sent: Thursday, May 5, 2022 8:02:54 PM To: ensdomains/ens-metadata-service @.> Cc: trxyl @.>; Comment @.> Subject: Re: [ensdomains/ens-metadata-service] Seemingly valid names are being reported as invalid by metadata service (Issue #71)

any uptdates?

— Reply to this email directly, view it on GitHubhttps://github.com/ensdomains/ens-metadata-service/issues/71#issuecomment-1118379199, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AZAYVJDIS2OJLKCIRQFY2LLVIOME5ANCNFSM5NYI4JQA. You are receiving this because you commented.Message ID: @.***>

yoleyo commented 2 years ago

great, thanks for info

serenae-fansubs commented 2 years ago

It looks like this affects Japanese characters too: ミュウツー.eth

https://metadata.ens.domains/mainnet/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/34543231005394167657646627178145067742716461140010355061808593149089148364942

topraktepeefe commented 2 years ago

It looks like this affects Japanese characters too: ミュウツー.eth

https://metadata.ens.domains/mainnet/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/34543231005394167657646627178145067742716461140010355061808593149089148364942

It also affects Turkish characters. İ-Ş-Ü-Ğ

eddiwoon commented 2 years ago

same problem with ens begin with "ß" (german eszet / sharp s)

ZeroPie commented 2 years ago
  1. i think having the front throw errors for zero width joiner invalid combinations would be wise, to prevent more invalid domains from piling up.

  2. Is there any way to make invalid ZWJ combinations valid by replacing the ZWJ char with another character that OS and Secondary Markets accept as valid?

joeatang commented 2 years ago

Same Challenge happening with me via ens regarding 比心♥️ showing invalid and not being listed on OS - WOuld love for Ens to keep us all updated (play-by-play) via twitter. Thank you!