@liberfi.io/react 0.1.10 → 0.1.12
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.
- package/README.md +104 -6
- package/dist/index.d.mts +61 -2
- package/dist/index.d.ts +61 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -6
package/README.md
CHANGED
|
@@ -121,11 +121,15 @@ Each subscription hook manages WebSocket lifecycle automatically (subscribe on m
|
|
|
121
121
|
|
|
122
122
|
### Types
|
|
123
123
|
|
|
124
|
-
| Name
|
|
125
|
-
|
|
|
126
|
-
| `DexClientProviderProps`
|
|
127
|
-
| `DexClientContextValue`
|
|
128
|
-
| `SubscriptionOptions`
|
|
124
|
+
| Name | Definition | Description |
|
|
125
|
+
| ------------------------- | ----------------------------------------------------------------- | ----------------------------------------- |
|
|
126
|
+
| `DexClientProviderProps` | `PropsWithChildren<{ client, subscribeClient, queryKeyPrefix? }>` | Props for `DexClientProvider`. |
|
|
127
|
+
| `DexClientContextValue` | `{ client, subscribeClient, queryKeyPrefix }` | Shape of the context value. |
|
|
128
|
+
| `SubscriptionOptions` | `{ enabled?: boolean; onError?: (error: Error) => void }` | Options for subscription hooks. |
|
|
129
|
+
| `QueryHookConfig` | `{ name, queryKey, fetch, defaultOptions? }` | Config for `createQueryHook`. |
|
|
130
|
+
| `QueryHookReturn` | `{ queryKey, fetch, useQuery }` | Return type of `createQueryHook`. |
|
|
131
|
+
| `InfiniteQueryHookConfig` | `{ name, queryKey, fetch }` | Config for `createInfiniteQueryHook`. |
|
|
132
|
+
| `InfiniteQueryHookReturn` | `{ queryKey, useInfiniteQuery }` | Return type of `createInfiniteQueryHook`. |
|
|
129
133
|
|
|
130
134
|
### Constants
|
|
131
135
|
|
|
@@ -133,6 +137,33 @@ Each subscription hook manages WebSocket lifecycle automatically (subscribe on m
|
|
|
133
137
|
| -------------------------- | ----------- | ---------------------------------- |
|
|
134
138
|
| `DEFAULT_QUERY_KEY_PREFIX` | `"liberfi"` | Default prefix for all query keys. |
|
|
135
139
|
|
|
140
|
+
### Factory Functions
|
|
141
|
+
|
|
142
|
+
#### `createQueryHook<TParams, TData>(config): QueryHookReturn<TParams, TData>`
|
|
143
|
+
|
|
144
|
+
Creates a `useQuery`-based hook, its `queryKey` builder, and a standalone `fetch` function from a single declarative config.
|
|
145
|
+
|
|
146
|
+
| Config Field | Type | Description |
|
|
147
|
+
| ---------------- | ---------------------------------------------------------- | ---------------------------------------------- |
|
|
148
|
+
| `name` | `string` | Key name segment (e.g. `"token"`). |
|
|
149
|
+
| `queryKey` | `(params: TParams) => string[]` | Builds the variable segments of the query key. |
|
|
150
|
+
| `fetch` | `(client: API.IClient, params: TParams) => Promise<TData>` | Fetches data using the API client. |
|
|
151
|
+
| `defaultOptions` | `Partial<Omit<UseQueryOptions, "queryKey" \| "queryFn">>` | Default options merged below caller options. |
|
|
152
|
+
|
|
153
|
+
Returns `{ queryKey, fetch, useQuery }`.
|
|
154
|
+
|
|
155
|
+
#### `createInfiniteQueryHook<TParams, TData>(config): InfiniteQueryHookReturn<TParams, TData>`
|
|
156
|
+
|
|
157
|
+
Creates a `useInfiniteQuery`-based hook and its `queryKey` builder for cursor-paginated endpoints. `TData` must extend `{ hasNext?: boolean; endCursor?: string }`.
|
|
158
|
+
|
|
159
|
+
| Config Field | Type | Description |
|
|
160
|
+
| ------------ | --------------------------------------------------------------------------------------- | ---------------------------------------------- |
|
|
161
|
+
| `name` | `string` | Key name segment (e.g. `"walletPortfolios"`). |
|
|
162
|
+
| `queryKey` | `(params: TParams) => string[]` | Builds the variable segments of the query key. |
|
|
163
|
+
| `fetch` | `(client: API.IClient, params: TParams, cursor: string \| undefined) => Promise<TData>` | Fetches a single page of data. |
|
|
164
|
+
|
|
165
|
+
Returns `{ queryKey, useInfiniteQuery }`.
|
|
166
|
+
|
|
136
167
|
### Utility Functions
|
|
137
168
|
|
|
138
169
|
| Function | Signature | Description |
|
|
@@ -236,6 +267,33 @@ function RefreshButton({ address }: { address: string }) {
|
|
|
236
267
|
}
|
|
237
268
|
```
|
|
238
269
|
|
|
270
|
+
### Creating a custom query hook
|
|
271
|
+
|
|
272
|
+
```tsx
|
|
273
|
+
import { createQueryHook } from "@liberfi.io/react";
|
|
274
|
+
|
|
275
|
+
interface MyDataParams {
|
|
276
|
+
chain: string;
|
|
277
|
+
id: string;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
interface MyData {
|
|
281
|
+
value: number;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
const {
|
|
285
|
+
queryKey: myDataQueryKey,
|
|
286
|
+
fetch: fetchMyData,
|
|
287
|
+
useQuery: useMyDataQuery,
|
|
288
|
+
} = createQueryHook<MyDataParams, MyData>({
|
|
289
|
+
name: "myData",
|
|
290
|
+
queryKey: (p) => [p.chain, p.id],
|
|
291
|
+
fetch: (client, p) => client.getMyData(p.chain, p.id),
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
export { myDataQueryKey, fetchMyData, useMyDataQuery };
|
|
295
|
+
```
|
|
296
|
+
|
|
239
297
|
### Infinite scrolling
|
|
240
298
|
|
|
241
299
|
```tsx
|
|
@@ -269,9 +327,49 @@ function PortfolioList({ walletAddress }: { walletAddress: string }) {
|
|
|
269
327
|
}
|
|
270
328
|
```
|
|
271
329
|
|
|
330
|
+
## Testing
|
|
331
|
+
|
|
332
|
+
### Unit Tests
|
|
333
|
+
|
|
334
|
+
Unit tests mock the API client and verify hook behavior (query keys, fetch delegation, subscription lifecycle).
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
pnpm test
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### Integration Tests
|
|
341
|
+
|
|
342
|
+
Integration tests use the real `@liberfi.io/client` to verify end-to-end API communication.
|
|
343
|
+
|
|
344
|
+
**Setup:**
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
cp .env.test.example .env.test # review and adjust URLs if needed
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
Required environment variables (in `.env.test`):
|
|
351
|
+
|
|
352
|
+
| Variable | Description |
|
|
353
|
+
| ------------------------ | ------------------------------------------------- |
|
|
354
|
+
| `CHAINSTREAM_BASE_URL` | REST API server URL |
|
|
355
|
+
| `API_BASE_URL` | Auth API base URL (for fetching the access token) |
|
|
356
|
+
| `CHAINSTREAM_STREAM_URL` | _(optional)_ WebSocket URL, defaults to SDK value |
|
|
357
|
+
|
|
358
|
+
**Run:**
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
pnpm test:integration
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
When the environment variables are not set, integration tests are automatically skipped.
|
|
365
|
+
|
|
366
|
+
**Architecture:**
|
|
367
|
+
|
|
368
|
+
- `src/__integration__/fetch.integration.test.ts` — Tests standalone `fetch*` functions against the real API in a Node environment. Validates API response shapes and end-to-end data flow.
|
|
369
|
+
- `src/__integration__/hooks.integration.test.tsx` — Tests hooks via `renderHook` with a real client, verifying provider injection and full end-to-end data fetching through React Query. Uses a custom jsdom environment (`jsdom-with-fetch.js`) that injects Node's native `fetch` and removes `XMLHttpRequest` to bypass CORS.
|
|
370
|
+
|
|
272
371
|
## Future Improvements
|
|
273
372
|
|
|
274
|
-
- Export `createQueryHook` and `createInfiniteQueryHook` factories so consumers can create custom hooks.
|
|
275
373
|
- Add a standalone `fetch` function to infinite query hooks for API consistency.
|
|
276
374
|
- Add a mutation key to `useSendTxMutation` for cache introspection.
|
|
277
375
|
- Consolidate `version.ts` global side effect into a shared utility.
|
package/dist/index.d.mts
CHANGED
|
@@ -3,7 +3,7 @@ import { PropsWithChildren } from 'react';
|
|
|
3
3
|
import * as _liberfi_io_types from '@liberfi.io/types';
|
|
4
4
|
import { API, Chain, Token, TokenResolution, TokenCandle, TokenHolder, TokenMarketData, TokenSecurity, TokenStats, Trade, WalletPnl, WalletPortfolioPnls, WalletPortfolios, Portfolio, PortfolioPnl, Activity } from '@liberfi.io/types';
|
|
5
5
|
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
6
|
-
import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
|
|
6
|
+
import { UseQueryOptions, UseQueryResult, UseInfiniteQueryOptions, InfiniteData, UseInfiniteQueryResult, UseMutationOptions } from '@tanstack/react-query';
|
|
7
7
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
declare global {
|
|
@@ -45,6 +45,65 @@ declare const DexClientContext: react.Context<DexClientContextValue | null>;
|
|
|
45
45
|
*/
|
|
46
46
|
declare function useDexClient(): DexClientContextValue;
|
|
47
47
|
|
|
48
|
+
interface QueryHookConfig<TParams, TData> {
|
|
49
|
+
/** Key name segment (e.g. `"token"`, `"newTokens"`). */
|
|
50
|
+
name: string;
|
|
51
|
+
/** Builds the variable segments of the query key from `params`. */
|
|
52
|
+
queryKey: (params: TParams) => string[];
|
|
53
|
+
/** Fetches data using the API client. */
|
|
54
|
+
fetch: (client: API.IClient, params: TParams) => Promise<TData>;
|
|
55
|
+
/** Default options merged *below* caller-supplied options. */
|
|
56
|
+
defaultOptions?: Partial<Omit<UseQueryOptions<TData, Error, TData, string[]>, "queryKey" | "queryFn">>;
|
|
57
|
+
}
|
|
58
|
+
interface QueryHookReturn<TParams, TData> {
|
|
59
|
+
/**
|
|
60
|
+
* Builds the full query key including the namespace prefix.
|
|
61
|
+
*
|
|
62
|
+
* Useful for manual cache operations such as `queryClient.invalidateQueries`
|
|
63
|
+
* or `queryClient.prefetchQuery`.
|
|
64
|
+
*
|
|
65
|
+
* @param params - Hook parameters.
|
|
66
|
+
* @param prefix - Override the default prefix (`DEFAULT_QUERY_KEY_PREFIX`).
|
|
67
|
+
*/
|
|
68
|
+
queryKey: (params: TParams, prefix?: string) => string[];
|
|
69
|
+
/** Fetches data using the API client (for use outside React). */
|
|
70
|
+
fetch: (client: API.IClient, params: TParams) => Promise<TData>;
|
|
71
|
+
/** React hook that fetches and caches data via TanStack Query. */
|
|
72
|
+
useQuery: (params: TParams, options?: Omit<UseQueryOptions<TData, Error, TData, string[]>, "queryKey" | "queryFn">) => UseQueryResult<TData, Error>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Creates a `useQuery`-based hook, its `queryKey` builder and a standalone
|
|
76
|
+
* `fetch` function from a single declarative config object.
|
|
77
|
+
*/
|
|
78
|
+
declare function createQueryHook<TParams, TData>(config: QueryHookConfig<TParams, TData>): QueryHookReturn<TParams, TData>;
|
|
79
|
+
|
|
80
|
+
interface CursorPaginatedResult {
|
|
81
|
+
hasNext?: boolean;
|
|
82
|
+
endCursor?: string;
|
|
83
|
+
}
|
|
84
|
+
interface InfiniteQueryHookConfig<TParams, TData extends CursorPaginatedResult> {
|
|
85
|
+
/** Key name segment (e.g. `"walletPortfolios"`). */
|
|
86
|
+
name: string;
|
|
87
|
+
/** Builds the variable segments of the query key from `params`. */
|
|
88
|
+
queryKey: (params: TParams) => string[];
|
|
89
|
+
/** Fetches a single page of data. */
|
|
90
|
+
fetch: (client: API.IClient, params: TParams, cursor: string | undefined) => Promise<TData>;
|
|
91
|
+
}
|
|
92
|
+
interface InfiniteQueryHookReturn<TParams, TData extends CursorPaginatedResult> {
|
|
93
|
+
/**
|
|
94
|
+
* Builds the full query key including the namespace prefix and an
|
|
95
|
+
* `"infinite"` tag to distinguish it from the non-infinite variant.
|
|
96
|
+
*/
|
|
97
|
+
queryKey: (params: TParams, prefix?: string) => string[];
|
|
98
|
+
/** React hook that fetches cursor-paginated data via TanStack Query. */
|
|
99
|
+
useInfiniteQuery: (params: TParams, options?: Omit<UseInfiniteQueryOptions<TData, Error, InfiniteData<TData>, string[], string | undefined>, "queryKey" | "queryFn" | "initialPageParam" | "getNextPageParam">) => UseInfiniteQueryResult<InfiniteData<TData>, Error>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Creates a `useInfiniteQuery`-based hook and its `queryKey` builder for
|
|
103
|
+
* cursor-paginated endpoints.
|
|
104
|
+
*/
|
|
105
|
+
declare function createInfiniteQueryHook<TParams, TData extends CursorPaginatedResult>(config: InfiniteQueryHookConfig<TParams, TData>): InfiniteQueryHookReturn<TParams, TData>;
|
|
106
|
+
|
|
48
107
|
interface SubscriptionOptions {
|
|
49
108
|
/** Set to `false` to pause the subscription. Defaults to `true`. */
|
|
50
109
|
enabled?: boolean;
|
|
@@ -439,4 +498,4 @@ type DexClientProviderProps = PropsWithChildren<{
|
|
|
439
498
|
*/
|
|
440
499
|
declare function DexClientProvider({ client, subscribeClient, queryKeyPrefix, children, }: DexClientProviderProps): react_jsx_runtime.JSX.Element;
|
|
441
500
|
|
|
442
|
-
export { DEFAULT_QUERY_KEY_PREFIX, DexClientContext, type DexClientContextValue, DexClientProvider, type DexClientProviderProps, type SubscriptionOptions, type UseFinalStretchTokensQueryParams, type UseFinalStretchTokensSubscriptionParams, type UseMigratedTokensQueryParams, type UseMigratedTokensSubscriptionParams, type UseNewTokensQueryParams, type UseNewTokensSubscriptionParams, type UseSearchTokensQueryParams, type UseSendTxMutationParams, type UseStockTokensQueryParams, type UseStockTokensSubscriptionParams, type UseSwapRouteQueryParams, type UseTokenActivitiesQueryParams, type UseTokenActivitiesSubscriptionParams, type UseTokenCandlesQueryParams, type UseTokenCandlesSubscriptionParams, type UseTokenHoldersQueryParams, type UseTokenMarketDataQueryParams, type UseTokenQueryParams, type UseTokenSecurityQueryParams, type UseTokenStatsQueryParams, type UseTokenSubscriptionParams, type UseTokenTradesQueryParams, type UseTokenTradesSubscriptionParams, type UseTokensQueryParams, type UseTrendingTokensQueryParams, type UseTrendingTokensSubscriptionParams, type UseTxSuccessQueryParams, type UseWalletActivitiesQueryParams, type UseWalletActivitiesSubscriptionParams, type UseWalletPnlQueryParams, type UseWalletPnlSubscriptionParams, type UseWalletPortfolioPnlsByTokensQueryParams, type UseWalletPortfolioPnlsInfiniteQueryParams, type UseWalletPortfolioPnlsQueryParams, type UseWalletPortfolioPnlsSubscriptionParams, type UseWalletPortfoliosByTokensQueryParams, type UseWalletPortfoliosInfiniteQueryParams, type UseWalletPortfoliosQueryParams, type UseWalletPortfoliosSubscriptionParams, type UseWalletTradesQueryParams, type UseWalletTradesSubscriptionParams, fetchFinalStretchTokens, fetchMigratedTokens, fetchNewTokens, fetchPresignedUploadUrl, fetchSearchTokens, fetchStockTokens, fetchSwapRoute, fetchToken, fetchTokenActivities, fetchTokenCandles, fetchTokenHolders, fetchTokenMarketData, fetchTokenSecurity, fetchTokenStats, fetchTokenTrades, fetchTokens, fetchTrendingTokens, fetchTxSuccess, fetchWalletActivities, fetchWalletPnl, fetchWalletPortfolioPnls, fetchWalletPortfolioPnlsByTokens, fetchWalletPortfolios, fetchWalletPortfoliosByTokens, fetchWalletTrades, finalStretchTokensQueryKey, migratedTokensQueryKey, newTokensQueryKey, presignedUploadUrlQueryKey, searchTokensQueryKey, sendTx, stockTokensQueryKey, swapRouteQueryKey, toKeySegment, toSortedKeySegment, tokenActivitiesQueryKey, tokenCandlesQueryKey, tokenHoldersQueryKey, tokenMarketDataQueryKey, tokenQueryKey, tokenSecurityQueryKey, tokenStatsQueryKey, tokenTradesQueryKey, tokensQueryKey, trendingTokensQueryKey, txSuccessQueryKey, useDexClient, useFinalStretchTokensQuery, useFinalStretchTokensSubscription, useMigratedTokensQuery, useMigratedTokensSubscription, useNewTokensQuery, useNewTokensSubscription, usePresignedUploadUrlQuery, useSearchTokensQuery, useSendTxMutation, useStockTokensQuery, useStockTokensSubscription, useSwapRouteQuery, useTokenActivitiesQuery, useTokenActivitiesSubscription, useTokenCandlesQuery, useTokenCandlesSubscription, useTokenHoldersQuery, useTokenMarketDataQuery, useTokenQuery, useTokenSecurityQuery, useTokenStatsQuery, useTokenSubscription, useTokenTradesQuery, useTokenTradesSubscription, useTokensQuery, useTrendingTokensQuery, useTrendingTokensSubscription, useTxSuccessQuery, useWalletActivitiesQuery, useWalletActivitiesSubscription, useWalletPnlQuery, useWalletPnlSubscription, useWalletPortfolioPnlsByTokensQuery, useWalletPortfolioPnlsInfiniteQuery, useWalletPortfolioPnlsQuery, useWalletPortfolioPnlsSubscription, useWalletPortfoliosByTokensQuery, useWalletPortfoliosInfiniteQuery, useWalletPortfoliosQuery, useWalletPortfoliosSubscription, useWalletTradesQuery, useWalletTradesSubscription, walletActivitiesQueryKey, walletPnlQueryKey, walletPortfolioPnlsByTokensQueryKey, walletPortfolioPnlsInfiniteQueryKey, walletPortfolioPnlsQueryKey, walletPortfoliosByTokensQueryKey, walletPortfoliosInfiniteQueryKey, walletPortfoliosQueryKey, walletTradesQueryKey };
|
|
501
|
+
export { DEFAULT_QUERY_KEY_PREFIX, DexClientContext, type DexClientContextValue, DexClientProvider, type DexClientProviderProps, type InfiniteQueryHookConfig, type InfiniteQueryHookReturn, type QueryHookConfig, type QueryHookReturn, type SubscriptionOptions, type UseFinalStretchTokensQueryParams, type UseFinalStretchTokensSubscriptionParams, type UseMigratedTokensQueryParams, type UseMigratedTokensSubscriptionParams, type UseNewTokensQueryParams, type UseNewTokensSubscriptionParams, type UseSearchTokensQueryParams, type UseSendTxMutationParams, type UseStockTokensQueryParams, type UseStockTokensSubscriptionParams, type UseSwapRouteQueryParams, type UseTokenActivitiesQueryParams, type UseTokenActivitiesSubscriptionParams, type UseTokenCandlesQueryParams, type UseTokenCandlesSubscriptionParams, type UseTokenHoldersQueryParams, type UseTokenMarketDataQueryParams, type UseTokenQueryParams, type UseTokenSecurityQueryParams, type UseTokenStatsQueryParams, type UseTokenSubscriptionParams, type UseTokenTradesQueryParams, type UseTokenTradesSubscriptionParams, type UseTokensQueryParams, type UseTrendingTokensQueryParams, type UseTrendingTokensSubscriptionParams, type UseTxSuccessQueryParams, type UseWalletActivitiesQueryParams, type UseWalletActivitiesSubscriptionParams, type UseWalletPnlQueryParams, type UseWalletPnlSubscriptionParams, type UseWalletPortfolioPnlsByTokensQueryParams, type UseWalletPortfolioPnlsInfiniteQueryParams, type UseWalletPortfolioPnlsQueryParams, type UseWalletPortfolioPnlsSubscriptionParams, type UseWalletPortfoliosByTokensQueryParams, type UseWalletPortfoliosInfiniteQueryParams, type UseWalletPortfoliosQueryParams, type UseWalletPortfoliosSubscriptionParams, type UseWalletTradesQueryParams, type UseWalletTradesSubscriptionParams, createInfiniteQueryHook, createQueryHook, fetchFinalStretchTokens, fetchMigratedTokens, fetchNewTokens, fetchPresignedUploadUrl, fetchSearchTokens, fetchStockTokens, fetchSwapRoute, fetchToken, fetchTokenActivities, fetchTokenCandles, fetchTokenHolders, fetchTokenMarketData, fetchTokenSecurity, fetchTokenStats, fetchTokenTrades, fetchTokens, fetchTrendingTokens, fetchTxSuccess, fetchWalletActivities, fetchWalletPnl, fetchWalletPortfolioPnls, fetchWalletPortfolioPnlsByTokens, fetchWalletPortfolios, fetchWalletPortfoliosByTokens, fetchWalletTrades, finalStretchTokensQueryKey, migratedTokensQueryKey, newTokensQueryKey, presignedUploadUrlQueryKey, searchTokensQueryKey, sendTx, stockTokensQueryKey, swapRouteQueryKey, toKeySegment, toSortedKeySegment, tokenActivitiesQueryKey, tokenCandlesQueryKey, tokenHoldersQueryKey, tokenMarketDataQueryKey, tokenQueryKey, tokenSecurityQueryKey, tokenStatsQueryKey, tokenTradesQueryKey, tokensQueryKey, trendingTokensQueryKey, txSuccessQueryKey, useDexClient, useFinalStretchTokensQuery, useFinalStretchTokensSubscription, useMigratedTokensQuery, useMigratedTokensSubscription, useNewTokensQuery, useNewTokensSubscription, usePresignedUploadUrlQuery, useSearchTokensQuery, useSendTxMutation, useStockTokensQuery, useStockTokensSubscription, useSwapRouteQuery, useTokenActivitiesQuery, useTokenActivitiesSubscription, useTokenCandlesQuery, useTokenCandlesSubscription, useTokenHoldersQuery, useTokenMarketDataQuery, useTokenQuery, useTokenSecurityQuery, useTokenStatsQuery, useTokenSubscription, useTokenTradesQuery, useTokenTradesSubscription, useTokensQuery, useTrendingTokensQuery, useTrendingTokensSubscription, useTxSuccessQuery, useWalletActivitiesQuery, useWalletActivitiesSubscription, useWalletPnlQuery, useWalletPnlSubscription, useWalletPortfolioPnlsByTokensQuery, useWalletPortfolioPnlsInfiniteQuery, useWalletPortfolioPnlsQuery, useWalletPortfolioPnlsSubscription, useWalletPortfoliosByTokensQuery, useWalletPortfoliosInfiniteQuery, useWalletPortfoliosQuery, useWalletPortfoliosSubscription, useWalletTradesQuery, useWalletTradesSubscription, walletActivitiesQueryKey, walletPnlQueryKey, walletPortfolioPnlsByTokensQueryKey, walletPortfolioPnlsInfiniteQueryKey, walletPortfolioPnlsQueryKey, walletPortfoliosByTokensQueryKey, walletPortfoliosInfiniteQueryKey, walletPortfoliosQueryKey, walletTradesQueryKey };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { PropsWithChildren } from 'react';
|
|
|
3
3
|
import * as _liberfi_io_types from '@liberfi.io/types';
|
|
4
4
|
import { API, Chain, Token, TokenResolution, TokenCandle, TokenHolder, TokenMarketData, TokenSecurity, TokenStats, Trade, WalletPnl, WalletPortfolioPnls, WalletPortfolios, Portfolio, PortfolioPnl, Activity } from '@liberfi.io/types';
|
|
5
5
|
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
6
|
-
import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
|
|
6
|
+
import { UseQueryOptions, UseQueryResult, UseInfiniteQueryOptions, InfiniteData, UseInfiniteQueryResult, UseMutationOptions } from '@tanstack/react-query';
|
|
7
7
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
declare global {
|
|
@@ -45,6 +45,65 @@ declare const DexClientContext: react.Context<DexClientContextValue | null>;
|
|
|
45
45
|
*/
|
|
46
46
|
declare function useDexClient(): DexClientContextValue;
|
|
47
47
|
|
|
48
|
+
interface QueryHookConfig<TParams, TData> {
|
|
49
|
+
/** Key name segment (e.g. `"token"`, `"newTokens"`). */
|
|
50
|
+
name: string;
|
|
51
|
+
/** Builds the variable segments of the query key from `params`. */
|
|
52
|
+
queryKey: (params: TParams) => string[];
|
|
53
|
+
/** Fetches data using the API client. */
|
|
54
|
+
fetch: (client: API.IClient, params: TParams) => Promise<TData>;
|
|
55
|
+
/** Default options merged *below* caller-supplied options. */
|
|
56
|
+
defaultOptions?: Partial<Omit<UseQueryOptions<TData, Error, TData, string[]>, "queryKey" | "queryFn">>;
|
|
57
|
+
}
|
|
58
|
+
interface QueryHookReturn<TParams, TData> {
|
|
59
|
+
/**
|
|
60
|
+
* Builds the full query key including the namespace prefix.
|
|
61
|
+
*
|
|
62
|
+
* Useful for manual cache operations such as `queryClient.invalidateQueries`
|
|
63
|
+
* or `queryClient.prefetchQuery`.
|
|
64
|
+
*
|
|
65
|
+
* @param params - Hook parameters.
|
|
66
|
+
* @param prefix - Override the default prefix (`DEFAULT_QUERY_KEY_PREFIX`).
|
|
67
|
+
*/
|
|
68
|
+
queryKey: (params: TParams, prefix?: string) => string[];
|
|
69
|
+
/** Fetches data using the API client (for use outside React). */
|
|
70
|
+
fetch: (client: API.IClient, params: TParams) => Promise<TData>;
|
|
71
|
+
/** React hook that fetches and caches data via TanStack Query. */
|
|
72
|
+
useQuery: (params: TParams, options?: Omit<UseQueryOptions<TData, Error, TData, string[]>, "queryKey" | "queryFn">) => UseQueryResult<TData, Error>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Creates a `useQuery`-based hook, its `queryKey` builder and a standalone
|
|
76
|
+
* `fetch` function from a single declarative config object.
|
|
77
|
+
*/
|
|
78
|
+
declare function createQueryHook<TParams, TData>(config: QueryHookConfig<TParams, TData>): QueryHookReturn<TParams, TData>;
|
|
79
|
+
|
|
80
|
+
interface CursorPaginatedResult {
|
|
81
|
+
hasNext?: boolean;
|
|
82
|
+
endCursor?: string;
|
|
83
|
+
}
|
|
84
|
+
interface InfiniteQueryHookConfig<TParams, TData extends CursorPaginatedResult> {
|
|
85
|
+
/** Key name segment (e.g. `"walletPortfolios"`). */
|
|
86
|
+
name: string;
|
|
87
|
+
/** Builds the variable segments of the query key from `params`. */
|
|
88
|
+
queryKey: (params: TParams) => string[];
|
|
89
|
+
/** Fetches a single page of data. */
|
|
90
|
+
fetch: (client: API.IClient, params: TParams, cursor: string | undefined) => Promise<TData>;
|
|
91
|
+
}
|
|
92
|
+
interface InfiniteQueryHookReturn<TParams, TData extends CursorPaginatedResult> {
|
|
93
|
+
/**
|
|
94
|
+
* Builds the full query key including the namespace prefix and an
|
|
95
|
+
* `"infinite"` tag to distinguish it from the non-infinite variant.
|
|
96
|
+
*/
|
|
97
|
+
queryKey: (params: TParams, prefix?: string) => string[];
|
|
98
|
+
/** React hook that fetches cursor-paginated data via TanStack Query. */
|
|
99
|
+
useInfiniteQuery: (params: TParams, options?: Omit<UseInfiniteQueryOptions<TData, Error, InfiniteData<TData>, string[], string | undefined>, "queryKey" | "queryFn" | "initialPageParam" | "getNextPageParam">) => UseInfiniteQueryResult<InfiniteData<TData>, Error>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Creates a `useInfiniteQuery`-based hook and its `queryKey` builder for
|
|
103
|
+
* cursor-paginated endpoints.
|
|
104
|
+
*/
|
|
105
|
+
declare function createInfiniteQueryHook<TParams, TData extends CursorPaginatedResult>(config: InfiniteQueryHookConfig<TParams, TData>): InfiniteQueryHookReturn<TParams, TData>;
|
|
106
|
+
|
|
48
107
|
interface SubscriptionOptions {
|
|
49
108
|
/** Set to `false` to pause the subscription. Defaults to `true`. */
|
|
50
109
|
enabled?: boolean;
|
|
@@ -439,4 +498,4 @@ type DexClientProviderProps = PropsWithChildren<{
|
|
|
439
498
|
*/
|
|
440
499
|
declare function DexClientProvider({ client, subscribeClient, queryKeyPrefix, children, }: DexClientProviderProps): react_jsx_runtime.JSX.Element;
|
|
441
500
|
|
|
442
|
-
export { DEFAULT_QUERY_KEY_PREFIX, DexClientContext, type DexClientContextValue, DexClientProvider, type DexClientProviderProps, type SubscriptionOptions, type UseFinalStretchTokensQueryParams, type UseFinalStretchTokensSubscriptionParams, type UseMigratedTokensQueryParams, type UseMigratedTokensSubscriptionParams, type UseNewTokensQueryParams, type UseNewTokensSubscriptionParams, type UseSearchTokensQueryParams, type UseSendTxMutationParams, type UseStockTokensQueryParams, type UseStockTokensSubscriptionParams, type UseSwapRouteQueryParams, type UseTokenActivitiesQueryParams, type UseTokenActivitiesSubscriptionParams, type UseTokenCandlesQueryParams, type UseTokenCandlesSubscriptionParams, type UseTokenHoldersQueryParams, type UseTokenMarketDataQueryParams, type UseTokenQueryParams, type UseTokenSecurityQueryParams, type UseTokenStatsQueryParams, type UseTokenSubscriptionParams, type UseTokenTradesQueryParams, type UseTokenTradesSubscriptionParams, type UseTokensQueryParams, type UseTrendingTokensQueryParams, type UseTrendingTokensSubscriptionParams, type UseTxSuccessQueryParams, type UseWalletActivitiesQueryParams, type UseWalletActivitiesSubscriptionParams, type UseWalletPnlQueryParams, type UseWalletPnlSubscriptionParams, type UseWalletPortfolioPnlsByTokensQueryParams, type UseWalletPortfolioPnlsInfiniteQueryParams, type UseWalletPortfolioPnlsQueryParams, type UseWalletPortfolioPnlsSubscriptionParams, type UseWalletPortfoliosByTokensQueryParams, type UseWalletPortfoliosInfiniteQueryParams, type UseWalletPortfoliosQueryParams, type UseWalletPortfoliosSubscriptionParams, type UseWalletTradesQueryParams, type UseWalletTradesSubscriptionParams, fetchFinalStretchTokens, fetchMigratedTokens, fetchNewTokens, fetchPresignedUploadUrl, fetchSearchTokens, fetchStockTokens, fetchSwapRoute, fetchToken, fetchTokenActivities, fetchTokenCandles, fetchTokenHolders, fetchTokenMarketData, fetchTokenSecurity, fetchTokenStats, fetchTokenTrades, fetchTokens, fetchTrendingTokens, fetchTxSuccess, fetchWalletActivities, fetchWalletPnl, fetchWalletPortfolioPnls, fetchWalletPortfolioPnlsByTokens, fetchWalletPortfolios, fetchWalletPortfoliosByTokens, fetchWalletTrades, finalStretchTokensQueryKey, migratedTokensQueryKey, newTokensQueryKey, presignedUploadUrlQueryKey, searchTokensQueryKey, sendTx, stockTokensQueryKey, swapRouteQueryKey, toKeySegment, toSortedKeySegment, tokenActivitiesQueryKey, tokenCandlesQueryKey, tokenHoldersQueryKey, tokenMarketDataQueryKey, tokenQueryKey, tokenSecurityQueryKey, tokenStatsQueryKey, tokenTradesQueryKey, tokensQueryKey, trendingTokensQueryKey, txSuccessQueryKey, useDexClient, useFinalStretchTokensQuery, useFinalStretchTokensSubscription, useMigratedTokensQuery, useMigratedTokensSubscription, useNewTokensQuery, useNewTokensSubscription, usePresignedUploadUrlQuery, useSearchTokensQuery, useSendTxMutation, useStockTokensQuery, useStockTokensSubscription, useSwapRouteQuery, useTokenActivitiesQuery, useTokenActivitiesSubscription, useTokenCandlesQuery, useTokenCandlesSubscription, useTokenHoldersQuery, useTokenMarketDataQuery, useTokenQuery, useTokenSecurityQuery, useTokenStatsQuery, useTokenSubscription, useTokenTradesQuery, useTokenTradesSubscription, useTokensQuery, useTrendingTokensQuery, useTrendingTokensSubscription, useTxSuccessQuery, useWalletActivitiesQuery, useWalletActivitiesSubscription, useWalletPnlQuery, useWalletPnlSubscription, useWalletPortfolioPnlsByTokensQuery, useWalletPortfolioPnlsInfiniteQuery, useWalletPortfolioPnlsQuery, useWalletPortfolioPnlsSubscription, useWalletPortfoliosByTokensQuery, useWalletPortfoliosInfiniteQuery, useWalletPortfoliosQuery, useWalletPortfoliosSubscription, useWalletTradesQuery, useWalletTradesSubscription, walletActivitiesQueryKey, walletPnlQueryKey, walletPortfolioPnlsByTokensQueryKey, walletPortfolioPnlsInfiniteQueryKey, walletPortfolioPnlsQueryKey, walletPortfoliosByTokensQueryKey, walletPortfoliosInfiniteQueryKey, walletPortfoliosQueryKey, walletTradesQueryKey };
|
|
501
|
+
export { DEFAULT_QUERY_KEY_PREFIX, DexClientContext, type DexClientContextValue, DexClientProvider, type DexClientProviderProps, type InfiniteQueryHookConfig, type InfiniteQueryHookReturn, type QueryHookConfig, type QueryHookReturn, type SubscriptionOptions, type UseFinalStretchTokensQueryParams, type UseFinalStretchTokensSubscriptionParams, type UseMigratedTokensQueryParams, type UseMigratedTokensSubscriptionParams, type UseNewTokensQueryParams, type UseNewTokensSubscriptionParams, type UseSearchTokensQueryParams, type UseSendTxMutationParams, type UseStockTokensQueryParams, type UseStockTokensSubscriptionParams, type UseSwapRouteQueryParams, type UseTokenActivitiesQueryParams, type UseTokenActivitiesSubscriptionParams, type UseTokenCandlesQueryParams, type UseTokenCandlesSubscriptionParams, type UseTokenHoldersQueryParams, type UseTokenMarketDataQueryParams, type UseTokenQueryParams, type UseTokenSecurityQueryParams, type UseTokenStatsQueryParams, type UseTokenSubscriptionParams, type UseTokenTradesQueryParams, type UseTokenTradesSubscriptionParams, type UseTokensQueryParams, type UseTrendingTokensQueryParams, type UseTrendingTokensSubscriptionParams, type UseTxSuccessQueryParams, type UseWalletActivitiesQueryParams, type UseWalletActivitiesSubscriptionParams, type UseWalletPnlQueryParams, type UseWalletPnlSubscriptionParams, type UseWalletPortfolioPnlsByTokensQueryParams, type UseWalletPortfolioPnlsInfiniteQueryParams, type UseWalletPortfolioPnlsQueryParams, type UseWalletPortfolioPnlsSubscriptionParams, type UseWalletPortfoliosByTokensQueryParams, type UseWalletPortfoliosInfiniteQueryParams, type UseWalletPortfoliosQueryParams, type UseWalletPortfoliosSubscriptionParams, type UseWalletTradesQueryParams, type UseWalletTradesSubscriptionParams, createInfiniteQueryHook, createQueryHook, fetchFinalStretchTokens, fetchMigratedTokens, fetchNewTokens, fetchPresignedUploadUrl, fetchSearchTokens, fetchStockTokens, fetchSwapRoute, fetchToken, fetchTokenActivities, fetchTokenCandles, fetchTokenHolders, fetchTokenMarketData, fetchTokenSecurity, fetchTokenStats, fetchTokenTrades, fetchTokens, fetchTrendingTokens, fetchTxSuccess, fetchWalletActivities, fetchWalletPnl, fetchWalletPortfolioPnls, fetchWalletPortfolioPnlsByTokens, fetchWalletPortfolios, fetchWalletPortfoliosByTokens, fetchWalletTrades, finalStretchTokensQueryKey, migratedTokensQueryKey, newTokensQueryKey, presignedUploadUrlQueryKey, searchTokensQueryKey, sendTx, stockTokensQueryKey, swapRouteQueryKey, toKeySegment, toSortedKeySegment, tokenActivitiesQueryKey, tokenCandlesQueryKey, tokenHoldersQueryKey, tokenMarketDataQueryKey, tokenQueryKey, tokenSecurityQueryKey, tokenStatsQueryKey, tokenTradesQueryKey, tokensQueryKey, trendingTokensQueryKey, txSuccessQueryKey, useDexClient, useFinalStretchTokensQuery, useFinalStretchTokensSubscription, useMigratedTokensQuery, useMigratedTokensSubscription, useNewTokensQuery, useNewTokensSubscription, usePresignedUploadUrlQuery, useSearchTokensQuery, useSendTxMutation, useStockTokensQuery, useStockTokensSubscription, useSwapRouteQuery, useTokenActivitiesQuery, useTokenActivitiesSubscription, useTokenCandlesQuery, useTokenCandlesSubscription, useTokenHoldersQuery, useTokenMarketDataQuery, useTokenQuery, useTokenSecurityQuery, useTokenStatsQuery, useTokenSubscription, useTokenTradesQuery, useTokenTradesSubscription, useTokensQuery, useTrendingTokensQuery, useTrendingTokensSubscription, useTxSuccessQuery, useWalletActivitiesQuery, useWalletActivitiesSubscription, useWalletPnlQuery, useWalletPnlSubscription, useWalletPortfolioPnlsByTokensQuery, useWalletPortfolioPnlsInfiniteQuery, useWalletPortfolioPnlsQuery, useWalletPortfolioPnlsSubscription, useWalletPortfoliosByTokensQuery, useWalletPortfoliosInfiniteQuery, useWalletPortfoliosQuery, useWalletPortfoliosSubscription, useWalletTradesQuery, useWalletTradesSubscription, walletActivitiesQueryKey, walletPnlQueryKey, walletPortfolioPnlsByTokensQueryKey, walletPortfolioPnlsInfiniteQueryKey, walletPortfolioPnlsQueryKey, walletPortfoliosByTokensQueryKey, walletPortfoliosInfiniteQueryKey, walletPortfoliosQueryKey, walletTradesQueryKey };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var react=require('react'),reactQuery=require('@tanstack/react-query'),jsxRuntime=require('react/jsx-runtime');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/react"]="0.1.10");var y="liberfi",d=react.createContext(null);function a(){let e=react.useContext(d);if(e===null)throw new Error("useDexClient must be used within a DexClientProvider");return e}function i(e){return e==null?"":e instanceof Date?e.toISOString():String(e)}function c(e){return !e||e.length===0?"[]":JSON.stringify([...e].sort())}function s(e){function r(n,l=y){return [l,e.name,...e.queryKey(n)]}function t(n,l){return e.fetch(n,l)}function o(n,l={}){let{client:m,queryKeyPrefix:f}=a();return reactQuery.useQuery({queryKey:r(n,f),queryFn:()=>e.fetch(m,n),...e.defaultOptions,...l})}return {queryKey:r,fetch:t,useQuery:o}}var {queryKey:L,fetch:N,useQuery:G}=s({name:"finalStretchTokens",queryKey:e=>[e.chain,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,...t})=>e.getFinalStretchTokens(r,t)});var {queryKey:J,fetch:j,useQuery:z}=s({name:"migratedTokens",queryKey:e=>[e.chain,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,...t})=>e.getMigratedTokens(r,t)});var {queryKey:re,fetch:te,useQuery:oe}=s({name:"newTokens",queryKey:e=>[e.chain,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,...t})=>e.getNewTokens(r,t)});function b(e=y){return [e,"presignedUploadUrl"]}async function S(e){return await e.getPresignedUploadUrl()}function ce(e={}){let{client:r,queryKeyPrefix:t}=a();return reactQuery.useQuery({queryKey:b(t),queryFn:async()=>S(r),staleTime:0,...e})}var {queryKey:me,fetch:de,useQuery:pe}=s({name:"searchTokens",queryKey:e=>[i(e.cursor),i(e.limit),i(e.direction),c(e.chains),i(e.keyword),c(e.filters),i(e.sortBy),i(e.sortDirection)],fetch:(e,r)=>e.searchTokens(r)});async function C(e,r){return await e.sendTx(r)}function xe(e={}){let{client:r}=a();return reactQuery.useMutation({mutationFn:async t=>C(r,t),...e})}var {queryKey:Ce,fetch:ge,useQuery:Ae}=s({name:"stockTokens",queryKey:e=>[e.chain,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,...t})=>e.getStockTokens(r,t)});var {queryKey:De,fetch:qe,useQuery:We}=s({name:"swapRoute",queryKey:e=>[e.chain,e.userAddress,e.input,e.output,e.mode,e.amount,i(e.slippage),i(e.priorityFee),i(e.tipFee),i(e.isAntiMev)],fetch:(e,r)=>e.swapRoute(r)});var {queryKey:ve,fetch:He,useQuery:Re}=s({name:"tokenCandles",queryKey:e=>[e.chain,e.address,e.resolution,i(e.after),i(e.before),i(e.limit)],fetch:(e,{chain:r,address:t,resolution:o,...n})=>e.getTokenCandles(r,t,o,n)});var {queryKey:Me,fetch:Le,useQuery:Ne}=s({name:"tokenHolders",queryKey:e=>[e.chain,e.address,i(e.cursor),i(e.limit),i(e.direction)],fetch:(e,{chain:r,address:t,...o})=>e.getTokenHolders(r,t,o)});var {queryKey:Ye,fetch:Xe,useQuery:Je}=s({name:"tokenMarketData",queryKey:e=>[e.chain,e.address],fetch:(e,r)=>e.getTokenMarketData(r.chain,r.address)});var {queryKey:Ze,fetch:$e,useQuery:er}=s({name:"token",queryKey:e=>[e.chain,e.address],fetch:(e,r)=>e.getToken(r.chain,r.address)});var {queryKey:or,fetch:ir,useQuery:nr}=s({name:"tokenSecurity",queryKey:e=>[e.chain,e.address],fetch:(e,r)=>e.getTokenSecurity(r.chain,r.address)});var {queryKey:ur,fetch:cr,useQuery:fr}=s({name:"tokens",queryKey:e=>[e.chain,[...e.addresses].sort().join(",")],fetch:(e,r)=>e.getTokens(r.chain,r.addresses)});var {queryKey:mr,fetch:dr,useQuery:pr}=s({name:"tokenStats",queryKey:e=>[e.chain,e.address],fetch:(e,r)=>e.getTokenStats(r.chain,r.address)});var {queryKey:kr,fetch:xr,useQuery:br}=s({name:"tokenTrades",queryKey:e=>[e.chain,e.address,i(e.before),i(e.after),i(e.beforeBlockHeight),i(e.afterBlockHeight),i(e.type),i(e.poolAddress)],fetch:(e,{chain:r,address:t,...o})=>e.getTokenTrades(r,t,o)});var {queryKey:gr,fetch:Ar,useQuery:Kr}=s({name:"trendingTokens",queryKey:e=>[e.chain,e.resolution,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,resolution:t,...o})=>e.getTrendingTokens(r,t,o)});var {queryKey:qr,fetch:Wr,useQuery:Or}=s({name:"txSuccess",queryKey:e=>[e.chain,e.txHash,i(e.timeout)],fetch:(e,{chain:r,txHash:t,timeout:o})=>e.checkTxSuccess(r,t,o)});var {queryKey:Hr,fetch:Rr,useQuery:Fr}=s({name:"walletPnl",queryKey:e=>[e.chain,e.address,i(e.resolution??"all")],fetch:(e,{chain:r,address:t,resolution:o})=>e.getWalletPnl(r,t,o)});var {queryKey:Lr,fetch:Nr,useQuery:Gr}=s({name:"walletPortfolioPnls",queryKey:e=>[e.chain,e.address,i(e.cursor),i(e.limit)],fetch:(e,{chain:r,address:t,cursor:o,limit:n})=>e.getWalletPortfolioPnls(r,t,{cursor:o,limit:n})});function p(e){function r(o,n=y){return [n,e.name,"infinite",...e.queryKey(o)]}function t(o,n={}){let{client:l,queryKeyPrefix:m}=a();return reactQuery.useInfiniteQuery({queryKey:r(o,m),queryFn:({pageParam:f})=>e.fetch(l,o,f),initialPageParam:void 0,getNextPageParam:f=>f.hasNext?f.endCursor:void 0,...n})}return {queryKey:r,useInfiniteQuery:t}}var {queryKey:$r,useInfiniteQuery:et}=p({name:"walletPortfolioPnls",queryKey:e=>[e.chain,e.address,i(e.limit)],fetch:(e,r,t)=>e.getWalletPortfolioPnls(r.chain,r.address,{cursor:t,limit:r.limit??100})});var {queryKey:it,fetch:nt,useQuery:st}=s({name:"walletPortfolios",queryKey:e=>[e.chain,e.address,i(e.cursor),i(e.limit)],fetch:(e,{chain:r,address:t,cursor:o,limit:n})=>e.getWalletPortfolios(r,t,{cursor:o,limit:n})});var {queryKey:ct,fetch:ft,useQuery:lt}=s({name:"walletPortfoliosByTokens",queryKey:e=>[e.chain,e.address,...[...e.tokenAddresses].sort()],fetch:(e,{chain:r,address:t,tokenAddresses:o})=>e.getWalletPortfoliosByTokens(r,t,o)});var {queryKey:pt,useInfiniteQuery:Pt}=p({name:"walletPortfolios",queryKey:e=>[e.chain,e.address,i(e.limit)],fetch:(e,r,t)=>e.getWalletPortfolios(r.chain,r.address,{cursor:t,limit:r.limit??100})});var {queryKey:kt,fetch:xt,useQuery:bt}=s({name:"walletPortfolioPnlsByTokens",queryKey:e=>[e.chain,e.address,...[...e.tokenAddresses].sort()],fetch:(e,{chain:r,address:t,tokenAddresses:o})=>e.getWalletPortfolioPnlsByTokens(r,t,o)});var {queryKey:gt,fetch:At,useQuery:Kt}=s({name:"walletTrades",queryKey:e=>[e.chain,e.address,i(e.before),i(e.after),i(e.beforeBlockHeight),i(e.afterBlockHeight),i(e.type),i(e.poolAddress)],fetch:(e,{chain:r,address:t,...o})=>e.getWalletTrades(r,t,o)});var {queryKey:qt,fetch:Wt,useQuery:Ot}=s({name:"tokenActivities",queryKey:e=>[e.chain,e.address,i(e.before),i(e.after),i(e.beforeBlockHeight),i(e.afterBlockHeight),i(e.type),i(e.poolAddress)],fetch:(e,{chain:r,address:t,...o})=>e.getTokenActivities(r,t,o)});var {queryKey:Ht,fetch:Rt,useQuery:Ft}=s({name:"walletActivities",queryKey:e=>[e.chain,e.address,i(e.before),i(e.after),i(e.beforeBlockHeight),i(e.afterBlockHeight),i(e.type),i(e.poolAddress)],fetch:(e,{chain:r,address:t,...o})=>e.getWalletActivities(r,t,o)});function u(e,r,t,o){let n=react.useRef(r);n.current=r;let l=react.useRef(o?.onError);l.current=o?.onError,react.useEffect(()=>{if(o?.enabled===false)return;let m;try{m=e(f=>n.current(f));}catch(f){l.current?.(f instanceof Error?f:new Error(String(f)));}return ()=>m?.unsubscribe()},t);}function Gt(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeToken(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function Jt(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeTokenCandles(e.chain,e.address,e.resolution,n),r,[o,e.chain,e.address,e.resolution,t?.enabled],t);}function $t(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeTokenTrades(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function oo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletPnl(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function ao(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletPortfolios(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function lo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletPortfolioPnls(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function Po(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletTrades(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function xo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeTokenActivities(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function Co(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletActivities(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function Io(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeNewTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function Wo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeTrendingTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function vo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeMigratedTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function _o(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeFinalStretchTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function No(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeStockTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function Bi({client:e,subscribeClient:r,queryKeyPrefix:t=y,children:o}){let n=react.useMemo(()=>({client:e,subscribeClient:r,queryKeyPrefix:t}),[e,r,t]);return jsxRuntime.jsx(d.Provider,{value:n,children:o})}exports.DEFAULT_QUERY_KEY_PREFIX=y;exports.DexClientContext=d;exports.DexClientProvider=Bi;exports.fetchFinalStretchTokens=N;exports.fetchMigratedTokens=j;exports.fetchNewTokens=te;exports.fetchPresignedUploadUrl=S;exports.fetchSearchTokens=de;exports.fetchStockTokens=ge;exports.fetchSwapRoute=qe;exports.fetchToken=$e;exports.fetchTokenActivities=Wt;exports.fetchTokenCandles=He;exports.fetchTokenHolders=Le;exports.fetchTokenMarketData=Xe;exports.fetchTokenSecurity=ir;exports.fetchTokenStats=dr;exports.fetchTokenTrades=xr;exports.fetchTokens=cr;exports.fetchTrendingTokens=Ar;exports.fetchTxSuccess=Wr;exports.fetchWalletActivities=Rt;exports.fetchWalletPnl=Rr;exports.fetchWalletPortfolioPnls=Nr;exports.fetchWalletPortfolioPnlsByTokens=xt;exports.fetchWalletPortfolios=nt;exports.fetchWalletPortfoliosByTokens=ft;exports.fetchWalletTrades=At;exports.finalStretchTokensQueryKey=L;exports.migratedTokensQueryKey=J;exports.newTokensQueryKey=re;exports.presignedUploadUrlQueryKey=b;exports.searchTokensQueryKey=me;exports.sendTx=C;exports.stockTokensQueryKey=Ce;exports.swapRouteQueryKey=De;exports.toKeySegment=i;exports.toSortedKeySegment=c;exports.tokenActivitiesQueryKey=qt;exports.tokenCandlesQueryKey=ve;exports.tokenHoldersQueryKey=Me;exports.tokenMarketDataQueryKey=Ye;exports.tokenQueryKey=Ze;exports.tokenSecurityQueryKey=or;exports.tokenStatsQueryKey=mr;exports.tokenTradesQueryKey=kr;exports.tokensQueryKey=ur;exports.trendingTokensQueryKey=gr;exports.txSuccessQueryKey=qr;exports.useDexClient=a;exports.useFinalStretchTokensQuery=G;exports.useFinalStretchTokensSubscription=_o;exports.useMigratedTokensQuery=z;exports.useMigratedTokensSubscription=vo;exports.useNewTokensQuery=oe;exports.useNewTokensSubscription=Io;exports.usePresignedUploadUrlQuery=ce;exports.useSearchTokensQuery=pe;exports.useSendTxMutation=xe;exports.useStockTokensQuery=Ae;exports.useStockTokensSubscription=No;exports.useSwapRouteQuery=We;exports.useTokenActivitiesQuery=Ot;exports.useTokenActivitiesSubscription=xo;exports.useTokenCandlesQuery=Re;exports.useTokenCandlesSubscription=Jt;exports.useTokenHoldersQuery=Ne;exports.useTokenMarketDataQuery=Je;exports.useTokenQuery=er;exports.useTokenSecurityQuery=nr;exports.useTokenStatsQuery=pr;exports.useTokenSubscription=Gt;exports.useTokenTradesQuery=br;exports.useTokenTradesSubscription=$t;exports.useTokensQuery=fr;exports.useTrendingTokensQuery=Kr;exports.useTrendingTokensSubscription=Wo;exports.useTxSuccessQuery=Or;exports.useWalletActivitiesQuery=Ft;exports.useWalletActivitiesSubscription=Co;exports.useWalletPnlQuery=Fr;exports.useWalletPnlSubscription=oo;exports.useWalletPortfolioPnlsByTokensQuery=bt;exports.useWalletPortfolioPnlsInfiniteQuery=et;exports.useWalletPortfolioPnlsQuery=Gr;exports.useWalletPortfolioPnlsSubscription=lo;exports.useWalletPortfoliosByTokensQuery=lt;exports.useWalletPortfoliosInfiniteQuery=Pt;exports.useWalletPortfoliosQuery=st;exports.useWalletPortfoliosSubscription=ao;exports.useWalletTradesQuery=Kt;exports.useWalletTradesSubscription=Po;exports.walletActivitiesQueryKey=Ht;exports.walletPnlQueryKey=Hr;exports.walletPortfolioPnlsByTokensQueryKey=kt;exports.walletPortfolioPnlsInfiniteQueryKey=$r;exports.walletPortfolioPnlsQueryKey=Lr;exports.walletPortfoliosByTokensQueryKey=ct;exports.walletPortfoliosInfiniteQueryKey=pt;exports.walletPortfoliosQueryKey=it;exports.walletTradesQueryKey=gt;//# sourceMappingURL=index.js.map
|
|
1
|
+
'use strict';var react=require('react'),reactQuery=require('@tanstack/react-query'),jsxRuntime=require('react/jsx-runtime');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/react"]="0.1.12");var y="liberfi",p=react.createContext(null);function a(){let e=react.useContext(p);if(e===null)throw new Error("useDexClient must be used within a DexClientProvider");return e}function s(e){function r(n,l=y){return [l,e.name,...e.queryKey(n)]}function t(n,l){return e.fetch(n,l)}function o(n,l={}){let{client:m,queryKeyPrefix:f}=a();return reactQuery.useQuery({queryKey:r(n,f),queryFn:()=>e.fetch(m,n),...e.defaultOptions,...l})}return {queryKey:r,fetch:t,useQuery:o}}function d(e){function r(o,n=y){return [n,e.name,"infinite",...e.queryKey(o)]}function t(o,n={}){let{client:l,queryKeyPrefix:m}=a();return reactQuery.useInfiniteQuery({queryKey:r(o,m),queryFn:({pageParam:f})=>e.fetch(l,o,f),initialPageParam:void 0,getNextPageParam:f=>f.hasNext?f.endCursor:void 0,...n})}return {queryKey:r,useInfiniteQuery:t}}function i(e){return e==null?"":e instanceof Date?e.toISOString():String(e)}function c(e){return !e||e.length===0?"[]":JSON.stringify([...e].sort())}var {queryKey:Y,fetch:X,useQuery:J}=s({name:"finalStretchTokens",queryKey:e=>[e.chain,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,...t})=>e.getFinalStretchTokens(r,t)});var {queryKey:$,fetch:ee,useQuery:re}=s({name:"migratedTokens",queryKey:e=>[e.chain,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,...t})=>e.getMigratedTokens(r,t)});var {queryKey:ne,fetch:se,useQuery:ae}=s({name:"newTokens",queryKey:e=>[e.chain,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,...t})=>e.getNewTokens(r,t)});function S(e=y){return [e,"presignedUploadUrl"]}async function Q(e){return await e.getPresignedUploadUrl()}function me(e={}){let{client:r,queryKeyPrefix:t}=a();return reactQuery.useQuery({queryKey:S(t),queryFn:async()=>Q(r),staleTime:0,...e})}var {queryKey:he,fetch:Te,useQuery:ke}=s({name:"searchTokens",queryKey:e=>[i(e.cursor),i(e.limit),i(e.direction),c(e.chains),i(e.keyword),c(e.filters),i(e.sortBy),i(e.sortDirection)],fetch:(e,r)=>e.searchTokens(r)});async function g(e,r){return await e.sendTx(r)}function Ce(e={}){let{client:r}=a();return reactQuery.useMutation({mutationFn:async t=>g(r,t),...e})}var {queryKey:Ie,fetch:Ue,useQuery:De}=s({name:"stockTokens",queryKey:e=>[e.chain,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,...t})=>e.getStockTokens(r,t)});var {queryKey:we,fetch:Ee,useQuery:He}=s({name:"swapRoute",queryKey:e=>[e.chain,e.userAddress,e.input,e.output,e.mode,e.amount,i(e.slippage),i(e.priorityFee),i(e.tipFee),i(e.isAntiMev)],fetch:(e,r)=>e.swapRoute(r)});var {queryKey:_e,fetch:Be,useQuery:Me}=s({name:"tokenCandles",queryKey:e=>[e.chain,e.address,e.resolution,i(e.after),i(e.before),i(e.limit)],fetch:(e,{chain:r,address:t,resolution:o,...n})=>e.getTokenCandles(r,t,o,n)});var {queryKey:Ve,fetch:Ye,useQuery:Xe}=s({name:"tokenHolders",queryKey:e=>[e.chain,e.address,i(e.cursor),i(e.limit),i(e.direction)],fetch:(e,{chain:r,address:t,...o})=>e.getTokenHolders(r,t,o)});var {queryKey:ze,fetch:Ze,useQuery:$e}=s({name:"tokenMarketData",queryKey:e=>[e.chain,e.address],fetch:(e,r)=>e.getTokenMarketData(r.chain,r.address)});var {queryKey:tr,fetch:or,useQuery:ir}=s({name:"token",queryKey:e=>[e.chain,e.address],fetch:(e,r)=>e.getToken(r.chain,r.address)});var {queryKey:ar,fetch:ur,useQuery:cr}=s({name:"tokenSecurity",queryKey:e=>[e.chain,e.address],fetch:(e,r)=>e.getTokenSecurity(r.chain,r.address)});var {queryKey:yr,fetch:mr,useQuery:dr}=s({name:"tokens",queryKey:e=>[e.chain,[...e.addresses].sort().join(",")],fetch:(e,r)=>e.getTokens(r.chain,r.addresses)});var {queryKey:hr,fetch:Tr,useQuery:kr}=s({name:"tokenStats",queryKey:e=>[e.chain,e.address],fetch:(e,r)=>e.getTokenStats(r.chain,r.address)});var {queryKey:Qr,fetch:Cr,useQuery:gr}=s({name:"tokenTrades",queryKey:e=>[e.chain,e.address,i(e.before),i(e.after),i(e.beforeBlockHeight),i(e.afterBlockHeight),i(e.type),i(e.poolAddress)],fetch:(e,{chain:r,address:t,...o})=>e.getTokenTrades(r,t,o)});var {queryKey:Ur,fetch:Dr,useQuery:qr}=s({name:"trendingTokens",queryKey:e=>[e.chain,e.resolution,i(e.sortBy),i(e.sortDirection),c(e.keywords),c(e.excludeKeywords),c(e.filters)],fetch:(e,{chain:r,resolution:t,...o})=>e.getTrendingTokens(r,t,o)});var {queryKey:Er,fetch:Hr,useQuery:vr}=s({name:"txSuccess",queryKey:e=>[e.chain,e.txHash,i(e.timeout)],fetch:(e,{chain:r,txHash:t,timeout:o})=>e.checkTxSuccess(r,t,o)});var {queryKey:Br,fetch:Mr,useQuery:Lr}=s({name:"walletPnl",queryKey:e=>[e.chain,e.address,i(e.resolution??"all")],fetch:(e,{chain:r,address:t,resolution:o})=>e.getWalletPnl(r,t,o)});var {queryKey:Yr,fetch:Xr,useQuery:Jr}=s({name:"walletPortfolioPnls",queryKey:e=>[e.chain,e.address,i(e.cursor),i(e.limit)],fetch:(e,{chain:r,address:t,cursor:o,limit:n})=>e.getWalletPortfolioPnls(r,t,{cursor:o,limit:n})});var {queryKey:$r,useInfiniteQuery:et}=d({name:"walletPortfolioPnls",queryKey:e=>[e.chain,e.address,i(e.limit)],fetch:(e,r,t)=>e.getWalletPortfolioPnls(r.chain,r.address,{cursor:t,limit:r.limit??100})});var {queryKey:it,fetch:nt,useQuery:st}=s({name:"walletPortfolios",queryKey:e=>[e.chain,e.address,i(e.cursor),i(e.limit)],fetch:(e,{chain:r,address:t,cursor:o,limit:n})=>e.getWalletPortfolios(r,t,{cursor:o,limit:n})});var {queryKey:ct,fetch:ft,useQuery:lt}=s({name:"walletPortfoliosByTokens",queryKey:e=>[e.chain,e.address,...[...e.tokenAddresses].sort()],fetch:(e,{chain:r,address:t,tokenAddresses:o})=>e.getWalletPortfoliosByTokens(r,t,o)});var {queryKey:pt,useInfiniteQuery:Pt}=d({name:"walletPortfolios",queryKey:e=>[e.chain,e.address,i(e.limit)],fetch:(e,r,t)=>e.getWalletPortfolios(r.chain,r.address,{cursor:t,limit:r.limit??100})});var {queryKey:kt,fetch:xt,useQuery:bt}=s({name:"walletPortfolioPnlsByTokens",queryKey:e=>[e.chain,e.address,...[...e.tokenAddresses].sort()],fetch:(e,{chain:r,address:t,tokenAddresses:o})=>e.getWalletPortfolioPnlsByTokens(r,t,o)});var {queryKey:gt,fetch:At,useQuery:Kt}=s({name:"walletTrades",queryKey:e=>[e.chain,e.address,i(e.before),i(e.after),i(e.beforeBlockHeight),i(e.afterBlockHeight),i(e.type),i(e.poolAddress)],fetch:(e,{chain:r,address:t,...o})=>e.getWalletTrades(r,t,o)});var {queryKey:qt,fetch:Wt,useQuery:Ot}=s({name:"tokenActivities",queryKey:e=>[e.chain,e.address,i(e.before),i(e.after),i(e.beforeBlockHeight),i(e.afterBlockHeight),i(e.type),i(e.poolAddress)],fetch:(e,{chain:r,address:t,...o})=>e.getTokenActivities(r,t,o)});var {queryKey:vt,fetch:Rt,useQuery:Ft}=s({name:"walletActivities",queryKey:e=>[e.chain,e.address,i(e.before),i(e.after),i(e.beforeBlockHeight),i(e.afterBlockHeight),i(e.type),i(e.poolAddress)],fetch:(e,{chain:r,address:t,...o})=>e.getWalletActivities(r,t,o)});function u(e,r,t,o){let n=react.useRef(r);n.current=r;let l=react.useRef(o?.onError);l.current=o?.onError,react.useEffect(()=>{if(o?.enabled===false)return;let m;try{m=e(f=>n.current(f));}catch(f){l.current?.(f instanceof Error?f:new Error(String(f)));}return ()=>m?.unsubscribe()},t);}function Gt(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeToken(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function Jt(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeTokenCandles(e.chain,e.address,e.resolution,n),r,[o,e.chain,e.address,e.resolution,t?.enabled],t);}function $t(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeTokenTrades(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function oo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletPnl(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function ao(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletPortfolios(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function lo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletPortfolioPnls(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function Po(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletTrades(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function xo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeTokenActivities(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function Co(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeWalletActivities(e.chain,e.address,n),r,[o,e.chain,e.address,t?.enabled],t);}function Io(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeNewTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function Wo(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeTrendingTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function Ho(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeMigratedTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function _o(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeFinalStretchTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function No(e,r,t){let{subscribeClient:o}=a();u(n=>o.subscribeStockTokens(e.chain,n),r,[o,e.chain,t?.enabled],t);}function Li({client:e,subscribeClient:r,queryKeyPrefix:t=y,children:o}){let n=react.useMemo(()=>({client:e,subscribeClient:r,queryKeyPrefix:t}),[e,r,t]);return jsxRuntime.jsx(p.Provider,{value:n,children:o})}exports.DEFAULT_QUERY_KEY_PREFIX=y;exports.DexClientContext=p;exports.DexClientProvider=Li;exports.createInfiniteQueryHook=d;exports.createQueryHook=s;exports.fetchFinalStretchTokens=X;exports.fetchMigratedTokens=ee;exports.fetchNewTokens=se;exports.fetchPresignedUploadUrl=Q;exports.fetchSearchTokens=Te;exports.fetchStockTokens=Ue;exports.fetchSwapRoute=Ee;exports.fetchToken=or;exports.fetchTokenActivities=Wt;exports.fetchTokenCandles=Be;exports.fetchTokenHolders=Ye;exports.fetchTokenMarketData=Ze;exports.fetchTokenSecurity=ur;exports.fetchTokenStats=Tr;exports.fetchTokenTrades=Cr;exports.fetchTokens=mr;exports.fetchTrendingTokens=Dr;exports.fetchTxSuccess=Hr;exports.fetchWalletActivities=Rt;exports.fetchWalletPnl=Mr;exports.fetchWalletPortfolioPnls=Xr;exports.fetchWalletPortfolioPnlsByTokens=xt;exports.fetchWalletPortfolios=nt;exports.fetchWalletPortfoliosByTokens=ft;exports.fetchWalletTrades=At;exports.finalStretchTokensQueryKey=Y;exports.migratedTokensQueryKey=$;exports.newTokensQueryKey=ne;exports.presignedUploadUrlQueryKey=S;exports.searchTokensQueryKey=he;exports.sendTx=g;exports.stockTokensQueryKey=Ie;exports.swapRouteQueryKey=we;exports.toKeySegment=i;exports.toSortedKeySegment=c;exports.tokenActivitiesQueryKey=qt;exports.tokenCandlesQueryKey=_e;exports.tokenHoldersQueryKey=Ve;exports.tokenMarketDataQueryKey=ze;exports.tokenQueryKey=tr;exports.tokenSecurityQueryKey=ar;exports.tokenStatsQueryKey=hr;exports.tokenTradesQueryKey=Qr;exports.tokensQueryKey=yr;exports.trendingTokensQueryKey=Ur;exports.txSuccessQueryKey=Er;exports.useDexClient=a;exports.useFinalStretchTokensQuery=J;exports.useFinalStretchTokensSubscription=_o;exports.useMigratedTokensQuery=re;exports.useMigratedTokensSubscription=Ho;exports.useNewTokensQuery=ae;exports.useNewTokensSubscription=Io;exports.usePresignedUploadUrlQuery=me;exports.useSearchTokensQuery=ke;exports.useSendTxMutation=Ce;exports.useStockTokensQuery=De;exports.useStockTokensSubscription=No;exports.useSwapRouteQuery=He;exports.useTokenActivitiesQuery=Ot;exports.useTokenActivitiesSubscription=xo;exports.useTokenCandlesQuery=Me;exports.useTokenCandlesSubscription=Jt;exports.useTokenHoldersQuery=Xe;exports.useTokenMarketDataQuery=$e;exports.useTokenQuery=ir;exports.useTokenSecurityQuery=cr;exports.useTokenStatsQuery=kr;exports.useTokenSubscription=Gt;exports.useTokenTradesQuery=gr;exports.useTokenTradesSubscription=$t;exports.useTokensQuery=dr;exports.useTrendingTokensQuery=qr;exports.useTrendingTokensSubscription=Wo;exports.useTxSuccessQuery=vr;exports.useWalletActivitiesQuery=Ft;exports.useWalletActivitiesSubscription=Co;exports.useWalletPnlQuery=Lr;exports.useWalletPnlSubscription=oo;exports.useWalletPortfolioPnlsByTokensQuery=bt;exports.useWalletPortfolioPnlsInfiniteQuery=et;exports.useWalletPortfolioPnlsQuery=Jr;exports.useWalletPortfolioPnlsSubscription=lo;exports.useWalletPortfoliosByTokensQuery=lt;exports.useWalletPortfoliosInfiniteQuery=Pt;exports.useWalletPortfoliosQuery=st;exports.useWalletPortfoliosSubscription=ao;exports.useWalletTradesQuery=Kt;exports.useWalletTradesSubscription=Po;exports.walletActivitiesQueryKey=vt;exports.walletPnlQueryKey=Br;exports.walletPortfolioPnlsByTokensQueryKey=kt;exports.walletPortfolioPnlsInfiniteQueryKey=$r;exports.walletPortfolioPnlsQueryKey=Yr;exports.walletPortfoliosByTokensQueryKey=ct;exports.walletPortfoliosInfiniteQueryKey=pt;exports.walletPortfoliosQueryKey=it;exports.walletTradesQueryKey=gt;//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|