@0xsquid/react-hooks 3.0.26 → 3.0.27-beta.0

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.
Files changed (58) hide show
  1. package/dist/core/constants.d.ts +4 -0
  2. package/dist/core/constants.js +4 -0
  3. package/dist/core/constants.js.map +1 -1
  4. package/dist/core/providers/CosmosProvider.d.ts +1 -2
  5. package/dist/core/queries/queries-keys.d.ts +3 -1
  6. package/dist/core/queries/queries-keys.js +6 -0
  7. package/dist/core/queries/queries-keys.js.map +1 -1
  8. package/dist/hooks/cosmos/useCosmos.d.ts +1 -3
  9. package/dist/hooks/cosmos/useCosmos.js +21 -27
  10. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  11. package/dist/hooks/index.d.ts +3 -2
  12. package/dist/hooks/index.js +3 -2
  13. package/dist/hooks/index.js.map +1 -1
  14. package/dist/hooks/store/useWalletStore.d.ts +16 -0
  15. package/dist/hooks/store/useWalletStore.js +34 -0
  16. package/dist/hooks/store/useWalletStore.js.map +1 -0
  17. package/dist/hooks/tokens/useAllConnectedWalletBalances.d.ts +67 -0
  18. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +33 -0
  19. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -0
  20. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +35 -34
  21. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  22. package/dist/hooks/tokens/useBalance.d.ts +249 -8
  23. package/dist/hooks/tokens/useBalance.js +32 -82
  24. package/dist/hooks/tokens/useBalance.js.map +1 -1
  25. package/dist/hooks/tokens/useMultiChainBalance.d.ts +1 -1
  26. package/dist/hooks/tokens/useMultiChainBalance.js +19 -6
  27. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
  28. package/dist/hooks/tokens/useNativeBalance.d.ts +14 -0
  29. package/dist/hooks/tokens/useNativeBalance.js +71 -0
  30. package/dist/hooks/tokens/useNativeBalance.js.map +1 -0
  31. package/dist/hooks/transaction/useEstimate.js +2 -2
  32. package/dist/hooks/transaction/useEstimate.js.map +1 -1
  33. package/dist/hooks/transaction/useExecuteTransaction.js +1 -1
  34. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  35. package/dist/hooks/wallet/useMultiChainWallet.d.ts +2 -1
  36. package/dist/hooks/wallet/useMultiChainWallet.js +26 -28
  37. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  38. package/dist/hooks/wallet/useWallet.d.ts +13 -5
  39. package/dist/hooks/wallet/useWallet.js +68 -58
  40. package/dist/hooks/wallet/useWallet.js.map +1 -1
  41. package/dist/services/external/rpcService.js +2 -2
  42. package/dist/services/external/rpcService.js.map +1 -1
  43. package/dist/services/external/secretService.js +2 -2
  44. package/dist/services/external/secretService.js.map +1 -1
  45. package/dist/services/internal/assetsService.d.ts +1 -0
  46. package/dist/services/internal/assetsService.js +14 -2
  47. package/dist/services/internal/assetsService.js.map +1 -1
  48. package/dist/services/internal/walletService.d.ts +29 -3
  49. package/dist/services/internal/walletService.js +57 -3
  50. package/dist/services/internal/walletService.js.map +1 -1
  51. package/dist/tests/fetchSquidData.js +1 -1
  52. package/dist/tests/fetchSquidData.js.map +1 -1
  53. package/dist/tests/swapConfig.test.js +1 -1
  54. package/dist/tests/swapConfig.test.js.map +1 -1
  55. package/package.json +3 -3
  56. package/dist/hooks/tokens/useTokensWithBalance.d.ts +0 -7
  57. package/dist/hooks/tokens/useTokensWithBalance.js +0 -53
  58. package/dist/hooks/tokens/useTokensWithBalance.js.map +0 -1
