功能
初始化Inscriptions
initialize指令为您创建inscription账户,数据将存储在其中。有三种类型的初始化:
initializeFromMint- 用于附加到NFT的Inscriptions - 您可能需要这个initialize- 用于作为存储提供商的InscriptionsinitializeAssociatedInscription- 额外数据账户
初始化完成后,您可以写入数据到inscriptions。
初始化时,您可以选择用于编号的shard。确保使用随机分片以最小化锁。在分片阅读更多内容。
initializeFromMint
这些inscriptions可以像NFT一样交易。如果您不确定,您可能需要使用这个。
如果您想要可交易的inscription,您应该使用这种inscription。它是从您的NFT派生的。使用此函数时,您必须是NFT的更新权限持有者。
可以这样完成:
初始化Mint Inscription
import {
findInscriptionShardPda,
initializeFromMint,
} from '@metaplex-foundation/mpl-inscription'
const inscriptionShardAccount = await findInscriptionShardPda(umi, {
shardNumber: 0, //0到31之间的随机数
})
await initializeFromMint(umi, {
mintAccount: mint.publicKey,
inscriptionShardAccount,
}).sendAndConfirm(umi)
Initialize
这种inscriptions不可交易。我们仅推荐用于高级用例,如游戏。
在写入数据之前必须初始化Inscription。可以这样完成:
初始化Inscription
import {
findInscriptionMetadataPda,
findInscriptionShardPda,
initialize,
} from '@metaplex-foundation/mpl-inscription'
const inscriptionAccount = generateSigner(umi)
const inscriptionMetadataAccount = await findInscriptionMetadataPda(umi, {
inscriptionAccount: inscriptionAccount.publicKey,
})
const inscriptionShardAccount = await findInscriptionShardPda(umi, {
shardNumber: 0, //0到31之间的随机数
})
await initialize(umi, {
inscriptionAccount,
inscriptionShardAccount,
}).sendAndConfirm(umi)
initializeAssociatedInscription
一个Inscription账户可以有多个关联Inscription账户。它们基于associationTag派生。例如,标签可以是文件的数据类型,如image/png。
关联inscriptions的指针存储在inscriptionMetadata账户的associatedInscriptions字段中的数组中。
要初始化新的关联Inscription,您可以使用以下函数:
初始化关联Inscription
import {
findInscriptionMetadataPda,
initializeAssociatedInscription,
} from '@metaplex-foundation/mpl-inscription'
const inscriptionMetadataAccount = await findInscriptionMetadataPda(umi, {
inscriptionAccount: inscriptionAccount.publicKey,
})
await initializeAssociatedInscription(umi, {
inscriptionMetadataAccount,
associationTag: 'image/png',
}).sendAndConfirm(umi)
