@0xsquid/react-hooks 6.4.7-beta.3 → 6.4.7-keplr-btc-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 (142) hide show
  1. package/dist/core/connectors/bitcoin/errors/index.d.ts +1 -2
  2. package/dist/core/connectors/bitcoin/errors/index.js +1 -1
  3. package/dist/core/connectors/bitcoin/errors/index.js.map +1 -1
  4. package/dist/core/connectors/bitcoin/wallets/index.d.ts +1 -0
  5. package/dist/core/connectors/bitcoin/wallets/index.js +1 -0
  6. package/dist/core/connectors/bitcoin/wallets/index.js.map +1 -1
  7. package/dist/core/connectors/bitcoin/wallets/keplr.d.ts +11 -0
  8. package/dist/core/connectors/bitcoin/wallets/keplr.js +28 -0
  9. package/dist/core/connectors/bitcoin/wallets/keplr.js.map +1 -0
  10. package/dist/core/constants.d.ts +4 -7
  11. package/dist/core/constants.js +4 -21
  12. package/dist/core/constants.js.map +1 -1
  13. package/dist/core/externalLinks.d.ts +1 -1
  14. package/dist/core/externalLinks.js +1 -1
  15. package/dist/core/index.d.ts +1 -1
  16. package/dist/core/index.js +1 -1
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/providers/CosmosProvider.d.ts +1 -1
  19. package/dist/core/providers/CosmosProvider.js.map +1 -1
  20. package/dist/core/queries/queries-keys.d.ts +4 -4
  21. package/dist/core/types/error.d.ts +1 -0
  22. package/dist/core/types/error.js.map +1 -1
  23. package/dist/core/types/transaction.d.ts +1 -0
  24. package/dist/core/types/wallet.d.ts +2 -19
  25. package/dist/core/types/wallet.js.map +1 -1
  26. package/dist/core/wallets.d.ts +1 -2
  27. package/dist/core/wallets.js +12 -2
  28. package/dist/core/wallets.js.map +1 -1
  29. package/dist/hooks/chains/useSquidChains.d.ts +0 -1
  30. package/dist/hooks/chains/useSquidChains.js +4 -23
  31. package/dist/hooks/chains/useSquidChains.js.map +1 -1
  32. package/dist/hooks/cosmos/useCosmos.js +20 -15
  33. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  34. package/dist/hooks/index.d.ts +0 -1
  35. package/dist/hooks/index.js +0 -1
  36. package/dist/hooks/index.js.map +1 -1
  37. package/dist/hooks/solana/useSolana.js +2 -8
  38. package/dist/hooks/solana/useSolana.js.map +1 -1
  39. package/dist/hooks/store/useWalletStore.d.ts +5 -5
  40. package/dist/hooks/store/useWalletStore.js +20 -13
  41. package/dist/hooks/store/useWalletStore.js.map +1 -1
  42. package/dist/hooks/swap/useSwap.js +3 -3
  43. package/dist/hooks/swap/useSwap.js.map +1 -1
  44. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +1 -12
  45. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
  46. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +5 -4
  47. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +17 -30
  48. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  49. package/dist/hooks/tokens/useBalance.d.ts +246 -18
  50. package/dist/hooks/tokens/useBalance.js +25 -66
  51. package/dist/hooks/tokens/useBalance.js.map +1 -1
  52. package/dist/hooks/tokens/useMultiChainBalance.d.ts +2 -2
  53. package/dist/hooks/tokens/useMultiChainBalance.js +35 -38
  54. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
  55. package/dist/hooks/tokens/useNativeBalance.d.ts +18 -16
  56. package/dist/hooks/tokens/useNativeBalance.js +56 -121
  57. package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
  58. package/dist/hooks/tokens/useNativeTokenForChain.js +4 -6
  59. package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -1
  60. package/dist/hooks/tokens/useSquidTokens.d.ts +11 -2
  61. package/dist/hooks/tokens/useSquidTokens.js +16 -8
  62. package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
  63. package/dist/hooks/transaction/useEstimate.js +1 -1
  64. package/dist/hooks/transaction/useEstimate.js.map +1 -1
  65. package/dist/hooks/transaction/useExecuteTransaction.d.ts +2 -0
  66. package/dist/hooks/transaction/useExecuteTransaction.js +39 -81
  67. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  68. package/dist/hooks/transaction/useGetRoute.d.ts +2 -1
  69. package/dist/hooks/transaction/useGetRoute.js +2 -2
  70. package/dist/hooks/transaction/useGetRoute.js.map +1 -1
  71. package/dist/hooks/transaction/useSingleTransaction.js +1 -1
  72. package/dist/hooks/transaction/useSingleTransaction.js.map +1 -1
  73. package/dist/hooks/user/useUserParams.js +1 -1
  74. package/dist/hooks/user/useUserParams.js.map +1 -1
  75. package/dist/hooks/wallet/useIntegratorContext.js +1 -1
  76. package/dist/hooks/wallet/useIntegratorContext.js.map +1 -1
  77. package/dist/hooks/wallet/useMultiChainWallet.d.ts +3 -1
  78. package/dist/hooks/wallet/useMultiChainWallet.js +25 -32
  79. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  80. package/dist/hooks/wallet/useSigner.d.ts +2 -2
  81. package/dist/hooks/wallet/useSigner.js +7 -33
  82. package/dist/hooks/wallet/useSigner.js.map +1 -1
  83. package/dist/hooks/wallet/useWallet.d.ts +6 -24
  84. package/dist/hooks/wallet/useWallet.js +11 -25
  85. package/dist/hooks/wallet/useWallet.js.map +1 -1
  86. package/dist/hooks/wallet/useWallets.js +1 -26
  87. package/dist/hooks/wallet/useWallets.js.map +1 -1
  88. package/dist/provider/index.d.ts +1 -1
  89. package/dist/provider/index.js +8 -10
  90. package/dist/provider/index.js.map +1 -1
  91. package/dist/services/external/rpcService.d.ts +4 -8
  92. package/dist/services/external/rpcService.js +14 -38
  93. package/dist/services/external/rpcService.js.map +1 -1
  94. package/dist/services/internal/assetsService.d.ts +2 -2
  95. package/dist/services/internal/assetsService.js +5 -10
  96. package/dist/services/internal/assetsService.js.map +1 -1
  97. package/dist/services/internal/bitcoinService.d.ts +5 -3
  98. package/dist/services/internal/bitcoinService.js +9 -1
  99. package/dist/services/internal/bitcoinService.js.map +1 -1
  100. package/dist/services/internal/configService.js +2 -7
  101. package/dist/services/internal/configService.js.map +1 -1
  102. package/dist/services/internal/cosmosService.d.ts +14 -4
  103. package/dist/services/internal/cosmosService.js +1 -1
  104. package/dist/services/internal/cosmosService.js.map +1 -1
  105. package/dist/services/internal/errorService.d.ts +0 -15
  106. package/dist/services/internal/errorService.js +4 -34
  107. package/dist/services/internal/errorService.js.map +1 -1
  108. package/dist/services/internal/evmService.d.ts +6 -3
  109. package/dist/services/internal/evmService.js.map +1 -1
  110. package/dist/services/internal/solanaService.d.ts +6 -3
  111. package/dist/services/internal/solanaService.js.map +1 -1
  112. package/dist/services/internal/transactionService.d.ts +1 -0
  113. package/dist/services/internal/walletService.d.ts +15 -21
  114. package/dist/services/internal/walletService.js +28 -38
  115. package/dist/services/internal/walletService.js.map +1 -1
  116. package/dist/tests/swapConfig.test.js +7 -72
  117. package/dist/tests/swapConfig.test.js.map +1 -1
  118. package/package.json +8 -12
  119. package/dist/core/providers/SuiProvider.d.ts +0 -19
  120. package/dist/core/providers/SuiProvider.js +0 -15
  121. package/dist/core/providers/SuiProvider.js.map +0 -1
  122. package/dist/core/types/rpc.d.ts +0 -10
  123. package/dist/core/types/rpc.js +0 -2
  124. package/dist/core/types/rpc.js.map +0 -1
  125. package/dist/core/types/sui.d.ts +0 -14
  126. package/dist/core/types/sui.js +0 -2
  127. package/dist/core/types/sui.js.map +0 -1
  128. package/dist/hooks/sui/useSui.d.ts +0 -2
  129. package/dist/hooks/sui/useSui.js +0 -28
  130. package/dist/hooks/sui/useSui.js.map +0 -1
  131. package/dist/hooks/sui/useSuiClient.d.ts +0 -9
  132. package/dist/hooks/sui/useSuiClient.js +0 -16
  133. package/dist/hooks/sui/useSuiClient.js.map +0 -1
  134. package/dist/hooks/sui/useSuiWallets.d.ts +0 -7
  135. package/dist/hooks/sui/useSuiWallets.js +0 -36
  136. package/dist/hooks/sui/useSuiWallets.js.map +0 -1
  137. package/dist/services/external/suiRpcClient.d.ts +0 -32
  138. package/dist/services/external/suiRpcClient.js +0 -80
  139. package/dist/services/external/suiRpcClient.js.map +0 -1
  140. package/dist/services/internal/suiService.d.ts +0 -14
  141. package/dist/services/internal/suiService.js +0 -107
  142. package/dist/services/internal/suiService.js.map +0 -1
