Appearance
欢迎开始
有两种开始使用Tact的方式:
- 使用模板
- 从头开始。
我们建议使用模板,因为它包含一个简单的合约,可以部署到TON区块链上,还提供了实现单元测试和用于合约部署的辅助函数的示例。
方式一:从模板开始
要开始,请使用模板项目。 它包含一个简单的合约,可以部署到 TON 区块链,以及实现单元测试和辅助功能用于合约部署的示例。
要从模板创建项目,只需从模板项目创建一个新存储库:https://github.com/tact-lang/tact-template
或者使用下面的命令工具,使用脚手架创建项目
1、确保已安装并可用 Node.js 的 LTS 版本。
要检查,请运行 node --version
: 它应该显示版本号为 18.0.0 或更高。
2、运行以下命令,快速创建一个 Tact 基础项目:
这将创建一个带有简单计数器合约的新项目:
- 使用 npm 创建项目:
shell
npm create ton -- simple-counter --type tact-counter --contractName SimpleCounter
- 使用 yarn 创建项目:
shell
yarn create ton simple-counter --type tact-counter --contractName SimpleCounter
- 使用 pnpm 创建项目
shell
pnpm create ton simple-counter --type tact-counter --contractName SimpleCounter
可以了,你已经成功创建了一个Tact编写的合约项目
您的第一个合约项目已经编写并编译完成!
请进入相关目录查看 — 使用命令 cd simple-counter/contracts
solidity
import "@stdlib/deploy";
message Add {
queryId: Int as uint64;
amount: Int as uint32;
}
contract SimpleCounter with Deployable {
id: Int as uint32;
counter: Int as uint32;
init(id: Int) {
self.id = id;
self.counter = 0;
}
receive(msg: Add) {
self.counter += msg.amount;
}
get fun counter(): Int {
return self.counter;
}
get fun id(): Int {
return self.id;
}
}
要重新编译或部署,请参考新创建项目根目录下 package.json 文件中的脚本部分,并查阅 Blueprint 的文档 — 这是我们用来创建和编译您的第一个简单计数器合约的工具。
实际上,Blueprint 能做的远不止这些:包括测试、定制等功能。
方式二:从零开始入门
Tact 是通过 npm 包管理器进行分发的,旨在安装到 TypeScript/JavaScript 项目中。
yarn add @tact-lang/compiler
然后,您需要在项目的根目录中创建一个 tact.config.json 文件。它应包含以下内容:
json
{
"projects": [
{
"name": "sample",
"path": "./sources/contract.tact",
"output": "./sources/output"
}
]
}
请添加一个示例合约到 ./sources/contract.tact 文件中。
solidity
import "@stdlib/deploy";
message Add {
amount: Int as uint32;
}
contract SampleTactContract with Deployable {
owner: Address;
counter: Int as uint32;
init(owner: Address) {
self.owner = owner;
self.counter = 0;
}
fun add(v: Int) {
// Check sender
let ctx: Context = context();
require(ctx.sender == self.owner, "Invalid sender");
// Update counter
self.counter = (self.counter + v);
}
receive(msg: Add) {
self.add(msg.amount);
}
receive("increment") {
self.add(1);
}
get fun counter(): Int {
return self.counter;
}
}
请将一个构建脚本添加到 package.json 文件中。
{
"scripts": {
"build": "tact --config ./tact.config.json"
}
}
现在您可以运行 yarn build 命令,并在 ./sources/output 文件夹中获得编译后的合约。