@macalinao/grill
Version:
Modern Solana development kit for React applications with automatic account batching, caching, and transaction notifications
34 lines • 1.49 kB
JavaScript
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