Перейти к содержимому
Курс USDC:$1,0000Газ:
Arcscan

Адреса

У каждого 40-символьного шестнадцатеричного аккаунта в Arc есть страница — его баланс USDC, токены, которые он держит, всё, что он сделал, и, если это контракт, его код.

Что показывает страница адреса#

В шапке — полный адрес с контрольной суммой, кнопка копирования и QR-код, а также по пилюле на каждое свойство адреса: Контракт, Прокси или стандарт токена. Под ней три карточки, а затем полоса вкладок. Ничему на странице не нужен аккаунт — у Arcscan его нет, поэтому здесь нигде нет и приватных именных меток. Публичные метки живут в облаке меток и в каталоге.

КарточкаЧто содержит
Обзор«Баланс USDC», «Стоимость в USDC» и «Токены на балансе». Каждая величина на карточке прочитана на одной высоте блока, и эта высота названа в подсказке к балансу.
Подробнее«Разрешения токенов», создатель и транзакция развёртывания для контракта, ссылка на токен-трекер, когда адрес сам является контрактом токена, первая и последняя транзакция этого адреса и то, откуда он был впервые пополнен.
МультичейнОдна исходящая ссылка на DeBank и подсказка о том, что DeBank не индексирует Arc, — значит, ничего из Arc там не появится. Это ссылка, а не итог по портфелю.

Полоса вкладок несёт ещё и меню фильтра, которое открывает расширенный фильтр, заранее заполненный этим адресом, и кнопку API, указывающую на эндпоинты, стоящие за страницей.

Балансы#

Нативный баланс USDC#

Arc оплачивает газ в USDC, поэтому нативный баланс — это уже доллары: баланс и его стоимость — одно и то же число, а не пересчёт по курсу. Нативная единица несёт 18 знаков. Интерфейс ERC-20 для USDC по адресу 0x3600000000000000000000000000000000000000 сообщает те же деньги, усечённые до 6 знаков; страница адреса показывает один баланс USDC, а не оба.

Баланс без высоты нельзя проверить

Arc выпускает блок примерно раз в полсекунды — при измерении 506 мс в основной сети и 536 мс в тестовой, — поэтому два чтения «latest» попадают на разные высоты. Arcscan называет блок, на котором он прочитал баланс, и каждая величина на карточке «Обзор» прочитана на той же высоте, чтобы числа сходились друг с другом.

Токены на балансе#

«Токены на балансе» перечисляют баланс по каждому токену, который этот адрес отправлял или получал внутри проиндексированного диапазона. Суммы точны, но каждая из них вычислена — просуммирована по логам переводов токена, а не прочитана обратно из контракта, — поэтому токен, перемещающий стоимость без выпуска перевода, может отличаться. Список — это нижняя оценка, а не опись: токен, который ни разу не выпустил перевода с участием этого адреса, обнаружить таким способом невозможно.

Долларовые величины появляются только там, где Arcscan готов назвать цену, а он делает это лишь тогда, когда хотя бы один пул токена держит не менее 10 000 USDC настоящей ликвидности: более тонкий пул сдвигается одной сделкой, поэтому названная им величина ценой не является. Позиция без цены так и говорит; нулём она не становится никогда. Поэтому подытог — это сумма только оценённых позиций, и он сообщает, сколько позиций в него не попало.

Это не итог по портфелю

Неизвестными здесь могут быть две разные вещи, и ни одна из них не «ничего»: токен, цену которого Arcscan назвать не станет, и токен, баланс которого установить не удалось вовсе. Обе указываются как неизвестные, а не пишутся как 0.

Вкладки активности#

У обычного аккаунта четыре вкладки, у контракта — пятая. Каждая из четырёх лент листается курсором, доходящим до всей истории, которую держит Arcscan, и из каждой можно скачать в CSV уже загруженные строки.

ВкладкаЧто перечисляетОткуда берётся
ТранзакцииТранзакции, отправленные или полученные этим адресом, сначала новые.Индекс «адрес → транзакция».
Внутренние транзакцииНативные USDC, перемещённые внутри вызова, а не как транзакция верхнего уровня.Логи событий, публикуемые системным зеркальным контрактом, — не trace_filter.
Переводы токеновПеремещения токенов, стороной которых был этот адрес.Тот же индекс адресов, поверх таблицы переводов.
ЛогиСобытия, выпущенные этим адресом.Индекс логов, отфильтрованный по выпустившему адресу.
КонтрактБайткод, ABI, код создания, аргументы конструктора и исходник, когда он у Arcscan есть. Только для контрактов.Цепь плюс Sourcify там, где верификация существует.

