Как проверить обратное имя ENS перед показом в истории аккаунта
Обозреватель получил имя для адреса Ethereum через обратную запись. Владелец адреса может задать этот текст, даже если не управляет прямой записью указанного домена.
Выполните встречную проверку
Получите обратное имя адреса, затем разрешите его прямую адресную запись Ethereum. Сравните декодированные 20 байтов с исходным адресом. В примере использованы корректные по длине учебные адреса, но они различаются. Поэтому в строке истории останется исходный адрес.
const queried = "0x" + "11".repeat(20);
const candidate = "merchant.eth";
const forward = "0x" + "22".repeat(20);
console.log(forward.toLowerCase() === queried.toLowerCase() ? candidate : queried);
Разделите отображение и идентификацию
Даже при совпадении храните транзакцию по адресу. Для исторической подписи проверьте обе записи на одном блоке, если архивный источник поддерживает такое чтение. В противном случае обозначьте, что имя получено на текущий момент. При тайм-ауте или отсутствии прямой записи достаточно скрыть подпись именем: сам аккаунт от этого не становится недействительным.