可用守卫
Token2022 Payment 守卫
概述
Token2022 Payment 守卫允许通过向付款人收取来自配置铸币账户的一些代币来铸造。可以配置代币数量和目标地址。
如果付款人没有所需数量的代币来支付,铸造将失败。
Token2022 Payment 守卫的工作方式与 Token Payment 守卫相同——唯一的区别是铸币账户和代币账户应该来自 SPL Token-2022 程序。
守卫设置
Token Payment 守卫包含以下设置:
- Amount(数量):向付款人收取的代币数量。
- Mint(铸币账户):定义我们要用于支付的 SPL 代币的铸币账户地址。
- Destination Associated Token Address(目标关联代币地址,ATA):要将代币发送到的关联代币账户地址。我们可以使用 Token Mint 属性和应该接收这些代币的任何钱包地址来查找关联代币地址 PDA 来获取此地址。
使用 Token Payment 守卫设置 Candy Machine
请注意,在此示例中,我们使用当前身份作为目标钱包。
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 程序文档。
使用 NFT Burn 守卫铸造
您可以使用 mintArgs 参数传递 Token Payment 守卫的铸造设置,如下所示。
mintV2(umi, {
// ...
mintArgs: {
token2022Payment: some({
mint: tokenMint.publicKey,
destinationAta,
}),
},
});
API 参考:mintV2、TokenPaymentMintArgs
Route 指令
Token Payment 守卫不支持 route 指令。
