> ## 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.

# Редактирование исходного кода контракта

> Редактируйте исходный код контракта, настройки компилятора или ABI прямо во время построения симуляции и запускайте изменённый код на живом состоянии сети.

После того как вы выберете контракт в шаге симуляции в [Simulator UI](/simulator-ui/overview), рядом с полем **Contract** появятся две кнопки: **Edit source** и **Edit ABI**. Они позволяют вам изменить, какой код выполняет симуляция, не затрагивая развёрнутый контракт, чтобы вы могли протестировать исправление ошибки, подкорректировать параметр или попробовать новую логику на живом продакшн-состоянии перед развёртыванием чего-либо.

Те же элементы управления доступны при повторной симуляции: нажатие **Re-Simulate** на странице деталей транзакции загружает её входы в builder, где вы можете отредактировать исходный код и запустить снова.

## Edit source

Нажмите **Edit source**, чтобы открыть редактор исходного кода.

<Frame caption="Редактор исходного кода: список контрактов и Compiler Info слева, селектор файлов и редактируемый исходный код справа.">
  <img src="https://mintcdn.com/tenderly/5rOzguRoBTCVuzKW/images/simulator-ui/sim-edit-source-editor.webp?fit=max&auto=format&n=5rOzguRoBTCVuzKW&q=85&s=15671db8cbe7f26335252f3e10ac1afb" alt="Editing Source view showing the Dai contract address, a File dropdown with Dai.sol, the Solidity source in an editor, and a Select Contract Name dropdown, with Compiler Info, the Dai contract entry, Add contract source, and Apply Changes in the left panel" width="1600" height="1000" data-path="images/simulator-ui/sim-edit-source-editor.webp" />
</Frame>

Панель редактирования показывает:

| Элемент                  | Примечания                                                                           |
| ------------------------ | ------------------------------------------------------------------------------------ |
| **Address**              | Адрес, код которого вы редактируете.                                                 |
| **File**                 | Выпадающий список для переключения между исходными файлами многофайловых контрактов. |
| **Editor**               | Полный исходный код, редактируемый построчно.                                        |
| **Select Contract Name** | Какой контракт в файле развёрнут по этому адресу.                                    |

Правки применяются только к вашей симуляции. Развёрнутый контракт и симуляции других участников проекта не затрагиваются.

Нажмите **Apply Changes** в левом нижнем углу, чтобы сохранить изменения, затем запустите симуляцию. Шаг выполняет изменённый код при неизменном остальном состоянии сети.

### Настройки компилятора

Выберите **Compiler Info** в левой панели, чтобы настроить, как компилируется отредактированный исходный код:

<Frame caption="Compiler Info: версия компилятора, настройки оптимизации, версия EVM и переключатель ViaIR.">
  <img src="https://mintcdn.com/tenderly/5rOzguRoBTCVuzKW/images/simulator-ui/sim-edit-source-compiler.webp?fit=max&auto=format&n=5rOzguRoBTCVuzKW&q=85&s=45f4d47be54b42b9a177aaebbabee032" alt="Compiler Info pane showing Compiler Version solc v0.5.12, Optimization Used false, Optimization Count 200, EVM Version petersburg, and a ViaIR toggle" width="1600" height="470" data-path="images/simulator-ui/sim-edit-source-compiler.webp" />
</Frame>

* **Compiler Version**
* **Optimization Used** и **Optimization Count**
* **EVM Version**
* **ViaIR**

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

### Add contract source

Нажмите **Add contract source** в левой панели, чтобы редактировать дополнительные контракты в той же симуляции. Введите адрес любого развёрнутого контракта, и его исходный код загрузится как ещё одна запись в списке. Это позволяет одной симуляции запускать изменённый код сразу для нескольких контрактов, например для роутера и пула, в который он обращается.

## Edit ABI

Нажмите **Edit ABI**, чтобы открыть JSON-редактор над ABI, который builder использует для декодирования функций и кодирования ваших входов.

<Frame caption="Диалог Edit ABI: ABI контракта в виде редактируемого JSON.">
  <img src="https://mintcdn.com/tenderly/5rOzguRoBTCVuzKW/images/simulator-ui/sim-edit-abi.webp?fit=max&auto=format&n=5rOzguRoBTCVuzKW&q=85&s=9219a4f3b81b1cf682be885ed66d6538" alt="Edit ABI dialog showing the contract ABI as JSON with constructor and function entries, and Cancel and Save buttons" width="660" height="580" data-path="images/simulator-ui/sim-edit-abi.webp" />
</Frame>

Редактирование ABI полезно, когда контракт не верифицирован или его интерфейс отличается от опубликованного ABI: вставьте или скорректируйте JSON, нажмите **Save**, и выпадающий список **Function** и поля аргументов будут соответствовать обновлённому определению. О том, как эти входы отображаются в симуляции, см. в [параметрах симуляции](/simulator-ui/parameters).
