Tolk
Новый высокоуровневый язык смарт-контрактов TON от TON Studio. Преемник FunC — синтаксически проще, типобезопаснее, ABI-совместим.
Синонимы: tolk lang, tolk language, язык tolk
Tolk — современный язык контрактов под TVM, разрабатываемый TON Studio как технический преемник FunC. Идея проста: дать FunC привычный синтаксис, систему типов уровня TypeScript и нормальные сообщения как сущности первого класса, не теряя контроля над байткодом.
Tolk против FunC
FunC — мощный, но крайне минималистичный язык: ручная сериализация cell, S-выражения, отсутствие пользовательских типов. Tolk сохраняет ту же модель исполнения, но добавляет:
- Алгебраические типы и структуры —
struct Transfer { amount: int; to: address; }вместо парсинга slice вручную. - Pattern matching на сообщениях — компилятор сам генерирует диспатч по opcode.
- Безопасные импорты и модули — без хрупких
#includeиз FunC. - Совместимость с FunC-библиотеками на уровне TVM-инструкций.
При этом сгенерированный байткод по плотности близок к FunC, в отличие от Tact, где абстракции дороже.
Tolk против Tact
Tact ставит на удобство и быстрый старт, Tolk — на производительность и контроль. Условно:
| Аспект | Tact | Tolk |
|---|---|---|
| Синтаксис | TypeScript-подобный | ML/Rust-подобный |
| Стоимость газа | выше базовой | близко к FunC |
| Аудитопригодность | средняя | высокая |
| Зрелость | стабильная | в активной разработке |
Когда выбирать
Tolk имеет смысл для команд, которые раньше писали на FunC и хотят сохранить близкий уровень контроля, но избавиться от ручной сериализации и хрупких include. Для критической DeFi-инфраструктуры Tolk быстро становится разумной альтернативой FunC.
Документация — docs.ton.org/v3/documentation/smart-contracts/tolk. Компилятор и Blueprint-интеграция доступны через npm.