UNPKG

@macalinao/grill

Version:

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

44 lines 1.6 kB
import type { Account, Address, Decoder } from "@solana/kit"; import type { UseQueryResult } from "@tanstack/react-query"; import type { UseAccountOptions } from "./use-account.js"; export type DecodedAccountResult<TData extends object> = UseQueryResult<Account<TData> | null> & { address: Address | null | undefined; }; /** * Input for a decoded account hook. */ export type UseDecodedAccountInput = { address: Address | null | undefined; } & UseAccountOptions; /** * A hook for fetching and decoding accounts. */ export type UseDecodedAccountHook<TData extends object> = (args: UseDecodedAccountInput) => DecodedAccountResult<TData>; /** * Generic helper to create a hook for fetching and decoding accounts * @param decoder - The decoder to use for the account data * @returns A hook function that fetches and decodes the account * * @example * ```tsx * import { createDecodedAccountHook } from "@macalinao/grill"; * import { getPoolDecoder } from "@macalinao/clients-meteora-damm-v2"; * * const usePool = createDecodedAccountHook(getPoolDecoder()); * * function PoolDisplay({ address }: { address: Address }) { * // Basic usage * const { data: pool } = usePool({ address }); * * // With real-time updates * const { data: livePool } = usePool({ * address, * subscribeToUpdates: true, * }); * * return <div>{pool?.data.liquidity.toString()}</div>; * } * ``` */ export declare function createDecodedAccountHook<TData extends object>(decoder: Decoder<TData>): UseDecodedAccountHook<TData>; //# sourceMappingURL=create-decoded-account-hook.d.ts.map