TGViewer
MetaLamp | CIS MetaLamp | CIS @metalampru · 1.6K subscribers
Post #705 748
❣️ Tenderly: история верификации от первого лица

Когда постоянно пользуешься Tenderly для трассировки транзакции, тебе надо верифицировать смарт-контракт. Если ты сделал это для explorer, то в 99% случаев Tenderly может автоматически подтянуть код контракта оттуда и разложить на него весь стек вызова твоей транзакции.

Мой случай попадает в тот самый 1%, когда что-то пошло не так.


☠️ Затравочка

У нас блокчейн Base. Проект средний сложности, порядка 5 основных контрактов, версия Solidity 0.8.35, много чего наследуется от OZ. В общем, верифицировать руками смерти подобно. Поэтому использую возможности Foundry прямо в момент деплоя.

Пока мы только в тестнете, но уже готовимся к выходу в мейннет, поэтому активно тестируем — транзакций много. И вот появляется "транзакция-кандидат", которая ревернулась.

Привычно открываю Tenderly, жму кнопку "Fetch the contract from public explorer" и ничего. В этот раз проблему решил без глубокого погружения в код, но звоночек мне не понравился. Решил попозже эту проблемку как-нибудь разобрать.

💡 Поиск решения

Я знаю, что сУрьезные проекты верифицируют свои контракты в Tenderly приватно и используют для этого апишку. Я пошел сам в доку, нашел, что верифицировать можно через Foundry.

Время три часа дня. На раз-два быстренько запустил команду forge verify-contract --mne-na-Tenderly и ... чудеса, получил ошибку вида Bytecode does not match deployed contract.

Черт, но я ничего не менял в настройках деплоя! Версия компилятора, оптмизатор, все такое же, как и при деплое!Ладно, зову друга Клода, крутим, вертим этой командой на верификацию. В общем, жжем токены от души пару часов.

Единственное, до чего дошли по итогу — это что Tenderly не поддерживает еще версию Solidity 0.8.35. Звучит очень странно, на фоне того, что уже как-бы 0.8.37 вышла. Причину ошибки, которую Tenderly, возможно, кидает в ответ из консоли прочитать невозможно.

Решил попробовать понизить версию контрактов, но сначала на легком тестовом, чтобы не ломать свои. Бахнул 0.8.27, как у них в примерах, и все прошло с первого раза. Хм, интересно, включил в голове бинарный поиск и выяснил, что 0.8.34 и все что до нее (даже 0.8.36) работают, но не моя 0.8.35.

Время уже вечер! Ну, думаю, пришло время написать куда-нибудь в Tenderly. У них есть чат прямо в приложении, я туда коротенько свою проблему описал и там создался тикет по моей проблеме, а я пошел довольный спать с мыслями, что видимо завтра у нас переезд на 0.8.[что-нибудь].

☀️ Утро вечера мудренее

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

Какого же было мое удивление, когда утром я получил ответ о том, что проблема действительно есть и она на стороне Tenderly.
I reproduced it: verification with solc 0.8.35 currently fails on our side whenever the contract has a strict version pragma such as pragma solidity 0.8.35; or ^0.8.35. That's a bug in how we handle that compiler version, not a problem with your contract.

И даже вот пж, попробуй чисто для верификации в Tenderly поставить версию компилятора ^0.8.0.
Keep 0.8.35 selected as the compiler, but in the source you paste into the verification form loosen the pragma line to something like pragma solidity ^0.8.0;.


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

Вывод

Иногда саппорт лучше клода, а я уже забыл какого это, когда тебе помогают люди. Хотя не факт, что мне ответил человек 😅

В общем, очередной прекрасный опыт верификации (когда это уже закончится).

Ну а Tenderly мое почтение, это не только хороший продукт без которого я не мыслю разработку смарт-контрактов, но и великолепная поддержка. Приходите к нам на подкаст)

#павел_найданов

🤟 Сайт | ТГ-канал | Наш чат
More from @metalampru
  1. Sep 17, 2026Uniswap v4 hooks were a mistake Это всего лишь громкий заголовок в статье от 0x. Моя лента…
  2. Sep 15, 2026Post #706
  3. Aug 13, 2026🔐 Опенсорс как бизнес, что нужно институционалам и про безопасность DeFi: разговор с Ники…
  4. Aug 6, 2026Сказ о том как я ИИ-сотрудника искал Обложку для поста я видел несколько месяцев назад, до…
  5. Aug 3, 2026Post #702
  6. Jul 31, 2026👀👀👀
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →