@liberfi.io/client 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts","../src/DexClientContext.ts","../src/hooks/useDexClient.ts","../src/hooks/useFinalStretchTokensQuery.ts","../src/hooks/useMigratedTokensQuery.ts","../src/hooks/useNewTokensQuery.ts","../src/hooks/usePresignedUploadUrlQuery.ts","../src/hooks/useSearchTokensQuery.ts","../src/hooks/useSendTxMutation.ts","../src/hooks/useStockTokensQuery.ts","../src/hooks/useSwapRouteQuery.ts","../src/hooks/useTokenCandlesQuery.ts","../src/hooks/useTokenHoldersQuery.ts","../src/hooks/useTokenMarketDataQuery.ts","../src/hooks/useTokenQuery.ts","../src/hooks/useTokenSecurityQuery.ts","../src/hooks/useTokensQuery.ts","../src/hooks/useTokenStatsQuery.ts","../src/hooks/useTokenTradeActivitiesQuery.ts","../src/hooks/useTrendingTokensQuery.ts","../src/hooks/useTxSuccessQuery.ts","../src/hooks/useWalletPortfoliosQuery.ts","../src/hooks/useWalletTradeActivitiesQuery.ts","../src/utils.ts","../src/client.ts","../src/DexClientProvider.tsx"],"names":["version_default","DexClientContext","createContext","useDexClient","context","useContext","finalStretchTokensQueryKey","params","fetchFinalStretchTokens","client","chain","options","useFinalStretchTokensQuery","useQuery","migratedTokensQueryKey","fetchMigratedTokens","useMigratedTokensQuery","newTokensQueryKey","fetchNewTokens","useNewTokensQuery","fetchPresignedUploadUrl","usePresignedUploadUrlQuery","searchTokensQueryKey","fetchSearchTokens","useSearchTokensQuery","sendTx","useSendTxMutation","useMutation","stockTokensQueryKey","fetchStockTokens","useStockTokensQuery","swapRouteQueryKey","fetchSwapRoute","useSwapRouteQuery","tokenCandlesQueryKey","fetchTokenCandles","address","resolution","useTokenCandlesQuery","tokenHoldersQueryKey","fetchTokenHolders","useTokenHoldersQuery","tokenMarketDataQueryKey","fetchTokenMarketData","useTokenMarketDataQuery","tokenQueryKey","fetchToken","useTokenQuery","tokenSecurityQueryKey","fetchTokenSecurity","useTokenSecurityQuery","tokensQueryKey","fetchTokens","addresses","useTokensQuery","tokenStatsQueryKey","fetchTokenStats","useTokenStatsQuery","tokenTradeActivitiesQueryKey","fetchTokenTradeActivities","useTokenTradeActivitiesQuery","trendingTokensQueryKey","fetchTrendingTokens","useTrendingTokensQuery","txSuccessQueryKey","fetchTxSuccess","txHash","timeout","useTxSuccessQuery","walletPortfoliosQueryKey","fetchWalletPortfolios","useWalletPortfoliosQuery","walletTradeActivitiesQueryKey","fetchWalletTradeActivities","useWalletTradeActivitiesQuery","toChainDTO","Chain","ChainSymbol","toResolutionDTO","Resolution","toSortDirectionDTO","direction","toSearchFieldDTO","field","SearchSortByEnum","toFieldDTO","GetNewTokensSortByEnum","toRangeFiltersDTO","filters","it","cond","SafeBigNumber","fromChainDTO","fromTokenCreatorDTO","input","fromTokenDTO","fromTokenStatsDTO","fromTokenMarketDataDTO","fromTokenLiquidityDTO","parseTokenStatsByResolution","fromTokenCandle","_in","fromTokenSecurity","toSwapRouteInput","toSendTxInput","fromTokenHolderPage","fromTokenPage","fromSwapRoute","fromSendTxResult","fromWalletPortfolios","fromTradePage","fromTokenSubscribed","_chain","fromTokenMetadataSubscribed","Client","accessToken","DexClient","token","stats","marketData","parseLaunchPlatformFromFilters","result","callback","data","filter","DexClientProvider","subscribeClient","children","jsx"],"mappings":"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","file":"index.mjs","sourcesContent":["declare global {\n interface Window {\n __LIBERFI_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif (typeof window !== \"undefined\") {\n window.__LIBERFI_VERSION__ = window.__LIBERFI_VERSION__ || {};\n window.__LIBERFI_VERSION__[\"@liberfi.io/client\"] = \"0.1.7\";\n}\n\nexport default \"0.1.7\";\n","import { createContext } from \"react\";\nimport { API } from \"@liberfi.io/types\";\n\nexport interface DexClientContextValue {\n client: API.IClient;\n subscribeClient: API.ISubscribeClient;\n}\n\nexport const DexClientContext = createContext<DexClientContextValue>(\n {} as DexClientContextValue,\n);\n","import { useContext } from \"react\";\nimport { DexClientContext, DexClientContextValue } from \"../DexClientContext\";\n\nexport function useDexClient(): DexClientContextValue {\n const context = useContext(DexClientContext);\n if (!context) {\n throw new Error(\"useDexClient must be used within an DexClientProvider\");\n }\n return context;\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseFinalStretchTokensQueryParams\n extends API.GetTokenListOptions {\n chain: Chain;\n}\n\nexport function finalStretchTokensQueryKey(\n params: UseFinalStretchTokensQueryParams,\n): string[] {\n return [\n \"finalStretchTokens\",\n params.chain,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchFinalStretchTokens(\n client: API.IClient,\n { chain, ...options }: UseFinalStretchTokensQueryParams,\n) {\n return await client.getFinalStretchTokens(chain, options);\n}\n\nexport function useFinalStretchTokensQuery(\n params: UseFinalStretchTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: finalStretchTokensQueryKey(params),\n queryFn: async () => fetchFinalStretchTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseMigratedTokensQueryParams extends API.GetTokenListOptions {\n chain: Chain;\n}\n\nexport function migratedTokensQueryKey(\n params: UseMigratedTokensQueryParams,\n): string[] {\n return [\n \"migratedTokens\",\n params.chain,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchMigratedTokens(\n client: API.IClient,\n { chain, ...options }: UseMigratedTokensQueryParams,\n) {\n return await client.getMigratedTokens(chain, options);\n}\n\nexport function useMigratedTokensQuery(\n params: UseMigratedTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: migratedTokensQueryKey(params),\n queryFn: async () => fetchMigratedTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseNewTokensQueryParams extends API.GetTokenListOptions {\n chain: Chain;\n}\n\nexport function newTokensQueryKey(params: UseNewTokensQueryParams): string[] {\n return [\n \"newTokens\",\n params.chain,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchNewTokens(\n client: API.IClient,\n { chain, ...options }: UseNewTokensQueryParams,\n) {\n return await client.getNewTokens(chain, options);\n}\n\nexport function useNewTokensQuery(\n params: UseNewTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: newTokensQueryKey(params),\n queryFn: async () => fetchNewTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport async function fetchPresignedUploadUrl(client: API.IClient) {\n return await client.getPresignedUploadUrl();\n}\n\nexport function usePresignedUploadUrlQuery(\n options: Omit<\n UseQueryOptions<string, Error, string, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: [\"presignedUploadUrl\"],\n queryFn: async () => fetchPresignedUploadUrl(client),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport type UseSearchTokensQueryParams = API.SearchTokensOptions;\n\nexport function searchTokensQueryKey(\n params: UseSearchTokensQueryParams,\n): string[] {\n return [\n \"searchTokens\",\n params.cursor ?? \"\",\n params.limit ? `${params.limit}` : \"\",\n params.direction ?? \"\",\n JSON.stringify((params.chains ?? []).sort()),\n params.keyword ?? \"\",\n JSON.stringify(params.filters ?? []),\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n ];\n}\n\nexport async function fetchSearchTokens(\n client: API.IClient,\n params: UseSearchTokensQueryParams,\n) {\n return await client.searchTokens(params);\n}\n\nexport function useSearchTokensQuery(\n params: UseSearchTokensQueryParams,\n options: Omit<\n UseQueryOptions<\n API.SearchTokenCursorList,\n Error,\n API.SearchTokenCursorList,\n string[]\n >,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: searchTokensQueryKey(params),\n queryFn: async () => fetchSearchTokens(client, params),\n ...options,\n });\n}\n","import { useMutation, UseMutationOptions } from \"@tanstack/react-query\";\nimport { API } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport type UseSendTxMutationParams = API.SendTxParams;\n\nexport async function sendTx(\n client: API.IClient,\n params: UseSendTxMutationParams,\n) {\n return await client.sendTx(params);\n}\n\nexport function useSendTxMutation(\n options: Omit<\n UseMutationOptions<API.SendTxResult, Error, UseSendTxMutationParams>,\n \"mutationFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useMutation({\n mutationFn: async (params: UseSendTxMutationParams) =>\n sendTx(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseStockTokensQueryParams extends API.GetTokenListOptions {\n chain: Chain;\n}\n\nexport function stockTokensQueryKey(\n params: UseStockTokensQueryParams,\n): string[] {\n return [\n \"stockTokens\",\n params.chain,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchStockTokens(\n client: API.IClient,\n { chain, ...options }: UseStockTokensQueryParams,\n) {\n return await client.getStockTokens(chain, options);\n}\n\nexport function useStockTokensQuery(\n params: UseStockTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: stockTokensQueryKey(params),\n queryFn: async () => fetchStockTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport type UseSwapRouteQueryParams = API.SwapParams;\n\nexport function swapRouteQueryKey(params: UseSwapRouteQueryParams): string[] {\n return [\n \"swapRoute\",\n params.chain,\n params.userAddress,\n params.input,\n params.output,\n params.mode,\n params.amount,\n params.slippage ? `${params.slippage}` : \"\",\n params.priorityFee ?? \"\",\n params.tipFee ?? \"\",\n params.isAntiMev !== undefined ? `${params.isAntiMev}` : \"\",\n ];\n}\n\nexport async function fetchSwapRoute(\n client: API.IClient,\n params: UseSwapRouteQueryParams,\n) {\n return await client.swapRoute(params);\n}\n\nexport function useSwapRouteQuery(\n params: UseSwapRouteQueryParams,\n options: Omit<\n UseQueryOptions<API.SwapRoute, Error, API.SwapRoute, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: swapRouteQueryKey(params),\n queryFn: async () => fetchSwapRoute(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenCandle, TokenResolution } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenCandlesQueryParams extends API.GetTokenCandlesOptions {\n chain: Chain;\n address: string;\n resolution: TokenResolution;\n}\n\nexport function tokenCandlesQueryKey(\n params: UseTokenCandlesQueryParams,\n): string[] {\n return [\n \"tokenCandles\",\n params.chain,\n params.address,\n params.resolution,\n params.after?.toString() ?? \"\",\n params.before?.toString() ?? \"\",\n params.limit ? `${params.limit}` : \"\",\n ];\n}\n\nexport async function fetchTokenCandles(\n client: API.IClient,\n { chain, address, resolution, ...options }: UseTokenCandlesQueryParams,\n) {\n return await client.getTokenCandles(chain, address, resolution, options);\n}\n\nexport function useTokenCandlesQuery(\n params: UseTokenCandlesQueryParams,\n options: Omit<\n UseQueryOptions<Array<TokenCandle>, Error, Array<TokenCandle>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenCandlesQueryKey(params),\n queryFn: async () => fetchTokenCandles(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenHolder } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenHoldersQueryParams extends API.CursorListOptions {\n chain: Chain;\n address: string;\n}\n\nexport function tokenHoldersQueryKey(\n params: UseTokenHoldersQueryParams,\n): string[] {\n return [\n \"tokenHolders\",\n params.chain,\n params.address,\n params.cursor ?? \"\",\n params.limit ? `${params.limit}` : \"\",\n params.direction ?? \"\",\n ];\n}\n\nexport async function fetchTokenHolders(\n client: API.IClient,\n { chain, address, ...options }: UseTokenHoldersQueryParams,\n) {\n return await client.getTokenHolders(chain, address, options);\n}\n\nexport function useTokenHoldersQuery(\n params: UseTokenHoldersQueryParams,\n options: Omit<\n UseQueryOptions<\n API.CursorList<TokenHolder>,\n Error,\n API.CursorList<TokenHolder>,\n string[]\n >,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenHoldersQueryKey(params),\n queryFn: async () => fetchTokenHolders(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenMarketData } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenMarketDataQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function tokenMarketDataQueryKey(\n params: UseTokenMarketDataQueryParams,\n): string[] {\n return [\"tokenMarketData\", params.chain, params.address];\n}\n\nexport async function fetchTokenMarketData(\n client: API.IClient,\n { chain, address }: UseTokenMarketDataQueryParams,\n) {\n return await client.getTokenMarketData(chain, address);\n}\n\nexport function useTokenMarketDataQuery(\n params: UseTokenMarketDataQueryParams,\n options: Omit<\n UseQueryOptions<TokenMarketData, Error, TokenMarketData, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenMarketDataQueryKey(params),\n queryFn: async () => fetchTokenMarketData(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function tokenQueryKey(params: UseTokenQueryParams): string[] {\n return [\"token\", params.chain, params.address];\n}\n\nexport async function fetchToken(\n client: API.IClient,\n { chain, address }: UseTokenQueryParams,\n) {\n return await client.getToken(chain, address);\n}\n\nexport function useTokenQuery(\n params: UseTokenQueryParams,\n options: Omit<\n UseQueryOptions<Token, Error, Token, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenQueryKey(params),\n queryFn: async () => fetchToken(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenSecurity } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenSecurityQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function tokenSecurityQueryKey(\n params: UseTokenSecurityQueryParams,\n): string[] {\n return [\"tokenSecurity\", params.chain, params.address];\n}\n\nexport async function fetchTokenSecurity(\n client: API.IClient,\n { chain, address }: UseTokenSecurityQueryParams,\n) {\n return await client.getTokenSecurity(chain, address);\n}\n\nexport function useTokenSecurityQuery(\n params: UseTokenSecurityQueryParams,\n options: Omit<\n UseQueryOptions<TokenSecurity, Error, TokenSecurity, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenSecurityQueryKey(params),\n queryFn: async () => fetchTokenSecurity(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokensQueryParams {\n chain: Chain;\n addresses: Array<string>;\n}\n\nexport function tokensQueryKey(params: UseTokensQueryParams): string[] {\n return [\"tokens\", params.chain, params.addresses.sort().join(\",\")];\n}\n\nexport async function fetchTokens(\n client: API.IClient,\n { chain, addresses }: UseTokensQueryParams,\n) {\n return await client.getTokens(chain, addresses);\n}\n\nexport function useTokensQuery(\n params: UseTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokensQueryKey(params),\n queryFn: async () => fetchTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenStats } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenStatsQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function tokenStatsQueryKey(params: UseTokenStatsQueryParams): string[] {\n return [\"tokenStats\", params.chain, params.address];\n}\n\nexport async function fetchTokenStats(\n client: API.IClient,\n { chain, address }: UseTokenStatsQueryParams,\n) {\n return await client.getTokenStats(chain, address);\n}\n\nexport function useTokenStatsQuery(\n params: UseTokenStatsQueryParams,\n options: Omit<\n UseQueryOptions<TokenStats, Error, TokenStats, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenStatsQueryKey(params),\n queryFn: async () => fetchTokenStats(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TradeActivity } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenTradeActivitiesQueryParams\n extends API.GetTradeActivitiesOptions {\n chain: Chain;\n address: string;\n}\n\nexport function tokenTradeActivitiesQueryKey(\n params: UseTokenTradeActivitiesQueryParams,\n): string[] {\n return [\n \"tokenTradeActivities\",\n params.chain,\n params.address,\n params.before?.toString() ?? \"\",\n params.after?.toString() ?? \"\",\n params.beforeBlockHeight ? `${params.beforeBlockHeight}` : \"\",\n params.afterBlockHeight ? `${params.afterBlockHeight}` : \"\",\n params.type ?? \"\",\n params.poolAddress ?? \"\",\n ];\n}\n\nexport async function fetchTokenTradeActivities(\n client: API.IClient,\n { chain, address, ...options }: UseTokenTradeActivitiesQueryParams,\n) {\n return await client.getTokenTradeActivities(chain, address, options);\n}\n\nexport function useTokenTradeActivitiesQuery(\n params: UseTokenTradeActivitiesQueryParams,\n options: Omit<\n UseQueryOptions<\n API.CursorList<TradeActivity>,\n Error,\n API.CursorList<TradeActivity>,\n string[]\n >,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenTradeActivitiesQueryKey(params),\n queryFn: async () => fetchTokenTradeActivities(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTrendingTokensQueryParams extends API.GetTokenListOptions {\n chain: Chain;\n resolution: \"1m\" | \"5m\" | \"1h\" | \"4h\" | \"24h\";\n}\n\nexport function trendingTokensQueryKey(\n params: UseTrendingTokensQueryParams,\n): string[] {\n return [\n \"trendingTokens\",\n params.chain,\n params.resolution,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchTrendingTokens(\n client: API.IClient,\n { chain, resolution, ...options }: UseTrendingTokensQueryParams,\n) {\n return await client.getTrendingTokens(chain, resolution, options);\n}\n\nexport function useTrendingTokensQuery(\n params: UseTrendingTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: trendingTokensQueryKey(params),\n queryFn: async () => fetchTrendingTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTxSuccessQueryParams {\n chain: Chain;\n txHash: string;\n timeout?: number;\n}\n\nexport function txSuccessQueryKey(params: UseTxSuccessQueryParams): string[] {\n return [\n \"txSuccess\",\n params.chain,\n params.txHash,\n params.timeout ? `${params.timeout}` : \"\",\n ];\n}\n\nexport async function fetchTxSuccess(\n client: API.IClient,\n { chain, txHash, timeout }: UseTxSuccessQueryParams,\n) {\n return await client.checkTxSuccess(chain, txHash, timeout);\n}\n\nexport function useTxSuccessQuery(\n params: UseTxSuccessQueryParams,\n options: Omit<\n UseQueryOptions<boolean, Error, boolean, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: txSuccessQueryKey(params),\n queryFn: async () => fetchTxSuccess(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, WalletPortfolios } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseWalletPortfoliosQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function walletPortfoliosQueryKey(\n params: UseWalletPortfoliosQueryParams,\n): string[] {\n return [\"walletPortfolios\", params.chain, params.address];\n}\n\nexport async function fetchWalletPortfolios(\n client: API.IClient,\n { chain, address }: UseWalletPortfoliosQueryParams,\n) {\n return await client.getWalletPortfolios(chain, address);\n}\n\nexport function useWalletPortfoliosQuery(\n params: UseWalletPortfoliosQueryParams,\n options: Omit<\n UseQueryOptions<WalletPortfolios, Error, WalletPortfolios, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: walletPortfoliosQueryKey(params),\n queryFn: async () => fetchWalletPortfolios(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TradeActivity } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseWalletTradeActivitiesQueryParams\n extends API.GetTradeActivitiesOptions {\n chain: Chain;\n address: string;\n}\n\nexport function walletTradeActivitiesQueryKey(\n params: UseWalletTradeActivitiesQueryParams,\n): string[] {\n return [\n \"walletTradeActivities\",\n params.chain,\n params.address,\n params.before?.toString() ?? \"\",\n params.after?.toString() ?? \"\",\n params.beforeBlockHeight ? `${params.beforeBlockHeight}` : \"\",\n params.afterBlockHeight ? `${params.afterBlockHeight}` : \"\",\n params.type ?? \"\",\n params.poolAddress ?? \"\",\n ];\n}\n\nexport async function fetchWalletTradeActivities(\n client: API.IClient,\n { chain, address, ...options }: UseWalletTradeActivitiesQueryParams,\n) {\n return await client.getWalletTradeActivities(chain, address, options);\n}\n\nexport function useWalletTradeActivitiesQuery(\n params: UseWalletTradeActivitiesQueryParams,\n options: Omit<\n UseQueryOptions<\n API.CursorList<TradeActivity>,\n Error,\n API.CursorList<TradeActivity>,\n string[]\n >,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: walletTradeActivitiesQueryKey(params),\n queryFn: async () => fetchWalletTradeActivities(client, params),\n ...options,\n });\n}\n","import {\n Token as TokenDTO,\n Resolution,\n Candle,\n TokenStat,\n TokenHolderPage,\n TokenMarketData as TokenMarketDataDTO,\n GetNewTokensSortByEnum,\n FilterCondition,\n SearchSortByEnum,\n TokenPage as ChainStreamTokenPage,\n SwapRouteResponse,\n SwapRouteInput,\n SendTxInput,\n SendTxResponse,\n WalletBalancesDTO,\n TradePage,\n DexPoolDTO,\n ChainSymbol,\n TokenCreatorsDTO,\n} from \"@chainstream-io/sdk/openapi\";\nimport { NewToken, TokenMetadata } from \"@chainstream-io/sdk/stream\";\nimport {\n API,\n Chain,\n Token,\n TokenCandle,\n TokenCreator,\n TokenHolder,\n TokenLiquidity,\n TokenMarketData,\n TokenResolution,\n TokenSecurity,\n TokenStats,\n TokenStatsByResolution,\n TradeActivity,\n WalletPortfolios,\n} from \"@liberfi.io/types\";\nimport { SafeBigNumber } from \"@liberfi.io/utils\";\n\nexport function toChainDTO(chain: Chain): ChainSymbol {\n switch (chain) {\n case Chain.ETHEREUM:\n return ChainSymbol.Eth;\n case Chain.POLYGON:\n return ChainSymbol.Polygon;\n case Chain.BINANCE:\n return ChainSymbol.Bsc;\n case Chain.ARBITRUM:\n return ChainSymbol.Arbitrum;\n case Chain.OPTIMISM:\n return ChainSymbol.Optimism;\n case Chain.AVALANCHE:\n return ChainSymbol.Avalanche;\n case Chain.BASE:\n return ChainSymbol.Base;\n case Chain.ZKSYNC_ERA:\n return ChainSymbol.Zksync;\n case Chain.SOLANA:\n return ChainSymbol.Sol;\n }\n throw new Error(`Unsupported chain: ${chain}`);\n}\n\nexport function toResolutionDTO(resolution: TokenResolution): Resolution {\n switch (resolution) {\n case \"1s\":\n return Resolution._1s;\n case \"15s\":\n return Resolution._15s;\n case \"30s\":\n return Resolution._30s;\n case \"1m\":\n return Resolution._1m;\n case \"5m\":\n return Resolution._5m;\n case \"15m\":\n return Resolution._15m;\n case \"30m\":\n case \"1h\":\n return Resolution._1h;\n case \"4h\":\n return Resolution._4h;\n case \"12h\":\n return Resolution._12h;\n case \"24h\":\n return Resolution._1d;\n }\n}\n\nexport function toSortDirectionDTO(direction: \"asc\" | \"desc\"): string {\n switch (direction) {\n case \"asc\":\n return \"ASC\";\n case \"desc\":\n return \"DESC\";\n }\n}\n\nexport function toSearchFieldDTO(field: API.TokenFieldOption): string {\n switch (field) {\n case \"marketCap\":\n return SearchSortByEnum.MarketCapInUsd;\n case \"tvl\":\n return SearchSortByEnum.LiquidityInUsd;\n case \"price\":\n return SearchSortByEnum.PriceInUsd;\n case \"holders\":\n return SearchSortByEnum.HolderCount;\n case \"volumes24h\":\n return SearchSortByEnum.H24VolumeInUsd;\n case \"trades24h\":\n return SearchSortByEnum.H24Transactions;\n case \"createdAt\":\n return SearchSortByEnum.TokenCreatedAt;\n }\n throw new Error(`Unsupported search field: ${field}`);\n}\n\nexport function toFieldDTO(field: API.TokenFieldOption): string {\n switch (field) {\n case \"price\":\n return GetNewTokensSortByEnum.MarketDataPriceInUsd;\n case \"priceChange1m\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd1m;\n case \"priceChange5m\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd5m;\n case \"priceChange1h\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd1h;\n case \"priceChange4h\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd4h;\n case \"priceChange24h\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd24h;\n case \"marketCap\":\n return GetNewTokensSortByEnum.MarketDataMarketCapInUsd;\n case \"tvl\":\n return GetNewTokensSortByEnum.MarketDataTvlInUsd;\n case \"top10Holdings\":\n return GetNewTokensSortByEnum.MarketDataTop10TotalHoldings;\n case \"top10Ratio\":\n return GetNewTokensSortByEnum.MarketDataTop10HoldingsRatio;\n case \"top100Holdings\":\n return GetNewTokensSortByEnum.MarketDataTop100TotalHoldings;\n case \"top100Ratio\":\n return GetNewTokensSortByEnum.MarketDataTop100HoldingsRatio;\n case \"holders\":\n return GetNewTokensSortByEnum.MarketDataHolders;\n case \"creatorsHoldings\":\n return GetNewTokensSortByEnum.MarketDataCreatorHoldings;\n case \"creatorsRatio\":\n return GetNewTokensSortByEnum.MarketDataCreatorHoldingsRatio;\n case \"buys1m\":\n return GetNewTokensSortByEnum.StatsBuys1m;\n case \"buys5m\":\n return GetNewTokensSortByEnum.StatsBuys5m;\n case \"buys15m\":\n return GetNewTokensSortByEnum.StatsBuys15m;\n case \"buys30m\":\n return GetNewTokensSortByEnum.StatsBuys30m;\n case \"buys1h\":\n return GetNewTokensSortByEnum.StatsBuys1h;\n case \"buys4h\":\n return GetNewTokensSortByEnum.StatsBuys4h;\n case \"buys24h\":\n return GetNewTokensSortByEnum.StatsBuys24h;\n case \"sells1m\":\n return GetNewTokensSortByEnum.StatsSells1m;\n case \"sells5m\":\n return GetNewTokensSortByEnum.StatsSells5m;\n case \"sells15m\":\n return GetNewTokensSortByEnum.StatsSells15m;\n case \"sells30m\":\n return GetNewTokensSortByEnum.StatsSells30m;\n case \"sells1h\":\n return GetNewTokensSortByEnum.StatsSells1h;\n case \"sells4h\":\n return GetNewTokensSortByEnum.StatsSells4h;\n case \"sells24h\":\n return GetNewTokensSortByEnum.StatsSells24h;\n case \"trades1m\":\n return GetNewTokensSortByEnum.StatsTrades1m;\n case \"trades5m\":\n return GetNewTokensSortByEnum.StatsTrades5m;\n case \"trades1h\":\n return GetNewTokensSortByEnum.StatsTrades1h;\n case \"trades4h\":\n return GetNewTokensSortByEnum.StatsTrades4h;\n case \"trades24h\":\n return GetNewTokensSortByEnum.StatsTrades24h;\n case \"traders1m\":\n return GetNewTokensSortByEnum.StatsTraders1m;\n case \"traders5m\":\n return GetNewTokensSortByEnum.StatsTraders5m;\n case \"traders1h\":\n return GetNewTokensSortByEnum.StatsTraders1h;\n case \"traders4h\":\n return GetNewTokensSortByEnum.StatsTraders4h;\n case \"traders24h\":\n return GetNewTokensSortByEnum.StatsTraders24h;\n case \"volumes1m\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd1m;\n case \"volumes5m\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd5m;\n case \"volumes1h\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd1h;\n case \"volumes4h\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd4h;\n case \"volumes24h\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd24h;\n case \"createdAt\":\n return GetNewTokensSortByEnum.TokenCreatedAt;\n }\n throw new Error(`Unsupported sortBy: ${field}`);\n}\n\nexport function toRangeFiltersDTO(\n filters: Array<API.TokenFilterOption>,\n): Array<FilterCondition> {\n return filters\n .filter(\n (it) => [\"gt\", \"gte\", \"lt\", \"lte\", \"between\"].indexOf(it.operator) >= 0,\n )\n .map((it) => {\n const cond = { field: toFieldDTO(it.field) } as FilterCondition;\n if ([\"gt\", \"gte\", \"between\"].indexOf(it.operator) >= 0) {\n cond.min =\n typeof it.value === \"number\"\n ? new SafeBigNumber(it.value).toString()\n : (it.value as string);\n }\n if ([\"lt\", \"lte\", \"between\"].indexOf(it.operator) >= 0) {\n cond.max =\n typeof it.value === \"number\"\n ? new SafeBigNumber(it.value).toString()\n : (it.value as string);\n }\n return cond;\n });\n}\n\nexport function fromChainDTO(chain: string): Chain {\n switch (chain) {\n case ChainSymbol.Eth:\n return Chain.ETHEREUM;\n case ChainSymbol.Polygon:\n return Chain.POLYGON;\n case ChainSymbol.Bsc:\n return Chain.BINANCE;\n case ChainSymbol.Arbitrum:\n return Chain.ARBITRUM;\n case ChainSymbol.Optimism:\n return Chain.OPTIMISM;\n case ChainSymbol.Avalanche:\n return Chain.AVALANCHE;\n case ChainSymbol.Base:\n return Chain.BASE;\n case ChainSymbol.Zksync:\n return Chain.ZKSYNC_ERA;\n case ChainSymbol.Sol:\n case \"solana\":\n return Chain.SOLANA;\n }\n throw new Error(`Unsupported chain: ${chain}`);\n}\n\nexport function fromTokenCreatorDTO(input: TokenCreatorsDTO): TokenCreator {\n return {\n address: input.address,\n share: input.share,\n isVerified: input.isVerified,\n };\n}\n\nexport function fromTokenDTO(input: TokenDTO): Token {\n return {\n chain: fromChainDTO(input.chain),\n name: input.name,\n symbol: input.symbol,\n address: input.address,\n decimals: input.decimals,\n image: input.imageUrl,\n description: input.description,\n creators: input.tokenCreators?.map(fromTokenCreatorDTO),\n launchedFrom: {\n programAddress: input.extra?.launchFromProgramAddress,\n protocolFamily: input.extra?.launchFromProtocolFamily,\n },\n migrateProgress: input.marketData.completionRatio\n ? new SafeBigNumber(input.marketData.completionRatio)\n .shiftedBy(2)\n .toString()\n : undefined,\n migratedTo: {\n programAddress: input.extra?.migratedToProgramAddress,\n protocolFamily: input.extra?.migratedToProtocolFamily,\n poolAddress: input.extra?.migratedToPoolAddress,\n migratedAt: input.extra?.migratedAt\n ? new Date(input.extra.migratedAt)\n : undefined,\n },\n socialMedias: input.socialMedias ? { ...input.socialMedias } : undefined,\n stats: input.stats ? fromTokenStatsDTO(input.stats) : undefined,\n marketData: input.marketData\n ? fromTokenMarketDataDTO(input.marketData)\n : undefined,\n liquidities: input.liquidity?.map(fromTokenLiquidityDTO),\n createdAt: input.tokenCreatedAt\n ? new Date(input.tokenCreatedAt)\n : undefined,\n };\n}\n\nexport function fromTokenStatsDTO(input: TokenStat): TokenStats {\n return {\n [\"1m\"]: parseTokenStatsByResolution(input, \"1m\"),\n [\"5m\"]: parseTokenStatsByResolution(input, \"5m\"),\n [\"15m\"]: parseTokenStatsByResolution(input, \"15m\"),\n [\"30m\"]: parseTokenStatsByResolution(input, \"30m\"),\n [\"1h\"]: parseTokenStatsByResolution(input, \"1h\"),\n [\"4h\"]: parseTokenStatsByResolution(input, \"4h\"),\n [\"24h\"]: parseTokenStatsByResolution(input, \"24h\"),\n };\n}\n\nfunction parseTokenStatsByResolution(\n input: TokenStat,\n resolution: TokenResolution,\n): TokenStatsByResolution {\n switch (resolution) {\n case \"1m\":\n case \"5m\":\n case \"15m\":\n case \"30m\":\n case \"1h\":\n case \"4h\":\n case \"24h\": {\n return {\n buys: input[`buys${resolution}`],\n sells: input[`sells${resolution}`],\n trades: input[`trades${resolution}`],\n buyers: input[`buyers${resolution}`],\n sellers: input[`sellers${resolution}`],\n traders: input[`traders${resolution}`],\n buyVolumes: input[`buyVolumes${resolution}`],\n sellVolumes: input[`sellsVolumes${resolution}`],\n volumes: input[`volumes${resolution}`],\n buyVolumesInUsd: input[`buyVolumesInUsd${resolution}`],\n sellVolumesInUsd: input[`sellVolumesInUsd${resolution}`],\n volumesInUsd: input[`volumesInUsd${resolution}`],\n openPriceInUsd: input[`openPriceInUsd${resolution}`],\n closePriceInUsd: input[`closePriceInUsd${resolution}`],\n highPriceInUsd: input[`highInUsd${resolution}`],\n lowPriceInUsd: input[`lowInUsd${resolution}`],\n priceInUsd: input[`price${resolution}`],\n priceChange: input[`priceChangeRatioInUsd${resolution}`],\n };\n }\n default:\n throw new Error(`Unsupported resolution: ${resolution}`);\n }\n}\n\nexport function fromTokenLiquidityDTO(input: DexPoolDTO): TokenLiquidity {\n return {\n image: input.image,\n poolAddress: input.poolAddress,\n programAddress: input.programAddress,\n protocolFamily: input.protocolFamily,\n tvl: input.tvlInSol,\n tvlInUsd: input.tvlInUsd,\n };\n}\n\nexport function fromTokenMarketDataDTO(\n input: TokenMarketDataDTO,\n): TokenMarketData {\n return {\n totalSupply: input.totalSupply,\n marketCap: input.marketCapInSol,\n marketCapInUsd: input.marketCapInUsd,\n price: input.priceInSol,\n priceInUsd: input.priceInUsd,\n tvl: input.tvlInSol,\n tvlInUsd: input.tvlInUsd,\n holders: input.holders,\n top10Holdings: input.top10TotalHoldings,\n top10HoldingsRatio: input.top10HoldingsRatio,\n top50Holdings: input.top50TotalHoldings,\n top50HoldingsRatio: input.top50HoldingsRatio,\n top100Holdings: input.top100TotalHoldings,\n top100HoldingsRatio: input.top100HoldingsRatio,\n bluechipHolders:\n input.bluechipTotalHolders === undefined\n ? undefined\n : parseInt(input.bluechipTotalHolders),\n bluechipHoldings: input.bluechipTotalHoldings,\n bluechipHoldingsRatio: input.bluechipHoldingsRatio,\n kolHolders:\n input.kolTotalHolders === undefined\n ? undefined\n : parseInt(input.kolTotalHolders),\n kolHoldings: input.kolTotalHoldings,\n kolHoldingsRatio: input.kolHoldingsRatio,\n sniperHolders:\n input.sniperTotalHolders === undefined\n ? undefined\n : parseInt(input.sniperTotalHolders),\n sniperHoldings: input.sniperTotalHoldings,\n sniperHoldingsRatio: input.sniperHoldingsRatio,\n proHolders:\n input.proTotalHolders === undefined\n ? undefined\n : parseInt(input.proTotalHolders),\n proHoldings: input.proTotalHoldings,\n proHoldingsRatio: input.proHoldingsRatio,\n insiderHolders:\n input.insiderTotalHolders === undefined\n ? undefined\n : parseInt(input.insiderTotalHolders),\n insiderHoldings: input.insiderTotalHoldings,\n insiderHoldingsRatio: input.insiderHoldingsRatio,\n sandwichHolders:\n input.sandwishTotalHolders === undefined\n ? undefined\n : parseInt(input.sandwishTotalHolders),\n sandwichHoldings: input.sandwishTotalHoldings,\n sandwichHoldingsRatio: input.sandwishHoldingsRatio,\n freshHolders:\n input.freshTotalHolders === undefined\n ? undefined\n : parseInt(input.freshTotalHolders),\n freshHoldings: input.freshTotalHoldings,\n freshHoldingsRatio: input.freshHoldingsRatio,\n bundleHolders:\n input.bundleTotalHolders === undefined\n ? undefined\n : parseInt(input.bundleTotalHolders),\n bundleHoldings: input.bundleTotalHoldings,\n bundleHoldingsRatio: input.bundleHoldingsRatio,\n devHolders:\n input.devTotalHolders === undefined\n ? undefined\n : parseInt(input.devTotalHolders),\n devHoldings: input.devTotalHoldings,\n devHoldingsRatio: input.devHoldingsRatio,\n };\n}\n\nexport function fromTokenCandle(_in: Candle): TokenCandle {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenSecurity(_in: object): TokenSecurity {\n throw new Error(\"Method not implemented.\");\n}\nexport function toSwapRouteInput(params: API.SwapParams): SwapRouteInput {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function toSendTxInput(params: API.SendTxParams): SendTxInput {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenHolderPage(\n _in: TokenHolderPage,\n): API.CursorList<TokenHolder> {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenPage(\n _in: ChainStreamTokenPage,\n): API.SearchTokenCursorList {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromSwapRoute(_in: SwapRouteResponse): API.SwapRoute {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromSendTxResult(_in: SendTxResponse): API.SendTxResult {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromWalletPortfolios(_in: WalletBalancesDTO): WalletPortfolios {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTradePage(_in: TradePage): API.CursorList<TradeActivity> {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenSubscribed(\n _chain: Chain,\n _in: NewToken,\n): API.TokenSubscribed {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenMetadataSubscribed(\n _chain: Chain,\n _in: TokenMetadata,\n): API.TokenSubscribed {\n throw new Error(\"Method not implemented.\");\n}\n","import {\n DexAggregatorOptions,\n DexClient,\n TokenProvider,\n} from \"@chainstream-io/sdk\";\nimport {\n ChainSymbol,\n GetFinalStretchTokensSortByEnum,\n GetFinalStretchTokensSortDirectionEnum,\n GetHotTokensSortByEnum,\n GetHotTokensSortDirectionEnum,\n GetMigratedTokensSortByEnum,\n GetMigratedTokensSortDirectionEnum,\n GetNewTokensSortByEnum,\n GetNewTokensSortDirectionEnum,\n GetStocksTokensSortByEnum,\n GetStocksTokensSortDirectionEnum,\n GetTradesTypeEnum,\n SearchSortByEnum,\n} from \"@chainstream-io/sdk/openapi\";\nimport {\n API,\n Chain,\n Token,\n TokenCandle,\n TokenHolder,\n TokenMarketData,\n TokenResolution,\n TokenSecurity,\n TokenStats,\n TradeActivity,\n WalletPortfolios,\n} from \"@liberfi.io/types\";\nimport {\n toChainDTO,\n toResolutionDTO,\n fromTokenStatsDTO,\n fromTokenMarketDataDTO,\n toSortDirectionDTO,\n toFieldDTO,\n toRangeFiltersDTO,\n toSearchFieldDTO,\n fromTokenPage,\n fromSwapRoute,\n fromSendTxResult,\n fromWalletPortfolios,\n fromTradePage,\n fromTokenSubscribed,\n fromTokenMetadataSubscribed,\n fromTokenDTO,\n fromTokenCandle,\n fromTokenSecurity,\n fromTokenHolderPage,\n toSendTxInput,\n toSwapRouteInput,\n} from \"./utils\";\n\nexport type ClientOptions = DexAggregatorOptions;\n\nexport type ClientTokenProvider = TokenProvider | string;\n\nexport class Client implements API.IClient, API.ISubscribeClient {\n // ChainStream DexClient instance\n private readonly _client: DexClient;\n\n constructor(\n private readonly accessToken: ClientTokenProvider,\n private readonly options?: ClientOptions,\n ) {\n this._client = new DexClient(this.accessToken, this.options);\n }\n\n async getToken(chain: Chain, address: string): Promise<Token> {\n const token = await this._client.token.getToken({\n chain: toChainDTO(chain),\n tokenAddress: address,\n });\n return fromTokenDTO(token);\n }\n\n async getTokens(\n chain: Chain,\n addresses: Array<string>,\n ): Promise<Array<Token>> {\n const tokens = await this._client.token.getTokens({\n chain: toChainDTO(chain),\n tokenAddresses: addresses.join(\",\"),\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getTokenCandles(\n chain: Chain,\n address: string,\n resolution: TokenResolution,\n options?: API.GetTokenCandlesOptions,\n ): Promise<Array<TokenCandle>> {\n const candles = await this._client.token.getCandles({\n chain: toChainDTO(chain),\n tokenAddress: address,\n resolution: toResolutionDTO(resolution),\n from: options?.after?.getTime(),\n to: options?.before?.getTime(),\n limit: options?.limit,\n });\n return candles.map(fromTokenCandle);\n }\n\n async getTokenSecurity(\n chain: Chain,\n address: string,\n ): Promise<TokenSecurity> {\n const security = await this._client.token.getSecurity({\n chain: toChainDTO(chain),\n tokenAddress: address,\n });\n return fromTokenSecurity(security);\n }\n\n async getTokenStats(chain: Chain, address: string): Promise<TokenStats> {\n const stats = await this._client.token.getStats({\n chain: toChainDTO(chain),\n tokenAddress: address,\n });\n return fromTokenStatsDTO(stats);\n }\n\n async getTokenHolders(\n chain: Chain,\n address: string,\n options?: API.CursorListOptions,\n ): Promise<API.CursorList<TokenHolder>> {\n const holders = await this._client.token.getHolders({\n chain: toChainDTO(chain),\n tokenAddress: address,\n cursor: options?.cursor,\n limit: options?.limit,\n direction: options?.direction,\n });\n return fromTokenHolderPage(holders);\n }\n\n async getTokenMarketData(\n chain: Chain,\n address: string,\n ): Promise<TokenMarketData> {\n const marketData = await this._client.token.getMarketData({\n chain: toChainDTO(chain),\n tokenAddress: address,\n });\n return fromTokenMarketDataDTO(marketData);\n }\n\n async getNewTokens(\n chain: Chain,\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getNewTokens({\n chain: toChainDTO(chain),\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetNewTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetNewTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getFinalStretchTokens(\n chain: Chain,\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getFinalStretchTokens({\n chain: toChainDTO(chain),\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetFinalStretchTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetFinalStretchTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getMigratedTokens(\n chain: Chain,\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getMigratedTokens({\n chain: toChainDTO(chain),\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetMigratedTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetMigratedTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getTrendingTokens(\n chain: Chain,\n resolution: \"1m\" | \"5m\" | \"1h\" | \"4h\" | \"24h\",\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getHotTokens({\n chain: toChainDTO(chain),\n duration: resolution,\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetHotTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetHotTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getStockTokens(\n chain: Chain,\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getStocksTokens({\n chain: toChainDTO(chain),\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetStocksTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetStocksTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async searchTokens(\n options?: API.SearchTokensOptions,\n ): Promise<API.SearchTokenCursorList> {\n const tokenPage = await this._client.token.search({\n chains: options?.chains?.map(toChainDTO),\n q: options?.keyword,\n limit: options?.limit,\n cursor: options?.cursor,\n sortBy: options?.sortBy\n ? (toSearchFieldDTO(options.sortBy) as SearchSortByEnum)\n : undefined,\n sort: options?.sortDirection,\n // TODO protocols\n });\n return fromTokenPage(tokenPage);\n }\n\n async swapRoute(params: API.SwapParams): Promise<API.SwapRoute> {\n const route = await this._client.dex.route({\n chain: toChainDTO(params.chain) as ChainSymbol,\n swapRouteInput: toSwapRouteInput(params),\n });\n return fromSwapRoute(route);\n }\n\n async sendTx(params: API.SendTxParams): Promise<API.SendTxResult> {\n const result = await this._client.transaction.send({\n chain: toChainDTO(params.chain),\n sendTxInput: toSendTxInput(params),\n });\n return fromSendTxResult(result);\n }\n\n async checkTxSuccess(\n chain: Chain,\n txHash: string,\n timeout?: number,\n ): Promise<boolean> {\n const { result } = await this._client.waitForJob<{\n id: string;\n status: string;\n result: { success: boolean };\n }>(txHash, timeout);\n return result.success;\n }\n\n async getWalletPortfolios(\n chain: Chain,\n address: string,\n ): Promise<WalletPortfolios> {\n const portfolios = await this._client.wallet.getBalance({\n chain: toChainDTO(chain),\n walletAddress: address,\n });\n return fromWalletPortfolios(portfolios);\n }\n\n async getWalletTradeActivities(\n chain: Chain,\n address: string,\n options?: API.GetTradeActivitiesOptions,\n ): Promise<API.CursorList<TradeActivity>> {\n const tradePage = await this._client.trade.getTrades({\n chain: toChainDTO(chain),\n walletAddress: address,\n cursor: options?.cursor,\n limit: options?.limit,\n direction: options?.direction,\n beforeTimestamp: options?.before?.getTime(),\n afterTimestamp: options?.after?.getTime(),\n beforeBlockHeight: options?.beforeBlockHeight,\n afterBlockHeight: options?.afterBlockHeight,\n poolAddress: options?.poolAddress,\n type: options?.type\n ? (options.type.toUpperCase() as GetTradesTypeEnum)\n : undefined,\n });\n return fromTradePage(tradePage);\n }\n\n async getTokenTradeActivities(\n chain: Chain,\n address: string,\n options?: API.GetTradeActivitiesOptions,\n ): Promise<API.CursorList<TradeActivity>> {\n const tradePage = await this._client.trade.getTrades({\n chain: toChainDTO(chain),\n tokenAddress: address,\n cursor: options?.cursor,\n limit: options?.limit,\n direction: options?.direction,\n beforeTimestamp: options?.before?.getTime(),\n afterTimestamp: options?.after?.getTime(),\n beforeBlockHeight: options?.beforeBlockHeight,\n afterBlockHeight: options?.afterBlockHeight,\n poolAddress: options?.poolAddress,\n type: options?.type\n ? (options.type.toUpperCase() as GetTradesTypeEnum)\n : undefined,\n });\n return fromTradePage(tradePage);\n }\n\n async getPresignedUploadUrl(): Promise<string> {\n return await this._client.ipfs.presign();\n }\n\n subscribeTokenBasic(\n chain: Chain,\n address: string,\n callback: (tokens: Array<API.TokenSubscribed>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeTokenMarketData(\n chain: Chain,\n address: string,\n callback: (marketDatas: Array<TokenMarketData>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeTokenStats(\n chain: Chain,\n address: string,\n callback: (stats: Array<TokenStats>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeTokenCandles(\n chain: Chain,\n address: string,\n resolution: TokenResolution,\n callback: (candles: Array<TokenCandle>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeWalletPnl(\n chain: Chain,\n address: string,\n callback: (pnls: Array<API.WalletPnlSubscribed>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeWalletPortfolios(\n chain: Chain,\n address: string,\n callback: (portfolios: Array<API.PortfolioSubscribed>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeWalletPortfolioPnls(\n chain: Chain,\n address: string,\n callback: (portfolioPnls: Array<API.PortfolioPnlSubscribed>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeWalletTradeActivities(\n chain: Chain,\n address: string,\n callback: (trades: Array<TradeActivity>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeTokenTradeActivities(\n chain: Chain,\n address: string,\n callback: (trades: Array<TradeActivity>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeNewTokens(\n chain: Chain,\n callback: (tokens: Array<API.TokenSubscribed>) => void,\n ): API.ISubscription {\n return this._client.stream.subscribeNewToken({\n chain: toChainDTO(chain),\n callback: (data) => callback([fromTokenSubscribed(chain, data)]),\n });\n }\n\n subscribeNewTokensBasic(\n chain: Chain,\n callback: (tokens: Array<API.TokenSubscribed>) => void,\n ): API.ISubscription {\n return this._client.stream.subscribeNewTokensMetadata({\n chain: toChainDTO(chain),\n callback: (data) =>\n callback(data.map((it) => fromTokenMetadataSubscribed(chain, it))),\n });\n }\n\n subscribeNewTokensMarketData(\n chain: Chain,\n callback: (marketDatas: Array<TokenMarketData>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeNewTokensStats(\n chain: Chain,\n callback: (stats: Array<TokenStats>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n}\n\nfunction parseLaunchPlatformFromFilters(\n filters: Array<API.TokenFilterOption>,\n): Array<string> | undefined {\n const filter = filters.find(\n (it) => it.field === \"launchedFromProtocolFamily\",\n );\n if (!filter) {\n return undefined;\n }\n if (filter.operator === \"eq\") {\n return [filter.value as string];\n }\n if (filter.operator === \"in\") {\n return filter.value as Array<string>;\n }\n console.warn(\"invalid launchedFromProtocolFamily filter\", filter);\n return undefined;\n}\n","import { PropsWithChildren } from \"react\";\nimport { DexClientContext, DexClientContextValue } from \"./DexClientContext\";\n\nexport type DexClientProviderProps = PropsWithChildren<DexClientContextValue>;\n\nexport function DexClientProvider({\n client,\n subscribeClient,\n children,\n}: DexClientProviderProps) {\n return (\n <DexClientContext.Provider value={{ client, subscribeClient }}>\n {children}\n </DexClientContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/version.ts","../src/DexClientContext.ts","../src/hooks/useDexClient.ts","../src/hooks/useFinalStretchTokensQuery.ts","../src/hooks/useMigratedTokensQuery.ts","../src/hooks/useNewTokensQuery.ts","../src/hooks/usePresignedUploadUrlQuery.ts","../src/hooks/useSearchTokensQuery.ts","../src/hooks/useSendTxMutation.ts","../src/hooks/useStockTokensQuery.ts","../src/hooks/useSwapRouteQuery.ts","../src/hooks/useTokenCandlesQuery.ts","../src/hooks/useTokenHoldersQuery.ts","../src/hooks/useTokenMarketDataQuery.ts","../src/hooks/useTokenQuery.ts","../src/hooks/useTokenSecurityQuery.ts","../src/hooks/useTokensQuery.ts","../src/hooks/useTokenStatsQuery.ts","../src/hooks/useTokenTradeActivitiesQuery.ts","../src/hooks/useTrendingTokensQuery.ts","../src/hooks/useTxSuccessQuery.ts","../src/hooks/useWalletPortfoliosQuery.ts","../src/hooks/useWalletTradeActivitiesQuery.ts","../src/utils.ts","../src/client.ts","../src/DexClientProvider.tsx"],"names":["version_default","DexClientContext","createContext","useDexClient","context","useContext","finalStretchTokensQueryKey","params","fetchFinalStretchTokens","client","chain","options","useFinalStretchTokensQuery","useQuery","migratedTokensQueryKey","fetchMigratedTokens","useMigratedTokensQuery","newTokensQueryKey","fetchNewTokens","useNewTokensQuery","fetchPresignedUploadUrl","usePresignedUploadUrlQuery","searchTokensQueryKey","fetchSearchTokens","useSearchTokensQuery","sendTx","useSendTxMutation","useMutation","stockTokensQueryKey","fetchStockTokens","useStockTokensQuery","swapRouteQueryKey","fetchSwapRoute","useSwapRouteQuery","tokenCandlesQueryKey","fetchTokenCandles","address","resolution","useTokenCandlesQuery","tokenHoldersQueryKey","fetchTokenHolders","useTokenHoldersQuery","tokenMarketDataQueryKey","fetchTokenMarketData","useTokenMarketDataQuery","tokenQueryKey","fetchToken","useTokenQuery","tokenSecurityQueryKey","fetchTokenSecurity","useTokenSecurityQuery","tokensQueryKey","fetchTokens","addresses","useTokensQuery","tokenStatsQueryKey","fetchTokenStats","useTokenStatsQuery","tokenTradeActivitiesQueryKey","fetchTokenTradeActivities","useTokenTradeActivitiesQuery","trendingTokensQueryKey","fetchTrendingTokens","useTrendingTokensQuery","txSuccessQueryKey","fetchTxSuccess","txHash","timeout","useTxSuccessQuery","walletPortfoliosQueryKey","fetchWalletPortfolios","useWalletPortfoliosQuery","walletTradeActivitiesQueryKey","fetchWalletTradeActivities","useWalletTradeActivitiesQuery","toChainDTO","Chain","ChainSymbol","toResolutionDTO","Resolution","toSortDirectionDTO","direction","toSearchFieldDTO","field","SearchSortByEnum","toFieldDTO","GetNewTokensSortByEnum","toRangeFiltersDTO","filters","it","cond","SafeBigNumber","fromChainDTO","fromTokenCreatorDTO","input","fromTokenDTO","fromTokenStatsDTO","fromTokenMarketDataDTO","fromTokenLiquidityDTO","parseTokenStatsByResolution","fromTokenCandle","_in","fromTokenSecurity","toSwapRouteInput","toSendTxInput","fromTokenHolderPage","fromTokenPage","fromSwapRoute","fromSendTxResult","fromWalletPortfolios","fromTradePage","fromTokenSubscribed","_chain","fromTokenMetadataSubscribed","Client","accessToken","DexClient","token","stats","marketData","parseLaunchPlatformFromFilters","result","callback","data","filter","DexClientProvider","subscribeClient","children","jsx"],"mappings":"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","file":"index.mjs","sourcesContent":["declare global {\n interface Window {\n __LIBERFI_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif (typeof window !== \"undefined\") {\n window.__LIBERFI_VERSION__ = window.__LIBERFI_VERSION__ || {};\n window.__LIBERFI_VERSION__[\"@liberfi.io/client\"] = \"0.1.11\";\n}\n\nexport default \"0.1.11\";\n","import { createContext } from \"react\";\nimport { API } from \"@liberfi.io/types\";\n\nexport interface DexClientContextValue {\n client: API.IClient;\n subscribeClient: API.ISubscribeClient;\n}\n\nexport const DexClientContext = createContext<DexClientContextValue>(\n {} as DexClientContextValue,\n);\n","import { useContext } from \"react\";\nimport { DexClientContext, DexClientContextValue } from \"../DexClientContext\";\n\nexport function useDexClient(): DexClientContextValue {\n const context = useContext(DexClientContext);\n if (!context) {\n throw new Error(\"useDexClient must be used within an DexClientProvider\");\n }\n return context;\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseFinalStretchTokensQueryParams\n extends API.GetTokenListOptions {\n chain: Chain;\n}\n\nexport function finalStretchTokensQueryKey(\n params: UseFinalStretchTokensQueryParams,\n): string[] {\n return [\n \"finalStretchTokens\",\n params.chain,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchFinalStretchTokens(\n client: API.IClient,\n { chain, ...options }: UseFinalStretchTokensQueryParams,\n) {\n return await client.getFinalStretchTokens(chain, options);\n}\n\nexport function useFinalStretchTokensQuery(\n params: UseFinalStretchTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: finalStretchTokensQueryKey(params),\n queryFn: async () => fetchFinalStretchTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseMigratedTokensQueryParams extends API.GetTokenListOptions {\n chain: Chain;\n}\n\nexport function migratedTokensQueryKey(\n params: UseMigratedTokensQueryParams,\n): string[] {\n return [\n \"migratedTokens\",\n params.chain,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchMigratedTokens(\n client: API.IClient,\n { chain, ...options }: UseMigratedTokensQueryParams,\n) {\n return await client.getMigratedTokens(chain, options);\n}\n\nexport function useMigratedTokensQuery(\n params: UseMigratedTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: migratedTokensQueryKey(params),\n queryFn: async () => fetchMigratedTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseNewTokensQueryParams extends API.GetTokenListOptions {\n chain: Chain;\n}\n\nexport function newTokensQueryKey(params: UseNewTokensQueryParams): string[] {\n return [\n \"newTokens\",\n params.chain,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchNewTokens(\n client: API.IClient,\n { chain, ...options }: UseNewTokensQueryParams,\n) {\n return await client.getNewTokens(chain, options);\n}\n\nexport function useNewTokensQuery(\n params: UseNewTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: newTokensQueryKey(params),\n queryFn: async () => fetchNewTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport async function fetchPresignedUploadUrl(client: API.IClient) {\n return await client.getPresignedUploadUrl();\n}\n\nexport function usePresignedUploadUrlQuery(\n options: Omit<\n UseQueryOptions<string, Error, string, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: [\"presignedUploadUrl\"],\n queryFn: async () => fetchPresignedUploadUrl(client),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport type UseSearchTokensQueryParams = API.SearchTokensOptions;\n\nexport function searchTokensQueryKey(\n params: UseSearchTokensQueryParams,\n): string[] {\n return [\n \"searchTokens\",\n params.cursor ?? \"\",\n params.limit ? `${params.limit}` : \"\",\n params.direction ?? \"\",\n JSON.stringify((params.chains ?? []).sort()),\n params.keyword ?? \"\",\n JSON.stringify(params.filters ?? []),\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n ];\n}\n\nexport async function fetchSearchTokens(\n client: API.IClient,\n params: UseSearchTokensQueryParams,\n) {\n return await client.searchTokens(params);\n}\n\nexport function useSearchTokensQuery(\n params: UseSearchTokensQueryParams,\n options: Omit<\n UseQueryOptions<\n API.SearchTokenCursorList,\n Error,\n API.SearchTokenCursorList,\n string[]\n >,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: searchTokensQueryKey(params),\n queryFn: async () => fetchSearchTokens(client, params),\n ...options,\n });\n}\n","import { useMutation, UseMutationOptions } from \"@tanstack/react-query\";\nimport { API } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport type UseSendTxMutationParams = API.SendTxParams;\n\nexport async function sendTx(\n client: API.IClient,\n params: UseSendTxMutationParams,\n) {\n return await client.sendTx(params);\n}\n\nexport function useSendTxMutation(\n options: Omit<\n UseMutationOptions<API.SendTxResult, Error, UseSendTxMutationParams>,\n \"mutationFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useMutation({\n mutationFn: async (params: UseSendTxMutationParams) =>\n sendTx(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseStockTokensQueryParams extends API.GetTokenListOptions {\n chain: Chain;\n}\n\nexport function stockTokensQueryKey(\n params: UseStockTokensQueryParams,\n): string[] {\n return [\n \"stockTokens\",\n params.chain,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchStockTokens(\n client: API.IClient,\n { chain, ...options }: UseStockTokensQueryParams,\n) {\n return await client.getStockTokens(chain, options);\n}\n\nexport function useStockTokensQuery(\n params: UseStockTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: stockTokensQueryKey(params),\n queryFn: async () => fetchStockTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport type UseSwapRouteQueryParams = API.SwapParams;\n\nexport function swapRouteQueryKey(params: UseSwapRouteQueryParams): string[] {\n return [\n \"swapRoute\",\n params.chain,\n params.userAddress,\n params.input,\n params.output,\n params.mode,\n params.amount,\n params.slippage ? `${params.slippage}` : \"\",\n params.priorityFee ?? \"\",\n params.tipFee ?? \"\",\n params.isAntiMev !== undefined ? `${params.isAntiMev}` : \"\",\n ];\n}\n\nexport async function fetchSwapRoute(\n client: API.IClient,\n params: UseSwapRouteQueryParams,\n) {\n return await client.swapRoute(params);\n}\n\nexport function useSwapRouteQuery(\n params: UseSwapRouteQueryParams,\n options: Omit<\n UseQueryOptions<API.SwapRoute, Error, API.SwapRoute, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: swapRouteQueryKey(params),\n queryFn: async () => fetchSwapRoute(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenCandle, TokenResolution } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenCandlesQueryParams extends API.GetTokenCandlesOptions {\n chain: Chain;\n address: string;\n resolution: TokenResolution;\n}\n\nexport function tokenCandlesQueryKey(\n params: UseTokenCandlesQueryParams,\n): string[] {\n return [\n \"tokenCandles\",\n params.chain,\n params.address,\n params.resolution,\n params.after?.toString() ?? \"\",\n params.before?.toString() ?? \"\",\n params.limit ? `${params.limit}` : \"\",\n ];\n}\n\nexport async function fetchTokenCandles(\n client: API.IClient,\n { chain, address, resolution, ...options }: UseTokenCandlesQueryParams,\n) {\n return await client.getTokenCandles(chain, address, resolution, options);\n}\n\nexport function useTokenCandlesQuery(\n params: UseTokenCandlesQueryParams,\n options: Omit<\n UseQueryOptions<Array<TokenCandle>, Error, Array<TokenCandle>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenCandlesQueryKey(params),\n queryFn: async () => fetchTokenCandles(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenHolder } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenHoldersQueryParams extends API.CursorListOptions {\n chain: Chain;\n address: string;\n}\n\nexport function tokenHoldersQueryKey(\n params: UseTokenHoldersQueryParams,\n): string[] {\n return [\n \"tokenHolders\",\n params.chain,\n params.address,\n params.cursor ?? \"\",\n params.limit ? `${params.limit}` : \"\",\n params.direction ?? \"\",\n ];\n}\n\nexport async function fetchTokenHolders(\n client: API.IClient,\n { chain, address, ...options }: UseTokenHoldersQueryParams,\n) {\n return await client.getTokenHolders(chain, address, options);\n}\n\nexport function useTokenHoldersQuery(\n params: UseTokenHoldersQueryParams,\n options: Omit<\n UseQueryOptions<\n API.CursorList<TokenHolder>,\n Error,\n API.CursorList<TokenHolder>,\n string[]\n >,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenHoldersQueryKey(params),\n queryFn: async () => fetchTokenHolders(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenMarketData } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenMarketDataQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function tokenMarketDataQueryKey(\n params: UseTokenMarketDataQueryParams,\n): string[] {\n return [\"tokenMarketData\", params.chain, params.address];\n}\n\nexport async function fetchTokenMarketData(\n client: API.IClient,\n { chain, address }: UseTokenMarketDataQueryParams,\n) {\n return await client.getTokenMarketData(chain, address);\n}\n\nexport function useTokenMarketDataQuery(\n params: UseTokenMarketDataQueryParams,\n options: Omit<\n UseQueryOptions<TokenMarketData, Error, TokenMarketData, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenMarketDataQueryKey(params),\n queryFn: async () => fetchTokenMarketData(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function tokenQueryKey(params: UseTokenQueryParams): string[] {\n return [\"token\", params.chain, params.address];\n}\n\nexport async function fetchToken(\n client: API.IClient,\n { chain, address }: UseTokenQueryParams,\n) {\n return await client.getToken(chain, address);\n}\n\nexport function useTokenQuery(\n params: UseTokenQueryParams,\n options: Omit<\n UseQueryOptions<Token, Error, Token, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenQueryKey(params),\n queryFn: async () => fetchToken(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenSecurity } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenSecurityQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function tokenSecurityQueryKey(\n params: UseTokenSecurityQueryParams,\n): string[] {\n return [\"tokenSecurity\", params.chain, params.address];\n}\n\nexport async function fetchTokenSecurity(\n client: API.IClient,\n { chain, address }: UseTokenSecurityQueryParams,\n) {\n return await client.getTokenSecurity(chain, address);\n}\n\nexport function useTokenSecurityQuery(\n params: UseTokenSecurityQueryParams,\n options: Omit<\n UseQueryOptions<TokenSecurity, Error, TokenSecurity, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenSecurityQueryKey(params),\n queryFn: async () => fetchTokenSecurity(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokensQueryParams {\n chain: Chain;\n addresses: Array<string>;\n}\n\nexport function tokensQueryKey(params: UseTokensQueryParams): string[] {\n return [\"tokens\", params.chain, params.addresses.sort().join(\",\")];\n}\n\nexport async function fetchTokens(\n client: API.IClient,\n { chain, addresses }: UseTokensQueryParams,\n) {\n return await client.getTokens(chain, addresses);\n}\n\nexport function useTokensQuery(\n params: UseTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokensQueryKey(params),\n queryFn: async () => fetchTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TokenStats } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenStatsQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function tokenStatsQueryKey(params: UseTokenStatsQueryParams): string[] {\n return [\"tokenStats\", params.chain, params.address];\n}\n\nexport async function fetchTokenStats(\n client: API.IClient,\n { chain, address }: UseTokenStatsQueryParams,\n) {\n return await client.getTokenStats(chain, address);\n}\n\nexport function useTokenStatsQuery(\n params: UseTokenStatsQueryParams,\n options: Omit<\n UseQueryOptions<TokenStats, Error, TokenStats, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenStatsQueryKey(params),\n queryFn: async () => fetchTokenStats(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TradeActivity } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTokenTradeActivitiesQueryParams\n extends API.GetTradeActivitiesOptions {\n chain: Chain;\n address: string;\n}\n\nexport function tokenTradeActivitiesQueryKey(\n params: UseTokenTradeActivitiesQueryParams,\n): string[] {\n return [\n \"tokenTradeActivities\",\n params.chain,\n params.address,\n params.before?.toString() ?? \"\",\n params.after?.toString() ?? \"\",\n params.beforeBlockHeight ? `${params.beforeBlockHeight}` : \"\",\n params.afterBlockHeight ? `${params.afterBlockHeight}` : \"\",\n params.type ?? \"\",\n params.poolAddress ?? \"\",\n ];\n}\n\nexport async function fetchTokenTradeActivities(\n client: API.IClient,\n { chain, address, ...options }: UseTokenTradeActivitiesQueryParams,\n) {\n return await client.getTokenTradeActivities(chain, address, options);\n}\n\nexport function useTokenTradeActivitiesQuery(\n params: UseTokenTradeActivitiesQueryParams,\n options: Omit<\n UseQueryOptions<\n API.CursorList<TradeActivity>,\n Error,\n API.CursorList<TradeActivity>,\n string[]\n >,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: tokenTradeActivitiesQueryKey(params),\n queryFn: async () => fetchTokenTradeActivities(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, Token } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTrendingTokensQueryParams extends API.GetTokenListOptions {\n chain: Chain;\n resolution: \"1m\" | \"5m\" | \"1h\" | \"4h\" | \"24h\";\n}\n\nexport function trendingTokensQueryKey(\n params: UseTrendingTokensQueryParams,\n): string[] {\n return [\n \"trendingTokens\",\n params.chain,\n params.resolution,\n params.sortBy ?? \"\",\n params.sortDirection ?? \"\",\n JSON.stringify((params.keywords ?? []).sort()),\n JSON.stringify((params.excludeKeywords ?? []).sort()),\n JSON.stringify(params.filters ?? []),\n ];\n}\n\nexport async function fetchTrendingTokens(\n client: API.IClient,\n { chain, resolution, ...options }: UseTrendingTokensQueryParams,\n) {\n return await client.getTrendingTokens(chain, resolution, options);\n}\n\nexport function useTrendingTokensQuery(\n params: UseTrendingTokensQueryParams,\n options: Omit<\n UseQueryOptions<Array<Token>, Error, Array<Token>, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: trendingTokensQueryKey(params),\n queryFn: async () => fetchTrendingTokens(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseTxSuccessQueryParams {\n chain: Chain;\n txHash: string;\n timeout?: number;\n}\n\nexport function txSuccessQueryKey(params: UseTxSuccessQueryParams): string[] {\n return [\n \"txSuccess\",\n params.chain,\n params.txHash,\n params.timeout ? `${params.timeout}` : \"\",\n ];\n}\n\nexport async function fetchTxSuccess(\n client: API.IClient,\n { chain, txHash, timeout }: UseTxSuccessQueryParams,\n) {\n return await client.checkTxSuccess(chain, txHash, timeout);\n}\n\nexport function useTxSuccessQuery(\n params: UseTxSuccessQueryParams,\n options: Omit<\n UseQueryOptions<boolean, Error, boolean, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: txSuccessQueryKey(params),\n queryFn: async () => fetchTxSuccess(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, WalletPortfolios } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseWalletPortfoliosQueryParams {\n chain: Chain;\n address: string;\n}\n\nexport function walletPortfoliosQueryKey(\n params: UseWalletPortfoliosQueryParams,\n): string[] {\n return [\"walletPortfolios\", params.chain, params.address];\n}\n\nexport async function fetchWalletPortfolios(\n client: API.IClient,\n { chain, address }: UseWalletPortfoliosQueryParams,\n) {\n return await client.getWalletPortfolios(chain, address);\n}\n\nexport function useWalletPortfoliosQuery(\n params: UseWalletPortfoliosQueryParams,\n options: Omit<\n UseQueryOptions<WalletPortfolios, Error, WalletPortfolios, string[]>,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: walletPortfoliosQueryKey(params),\n queryFn: async () => fetchWalletPortfolios(client, params),\n ...options,\n });\n}\n","import { useQuery, UseQueryOptions } from \"@tanstack/react-query\";\nimport { API, Chain, TradeActivity } from \"@liberfi.io/types\";\nimport { useDexClient } from \"./useDexClient\";\n\nexport interface UseWalletTradeActivitiesQueryParams\n extends API.GetTradeActivitiesOptions {\n chain: Chain;\n address: string;\n}\n\nexport function walletTradeActivitiesQueryKey(\n params: UseWalletTradeActivitiesQueryParams,\n): string[] {\n return [\n \"walletTradeActivities\",\n params.chain,\n params.address,\n params.before?.toString() ?? \"\",\n params.after?.toString() ?? \"\",\n params.beforeBlockHeight ? `${params.beforeBlockHeight}` : \"\",\n params.afterBlockHeight ? `${params.afterBlockHeight}` : \"\",\n params.type ?? \"\",\n params.poolAddress ?? \"\",\n ];\n}\n\nexport async function fetchWalletTradeActivities(\n client: API.IClient,\n { chain, address, ...options }: UseWalletTradeActivitiesQueryParams,\n) {\n return await client.getWalletTradeActivities(chain, address, options);\n}\n\nexport function useWalletTradeActivitiesQuery(\n params: UseWalletTradeActivitiesQueryParams,\n options: Omit<\n UseQueryOptions<\n API.CursorList<TradeActivity>,\n Error,\n API.CursorList<TradeActivity>,\n string[]\n >,\n \"queryKey\" | \"queryFn\"\n > = {},\n) {\n const { client } = useDexClient();\n return useQuery({\n queryKey: walletTradeActivitiesQueryKey(params),\n queryFn: async () => fetchWalletTradeActivities(client, params),\n ...options,\n });\n}\n","import {\n Token as TokenDTO,\n Resolution,\n Candle,\n TokenStat,\n TokenHolderPage,\n TokenMarketData as TokenMarketDataDTO,\n GetNewTokensSortByEnum,\n FilterCondition,\n SearchSortByEnum,\n TokenPage as ChainStreamTokenPage,\n SwapRouteResponse,\n SwapRouteInput,\n SendTxInput,\n SendTxResponse,\n WalletBalancesDTO,\n TradePage,\n DexPoolDTO,\n ChainSymbol,\n TokenCreatorsDTO,\n} from \"@chainstream-io/sdk/openapi\";\nimport { NewToken, TokenMetadata } from \"@chainstream-io/sdk/stream\";\nimport {\n API,\n Chain,\n Token,\n TokenCandle,\n TokenCreator,\n TokenHolder,\n TokenLiquidity,\n TokenMarketData,\n TokenResolution,\n TokenSecurity,\n TokenStats,\n TokenStatsByResolution,\n TradeActivity,\n WalletPortfolios,\n} from \"@liberfi.io/types\";\nimport { SafeBigNumber } from \"@liberfi.io/utils\";\n\nexport function toChainDTO(chain: Chain): ChainSymbol {\n switch (chain) {\n case Chain.ETHEREUM:\n return ChainSymbol.Eth;\n case Chain.POLYGON:\n return ChainSymbol.Polygon;\n case Chain.BINANCE:\n return ChainSymbol.Bsc;\n case Chain.ARBITRUM:\n return ChainSymbol.Arbitrum;\n case Chain.OPTIMISM:\n return ChainSymbol.Optimism;\n case Chain.AVALANCHE:\n return ChainSymbol.Avalanche;\n case Chain.BASE:\n return ChainSymbol.Base;\n case Chain.ZKSYNC_ERA:\n return ChainSymbol.Zksync;\n case Chain.SOLANA:\n return ChainSymbol.Sol;\n }\n throw new Error(`Unsupported chain: ${chain}`);\n}\n\nexport function toResolutionDTO(resolution: TokenResolution): Resolution {\n switch (resolution) {\n case \"1s\":\n return Resolution._1s;\n case \"15s\":\n return Resolution._15s;\n case \"30s\":\n return Resolution._30s;\n case \"1m\":\n return Resolution._1m;\n case \"5m\":\n return Resolution._5m;\n case \"15m\":\n return Resolution._15m;\n case \"30m\":\n case \"1h\":\n return Resolution._1h;\n case \"4h\":\n return Resolution._4h;\n case \"12h\":\n return Resolution._12h;\n case \"24h\":\n return Resolution._1d;\n }\n}\n\nexport function toSortDirectionDTO(direction: \"asc\" | \"desc\"): string {\n switch (direction) {\n case \"asc\":\n return \"ASC\";\n case \"desc\":\n return \"DESC\";\n }\n}\n\nexport function toSearchFieldDTO(field: API.TokenFieldOption): string {\n switch (field) {\n case \"marketCap\":\n return SearchSortByEnum.MarketCapInUsd;\n case \"tvl\":\n return SearchSortByEnum.LiquidityInUsd;\n case \"price\":\n return SearchSortByEnum.PriceInUsd;\n case \"holders\":\n return SearchSortByEnum.HolderCount;\n case \"volumes24h\":\n return SearchSortByEnum.H24VolumeInUsd;\n case \"trades24h\":\n return SearchSortByEnum.H24Transactions;\n case \"createdAt\":\n return SearchSortByEnum.TokenCreatedAt;\n }\n throw new Error(`Unsupported search field: ${field}`);\n}\n\nexport function toFieldDTO(field: API.TokenFieldOption): string {\n switch (field) {\n case \"price\":\n return GetNewTokensSortByEnum.MarketDataPriceInUsd;\n case \"priceChange1m\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd1m;\n case \"priceChange5m\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd5m;\n case \"priceChange1h\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd1h;\n case \"priceChange4h\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd4h;\n case \"priceChange24h\":\n return GetNewTokensSortByEnum.StatsPriceChangeRatioInUsd24h;\n case \"marketCap\":\n return GetNewTokensSortByEnum.MarketDataMarketCapInUsd;\n case \"tvl\":\n return GetNewTokensSortByEnum.MarketDataTvlInUsd;\n case \"top10Holdings\":\n return GetNewTokensSortByEnum.MarketDataTop10TotalHoldings;\n case \"top10Ratio\":\n return GetNewTokensSortByEnum.MarketDataTop10HoldingsRatio;\n case \"top100Holdings\":\n return GetNewTokensSortByEnum.MarketDataTop100TotalHoldings;\n case \"top100Ratio\":\n return GetNewTokensSortByEnum.MarketDataTop100HoldingsRatio;\n case \"holders\":\n return GetNewTokensSortByEnum.MarketDataHolders;\n case \"creatorsHoldings\":\n return GetNewTokensSortByEnum.MarketDataCreatorHoldings;\n case \"creatorsRatio\":\n return GetNewTokensSortByEnum.MarketDataCreatorHoldingsRatio;\n case \"buys1m\":\n return GetNewTokensSortByEnum.StatsBuys1m;\n case \"buys5m\":\n return GetNewTokensSortByEnum.StatsBuys5m;\n case \"buys15m\":\n return GetNewTokensSortByEnum.StatsBuys15m;\n case \"buys30m\":\n return GetNewTokensSortByEnum.StatsBuys30m;\n case \"buys1h\":\n return GetNewTokensSortByEnum.StatsBuys1h;\n case \"buys4h\":\n return GetNewTokensSortByEnum.StatsBuys4h;\n case \"buys24h\":\n return GetNewTokensSortByEnum.StatsBuys24h;\n case \"sells1m\":\n return GetNewTokensSortByEnum.StatsSells1m;\n case \"sells5m\":\n return GetNewTokensSortByEnum.StatsSells5m;\n case \"sells15m\":\n return GetNewTokensSortByEnum.StatsSells15m;\n case \"sells30m\":\n return GetNewTokensSortByEnum.StatsSells30m;\n case \"sells1h\":\n return GetNewTokensSortByEnum.StatsSells1h;\n case \"sells4h\":\n return GetNewTokensSortByEnum.StatsSells4h;\n case \"sells24h\":\n return GetNewTokensSortByEnum.StatsSells24h;\n case \"trades1m\":\n return GetNewTokensSortByEnum.StatsTrades1m;\n case \"trades5m\":\n return GetNewTokensSortByEnum.StatsTrades5m;\n case \"trades1h\":\n return GetNewTokensSortByEnum.StatsTrades1h;\n case \"trades4h\":\n return GetNewTokensSortByEnum.StatsTrades4h;\n case \"trades24h\":\n return GetNewTokensSortByEnum.StatsTrades24h;\n case \"traders1m\":\n return GetNewTokensSortByEnum.StatsTraders1m;\n case \"traders5m\":\n return GetNewTokensSortByEnum.StatsTraders5m;\n case \"traders1h\":\n return GetNewTokensSortByEnum.StatsTraders1h;\n case \"traders4h\":\n return GetNewTokensSortByEnum.StatsTraders4h;\n case \"traders24h\":\n return GetNewTokensSortByEnum.StatsTraders24h;\n case \"volumes1m\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd1m;\n case \"volumes5m\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd5m;\n case \"volumes1h\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd1h;\n case \"volumes4h\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd4h;\n case \"volumes24h\":\n return GetNewTokensSortByEnum.StatsVolumesInUsd24h;\n case \"createdAt\":\n return GetNewTokensSortByEnum.TokenCreatedAt;\n }\n throw new Error(`Unsupported sortBy: ${field}`);\n}\n\nexport function toRangeFiltersDTO(\n filters: Array<API.TokenFilterOption>,\n): Array<FilterCondition> {\n return filters\n .filter(\n (it) => [\"gt\", \"gte\", \"lt\", \"lte\", \"between\"].indexOf(it.operator) >= 0,\n )\n .map((it) => {\n const cond = { field: toFieldDTO(it.field) } as FilterCondition;\n if ([\"gt\", \"gte\", \"between\"].indexOf(it.operator) >= 0) {\n cond.min =\n typeof it.value === \"number\"\n ? new SafeBigNumber(it.value).toString()\n : (it.value as string);\n }\n if ([\"lt\", \"lte\", \"between\"].indexOf(it.operator) >= 0) {\n cond.max =\n typeof it.value === \"number\"\n ? new SafeBigNumber(it.value).toString()\n : (it.value as string);\n }\n return cond;\n });\n}\n\nexport function fromChainDTO(chain: string): Chain {\n switch (chain) {\n case ChainSymbol.Eth:\n return Chain.ETHEREUM;\n case ChainSymbol.Polygon:\n return Chain.POLYGON;\n case ChainSymbol.Bsc:\n return Chain.BINANCE;\n case ChainSymbol.Arbitrum:\n return Chain.ARBITRUM;\n case ChainSymbol.Optimism:\n return Chain.OPTIMISM;\n case ChainSymbol.Avalanche:\n return Chain.AVALANCHE;\n case ChainSymbol.Base:\n return Chain.BASE;\n case ChainSymbol.Zksync:\n return Chain.ZKSYNC_ERA;\n case ChainSymbol.Sol:\n case \"solana\":\n return Chain.SOLANA;\n }\n throw new Error(`Unsupported chain: ${chain}`);\n}\n\nexport function fromTokenCreatorDTO(input: TokenCreatorsDTO): TokenCreator {\n return {\n address: input.address,\n share: input.share,\n isVerified: input.isVerified,\n };\n}\n\nexport function fromTokenDTO(input: TokenDTO): Token {\n return {\n chain: fromChainDTO(input.chain),\n name: input.name,\n symbol: input.symbol,\n address: input.address,\n decimals: input.decimals,\n image: input.imageUrl,\n description: input.description,\n creators: input.tokenCreators?.map(fromTokenCreatorDTO),\n launchedFrom: {\n programAddress: input.extra?.launchFromProgramAddress,\n protocolFamily: input.extra?.launchFromProtocolFamily,\n },\n migrateProgress: input.marketData.completionRatio\n ? new SafeBigNumber(input.marketData.completionRatio)\n .shiftedBy(2)\n .toString()\n : undefined,\n migratedTo: {\n programAddress: input.extra?.migratedToProgramAddress,\n protocolFamily: input.extra?.migratedToProtocolFamily,\n poolAddress: input.extra?.migratedToPoolAddress,\n migratedAt: input.extra?.migratedAt\n ? new Date(input.extra.migratedAt)\n : undefined,\n },\n socialMedias: input.socialMedias ? { ...input.socialMedias } : undefined,\n stats: input.stats ? fromTokenStatsDTO(input.stats) : undefined,\n marketData: input.marketData\n ? fromTokenMarketDataDTO(input.marketData)\n : undefined,\n liquidities: input.liquidity?.map(fromTokenLiquidityDTO),\n createdAt: input.tokenCreatedAt\n ? new Date(input.tokenCreatedAt)\n : undefined,\n };\n}\n\nexport function fromTokenStatsDTO(input: TokenStat): TokenStats {\n return {\n [\"1m\"]: parseTokenStatsByResolution(input, \"1m\"),\n [\"5m\"]: parseTokenStatsByResolution(input, \"5m\"),\n [\"15m\"]: parseTokenStatsByResolution(input, \"15m\"),\n [\"30m\"]: parseTokenStatsByResolution(input, \"30m\"),\n [\"1h\"]: parseTokenStatsByResolution(input, \"1h\"),\n [\"4h\"]: parseTokenStatsByResolution(input, \"4h\"),\n [\"24h\"]: parseTokenStatsByResolution(input, \"24h\"),\n };\n}\n\nfunction parseTokenStatsByResolution(\n input: TokenStat,\n resolution: TokenResolution,\n): TokenStatsByResolution {\n switch (resolution) {\n case \"1m\":\n case \"5m\":\n case \"15m\":\n case \"30m\":\n case \"1h\":\n case \"4h\":\n case \"24h\": {\n return {\n buys: input[`buys${resolution}`],\n sells: input[`sells${resolution}`],\n trades: input[`trades${resolution}`],\n buyers: input[`buyers${resolution}`],\n sellers: input[`sellers${resolution}`],\n traders: input[`traders${resolution}`],\n buyVolumes: input[`buyVolumes${resolution}`],\n sellVolumes: input[`sellsVolumes${resolution}`],\n volumes: input[`volumes${resolution}`],\n buyVolumesInUsd: input[`buyVolumesInUsd${resolution}`],\n sellVolumesInUsd: input[`sellVolumesInUsd${resolution}`],\n volumesInUsd: input[`volumesInUsd${resolution}`],\n openPriceInUsd: input[`openPriceInUsd${resolution}`],\n closePriceInUsd: input[`closePriceInUsd${resolution}`],\n highPriceInUsd: input[`highInUsd${resolution}`],\n lowPriceInUsd: input[`lowInUsd${resolution}`],\n priceInUsd: input[`price${resolution}`],\n priceChange: input[`priceChangeRatioInUsd${resolution}`],\n };\n }\n default:\n throw new Error(`Unsupported resolution: ${resolution}`);\n }\n}\n\nexport function fromTokenLiquidityDTO(input: DexPoolDTO): TokenLiquidity {\n return {\n image: input.image,\n poolAddress: input.poolAddress,\n programAddress: input.programAddress,\n protocolFamily: input.protocolFamily,\n tvl: input.tvlInSol,\n tvlInUsd: input.tvlInUsd,\n };\n}\n\nexport function fromTokenMarketDataDTO(\n input: TokenMarketDataDTO,\n): TokenMarketData {\n return {\n totalSupply: input.totalSupply,\n marketCap: input.marketCapInSol,\n marketCapInUsd: input.marketCapInUsd,\n price: input.priceInSol,\n priceInUsd: input.priceInUsd,\n tvl: input.tvlInSol,\n tvlInUsd: input.tvlInUsd,\n holders: input.holders,\n top10Holdings: input.top10TotalHoldings,\n top10HoldingsRatio: input.top10HoldingsRatio,\n top50Holdings: input.top50TotalHoldings,\n top50HoldingsRatio: input.top50HoldingsRatio,\n top100Holdings: input.top100TotalHoldings,\n top100HoldingsRatio: input.top100HoldingsRatio,\n bluechipHolders:\n input.bluechipTotalHolders === undefined\n ? undefined\n : parseInt(input.bluechipTotalHolders),\n bluechipHoldings: input.bluechipTotalHoldings,\n bluechipHoldingsRatio: input.bluechipHoldingsRatio,\n kolHolders:\n input.kolTotalHolders === undefined\n ? undefined\n : parseInt(input.kolTotalHolders),\n kolHoldings: input.kolTotalHoldings,\n kolHoldingsRatio: input.kolHoldingsRatio,\n sniperHolders:\n input.sniperTotalHolders === undefined\n ? undefined\n : parseInt(input.sniperTotalHolders),\n sniperHoldings: input.sniperTotalHoldings,\n sniperHoldingsRatio: input.sniperHoldingsRatio,\n proHolders:\n input.proTotalHolders === undefined\n ? undefined\n : parseInt(input.proTotalHolders),\n proHoldings: input.proTotalHoldings,\n proHoldingsRatio: input.proHoldingsRatio,\n insiderHolders:\n input.insiderTotalHolders === undefined\n ? undefined\n : parseInt(input.insiderTotalHolders),\n insiderHoldings: input.insiderTotalHoldings,\n insiderHoldingsRatio: input.insiderHoldingsRatio,\n sandwichHolders:\n input.sandwishTotalHolders === undefined\n ? undefined\n : parseInt(input.sandwishTotalHolders),\n sandwichHoldings: input.sandwishTotalHoldings,\n sandwichHoldingsRatio: input.sandwishHoldingsRatio,\n freshHolders:\n input.freshTotalHolders === undefined\n ? undefined\n : parseInt(input.freshTotalHolders),\n freshHoldings: input.freshTotalHoldings,\n freshHoldingsRatio: input.freshHoldingsRatio,\n bundleHolders:\n input.bundleTotalHolders === undefined\n ? undefined\n : parseInt(input.bundleTotalHolders),\n bundleHoldings: input.bundleTotalHoldings,\n bundleHoldingsRatio: input.bundleHoldingsRatio,\n devHolders:\n input.devTotalHolders === undefined\n ? undefined\n : parseInt(input.devTotalHolders),\n devHoldings: input.devTotalHoldings,\n devHoldingsRatio: input.devHoldingsRatio,\n };\n}\n\nexport function fromTokenCandle(_in: Candle): TokenCandle {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenSecurity(_in: object): TokenSecurity {\n throw new Error(\"Method not implemented.\");\n}\nexport function toSwapRouteInput(params: API.SwapParams): SwapRouteInput {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function toSendTxInput(params: API.SendTxParams): SendTxInput {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenHolderPage(\n _in: TokenHolderPage,\n): API.CursorList<TokenHolder> {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenPage(\n _in: ChainStreamTokenPage,\n): API.SearchTokenCursorList {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromSwapRoute(_in: SwapRouteResponse): API.SwapRoute {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromSendTxResult(_in: SendTxResponse): API.SendTxResult {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromWalletPortfolios(_in: WalletBalancesDTO): WalletPortfolios {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTradePage(_in: TradePage): API.CursorList<TradeActivity> {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenSubscribed(\n _chain: Chain,\n _in: NewToken,\n): API.TokenSubscribed {\n throw new Error(\"Method not implemented.\");\n}\n\nexport function fromTokenMetadataSubscribed(\n _chain: Chain,\n _in: TokenMetadata,\n): API.TokenSubscribed {\n throw new Error(\"Method not implemented.\");\n}\n","import {\n DexAggregatorOptions,\n DexClient,\n TokenProvider,\n} from \"@chainstream-io/sdk\";\nimport {\n ChainSymbol,\n GetFinalStretchTokensSortByEnum,\n GetFinalStretchTokensSortDirectionEnum,\n GetHotTokensSortByEnum,\n GetHotTokensSortDirectionEnum,\n GetMigratedTokensSortByEnum,\n GetMigratedTokensSortDirectionEnum,\n GetNewTokensSortByEnum,\n GetNewTokensSortDirectionEnum,\n GetStocksTokensSortByEnum,\n GetStocksTokensSortDirectionEnum,\n GetTradesTypeEnum,\n SearchSortByEnum,\n} from \"@chainstream-io/sdk/openapi\";\nimport {\n API,\n Chain,\n Token,\n TokenCandle,\n TokenHolder,\n TokenMarketData,\n TokenResolution,\n TokenSecurity,\n TokenStats,\n TradeActivity,\n WalletPortfolios,\n} from \"@liberfi.io/types\";\nimport {\n toChainDTO,\n toResolutionDTO,\n fromTokenStatsDTO,\n fromTokenMarketDataDTO,\n toSortDirectionDTO,\n toFieldDTO,\n toRangeFiltersDTO,\n toSearchFieldDTO,\n fromTokenPage,\n fromSwapRoute,\n fromSendTxResult,\n fromWalletPortfolios,\n fromTradePage,\n fromTokenSubscribed,\n fromTokenMetadataSubscribed,\n fromTokenDTO,\n fromTokenCandle,\n fromTokenSecurity,\n fromTokenHolderPage,\n toSendTxInput,\n toSwapRouteInput,\n} from \"./utils\";\n\nexport type ClientOptions = DexAggregatorOptions;\n\nexport type ClientTokenProvider = TokenProvider | string;\n\nexport class Client implements API.IClient, API.ISubscribeClient {\n // ChainStream DexClient instance\n private readonly _client: DexClient;\n\n constructor(\n private readonly accessToken: ClientTokenProvider,\n private readonly options?: ClientOptions,\n ) {\n this._client = new DexClient(this.accessToken, this.options);\n }\n\n async getToken(chain: Chain, address: string): Promise<Token> {\n const token = await this._client.token.getToken({\n chain: toChainDTO(chain),\n tokenAddress: address,\n });\n return fromTokenDTO(token);\n }\n\n async getTokens(\n chain: Chain,\n addresses: Array<string>,\n ): Promise<Array<Token>> {\n const tokens = await this._client.token.getTokens({\n chain: toChainDTO(chain),\n tokenAddresses: addresses.join(\",\"),\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getTokenCandles(\n chain: Chain,\n address: string,\n resolution: TokenResolution,\n options?: API.GetTokenCandlesOptions,\n ): Promise<Array<TokenCandle>> {\n const candles = await this._client.token.getCandles({\n chain: toChainDTO(chain),\n tokenAddress: address,\n resolution: toResolutionDTO(resolution),\n from: options?.after?.getTime(),\n to: options?.before?.getTime(),\n limit: options?.limit,\n });\n return candles.map(fromTokenCandle);\n }\n\n async getTokenSecurity(\n chain: Chain,\n address: string,\n ): Promise<TokenSecurity> {\n const security = await this._client.token.getSecurity({\n chain: toChainDTO(chain),\n tokenAddress: address,\n });\n return fromTokenSecurity(security);\n }\n\n async getTokenStats(chain: Chain, address: string): Promise<TokenStats> {\n const stats = await this._client.token.getStats({\n chain: toChainDTO(chain),\n tokenAddress: address,\n });\n return fromTokenStatsDTO(stats);\n }\n\n async getTokenHolders(\n chain: Chain,\n address: string,\n options?: API.CursorListOptions,\n ): Promise<API.CursorList<TokenHolder>> {\n const holders = await this._client.token.getHolders({\n chain: toChainDTO(chain),\n tokenAddress: address,\n cursor: options?.cursor,\n limit: options?.limit,\n direction: options?.direction,\n });\n return fromTokenHolderPage(holders);\n }\n\n async getTokenMarketData(\n chain: Chain,\n address: string,\n ): Promise<TokenMarketData> {\n const marketData = await this._client.token.getMarketData({\n chain: toChainDTO(chain),\n tokenAddress: address,\n });\n return fromTokenMarketDataDTO(marketData);\n }\n\n async getNewTokens(\n chain: Chain,\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getNewTokens({\n chain: toChainDTO(chain),\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetNewTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetNewTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getFinalStretchTokens(\n chain: Chain,\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getFinalStretchTokens({\n chain: toChainDTO(chain),\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetFinalStretchTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetFinalStretchTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getMigratedTokens(\n chain: Chain,\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getMigratedTokens({\n chain: toChainDTO(chain),\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetMigratedTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetMigratedTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getTrendingTokens(\n chain: Chain,\n resolution: \"1m\" | \"5m\" | \"1h\" | \"4h\" | \"24h\",\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getHotTokens({\n chain: toChainDTO(chain),\n duration: resolution,\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetHotTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetHotTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async getStockTokens(\n chain: Chain,\n options?: API.GetTokenListOptions,\n ): Promise<Array<Token>> {\n const tokens = await this._client.ranking.getStocksTokens({\n chain: toChainDTO(chain),\n sortBy: options?.sortBy\n ? (toFieldDTO(options.sortBy) as GetStocksTokensSortByEnum)\n : undefined,\n sortDirection: options?.sortDirection\n ? (toSortDirectionDTO(\n options.sortDirection,\n ) as GetStocksTokensSortDirectionEnum)\n : undefined,\n rangeFilters: options?.filters\n ? toRangeFiltersDTO(options.filters)\n : undefined,\n launchpadPlatform: options?.filters\n ? parseLaunchPlatformFromFilters(options.filters)\n : undefined,\n searchKeywords: options?.keywords,\n excludeKeywords: options?.excludeKeywords,\n // TODO tag & filters\n });\n return tokens.map(fromTokenDTO);\n }\n\n async searchTokens(\n options?: API.SearchTokensOptions,\n ): Promise<API.SearchTokenCursorList> {\n const tokenPage = await this._client.token.search({\n chains: options?.chains?.map(toChainDTO),\n q: options?.keyword,\n limit: options?.limit,\n cursor: options?.cursor,\n sortBy: options?.sortBy\n ? (toSearchFieldDTO(options.sortBy) as SearchSortByEnum)\n : undefined,\n sort: options?.sortDirection,\n // TODO protocols\n });\n return fromTokenPage(tokenPage);\n }\n\n async swapRoute(params: API.SwapParams): Promise<API.SwapRoute> {\n const route = await this._client.dex.route({\n chain: toChainDTO(params.chain) as ChainSymbol,\n swapRouteInput: toSwapRouteInput(params),\n });\n return fromSwapRoute(route);\n }\n\n async sendTx(params: API.SendTxParams): Promise<API.SendTxResult> {\n const result = await this._client.transaction.send({\n chain: toChainDTO(params.chain),\n sendTxInput: toSendTxInput(params),\n });\n return fromSendTxResult(result);\n }\n\n async checkTxSuccess(\n chain: Chain,\n txHash: string,\n timeout?: number,\n ): Promise<boolean> {\n const { result } = await this._client.waitForJob<{\n id: string;\n status: string;\n result: { success: boolean };\n }>(txHash, timeout);\n return result.success;\n }\n\n async getWalletPortfolios(\n chain: Chain,\n address: string,\n ): Promise<WalletPortfolios> {\n const portfolios = await this._client.wallet.getBalance({\n chain: toChainDTO(chain),\n walletAddress: address,\n });\n return fromWalletPortfolios(portfolios);\n }\n\n async getWalletTradeActivities(\n chain: Chain,\n address: string,\n options?: API.GetTradeActivitiesOptions,\n ): Promise<API.CursorList<TradeActivity>> {\n const tradePage = await this._client.trade.getTrades({\n chain: toChainDTO(chain),\n walletAddress: address,\n cursor: options?.cursor,\n limit: options?.limit,\n direction: options?.direction,\n beforeTimestamp: options?.before?.getTime(),\n afterTimestamp: options?.after?.getTime(),\n beforeBlockHeight: options?.beforeBlockHeight,\n afterBlockHeight: options?.afterBlockHeight,\n poolAddress: options?.poolAddress,\n type: options?.type\n ? (options.type.toUpperCase() as GetTradesTypeEnum)\n : undefined,\n });\n return fromTradePage(tradePage);\n }\n\n async getTokenTradeActivities(\n chain: Chain,\n address: string,\n options?: API.GetTradeActivitiesOptions,\n ): Promise<API.CursorList<TradeActivity>> {\n const tradePage = await this._client.trade.getTrades({\n chain: toChainDTO(chain),\n tokenAddress: address,\n cursor: options?.cursor,\n limit: options?.limit,\n direction: options?.direction,\n beforeTimestamp: options?.before?.getTime(),\n afterTimestamp: options?.after?.getTime(),\n beforeBlockHeight: options?.beforeBlockHeight,\n afterBlockHeight: options?.afterBlockHeight,\n poolAddress: options?.poolAddress,\n type: options?.type\n ? (options.type.toUpperCase() as GetTradesTypeEnum)\n : undefined,\n });\n return fromTradePage(tradePage);\n }\n\n async getPresignedUploadUrl(): Promise<string> {\n return await this._client.ipfs.presign();\n }\n\n subscribeTokenBasic(\n chain: Chain,\n address: string,\n callback: (tokens: Array<API.TokenSubscribed>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeTokenMarketData(\n chain: Chain,\n address: string,\n callback: (marketDatas: Array<TokenMarketData>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeTokenStats(\n chain: Chain,\n address: string,\n callback: (stats: Array<TokenStats>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeTokenCandles(\n chain: Chain,\n address: string,\n resolution: TokenResolution,\n callback: (candles: Array<TokenCandle>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeWalletPnl(\n chain: Chain,\n address: string,\n callback: (pnls: Array<API.WalletPnlSubscribed>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeWalletPortfolios(\n chain: Chain,\n address: string,\n callback: (portfolios: Array<API.PortfolioSubscribed>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeWalletPortfolioPnls(\n chain: Chain,\n address: string,\n callback: (portfolioPnls: Array<API.PortfolioPnlSubscribed>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeWalletTradeActivities(\n chain: Chain,\n address: string,\n callback: (trades: Array<TradeActivity>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeTokenTradeActivities(\n chain: Chain,\n address: string,\n callback: (trades: Array<TradeActivity>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeNewTokens(\n chain: Chain,\n callback: (tokens: Array<API.TokenSubscribed>) => void,\n ): API.ISubscription {\n return this._client.stream.subscribeNewToken({\n chain: toChainDTO(chain),\n callback: (data) => callback([fromTokenSubscribed(chain, data)]),\n });\n }\n\n subscribeNewTokensBasic(\n chain: Chain,\n callback: (tokens: Array<API.TokenSubscribed>) => void,\n ): API.ISubscription {\n return this._client.stream.subscribeNewTokensMetadata({\n chain: toChainDTO(chain),\n callback: (data) =>\n callback(data.map((it) => fromTokenMetadataSubscribed(chain, it))),\n });\n }\n\n subscribeNewTokensMarketData(\n chain: Chain,\n callback: (marketDatas: Array<TokenMarketData>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n\n subscribeNewTokensStats(\n chain: Chain,\n callback: (stats: Array<TokenStats>) => void,\n ): API.ISubscription {\n throw new Error(\"Method not implemented.\");\n }\n}\n\nfunction parseLaunchPlatformFromFilters(\n filters: Array<API.TokenFilterOption>,\n): Array<string> | undefined {\n const filter = filters.find(\n (it) => it.field === \"launchedFromProtocolFamily\",\n );\n if (!filter) {\n return undefined;\n }\n if (filter.operator === \"eq\") {\n return [filter.value as string];\n }\n if (filter.operator === \"in\") {\n return filter.value as Array<string>;\n }\n console.warn(\"invalid launchedFromProtocolFamily filter\", filter);\n return undefined;\n}\n","import { PropsWithChildren } from \"react\";\nimport { DexClientContext, DexClientContextValue } from \"./DexClientContext\";\n\nexport type DexClientProviderProps = PropsWithChildren<DexClientContextValue>;\n\nexport function DexClientProvider({\n client,\n subscribeClient,\n children,\n}: DexClientProviderProps) {\n return (\n <DexClientContext.Provider value={{ client, subscribeClient }}>\n {children}\n </DexClientContext.Provider>\n );\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liberfi.io/client",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Dex Client for Liberfi React SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,8 +27,8 @@
27
27
  "@tanstack/react-query": "^5.90.2",
28
28
  "react": "^19.1.1",
29
29
  "react-dom": "^19.1.1",
30
- "@liberfi.io/utils": "0.1.9",
31
- "@liberfi.io/types": "0.1.10"
30
+ "@liberfi.io/utils": "0.1.10",
31
+ "@liberfi.io/types": "0.1.11"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^24.5.0",