跳到主要内容

概述

高级语言 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 区块链课程

教程

新手提示

开始使用 FunC 进行开发的最佳起点:入门介绍

社区专家提供的其他材料:

/romanovichim/TONQuest6)

竞赛

参加 竞赛 是学习 FunC 的绝佳方式。

您还可以研究以前的比赛,以学习目的。

竞赛传承

竞赛描述任务解决方案
TSC #5(2023年12月)任务
TSC #4(2023年9月)任务解决方案
TSC #3(2022年12月)任务解决方案
TSC #2(2022年7月)任务解决方案
TSC #1(2022年3月)任务解决方案

智能合约示例

标准的基础智能合约,如钱包、选举器(管理 TON 的验证)、多签钱包等,可作为学习时的参考。

更新日志

FunC 更新历史