@@ -1,18 +1,246 @@
1
- import type { ChainData, Token } from "@0xsquid/squid-types";
2
- interface UseBalanceResult {
3
- balance: string;
4
- isLoading: boolean;
5
- }
6
- interface UseBalanceOptions {
7
- chain?: ChainData;
8
- token?: Token;
9
- userAddress?: string;
10
- enabled?: boolean;
11
- refreshIntervalMs?: number;
12
- }
13
- export declare const useEvmBalance: ({ chain, token, userAddress, enabled, refreshIntervalMs, }: UseBalanceOptions) => UseBalanceResult;
14
- export declare const useCosmosBalance: ({ chain, token, userAddress, enabled, refreshIntervalMs, }: UseBalanceOptions) => UseBalanceResult;
15
- export declare const useSolanaBalance: ({ chain, token, userAddress, enabled, refreshIntervalMs, }: UseBalanceOptions) => UseBalanceResult;
16
- export declare const useBitcoinBalance: ({ userAddress, chain, }: UseBalanceOptions) => UseBalanceResult;
17
- export declare const useSuiBalance: ({ chain, token, userAddress, enabled, refreshIntervalMs, }: UseBalanceOptions) => UseBalanceResult;
18
- export {};
1
+ import type { ChainData, CosmosChain, EvmChain, Token } from "@0xsquid/squid-types";
2
+ export declare const useEvmBalance: ({ chain, token, userAddress, enabled, refreshIntervalMs, }: {
3
+ chain?: EvmChain | undefined;
4
+ token?: Token | undefined;
5
+ userAddress: string;
6
+ enabled?: boolean | undefined;
7
+ refreshIntervalMs?: number | undefined;
8
+ }) => {
9
+ balance: string;
10
+ };
11
+ export declare const useCosmosBalance: ({ chainData, token, userAddress, enabled, refreshIntervalMs, }: {
12
+ chainData: CosmosChain | undefined;
13
+ token?: Token | undefined;
14
+ userAddress?: string | undefined;
15
+ enabled?: boolean | undefined;
16
+ refreshIntervalMs?: number | undefined;
17
+ }) => {
18
+ balance: string;
19
+ data: string;
20
+ error: unknown;
21
+ isError: true;
22
+ isLoading: false;
23
+ isLoadingError: false;
24
+ isRefetchError: true;
25
+ isSuccess: false;
26
+ status: "error";
27
+ dataUpdatedAt: number;
28
+ errorUpdatedAt: number;
29
+ failureCount: number;
30
+ failureReason: unknown;
31
+ errorUpdateCount: number;
32
+ isFetched: boolean;
33
+ isFetchedAfterMount: boolean;
34
+ isFetching: boolean;
35
+ isInitialLoading: boolean;
36
+ isPaused: boolean;
37
+ isPlaceholderData: boolean;
38
+ isPreviousData: boolean;
39
+ isRefetching: boolean;
40
+ isStale: boolean;
41
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
42
+ remove: () => void;
43
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
44
+ } | {
45
+ balance: string;
46
+ data: string;
47
+ error: null;
48
+ isError: false;
49
+ isLoading: false;
50
+ isLoadingError: false;
51
+ isRefetchError: false;
52
+ isSuccess: true;
53
+ status: "success";
54
+ dataUpdatedAt: number;
55
+ errorUpdatedAt: number;
56
+ failureCount: number;
57
+ failureReason: unknown;
58
+ errorUpdateCount: number;
59
+ isFetched: boolean;
60
+ isFetchedAfterMount: boolean;
61
+ isFetching: boolean;
62
+ isInitialLoading: boolean;
63
+ isPaused: boolean;
64
+ isPlaceholderData: boolean;
65
+ isPreviousData: boolean;
66
+ isRefetching: boolean;
67
+ isStale: boolean;
68
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
69
+ remove: () => void;
70
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
71
+ } | {
72
+ balance: string;
73
+ data: undefined;
74
+ error: unknown;
75
+ isError: true;
76
+ isLoading: false;
77
+ isLoadingError: true;
78
+ isRefetchError: false;
79
+ isSuccess: false;
80
+ status: "error";
81
+ dataUpdatedAt: number;
82
+ errorUpdatedAt: number;
83
+ failureCount: number;
84
+ failureReason: unknown;
85
+ errorUpdateCount: number;
86
+ isFetched: boolean;
87
+ isFetchedAfterMount: boolean;
88
+ isFetching: boolean;
89
+ isInitialLoading: boolean;
90
+ isPaused: boolean;
91
+ isPlaceholderData: boolean;
92
+ isPreviousData: boolean;
93
+ isRefetching: boolean;
94
+ isStale: boolean;
95
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
96
+ remove: () => void;
97
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
98
+ } | {
99
+ balance: string;
100
+ data: undefined;
101
+ error: null;
102
+ isError: false;
103
+ isLoading: true;
104
+ isLoadingError: false;
105
+ isRefetchError: false;
106
+ isSuccess: false;
107
+ status: "loading";
108
+ dataUpdatedAt: number;
109
+ errorUpdatedAt: number;
110
+ failureCount: number;
111
+ failureReason: unknown;
112
+ errorUpdateCount: number;
113
+ isFetched: boolean;
114
+ isFetchedAfterMount: boolean;
115
+ isFetching: boolean;
116
+ isInitialLoading: boolean;
117
+ isPaused: boolean;
118
+ isPlaceholderData: boolean;
119
+ isPreviousData: boolean;
120
+ isRefetching: boolean;
121
+ isStale: boolean;
122
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
123
+ remove: () => void;
124
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
125
+ };
126
+ export declare const useSolanaBalance: ({ chain, token, userAddress, enabled, refreshIntervalMs, }: {
127
+ chain?: ChainData | undefined;
128
+ token?: Token | undefined;
129
+ userAddress?: string | undefined;
130
+ enabled?: boolean | undefined;
131
+ refreshIntervalMs?: number | undefined;
132
+ }) => {
133
+ balance: string;
134
+ data: string;
135
+ error: unknown;
136
+ isError: true;
137
+ isLoading: false;
138
+ isLoadingError: false;
139
+ isRefetchError: true;
140
+ isSuccess: false;
141
+ status: "error";
142
+ dataUpdatedAt: number;
143
+ errorUpdatedAt: number;
144
+ failureCount: number;
145
+ failureReason: unknown;
146
+ errorUpdateCount: number;
147
+ isFetched: boolean;
148
+ isFetchedAfterMount: boolean;
149
+ isFetching: boolean;
150
+ isInitialLoading: boolean;
151
+ isPaused: boolean;
152
+ isPlaceholderData: boolean;
153
+ isPreviousData: boolean;
154
+ isRefetching: boolean;
155
+ isStale: boolean;
156
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
157
+ remove: () => void;
158
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
159
+ } | {
160
+ balance: string;
161
+ data: string;
162
+ error: null;
163
+ isError: false;
164
+ isLoading: false;
165
+ isLoadingError: false;
166
+ isRefetchError: false;
167
+ isSuccess: true;
168
+ status: "success";
169
+ dataUpdatedAt: number;
170
+ errorUpdatedAt: number;
171
+ failureCount: number;
172
+ failureReason: unknown;
173
+ errorUpdateCount: number;
174
+ isFetched: boolean;
175
+ isFetchedAfterMount: boolean;
176
+ isFetching: boolean;
177
+ isInitialLoading: boolean;
178
+ isPaused: boolean;
179
+ isPlaceholderData: boolean;
180
+ isPreviousData: boolean;
181
+ isRefetching: boolean;
182
+ isStale: boolean;
183
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
184
+ remove: () => void;
185
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
186
+ } | {
187
+ balance: string;
188
+ data: undefined;
189
+ error: unknown;
190
+ isError: true;
191
+ isLoading: false;
192
+ isLoadingError: true;
193
+ isRefetchError: false;
194
+ isSuccess: false;
195
+ status: "error";
196
+ dataUpdatedAt: number;
197
+ errorUpdatedAt: number;
198
+ failureCount: number;
199
+ failureReason: unknown;
200
+ errorUpdateCount: number;
201
+ isFetched: boolean;
202
+ isFetchedAfterMount: boolean;
203
+ isFetching: boolean;
204
+ isInitialLoading: boolean;
205
+ isPaused: boolean;
206
+ isPlaceholderData: boolean;
207
+ isPreviousData: boolean;
208
+ isRefetching: boolean;
209
+ isStale: boolean;
210
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
211
+ remove: () => void;
212
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
213
+ } | {
214
+ balance: string;
215
+ data: undefined;
216
+ error: null;
217
+ isError: false;
218
+ isLoading: true;
219
+ isLoadingError: false;
220
+ isRefetchError: false;
221
+ isSuccess: false;
222
+ status: "loading";
223
+ dataUpdatedAt: number;
224
+ errorUpdatedAt: number;
225
+ failureCount: number;
226
+ failureReason: unknown;
227
+ errorUpdateCount: number;
228
+ isFetched: boolean;
229
+ isFetchedAfterMount: boolean;
230
+ isFetching: boolean;
231
+ isInitialLoading: boolean;
232
+ isPaused: boolean;
233
+ isPlaceholderData: boolean;
234
+ isPreviousData: boolean;
235
+ isRefetching: boolean;
236
+ isStale: boolean;
237
+ refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
238
+ remove: () => void;
239
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
240
+ };
241
+ export declare const useBitcoinBalance: ({ address, chain, }: {
242
+ chain?: ChainData | undefined;
243
+ address?: string | undefined;
244
+ }) => {
245
+ balance: string | undefined;
246
+ };
@@ -1,46 +1,39 @@
1
1
  import { ChainType } from "@0xsquid/squid-types";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- import { useReadContract, useBalance as useWagmiBalance } from "wagmi";
