功能
获取Inscription数据
一旦Inscription账户被初始化,它们的元数据可以从链上再次读取。一旦数据被写入,它也可以被读取。要获取inscriptions,您还必须根据inscription类型使用不同的函数。
获取inscription元数据
两种inscription类型都使用元数据账户。此账户包含例如inscriptionRank、associatedInscriptions、updateAuthorities等更多内容。元数据可以这样获取:
获取Inscription元数据
import { safeFetchInscriptionMetadataFromSeeds } from '@metaplex-foundation/mpl-inscription'
const inscriptionMetadataAccount = await safeFetchInscriptionMetadataFromSeeds(
umi,
{
inscriptionAccount: inscriptionAccount.publicKey,
}
)
console.log(inscriptionMetadataAccount)
获取mint inscription
要获取反序列化的mint inscription,您可以像这样使用safeFetchMintInscriptionFromSeeds:
获取Mint Inscription
import { fetchInscription, safeFetchMintInscriptionFromSeeds, safeFetchInscriptionMetadataFromSeeds } from '@metaplex-foundation/mpl-inscription'
const mintInscription = await safeFetchMintInscriptionFromSeeds(umi, {
mint,
})
const inscriptionMetadataAccount = await safeFetchInscriptionMetadataFromSeeds(
umi,
{
inscriptionAccount: inscriptionAccount.publicKey,
}
)
const associatedInscriptionAccount = findAssociatedInscriptionPda(umi, {
associated_tag: inscriptionMetadataAccount.associatedInscriptions[0].tag,
inscriptionMetadataAccount.publicKey,
})
const imageData = await fetchInscription(umi, associatedInscriptionAccount[0])
获取数据inscription
要读取未附加到NFT的Inscription数据,使用不同的函数:
获取Inscription
import { fetchInscription } from '@metaplex-foundation/mpl-inscription'
const inscription = fetchInscription(umi, inscriptionAddress)
获取当前Inscription计数
可以这样获取当前的总inscription计数:
获取当前Inscription计数
import {
fetchAllInscriptionShard,
findInscriptionShardPda,
} from '@metaplex-foundation/mpl-inscription'
const shardKeys: Pda[]
for (let shardNumber = 0; shardNumber < 32; shardNumber += 1) {
shardKeys.push(findInscriptionShardPda(umi, { shardNumber }))
}
const shards = await fetchAllInscriptionShard(umi, shardKeys)
let numInscriptions = 0
shards.forEach((shard) => {
const rank = 32 * Number(shard.count) + shard.shardNumber
numInscriptions = Math.max(numInscriptions, rank)
})
console.log(`目前有${numInscriptions}个Metaplex Inscriptions`)
