Интеграция с Tenderly (отладка транзакций)
Транзакция реверсировалась с сообщением «execution reverted» — и это всё, что показывает Etherscan. Без трассировки стека непонятно, в какой именно строке контракта произошёл revert, какие были значения переменных, через какую цепочку вызовов мы дошли до ошибки. Tenderly решает это: полная трассировка EVM-выполнения, отладка как в обычном дебаггере, с брейкпоинтами и просмотром состояния.
Что даёт Tenderly в работе
Transaction Simulator — воспроизведение любой исторической транзакции с изменением параметров. Хотите проверить, что произошло бы, если бы пользователь отправил на 10% больше slippage? Или воспроизвести транзакцию в состоянии mainnet на конкретном блоке? Simulator позволяет это без реальных средств.
Visual Debugger — пошаговое выполнение с просмотром stack, memory, storage на каждом опкоде. Для Solidity-разработчика это как gdb, только для EVM. Особенно ценно при анализе сложных revert в многоконтрактных вызовах — видно точную строку в исходниках, если контракт верифицирован.
Tenderly Forks — sandbox на основе форка mainnet. Деплоите контракты, выполняете транзакции в изолированной среде с реальным состоянием mainnet (реальные Uniswap пулы, реальные Aave позиции). Это быстрее, чем anvil --fork-url для интерактивной отладки, и удобнее для совместной работы команды.
Alerts & Monitoring — триггеры на события контракта, изменения storage, конкретные функции. Можно настроить webhook на Discord/Slack при каждом Transfer токена или при изменении TVL больше чем на X%.
Web3 Actions — серверлесс-функции на TypeScript, которые реагируют на on-chain события. Например: при детектировании крупной транзакции автоматически приостановить контракт через multisig.
Интеграция в проект
Tenderly SDK устанавливается через npm и интегрируется с Hardhat. В hardhat.config.ts добавляется плагин @tenderly/hardhat-tenderly, после чего деплой-скрипты автоматически верифицируют и пушат контракты в Tenderly Dashboard.
import * as tenderly from "@tenderly/hardhat-tenderly";
tenderly.setup({ automaticVerifications: true });
Для Foundry — ручная верификация через CLI: forge verify-contract --chain mainnet --etherscan-api-key $TENDERLY_ACCESS_KEY.
Наиболее ценная интеграция — использование Tenderly Forks в тестах. Вместо hardhat node --fork форк создаётся через Tenderly API, и все транзакции автоматически трассируются. При падении теста — сразу ссылка на Debug UI с полной трассировкой.
Что не заменяет Tenderly
Tenderly не заменяет Slither/Mythril для статического анализа и не заменяет Echidna для фаззинга. Это инструмент для отладки и мониторинга уже написанного кода, а не для поиска уязвимостей на этапе разработки. В нашем стеке Tenderly живёт рядом с Foundry-тестами, не вместо них.
Базовая интеграция (плагин + автоверификация + первые alerts) — 1 день. Настройка полноценного мониторинга с Web3 Actions — 2-3 дня.







