利用可能なガード

Token2022 Payment Guard

概要

Token2022 Paymentガードは、設定されたミントアカウントから支払者にトークンを請求することでミントを許可します。トークンの数と宛先アドレスの両方も設定できます。

支払者が支払いに必要な量のトークンを持っていない場合、ミントは失敗します。

Token2022 PaymentガードはToken Paymentガードと同じように動作します—唯一の違いは、ミントとトークンアカウントがSPL Token-2022 programからのものであることです。

ガード設定

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: {
token2022Payment: some({
amount: 300,
mint: tokenMint.publicKey,
destinationAta,
}),
},
});

APIリファレンス: create, TokenPayment

ミント設定

Token Paymentガードには以下のミント設定が含まれます:

  • Mint: 支払いに使用したいSPLトークンを定義するミントアカウントのアドレス。
  • Destination Associated Token Address (ATA): トークンを送信する関連トークンアカウントのアドレス。

注意:SDK の助けなしで命令を構築する予定の場合、これらのミント設定およびそれ以外を命令引数と残りのアカウントの組み合わせとして提供する必要があります。詳細については、Candy GuardのプログラムドキュメントAtionを参照してください。

Token2022 Paymentガードでミントする

次のようにmintArgs引数を使用してToken Paymentガードのミント設定を渡すことができます。

mintV2(umi, {
// ...
mintArgs: {
token2022Payment: some({
mint: tokenMint.publicKey,
destinationAta,
}),
},
});

APIリファレンス: mintV2, TokenPaymentMintArgs

ルート命令

Token Paymentガードはルート命令をサポートしません。