Регистрационные данные ENS с сортировкой

Кликабельные примеры в этом посте:

  • Последние зарегистрированные домены ENS
  • Ежедневные регистрации ENS
  • ENS запрос на занятое имя
  • ENS имена, которые начинаются с ‘ape’
  • Транзакции ENS для адреса кошелька

ENS расшифровывается как Ethereum Naming Service, по их словам: «Служба имен Ethereum (ENS) — это распределенная, открытая и расширяемая система именования, основанная на блокчейне Ethereum».

Каждый месяц на Ethereum появляется большое количество ENS, и мы будем использовать Sort, чтобы разобраться в этом!

Построение SQL-запроса ENS с помощью Sort

Sort позволяет писать SQL-запросы для доступа к данным блокчейна. Все ответы доступны через API или могут быть экспортированы в электронную таблицу.

Давайте начнем с написания нашего самого базового SQL-запроса для ENS на Sort:

select
  *
from
  ethereum.transaction t
where
  t.to = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
order by
  timestamp desc
Войти в полноэкранный режим Выйти из полноэкранного режима

Все результаты возвращаются в виде одного столбца _json в строке, поэтому при использовании SQL-вкуса Sort вы должны быть конкретны в отношении запрашиваемых полей.

Давайте расширим наш запрос выше, чтобы получить больше информации:

select
  t.timestamp,
  t.value_eth eth_value,
  t.gas.transaction_fee.eth as eth_gas,
  t.function.name,
  t._id as hash
from
  ethereum.transaction t
where
  t.to = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
order by
  timestamp desc
Войти в полноэкранный режим Выйти из полноэкранного режима

Вот это круто! Теперь мы видим имена функций для каждой транзакции.

Есть еще одна таблица, которую нужно добавить в наш запрос: ‘transaction_log’. Таблица ‘transaction_log’ хранит результаты транзакции и очень полезна для определения того, что происходит за кулисами (например, может быть, из этой транзакции вызываются дополнительные контракты).

Последние зарегистрированные домены ENS (с помощью функции ‘registerWithConfig’)

select
    params [1].value as name,
    params [5].value as expires,
    transaction_hash,
    timestamp,
    transaction_value_eth
from
    ethereum.transaction_log t
where
    t.transaction_to = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
    and name = 'NameRegistered'
    and transaction_function_name = 'registerWithConfig'
    and function_address = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
order by
    timestamp desc
Вход в полноэкранный режим Выход из полноэкранного режима

Просмотр результатов на sort.xyz

Ежедневные регистрации ENS

select
  DATE(timestamp) as date,
  count(*) as number_of_registrations
from
  ethereum.transaction t
where
  t.to = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
  and t.function.name = 'registerWithConfig'
group by
  date
order by
  date desc
limit
  30
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Просмотр результатов на sort.xyz

ENS имя взято запрос

select
    params [1].value as ens_name,
    params [5].value as expires,
    transaction_hash,
    timestamp,
    transaction_value_eth
from
    ethereum.transaction_log t
where
    t.transaction_to = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
    and name = 'NameRegistered'
    and transaction_function_name = 'registerWithConfig'
    and function_address = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
    and params [1].value = 'realdisco'
order by
    timestamp desc
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Просмотр результатов на sort.xyz

ENS имена, которые начинаются с ‘ape’

select
    params [1].value as ens_name,
    params [5].value as expires,
    transaction_hash,
    timestamp,
    transaction_value_eth
from
    ethereum.transaction_log t
where
    t.transaction_to = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
    and name = 'NameRegistered'
    and transaction_function_name = 'registerWithConfig'
    and function_address = '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5'
    and REGEXP_LIKE(params [1].value, '^ape')
order by
    timestamp desc
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Просмотр результатов на sort.xyz

Транзакции ENS для адреса кошелька

select
  t.timestamp,
  t.value_eth eth_value,
  t.gas.transaction_fee.eth as eth_gas,
  t.value_eth + t.gas.transaction_fee.eth as eth_total,
  t.function.name,
  t._id as hash
from
  ethereum.transaction t
where
  t.to in (
    '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5',
    '0xff252725f6122a92551a5fa9a6b6bf10eb0be035',
    '0x4976fb03c32e5b8cfe2b6ccb31c09ba78ebaba41',
    '0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85',
    '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
    '0x58774bb8acd458a640af0b88238369a167546ef2',
    '0x084b1c3c81545d370f3634392de611caabff8148'
  )
  and t."from" = '0x179a862703a4adfb29896552df9e307980d19285'
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Просмотр результатов на sort.xyz

Примечание: мы в основном запрашивали адрес контракта ‘0x283af0b28c62c092c9727f1ee09c02ca627eb7f5’, однако существуют и другие адреса контрактов ENS (упомянутые в последнем запросе выше).

Руководство по запросу данных ENS с помощью Sort

Надеюсь, это был полезный учебник по запросам к данным ENS с помощью Sort (и SQL!). Пожалуйста, присоединяйтесь к нашему Discord (и задавайте много вопросов), посетите sort.xyz или посетите документацию Sort, чтобы узнать больше!

Оцените статью
devanswers.ru
Добавить комментарий