You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Zeppelin could install a first-come-first-served subdomain registry (ala aragon-id) and use ENS reverse lookups to get the distribution's contract address.
Something like openzeppelin.zos-distributions.eth would reverse lookup to whatever contract you'd normally have a registry for.
Depending on the subdomain registrar, you could abstract the ENS complexity away with a simple ZepCore#claimDistribution function
The text was updated successfully, but these errors were encountered:
With the Package concept we've introduced, and the general direction we're taking, this is starting to make a lot of sense.
If we do this we should take measures against typosquatting (minimum string distance between package names?). Not sure how feasible this is to do in a smart contract. Sounds like an interesting algorithmic challenge!
I expect you could easily code the Levenshtein distance logic into the registrar, as well as things like requiring ascii-only character points (so no unicode obscurity) and such.
The thing is that we should compare the distance against all other names in the registry. Apparently there is a thing called "levenshtein transducers" that does exactly this, by building an automata to compare against all strings of a set. In this case the set would be changing with each addition to the registry though, and I haven't looked into how that would be hadled.
Zeppelin could install a first-come-first-served subdomain registry (ala aragon-id) and use ENS reverse lookups to get the distribution's contract address.
Something like
openzeppelin.zos-distributions.eth
would reverse lookup to whatever contract you'd normally have a registry for.Depending on the subdomain registrar, you could abstract the ENS complexity away with a simple
ZepCore#claimDistribution
functionThe text was updated successfully, but these errors were encountered: