可用守卫
代币支付守卫
概述
代币支付 守卫通过从配置的铸币账户向付款人收取一些代币来允许铸造。代币数量和目标地址也可以配置。
如果付款人没有足够数量的代币来支付,铸造将失败。
守卫设置
代币支付守卫包含以下设置:
- 数量:向付款人收取的代币数量。
- 铸币:定义我们要支付的 SPL 代币的铸币账户地址。
- 目标关联代币地址 (ATA):将代币发送到的关联代币账户地址。我们可以使用 代币铸币 属性和任何应该接收这些代币的钱包地址来查找关联代币地址 PDA 获取此地址。
使用代币支付守卫设置 Core 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,
})[0],
}),
},
});
API 参考:create, TokenPayment
铸造设置
代币支付守卫包含以下铸造设置:
- 铸币:定义我们要支付的 SPL 代币的铸币账户地址。
- 目标关联代币地址 (ATA):将代币发送到的关联代币账户地址。
请注意,如果您计划在没有我们 SDK 帮助的情况下构建指令,您需要将这些铸造设置和更多内容作为指令参数和剩余账户的组合提供。有关更多详细信息,请参阅 Core Candy Guard 程序文档。
使用 NFT 销毁守卫铸造
您可以使用 mintArgs 参数传递代币支付守卫的铸造设置,如下所示。
mintV1(umi, {
// ...
mintArgs: {
tokenPayment: some({
mint: tokenMint.publicKey,
destinationAta,
}),
},
});
API 参考:mintV1, TokenPaymentMintArgs
路由指令
代币支付守卫不支持路由指令。
