@0xsquid/react-hooks 3.0.29 → 3.0.30-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 (77) hide show
  1. package/dist/core/constants.d.ts +4 -8
  2. package/dist/core/constants.js +4 -419
  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 +10 -1
  6. package/dist/core/queries/queries-keys.js +26 -0
  7. package/dist/core/queries/queries-keys.js.map +1 -1
  8. package/dist/core/types/event.d.ts +7 -0
  9. package/dist/core/wallets.d.ts +9 -0
  10. package/dist/core/wallets.js +421 -0
  11. package/dist/core/wallets.js.map +1 -0
  12. package/dist/hooks/cosmos/useCosmos.d.ts +1 -3
  13. package/dist/hooks/cosmos/useCosmos.js +21 -27
  14. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  15. package/dist/hooks/index.d.ts +3 -2
  16. package/dist/hooks/index.js +3 -2
  17. package/dist/hooks/index.js.map +1 -1
  18. package/dist/hooks/store/useWalletStore.d.ts +15 -0
  19. package/dist/hooks/store/useWalletStore.js +27 -0
  20. package/dist/hooks/store/useWalletStore.js.map +1 -0
  21. package/dist/hooks/tokens/useAllConnectedWalletBalances.d.ts +89 -0
  22. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +52 -0
  23. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -0
  24. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +41 -38
  25. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  26. package/dist/hooks/tokens/useBalance.d.ts +109 -8
  27. package/dist/hooks/tokens/useBalance.js +29 -78
  28. package/dist/hooks/tokens/useBalance.js.map +1 -1
  29. package/dist/hooks/tokens/useMultiChainBalance.d.ts +1 -1
  30. package/dist/hooks/tokens/useMultiChainBalance.js +19 -6
  31. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
  32. package/dist/hooks/tokens/useNativeBalance.d.ts +14 -0
  33. package/dist/hooks/tokens/useNativeBalance.js +80 -0
  34. package/dist/hooks/tokens/useNativeBalance.js.map +1 -0
  35. package/dist/hooks/tokens/useSquidTokens.js +6 -5
  36. package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
  37. package/dist/hooks/tokens/useTokenHistoricalData.js +4 -3
  38. package/dist/hooks/tokens/useTokenHistoricalData.js.map +1 -1
  39. package/dist/hooks/transaction/useEstimate.js +2 -2
  40. package/dist/hooks/transaction/useEstimate.js.map +1 -1
  41. package/dist/hooks/transaction/useExecuteTransaction.js +10 -1
  42. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  43. package/dist/hooks/transaction/useSingleTransaction.d.ts +1 -1
  44. package/dist/hooks/wallet/useMultiChainWallet.d.ts +18 -4
  45. package/dist/hooks/wallet/useMultiChainWallet.js +48 -34
  46. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  47. package/dist/hooks/wallet/useWallet.d.ts +14 -6
  48. package/dist/hooks/wallet/useWallet.js +108 -61
  49. package/dist/hooks/wallet/useWallet.js.map +1 -1
  50. package/dist/provider/index.js +9 -1
  51. package/dist/provider/index.js.map +1 -1
  52. package/dist/services/external/rpcService.js +22 -12
  53. package/dist/services/external/rpcService.js.map +1 -1
  54. package/dist/services/external/secretService.js +2 -2
  55. package/dist/services/external/secretService.js.map +1 -1
  56. package/dist/services/internal/assetsService.d.ts +1 -0
  57. package/dist/services/internal/assetsService.js +6 -1
  58. package/dist/services/internal/assetsService.js.map +1 -1
  59. package/dist/services/internal/eventService.d.ts +10 -0
  60. package/dist/services/internal/eventService.js +14 -0
  61. package/dist/services/internal/eventService.js.map +1 -1
  62. package/dist/services/internal/transactionService.d.ts +1 -1
  63. package/dist/services/internal/walletService.d.ts +36 -7
  64. package/dist/services/internal/walletService.js +82 -21
  65. package/dist/services/internal/walletService.js.map +1 -1
  66. package/dist/tests/assetsService.test.js +2 -2
  67. package/dist/tests/assetsService.test.js.map +1 -1
  68. package/dist/tests/configService.test.js +29 -17
  69. package/dist/tests/configService.test.js.map +1 -1
  70. package/dist/tests/fetchSquidData.js +1 -1
  71. package/dist/tests/fetchSquidData.js.map +1 -1
  72. package/dist/tests/walletService.test.js +76 -1
  73. package/dist/tests/walletService.test.js.map +1 -1
  74. package/package.json +1 -1
  75. package/dist/hooks/tokens/useTokensWithBalance.d.ts +0 -7
  76. package/dist/hooks/tokens/useTokensWithBalance.js +0 -53
  77. package/dist/hooks/tokens/useTokensWithBalance.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ import { ChainType } from "@0xsquid/squid-types";
