BlockSec Phalcon обновлён до версии 2.0. Летите с Phalcon и погружайтесь в транзакции!
Phalcon — это мощный проводник транзакций, разработанный для сообщества DeFi. Он предоставляет исчерпывающие данные о потоке вызовов, изменениях баланса и движении средств по транзакциям. Также поддерживается симуляция транзакций.
Phalcon призван помочь разработчикам, исследователям безопасности и трейдерам интуитивно понимать транзакции.
Это руководство пользователя познакомит вас с различными возможностями и функциями Phalcon. Для наглядности мы используем эту транзакцию в сети Ethereum в качестве примера.
Поиск транзакций
Чтобы найти транзакцию, перейдите на главную страницу Phalcon Explorer и введите хэш транзакции в строку поиска. Нажмите на результат, чтобы просмотреть страницу с подробностями разбора транзакции.
В настоящее время Phalcon поддерживает анализ транзакций в сетях Ethereum, Binance Smart Chain, Polygon, Cronos и Avalanche C-Chain. Поддержка новых сетей появится в ближайшее время.
Анализ транзакций
Страница результатов транзакции разделена на четыре основных модуля.
- Основная информация
- Изменения баланса
- Поток средств
- Изменения состояния
- Профилировщик газа
- Поток вызовов
- Просмотр кода (Новое)
Основная информация
Модуль Основная информация отображает базовые сведения о транзакции, включая статус выполнения (Status), отправителя (Sender) и получателя (Receiver).
Количество внутренних транзакций указывает на число внутренних транзакций и может использоваться для определения сложности транзакции. Чем выше значение, тем сложнее транзакция.
Кнопка [Simulator] в правом верхнем углу позволяет быстро смоделировать результаты текущей транзакции при различных номерах блока [BlockNum] и позициях [position in the block] (симуляция транзакций будет описана в соответствующем разделе).

Поток средств
Модуль «Поток средств» отображает движение токенов, задействованных в транзакции, в виде ориентированного графа. Различные узлы представляют разные адреса аккаунтов, а разный цвет фона выделяет узлы, представляющие отправителя или получателя транзакции.
Ориентированное ребро и информация на нём показывают направление перевода, токен и количество переведённых токенов.
- Различные порядковые номера на рёбрах используются для обозначения хронологического порядка переводов токенов.
- Рёбра одного цвета обозначают переводы одного и того же токена.
- Одинаковые направленные потоки одного токена между двумя адресами объединяются для упрощения карты движения средств транзакции с сохранением характеристик перевода токенов.
Модуль также предоставляет возможность масштабирования схемы потоков в правом верхнем углу. Граф потока средств можно скачать в формате SVG или PNG.

Изменения баланса
Модуль Изменения баланса показывает аккаунты, у которых изменился баланс токенов после выполнения транзакции.
- В первом столбце перечислены адреса с нетто-притоком или оттоком токенов.
- Второй столбец содержит информацию о токенах, включая названия токенов, поступающих или исходящих с адреса.
- В третьем столбце показано изменение баланса, то есть сумма притока или оттока токенов.
- Последний столбец отображает стоимость количества токенов, поступающих или исходящих с каждого аккаунта, на момент совершения транзакции.

Поток вызовов
Поток вызовов отображает последовательность вызовов функций в транзакции в виде древовидной структуры.
Каждый узел представляет вызов функции или триггер события и включает такую информацию, как глубина стека вызовов, тип вызова и параметры вызова. В верхней части модуля предусмотрены строка поиска и раскрывающийся список для выбора типа вызова и уровня раскрытия, помогающие пользователям интерпретировать поток выполнения транзакции.
Пользователи могут искать и фильтровать нужную информацию о потоке вызовов, вводя адрес, сигнатуру функции или селектор функции в строку поиска. На следующем рисунке показан результат фильтрации по адресу WETH.
Глубину стека вызовов пользователь может выбрать с помощью раскрывающегося списка. На следующем рисунке показан поток вызовов после выбора глубины стека вызовов равной 2.

Просмотр кода
В процессе анализа код верифицированного контракта можно отобразить в режиме просмотра кода. Просмотр кода поддерживает различные варианты компоновки с трассировкой, включая отдельный режим просмотра кода.
-
Только трассировка: отображается только поток вызовов (трассировка кода)
-
Трассировка и код (Л/П): отображается просмотр кода, при этом поток вызовов находится слева, а просмотр кода — справа. При нажатии на вызов верифицированного контракта в потоке вызовов верхняя часть просмотра кода содержит исходный код выбранного контракта. Нижняя часть просмотра кода показывает параметры и возвращаемые значения.
-
Трассировка и код (В/Н): аналогично режиму «Трассировка и код (Л/П)», но расположение трассировки и просмотра кода — сверху вниз, а не слева направо.
-
Отдельный просмотр кода: просмотр кода открывается в отдельной вкладке браузера, которую можно перенести на другой монитор (удобно для пользователей с несколькими дисплеями.)
Кроме того, пользователи могут быстро переключаться между различными модулями в верхней части просмотра кода справа. Предусмотрена история просмотра исходного кода в рамках данной транзакции, что позволяет легко переходить к другим исходным кодам.

Настройка
Phalcon поддерживает настройки для удобства анализа.
Пользовательская подсветка
В процессе анализа адрес, функция и событие могут быть выделены пользовательским цветом.

Пользовательская метка
Для адреса, функции и события можно задать пользовательские метки.

Пользовательская сигнатура функции
Для calldata контракта можно указать пользовательскую сигнатуру функции для декодирования calldata.



Симуляция транзакций
Симуляция произвольной транзакции
Чтобы смоделировать транзакцию, нажмите кнопку [Simulation] и заполните необходимые поля в панели симулятора транзакций. Затем нажмите кнопку [Simulate], чтобы просмотреть результаты симуляции на странице деталей. Также можно изменить тему сайта, нажав на значок рядом с кнопкой [Simulation].

Симуляция существующей транзакции
Кнопка [Simulator] в правом верхнем углу страницы деталей транзакции позволяет пользователю быстро смоделировать результаты текущей транзакции при различных номерах блока [BlockNum] и позициях [position in the block].




