Хранение данных и get-методы
Резюме: На предыдущих этапах мы узнали, как использовать
Blueprint
и его структуру проекта.
Tact — это высокоуровневый язык программирования для блокчейна TON, ориентированный на эффективность и простоту. Он спроектирован так, чтобы быть простым в изучении и использовании, и в то же время хорошо подходить разработке смарт-контрактов. Tact — это статически типизированный язык с простым синтаксисом и мощной системой типов.
Подробнее с ним можно ознакомиться в документации Tact и на сайте Tact By Example.
Давайте создадим и модифицируем наш смарт-контракт по стандартным шагам, описанным в предыдущем разделе обзор Blueprint.
Шаг 1: редактирование кода смарт-контракта
В верхней части сгенерированного файла контракта hello_world.tact
вы можете увидеть определение сообщения:
message Add {
queryId: Int as uint64;
amount: Int as uint32;
}
Сообщение — это базовая структура для коммуникации между контрактами. Tact автоматически сериализирует и десериализирует сообщения в ячейки. Чтобы быть уверенными, что при изменении структуры сообщений опкоды сохранятся теми же, их можно добавлять так, как показано ниже:
message(0x7e8764ef) Add {
queryId: Int as uint64;
amount: Int as uint32;
}
Tact сериализует это следующим образом:
begin_cell()
.store_uint(0x7e8764ef, 32) ;; message opcode
.store_uint(query_id, 64)
.store_uint(amount, 32)
.end_cell()
Используя эту структуру, можно отправить контракту сообщение из FunC.