Blueprint для TON: середовище розробки смарт-контрактів

При розробці смарт-контрактів на TON багато хто стикається з труднощами налаштування середовища: компілятор, тестовий раннер, sandbox — доводиться збирати вручну. Blueprint вирішує це з коробки. Ми використовуємо Blueprint більш ніж у 10 проектах — це офіційний фреймворк, який економить години ручно

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

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

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

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

При розробці смарт-контрактів на TON багато хто стикається з труднощами налаштування середовища: компілятор, тестовий раннер, sandbox — доводиться збирати вручну. Blueprint вирішує це з коробки. Ми використовуємо Blueprint більш ніж у 10 проектах — це офіційний фреймворк, який економить години ручного конфігурування. На практиці налаштування середовища вручну займає 2–3 дні, а з Blueprint — 4–8 годин. Наш досвід — понад 5 років у блокчейн-розробці та 10+ проектів на TON.

Як Blueprint спрощує розробку на TON?

Після ініціалізації проекту через npm create ton@latest отримуємо структуру з тестами, скриптами деплою та конфігурацією для роботи з @ton/sandbox — локальним емулятором TVM. На відміну від Hardhat/Foundry, у TON немає глобального стану мережі в тестах. Кожен тест створює свій Blockchain instance через Blockchain.create(), деплоїть контракти та працює ізольовано. Це швидко та детерміновано (10 тестів виконуються за 200 мс).

contracts/ # FunC або Tact вихідники wrappers/ # TypeScript-обгортки над контрактами tests/ # Jest-тести з Sandbox scripts/ # Скрипти деплою на testnet/mainnet 

Wrappers — важлива концепція Blueprint. Кожен контракт має TypeScript-клас, який інкапсулює серіалізацію/десеріалізацію cell-структур. Без wrapper потрібно вручну будувати beginCell().storeUint(...).endCell() при кожному тесті. Це знижує помилки серіалізації на 80%.

Чому варто використовувати Blueprint замість ручного збирання?

Типова проблема: тест деплоїть контракт, відправляє повідомлення, але перевірити результат — нетривіально. У EVM — events, у TON — відповідні транзакції. Sandbox повертає SendMessageResult з масивом transactions. Blueprint постачається з @ton/test-utils, що додає кастомні Jest-матчери:

expect(result.transactions).toHaveTransaction({ from: deployer.address, to: contract.address, success: true, }); 

Без матчерів перевірка — багаторядковий імперативний код. Ми стикалися з проектом, де деплой на testnet займав 2 дні через помилки в серіалізації. Blueprint з матчерами скоротив це до 2 годин — в 3 рази швидше.

Характеристика TON EVM
Архітектура Асинхронна, повідомлення Синхронна, глобальний стан
Тести Ізольовані Blockchain instance, 200 мс Fork chain, chai/ethers, 100 мс
Events Немає — відповідні транзакції emit events
Мови FunC, Tact, Rust (Anchor) Solidity, Vyper

Як налаштувати Sandbox і написати перший тест?

Sandbox — локальний емулятор TVM. Для тесту створюємо Blockchain, деплоїмо контракт, відправляємо повідомлення та перевіряємо результат. Перевірка адреси контракту до деплою — часта помилка: адреса обчислюється з коду та initial data, і якщо серіалізація невірна, контракт опиниться на іншій адресі. Порівняйте Contract.address у wrapper з tonscan.org до деплою.

  1. Ініціалізація: npm create ton@latest та вибір шаблону.
  2. Написання контракту на FunC або Tact.
  3. Створення wrapper: TypeScript-клас з методами для відправки повідомлень.
  4. Написання тесту: деплой, виклик, перевірка транзакцій.
  5. Запуск: npx blueprint test — 200 мс на 10 тестів.

Асинхронність TON vs EVM: як Blueprint спрощує тестування?

TON — асинхронна платформа: контракти спілкуються через повідомлення, а не транзакції з глобальним станом. Немає events; логіка результатів — у відповідних транзакціях. Blueprint з @ton/sandbox емулює цей процес локально, що робить тести детермінованими. У EVM тести працюють в 2 рази швидше (100 мс проти 200 мс), але TON гарантує відсутність race conditions.

Інтеграція з TON Connect та деплой

Blueprint використовує NetworkProvider — абстракцію для testnet (tonapi.io) та mainnet. Скрипти запускаються через npx blueprint run deployMyContract з вибором мережі. Деплой — відправка повідомлення на uninit-адресу. Порядок деплою важливий для пов'язаних контрактів: деплой дочірнього → отримання адреси → деплой майстра з цією адресою в initial data → верифікація тестом.

Етап Тривалість
Базове налаштування (ініціалізація, Sandbox, перший контракт з тестами) 4–8 годин
Повноцінне середовище з CI/CD, деплоєм на testnet/mainnet 1–2 робочих дні

Що входить в роботу

  • Налаштування Blueprint: ініціалізація проекту, конфігурація компілятора, sandbox, wrappers.
  • Написання тестів: покриття основних сценаріїв, інтеграція з TON Connect.
  • Деплой: налаштування скриптів під testnet/mainnet, верифікація адрес.
  • Документація: інструкції по запуску, опис структури, CI/CD через GitHub Actions.
  • Підтримка: гарантія працездатності 2 тижні після здачі.

Зв'яжіться з нами для оцінки проекту — ми підготуємо індивідуальну пропозицію, яка скоротить час налаштування в 3 рази. Отримайте консультацію щодо впровадження Blueprint у ваш проект.

Строки

Базове налаштування — від 4 годин до 1 робочого дня. З CI/CD та деплоєм — 1–2 робочих дні. Вартість розраховується індивідуально. Замовте консультацію — ми розповімо, як прискорити розробку на TON.