К основному содержимому

Введите слово из вопроса или названия статьи.

2 · Практика

Как читать Etherscan: проверяем контракт, транзакцию и события

Практическое руководство по обозревателям блоков (Etherscan, Basescan, Polygonscan, BscScan): как проверить адрес, транзакцию, контракт, токены и разрешения.

3 мин чтенияОбновлено:
В этой статье

Обозреватель блоков - это сайт, который показывает всё, что записано в блокчейне, в виде удобных страниц. Для Ethereum это Etherscan, для Base - Basescan, для Polygon - Polygonscan, для BNB Chain - BscScan. Все они устроены одинаково, поэтому, научившись читать один, вы разберётесь в остальных.

Зачем это нужно, если есть интерфейс сервиса? Потому что интерфейс может быть поддельным, неточным или просто «отстать». Обозреватель - независимый источник правды: он показывает то, что реально записано в сети.

Страница адреса

Вставьте адрес кошелька или контракта в поиск - откроется страница адреса. Что на ней:

  • Баланс основной монеты и список токенов.
  • Транзакции - все операции, в которых адрес участвует.
  • Internal transactions - переводы, которые происходили внутри контрактов (например, выплата, инициированная контрактом).
  • Token transfers - движение токенов ERC-20.
  • Для контрактов - вкладка Contract: код, ABI, функции чтения и записи.

Меткам «Contract» и «EOA» стоит уделить внимание. EOA (externally owned account) - обычный кошелёк, управляемый ключом. Contract - программа.

Как проверить транзакцию

Откройте страницу по хешу транзакции (его показывает интерфейс в уведомлении). Что вы увидите:

ПолеЧто означает
StatusSuccess - выполнена; Failed - отклонена контрактом, газ потрачен; Pending - ещё не включена
BlockВ каком блоке записана, и сколько блоков поверх (подтверждения)
From / ToКто отправил и кому: если To - контракт, то это вызов функции
ValueСколько основной монеты передано
Transaction FeeСколько заплачено за газ
Input DataКакая функция вызвана и с какими аргументами

Если нажать Decode Input Data, обозреватель расшифрует вызов: например, acceptOffer(dealId = 7, expectedTermsHash = 0x…). Это позволяет убедиться, что интерфейс отправил то, что вы хотели.

Логи и события

Ниже в той же транзакции вкладка Logs показывает события (events), которые контракт «записал в журнал». Для эскроу это ключевой источник правды:

  • OfferCreated - сделка создана; видны покупатель, продавец, гарант, сумма, ставки.
  • OfferAccepted - сделка принята, указан срок.
  • DisputeOpened - открыт спор.
  • DealSettled - сделка завершена; указано, сколько получили покупатель, продавец, гарант и платформа.
  • Paid и PaymentDeferred - выплата прошла или отложена.

Именно из событий интерфейс строит историю сделки. О том, как это устроено технически, - в статье про события и логи.

Проверка контракта

Прежде чем доверять контракту деньги, откройте его страницу и убедитесь:

  1. Адрес совпадает с официальным. Сверьте с главной страницей сервиса или документацией. Контракт Coin-Trust: 0x6462DDDc0a3D893A7C17f94410e2d27162a390aD - тот же во всех сетях.
  2. Код опубликован и верифицирован. Во вкладке Contract должна быть галочка «Contract Source Code Verified» и читаемый исходный код. Неверифицированный контракт - это «чёрный ящик».
  3. Кто владелец. Вызовите owner во вкладке Read Contract - увидите адрес владельца. Если это мультисиг или хорошо известный адрес - лучше, чем неизвестный кошелёк.
  4. Что может владелец. Прочитайте функции, помеченные onlyOwner: может ли он ставить на паузу, менять правила, выводить чужие деньги.
  5. Есть ли прокси. Если контракт обновляемый (proxy), логику могут подменить - вкладка покажет «Read as Proxy».

Токены и разрешения

На странице вашего адреса откройте вкладку Token Approvals (она может называться по-разному - «Token Approvals», «Approvals» или находиться в инструментах) и проверьте, каким адресам вы разрешили доступ к токенам. Лишние - отзовите. Подробнее - в статье про approve.

Как проверить, что платёж дошёл

Откройте вкладку Token transfers (или Internal Txns для основной монеты) у адреса получателя: там должна появиться запись о выплате с нужной суммой. Помните про decimals: 1 USDT в Ethereum - это 1000000 в «сырых» единицах (6 знаков), а в BNB Chain - 1000000000000000000 (18 знаков). Обозреватель обычно показывает уже человеческий вид.

Типичные ошибки новичков

  • Не та сеть. Адрес один, а страница - на разных сайтах: Etherscan, Basescan, Polygonscan, BscScan. Если транзакция не нашлась, проверьте сеть.
  • Паника при Pending. Транзакция может висеть минутами при перегрузке - см. анатомию транзакции.
  • Подмена сайта. Убедитесь, что вы на настоящем обозревателе: etherscan.io, basescan.org, polygonscan.com, bscscan.com.

Что почитать дальше

Научившись читать записи, проверьте сам контракт: как проверить смарт-контракт перед использованием. Затем разберёмся, как построен арбитраж, который решает спорные вопросы: архитектура арбитража.

Упоминается в статьях

Готовы попробовать?

Создайте первую сделку за пару минут. Деньги блокируются в смарт-контракте и выплачиваются по правилам, которые видны заранее.