利用可能なガード
Token Payment Guard
概要
Token Paymentガードは、設定されたミントアカウントから支払者にトークンを請求することでミントを許可します。トークンの数と宛先アドレスの両方も設定できます。
支払者が支払いに必要な量のトークンを持っていない場合、ミントは失敗します。
ガード設定
Token Paymentガードには以下の設定が含まれます:
- Amount: 支払者に請求するトークンの数。
- Mint: 支払いに使用したいSPLトークンを定義するミントアカウントのアドレス。
- Destination Associated Token Address (ATA): トークンを送信する関連トークンアカウントのアドレス。このアドレスは、Token Mint属性とこれらのトークンを受け取るウォレットのアドレスを使用してAssociated Token Address PDAを見つけることで取得できます。
Token Paymentガードを使用してCandy Machineを設定する
この例では、現在のIDを宛先ウォレットとして使用しています。
import { findAssociatedTokenPda } from "@metaplex-foundation/mpl-toolbox";
create(umi, {
// ...
guards: {
tokenPayment: some({
amount: 300,
mint: tokenMint.publicKey,
destinationAta: findAssociatedTokenPda(umi, {
mint: tokenMint.publicKey,
owner: umi.identity.publicKey,
}),
}),
},
});
APIリファレンス: create, TokenPayment
ミント設定
Token Paymentガードには以下のミント設定が含まれます:
- Mint: 支払いに使用したいSPLトークンを定義するミントアカウントのアドレス。
- Destination Associated Token Address (ATA): トークンを送信する関連トークンアカウントのアドレス。
注意:SDK の助けなしで命令を構築する予定の場合、これらのミント設定およびそれ以外を命令引数と残りのアカウントの組み合わせとして提供する必要があります。詳細については、Candy GuardのプログラムドキュメントAtionを参照してください。
Token Paymentガードでミントする
次のようにmintArgs引数を使用してToken Paymentガードのミント設定を渡すことができます。
mintV2(umi, {
// ...
mintArgs: {
tokenPayment: some({
mint: tokenMint.publicKey,
destinationAta,
}),
},
});
APIリファレンス: mintV2, TokenPaymentMintArgs
ルート命令
Token Paymentガードはルート命令をサポートしません。
