Перейти к основному содержанию
Работает на: публичных сетях (mainnet и testnet). Чтобы верифицировать контракт в Virtual Environment, см. Деплой и верификация контрактов.
Верифицируйте смарт-контракты прямо из браузера в Tenderly Dashboard. Это самый быстрый путь, если вы не используете Hardhat или Foundry; если используете, то соответствующие рабочие процессы Hardhat или Foundry автоматизируют этот процесс.

Предварительные требования

Для верификации контракта необходимо предоставить:
  • Исходный код
  • Точные настройки компилятора, использованные при компиляции развёрнутой версии
Загрузить исходный код через Dashboard можно несколькими способами:
  • Загрузив JSON-файл с метаданными контракта, сгенерированными компилятором
  • Вставив исходный код напрямую
  • Загрузив файл исходного кода с вашей файловой системы
  • Загрузив всю директорию со всеми смарт-контрактами. Это упрощает верификацию контрактов, которые импортируют другие файлы.

Публичная и приватная верификация

При верификации смарт-контрактов необходимо выбрать один из двух режимов: приватный или публичный.
  • Публичный (в Tenderly): верифицированный контракт и его исходный код доступны всем пользователям Tenderly. Вам комфортно делиться контрактом с пользователями за пределами вашего проекта. Вы хотите разрешить вызывающим ваш контракт использовать инструменты мониторинга.
  • Приватный (в Tenderly): верифицированный контракт виден только команде/соавторам. Подходит на этапе разработки контракта.

Столбец Verification во вкладке Contracts показывает, верифицирован ли ваш контракт вообще, и если да — приватно или публично.
Статус верификации добавленных контрактов

Руководство по верификации контрактов через Dashboard

После того как вы добавили неверифицированный контракт в проект Tenderly, вот шаги для его верификации через Dashboard.
1
Найдите неверифицированный контракт
2
В Dashboard найдите свой неверифицированный контракт в списке Contracts и нажмите кнопку Verify рядом со статусом верификации.
3
4
Выберите способ загрузки
5
Выберите один из вариантов:
6
  • JSON Upload: вставьте JSON-метаданные, сгенерированные компилятором Solidity.
  • ABI Upload: вставьте ABI контракта.
  • Contract Source Upload: вставьте исходный код напрямую, загрузите один файл исходного кода или загрузите всю директорию проекта. Вариант с директорией лучше всего подходит для контрактов, которые импортируют другие контракты проекта. Варианты загрузки файлов
  • 7
    Выберите контракт и видимость
    8
    Если загрузка содержит несколько контрактов, выберите тот, который соответствует адресу, показанному на предыдущем шаге. Переключите Make Private для приватной верификации.
    9
    10
    Если каких-то импортов не хватает, Dashboard предложит добавить их перед продолжением.
    11
    Задайте настройки компилятора
    12
    Заполните версию компилятора, настройки оптимизатора (включён / runs), версию EVM и пары адресов библиотек, если ваш контракт использует связанные библиотеки. Любое несоответствие с развёрнутым байткодом приведёт к сбою верификации.
    13
    14
    Завершение
    15
    Нажмите Finish для отправки. Статус верификации контракта обновится в списке Contracts.

    Как верифицировать смарт-контракты пакетно

    Если вы добавили в проект несколько неверифицированных контрактов, их можно верифицировать пакетно. Выполните следующие шаги:
    1
    Найдите все неверифицированные контракты
    2
    Нажмите Verify All Contracts в разделе Contract. Откроется модальное окно со списком всех неверифицированных контрактов вашего проекта.
    3
    4
    Добавьте исходный код для каждого контракта
    5
    Нажмите Add Source рядом с каждым контрактом и укажите загрузку, настройки компилятора и переключатель видимости так же, как в сценарии с одним контрактом выше.
    6
    7
    Завершение
    8
    Нажмите Finish для отправки. После верификации всех контрактов выберите, отображать ли их в списке транзакций проекта.