可用守卫
Token Payment 守卫
概述
Token Payment 守卫允许通过从配置的铸币账户向付款人收取一些代币来铸造。代币数量和目标地址也可以配置。
如果付款人没有所需数量的代币来支付,铸造将失败。
守卫设置
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: {
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 程序文档。
使用 Token Payment 守卫铸造
您可以使用 mintArgs 参数传递 Token Payment 守卫的铸造设置,如下所示。
mintV2(umi, {
// ...
mintArgs: {
tokenPayment: some({
mint: tokenMint.publicKey,
destinationAta,
}),
},
});
API 参考:mintV2、TokenPaymentMintArgs
Route 指令
Token Payment 守卫不支持 route 指令。
