可用守卫
Allocation 守卫
概述
Allocation 守卫允许指定每个守卫组可以铸造的 NFT 数量限制。
该限制按标识符设置——在设置中提供——以允许在同一 Candy Machine 内进行多个分配。
守卫设置
Allocation 守卫包含以下设置:
- ID:此守卫的唯一标识符。不同的标识符将使用不同的计数器来跟踪给定钱包铸造了多少项目。这在使用守卫组时特别有用,因为我们可能希望每个组都有不同的铸造限制。
- Limit(限制):守卫组允许的最大铸造数量。
使用 Allocation 守卫设置 Candy Machine
create(umi, {
// ...
guards: {
allocation: some({ id: 1, limit: 5 }),
},
});
API 参考:create、Allocation
铸造设置
Allocation 守卫包含以下铸造设置:
- ID:此守卫的唯一标识符。
请注意,如果您计划在没有我们 SDK 帮助的情况下构建指令,您需要提供这些铸造设置以及更多作为指令参数和剩余账户的组合。有关更多详细信息,请参阅 Candy Guard 程序文档。
使用 Allocation 守卫铸造
您可以使用 mintArgs 参数传递 Allocation 守卫的铸造设置,如下所示。
mintV2(umi, {
// ...
mintArgs: {
allocation: some({ id: 1 }),
},
});
Route 指令
Allocation 守卫的 route 指令支持以下功能。
初始化 Allocation Tracker
使用 Allocation 守卫时,我们必须在铸造开始之前初始化 Allocation Tracker 账户。这将创建一个从守卫设置的 id 属性派生的 PDA 账户。
Allocation Tracker PDA 账户将跟踪守卫组中的铸造数量,一旦达到限制,它将阻止该组内的任何铸造。
初始化此 Allocation Tracker 账户时,我们必须向守卫的 route 指令提供以下参数:
- ID:守卫设置的 Allocation 的 id。
- Candy Guard Authority:Candy Guard 账户的权限作为签名者。
初始化 Allocation Tracker PDA
为默认守卫初始化 Allocation Tracker PDA:
route(umi, {
// ...
guard: 'allocation',
routeArgs: {
id: 1,
candyGuardAuthority: umi.identity,
},
})
当 Allocation 守卫添加到特定组时,您需要添加 group 名称:
route(umi, {
// ...
guard: 'allocation',
routeArgs: {
id: 1,
candyGuardAuthority: umi.identity,
},
group: some('GROUPA'),
})
API 参考:route、AllocationRouteArgs
