機能
Inscriptionデータの取得
Inscriptionアカウントが初期化されると、そのメタデータを再びチェーンから読み取ることができます。データが書き込まれると、それも読み取ることができます。inscriptionを取得するには、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)
ミントinscriptionの取得
逆シリアル化されたミントinscriptionを取得するには、safeFetchMintInscriptionFromSeedsを以下のように使用できます:
ミント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 Inscriptionが存在します`)
