概述
高级语言 FunC 用于在 TON 上编程智能合约。
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 虚拟机 字节码。
进一步地,这个字节码(实际上是 cell树,就像 TON 区块链中的任何其他数据一样)可以用于在区块链中创建智能合约,或者可以在 TVM 的本地实例上运行。
FunC 语言指南
FunC 文档
编译器
用 JS 编译
开始开发和编译智能合约最方便快捷的方式是使用 Blueprint 框架。更多信息请参阅 Blueprint 部分。
npm create ton@latest
使用原始二进制文件编译
如果您想在本地使用 原生 TON 编译器 FunC,您需要在机器上设置二进制文件。可以从以下位置下载 FunC 编译器二进制文件,适用于 Windows、MacOS(Intel/M1)和 Ubuntu:
信息
同时,您始终可以从源代码构建二进制文件,如: FunC 编译器源代码(阅读如何从源代码编译 FunC 编译器)。
TON 课程:FunC
TON 区块链课程 是关于 TON 区块链开发的全面指南。
第 4 模块完整覆盖了 FunC 语言和智能合约开发。
查看 TON 区块链课程
EN
RU
教程
新手提示
开始使用 FunC 进行开发的最佳起点:入门介绍
社区专家提供的其他材料:
- 🚩 挑战 1:简单 NFT 部署
- 🚩 挑战 2:聊天机器人合约
- 🚩 挑战 3:Jetton 自动售卖机
- 🚩 挑战 4:彩票/抽奖
- 🚩 挑战 5:5 分钟内创建与合约交互的 UI
- 🚩 挑战 6:分析 Getgems 市场上的 NFT 销售
<!---->
- Func & Blueprint 由 @MarcoDaTr0p0je 提供
- Learn FunC in Y Minutes 由 @romanovichim 提供
- TON Hello World:编写您的第一个智能合约的逐步指南
- TON Hello World:测试您的第一个智能合约的逐步指南
- 10 FunC 课程 由 @romanovichim 提供,使用 blueprint
- 10 FunC 课程(俄文版) 由 @romanovichim 提供,使用 blueprint
- FunC 测验 由 Vadim提供—适合自我检查。这将需要 10-15 分钟。问题主要关于 FunС,以及一些关于 TON 的常规问题
- FunC 测验(俄文版) 由 Vadim 提供 —— 俄文版 FunC 测验
竞赛
参加 竞赛 是学习 FunC 的绝佳方式。
您也可以学习以前的学习课程。
竞赛传承
竞赛描述 | 任务 | 解决方案 |
---|---|---|
TSC #5(2023年12月) | Tasks | |
TSC #4(2023年9月) | Tasks | Solutions |
TSC #3(2022年12月) | Tasks | Solutions |
TSC #2(2022年7月) | Tasks | Solutions |
TSC #1(2022年3月) | Tasks | Solutions |
智能合约示例
标准的基础智能合约,如钱包、选举器(管理 TON 的验证)、多签钱包等,可作为学习时的参考。