Перейти к основному содержимому

Обзор Blueprint

Резюме: На предыдущих этапах мы установили и настроили все инструменты, необходимые для разработки смарт-контрактов в TON, и создали наш первый шаблон проекта.

к сведению

Мы рекомендуем установить расширение Tact для VS Code. Оно содержит подсветку синтаксиса, подсказки об ошибках, а также делает опыт разработки более гладким.

Прежде чем приступить к разработке смарт-контракта, давайте кратко опишем структуру проекта и объясним, как использовать Blueprint.

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

warning

Если вы не выбрали предложенные названия на предыдущих шагах, то названия исходных файлов и некоторые сущности в коде могут отличаться.

Структура проекта
Example/
├── contracts/ # Папка с кодом смарт-контрактов
│ ├── hello_world.tact # Файл основного контракта
├── scripts/ # Скрипты для развёртывания и взаимодействия в блокчейне
│ ├── deployHelloWorld.ts # Скрипт для развёртывания контракта
│ └── iincrementHelloWorld.ts # Скрипт для взаимодействия с контрактом
├── tests/ # Папка с тестами для локального тестирования контрактов
├── HelloWorld.spec.ts # Тестовые спецификации для контракта
└── wrappers/ # Обёртки TypeScript для взаимодействия с контрактами
├── HelloWorld.ts # Класс-обёртка для смарт-контракта
└── HelloWorld.compile.ts # Скрипт для компиляции контракта

/contracts

Эта папка содержит исходный код вашего контракта, написанный на одном из доступных в TON языков программирования для смарт-контрактов.

/scripts

Папка scripts содержит файлы на языке TypeScript, которые помогут вам разворачивать ваши смарт-контрактами в блокчейне и взаимодействовать с ними, используя ранее реализованные обёртки.

/tests

Этот каталог содержит тестовые файлы для ваших смарт-контрактов. Тестирование контрактов непосредственно в сети TON не является наилучшим вариантом, так как развёртывание требует некоторого количества времени и может приводить к потере средств. Эта тестовая площадка позволяет выполнять несколько смарт-контрактов и даже отправлять сообщения между ними в "локальной сети". Тесты имеют критическое значение, чтобы до развёртывания смарт-контрактов в сеть убедиться, что они действуют ожидаемым образом.

/wrappers

Чтобы взаимодействовать с вашим смарт-контрактом извне блокчейна, вам нужно сериализовать и десериализовать отправленные ему сообщения. Обёртки — это классы, разработанные, чтобы «зеркалировать» реализацию вашего смарт-контракта, делая его функциональность простой в использовании.

Поток разработки

Почти любая разработка смарт-контрактов состоит из пяти простых шагов:

  1. Отредактируйте код смарт-контракта в папке /contracts и соберите его, запустив скрипт сборки:
npx blueprint build
  1. Обновите обёртку контракта в папке /wrappers, чтобы соответствовать изменениям в контракте.

  2. Обновите тесты в папке /tests, чтобы проверить корректность новой функциональности, и запустите тестовый скрипт:

npx blueprint test
  1. Повторите шаги 1-3, пока не достигнете желаемого результата.

  2. Обновите сценарий развёртывания в папке /scripts и запустите его с помощью этой команды:

npx blueprint run
подсказка

Все примеры в этом гайде отражают последовательность шагов 1-3 и приводят соответствующий код. А шаг 5, процесс развёртывания, освещён в последней части гайда: Развёртывание в сеть.

Кроме того, вы всегда можете сгенерировать такую же структуру для другого смарт-контракта (если, например, вы хотите создать несколько контрактов, взаимодействующих друг с другом), используя следующую команду:

npx blueprint create PascalCase # Don't forget to name the contract in PascalCase

Следующий шаг

Теперь всё готово: пришло время начать писать смарт-контракты. Мы начнём с базовых задач: хранения данных и get-методов.

Хранение данных и get-методы

Was this article useful?