Skip to content

部署

Tact Deployer 是一个小型库,它与 TON Verifier 集成,允许您使用喜爱的钱包安全地部署您的合约,无需手动管理密钥或部署合约。Tact Deployer 还会自动验证您的合约源代码,您可以确保您的编译器没有被篡改。

要求

您的合约必须具有来自 @stdlib/deploy 包的 Deployer 特性,才能使用 Tact Deployer。

安装

要在您的项目中添加 Tact Deployer,只需使用 yarn:

bash
yarn add @tact-lang/deployer

如何使用

当您使用 Tact 构建智能合约时,它会生成一个包含所有必要信息的包文件(*.pkg)。要部署您的智能合约,您需要创建一个 deployer 实例,将您的包文件传递给它,并为您的合约提供初始数据。

javascript
import * as fs from 'fs';
import * as path from 'path';
import { Address, contractAddress } from "ton";
import { SampleTactContract } from "./output/sample_SampleTactContract";
import { prepareTactDeployment } from "@tact-lang/deployer";

// 参数
let testnet = true;                                 // 测试网或主网的标志
let packageName = 'sample_SampleTactContract.pkg';  // 要部署的包的名称
let outputPath = path.resolve(__dirname, 'output'); // 输出目录的路径
let owner = Address.parse('<put_address_here>');    // 我们的示例合约有一个拥有者
let init = await SampleTactContract.init(owner);    // 为我们的合约创建初始数据

// 计算
let address = contractAddress(0, init);     // 计算合约地址。必须与验证器中的地址匹配
let data = init.data.toBoc();               // 创建初始数据
let pkg = fs.readFileSync(                  // 读取包文件
    path.resolve(outputPath, packageName)
);

// 准备部署
let link = await prepareTactDeployment({ pkg, data, testnet });

// 展示部署链接和合约地址
console.log('Address: ' + address.toString({ testOnly: testnet }));
console.log('Deploy link: ' + link);

按照此链接操作后,您将能够部署并验证您的智能合约。