4
- import { useMemo } from "react";
3
+ import { useBalance, useReadContract } from "wagmi";
5
4
  import { erc20Abi } from "viem";
6
5
  import { useCosmosContext } from "../../core";
7
6
  import { nativeEvmTokenAddress } from "../../core/constants";
8
7
  import { keys } from "../../core/queries/queries-keys";
9
8
  import { formatBNToReadable, isCosmosAddressValid } from "../../services";
10
- import { getCosmosTokenBalance, getSolanaTokenBalance, getSuiTokenBalance, } from "../../services/external/rpcService";
11
- import { isSuiAddressValid } from "../../services/internal/suiService";
9
+ import { getCosmosTokenBalance, getSolanaTokenBalance, } from "../../services/external/rpcService";
12
10
  import { useWallet } from "../wallet/useWallet";
13
11
  import { useBitcoinNativeBalance } from "./useNativeBalance";
14
12
  const DEFAULT_REFRESH_INTERVAL_MS = 15000;
15
13
  export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
16
- const { isChainTypeConnected } = useWallet();
14
+ const { isConnected } = useWallet();
17
15
  const isNativeToken = token?.address.toLowerCase() === nativeEvmTokenAddress.toLowerCase();
18
16
  const userAddressParsed = userAddress;
19
17
  // Only fetch using useBalance if it's a native token
