UNPKG

@aptos-labs/react

Version:

React library for Aptos applications.

1 lines 80.6 kB
{"version":3,"sources":["../src/AptosJSCoreProvider.tsx","../src/errors/base.ts","../src/errors/common.ts","../src/mutations/useSignAndSubmitTransaction.ts","../src/mutations/useSignTransaction.ts","../src/mutations/useSubmitTransaction.ts","../src/queries/useAccount.ts","../src/queries/useAccountCoins.ts","../src/utils/useOffsetLimitPagination.ts","../src/queries/useAccountCollections.ts","../src/queries/useAccountTokens.ts","../src/queries/useAccountTransactions.ts","../src/queries/useAddressFromName.ts","../src/queries/useAptBalance.ts","../src/queries/useBalance.ts","../src/queries/useClients.ts","../src/queries/useEstimatedGasPrice.ts","../src/queries/useFungibleAssetMetadata.ts","../src/queries/useLedgerInfo.ts","../src/queries/useNameFromAddress.ts","../src/queries/useNetwork.ts","../src/queries/useProcessorStatus.ts","../src/queries/useResources.ts","../src/queries/useResourceType.ts","../src/queries/useSimulateTransaction.ts","../src/utils/queries.ts","../src/queries/useTokenData.ts","../src/queries/useTransaction.ts","../src/queries/useViewModule.ts","../src/queries/useWaitForTransaction.ts","../src/queries/useUserTransactions.ts","../src/queries/useAccountTotalTransactions.ts","../src/connectors.tsx","../src/utils/convert.ts"],"sourcesContent":["// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AptosJSProClient, AptosJSProClientState } from \"@aptos-labs/js-pro\";\nimport React, {\n createContext,\n PropsWithChildren,\n useContext,\n useMemo,\n} from \"react\";\nimport { useStore } from \"zustand\";\nimport { ClientContextMissingError } from \"./errors/index.js\";\n\ninterface AptosJSCoreProviderProps extends PropsWithChildren {\n core: AptosJSProClient;\n}\n\nconst AptosCoreContext = createContext<AptosJSProClient | null>(null);\n\nfunction AptosJSCoreProvider({ children, core }: AptosJSCoreProviderProps) {\n return (\n <AptosCoreContext.Provider value={core}>\n {children}\n </AptosCoreContext.Provider>\n );\n}\n\n/**\n * This function is used to access the AptosJSProClient instance. It is recommened to use\n * `useAptosCore` instead.\n *\n * @deprecated This hook is NOT reactive. It will not rerender when the client state changes.\n * @returns The AptosJSProClient instance.\n */\nfunction useAptosClient() {\n const client = useContext(AptosCoreContext);\n\n if (client === null) throw new ClientContextMissingError();\n\n return client;\n}\n\n/**\n * Returns the AptosJSProClient instance and the client state. This hook is reactive and will\n * rerender when the client state changes.\n *\n * @example\n * ```tsx\n * const { account, client } = useAptosCore();\n *\n * client.setAccount({\n * address: '0x123...',\n * publicKey: '0x123...',\n * });\n *\n * return <div>{account?.address}</div>;\n * ```\n *\n * @returns The AptosJSProClient instance and the client state.\n */\nexport function useAptosCore(): AptosJSProClientState & {\n client: AptosJSProClient;\n} {\n const client = useAptosClient();\n const state = useStore(client.store);\n return useMemo(() => ({ ...state, client }), [client, state]);\n}\n\n/**\n * Return the selected state from the AptosJSProClient client state. This hook is reactive and\n * will only rerender when the selected state changes.\n *\n * @example\n * ```tsx\n * const account = useAptosStateWithSelector((state) => state.account);\n * return <div>{account?.address}</div>;\n * ```\n *\n * @param selector The selector function to select the state.\n * @returns The selected state.\n */\nexport function useAptosStateWithSelector<U>(\n selector: (state: AptosJSProClientState) => U\n) {\n const client = useAptosClient();\n return useStore(client.store, selector);\n}\n\nexport default AptosJSCoreProvider;\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AptosBaseError } from \"@aptos-labs/js-pro\";\n\nexport class AptosReactBaseError extends AptosBaseError {\n override docsBaseUrl = \"https://js-pro.aptos.dev/react\";\n\n override name = \"AptosReactError\";\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\nimport { AptosReactBaseError } from \"./base.js\";\n\nexport class ClientContextMissingError extends AptosReactBaseError {\n override name = \"ClientContextMissingError\";\n\n constructor() {\n super(\n \"AptosJSCoreProvider must be defined in order to use useAptosClient\",\n {\n longMessage:\n \"Make sure to wrap your application with AptosJSCoreProvider to use Aptos React hooks.\",\n }\n );\n }\n}\n\nexport class MissingRequiredArgumentError extends AptosReactBaseError {\n override name = \"MissingRequiredArgumentError\";\n\n constructor(argName: string) {\n super(`${argName} is required`, {\n longMessage: `This argument ${argName} is required to be provided for this hook.`,\n });\n }\n}\n\nexport class SimulationArgumentError extends AptosReactBaseError {\n override name = \"SimulationArgumentError\";\n\n constructor(message?: string) {\n super(message ?? \"Invalid arguments passed to simulation\");\n }\n}\n\nexport class AccountNotFoundError extends AptosReactBaseError {\n override name = \"AccountNotFoundError\";\n\n constructor() {\n super(\"No account found.\");\n }\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n SignAndSubmitTransactionParameters,\n SignAndSubmitTransactionResult,\n} from \"@aptos-labs/js-pro\";\nimport { UseMutationOptions } from \"../types/queries.js\";\nimport { DefaultError, useMutation } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\n\nexport type UseSignAndSubmitTransactionMutationParameters = UseMutationOptions<\n SignAndSubmitTransactionResult,\n DefaultError,\n SignAndSubmitTransactionParameters\n>;\n\nexport function useSignAndSubmitTransaction({\n ...mutationOptions\n}: UseSignAndSubmitTransactionMutationParameters = {}) {\n const core = useAptosCore();\n\n const mutation = useMutation({\n mutationFn: (params: SignAndSubmitTransactionParameters) =>\n core.client.signAndSubmitTransaction(params),\n ...mutationOptions,\n });\n\n return {\n ...mutation,\n hash: mutation.data?.hash,\n signAndSubmitTransaction: mutation.mutate,\n signAndSubmitTransactionAsync: mutation.mutateAsync,\n };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n SignTransactionParameters,\n SignTransactionResult,\n} from \"@aptos-labs/js-pro\";\nimport {\n DefaultError,\n useMutation,\n UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\n\nexport type UseSignTransactionMutationParameters = UseMutationOptions<\n SignTransactionResult,\n DefaultError,\n SignTransactionParameters\n>;\n\nexport function useSignTransaction({\n ...mutationOptions\n}: UseSignTransactionMutationParameters = {}) {\n const core = useAptosCore();\n\n const mutation = useMutation({\n mutationFn: (params: SignTransactionParameters) =>\n core.client.signTransaction(params),\n ...mutationOptions,\n });\n\n return {\n ...mutation,\n signTransaction: mutation.mutate,\n signTransactionAsync: mutation.mutateAsync,\n };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n SubmitTransactionParameters,\n SubmitTransactionResult,\n} from \"@aptos-labs/js-pro\";\nimport {\n DefaultError,\n useMutation,\n UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\n\nexport type UseSubmitTransactionMutationParameters = UseMutationOptions<\n SubmitTransactionResult,\n DefaultError,\n SubmitTransactionParameters\n>;\n\nexport function useSubmitTransaction({\n ...mutationOptions\n}: UseSubmitTransactionMutationParameters = {}) {\n const core = useAptosCore();\n\n const mutation = useMutation({\n mutationFn: (params: SubmitTransactionParameters) =>\n core.client.submitTransaction(params),\n ...mutationOptions,\n });\n\n return {\n ...mutation,\n submitTransaction: mutation.mutate,\n submitTransactionAsync: mutation.mutateAsync,\n };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { AccountInfo } from \"@aptos-labs/js-pro\";\n/**\n * Returns the current account from the `AptosJSProClient`. This typically is the account that is connected to the application.\n * If no account is connected, it will return `undefined`.\n *\n * @returns The current account from the `AptosJSProClient`.\n */\nexport function useAccount(): AccountInfo | undefined {\n const core = useAptosCore();\n return core.account;\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { FetchAccountCoinsParameters } from \"@aptos-labs/js-pro\";\nimport { AccountAddress, AccountAddressInput } from \"@aptos-labs/ts-sdk\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseOffsetLimitPaginationOptions } from \"../types/queries.js\";\nimport { FetchAccountCoinsResult } from \"@aptos-labs/js-pro\";\nimport useOffsetLimitPagination from \"../utils/useOffsetLimitPagination.js\";\nimport { AccountNotFoundError } from \"../errors/common.js\";\n\nexport const getUseAccountCoinsQueryKey = (params: {\n network: string;\n address?: AccountAddressInput;\n where?: FetchAccountCoinsParameters[\"where\"];\n orderBy?: FetchAccountCoinsParameters[\"orderBy\"];\n}) => [\n \"account-coins\",\n params.network,\n params.address ? AccountAddress.from(params.address).toString() : undefined,\n params.where,\n params.orderBy,\n];\n\nexport type UseAccountCoinsQueryParameters =\n Partial<FetchAccountCoinsParameters> &\n UseOffsetLimitPaginationOptions<FetchAccountCoinsResult>;\n\nexport function useAccountCoins({\n network,\n address,\n where,\n orderBy,\n ...queryOptions\n}: UseAccountCoinsQueryParameters = {}) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const activeAddress = address ?? core.account?.address;\n\n const enabled = Boolean(activeAddress && (queryOptions.enabled ?? true));\n\n return useOffsetLimitPagination({\n queryKey: getUseAccountCoinsQueryKey({\n network: activeNetwork.network,\n address: activeAddress,\n where,\n orderBy,\n }),\n queryFn: ({ limit, pageParam }) => {\n if (!activeAddress) throw new AccountNotFoundError();\n return core.client.fetchAccountCoins({\n network: network,\n address: activeAddress,\n limit,\n offset: pageParam,\n where,\n orderBy,\n });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n type DefaultError,\n InfiniteData,\n type QueryFunctionContext,\n QueryKey,\n type UseInfiniteQueryOptions,\n useInfiniteQuery,\n} from \"@tanstack/react-query\";\nimport {\n PaginationCursors,\n UseOffsetLimitPageParam,\n} from \"../types/queries.js\";\n\ninterface UseOffsetLimitPaginationArgs {\n limit?: number;\n offset?: number;\n}\n\n/**\n * A hook for paginating data using an offset and limit. Using this hook enforces\n * opionated pagination behavior. Best used with `createPaginatedQuery` function.\n * For more control over pagination, use `useInfiniteQuery` directly.\n *\n * This hook takes care of the following:\n * - Setting the `initialPageParam` to the `offset` value.\n * - Setting the `getNextPageParam` to the `nextCursor` value.\n * - Setting the `getPreviousPageParam` to the `prevCursor` value.\n *\n * Example:\n * ```ts\n * const request = useOffsetLimitPagination({\n * limit: 3,\n * offset: 0,\n * queryFn: ({ limit, pageParam }) => {\n * return createPaginatedQuery({\n * limit,\n * offset: pageParam as number | undefined,\n * queryFn: () => {\n * // Example data: [ 1, 2, 3 ]\n * const { data } = await fetch('https://example.com/api', {\n * params: { limit, offset: pageParam },\n * });\n *\n * return {\n * data,\n * // If there are more results, then there is no next page.\n * hasNextPage: data.length > 0,\n * // If the offset is greater than 0, then there is a previous page.\n * hasPrevPage: offset > 0,\n * };\n * },\n * });\n * },\n * });\n * ```\n * This example above will paginate the data from the API using the `offset` and\n * `limit` parameters.\n *\n * @param options - The options to use when fetching the data.\n * @returns The paginated data.\n */\nfunction useOffsetLimitPagination<\n TQueryFnData extends PaginationCursors,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n>({\n limit,\n offset = 0,\n queryFn,\n ...options\n}: UseOffsetLimitPaginationArgs &\n Omit<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n UseOffsetLimitPageParam\n >,\n \"queryFn\" | \"initialPageParam\" | \"getNextPageParam\" | \"getPreviousPageParam\"\n > & {\n queryFn: (\n context: QueryFunctionContext<TQueryKey, UseOffsetLimitPageParam> & {\n limit?: number;\n }\n ) => TQueryFnData | Promise<TQueryFnData>;\n }) {\n return useInfiniteQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n UseOffsetLimitPageParam\n >({\n getNextPageParam: (lastPage) => lastPage.nextCursor,\n getPreviousPageParam: (firstPage) => firstPage.prevCursor,\n initialPageParam: offset,\n queryFn: (context) => queryFn({ ...context, limit }),\n ...options,\n });\n}\n\nexport default useOffsetLimitPagination;\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseOffsetLimitPaginationOptions } from \"../types/queries.js\";\nimport { AccountAddress } from \"@aptos-labs/ts-sdk\";\nimport { AccountAddressInput } from \"@aptos-labs/ts-sdk\";\nimport {\n FetchAccountCollectionsParameters,\n FetchAccountCollectionsResult,\n} from \"@aptos-labs/js-pro\";\nimport useOffsetLimitPagination from \"../utils/useOffsetLimitPagination.js\";\nimport { AccountNotFoundError } from \"../errors/common.js\";\n\nexport const getUseAccountCollectionsQueryKey = (params: {\n network: string;\n address?: AccountAddressInput;\n where?: FetchAccountCollectionsParameters[\"where\"];\n orderBy?: FetchAccountCollectionsParameters[\"orderBy\"];\n}) => [\n \"account-collections\",\n params.network,\n params.address ? AccountAddress.from(params.address).toString() : undefined,\n params.where,\n params.orderBy,\n];\n\nexport type UseAccountCollectionsQueryParameters =\n Partial<FetchAccountCollectionsParameters> &\n UseOffsetLimitPaginationOptions<FetchAccountCollectionsResult>;\n\nexport function useAccountCollections({\n network,\n address,\n where,\n orderBy,\n ...queryOptions\n}: UseAccountCollectionsQueryParameters = {}) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const activeAddress = address ?? core.account?.address;\n\n const enabled = Boolean(activeAddress && (queryOptions.enabled ?? true));\n\n return useOffsetLimitPagination({\n queryKey: getUseAccountCollectionsQueryKey({\n network: activeNetwork.network,\n address: activeAddress,\n where,\n orderBy,\n }),\n queryFn: ({ limit, pageParam }) => {\n if (!activeAddress) throw new AccountNotFoundError();\n return core.client.fetchAccountCollections({\n network,\n address: activeAddress,\n limit,\n offset: pageParam,\n where,\n orderBy,\n });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UseOffsetLimitPaginationOptions } from \"../types/queries.js\";\nimport { AccountAddressInput } from \"@aptos-labs/ts-sdk\";\nimport { AccountAddress } from \"@aptos-labs/ts-sdk\";\nimport {\n FetchAccountTokensParameters,\n FetchAccountTokensResult,\n} from \"@aptos-labs/js-pro\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport useOffsetLimitPagination from \"../utils/useOffsetLimitPagination.js\";\nimport { AccountNotFoundError } from \"../errors/common.js\";\n\nexport const getUseAccountTokensQueryKey = (params: {\n network: string;\n address?: AccountAddressInput;\n orderBy?: FetchAccountTokensParameters[\"orderBy\"];\n where?: FetchAccountTokensParameters[\"where\"];\n}) => [\n \"account-tokens\",\n params.network,\n params.address ? AccountAddress.from(params.address).toString() : undefined,\n params.orderBy,\n params.where,\n];\n\nexport type UseAccountTokensQueryParameters =\n Partial<FetchAccountTokensParameters> &\n UseOffsetLimitPaginationOptions<FetchAccountTokensResult>;\n\nexport function useAccountTokens({\n network,\n address,\n orderBy,\n where,\n ...queryOptions\n}: UseAccountTokensQueryParameters = {}) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const activeAddress = address ?? core.account?.address;\n\n const enabled = Boolean(activeAddress && (queryOptions.enabled ?? true));\n\n return useOffsetLimitPagination({\n queryKey: getUseAccountTokensQueryKey({\n network: activeNetwork.network,\n address: activeAddress,\n orderBy,\n where,\n }),\n queryFn: ({ limit, pageParam }) => {\n if (!activeAddress) throw new AccountNotFoundError();\n return core.client.fetchAccountTokens({\n network: network,\n address: activeAddress,\n limit,\n offset: pageParam,\n orderBy,\n where,\n });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseOffsetLimitPaginationOptions } from \"../types/queries.js\";\nimport { AccountAddressInput } from \"@aptos-labs/ts-sdk\";\nimport { AccountAddress } from \"@aptos-labs/ts-sdk\";\nimport useOffsetLimitPagination from \"../utils/useOffsetLimitPagination.js\";\nimport { AccountNotFoundError } from \"../errors/common.js\";\nimport {\n FetchAccountTransactionsParameters,\n FetchAccountTransactionsResult,\n} from \"@aptos-labs/js-pro\";\n\nexport const getUseAccountTransactionsQueryKey = (params: {\n network: string;\n address?: AccountAddressInput;\n where?: FetchAccountTransactionsParameters[\"where\"];\n orderBy?: FetchAccountTransactionsParameters[\"orderBy\"];\n fungibleAssetActivitiesOrderBy?: FetchAccountTransactionsParameters[\"fungibleAssetActivitiesOrderBy\"];\n fungibleAssetActivitiesWhere?: FetchAccountTransactionsParameters[\"fungibleAssetActivitiesWhere\"];\n tokenActivitiesWhere?: FetchAccountTransactionsParameters[\"tokenActivitiesWhere\"];\n tokenActivitiesOrderBy?: FetchAccountTransactionsParameters[\"tokenActivitiesOrderBy\"];\n}) => [\n \"account-transactions\",\n params.network,\n params.address ? AccountAddress.from(params.address).toString() : undefined,\n params.where,\n params.orderBy,\n params.fungibleAssetActivitiesOrderBy,\n params.fungibleAssetActivitiesWhere,\n params.tokenActivitiesWhere,\n params.tokenActivitiesOrderBy,\n];\n\nexport type UseAccountTransactionsQueryParameters =\n Partial<FetchAccountTransactionsParameters> &\n UseOffsetLimitPaginationOptions<FetchAccountTransactionsResult>;\n\nexport function useAccountTransactions({\n network,\n address,\n where,\n orderBy,\n fungibleAssetActivitiesOrderBy,\n fungibleAssetActivitiesWhere,\n tokenActivitiesWhere,\n tokenActivitiesOrderBy,\n ...queryOptions\n}: UseAccountTransactionsQueryParameters = {}) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const activeAddress = address ?? core.account?.address;\n\n const enabled = Boolean(activeAddress && (queryOptions.enabled ?? true));\n\n return useOffsetLimitPagination({\n queryKey: getUseAccountTransactionsQueryKey({\n network: activeNetwork.network,\n address: activeAddress,\n }),\n queryFn: ({ limit, pageParam }) => {\n if (!activeAddress) throw new AccountNotFoundError();\n return core.client.fetchAccountTransactions({\n network,\n address: activeAddress,\n limit,\n offset: pageParam,\n where,\n orderBy,\n fungibleAssetActivitiesOrderBy,\n fungibleAssetActivitiesWhere,\n tokenActivitiesWhere,\n tokenActivitiesOrderBy,\n });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport {\n FetchAddressFromNameParameters,\n FetchAddressFromNameResult,\n} from \"@aptos-labs/js-pro\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport { MissingRequiredArgumentError } from \"../errors/common.js\";\n\nexport const getUseAddressFromNameQueryKey = (params: {\n network: string;\n name?: string;\n}) => [\"address-from-name\", params.network, params.name];\n\nexport type UseAddressFromNameQueryParameters =\n Partial<FetchAddressFromNameParameters> &\n UseQueryOptions<FetchAddressFromNameResult>;\n\nexport function useAddressFromName({\n network,\n name,\n ...queryOptions\n}: UseAddressFromNameQueryParameters) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(name && (queryOptions.enabled ?? true));\n\n return useQuery({\n queryKey: getUseAddressFromNameQueryKey({\n network: activeNetwork.network,\n name: name?.toString(),\n }),\n queryFn: () => {\n if (!name) throw new MissingRequiredArgumentError(\"name\");\n return core.client.fetchAddressFromName({ network, name }) ?? null;\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n FetchAptBalanceParameters,\n FetchBalanceResult,\n} from \"@aptos-labs/js-pro\";\nimport { AccountAddress, AccountAddressInput } from \"@aptos-labs/ts-sdk\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport { MissingRequiredArgumentError } from \"../errors/index.js\";\n\nexport const getUseAptBalanceQueryKey = (params: {\n address?: AccountAddressInput;\n network: string;\n}) => [\n \"apt-balance\",\n params.address ? AccountAddress.from(params.address).toString() : undefined,\n params.network,\n];\n\nexport type UseAptBalanceParameters = Partial<FetchAptBalanceParameters> &\n UseQueryOptions<FetchBalanceResult>;\n\nexport function useAptBalance({\n address,\n network,\n ...queryOptions\n}: UseAptBalanceParameters = {}) {\n const core = useAptosCore();\n\n const activeAddress = address ?? core.account?.address;\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(activeAddress && (queryOptions.enabled ?? true));\n\n return useQuery({\n queryKey: getUseAptBalanceQueryKey({\n address: activeAddress,\n network: activeNetwork.network,\n }),\n queryFn: () => {\n if (!activeAddress) throw new MissingRequiredArgumentError(\"address\");\n return core.client.fetchAptBalance({\n address: activeAddress,\n network,\n });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { FetchBalanceParameters, FetchBalanceResult } from \"@aptos-labs/js-pro\";\nimport { AccountAddress, AccountAddressInput } from \"@aptos-labs/ts-sdk\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport { MissingRequiredArgumentError } from \"../errors/index.js\";\n\nexport const getUseBalanceQueryKey = (params: {\n address?: AccountAddressInput;\n network: string;\n}) => [\n \"fa-balance\",\n params.address ? AccountAddress.from(params.address) : undefined,\n params.network,\n];\n\nexport type UseBalanceParameters = Partial<FetchBalanceParameters> &\n UseQueryOptions<FetchBalanceResult>;\n\nexport function useBalance({\n address,\n network,\n asset = \"0x1::aptos_coin::AptosCoin\",\n ...queryOptions\n}: UseBalanceParameters = {}) {\n const core = useAptosCore();\n\n const activeAddress = address ?? core.account?.address;\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(activeAddress && (queryOptions.enabled ?? true));\n\n return useQuery({\n queryKey: getUseBalanceQueryKey({\n address: activeAddress,\n network: activeNetwork.network,\n }),\n queryFn: () => {\n if (!activeAddress) throw new MissingRequiredArgumentError(\"address\");\n return core.client.fetchBalance({\n address: activeAddress,\n asset,\n network,\n });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { WithNetwork } from \"../../../js-pro/dist/types/parameters.js\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\n\nexport type UseClientsParameters = WithNetwork<object>;\n\nexport function useClients({ network }: UseClientsParameters = {}) {\n const core = useAptosCore();\n\n const clients = core.client.getClients({ network });\n\n return { ...clients, client: core.client };\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n FetchEstimatedGasPriceParameters,\n FetchEstimatedGasPriceResult,\n} from \"@aptos-labs/js-pro\";\n\nexport const getUseEstimatedGasPriceQueryKey = (params: {\n network: string;\n}) => [\"estimated-gas-price\", params.network];\n\nexport type UseEstimatedGasPriceParameters = FetchEstimatedGasPriceParameters &\n UseQueryOptions<FetchEstimatedGasPriceResult>;\n\nexport function useEstimatedGasPrice({\n network,\n ...queryOptions\n}: UseEstimatedGasPriceParameters = {}) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n return useQuery({\n queryKey: getUseEstimatedGasPriceQueryKey({\n network: activeNetwork.network,\n }),\n queryFn: () => core.client.fetchEstimatedGasPrice({ network }),\n ...queryOptions,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n FetchFungibleAssetMetadataParameters,\n FetchFungibleAssetMetadataResult,\n} from \"@aptos-labs/js-pro\";\nimport { MissingRequiredArgumentError } from \"../errors/common.js\";\n\nexport const getUseFungibleAssetMetadataQueryKey = (params: {\n network: string;\n asset?: string;\n}) => [\"fungible-asset-metadata\", params.network, params.asset];\n\nexport type UseFungibleAssetMetadataQueryParameters =\n Partial<FetchFungibleAssetMetadataParameters> &\n UseQueryOptions<FetchFungibleAssetMetadataResult>;\n\nexport function useFungibleAssetMetadata({\n network,\n asset,\n ...queryOptions\n}: UseFungibleAssetMetadataQueryParameters = {}) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(asset && (queryOptions.enabled ?? true));\n\n return useQuery({\n queryKey: getUseFungibleAssetMetadataQueryKey({\n network: activeNetwork.network,\n asset,\n }),\n queryFn: () => {\n if (!asset) throw new MissingRequiredArgumentError(\"asset\");\n return core.client.fetchFungibleAssetMetadata({\n network: network,\n asset,\n });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n FetchLedgerInfoParameters,\n FetchLedgerInfoResult,\n} from \"@aptos-labs/js-pro\";\n\nexport const getUseLedgerInfoQueryKey = (params: { network: string }) => [\n \"ledger-info\",\n params.network,\n];\n\nexport type UseLedgerInfoParameters = FetchLedgerInfoParameters &\n UseQueryOptions<FetchLedgerInfoResult>;\n\nexport function useLedgerInfo({\n network,\n ...queryOptions\n}: UseLedgerInfoParameters = {}) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n return useQuery({\n queryKey: getUseLedgerInfoQueryKey({ network: activeNetwork.network }),\n queryFn: () => core.client.fetchLedgerInfo({ network }),\n ...queryOptions,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport {\n FetchNameFromAddressParameters,\n FetchNameFromAddressResult,\n} from \"@aptos-labs/js-pro\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport { AccountAddress, AccountAddressInput } from \"@aptos-labs/ts-sdk\";\nimport { MissingRequiredArgumentError } from \"../errors/common.js\";\n\nexport const getUseNameFromAddressQueryKey = (params: {\n network: string;\n address?: AccountAddressInput;\n}) => [\n \"name-from-address\",\n params.network,\n params.address && AccountAddress.from(params.address).toString(),\n];\n\nexport type UseNameFromAddressQueryParameters =\n Partial<FetchNameFromAddressParameters> &\n UseQueryOptions<FetchNameFromAddressResult>;\n\nexport function useNameFromAddress({\n network,\n address,\n ...queryOptions\n}: UseNameFromAddressQueryParameters) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(address && (queryOptions.enabled ?? true));\n\n return useQuery({\n queryKey: getUseNameFromAddressQueryKey({\n network: activeNetwork.network,\n address,\n }),\n queryFn: () => {\n if (!address) throw new MissingRequiredArgumentError(\"address\");\n return core.client.fetchNameFromAddress({ network, address }) ?? null;\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\n\nexport function useNetwork() {\n const core = useAptosCore();\n return core.network;\n}\n\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n FetchProcessorStatusParameters,\n FetchProcessorStatusResult,\n} from \"@aptos-labs/js-pro\";\n\nexport const getUseProcessorStatusQueryKey = (params: { network: string }) => [\n \"processor-status\",\n params.network,\n];\n\nexport type UseProcessorStatusParameters = FetchProcessorStatusParameters &\n UseQueryOptions<FetchProcessorStatusResult>;\n\nexport function useProcessorStatus({\n network,\n processor,\n ...queryOptions\n}: UseProcessorStatusParameters) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n return useQuery({\n queryKey: getUseProcessorStatusQueryKey({ network: activeNetwork.network }),\n queryFn: () => core.client.fetchProcessorStatus({ network, processor }),\n ...queryOptions,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport {\n FetchResourcesParameters,\n FetchResourcesResult,\n} from \"@aptos-labs/js-pro\";\nimport {\n AccountAddress,\n AccountAddressInput,\n LedgerVersionArg,\n} from \"@aptos-labs/ts-sdk\";\nimport { UseQueryOptions } from \"../types/queries.js\";\n\nexport const getUseResourcesQueryKey = (params: {\n network: string;\n address: AccountAddressInput;\n options?: LedgerVersionArg;\n}) => [\n \"resources\",\n params.network,\n AccountAddress.from(params.address).toString(),\n params.options,\n];\n\nexport type UseResourcesQueryParameters = FetchResourcesParameters &\n UseQueryOptions<FetchResourcesResult>;\n\nexport function useResources({\n network,\n accountAddress,\n options,\n ...queryOptions\n}: UseResourcesQueryParameters) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n return useQuery({\n queryKey: getUseResourcesQueryKey({\n network: activeNetwork.network,\n address: accountAddress,\n options,\n }),\n queryFn: () =>\n core.client.fetchResources({ network, accountAddress, options }),\n ...queryOptions,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n ExtractResourceData,\n FetchResourceTypeParameters,\n FetchResourceTypeResult,\n GetResourceTypeString,\n} from \"@aptos-labs/js-pro\";\nimport { AccountAddress, AccountAddressInput } from \"@aptos-labs/ts-sdk\";\n\nexport const getUseResourceTypeQueryKey = (params: {\n network: string;\n accountAddress: AccountAddressInput;\n resourceType: string;\n}) => [\n \"resource-type\",\n params.network,\n AccountAddress.from(params.accountAddress).toString(),\n params.resourceType,\n];\n\nexport type UseResourceTypeQueryParameters<T extends string | object> =\n FetchResourceTypeParameters<T extends object ? string : T & string> &\n UseQueryOptions<\n FetchResourceTypeResult<ExtractResourceData<T>, GetResourceTypeString<T>>\n >;\n\nexport function useResourceType<T extends string | object>({\n network,\n accountAddress,\n resourceType,\n ...queryOptions\n}: UseResourceTypeQueryParameters<T>) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(resourceType && (queryOptions.enabled ?? true));\n\n return useQuery({\n queryKey: getUseResourceTypeQueryKey({\n network: activeNetwork.network,\n accountAddress,\n resourceType,\n }),\n queryFn: () =>\n core.client.fetchResourceType<T>({\n network: network,\n accountAddress,\n resourceType,\n }),\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n SimulateTransactionResult,\n SimulateTransactionParameters,\n} from \"@aptos-labs/js-pro\";\nimport {\n MissingRequiredArgumentError,\n SimulationArgumentError,\n} from \"../errors/index.js\";\nimport {\n AccountAddress,\n AccountPublicKey,\n AnyRawTransaction,\n AuthenticationKey,\n InputGenerateTransactionOptions,\n InputGenerateTransactionPayloadData,\n InputSimulateTransactionOptions,\n PublicKey,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n hashFunctionQueryKey,\n queryKeyHashFnCompat,\n} from \"../utils/queries.js\";\n\nexport const getUseSimulateTransactionQueryKey = (params: {\n network: string;\n options?: InputSimulateTransactionOptions;\n feePayerPublicKey?: PublicKey;\n signerPublicKey?: PublicKey;\n secondarySignersPublicKeys?: (PublicKey | undefined)[];\n transactionOptions?: InputGenerateTransactionOptions;\n withFeePayer?: boolean;\n transaction?: AnyRawTransaction;\n data?:\n | InputGenerateTransactionPayloadData\n | ((\n sender: AccountAddress\n ) => Promise<InputGenerateTransactionPayloadData>);\n sender?: AccountAddress;\n}) => [\n \"simulate-transaction\",\n params.network,\n params.options,\n params.feePayerPublicKey,\n params.signerPublicKey,\n params.secondarySignersPublicKeys,\n [\n typeof params.data === \"function\"\n ? hashFunctionQueryKey(params.data)\n : params.data,\n params.transactionOptions,\n params.withFeePayer,\n params.sender,\n ],\n [params.transaction],\n];\n\nexport type UseSimulateTransactionQueryParameters = Partial<\n SimulateTransactionParameters & {\n data?:\n | InputGenerateTransactionPayloadData\n | ((\n sender: AccountAddress\n ) => Promise<InputGenerateTransactionPayloadData>);\n sender?: AccountAddress;\n transactionOptions?: InputGenerateTransactionOptions;\n withFeePayer?: boolean;\n }\n> &\n UseQueryOptions<SimulateTransactionResult>;\n\nexport function useSimulateTransaction({\n network,\n data,\n transaction,\n options,\n feePayerPublicKey,\n signerPublicKey,\n transactionOptions,\n withFeePayer,\n sender,\n ...queryOptions\n}: UseSimulateTransactionQueryParameters) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(\n (transaction !== undefined || data !== undefined) &&\n (queryOptions.enabled ?? true)\n );\n\n let secondarySignersPublicKeys: (PublicKey | undefined)[] | undefined;\n if (\"secondarySignersPublicKeys\" in queryOptions) {\n secondarySignersPublicKeys = queryOptions.secondarySignersPublicKeys;\n }\n\n return useQuery({\n queryKey: getUseSimulateTransactionQueryKey({\n network: activeNetwork.network,\n transaction,\n options,\n feePayerPublicKey,\n signerPublicKey,\n secondarySignersPublicKeys,\n data,\n sender,\n transactionOptions,\n withFeePayer,\n }),\n queryFn: async () => {\n if (data === undefined && transaction === undefined) {\n throw new MissingRequiredArgumentError(\"data or transaction\");\n }\n\n if (transaction && data) {\n throw new SimulationArgumentError(\n \"Cannot provide both `data` and `transaction` into the useSimulateTransaction hook.\"\n );\n }\n\n let activeTransaction: AnyRawTransaction;\n if (transaction) {\n activeTransaction = transaction;\n } else if (data) {\n const activeAddress =\n sender !== undefined\n ? sender\n : signerPublicKey\n ? AuthenticationKey.fromPublicKey({\n publicKey: signerPublicKey as AccountPublicKey,\n }).derivedAddress()\n : core.account?.address;\n\n if (!activeAddress) {\n throw new SimulationArgumentError(\n \"`sender` must be available when providing `data` to the useSimulateTransaction hook.\"\n );\n }\n\n activeTransaction = await core.client.buildTransaction({\n data:\n typeof data === \"function\"\n ? await data(AccountAddress.from(activeAddress))\n : data,\n options: transactionOptions,\n sender: AccountAddress.from(activeAddress),\n withFeePayer,\n });\n } else {\n throw new SimulationArgumentError(\n \"`data` or `transaction` must be provided to the useSimulateTransaction hook.\"\n );\n }\n\n if (secondarySignersPublicKeys) {\n return core.client.simulateTransaction({\n network,\n transaction: activeTransaction,\n options,\n feePayerPublicKey,\n signerPublicKey,\n secondarySignersPublicKeys,\n });\n }\n\n return core.client.simulateTransaction({\n network,\n transaction: activeTransaction,\n options,\n feePayerPublicKey,\n signerPublicKey,\n });\n },\n queryKeyHashFn: queryKeyHashFnCompat,\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { QueryKey } from \"@tanstack/react-query\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport function hashFunctionQueryKey(queryKey: Function): string {\n return queryKey.toString();\n}\n\nexport function queryKeyHashFnCompat(queryKey: QueryKey): string {\n return JSON.stringify(queryKey, (_, value) => {\n if (typeof value === \"bigint\") {\n return { __type: \"bigint\", value: value.toString() };\n }\n return value;\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n FetchTokenDataParameters,\n FetchTokenDataResult,\n} from \"@aptos-labs/js-pro\";\n\nexport const getUseTokenDataQueryKey = (params: {\n network: string;\n address: string;\n}) => [\"token-data\", params.network, params.address];\n\nexport type UseTokenDataQueryParameters = FetchTokenDataParameters &\n UseQueryOptions<FetchTokenDataResult>;\n\nexport function useTokenData({\n network,\n address,\n ...queryOptions\n}: UseTokenDataQueryParameters) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n return useQuery({\n queryKey: getUseTokenDataQueryKey({\n network: activeNetwork.network,\n address,\n }),\n queryFn: () => core.client.fetchTokenData({ network, address }),\n ...queryOptions,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { queryOptions, useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport {\n FetchTransactionParameters,\n FetchTransactionResult,\n} from \"@aptos-labs/js-pro\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport { AnyNumber, Hex, HexInput } from \"@aptos-labs/ts-sdk\";\nimport { MissingRequiredArgumentError } from \"../errors/common.js\";\n\nexport const getUseTransactionQueryKey = (params: {\n network: string;\n ledgerVersion?: AnyNumber;\n transactionHash?: HexInput;\n}) => [\n \"transaction\",\n params.network,\n params.ledgerVersion?.toString(),\n params.transactionHash\n ? Hex.fromHexInput(params.transactionHash).toString()\n : undefined,\n];\n\nexport type UseTransactionQueryParameters = FetchTransactionParameters &\n UseQueryOptions<FetchTransactionResult>;\n\nexport function useTransaction({\n network,\n ...params\n}: UseTransactionQueryParameters) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n let ledgerVersion: AnyNumber | undefined;\n let transactionHash: HexInput | undefined;\n\n if (\"ledgerVersion\" in params) {\n ledgerVersion = params.ledgerVersion;\n }\n\n if (\"transactionHash\" in params) {\n transactionHash = params.transactionHash;\n }\n\n return useQuery({\n queryKey: getUseTransactionQueryKey({\n network: activeNetwork.network,\n ledgerVersion,\n transactionHash,\n }),\n queryFn: () => {\n if (ledgerVersion) {\n return core.client.fetchTransaction({ network, ledgerVersion });\n }\n\n if (transactionHash) {\n return core.client.fetchTransaction({ network, transactionHash });\n }\n\n throw new MissingRequiredArgumentError(\n \"ledgerVersion or transactionHash\"\n );\n },\n ...queryOptions,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n FetchViewModuleParameters,\n FetchViewModuleResult,\n} from \"@aptos-labs/js-pro\";\nimport {\n MoveValue,\n InputViewFunctionData,\n LedgerVersionArg,\n} from \"@aptos-labs/ts-sdk\";\n\nexport const getUseViewModuleQueryKey = (params: {\n network: string;\n payload: InputViewFunctionData;\n options?: LedgerVersionArg;\n}) => [\"view-module\", params.network, params.payload, params.options];\n\nexport type UseViewModuleParameters<T extends Array<MoveValue>> =\n FetchViewModuleParameters & UseQueryOptions<FetchViewModuleResult<T>>;\n\nexport function useViewModule<T extends Array<MoveValue>>({\n network,\n payload,\n options,\n ...queryOptions\n}: UseViewModuleParameters<T>) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n return useQuery({\n queryKey: getUseViewModuleQueryKey({\n network: activeNetwork.network,\n payload,\n options,\n }),\n queryFn: () =>\n core.client.fetchViewModule<T>({ network, payload, options }),\n ...queryOptions,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseQueryOptions } from \"../types/queries.js\";\nimport {\n WaitForTransactionParameters,\n WaitForTransactionResult,\n} from \"@aptos-labs/js-pro\";\nimport { HexInput } from \"@aptos-labs/ts-sdk\";\nimport { MissingRequiredArgumentError } from \"../errors/index.js\";\n\nexport const getUseWaitForTransactionQueryKey = (params: {\n network: string;\n hash?: HexInput;\n}) => [\"wait-for-transaction\", params.network, params.hash];\n\nexport type UseWaitForTransactionQueryParameters =\n Partial<WaitForTransactionParameters> &\n UseQueryOptions<WaitForTransactionResult>;\n\nexport function useWaitForTransaction({\n network,\n hash,\n ...queryOptions\n}: UseWaitForTransactionQueryParameters) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(hash && (queryOptions.enabled ?? true));\n\n return useQuery({\n queryKey: getUseWaitForTransactionQueryKey({\n network: activeNetwork.network,\n hash,\n }),\n queryFn: () => {\n if (!hash) throw new MissingRequiredArgumentError(\"transactionHash\");\n return core.client.waitForTransaction({ network: network, hash });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { UseOffsetLimitPaginationOptions } from \"../types/queries.js\";\nimport useOffsetLimitPagination from \"../utils/useOffsetLimitPagination.js\";\nimport { FetchUserTransactionsResult } from \"@aptos-labs/js-pro\";\nimport { FetchUserTransactionsParameters } from \"@aptos-labs/js-pro\";\n\nexport const getUserTransactionsQueryKey = (params: {\n network: string;\n where?: FetchUserTransactionsParameters[\"where\"];\n orderBy?: FetchUserTransactionsParameters[\"orderBy\"];\n}) => [\"user-transactions\", params.network, params.where, params.orderBy];\n\nexport type UseUserTransactionsQueryParameters =\n Partial<FetchUserTransactionsParameters> &\n UseOffsetLimitPaginationOptions<FetchUserTransactionsResult>;\n\nexport function useUserTransactions({\n network,\n where,\n orderBy,\n ...queryOptions\n}: UseUserTransactionsQueryParameters = {}) {\n const core = useAptosCore();\n\n const activeNetwork = network ?? core.network;\n\n return useOffsetLimitPagination({\n queryKey: getUserTransactionsQueryKey({\n network: activeNetwork.network,\n where,\n orderBy,\n }),\n queryFn: ({ limit, pageParam }) => {\n return core.client.fetchUserTransactions({\n network,\n limit,\n offset: pageParam,\n where,\n orderBy,\n });\n },\n ...queryOptions,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AccountAddress, AccountAddressInput } from \"@aptos-labs/ts-sdk\";\nimport { UseQueryOptions } from \"../types/queries\";\nimport {\n FetchAccountTotalTransactionsParameters,\n FetchAccountTotalTransactionsResult,\n} from \"@aptos-labs/js-pro\";\nimport { useAptosCore } from \"../AptosJSCoreProvider.js\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { MissingRequiredArgumentError } from \"../errors/common\";\n\nexport const getUseAccountTotalTransactionsQueryKey = (params: {\n address?: AccountAddressInput;\n network: string;\n}) => [\n \"account-total-transactions\",\n params.address ? AccountAddress.from(params.address).toString() : undefined,\n params.network,\n];\n\nexport type UseAccountTotalTransactionsParameters =\n Partial<FetchAccountTotalTransactionsParameters> &\n UseQueryOptions<FetchAccountTotalTransactionsResult>;\n\nexport function useAccountTotalTransactions({\n address,\n network,\n ...queryOptions\n}: UseAccountTotalTransactionsParameters = {}) {\n const core = useAptosCore();\n\n const activeAddress = address ?? core.account?.address;\n\n const activeNetwork = network ?? core.network;\n\n const enabled = Boolean(activeAddress && (queryOptions.enabled ?? true));\n\n return useQuery({\n queryKey: getUseAccountTotalTransactionsQueryKey({\n address: activeAddress,\n network: activeNetwork.network,\n }),\n queryFn: () => {\n if (!activeAddress) throw new MissingRequiredArgumentError(\"address\");\n return core.client.fetchAccountTotalTransactions({\n address: activeAddress,\n network,\n });\n },\n ...queryOptions,\n enabled,\n });\n}\n","// Copyright © Aptos\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable react-hooks/exhaustive-deps */\n\nimpo