We have found a discrepancy/bug in the Legacy Registry and Registrar. Given its nature, we think it is not a secret but we found no documentation of it anywhere. Essentially, if Controller and Owner are different, then Registry gives wrong output when
owner(namehash) is queried. Registrar gives the correct result via
ownerOf(tokenID). This is not a critical bug since
Registry.owner() seems to be hardly used by anyone and
Registrar.ownerOf() is the more common method. Registry also doesn’t have any sensitive functions that can be hijacked by this issue. We are using ENS Registry hardcoded in NameSys Resolver and our logic for domains with different Owner and Controller breaks down due to this bug. We may be forced into redeploying due to this. Is there a documentation or record of this issue? We think developers should be made aware of it so that this doesn’t happen unknowingly to builders.
This is not a bug; it’s expected that the registry and registrar can have different owners. That’s why the owner and controller distinction exists.
That makes sense. I guess the terminology of ‘owner’ threw us off.
This is disappointing via the new app…
Is there a reason for this? Thanks guys
That is a completely different issue and should have been a separate topic instead of in this thread, but…
Wrapped names have a maximum label length of 255 bytes (not characters, bytes when DNS-encoded).
The new manager app uses the new ETHRegistrarController which auto-wraps all newly registered names. So that length restriction applies to all new names registered through the manager app.
The only way to register new names that are longer than that, is to use the old ETHRegistrarController to directly register an unwrapped name. You can do that with the old/legacy manager app here: https://legacy.ens.domains/
Yeh Legacy is still my favourite interface.
Thanks for the info as well.