2
+ import { Wallet } from "../../core/types";
3
+ interface WalletState {
4
+ connectedWalletsByChainType: Record<ChainType, {
5
+ wallet: Wallet | undefined;
6
+ address: string | undefined;
7
+ }>;
8
+ connectingWallet: Wallet | undefined;
9
+ }
10
+ export declare const useWalletStore: import("zustand").UseBoundStore<import("zustand").StoreApi<WalletState & {
11
+ setConnectedWallet: (chainType: ChainType, wallet: Wallet | undefined, address: string | undefined) => void;
12
+ setConnectingWallet: (wallet: Wallet | undefined) => void;
13
+ disconnectWallet: (chainType: ChainType) => void;
14
+ }>>;
15
+ export {};
@@ -0,0 +1,27 @@
1
+ import { ChainType } from "@0xsquid/squid-types";
2
+ import { create } from "zustand";
3
+ const initialWalletState = {
4
+ connectedWalletsByChainType: {
5
+ [ChainType.EVM]: { wallet: undefined, address: undefined },
6
+ [ChainType.COSMOS]: { wallet: undefined, address: undefined },
7
+ [ChainType.BTC]: { wallet: undefined, address: undefined },
8
+ },
9
+ connectingWallet: undefined,
10
+ };
11
+ export const useWalletStore = create((set) => ({
12
+ ...initialWalletState,
13
+ setConnectedWallet: (chainType, wallet, address) => set((state) => ({
14
+ connectedWalletsByChainType: {
15
+ ...state.connectedWalletsByChainType,
16
+ [chainType]: { wallet, address },
17
+ },
18
+ })),
19
+ setConnectingWallet: (wallet) => set({ connectingWallet: wallet }),
20
+ disconnectWallet: (chainType) => set((state) => ({
21
+ connectedWalletsByChainType: {
22
+ ...state.connectedWalletsByChainType,
23
+ [chainType]: { wallet: null, address: null },
24
+ },
25
+ })),
26
+ }));
27
+ //# sourceMappingURL=useWalletStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useWalletStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAWjC,MAAM,kBAAkB,GAAgB;IACtC,2BAA2B,EAAE;QAC3B,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1D,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;QAC7D,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;KAC3D;IACD,gBAAgB,EAAE,SAAS;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAUlC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACV,GAAG,kBAAkB;IACrB,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CACjD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,2BAA2B,EAAE;YAC3B,GAAG,KAAK,CAAC,2BAA2B;YACpC,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;SACjC;KACF,CAAC,CAAC;IACL,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAClE,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,2BAA2B,EAAE;YAC3B,GAAG,KAAK,CAAC,2BAA2B;YACpC,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;SAC7C;KACF,CAAC,CAAC;CACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { ChainType } from "@0xsquid/squid-types";
2
+ export declare const useAllConnectedWalletBalances: () => {
3
+ groupedBalances: {
4
+ evm: {
5
+ balance: string;
6
+ type: ChainType;
7
+ chainId: string;
8
+ address: string;
9
+ name: string;
10
+ symbol: string;
11
+ decimals: number;
12
+ logoURI?: string | undefined;
13
+ coingeckoId?: string | undefined;
14
+ interchainTokenId?: string | undefined;
15
+ volatility: import("@0xsquid/squid-types").Volatility;
16
+ usdPrice?: number | undefined;
17
+ axelarNetworkSymbol?: string | undefined;
18
+ subGraphOnly?: boolean | undefined;
19
+ subGraphIds?: string[] | undefined;
20
+ feeOnTransfer?: boolean | undefined;
21
+ isLpToken?: boolean | undefined;
22
+ disabled?: boolean | undefined;
23
+ }[];
24
+ cosmos: {
25
+ balance: string;
26
+ type: ChainType;
27
+ chainId: string;
28
+ address: string;
29
+ name: string;
30
+ symbol: string;
31
+ decimals: number;
32
+ logoURI?: string | undefined;
33
+ coingeckoId?: string | undefined;
34
+ interchainTokenId?: string | undefined;
35
+ volatility: import("@0xsquid/squid-types").Volatility;
36
+ usdPrice?: number | undefined;
37
+ axelarNetworkSymbol?: string | undefined;
38
+ subGraphOnly?: boolean | undefined;
39
+ subGraphIds?: string[] | undefined;
40
+ feeOnTransfer?: boolean | undefined;
41
+ isLpToken?: boolean | undefined;
42
+ disabled?: boolean | undefined;
43
+ }[];
44
+ bitcoin: {
45
+ balance: string;
46
+ type: ChainType;
47
+ chainId: string;
48
+ address: string;
49
+ name: string;
50
+ symbol: string;
51
+ decimals: number;
52
+ logoURI?: string | undefined;
53
+ coingeckoId?: string | undefined;
54
+ interchainTokenId?: string | undefined;
55
+ volatility: import("@0xsquid/squid-types").Volatility;
56
+ usdPrice?: number | undefined;
57
+ axelarNetworkSymbol?: string | undefined;
58
+ subGraphOnly?: boolean | undefined;
59
+ subGraphIds?: string[] | undefined;
60
+ feeOnTransfer?: boolean | undefined;
61
+ isLpToken?: boolean | undefined;
62
+ disabled?: boolean | undefined;
63
+ }[];
64
+ };
65
+ isInitialLoading: boolean;
66
+ isFetching: boolean;
67
+ isLoading: boolean;
68
+ tokens: {
69
+ balance: string;
70
+ type: ChainType;
71
+ chainId: string;
72
+ address: string;
73
+ name: string;
74
+ symbol: string;
75
+ decimals: number;
76
+ logoURI?: string | undefined;
77
+ coingeckoId?: string | undefined;
78
+ interchainTokenId?: string | undefined;
79
+ volatility: import("@0xsquid/squid-types").Volatility;
80
+ usdPrice?: number | undefined;
81
+ axelarNetworkSymbol?: string | undefined;
82
+ subGraphOnly?: boolean | undefined;
83
+ subGraphIds?: string[] | undefined;
84
+ feeOnTransfer?: boolean | undefined;
85
+ isLpToken?: boolean | undefined;
86
+ disabled?: boolean | undefined;
87
+ }[];
88
+ totalUsdBalance: number;
89
+ };
@@ -0,0 +1,52 @@
1
+ import { ChainType } from "@0xsquid/squid-types";
2
+ import { useMemo } from "react";
3
+ import { useSquidChains } from "../chains/useSquidChains";
4
+ import { useWallet } from "../wallet/useWallet";
5
+ import { useAllTokensWithBalanceForChainType } from "./useAllTokensWithBalanceForChainType";
6
+ export const useAllConnectedWalletBalances = () => {
7
+ const { findChain } = useSquidChains();
8
+ const { connectedAddresses } = useWallet();
9
+ const evmBalances = useAllTokensWithBalanceForChainType({
10
+ chainType: ChainType.EVM,
11
+ address: connectedAddresses[ChainType.EVM] ?? undefined,
12
+ });
13
+ const cosmosBalances = useAllTokensWithBalanceForChainType({
14
+ chainType: ChainType.COSMOS,
15
+ address: connectedAddresses[ChainType.COSMOS] ?? undefined,
16
+ });
17
+ const allTokens = useMemo(() => [...evmBalances.tokens, ...cosmosBalances.tokens], [evmBalances.tokens, cosmosBalances.tokens]);
18
+ const groupedBalances = useMemo(() => {
19
+ const grouped = allTokens.reduce((acc, token) => {
20
+ const chainType = findChain(token.chainId)?.chainType;
21
+ if (chainType) {
22
+ if (!acc[chainType]) {
23
+ acc[chainType] = [];
24
+ }
25
+ acc[chainType].push(token);
26
+ }
27
+ return acc;
28
+ }, {});
29
+ return {
30
+ [ChainType.EVM]: grouped[ChainType.EVM] || [],
31
+ [ChainType.COSMOS]: grouped[ChainType.COSMOS] || [],
32
+ [ChainType.BTC]: grouped[ChainType.BTC] || [],
33
+ };
34
+ }, [allTokens, findChain]);
35
+ const totalUsdBalance = useMemo(() => Number(evmBalances.totalUsdBalance) +
36
+ Number(cosmosBalances.totalUsdBalance), [evmBalances.totalUsdBalance, cosmosBalances.totalUsdBalance]);
37
+ const isInitialLoading = evmBalances.tokensWithBalanceQuery.isInitialLoading ||
38
+ cosmosBalances.tokensWithBalanceQuery.isInitialLoading;
39
+ const isFetching = evmBalances.tokensWithBalanceQuery.isFetching ||
40
+ cosmosBalances.tokensWithBalanceQuery.isFetching;
41
+ const isLoading = evmBalances.tokensWithBalanceQuery.isLoading ||
42
+ cosmosBalances.tokensWithBalanceQuery.isLoading;
43
+ return {
44
+ groupedBalances,
45
+ isInitialLoading,
46
+ isFetching,
47
+ isLoading,
48
+ tokens: allTokens,
49
+ totalUsdBalance,
50
+ };
51
+ };
52
+ //# sourceMappingURL=useAllConnectedWalletBalances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAllConnectedWalletBalances.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllConnectedWalletBalances.ts"],"names":[],"mappings":"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"}
@@ -10,21 +10,23 @@ import { useSquidTokens } from "./useSquidTokens";
10
10
  export const useAllTokensWithBalanceForChainType = ({ chainType, address, direction, queryOptions, }) => {
11
11
  const { cosmosChains, chains } = useSquidChains(direction);
12
12
  const { evmTokens, cosmosTokens } = useSquidTokens(direction);
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);
20
21
  return evmTokensBalances;
