Тестування смарт-контрактів у тестнеті

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Тестування смарт-контрактів у тестнеті
Простий
від 1 дня до 3 днів
Часті запитання

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

Етапи блокчейн-розробки

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

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

Тестування смарт-контрактів на тестнеті

Локальні тесты на Foundry anvil або Hardhat node проходять — команда вважає контракт готовим до mainnet. Але тестнети регулярно виявляють те, що локальне середовище пропускає: коректність ABI при взаємодії через реальний гаманець, поведінку сторонніх оракулів та протоколів, затримки транзакцій, edge cases з оцінкою газу.

Вибір тестової мережі

Для Ethereum-сумісних мереж актуальні тестнети у 2024-2025:

Тестнет Чейн Особливості
Sepolia Ethereum L1 Основний ETH тестнет, PoS консенсус
Holesky Ethereum L1 Більший validator set, краще для staking
Amoy Polygon Заміна Mumbai
Arbitrum Sepolia Arbitrum L2 ArbOS, L1→L2 messaging
Optimism Sepolia Optimism L2 OP Stack, fault proofs
Base Sepolia Base L2 OP Stack, Coinbase
BSC Testnet BNB Chain Паралельно з mainnet

Goerli застарів. Не розгортайте туди нічого нового.

Що перевіряти на тестнеті

Верифікація через Etherscan. Розгортання без верифікації — червоний прапор для користувачів та аудиторів. Використовуйте forge verify-contract або hardhat verify. Важливо: версія компілятора та налаштування оптимізації у конфігу мають точно співпадати з тими, що були при розгортанні. Розбіжність в одному налаштуванні — не верифікується.

Взаємодія через Metamask/Safe. Сигнатури функцій, читальні назви параметрів в Etherscan UI, коректні події в Transaction logs. Перевіримо, що ABI опубліковано та фронтенд коректно декодує відповіді.

Оцінка газу. Реальний газ на тестнеті vs локальний. Foundry gas_price в anvil за замовчуванням 1 wei — на тестнеті базова комісія плаває. Тест з vm.txGasPrice() не завжди відражає реальність.

Інтеграція з протоколами. Якщо контракт використовує Chainlink Price Feeds, Uniswap, Aave — розгорнемо їх адреси на тестнеті або використовуємо офіційні розгортання на тестнеті. Chainlink надає Price Feeds на Sepolia. Uniswap V3 розгорнув на Sepolia. Aave V3 — на Sepolia.

Процес тестування

Фаза тестнет-тестування починається після прохідження unit та fuzz тестів у Foundry. Запустимо скрипт розгортання (forge script) з --rpc-url sepolia --broadcast. Після розгортання перевіримо:

  1. Конструктор ініціалізував змінні коректно (читаємо через cast call)
  2. Обмеження доступу працюють (спроба виклику owner-функцій з іншої адреси)
  3. Happy path основних функцій
  4. Edge cases: нульові суми, макс значення uint256
  5. События емітуються та декодуються коректно

Для контрактів з можливістю оновлення — тестуємо повний цикл оновлення на тестнеті перед mainnet.

Скрипти розгортання та cast

cast з пакета Foundry — основний інструмент для ручної взаємодії:

# Прочитати змінну
cast call $CONTRACT "owner()" --rpc-url sepolia

# Відправити транзакцію
cast send $CONTRACT "setLimit(uint256)" 1000000 \
  --rpc-url sepolia --private-key $PRIVATE_KEY

# Декодувати calldata транзакції
cast 4byte-decode 0xa9059cbb...

Для складних сценаріїв — написати Forge Script з vm.broadcast() замість послідовних cast викликів.

Графіки

Типовое тестнет-тестування нового контракту середнього розміру: 1-3 дні. Включає розгортання, верифікацію, ручне тестування сценаріїв та виправлення знайдених проблем. Для контрактів з багатьма інтеграціями — до тижня.

Вартість залежить від складності контракту та кількості тестуємих сценаріїв.