Bubblegum

验证集合

每当在压缩NFT上设置集合时,集合的更新权限——或任何已批准的集合委托——可以验证和/或取消验证该cNFT上的集合。

从技术上讲,这将切换cNFT的集合对象上的已验证布尔值,让任何人知道集合的权限已批准此压缩NFT作为集合的一部分。

如果您不熟悉NFT相关的集合概念,它们是特殊的非压缩NFT,可用于将其他NFT分组在一起。因此,集合NFT的数据用于描述整个集合的名称和品牌。您可以在此处阅读更多关于Metaplex已验证集合的信息

请注意,可以使用此处记录的Mint to Collection V1指令直接将压缩NFT铸造到集合中。也就是说,如果您已经铸造了一个没有集合的cNFT,让我们看看如何验证、取消验证以及设置该cNFT上的集合。

验证集合

Bubblegum程序的Verify Collection指令可用于将压缩NFT的已验证布尔值设置为true。为使其工作,集合对象必须已在cNFT上设置——例如,在铸造时。

该指令接受以下参数:

  • 集合铸造:集合NFT的铸造账户。
  • 集合权限:作为签名者的集合NFT的更新权限——或已批准的集合委托。如果集合权限是委托权限,请注意程序同时支持新的统一元数据委托系统和旧的集合权限记录账户。只需将适当的PDA传递给集合权限记录PDA参数。

此外,由于此指令将最终替换Bubblegum树上的叶子,因此必须提供更多参数来验证压缩NFT的完整性。由于这些参数对所有更改叶子的指令是通用的,它们在以下FAQ中有记录。幸运的是,我们可以使用辅助方法,它将使用Metaplex DAS API自动为我们获取这些参数。

验证压缩NFT的集合

import {
getAssetWithProof,
verifyCollection,
} from '@metaplex-foundation/mpl-bubblegum'
const assetWithProof = await getAssetWithProof(umi, assetId, {truncateCanopy: true});
await verifyCollection(umi, {
...assetWithProof,
collectionMint,
collectionAuthority,
}).sendAndConfirm(umi)

设置并验证集合

如果压缩NFT上尚未设置集合对象,可以使用Set and Verify Collection指令同时设置并验证它。此指令接受与Verify Collection指令相同的参数,但如果树创建者或委托与集合权限不同,还需要将树创建者或委托属性作为签名者传递。

设置并验证压缩NFT的集合

import {
getAssetWithProof,
setAndVerifyCollection,
} from '@metaplex-foundation/mpl-bubblegum'
const assetWithProof = await getAssetWithProof(umi, assetId, {truncateCanopy: true});
await setAndVerifyCollection(umi, {
...assetWithProof,
treeCreatorOrDelegate,
collectionMint,
collectionAuthority,
}).sendAndConfirm(umi)

取消验证集合

集合的更新权限也可以使用Unverify Collection指令取消验证压缩NFT的集合。为了发送此指令,cNFT的集合对象预期已设置并验证。Unverify Collection指令所需的属性与Verify Collection指令所需的属性相同。

取消验证压缩NFT的集合

import {
getAssetWithProof,
unverifyCollection,
} from '@metaplex-foundation/mpl-bubblegum'
const assetWithProof = await getAssetWithProof(umi, assetId, {truncateCanopy: true});
await unverifyCollection(umi, {
...assetWithProof,
collectionMint,
collectionAuthority,
}).sendAndConfirm(umi)