Внутренние транзакции в Arc берутся не из трассировок

Восстановление внутренних перемещений через trace_filter ограничило бы эту вкладку окном примерно в сотню блоков — меньше минуты цепи. Этого и не требуется: каждое чистое нативное перемещение публикуется логом, поэтому вкладка читает всю историю без единого трассировочного вызова. Именно поэтому поток индекса трассировок не содержит ни одного блока ни в одной из сетей, а вкладка при этом работает.

Что проиндексировано, а что нет#

В обеих сетях есть индекс «адрес → транзакция» и индекс держателей, поэтому списки выше — это чтения из индекса, а не сканирования. В остальном сети несимметричны, и различия меняют то, на что страница адреса может ответить.

Основная сеть — 5042Тестовая сеть — 5042002
Индекс транзакцийДаДа
Индекс держателейДаДа
Индекс начинается с блока0 — первый блок цепи53 500 000, не генезис
Историческое состояние (архив)ДоступноНедоступно
Индекс трассировокНи одного проиндексированного блокаНи одного проиндексированного блока
Верификация контрактовСегодня невозможнаДоступна через Sourcify

Историю тестовой сети ниже блока 53 500 000 мы не храним

Индекс тестовой сети в Arcscan начинается с блока 53 500 000. Адрес, вся активность которого лежит ниже этой высоты, покажет пустую страницу, и эта пустота — недостающая история Arcscan, а не цепи. Основная сеть проиндексирована с блока 0.

Arcscan не публикует число транзакций адреса: API не возвращает итога, и вкладка не показывает бейдж с числом, вместо того чтобы показать число из неполного обхода. Единственный верный итог на странице — это nonce аккаунта, показанный как то, что этот адрес отправил: он берётся из состояния аккаунта, поэтому точен даже для транзакций, которые Arcscan пока не может перечислить. Насколько далеко достаёт каждый индекс прямо сейчас — в разделе Полнота данных.

Исходный код контракта#

У адреса контракта появляется вкладка «Контракт» с разделами Код, Чтение контракта и Запись в контракт. Байты, которые держит цепь, — развёрнутый байткод, код создания и аргументы конструктора — есть всегда и в обеих сетях, потому что им ничьё разрешение не нужно. Исходный код — дело другое, и здесь две сети различаются полностью.

Тестовая сеть — верификация через Sourcify#

Sourcify числит сеть 5042002, поэтому контракт тестовой сети можно верифицировать, и его исходник можно показать здесь. То, что держит Arcscan, — это кеш: он забирает исходник контракта в первый раз, когда его кто-нибудь запросит. Поэтому число контрактов, исходники которых есть у Arcscan, — это размер кеша, и оно много меньше числа верифицированных: контракт, который ещё никто не открывал, будет получен тогда, когда его откроют. Отправка идёт через Верификацию контракта, а то, что уже прошло, перечислено в разделе Верифицированные контракты.

Основная сеть — верификации не существует#

Цитата из того, что сам сервис основной сети сообщает о собственных возможностях:

Это не то, что придерживает Arcscan

Sourcify не числит сеть 5042, поэтому сегодня ни один контракт в этой сети не может быть верифицирован — ни через Arcscan, ни через любой другой клиент Sourcify. Ничто здесь не ждёт Arcscan; оно ждёт, когда сеть добавят на стороне Sourcify.

На практике: в основной сети вкладка «Контракт» никогда не показывает исходник и никогда не показывает галочку верификации, потому что заслужить её нечему. Форма отправки по-прежнему загружается и прямо сообщает, что отправка будет отклонена. Читайте байткод как байткод — не считайте, что он соответствует исходнику, который вам показали где-то ещё.

Те же данные в виде JSON#

Всё, что показывает страница адреса, читается и через REST API. У обзора, у списка токенов и у каждой ленты есть собственный эндпоинт — эти три отвечали 200 в основной сети на момент написания страницы:

curl -s https://api.arc-scan.io/v1/address/0xe8FdCA9547985c2Fb8bE4A3E509fe9fE77ecf61e
curl -s https://api.arc-scan.io/v1/address/0xe8FdCA9547985c2Fb8bE4A3E509fe9fE77ecf61e/tokens
curl -s https://api.arc-scan.io/v1/address/0xe8FdCA9547985c2Fb8bE4A3E509fe9fE77ecf61e/txs
Адреса · Документация Arcscan | Arcscan