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