Как найти резолвер незарегистрированного подимени ENS

Прямой запрос в реестр ENS не находит резолвер pay.team.eth. Ответ всё же может предоставить родительское пространство имён через механизм wildcard.

Найдите ближайший настроенный резолвер

В учебном реестре поиск начинается с полного имени и заканчивается на R-team. В рабочей реализации проверьте поддержку расширенного интерфейса. Передайте его методу resolve полное имя в DNS-кодировке и закодированный запрос записи. Запрос адреса самого родителя вместо этого вернул бы данные team.eth.

const records = new Map([["team.eth","R-team"],["eth","R-tld"]]);
let labels = "pay.team.eth".split(".");
while (labels.length && !records.has(labels.join("."))) labels.shift();
console.log(records.get(labels.join(".")));

Учитывайте границу родительской зоны

Если у pay.team.eth появится свой резолвер, приоритет получит он. Если первым найден резолвер предка без расширенного интерфейса, он не может обслужить wildcard-запрос. Переход к более дальнему предку обошёл бы ближайшую настроенную границу. Для диагностики сохраняйте и исходное имя, и имя предка, от которого получен адрес резолвера.

docs.ens.domains ENSIP-10 wildcard resolution