20
- const { data: nativeBalance, isLoading: isNativeTokenLoading } = useWagmiBalance({
18
+ const { data: nativeBalance } = useBalance({
21
19
  address: userAddressParsed,
22
20
  chainId: Number(chain?.chainId),
23
21
  query: {
24
- enabled: enabled &&
25
- !!userAddress &&
26
- isNativeToken &&
27
- !!chain &&
28
- chain.chainType === ChainType.EVM &&
29
- isChainTypeConnected(chain.chainType),
22
+ enabled: isConnected(ChainType.EVM) && enabled && !!userAddress && isNativeToken,
30
23
  refetchInterval: refreshIntervalMs,
31
24
  retry: 2,
32
25
  },
33
26
  });
34
27
  // Only fetch using useReadContract if it's not a native token
35
28
  // This is temporary, because of wagmi error: https://github.com/wevm/wagmi/issues/4353
36
- const { data: erc20Balance, isLoading: isErc20Loading } = useReadContract({
29
+ const { data: erc20Balance } = useReadContract({
37
30
  address: token?.address,
38
31
  abi: erc20Abi,
39
32
  functionName: "balanceOf",
40
33
  args: [userAddressParsed],
41
34
  chainId: Number(chain?.chainId),
42
35
  query: {
43
- enabled: isChainTypeConnected(ChainType.EVM) &&
36
+ enabled: isConnected(ChainType.EVM) &&
44
37
  enabled &&
45
38
  !!userAddress &&
46
39
  !isNativeToken,
@@ -49,44 +42,41 @@ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refre
49
42
  },
50
43
  });
51
44
  const balance = isNativeToken ? nativeBalance?.value : erc20Balance;
52
- const isLoading = isNativeToken ? isNativeTokenLoading : isErc20Loading;
53
- const formattedBalance = balance != null && token?.decimals != null
54
- ? formatBNToReadable(balance, token.decimals)
55
- : "0";
56
- return { balance: formattedBalance, isLoading };
45
+ const formattedBalance = formatBNToReadable(balance ?? BigInt(0), token?.decimals ?? 18);
46
+ return { balance: formattedBalance };
57
47
  };
58
- export const useCosmosBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
48
+ export const useCosmosBalance = ({ chainData, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
59
49
  const { isConnected } = useCosmosContext();
60
- const { data: balance = "0", isLoading } = useQuery({
61
- queryKey: keys().balance(chain?.chainId, token?.address, userAddress),
50
+ const query = useQuery({
51
+ queryKey: keys().balance(chainData?.chainId, token?.address, userAddress),
62
52
  queryFn: async () => {
63
- if (!userAddress || !token || chain?.chainType !== ChainType.COSMOS) {
53
+ if (!userAddress || !token || chainData?.chainType !== ChainType.COSMOS) {
64
54
  return "0";
65
55
  }
66
- const isAddressValid = isCosmosAddressValid(chain.bech32Config.bech32PrefixAccAddr, userAddress);
56
+ const isAddressValid = isCosmosAddressValid(chainData.bech32Config.bech32PrefixAccAddr, userAddress);
67
57
  if (!isAddressValid)
68
58
  return "0";
69
- const balanceBn = await getCosmosTokenBalance(chain, userAddress, token.address);
70
- return formatBNToReadable(balanceBn, token.decimals);
59
+ const balance = await getCosmosTokenBalance(chainData, userAddress, token.address);
60
+ return formatBNToReadable(balance, token.decimals);
71
61
  },
72
62
  enabled: isConnected &&
73
63
  enabled &&
74
64
  !!userAddress &&
75
65
  !!token &&
76
- chain?.chainType === ChainType.COSMOS,
66
+ chainData?.chainType === ChainType.COSMOS,
77
67
  refetchInterval: refreshIntervalMs,
78
68
  retry: 2,
79
69
  });
80
- return { balance, isLoading };
70
+ return { ...query, balance: query.data ?? "0" };
81
71
  };
82
72
  export const useSolanaBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
83
- const { data: balance = "0", isLoading } = useQuery({
73
+ const query = useQuery({
84
74
  queryKey: keys().balance(chain?.chainId, token?.address, userAddress),
85
75
  queryFn: async () => {
86
76
  if (!userAddress || !token)
87
77
  return "0";
88
- const balanceBn = await getSolanaTokenBalance(userAddress, token.address);
89
- return formatBNToReadable(balanceBn, token.decimals);
78
+ const balance = await getSolanaTokenBalance(userAddress, token.address);
79
+ return formatBNToReadable(balance, token.decimals);
90
80
  },
91
81
  enabled: enabled &&
92
82
  !!userAddress &&
@@ -95,42 +85,11 @@ export const useSolanaBalance = ({ chain, token, userAddress, enabled = true, re
95
85
  refetchInterval: refreshIntervalMs,
96
86
  retry: 2,
97
87
  });
98
- return { balance, isLoading };
88
+ return { ...query, balance: query.data ?? "0" };
99
89
  };
100
90
  // TODO: implement fetching balances for all bitcoin tokens
101
- export const useBitcoinBalance = ({ userAddress, chain, }) => {
102
- const { balance: balanceBn, isLoading } = useBitcoinNativeBalance({
103
- address: userAddress,
104
- chain,
105
- });
106
- const balance = useMemo(() => {
107
- if (!balanceBn)
108
- return "0";
109
- return formatBNToReadable(balanceBn?.value, balanceBn?.decimals);
110
- }, [balanceBn]);
111
- return { balance, isLoading };
112
- };
113
- export const useSuiBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
114
- const { data: balance = "0", isLoading } = useQuery({
115
- queryKey: keys().balance(chain?.chainId, token?.address, userAddress),
116
- queryFn: async () => {
117
- if (!userAddress ||
118
- token?.type !== ChainType.SUI ||
119
- chain?.chainType !== ChainType.SUI) {
120
- throw new Error("Invalid SUI balance query parameters");
121
- }
122
- const balanceBn = await getSuiTokenBalance(userAddress, token.address, chain.rpc);
123
- return formatBNToReadable(balanceBn, token.decimals) ?? "0";
124
- },
125
- enabled: enabled &&
126
- !!userAddress &&
127
- !!chain?.rpc &&
128
- token?.type === ChainType.SUI &&
129
- chain?.chainType === ChainType.SUI &&
130
- isSuiAddressValid(userAddress),
131
- refetchInterval: refreshIntervalMs,
132
- retry: 2,
133
- });
134
- return { balance, isLoading };
91
+ export const useBitcoinBalance = ({ address, chain, }) => {
92
+ const { data: balance } = useBitcoinNativeBalance(chain, address);
93
+ return { balance };
135
94
  };
136
95
  //# 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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"}
@@ -1,6 +1,6 @@
1
1
  import type { ChainData, Token } from "@0xsquid/squid-types";
2
2
  /**
3
- * Hook to get balance depending on the chain type
3
+ * Exposes a hook to get balance depending on the chain type (EVM or Cosmos)
4
4
  * @param {ChainData} chain
5
5
  * @param {Token} token
6
6
  * @param {string} userAddress
@@ -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
  };
@@ -1,68 +1,65 @@
1
1
  import { ChainType } from "@0xsquid/squid-types";
2
- import { useMemo } from "react";
3
- import { useBitcoinBalance, useCosmosBalance, useEvmBalance, useSolanaBalance, useSuiBalance, } from "./useBalance";
2
+ import { useBitcoinBalance, useCosmosBalance, useEvmBalance, useSolanaBalance, } from "../../hooks/tokens/useBalance";
4
3
  /**
5
- * Hook to get balance depending on the chain type
4
+ * Exposes a hook to get balance depending on the chain type (EVM or Cosmos)
6
5
  * @param {ChainData} chain
7
6
  * @param {Token} token
8
7
  * @param {string} userAddress
9
8
  * @param {boolean} enabled
10
9
  * @returns balance as string
11
10
  */
12
- export const useMultiChainBalance = ({ chain, token, userAddress, enabled = true, }) => {
11
+ export const useMultiChainBalance = ({ chain, token, userAddress = "", enabled = true, }) => {
12
+ /**
13
+ * Get balance for EVM
14
+ */
13
15
  const { balance: evmBalance } = useEvmBalance({
14
- chain,
16
+ chain: chain,
15
17
  token,
16
18
  userAddress,
17
19
  enabled: chain?.chainType === ChainType.EVM && enabled,
18
20
  });
21
+ /**
22
+ * Get balance for Cosmos
23
+ */
19
24
  const { balance: cosmosBalance } = useCosmosBalance({
20
- chain,
25
+ chainData: chain,
21
26
  token,
22
27
  userAddress,
23
28
  enabled: chain?.chainType === ChainType.COSMOS && enabled,
24
29
  });
30
+ /**
31
+ * Get balance for Bitcoin
32
+ */
25
33
  const { balance: bitcoinBalance } = useBitcoinBalance({
26
34
  chain,
27
- token,
28
- userAddress,
29
- enabled: chain?.chainType === ChainType.BTC && enabled,
35
+ address: userAddress,
30
36
  });
37
+ /**
38
+ * Get balance for Solana
39
+ */
31
40
  const { balance: solanaBalance } = useSolanaBalance({
32
41
  chain,
33
42
  token,
34
43
  userAddress,
35
44
  enabled: chain?.chainType === ChainType.SOLANA && enabled,
36
45
  });
37
- const { balance: suiBalance } = useSuiBalance({
38
- chain,
39
- token,
40
- userAddress,
41
- enabled: chain?.chainType === ChainType.SUI && enabled,
42
- });
43
- const balance = useMemo(() => {
44
- if (!chain?.chainType)
45
- return "0";
46
- switch (chain.chainType) {
47
- case ChainType.EVM:
48
- return evmBalance;
49
- case ChainType.COSMOS:
50
- return cosmosBalance;
51
- case ChainType.BTC:
52
- return bitcoinBalance;
53
- case ChainType.SOLANA:
54
- return solanaBalance;
55
- case ChainType.SUI:
56
- return suiBalance;
57
- }
58
- }, [
59
- chain?.chainType,
60
- evmBalance,
61
- cosmosBalance,
62
- bitcoinBalance,
63
- solanaBalance,
64
- suiBalance,
65
- ]);
46
+ let balance;
47
+ switch (chain?.chainType) {
48
+ case ChainType.EVM:
49
+ balance = evmBalance;
50
+ break;
51
+ case ChainType.COSMOS:
52
+ balance = cosmosBalance;
53
+ break;
54
+ case ChainType.BTC:
55
+ balance = bitcoinBalance;
56
+ break;
57
+ case ChainType.SOLANA:
58
+ balance = solanaBalance;
59
+ break;
60
+ default:
61
+ balance = undefined;
62
+ }
66
63
  return { balance };
67
64
  };
68
65
  //# sourceMappingURL=useMultiChainBalance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiChainBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultiChainBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,GAAG,IAAI,GAMf,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;QAC5C,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO;KACvD,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;QAClD,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,OAAO;KAC1D,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC;QACpD,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO;KACvD,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;QAClD,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,OAAO;KAC1D,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;QAC5C,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO;KACvD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAW,OAAO,CAAC,GAAG,EAAE;QACnC,IAAI,CAAC,KAAK,EAAE,SAAS;YAAE,OAAO,GAAG,CAAC;QAElC,QAAQ,KAAK,CAAC,SAAS,EAAE;YACvB,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,UAAU,CAAC;YACpB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,aAAa,CAAC;YACvB,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,cAAc,CAAC;YACxB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,aAAa,CAAC;YACvB,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,UAAU,CAAC;SACrB;IACH,CAAC,EAAE;QACD,KAAK,EAAE,SAAS;QAChB,UAAU;QACV,aAAa;QACb,cAAc;QACd,aAAa;QACb,UAAU;KACX,CAAC,CAAC;IAEH,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,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;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;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,OAAO;KAC1D,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC;QACpD,KAAK;QACL,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;QAClD,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,OAAO;KAC1D,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,cAAc,CAAC;YACzB,MAAM;QACR,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO,GAAG,aAAa,CAAC;YACxB,MAAM;QACR;YACE,OAAO,GAAG,SAAS,CAAC;KACvB;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC"}
@@ -1,22 +1,24 @@
1
1
  import { ChainData } from "@0xsquid/squid-types";
2
- interface Balance {
3
- decimals: number;
4
- value: bigint;
5
- }
6
- interface UseNativeBalanceResult {
7
- balance: Balance | undefined;
2
+ export declare const useBitcoinNativeBalance: (chain?: ChainData, address?: string) => {
3
+ data: string | undefined;
8
4
  isLoading: boolean;
9
- }
10
- interface UseNativeBalanceOptions {
11
- chain: ChainData | undefined;
12
- address: string | undefined;
13
- }
14
- export declare const useBitcoinNativeBalance: ({ chain, address, }: UseNativeBalanceOptions) => UseNativeBalanceResult;
15
- export declare const useSolanaNativeBalance: ({ chain, address, }: UseNativeBalanceOptions) => UseNativeBalanceResult;
16
- export declare const useSuiNativeBalance: ({ address, chain, }: UseNativeBalanceOptions) => UseNativeBalanceResult;
5
+ nativeToken: import("@0xsquid/squid-types").Token | undefined;
6
+ };
7
+ export declare const useSolanaNativeBalance: (chain?: ChainData, address?: string) => {
8
+ data: string | undefined;
9
+ isLoading: boolean;
10
+ nativeToken: import("@0xsquid/squid-types").Token | undefined;
11
+ };
17
12
  export declare const useNativeBalance: (chain?: ChainData) => {
18
- nativeBalance: Balance | undefined;
13
+ nativeBalance: {
14
+ decimals: number;
15
+ formatted: string;
16
+ symbol: string;
17
+ value: bigint;
18
+ } | {
19
+ decimals: number;
20
+ value: bigint;
21
+ } | undefined;
19
22
  nativeBalanceFormatted: string | undefined;
20
23
  isLoading: boolean;
21
24
  };
22
- export {};