UNPKG

@macalinao/grill

Version:

Modern Solana development kit for React applications with automatic account batching, caching, and transaction notifications

34 lines 1.49 kB
import { findMetadataPda, getMetadataDecoder, TOKEN_METADATA_PROGRAM_ADDRESS, } from "@macalinao/clients-token-metadata"; import { createDecodedAccountHook } from "./create-decoded-account-hook.js"; import { createDecodedAccountsHook } from "./create-decoded-accounts-hook.js"; import { createPdaHook } from "./create-pda-hook.js"; import { createPdasHook } from "./create-pdas-hook.js"; export const useTokenMetadataPda = createPdaHook(async ({ mint }) => { const pda = await findMetadataPda({ programId: TOKEN_METADATA_PROGRAM_ADDRESS, mint, }); return pda; }, "tokenMetadataPda"); export const useTokenMetadataPdas = createPdasHook(async ({ mint }) => { const pda = await findMetadataPda({ programId: TOKEN_METADATA_PROGRAM_ADDRESS, mint, }); return pda; }, "tokenMetadataPda"); export const useMplTokenMetadataAccount = createDecodedAccountHook(getMetadataDecoder()); export const useMplTokenMetadataAccounts = createDecodedAccountsHook(getMetadataDecoder()); export function useTokenMetadataAccount({ mint, }) { const pda = useTokenMetadataPda(mint ? { mint } : null); return useMplTokenMetadataAccount({ address: pda, }); } export function useTokenMetadataAccounts({ mints, }) { const pdas = useTokenMetadataPdas(mints ? mints.map((mint) => ({ mint })) : mints); return useMplTokenMetadataAccounts({ addresses: pdas ?? [], }); } //# sourceMappingURL=use-token-metadata-account.js.map