Настройка Blueprint для разработки (TON)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Настройка Blueprint для разработки (TON)
Средняя
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Настройка Blueprint для разработки (TON)

TON — асинхронная блокчейн-платформа с архитектурой, принципиально отличающейся от EVM. Смарт-контракты пишутся на FunC или Tact, компилируются в TVM-байткод. Blueprint — официальный фреймворк для разработки, тестирования и деплоя TON-контрактов. Без него начать разработку на TON сложно: нужно вручную настраивать компилятор, тестовый runner и sandbox. Blueprint решает всё это из коробки.

Что Blueprint даёт в практике

После инициализации проекта через npm create ton@latest получаем структуру с тестами, скриптами деплоя и конфигурацией для работы с @ton/sandbox — это локальный эмулятор TVM, который позволяет тестировать контракты без обращения к реальной сети.

Ключевое отличие от Hardhat/Foundry: в TON нет глобального состояния сети в тестах. Каждый тест создаёт свой Blockchain instance через Blockchain.create(), деплоит контракты туда и работает изолированно. Это быстро (нет сетевых запросов) и детерминировано.

Структура проекта

contracts/          # FunC или Tact исходники
wrappers/           # TypeScript-обёртки над контрактами (отправка сообщений, чтение данных)
tests/              # Jest-тесты с Sandbox
scripts/            # Скрипты деплоя на testnet/mainnet

Wrappers — важная концепция Blueprint. Каждый контракт имеет TypeScript-класс, который инкапсулирует сериализацию/десериализацию cell-структур (ячеек — основного формата данных в TON). Без wrapper нужно вручную строить beginCell().storeUint(...).endCell() каждый раз при тесте.

Настройка Sandbox и первый тест

Типичная проблема при первом знакомстве: тест деплоит контракт, отправляет сообщение, но не знает как проверить результат. В EVM это просто — emit events, смотрим logs. В TON архитектура другая: контракты обмениваются сообщениями, и ответные сообщения — это отдельные транзакции.

Sandbox возвращает SendMessageResult с массивом transactions. Каждая транзакция содержит inMessage, outMessages, description. Для проверки Blueprint поставляется вместе с @ton/test-utils, который добавляет кастомные Jest-матчеры:

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

Без этих матчеров проверка транзакций — многострочный императивный код. С ними — читаемые assertions.

Интеграция с TON Connect и деплой

Для деплоя Blueprint использует NetworkProvider — абстракцию, которая работает одинаково в testnet (Testnet через tonapi.io) и mainnet. Скрипты деплоя запускаются через npx blueprint run deployMyContract и автоматически предлагают выбрать сеть.

Частая сложность: деплой в TON — это отправка сообщения на uninit-адрес (адрес контракта вычисляется из кода и initial data до деплоя). Если initial data неправильно сериализована в wrapper, контракт задеплоится на другой адрес, чем ожидался. Проверяем адрес через Contract.address в wrapper и сравниваем с tonscan.org до фактического деплоя.

Конфигурация для нескольких контрактов

В проектах с несколькими взаимодействующими контрактами важно правильно настроить порядок деплоя и передачу адресов. Blueprint поддерживает это через параметры скриптов. Для мастер-контракта, который хранит адреса дочерних:

  1. Деплой дочернего контракта → получаем адрес
  2. Деплой мастера с адресом дочернего в initial data
  3. Верификация связи через Sandbox-тест

Сроки

Базовая настройка Blueprint для нового проекта (инициализация, настройка Sandbox, первый контракт с тестами) — 4-8 часов. Полноценная среда разработки с CI/CD через GitHub Actions и деплоем на testnet/mainnet — 1-2 рабочих дня.