21
22
  }, {
22
23
  ...queryOptions,
23
- enabled: chainType === ChainType.EVM &&
24
+ enabled: evmTokens.length > 0 &&
25
+ chainType === ChainType.EVM &&
24
26
  !!address &&
25
- (queryOptions?.enabled ?? true),
27
+ queryOptions?.enabled !== false,
26
28
  });
27
- const cosmosTokensQuery = useQuery(keys().allTokensBalance(osmosisAddress, ChainType.COSMOS), async () => {
29
+ const cosmosTokensQuery = useQuery(keys().allTokensBalance(address, ChainType.COSMOS), async () => {
28
30
  const addresses = await getAllKeysForSupportedCosmosChains(cosmosChains.map((c) => c.chainId), keplrTypeWallet);
29
31
  const cosmosBalances = await getAllCosmosBalancesForAddress({
30
32
  addresses,
@@ -34,44 +36,45 @@ export const useAllTokensWithBalanceForChainType = ({ chainType, address, direct
34
36
  return cosmosBalances;
35
37
  }, {
36
38
  ...queryOptions,
37
- enabled: chainType === ChainType.COSMOS &&
38
- !!osmosisAddress &&
39
- (queryOptions?.enabled ?? true),
39
+ enabled: cosmosTokens.length > 0 &&
40
+ chainType === ChainType.COSMOS &&
41
+ !!address &&
42
+ queryOptions?.enabled !== false,
40
43
  });
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
44
  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
- };
45
+ let baseQuery;
46
+ switch (chainType) {
47
+ case ChainType.COSMOS:
48
+ baseQuery = cosmosTokensQuery;
49
+ break;
50
+ case ChainType.EVM:
51
+ baseQuery = evmTokensQuery;
52
+ break;
53
+ default:
54
+ baseQuery = { data: tokensWithZeroBalance[ChainType.EVM] };
61
55
  }
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
56
  return {
65
- ...evmTokensQuery,
66
- isLoading: false,
67
- isSuccess: true,
68
- data: [...tokensWithZeroBalance.evm, ...tokensWithZeroBalance.cosmos],
57
+ ...baseQuery,
58
+ isLoading: chainType ? baseQuery.isLoading : false,
59
+ isSuccess: chainType ? baseQuery.isSuccess : true,
60
+ data: baseQuery.data ??
61
+ tokensWithZeroBalance[chainType ?? ChainType.EVM] ??
62
+ [],
69
63
  };
70
64
  }, [chainType, cosmosTokensQuery, evmTokensQuery, tokensWithZeroBalance]);
71
- const tokens = useMemo(() => tokensWithBalanceQuery.data ?? [
72
- ...tokensWithZeroBalance.evm,
73
- ...tokensWithZeroBalance.cosmos,
74
- ], [tokensWithBalanceQuery.data, tokensWithZeroBalance]);
65
+ const tokens = useMemo(() => {
66
+ if (!chainType) {
67
+ return [
68
+ ...tokensWithZeroBalance[ChainType.EVM],
69
+ ...tokensWithZeroBalance[ChainType.COSMOS],
70
+ ...tokensWithZeroBalance[ChainType.BTC],
71
+ ];
72
+ }
73
+ const selectedChainTokens = tokensWithBalanceQuery.data ?? tokensWithZeroBalance[chainType];
74
+ const otherChainTypes = Object.values(ChainType).filter((type) => type !== chainType);
75
+ const otherChainTokens = otherChainTypes.flatMap((type) => tokensWithZeroBalance[type]);
76
+ return [...selectedChainTokens, ...otherChainTokens];
77
+ }, [tokensWithBalanceQuery.data, tokensWithZeroBalance, chainType]);
75
78
  const totalUsdBalance = useMemo(() => calculateTotalUsdBalanceUSD(tokens), [tokens]);
76
79
  return {
77
80
  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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"}
@@ -8,17 +8,118 @@ export declare const useEvmBalance: ({ chain, token, userAddress, enabled, refre
8
8
  }) => {
9
9
  balance: string;
10
10
  };
11
- export declare const useCosmosBalance: ({ chainData, token, userAddress, }: {
11
+ export declare const useCosmosBalance: ({ chainData, token, userAddress, enabled, refreshIntervalMs, }: {
12
12
  chainData: CosmosChain | undefined;
13
13
  token?: Token | undefined;
14
14
  userAddress?: string | undefined;
15
+ enabled?: boolean | undefined;
16
+ refreshIntervalMs?: number | undefined;
15
17
  }) => {
16
18
  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;
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;
24
125
  };
@@ -1,16 +1,14 @@
1
- import { useAccount, useBalance, useReadContract } from "wagmi";
2
1
  import { ChainType } from "@0xsquid/squid-types";
3
- import { useMemo } from "react";
2
+ import { useQuery } from "@tanstack/react-query";
3
+ import { useAccount, useBalance, useReadContract } from "wagmi";
4
4
  import { erc20Abi } from "viem";
5
5
  import { useCosmosContext } from "../../core";
6
6
  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, }) => {
7
+ import { keys } from "../../core/queries/queries-keys";
8
+ import { formatBNToReadable } from "../../services";
9
+ import { useAllTokensWithBalanceForChainType } from "./useAllTokensWithBalanceForChainType";
10
+ const DEFAULT_REFRESH_INTERVAL_MS = 15000;
11
+ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
14
12
  const { isConnected } = useAccount();
15
13
  const isNativeToken = token?.address.toLowerCase() === nativeEvmTokenAddress.toLowerCase();
16
14
  const userAddressParsed = userAddress;
@@ -42,77 +40,30 @@ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refre
42
40
  const formattedBalance = formatBNToReadable(balance ?? BigInt(0), token?.decimals ?? 18);
43
41
  return { balance: formattedBalance };
44
42
  };
45
- export const useCosmosBalance = ({ chainData, token, userAddress, }) => {
43
+ export const useCosmosBalance = ({ chainData, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
46
44
  const { isConnected } = useCosmosContext();
47
- const { cosmosAddress } = useCosmosForChain(chainData);
48
- const { cosmosBalances } = useAllTokensWithBalanceForChain(chainData, userAddress);
49
- const walletAddressToFetch = userAddress ?? cosmosAddress;
50
- const balance = useMemo(() => {
51
- if (walletAddressToFetch &&
52
- chainData &&
53
- chainData.chainType === ChainType.COSMOS &&
54
- isConnected) {
55
- return (cosmosBalances?.data?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
56
- }
57
- return "0";
58
- }, [
59
- cosmosBalances.data,
60
- walletAddressToFetch,
61
- chainData,
62
- token,
63
- isConnected,
64
- ]);
65
- return { balance };
66
- };
67
- export const useNativeBalance = (direction) => {
68
- const { address: evmAddress, isConnected: isEvmConnected } = useAccount();
69
- const { isConnected: isCosmosConnected, cosmosAddress } = useCosmosContext();
70
- const { toChain, fromChain } = useSwap();
71
- const chain = direction === "from" ? fromChain : toChain;
72
- const { data: nativeEvmBalance } = useBalance({
73
- address: evmAddress,
74
- chainId: Number(chain?.chainId),
75
- query: {
76
- enabled: isEvmConnected && chain?.chainType === ChainType.EVM,
77
- refetchInterval: 10000,
78
- staleTime: 5000,
79
- refetchOnWindowFocus: true,
80
- refetchOnMount: true,
81
- },
45
+ const { tokens: cosmosBalances } = useAllTokensWithBalanceForChainType({
46
+ chainType: ChainType.COSMOS,
47
+ address: chainData?.chainType === ChainType.COSMOS ? userAddress : undefined,
82
48
  });
83
- const { cosmosTokens } = useSquidTokens(direction);
84
- const nativeCosmosToken = useMemo(() => {
85
- if (chain?.chainType !== ChainType.COSMOS) {
86
- return;
87
- }
88
- return findNativeToken(cosmosTokens, chain);
89
- }, [cosmosTokens, chain]);
90
- const { balance: nativeCosmosBalance } = useCosmosBalance({
91
- chainData: isCosmosConnected && chain?.chainType === ChainType.COSMOS
92
- ? chain
93
- : undefined,
94
- token: isCosmosConnected ? nativeCosmosToken : undefined,
95
- userAddress: isCosmosConnected ? cosmosAddress : undefined,
49
+ const query = useQuery({
50
+ queryKey: keys().balance(chainData?.chainId, token?.address, userAddress),
51
+ queryFn: () => {
52
+ if (userAddress &&
53
+ chainData &&
54
+ chainData.chainType === ChainType.COSMOS &&
55
+ isConnected) {
56
+ return (cosmosBalances?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
57
+ }
58
+ return "0";
59
+ },
60
+ enabled: isConnected &&
61
+ enabled &&
62
+ !!userAddress &&
63
+ chainData?.chainType === ChainType.COSMOS,
64
+ refetchInterval: refreshIntervalMs,
65
+ retry: 2,
96
66
  });
97
- const nativeBalance = (() => {
98
- switch (chain?.chainType) {
99
- case ChainType.EVM:
100
- if (!nativeEvmBalance?.decimals || !nativeEvmBalance?.value)
101
- return undefined;
102
- return nativeEvmBalance;
103
- case ChainType.COSMOS:
104
- if (!nativeCosmosToken?.decimals || !nativeCosmosBalance)
105
- return undefined;
106
- return {
107
- decimals: nativeCosmosToken.decimals,
108
- value: parseToBigInt(nativeCosmosBalance, nativeCosmosToken.decimals),
109
- };
110
- default:
111
- return undefined;
112
- }
113
- })();
114
- const nativeBalanceFormatted = nativeBalance &&
115
- formatBNToReadable(nativeBalance.value, nativeBalance.decimals);
116
- return { nativeBalance, nativeBalanceFormatted };
67
+ return { ...query, balance: query.data ?? "0" };
117
68
  };
118
69
  //# 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
  };