Почему у обёрнутого имени ENS нельзя сменить резолвер
Оператор контролирует обёрнутое имя и может редактировать адресную запись, но смена контракта резолвера завершается отказом. Это действие отдельно ограничивается флагом Name Wrapper.
Проверьте маску ограничений и срок имени
Прочитайте текущие данные имени: владельца, маску fuses и срок действия. В примере бит 8 соответствует CANNOT_SET_RESOLVER. Во втором значении этот бит установлен, хотя сама маска не равна 8. Используйте побитовую проверку и учитывайте, действительно ли ограничение для имени на рассматриваемый момент.
const CANNOT_SET_RESOLVER = 8n;
for (const fuses of [1n, 9n]) {
console.log((fuses & CANNOT_SET_RESOLVER) !== 0n);
}
Разберите конкретный запрещённый вызов
Смена указателя на резолвер через Name Wrapper и изменение записи внутри уже выбранного резолвера проверяют разные полномочия. Сожжённый fuse запрещает менять указатель, но сам по себе не замораживает все поля резолвера. Отсутствие бита тоже не даёт прав произвольному адресу. Чтобы понять, можно ли исправить платёжную запись, изучите права текущего резолвера.