@@ -10,10 +10,11 @@ import { useSquidTokens } from "./useSquidTokens";
10
10
  export const useAllTokensWithBalanceForChainType = ({ chainType, address, queryOptions, }) => {
11
11
  const { cosmosChains, chains } = useSquidChains();
12
12
  const { evmTokens, cosmosTokens } = useSquidTokens();
13
- const { keplrTypeWallet, osmosisAddress } = useCosmosContext();
13
+ const { keplrTypeWallet } = useCosmosContext();
14
14
  const tokensWithZeroBalance = useMemo(() => ({
15
- evm: evmTokens.map((t) => ({ ...t, balance: "0" })),
16
- cosmos: cosmosTokens.map((t) => ({ ...t, balance: "0" })),
15
+ [ChainType.EVM]: evmTokens.map((t) => ({ ...t, balance: "0" })),
16
+ [ChainType.COSMOS]: cosmosTokens.map((t) => ({ ...t, balance: "0" })),
17
+ [ChainType.BTC]: [],
17
18
  }), [evmTokens, cosmosTokens]);
18
19
  const evmTokensQuery = useQuery(keys().allTokensBalance(address, ChainType.EVM), async () => {
19
20
  const evmTokensBalances = await getAllEvmTokensBalance(evmTokens, address, chains);
@@ -24,7 +25,7 @@ export const useAllTokensWithBalanceForChainType = ({ chainType, address, queryO
24
25
  !!address &&
25
26
  (queryOptions?.enabled ?? true),
26
27
  });
27
- const cosmosTokensQuery = useQuery(keys().allTokensBalance(osmosisAddress, ChainType.COSMOS), async () => {
28
+ const cosmosTokensQuery = useQuery(keys().allTokensBalance(address, ChainType.COSMOS), async () => {
28
29
  const addresses = await getAllKeysForSupportedCosmosChains(cosmosChains.map((c) => c.chainId), keplrTypeWallet);
29
30
  const cosmosBalances = await getAllCosmosBalancesForAddress({
30
31
  addresses,
@@ -35,43 +36,43 @@ export const useAllTokensWithBalanceForChainType = ({ chainType, address, queryO
35
36
  }, {
36
37
  ...queryOptions,
37
38
  enabled: chainType === ChainType.COSMOS &&
38
- !!osmosisAddress &&
39
+ !!address &&
39
40
  (queryOptions?.enabled ?? true),
40
41
  });
41
- // We want tokens with balance for desired chainType and the other chainType with zero balance
42
- // This way frontend can still display all tokens no matter the chainType
43
42
  const tokensWithBalanceQuery = useMemo(() => {
44
- if (chainType === ChainType.COSMOS) {
45
- return {
46
- ...cosmosTokensQuery,
47
- data: [
48
- ...tokensWithZeroBalance.evm,
49
- ...(cosmosTokensQuery.data ?? tokensWithZeroBalance.cosmos),
50
- ],
51
- };
52
- }
53
- if (chainType === ChainType.EVM) {
54
- return {
55
- ...evmTokensQuery,
56
- data: [
57
- ...(evmTokensQuery.data ?? tokensWithZeroBalance.evm),
58
- ...tokensWithZeroBalance.cosmos,
59
- ],
60
- };
43
+ let baseQuery;
44
+ switch (chainType) {
45
+ case ChainType.COSMOS:
46
+ baseQuery = cosmosTokensQuery;
47
+ break;
48
+ case ChainType.EVM:
49
+ baseQuery = evmTokensQuery;
50
+ break;
51
+ default:
52
+ baseQuery = { data: tokensWithZeroBalance[ChainType.EVM] };
61
53
  }
62
- // Kind of a hack reusing evmTokensQuery just have the full type of react-query returned
63
- // Putting tokens with zero balance for all chainTypes
64
54
  return {
65
- ...evmTokensQuery,
66
- isLoading: false,
67
- isSuccess: true,
68
- data: [...tokensWithZeroBalance.evm, ...tokensWithZeroBalance.cosmos],
55
+ ...baseQuery,
56
+ isLoading: chainType ? baseQuery.isLoading : false,
57
+ isSuccess: chainType ? baseQuery.isSuccess : true,
58
+ data: baseQuery.data ??
59
+ tokensWithZeroBalance[chainType ?? ChainType.EVM] ??
60
+ [],
69
61
  };
70
62
  }, [chainType, cosmosTokensQuery, evmTokensQuery, tokensWithZeroBalance]);
71
- const tokens = useMemo(() => tokensWithBalanceQuery.data ?? [
72
- ...tokensWithZeroBalance.evm,
73
- ...tokensWithZeroBalance.cosmos,
74
- ], [tokensWithBalanceQuery.data, tokensWithZeroBalance]);
63
+ const tokens = useMemo(() => {
64
+ if (!chainType) {
65
+ return [
66
+ ...tokensWithZeroBalance[ChainType.EVM],
67
+ ...tokensWithZeroBalance[ChainType.COSMOS],
68
+ ...tokensWithZeroBalance[ChainType.BTC],
69
+ ];
70
+ }
71
+ const selectedChainTokens = tokensWithBalanceQuery.data ?? tokensWithZeroBalance[chainType];
72
+ const otherChainTypes = Object.values(ChainType).filter((type) => type !== chainType);
73
+ const otherChainTokens = otherChainTypes.flatMap((type) => tokensWithZeroBalance[type]);
74
+ return [...selectedChainTokens, ...otherChainTokens];
75
+ }, [tokensWithBalanceQuery.data, tokensWithZeroBalance, chainType]);
75
76
  const totalUsdBalance = useMemo(() => calculateTotalUsdBalanceUSD(tokens), [tokens]);
76
77
  return {
77
78
  tokensWithBalanceQuery,
@@ -1 +1 @@
1
- {"version":3,"file":"useAllTokensWithBalanceForChainType.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalanceForChainType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAllTokensWithBalanceForChainType.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalanceForChainType.ts"],"names":[],"mappings":"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"}
@@ -7,18 +7,259 @@ export declare const useEvmBalance: ({ chain, token, userAddress, enabled, refre
7
7
  refreshIntervalMs?: number | undefined;
8
8
  }) => {
9
9
  balance: string;
10
+ data: {
11
+ decimals: number;
12
+ formatted: string;
13
+ symbol: string;
14
+ value: bigint;
15
+ };
16
+ error: import("viem").GetBalanceErrorType;
17
+ isError: true;
18
+ isLoading: false;
19
+ isLoadingError: false;
20
+ isRefetchError: true;
21
+ isSuccess: false;
22
+ status: "error";
23
+ dataUpdatedAt: number;
24
+ errorUpdatedAt: number;
25
+ failureCount: number;
26
+ failureReason: import("viem").GetBalanceErrorType | null;
27
+ errorUpdateCount: number;
28
+ isFetched: boolean;
29
+ isFetchedAfterMount: boolean;
30
+ isFetching: boolean;
31
+ isInitialLoading: boolean;
32
+ isPaused: boolean;
33
+ isPlaceholderData: boolean;
34
+ isPreviousData: boolean;
35
+ isRefetching: boolean;
36
+ isStale: boolean;
37
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<{
38
+ decimals: number;
39
+ formatted: string;
40
+ symbol: string;
41
+ value: bigint;
42
+ }, import("viem").GetBalanceErrorType>>;
43
+ remove: () => void;
44
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
45
+ queryKey: import("@tanstack/react-query").QueryKey;
46
+ } | {
47
+ balance: string;
48
+ data: {
49
+ decimals: number;
50
+ formatted: string;
51
+ symbol: string;
52
+ value: bigint;
53
+ };
54
+ error: null;
55
+ isError: false;
56
+ isLoading: false;
57
+ isLoadingError: false;
58
+ isRefetchError: false;
59
+ isSuccess: true;
60
+ status: "success";
61
+ dataUpdatedAt: number;
62
+ errorUpdatedAt: number;
63
+ failureCount: number;
64
+ failureReason: import("viem").GetBalanceErrorType | null;
65
+ errorUpdateCount: number;
66
+ isFetched: boolean;
67
+ isFetchedAfterMount: boolean;
68
+ isFetching: boolean;
69
+ isInitialLoading: boolean;
70
+ isPaused: boolean;
71
+ isPlaceholderData: boolean;
72
+ isPreviousData: boolean;
73
+ isRefetching: boolean;
74
+ isStale: boolean;
75
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<{
76
+ decimals: number;
77
+ formatted: string;
78
+ symbol: string;
79
+ value: bigint;
80
+ }, import("viem").GetBalanceErrorType>>;
81
+ remove: () => void;
82
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
83
+ queryKey: import("@tanstack/react-query").QueryKey;
84
+ } | {
85
+ balance: string;
86
+ data: undefined;
87
+ error: import("viem").GetBalanceErrorType;
88
+ isError: true;
89
+ isLoading: false;
90
+ isLoadingError: true;
91
+ isRefetchError: false;
92
+ isSuccess: false;
93
+ status: "error";
94
+ dataUpdatedAt: number;
95
+ errorUpdatedAt: number;
96
+ failureCount: number;
97
+ failureReason: import("viem").GetBalanceErrorType | null;
98
+ errorUpdateCount: number;
99
+ isFetched: boolean;
100
+ isFetchedAfterMount: boolean;
101
+ isFetching: boolean;
102
+ isInitialLoading: boolean;
103
+ isPaused: boolean;
104
+ isPlaceholderData: boolean;
105
+ isPreviousData: boolean;
106
+ isRefetching: boolean;
107
+ isStale: boolean;
108
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<{
109
+ decimals: number;
110
+ formatted: string;
111
+ symbol: string;
112
+ value: bigint;
113
+ }, import("viem").GetBalanceErrorType>>;
114
+ remove: () => void;
115
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
116
+ queryKey: import("@tanstack/react-query").QueryKey;
117
+ } | {
118
+ balance: string;
119
+ data: undefined;
120
+ error: null;
121
+ isError: false;
122
+ isLoading: true;
123
+ isLoadingError: false;
124
+ isRefetchError: false;
125
+ isSuccess: false;
126
+ status: "loading";
127
+ dataUpdatedAt: number;
128
+ errorUpdatedAt: number;
129
+ failureCount: number;
130
+ failureReason: import("viem").GetBalanceErrorType | null;
131
+ errorUpdateCount: number;
132
+ isFetched: boolean;
133
+ isFetchedAfterMount: boolean;
134
+ isFetching: boolean;
135
+ isInitialLoading: boolean;
136
+ isPaused: boolean;
137
+ isPlaceholderData: boolean;
138
+ isPreviousData: boolean;
139
+ isRefetching: boolean;
140
+ isStale: boolean;
141
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<{
142
+ decimals: number;
143
+ formatted: string;
144
+ symbol: string;
145
+ value: bigint;
146
+ }, import("viem").GetBalanceErrorType>>;
147
+ remove: () => void;
148
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
149
+ queryKey: import("@tanstack/react-query").QueryKey;
10
150
  };
11
- export declare const useCosmosBalance: ({ chainData, token, userAddress, }: {
151
+ export declare const useCosmosBalance: ({ chainData, token, userAddress, enabled, refreshIntervalMs, }: {
12
152
  chainData: CosmosChain | undefined;
13
153
  token?: Token | undefined;
14
154
  userAddress?: string | undefined;
155
+ enabled?: boolean | undefined;
156
+ refreshIntervalMs?: number | undefined;
15
157
  }) => {
16
158
  balance: string;
17
- };
18
- export declare const useNativeBalance: (direction: "from" | "to") => {
19
- nativeBalance: {
20
- value: bigint;
21
- decimals: number;
22
- } | undefined;
23
- nativeBalanceFormatted: string | undefined;
159
+ data: string;
160
+ error: unknown;
161
+ isError: true;
162
+ isLoading: false;
163
+ isLoadingError: false;
164
+ isRefetchError: true;
165
+ isSuccess: false;
166
+ status: "error";
167
+ dataUpdatedAt: number;
168
+ errorUpdatedAt: number;
169
+ failureCount: number;
170
+ failureReason: unknown;
171
+ errorUpdateCount: number;
172
+ isFetched: boolean;
173
+ isFetchedAfterMount: boolean;
174
+ isFetching: boolean;
175
+ isInitialLoading: boolean;
176
+ isPaused: boolean;
177
+ isPlaceholderData: boolean;
178
+ isPreviousData: boolean;
179
+ isRefetching: boolean;
180
+ isStale: boolean;
181
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
182
+ remove: () => void;
183
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
184
+ } | {
185
+ balance: string;
186
+ data: string;
187
+ error: null;
188
+ isError: false;
189
+ isLoading: false;
190
+ isLoadingError: false;
191
+ isRefetchError: false;
192
+ isSuccess: true;
193
+ status: "success";
194
+ dataUpdatedAt: number;
195
+ errorUpdatedAt: number;
196
+ failureCount: number;
197
+ failureReason: unknown;
198
+ errorUpdateCount: number;
199
+ isFetched: boolean;
200
+ isFetchedAfterMount: boolean;
201
+ isFetching: boolean;
202
+ isInitialLoading: boolean;
203
+ isPaused: boolean;
204
+ isPlaceholderData: boolean;
205
+ isPreviousData: boolean;
206
+ isRefetching: boolean;
207
+ isStale: boolean;
208
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
209
+ remove: () => void;
210
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
211
+ } | {
212
+ balance: string;
213
+ data: undefined;
214
+ error: unknown;
215
+ isError: true;
216
+ isLoading: false;
217
+ isLoadingError: true;
218
+ isRefetchError: false;
219
+ isSuccess: false;
220
+ status: "error";
221
+ dataUpdatedAt: number;
222
+ errorUpdatedAt: number;
223
+ failureCount: number;
224
+ failureReason: unknown;
225
+ errorUpdateCount: number;
226
+ isFetched: boolean;
227
+ isFetchedAfterMount: boolean;
228
+ isFetching: boolean;
229
+ isInitialLoading: boolean;
230
+ isPaused: boolean;
231
+ isPlaceholderData: boolean;
232
+ isPreviousData: boolean;
233
+ isRefetching: boolean;
234
+ isStale: boolean;
235
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
236
+ remove: () => void;
237
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
238
+ } | {
239
+ balance: string;
240
+ data: undefined;
241
+ error: null;
242
+ isError: false;
243
+ isLoading: true;
244
+ isLoadingError: false;
245
+ isRefetchError: false;
246
+ isSuccess: false;
247
+ status: "loading";
248
+ dataUpdatedAt: number;
249
+ errorUpdatedAt: number;
250
+ failureCount: number;
251
+ failureReason: unknown;
252
+ errorUpdateCount: number;
253
+ isFetched: boolean;
254
+ isFetchedAfterMount: boolean;
255
+ isFetching: boolean;
256
+ isInitialLoading: boolean;
257
+ isPaused: boolean;
258
+ isPlaceholderData: boolean;
259
+ isPreviousData: boolean;
260
+ isRefetching: boolean;
261
+ isStale: boolean;
262
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
263
+ remove: () => void;
264
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
24
265
  };
@@ -1,18 +1,15 @@
1
- import { useAccount } from "wagmi";
2
1
  import { ChainType } from "@0xsquid/squid-types";
3
- import { useMemo } from "react";
4
- import { useBalance } from "wagmi";
2
+ import { useQuery } from "@tanstack/react-query";
3
+ import { useAccount, useBalance as useWagmiBalance } from "wagmi";
5
4
  import { useCosmosContext } from "../../core";
6
5
  import { nativeEvmTokenAddress } from "../../core/constants";
7
- import { findNativeToken, formatBNToReadable, parseToBigInt, } from "../../services";
8
- import { useCosmosForChain } from "../cosmos/useCosmosForChain";
9
- import { useSwap } from "../swap/useSwap";
10
- import { useSquidTokens } from "./useSquidTokens";
11
- import { useAllTokensWithBalanceForChain } from "./useTokensWithBalance";
12
- const defaultRefreshIntervalMs = 15000;
13
- export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = defaultRefreshIntervalMs, }) => {
6
+ import { keys } from "../../core/queries/queries-keys";
7
+ import { formatBNToReadable } from "../../services";
8
+ import { useAllTokensWithBalanceForChainType } from "./useAllTokensWithBalanceForChainType";
9
+ const DEFAULT_REFRESH_INTERVAL_MS = 15000;
10
+ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
14
11
  const { isConnected } = useAccount();
15
- const { data: nativeOrTokenBalance } = useBalance({
12
+ const query = useWagmiBalance({
16
13
  address: userAddress,
17
14
  chainId: Number(chain?.chainId),
18
15
  token: token?.address === nativeEvmTokenAddress
@@ -24,80 +21,33 @@ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refre
24
21
  retry: 2,
25
22
  },
26
23
  });
27
- const balance = formatBNToReadable(nativeOrTokenBalance?.value ?? "0", nativeOrTokenBalance?.decimals ?? 0);
28
- return { balance };
24
+ const balance = formatBNToReadable(query.data?.value ?? 0n, query.data?.decimals ?? 0);
25
+ return { ...query, balance };
29
26
  };
30
- export const useCosmosBalance = ({ chainData, token, userAddress, }) => {
27
+ export const useCosmosBalance = ({ chainData, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
31
28
  const { isConnected } = useCosmosContext();
32
- const { cosmosAddress } = useCosmosForChain(chainData);
33
- const { cosmosBalances } = useAllTokensWithBalanceForChain(chainData, userAddress);
34
- const walletAddressToFetch = userAddress ?? cosmosAddress;
35
- const balance = useMemo(() => {
36
- if (walletAddressToFetch &&
37
- chainData &&
38
- chainData.chainType === ChainType.COSMOS &&
39
- isConnected) {
40
- return (cosmosBalances?.data?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
41
- }
42
- return "0";
43
- }, [
44
- cosmosBalances.data,
45
- walletAddressToFetch,
46
- chainData,
47
- token,
48
- isConnected,
49
- ]);
50
- return { balance };
51
- };
52
- export const useNativeBalance = (direction) => {
53
- const { address: evmAddress, isConnected: isEvmConnected } = useAccount();
54
- const { isConnected: isCosmosConnected, cosmosAddress } = useCosmosContext();
55
- const { toChain, fromChain } = useSwap();
56
- const chain = direction === "from" ? fromChain : toChain;
57
- const { data: nativeEvmBalance } = useBalance({
58
- address: evmAddress,
59
- chainId: Number(chain?.chainId),
60
- query: {
61
- enabled: isEvmConnected && chain?.chainType === ChainType.EVM,
62
- refetchInterval: 10000,
63
- staleTime: 5000,
64
- refetchOnWindowFocus: true,
65
- refetchOnMount: true,
66
- },
29
+ const { tokens: cosmosBalances } = useAllTokensWithBalanceForChainType({
30
+ chainType: ChainType.COSMOS,
31
+ address: chainData?.chainType === ChainType.COSMOS ? userAddress : undefined,
67
32
  });
68
- const { cosmosTokens } = useSquidTokens(direction);
69
- const nativeCosmosToken = useMemo(() => {
70
- if (chain?.chainType !== ChainType.COSMOS) {
71
- return;
72
- }
73
- return findNativeToken(cosmosTokens, chain);
74
- }, [cosmosTokens, chain]);
75
- const { balance: nativeCosmosBalance } = useCosmosBalance({
76
- chainData: isCosmosConnected && chain?.chainType === ChainType.COSMOS
77
- ? chain
78
- : undefined,
79
- token: isCosmosConnected ? nativeCosmosToken : undefined,
80
- userAddress: isCosmosConnected ? cosmosAddress : undefined,
33
+ const query = useQuery({
34
+ queryKey: keys().balance(chainData?.chainId, token?.address, userAddress),
35
+ queryFn: () => {
36
+ if (userAddress &&
37
+ chainData &&
38
+ chainData.chainType === ChainType.COSMOS &&
39
+ isConnected) {
40
+ return (cosmosBalances?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
41
+ }
42
+ return "0";
43
+ },
44
+ enabled: isConnected &&
45
+ enabled &&
46
+ !!userAddress &&
47
+ chainData?.chainType === ChainType.COSMOS,
48
+ refetchInterval: refreshIntervalMs,
49
+ retry: 2,
81
50
  });
82
- const nativeBalance = (() => {
83
- switch (chain?.chainType) {
84
- case ChainType.EVM:
85
- if (!nativeEvmBalance?.decimals || !nativeEvmBalance?.value)
86
- return undefined;
87
- return nativeEvmBalance;
88
- case ChainType.COSMOS:
89
- if (!nativeCosmosToken?.decimals || !nativeCosmosBalance)
90
- return undefined;
91
- return {
92
- decimals: nativeCosmosToken.decimals,
93
- value: parseToBigInt(nativeCosmosBalance, nativeCosmosToken.decimals),
94
- };
95
- default:
96
- return undefined;
97
- }
98
- })();
99
- const nativeBalanceFormatted = nativeBalance &&
100
- formatBNToReadable(nativeBalance.value, nativeBalance.decimals);
101
- return { nativeBalance, nativeBalanceFormatted };
51
+ return { ...query, balance: query.data ?? "0" };
102
52
  };
103
53
  //# sourceMappingURL=useBalance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useBalance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useBalance.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,5 @@ export declare const useMultiChainBalance: ({ chain, token, userAddress, enabled
13
13
  userAddress?: string | undefined;
14
14
  enabled?: boolean | undefined;
15
15
  }) => {
16
- balance: string;
16
+ balance: string | undefined;
17
17
  };
@@ -8,14 +8,14 @@ import { useCosmosBalance, useEvmBalance } from "../../hooks/tokens/useBalance";
8
8
  * @param {boolean} enabled
9
9
  * @returns balance as string
10
10
  */
11
- export const useMultiChainBalance = ({ chain, token, userAddress, enabled = true, }) => {
11
+ export const useMultiChainBalance = ({ chain, token, userAddress = "", enabled = true, }) => {
12
12
  /**
13
13
  * Get balance for EVM chain types
14
14
  */
15
15
  const { balance: evmBalance } = useEvmBalance({
16
16
  chain: chain,
17
17
  token,
18
- userAddress: userAddress ?? "",
18
+ userAddress,
19
19
  enabled: chain?.chainType === ChainType.EVM && enabled,
20
20
  });
21
21
  /**
@@ -26,10 +26,23 @@ export const useMultiChainBalance = ({ chain, token, userAddress, enabled = true
26
26
  token,
27
27
  userAddress,
28
28
  });
29
- /**
30
- * Get either EVM or cosmos Balance
31
- */
32
- const balance = chain?.chainType === ChainType.EVM ? evmBalance : cosmosBalance;
29
+ let balance;
30
+ switch (chain?.chainType) {
31
+ case ChainType.EVM:
32
+ balance = evmBalance;
33
+ break;
34
+ case ChainType.COSMOS:
35
+ balance = cosmosBalance;
36
+ break;
37
+ case ChainType.BTC:
38
+ balance = undefined;
39
+ break;
40
+ // case ChainType.SOL:
41
+ // balance = undefined;
42
+ // break;
43
+ default:
44
+ balance = undefined;
45
+ }
33
46
  return { balance };
34
47
  };
35
48
  //# sourceMappingURL=useMultiChainBalance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiChainBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultiChainBalance.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,GAAG,IAAI,GAMf,EAAE,EAAE;IACH;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;QAC5C,KAAK,EAAE,KAAiB;QACxB,KAAK;QACL,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO;KACvD,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;QAClD,SAAS,EAAE,KAAoB;QAC/B,KAAK;QACL,WAAW;KACZ,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,OAAO,GACX,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;IAElE,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC"}
1
+ {"version":3,"file":"useMultiChainBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultiChainBalance.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,KAAK,EACL,KAAK,EACL,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,IAAI,GAMf,EAAE,EAAE;IACH;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;QAC5C,KAAK,EAAE,KAAiB;QACxB,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO;KACvD,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;QAClD,SAAS,EAAE,KAAoB;QAC/B,KAAK;QACL,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,OAA2B,CAAC;IAEhC,QAAQ,KAAK,EAAE,SAAS,EAAE;QACxB,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,GAAG,UAAU,CAAC;YACrB,MAAM;QACR,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO,GAAG,aAAa,CAAC;YACxB,MAAM;QACR,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,GAAG,SAAS,CAAC;YACpB,MAAM;QACR,sBAAsB;QACtB,yBAAyB;QACzB,WAAW;QACX;YACE,OAAO,GAAG,SAAS,CAAC;KACvB;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ChainData } from "@0xsquid/squid-types";
2
+ export declare const useNativeBalance: (chain?: ChainData) => {
3
+ nativeBalance: {
4
+ decimals: number;
5
+ formatted: string;
6
+ symbol: string;
7
+ value: bigint;
8
+ } | {
9
+ decimals: any;
10
+ value: bigint;
11
+ } | undefined;
12
+ nativeBalanceFormatted: string | undefined;
13
+ isLoading: boolean;
14
+ };