Thực hành PTB
Hướng dẫn thực hành với Programmable Transaction Blocks
💡 Mục tiêu chương này
- Học cách xây dựng và thực thi PTB (Programmable Transaction Block).
- Hiểu cách kết hợp nhiều hàm Move trong cùng một giao dịch.
- Trực quan hóa và chạy PTB bằng ptb.wal.app.
1. Chuẩn bị
- Đảm bảo rằng gói Managed Token ở chương trước đã được triển khai.
- Mở Owner Objects Explorer và xác nhận rằng bạn có
TreasuryCap<...::MANAGED>
. - Kết nối Sui Extension hoặc CLI với mạng Testnet hoặc Devnet.
2. Chạy trong Sui Extension
- Mở Package Explorer.
- Chọn hàm
mint
→ nhập tham số (treasury_cap
,amount
,recipient
). - Nhấn Execute → Một đối tượng
Coin<MANAGED>
mới được tạo.
💡 Đây là cách đơn giản nhất để gọi hàm Move trực tiếp từ VS Code.
3. Chạy trong PTB Builder
Mở PTB Builder.
Thêm node:
moveCall → managed::mint
.Nhập các tham số:
object(treasuryCapId)
pure.u64(amount)
pure.address(recipient)
Nhấn Run → xem Transaction Digest.
⚡️ PTB Builder có thể tự động tạo mã TypeScript cho giao dịch của bạn. Dùng chức năng Export hoặc Copy để tích hợp vào dự án.
4. Sử dụng PTB Builder trên web
Bạn có thể sử dụng PTB Builder trực tiếp trong trình duyệt: 👉 https://ptb.wal.app
Chức năng chính
- Xây dựng và thực thi PTB bằng giao diện trực quan.
- Trực quan hóa giao dịch từ tx digest.
- Xuất PTB thành file
.json
. - Chuyển đổi PTB sang mã TypeScript.
5. Xuất mã TypeScript
PTB Builder tạo mã TypeScript với cấu trúc như sau:
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],
});
✅ Mã này có thể chạy trực tiếp bằng Sui SDK.
💡 Giờ đây bạn đã hiểu cách xây dựng, thực thi và chuyển đổi PTB. Tiếp theo, bạn sẽ học cách tạo một giao dịch duy nhất chứa nhiều lệnh cho các tình huống nâng cao.