PTB 実習
Hands-on Guide to Programmable Transaction Blocks
💡 この章の目的
- PTB(Programmable Transaction Block) の構築と実行を学ぶ。
- 複数の Move 関数を 1 つのトランザクションにまとめる方法を理解する。
- ptb.wal.app を使って PTB を視覚的に確認・実行する。
1. 準備
- 前章でデプロイした Managed Token パッケージを確認。
- Owner Objects Explorer で
TreasuryCap<...::MANAGED>
が存在することを確認。 - Sui Extension または CLI が Testnet に接続されていることを確認。
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. Web 版 PTB Builder の利用
ブラウザから直接使える PTB Builder も提供されています。 👉 https://ptb.wal.app
主な機能
- ドラッグ&ドロップで PTB を構築・実行
tx digest
を入力して既存のトランザクションを視覚化- PTB ファイル (.json) としてエクスポート
- TypeScript コード に変換
5. 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 の構築・実行・変換の方法を理解しました。 次は、複数のコマンドを含む単一トランザクション を作成して、より高度なユースケースを学びましょう。