Blueprint: структура проекта и конфигурация

Разберёшь каталоги Blueprint-проекта и настроишь blueprint.config.ts под testnet/mainnet.

Blueprint — каркас проекта

Blueprint (@ton/blueprint) — TypeScript-окружение для контрактов: компиляция, wrappers, Sandbox-тесты и скрипты деплоя. Если проект ещё не создан — см. создание проекта. Здесь — как устроен готовый репозиторий и как его конфигурировать.

На момент публикации: шаблон через create-ton@0.34.x, CLI — локальный @ton/blueprint из node_modules.


Структура каталогов

text
my-contract/
├── contracts/           # .tact / .fc / .tolk
├── wrappers/            # TS-классы + *.compile.ts
├── tests/               # Jest + @ton/sandbox
├── scripts/             # deploy / run-сценарии
├── build/               # артефакты после blueprint build
├── blueprint.config.ts  # сеть, ключи, опции CLI
├── package.json
└── tsconfig.json

Ключевые команды из корня проекта:

bash
# @ton/blueprint из package.json проекта
npx blueprint build
npx blueprint test
npx blueprint run

Конфигурация сети

Файл blueprint.config.ts в корне — экспорт объекта config:

typescript
// @ton/blueprint — типы Config из пакета проекта
import { Config } from "@ton/blueprint";

export const config: Config = {
  // TonCenter-совместимый JSON-RPC
  network: {
    endpoint: "https://testnet.toncenter.com/api/v2/jsonRPC",
    type: "testnet",
    version: "v2",
    key: process.env.TONCENTER_API_KEY, // без ключа — жёсткий rate limit
  },
  // искать wrappers/compilables во вложенных папках
  recursiveWrappers: true,
};

Для lite-client вместо HTTP API:

typescript
import { Config } from "@ton/blueprint";

export const config: Config = {
  network: {
    endpoint: "https://ton.org/testnet-global.config.json",
    version: "liteclient",
    type: "testnet",
  },
};

Как это работает

  • contracts/ — исходники; язык задаётся в wrappers/*.compile.ts (lang: 'tact' | 'func' | 'tolk').
  • wrappers/ — сгенерированные/ручные классы для вызовов из тестов и скриптов.
  • npx blueprint build — компилирует контракты и обновляет артефакты в build/.
  • network в blueprint.config.ts — дефолт для blueprint run / деплоя; CLI-флаги --testnet / --mainnet могут переопределить сеть.
  • Ключ API лучше брать из env, не коммитить в репозиторий.

Частые ошибки

Нет blueprint.config.ts, а деплой падает на rate limit → публичный TonCenter без ключа режет частоту. Добавь key или передай API key через env/флаги.

Путаешь testnet и mainnet в type и endpoint → контракт уезжает не туда. Сверяй пару: testnet.toncenter.com + type: "testnet".

Ждёшь wrappers из подпапки без recursiveWrappers → Blueprint по умолчанию не обходит вложенные каталоги. Включи recursiveWrappers: true или держи файлы плоско в wrappers/.


Что дальше

Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация