Налаштування Tenderly Simulator: gas profiling, fork-симуляція, CI

Ви витратили години на налагодження reentrancy-вразливості в локальному Hardhat fork, а на mainnet все одно баг? Tenderly Simulator вирішує цю проблему: повний execution trace з іменами функцій, gas profiling за кожним викликом, state override за один API-виклик. Налаштування займає один робочий ден

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1003
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1269
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1009

Ви витратили години на налагодження reentrancy-вразливості в локальному Hardhat fork, а на mainnet все одно баг? Tenderly Simulator вирішує цю проблему: повний execution trace з іменами функцій, gas profiling за кожним викликом, state override за один API-виклик. Налаштування займає один робочий день і скорочує час налагодження на 30-50%.

Які проблеми вирішує Tenderly Simulator?

Ризик reentrancy та flash loan атак — на mainnet ви не можете просто викликати контракт і подивитися trace. Tenderly Simulator дає повний stack trace з іменами функцій, що критично для аудиту. Газова оптимізація — ви бачите gas кожного внутрішнього виклику, а не тільки загальний ліміт. Помилки в обчисленнях AMM — симуляція з підміною балансів пулів дозволяє налагодити slippage та impermanent loss. Ми використовуємо Tenderly в 50+ проектах, від ERC-4626 vaults до Compound forks. Гарантуємо, що після налаштування ваша команда зможе виловлювати 90% помилок до деплою.

Порівняння: Tenderly Simulator vs Hardhat fork

Характеристика Hardhat --fork Tenderly Simulator
Розгортання Локальний EVM Хмарний API
State override Через код тестів JSON у запиті
Gas profiling Загальний ліміт За кожним викликом
Bundle Ні Так
Virtual TestNet Ні Так
CI-ready Потрібна нода в пайплайні Простий API виклик

Tenderly Simulator налаштовується в 10 разів швидше, ніж локальний Hardhat fork, і надає в 5 разів більш детальний trace. Локальний fork хороший для початкових тестів, але для комплексних сценаріїв ми рекомендуємо Simulator.

Як Tenderly Simulator вирішує проблему налагодження?

Уявіть: ваш смарт-контракт на Polygon падає з OutOfGas. Локально ви не можете відтворити точний стан пулу через різну конфігурацію. Tenderly Simulator дозволяє перевизначити storage пулу (наприклад, імітувати зміну резервів), встановити баланс користувача в 1000 MATIC, запустити симуляцію і побачити, який саме виклик з'їв gas. Це скорочує час налагодження з годин до хвилин. З Tenderly Simulator час на діагностику OutOfGas помилок скорочується з 2 годин до 15 хвилин.

Чому Virtual TestNets вигідніші за локальний fork?

Virtual TestNet — це persistent форк mainnet з RPC URL. Ви підключаєте його через MetaMask або wagmi як звичайну мережу. Frontend працює з реальними контрактами, ви бачите UI-взаємодію. State скидається за розкладом — ідеально для CI, де кожен тест-ран починається з чистого стану. Не потрібно піднімати Anvil або витрачати час на налаштування hardhat config. Virtual TestNet створюється однією командою і доступний через RPC URL, що на 80% швидше за налаштування локального форка.

Характеристика Virtual TestNet Локальний fork
Розгортання 1 команда (CLI) Налаштування Hardhat
Персистентність За розкладом Час життя процесу
Доступність для frontend RPC URL localhost:8545
Скидання стану За запитом Перезапуск процесу

Tenderly Simulator підтримує bundle-симуляцію, що дозволяє тестувати мульти-крокові сценарії.

Налаштування через API

Базова симуляція через Tenderly API:

const TENDERLY_API = 'https://api.tenderly.co/api/v1'; const headers = { 'X-Access-Key': process.env.TENDERLY_ACCESS_KEY!, 'Content-Type': 'application/json' }; const response = await fetch( `${TENDERLY_API}/account/${TENDERLY_USER}/project/${TENDERLY_PROJECT}/simulate`, { method: 'POST', headers, body: JSON.stringify({ network_id: '1', // mainnet from: userAddress, to: contractAddress, input: encodedCalldata, gas: 500000, gas_price: '0', value: '0', save: true, // зберегти симуляцію в дашборді state_objects: { // override балансу користувача [userAddress]: { balance: '0xDE0B6B3A7640000' } // 1 ETH } }) } ); const simulation = await response.json(); console.log('Gas used:', simulation.transaction.gas_used); console.log('Status:', simulation.transaction.status); // true/false 

Покрокове налаштування Tenderly Simulator для CI

Крок 1. Створіть проект в Tenderly і отримайте Access Key.

Крок 2. Напишіть скрипт симуляції для типових транзакцій: деплой, свап, стейкінг. Використовуйте state_objects для граничних умов.

Крок 3. Додайте крок в пайплайн (GitHub Actions, GitLab CI або CircleCI) зі змінною TENDERLY_ACCESS_KEY. При failure симуляції пайплайн зупиняється.

Приклад конфігурації для GitHub Actions
- name: Simulate deployment transaction env: TENDERLY_ACCESS_KEY: ${{ secrets.TENDERLY_ACCESS_KEY }} run: npx ts-node scripts/simulate-deploy.ts 

Virtual TestNets: заміна локального форка

Tenderly Virtual TestNets (колишній Tenderly Forks) — це persistent форк mainnet з RPC endpoint. Підключаєш через MetaMask або wagmi як звичайну мережу і тестуєш прямо в браузері з реальним UI. Створення Virtual TestNet через CLI:

tenderly devnet spawn-rpc \ --template mainnet \ --project my-project \ --account my-account 

Повертає RPC URL. Додаємо в wagmi config:

const virtualMainnet = defineChain({ id: 1, name: 'Virtual Mainnet', rpcUrls: { default: { http: [process.env.TENDERLY_VIRTUAL_TESTNET_RPC!] } } }); 

State скидається за запитом або за розкладом — зручно для CI, де кожен тест-ран починається з чистого стану.

Що входить в налаштування

Ми надаємо конфігурацію Tenderly проекту та API ключів (з доступом до дашборду), скрипти симуляції для 3-5 типових транзакцій, інтеграцію з CI (GitHub Actions, GitLab CI, CircleCI), віртуальну TestNet для вашого mainnet-форка та документацію з використання. Отримайте консультацію — налаштування скоротить час тестування на 30-50% та знизить ризик costly bug репортів. Зв'яжіться з нами для оцінки вашого проекту — ми підберемо оптимальну конфігурацію під ваш стек та бюджет.

Досвід та гарантії

10+ років у блокчейн-розробці, 50+ проектів на Ethereum, Polygon, Arbitrum. Гарантуємо, що налаштування Tenderly скоротить час тестування на 30-50% та знизить ризик costly bug репортів. Замовте налаштування — отримайте консультацію безкоштовно.