可用守卫

铸造限制守卫

概述

Mint Limit 守卫允许指定每个钱包可以铸造的资产数量限制。

限制是按钱包、每个 candy machine 和每个标识符设置的——在设置中提供——以允许在同一个 Core Candy Machine 中进行多个铸造限制。

守卫设置

Mint Limit 守卫包含以下设置:

  • ID:此守卫的唯一标识符。不同的标识符将使用不同的计数器来跟踪给定钱包铸造了多少物品。这在使用守卫组时特别有用,因为我们可能希望每个组都有不同的铸造限制。
  • Limit:该标识符每个钱包允许的最大铸造数量。

使用 Mint Limit 守卫设置 Candy Machine

create(umi, {
// ...
guards: {
mintLimit: some({ id: 1, limit: 5 }),
},
});

API 参考:createMintLimit

铸造设置

Mint Limit 守卫包含以下铸造设置:

  • ID:此守卫的唯一标识符。

注意,如果您计划在没有我们 SDK 帮助的情况下构建指令,您需要将这些铸造设置和更多内容作为指令参数和剩余账户的组合提供。详情请参阅 Core Candy Guard 的程序文档

使用 Mint Limit 守卫铸造

您可以使用 mintArgs 参数传递 Mint Limit 守卫的铸造设置,如下所示。

mintV1(umi, {
// ...
mintArgs: {
mintLimit: some({ id: 1 }),
},
});

Route 指令

Mint Limit 守卫不支持 route 指令。

MintLimit 账户

当使用 MintLimit 守卫时,会为每个钱包、CandyMachine 和 id 组合创建一个 MintCounter 账户。出于验证目的,可以这样获取它:

import { safeFetchMintCounterFromSeeds } from "@metaplex-foundation/mpl-core-candy-machine";
import { umi } from "@metaplex-foundation/mpl-core-candy-machine";
const mintCounter = await safeFetchMintCounterFromSeeds(umi, {
id: 1, // 您在守卫配置中设置的 mintLimit id
user: umi.identity.publicKey,
candyMachine: candyMachine.publicKey,
// 或者使用您的 CM 地址 candyMachine: publicKey("Address")
candyGuard: candyMachine.mintAuthority,
// 或者使用您的 candyGuard 地址 candyGuard: publicKey("Address")
});
// 已铸造数量
console.log(mintCounter.count)