Кликабельные примеры в этом посте:
- Последние зарегистрированные домены 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, чтобы узнать больше!