PTB 实践
Practicing with Programmable Transaction Blocks
💡 本章目标
- 学习如何 构建与执行 PTB(可编程交易块)。
- 理解如何将多个 Move 函数组合到单个交易中。
- 使用网页版 ptb.wal.app 验证和可视化执行结果。
1. 准备工作
- 确认上一章部署的 Managed Token 包。
- 在 Owner Objects Explorer 中检查是否存在
TreasuryCap<...::MANAGED>
对象。 - 确保 Sui Extension 或 CLI 已连接至 Testnet 或 Devnet。
2. 在 Sui Extension 中执行
- 打开 Package Explorer。
- 选择
mint
函数 → 输入参数(treasury_cap
,amount
,recipient
)。 - 点击 Execute → 创建新的
Coin<MANAGED>
对象。
💡 这是在 VS Code 中直接调用 Move 函数的最简单方式。
3. 在 PTB Builder 中执行
打开 PTB Builder。
添加节点:
moveCall → managed::mint
。输入参数:
object(treasuryCapId)
pure.u64(amount)
pure.address(recipient)
点击 Run → 查看 Transaction Digest。
⚡️ PTB Builder 会自动将执行内容转换为 TypeScript 代码。 通过 Export 或 Copy 菜单导出,并可直接用于开发项目。
4. 使用网页版 PTB Builder
PTB Builder 也可在浏览器中使用: 👉 https://ptb.wal.app
主要功能
- 可视化构建与执行 PTB
- 通过输入
tx digest
可视化历史交易 - 导出 PTB 文件(.json)
- 将 PTB 转换为 TypeScript 代码
5. 导出 TypeScript 代码
PTB Builder 可生成以下结构的 TypeScript 代码:
ts
import { Transaction } from "@mysten/sui/transactions";
const tx = new Transaction();
const treasuryCap = tx.object("0x123...");
const amount = tx.pure.u64(100);
const recipient = tx.pure.address("0xabc...");
tx.moveCall({
target: "0xPACKAGE::managed::mint",
arguments: [treasuryCap, amount, recipient],
});
✅ 该代码可直接在 Sui SDK 环境中运行。
💡 你现在已经了解如何 构建、执行和转换 PTB。 接下来,你将学习如何创建一个 包含多个命令的单个交易,以实现更高级的用例。