Перейти до основного вмісту

Огляд

Для програмування смарт-контрактів на TON використовується мова високого рівня FunC.

FunC - це специфічна для домену C-подібна мова зі статичною типізацією. Ось простий приклад методу для переказу грошей, написаний на FunC:

() send_money(slice address, int amount) impure inline {
var msg = begin_cell()
.store_uint(0x10, 6) ;; nobounce
.store_slice(address)
.store_coins(amount)
.end_cell();

send_raw_message(msg, 64);
}

FunC програми компілюються в асемблерний код Fift, який генерує відповідний байт-код для [TON Virtual Machine] (/learn/tvm-instructions/tvm-overview).

Далі цей байт-код (фактично [дерево комірок] (/learn/overviews/cells), як і будь-які інші дані в TON Blockchain) може бути використаний для створення смарт-контрактів в блокчейні або може бути запущений на локальному екземплярі TVM.

Кулінарна книга FunC

Документація FunC

Компілятор

Компіляція з JS

Найзручніший і найшвидший спосіб почати розробляти і компілювати смарт-контракти - це використовувати фреймворк Blueprint. Детальніше читайте в розділі Blueprint.

npm create ton@latest

Компіляція з оригінальними двійковими файлами

Якщо ви хочете використовувати рідний TON-компілятор FunC локально, вам потрібно встановити двійкові файли на вашому комп'ютері. Двійкові файли компілятора FunC для Windows, MacOS (Intel/M1) та Ubuntu можна завантажити за посиланням:

інформація

У той же час, ви завжди можете створити двійкові файли з таких джерел, як:\ Вихідний код компілятора FunC (читайте як скомпілювати компілятор FunC з вихідних текстів).

Курс TON: FunC

Курс [TON Blockchain Course] (https://stepik.org/course/176754/) - це вичерпний посібник з розробки TON Blockchain.

Модуль 4 повністю присвячений мові FunC та розробці смарт-контрактів.

Перевірте курс TON Blockchain

CHN

RU

Навчальні посібники

наконечник стартера

Найкраще почати розробку з використанням FunC: ВСТУП

Інші матеріали люб'язно надані експертами спільноти:

Конкурси

Участь у конкурсах - чудовий спосіб вивчити FunC.

Ви також можете вивчити попередні конкурси з навчальною метою.

Конкурси Спадщина

Опис конкурсуЗавданняРішення
TSC #5 (грудень, 2023)Завдання
TSC #4 (вересень, 2023)ЗавданняРішення
TSC #3 (грудень, 2022)Завдання[Рішення] (https://github.com/nns2009/TON-FunC-contest-3)
TSC #2 (липень, 2022)Завдання[Рішення] (https://github.com/ton-blockchain/func-contest2-solutions)
TSC #1 (березень, 2022)Завдання[Рішення] (https://github.com/ton-blockchain/func-contest1-solutions)

Приклади смарт-контрактів

Стандартні базові смарт-контракти, такі як гаманці, електорат (управляє валідацією на TON), гаманці з декількома підписами і т.д., можуть бути орієнтиром при вивченні.

Журнал змін

Історія оновлень funC.