> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Обзор выполнения

> Получите вид «с высоты птичьего полёта» на транзакцию с function trace, call trace, контрактами, событиями, изменениями состояния и gas profiler — в одном месте.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2009.44.31.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=681671eddb1b5e0585403abe015e646f" alt="Успешная транзакция" width="2516" height="1143" data-path="images/Screenshot 2021-11-25 at 09.44.31.webp" />

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2009.45.45.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=17a3730542f73493267233335fc04cd3" alt="Неудачная транзакция" width="2516" height="1143" data-path="images/Screenshot 2021-11-25 at 09.45.45.webp" />

Execution Overview — это, по сути, вид «с высоты птичьего полёта» на транзакцию. С первого взгляда вы можете увидеть точные пути выполнения кода всех смарт-контрактов, участвовавших в данной транзакции. Транзакции с картинок выше можно открыть, кликнув [**сюда (успешная)**](https://dashboard.tenderly.co/tx/mainnet/0x1ca07994d823e4198d7517d828d99e2064f3204501284d5348ca8c11e3be53d8) и [**сюда (неудачная)**](https://dashboard.tenderly.co/tx/mainnet/0xe0ca90fba27e63cd8550565fa8d57559f76b67f5e7d8b8dbb150752a48cb87d2).

На первой вкладке — **Transaction Overview** — вы можете видеть и перемещаться по всем элементам транзакции. Более того, вы можете мгновенно (Ре)симулировать транзакцию, нажав кнопку в правом верхнем углу, с другими параметрами или даже изменив исходный код, чтобы увидеть результат — [**подробнее о симуляциях здесь**](/simulator-ui/overview).

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2009.57.12.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=870d4adafc8101b9ccf8bed36a11e6cd" alt="" width="1575" height="943" data-path="images/Screenshot 2021-11-25 at 09.57.12.webp" />

С вкладки Overview вы можете мгновенно перейти в Contract Sources или Debugger, чтобы понять, что произошло:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.13.51.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=de45784e86b54411992107a00193d666" alt="" width="2553" height="1158" data-path="images/Screenshot 2021-11-25 at 10.13.51.webp" />

Если вы разбираете неудачную транзакцию, теперь вы можете **сразу перейти ко всем точкам сбоя, кликнув по красному значку предупреждения, а затем — по строке, на которой произошёл сбой**:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.46.08%20(1).webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=556893b48138dd1e6381df0c638afcbf" alt="" width="2553" height="1141" data-path="images/Screenshot 2021-11-25 at 10.46.08 (1).webp" />

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.47.46.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=f9371e74d1ce4accd3d5ac92eaccaa5e" alt="" width="2553" height="1230" data-path="images/Screenshot 2021-11-25 at 10.47.46.webp" />

Вы также можете искать по Execution Trace, а также легко перемещаться по ней стрелками клавиатуры:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.18.19.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=b4e9ad96ce7bafb9a701704ed74f9a82" alt="" width="2553" height="1158" data-path="images/Screenshot 2021-11-25 at 10.18.19.webp" />

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/ezgif.com-gif-maker%20(6).gif?s=a0d62baa5fb34537882b14b439bfef4d" alt="" width="800" height="359" data-path="images/ezgif.com-gif-maker (6).gif" />

### Call и Function Trace

В разделе Execution Trace вы найдёте выпадающее меню рядом с полем поиска. По умолчанию оно установлено в **Function Trace**, что означает отображение всех внешних и внутренних вызовов, которые произошли в этой транзакции.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-12-22%20at%2010.26.14.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=7bc8570287e79804ae7b1df986007399" alt="" width="2550" height="1144" data-path="images/Screenshot 2021-12-22 at 10.26.14.webp" />

Для лучшего обзора ключевых вызовов переключите его в **Call Trace**, который показывает только внешние вызовы, произошедшие в транзакции.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-12-22%20at%2010.35.27.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=9902b40c04f53e00d9116357ba4f7e98" alt="" width="2550" height="1134" data-path="images/Screenshot 2021-12-22 at 10.35.27.webp" />

<Info>
  Вы можете **комментировать и расставлять приоритеты для любой трассы** — как для себя, так и для того, чтобы облегчить совместную работу над проектом. [**Подробнее об этом здесь**](/debugger/commenting).
</Info>

Эта функция также доступна в [**Debugger**](/debugger/overview). Скажем, вы хотите действительно глубоко покопаться в вашей (или любой другой) транзакции. Пройдёмся по каждой из доступных вкладок.

### Contracts

Когда вы находитесь на вкладке **Transaction Overview**, в верхней навигации можно нажать **Contracts** (или **Addresses**), чтобы увидеть все контракты, которые были задействованы в определённой транзакции:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2015.21.21.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=5a077a5709fb08210d6fda4a8ba6c417" alt="" width="2542" height="1151" data-path="images/Screenshot 2021-10-14 at 15.21.21.webp" />

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2015.21.39.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=11e1269d6c434281fd3dd18d56f9b709" alt="" width="2542" height="1151" data-path="images/Screenshot 2021-10-14 at 15.21.39.webp" />

Кликнув по контракту, можно посмотреть его исходный код:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.00.32.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=2fe0930b3eebd554e0e4661d53c75cc8" alt="" width="2553" height="1160" data-path="images/Screenshot 2021-11-25 at 10.00.32.webp" />

### Events

События смарт-контрактов — де-факто способ уведомлять заинтересованные стороны о том, что произошло какое-то событие. Сами логи также содержат ценную информацию в дополнение к тому, что произошло определённое событие.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.03.57.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=27e9efee3e22d5fd28bb450e51107606" alt="" width="2553" height="1135" data-path="images/Screenshot 2021-11-25 at 10.03.57.webp" />

Кликнув по вкладке **Events**, мы можем увидеть все события, [сгенерированные во время транзакции](https://dashboard.tenderly.co/tx/mainnet/0x98a8a99daec2823836ac155003ec7c798ded926a86e1c165716dd0d0ea5133a0). Что ещё лучше — **параметры событий уже декодированы и показаны в удобочитаемом виде**. Больше не нужно тратить время на декодирование hex-строк, чтобы понять, что произошло. Вы также можете фильтровать события по имени и смарт-контракту.

### State Changes

По мере усложнения смарт-контрактов усложняются и их состояния.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.05.37.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=dbbfce4802dbf3710c9db5ec18d9d5c1" alt="" width="2553" height="873" data-path="images/Screenshot 2021-11-25 at 10.05.37.webp" />

Здесь мы видим, что Tenderly не только показывает переменные состояния, которые были изменены, но и **все они декодированы для вашего удобства**. **И да, структуры также декодируются корректно**.

Вы можете увидеть эту транзакцию и её тонкости [здесь](https://dashboard.tenderly.co/tx/mainnet/0x98a8a99daec2823836ac155003ec7c798ded926a86e1c165716dd0d0ea5133a0).

### Debugger

Отладка стек-трасс — важная часть работы любого разработчика как локально, так и в продакшене. Кликнув по вкладке **Debugger**, вы сможете глубоко погрузиться во всё, что произошло с вашей (или любой другой) транзакцией.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.41.38.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=3e8662e7e09bad511a4b5aef20388409" alt="" width="2553" height="1087" data-path="images/Screenshot 2021-11-25 at 10.41.38.webp" />

**Стек-трасса выше показывает точную строку кода, в которой транзакция не удалась**. Оттуда можно нажать **Debug Error** и в мгновение найти проблему. Посмотрите, [**как использовать Tenderly Debugger**](/debugger/overview), и [**исследуйте неудачные транзакции**](/debugger/overview)!

### Gas Profiler

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.29.41.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=b526d5cb3723b51b577b36b201f598b3" alt="" width="2553" height="775" data-path="images/Screenshot 2021-11-25 at 10.29.41.webp" />

Диаграмма, которую вы видите на изображении выше, называется flame graph. Это распространённый способ показать использование ресурса, например CPU. Пример выше можно найти [здесь](https://dashboard.tenderly.co/tx/mainnet/0x98a8a99daec2823836ac155003ec7c798ded926a86e1c165716dd0d0ea5133a0).

Каждая линия показывает суммарную стоимость линий, расположенных под ней. Кликнув по любой из линий (функций), можно увидеть детальную разбивку расхода газа для вызванных функций.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-11-25%20at%2010.32.46.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=0776568fec9bdccf8cc3024ebeda34c8" alt="" width="2553" height="977" data-path="images/Screenshot 2021-11-25 at 10.32.46.webp" />

Наконец-то вы можете увидеть, какие функции используют больше всего газа, и выбрать нужные участки кода для оптимизации.
