@0xsquid/react-hooks 6.4.4-xrpl-beta.0 → 6.4.5

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 (134) 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/constants.d.ts +3 -6
  5. package/dist/core/constants.js +4 -26
  6. package/dist/core/constants.js.map +1 -1
  7. package/dist/core/index.d.ts +1 -1
  8. package/dist/core/index.js +1 -1
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/core/providers/CosmosProvider.d.ts +1 -1
  11. package/dist/core/providers/CosmosProvider.js.map +1 -1
  12. package/dist/core/queries/queries-keys.d.ts +4 -4
  13. package/dist/core/types/error.d.ts +1 -0
  14. package/dist/core/types/error.js.map +1 -1
  15. package/dist/core/types/index.d.ts +0 -1
  16. package/dist/core/types/index.js +0 -1
  17. package/dist/core/types/index.js.map +1 -1
  18. package/dist/core/types/transaction.d.ts +1 -0
  19. package/dist/core/types/wallet.d.ts +4 -21
  20. package/dist/core/types/wallet.js +0 -2
  21. package/dist/core/types/wallet.js.map +1 -1
  22. package/dist/core/wallets.js +0 -39
  23. package/dist/core/wallets.js.map +1 -1
  24. package/dist/hooks/chains/useSquidChains.js +1 -1
  25. package/dist/hooks/chains/useSquidChains.js.map +1 -1
  26. package/dist/hooks/cosmos/useCosmos.js +15 -5
  27. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  28. package/dist/hooks/index.d.ts +0 -2
  29. package/dist/hooks/index.js +0 -2
  30. package/dist/hooks/index.js.map +1 -1
  31. package/dist/hooks/store/useWalletStore.js +6 -5
  32. package/dist/hooks/store/useWalletStore.js.map +1 -1
  33. package/dist/hooks/swap/useSwap.js +3 -9
  34. package/dist/hooks/swap/useSwap.js.map +1 -1
  35. package/dist/hooks/tokens/useAllConnectedWalletBalances.d.ts +1 -1
  36. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +1 -12
  37. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
  38. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +6 -5
  39. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +16 -30
  40. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  41. package/dist/hooks/tokens/useBalance.d.ts +246 -18
  42. package/dist/hooks/tokens/useBalance.js +26 -65
  43. package/dist/hooks/tokens/useBalance.js.map +1 -1
  44. package/dist/hooks/tokens/useMultiChainBalance.d.ts +2 -2
  45. package/dist/hooks/tokens/useMultiChainBalance.js +35 -38
  46. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
  47. package/dist/hooks/tokens/useNativeBalance.d.ts +18 -16
  48. package/dist/hooks/tokens/useNativeBalance.js +56 -122
  49. package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
  50. package/dist/hooks/tokens/useNativeTokenForChain.js +4 -6
  51. package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -1
  52. package/dist/hooks/tokens/useSquidTokens.d.ts +11 -2
  53. package/dist/hooks/tokens/useSquidTokens.js +16 -8
  54. package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
  55. package/dist/hooks/transaction/useEstimate.js +1 -1
  56. package/dist/hooks/transaction/useEstimate.js.map +1 -1
  57. package/dist/hooks/transaction/useExecuteTransaction.d.ts +2 -0
  58. package/dist/hooks/transaction/useExecuteTransaction.js +42 -78
  59. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  60. package/dist/hooks/transaction/useGetRoute.d.ts +8 -7
  61. package/dist/hooks/transaction/useGetRoute.js +2 -2
  62. package/dist/hooks/transaction/useGetRoute.js.map +1 -1
  63. package/dist/hooks/transaction/useSingleTransaction.js +1 -1
  64. package/dist/hooks/transaction/useSingleTransaction.js.map +1 -1
  65. package/dist/hooks/user/useUserParams.js +1 -1
  66. package/dist/hooks/user/useUserParams.js.map +1 -1
  67. package/dist/hooks/wallet/useIntegratorContext.js +1 -1
  68. package/dist/hooks/wallet/useIntegratorContext.js.map +1 -1
  69. package/dist/hooks/wallet/useMultiChainWallet.d.ts +3 -1
  70. package/dist/hooks/wallet/useMultiChainWallet.js +21 -32
  71. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  72. package/dist/hooks/wallet/useSigner.d.ts +2 -2
  73. package/dist/hooks/wallet/useSigner.js +3 -32
  74. package/dist/hooks/wallet/useSigner.js.map +1 -1
  75. package/dist/hooks/wallet/useWallet.d.ts +1 -1
  76. package/dist/hooks/wallet/useWallet.js +5 -14
  77. package/dist/hooks/wallet/useWallet.js.map +1 -1
  78. package/dist/provider/index.d.ts +1 -1
  79. package/dist/provider/index.js +6 -6
  80. package/dist/provider/index.js.map +1 -1
  81. package/dist/services/external/rpcService.d.ts +3 -5
  82. package/dist/services/external/rpcService.js +11 -98
  83. package/dist/services/external/rpcService.js.map +1 -1
  84. package/dist/services/index.d.ts +0 -1
  85. package/dist/services/index.js +0 -1
  86. package/dist/services/index.js.map +1 -1
  87. package/dist/services/internal/assetsService.d.ts +4 -4
  88. package/dist/services/internal/assetsService.js +4 -126
  89. package/dist/services/internal/assetsService.js.map +1 -1
  90. package/dist/services/internal/cosmosService.d.ts +13 -3
  91. package/dist/services/internal/cosmosService.js +1 -1
  92. package/dist/services/internal/cosmosService.js.map +1 -1
  93. package/dist/services/internal/errorService.d.ts +0 -15
  94. package/dist/services/internal/errorService.js +3 -9
  95. package/dist/services/internal/errorService.js.map +1 -1
  96. package/dist/services/internal/estimateService.js +2 -2
  97. package/dist/services/internal/estimateService.js.map +1 -1
  98. package/dist/services/internal/evmService.d.ts +5 -2
  99. package/dist/services/internal/evmService.js.map +1 -1
  100. package/dist/services/internal/numberService.d.ts +0 -1
  101. package/dist/services/internal/numberService.js +0 -15
  102. package/dist/services/internal/numberService.js.map +1 -1
  103. package/dist/services/internal/solanaService.d.ts +5 -2
  104. package/dist/services/internal/solanaService.js.map +1 -1
  105. package/dist/services/internal/transactionService.d.ts +1 -0
  106. package/dist/services/internal/transactionService.js +2 -3
  107. package/dist/services/internal/transactionService.js.map +1 -1
  108. package/dist/services/internal/walletService.d.ts +11 -20
  109. package/dist/services/internal/walletService.js +20 -24
  110. package/dist/services/internal/walletService.js.map +1 -1
  111. package/dist/tests/numberService.test.js +1 -12
  112. package/dist/tests/numberService.test.js.map +1 -1
  113. package/package.json +7 -9
  114. package/dist/core/connectors/xrp/CrossMark.d.ts +0 -16
  115. package/dist/core/connectors/xrp/CrossMark.js +0 -30
  116. package/dist/core/connectors/xrp/CrossMark.js.map +0 -1
  117. package/dist/core/connectors/xrp/XrpMetamaskSnap.d.ts +0 -40
  118. package/dist/core/connectors/xrp/XrpMetamaskSnap.js +0 -204
  119. package/dist/core/connectors/xrp/XrpMetamaskSnap.js.map +0 -1
  120. package/dist/core/types/route.d.ts +0 -9
  121. package/dist/core/types/route.js +0 -4
  122. package/dist/core/types/route.js.map +0 -1
  123. package/dist/core/types/xrp.d.ts +0 -23
  124. package/dist/core/types/xrp.js +0 -2
  125. package/dist/core/types/xrp.js.map +0 -1
  126. package/dist/core/xrp/config.d.ts +0 -21
  127. package/dist/core/xrp/config.js +0 -53
  128. package/dist/core/xrp/config.js.map +0 -1
  129. package/dist/hooks/xrp/useXrp.d.ts +0 -7
  130. package/dist/hooks/xrp/useXrp.js +0 -22
  131. package/dist/hooks/xrp/useXrp.js.map +0 -1
  132. package/dist/services/internal/xrpService.d.ts +0 -27
  133. package/dist/services/internal/xrpService.js +0 -86
  134. package/dist/services/internal/xrpService.js.map +0 -1
@@ -1,93 +1,82 @@
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, getXrpTokenBalance, } from "../../services/external/rpcService";
11
- import { isXrpAddressValid } from "../../services/internal/xrpService";
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
- !isNativeToken &&
47
- token?.type === ChainType.EVM,
39
+ !isNativeToken,
48
40
  refetchInterval: refreshIntervalMs,
49
41
  retry: 2,
50
42
  },
51
43
  });
52
44
  const balance = isNativeToken ? nativeBalance?.value : erc20Balance;
53
- const isLoading = isNativeToken ? isNativeTokenLoading : isErc20Loading;
54
- const formattedBalance = balance != null && token?.decimals != null
55
- ? formatBNToReadable(balance, token.decimals)
56
- : "0";
57
- return { balance: formattedBalance, isLoading };
45
+ const formattedBalance = formatBNToReadable(balance ?? BigInt(0), token?.decimals ?? 18);
46
+ return { balance: formattedBalance };
58
47
  };
59
- 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, }) => {
60
49
  const { isConnected } = useCosmosContext();
61
- const { data: balance = "0", isLoading } = useQuery({
62
- queryKey: keys().balance(chain?.chainId, token?.address, userAddress),
50
+ const query = useQuery({
51
+ queryKey: keys().balance(chainData?.chainId, token?.address, userAddress),
63
52
  queryFn: async () => {
64
- if (!userAddress || !token || chain?.chainType !== ChainType.COSMOS) {
53
+ if (!userAddress || !token || chainData?.chainType !== ChainType.COSMOS) {
65
54
  return "0";
66
55
  }
67
- const isAddressValid = isCosmosAddressValid(chain.bech32Config.bech32PrefixAccAddr, userAddress);
56
+ const isAddressValid = isCosmosAddressValid(chainData.bech32Config.bech32PrefixAccAddr, userAddress);
68
57
  if (!isAddressValid)
69
58
  return "0";
70
- const balanceBn = await getCosmosTokenBalance(chain, userAddress, token.address);
71
- return formatBNToReadable(balanceBn, token.decimals);
59
+ const balance = await getCosmosTokenBalance(chainData, userAddress, token.address);
60
+ return formatBNToReadable(balance, token.decimals);
72
61
  },
73
62
  enabled: isConnected &&
74
63
  enabled &&
75
64
  !!userAddress &&
76
65
  !!token &&
77
- chain?.chainType === ChainType.COSMOS,
66
+ chainData?.chainType === ChainType.COSMOS,
78
67
  refetchInterval: refreshIntervalMs,
79
68
  retry: 2,
80
69
  });
81
- return { balance, isLoading };
70
+ return { ...query, balance: query.data ?? "0" };
82
71
  };
83
72
  export const useSolanaBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
84
- const { data: balance = "0", isLoading } = useQuery({
73
+ const query = useQuery({
85
74
  queryKey: keys().balance(chain?.chainId, token?.address, userAddress),
86
75
  queryFn: async () => {
87
76
  if (!userAddress || !token)
88
77
  return "0";
89
- const balanceBn = await getSolanaTokenBalance(userAddress, token.address);
90
- return formatBNToReadable(balanceBn, token.decimals);
78
+ const balance = await getSolanaTokenBalance(userAddress, token.address);
79
+ return formatBNToReadable(balance, token.decimals);
91
80
  },
92
81
  enabled: enabled &&
93
82
  !!userAddress &&
@@ -96,39 +85,11 @@ export const useSolanaBalance = ({ chain, token, userAddress, enabled = true, re
96
85
  refetchInterval: refreshIntervalMs,
97
86
  retry: 2,
98
87
  });
99
- return { balance, isLoading };
88
+ return { ...query, balance: query.data ?? "0" };
100
89
  };
101
90
  // TODO: implement fetching balances for all bitcoin tokens
102
- export const useBitcoinBalance = ({ userAddress, chain, }) => {
103
- const { balance: balanceBn, isLoading } = useBitcoinNativeBalance({
104
- address: userAddress,
105
- chain,
106
- });
107
- const balance = useMemo(() => {
108
- if (!balanceBn)
109
- return "0";
110
- return formatBNToReadable(balanceBn?.value, balanceBn?.decimals);
111
- }, [balanceBn]);
112
- return { balance, isLoading };
113
- };
114
- export const useXrpBalance = ({ userAddress, chain, enabled, token, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
115
- const { data: balance = "0", isLoading } = useQuery({
116
- queryKey: keys().balance(chain?.chainId, token?.address, userAddress),
117
- queryFn: async () => {
118
- if (!userAddress || !token || !chain)
119
- return "0";
120
- const balanceBn = await getXrpTokenBalance(userAddress, token.address, chain.rpc);
121
- return formatBNToReadable(balanceBn, token.decimals) ?? "0";
122
- },
123
- enabled: enabled &&
124
- !!userAddress &&
125
- !!token &&
126
- !!chain?.rpc &&
127
- chain?.chainType === ChainType.XRP &&
128
- isXrpAddressValid(userAddress),
129
- refetchInterval: refreshIntervalMs,
130
- retry: 2,
131
- });
132
- return { balance, isLoading };
91
+ export const useBitcoinBalance = ({ address, chain, }) => {
92
+ const { data: balance } = useBitcoinNativeBalance(chain, address);
93
+ return { balance };
133
94
  };
134
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, useXrpBalance, } 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: xrpBalance } = useXrpBalance({
38
- chain,
39
- token,
40
- userAddress,
41
- enabled: chain?.chainType === ChainType.XRP && 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.XRP:
56
- return xrpBalance;
57
- }
58
- }, [
59
- chain?.chainType,
60
- evmBalance,
61
- cosmosBalance,
62
- bitcoinBalance,
63
- solanaBalance,
64
- xrpBalance,
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 useXrpNativeBalance: ({ 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 {};
@@ -1,4 +1,4 @@
1
- import { ChainType } from "@0xsquid/squid-types";
1
+ import { ChainType, } from "@0xsquid/squid-types";
2
2
  import { useQuery } from "@tanstack/react-query";
3
3
  import { useMemo } from "react";
4
4
  import { useBalance as useWagmiBalance } from "wagmi";
@@ -8,58 +8,37 @@ import { formatBNToReadable, isWalletAddressValid, parseToBigInt, } from "../../
8
8
  import { getBitcoinNativeBalance, getSolanaNativeBalance, } from "../../services/external/rpcService";
9
9
  import { useCosmosForChain } from "../cosmos/useCosmosForChain";
10
10
  import { useWallet } from "../wallet/useWallet";
11
- import { useCosmosBalance, useXrpBalance } from "./useBalance";
11
+ import { useCosmosBalance } from "./useBalance";
12
12
  import { useNativeTokenForChain } from "./useNativeTokenForChain";
13
- const useEvmNativeBalance = ({ address, chain, }) => {
14
- const { isChainTypeConnected } = useWallet();
15
- const { data: nativeEvmBalance, isLoading } = useWagmiBalance({
16
- address: address,
13
+ const useEvmNativeBalance = (chain, evmAddress) => {
14
+ const { isConnected: isEvmConnected } = useWallet();
15
+ return useWagmiBalance({
16
+ address: evmAddress,
17
17
  chainId: Number(chain?.chainId),
18
18
  query: {
19
- enabled: isChainTypeConnected(ChainType.EVM) && !!address,
19
+ enabled: isEvmConnected(ChainType.EVM) && !!evmAddress,
20
20
  refetchInterval: 10000,
21
21
  staleTime: 5000,
22
22
  refetchOnWindowFocus: true,
23
23
  refetchOnMount: true,
24
24
  },
25
25
  });
26
- const balance = useMemo(() => {
27
- if (nativeEvmBalance?.decimals && nativeEvmBalance?.value) {
28
- return {
29
- decimals: nativeEvmBalance.decimals,
30
- value: nativeEvmBalance.value,
31
- };
32
- }
33
- return;
34
- }, [nativeEvmBalance?.decimals, nativeEvmBalance?.value]);
35
- return {
36
- balance,
37
- isLoading,
38
- };
39
26
  };
40
- const useCosmosNativeBalance = ({ address, chain, }) => {
27
+ const useCosmosNativeBalance = (chain, cosmosAddress) => {
41
28
  const { isConnected: isCosmosConnected } = useCosmosContext();
42
29
  const { nativeToken: nativeCosmosToken } = useNativeTokenForChain(chain);
43
- const { balance: rawBalance, isLoading } = useCosmosBalance({
44
- chain,
30
+ const { balance: nativeCosmosBalance, isLoading } = useCosmosBalance({
31
+ chainData: chain,
45
32
  token: nativeCosmosToken,
46
- userAddress: address,
33
+ userAddress: cosmosAddress,
47
34
  enabled: isCosmosConnected && chain?.chainType === ChainType.COSMOS,
48
35
  refreshIntervalMs: 10000,
49
36
  });
50
- const balance = useMemo(() => {
51
- if (nativeCosmosToken?.decimals && rawBalance) {
52
- return {
53
- decimals: nativeCosmosToken.decimals,
54
- value: parseToBigInt(rawBalance, nativeCosmosToken.decimals),
55
- };
56
- }
57
- }, [nativeCosmosToken?.decimals, rawBalance]);
58
- return { balance, isLoading };
37
+ return { nativeCosmosBalance, nativeCosmosToken, isLoading };
59
38
  };
60
- export const useBitcoinNativeBalance = ({ chain, address, }) => {
39
+ export const useBitcoinNativeBalance = (chain, address) => {
61
40
  const { nativeToken } = useNativeTokenForChain(chain);
62
- const { data: rawBalance = "0", isLoading } = useQuery(keys().balance(chain?.chainId, nativeToken?.address, address), async () => {
41
+ const { data, isLoading } = useQuery(keys().balance(chain?.chainId, nativeToken?.address, address), async () => {
63
42
  if (!address || !nativeToken)
64
43
  return "0";
65
44
  const balance = await getBitcoinNativeBalance(address);
@@ -73,22 +52,15 @@ export const useBitcoinNativeBalance = ({ chain, address, }) => {
73
52
  refetchOnWindowFocus: true,
74
53
  refetchOnMount: true,
75
54
  });
76
- const balance = useMemo(() => {
77
- if (nativeToken?.decimals && rawBalance) {
78
- return {
79
- decimals: nativeToken.decimals,
80
- value: parseToBigInt(rawBalance, nativeToken.decimals),
81
- };
82
- }
83
- }, [nativeToken?.decimals, rawBalance]);
84
55
  return {
85
- balance,
56
+ data,
86
57
  isLoading,
58
+ nativeToken,
87
59
  };
88
60
  };
89
- export const useSolanaNativeBalance = ({ chain, address, }) => {
61
+ export const useSolanaNativeBalance = (chain, address) => {
90
62
  const { nativeToken } = useNativeTokenForChain(chain);
91
- const { data: rawBalance, isLoading } = useQuery(keys().balance(chain?.chainId, nativeToken?.address, address), async () => {
63
+ const { data, isLoading } = useQuery(keys().balance(chain?.chainId, nativeToken?.address, address), async () => {
92
64
  const balance = await getSolanaNativeBalance(address);
93
65
  return formatBNToReadable(balance, nativeToken.decimals);
94
66
  }, {
@@ -100,100 +72,61 @@ export const useSolanaNativeBalance = ({ chain, address, }) => {
100
72
  refetchOnWindowFocus: true,
101
73
  refetchOnMount: true,
102
74
  });
103
- const balance = useMemo(() => {
104
- if (nativeToken?.decimals && rawBalance) {
105
- return {
106
- decimals: nativeToken.decimals,
107
- value: parseToBigInt(rawBalance, nativeToken.decimals),
108
- };
109
- }
110
- }, [nativeToken?.decimals, rawBalance]);
111
75
  return {
112
- balance,
113
- isLoading,
114
- };
115
- };
116
- export const useXrpNativeBalance = ({ address, chain, }) => {
117
- const { nativeToken } = useNativeTokenForChain(chain);
118
- const { balance: rawBalance, isLoading } = useXrpBalance({
119
- chain,
120
- token: nativeToken,
121
- userAddress: address,
122
- enabled: chain?.chainType === ChainType.XRP,
123
- });
124
- const balance = useMemo(() => {
125
- if (nativeToken?.decimals && rawBalance) {
126
- return {
127
- decimals: nativeToken.decimals,
128
- value: parseToBigInt(rawBalance, nativeToken.decimals),
129
- };
130
- }
131
- }, [nativeToken?.decimals, rawBalance]);
132
- return {
133
- balance,
76
+ data,
134
77
  isLoading,
78
+ nativeToken,
135
79
  };
136
80
  };
137
81
  export const useNativeBalance = (chain) => {
138
82
  const { connectedAddresses } = useWallet();
139
83
  const { data: cosmosAddressForChain } = useCosmosForChain(chain);
140
- // Cosmos is a special case because the address changes on every chain
141
- // so we can't use the default cosmos connected address
142
- const { balance: nativeCosmosBalance, isLoading: isCosmosLoading } = useCosmosNativeBalance({
143
- address: cosmosAddressForChain,
144
- chain,
145
- });
146
- const { balance: nativeEvmBalance, isLoading: isEvmLoading } = useEvmNativeBalance({ address: connectedAddresses[ChainType.EVM], chain });
147
- const { balance: nativeBitcoinBalance, isLoading: isBitcoinLoading } = useBitcoinNativeBalance({
148
- address: connectedAddresses[ChainType.BTC],
149
- chain,
150
- });
151
- const { balance: nativeSolanaBalance, isLoading: isSolanaLoading } = useSolanaNativeBalance({
152
- address: connectedAddresses[ChainType.SOLANA],
153
- chain,
154
- });
155
- const { balance: nativeXrpBalance, isLoading: isXrpLoading } = useXrpNativeBalance({
156
- address: connectedAddresses[ChainType.XRP],
157
- chain,
158
- });
159
- const { nativeBalance, nativeBalanceFormatted } = useMemo(() => {
160
- let balance;
84
+ const { data: nativeEvmBalance, isLoading: isEvmLoading } = useEvmNativeBalance(chain, connectedAddresses[ChainType.EVM]);
85
+ const { nativeCosmosBalance, nativeCosmosToken, isLoading: isCosmosLoading, } = useCosmosNativeBalance(chain, cosmosAddressForChain);
86
+ const { data: nativeBitcoinBalance, isLoading: isBitcoinLoading, nativeToken: nativeBitcoinToken, } = useBitcoinNativeBalance(chain, connectedAddresses[ChainType.BTC]);
87
+ const { data: nativeSolanaBalance, isLoading: isSolanaLoading, nativeToken: nativeSolanaToken, } = useSolanaNativeBalance(chain, connectedAddresses[ChainType.SOLANA]);
88
+ const nativeBalance = useMemo(() => {
161
89
  switch (chain?.chainType) {
162
90
  case ChainType.EVM:
163
- balance = nativeEvmBalance;
164
- break;
91
+ return nativeEvmBalance?.decimals && nativeEvmBalance?.value
92
+ ? nativeEvmBalance
93
+ : undefined;
165
94
  case ChainType.COSMOS:
166
- balance = nativeCosmosBalance;
167
- break;
95
+ return nativeCosmosToken?.decimals && nativeCosmosBalance
96
+ ? {
97
+ decimals: nativeCosmosToken.decimals,
98
+ value: parseToBigInt(nativeCosmosBalance, nativeCosmosToken.decimals),
99
+ }
100
+ : undefined;
168
101
  case ChainType.BTC:
169
- balance = nativeBitcoinBalance;
170
- break;
102
+ return nativeBitcoinBalance && nativeBitcoinToken?.decimals
103
+ ? {
104
+ decimals: nativeBitcoinToken.decimals,
105
+ value: parseToBigInt(nativeBitcoinBalance, nativeBitcoinToken.decimals),
106
+ }
107
+ : undefined;
171
108
  case ChainType.SOLANA:
172
- balance = nativeSolanaBalance;
173
- break;
174
- case ChainType.XRP:
175
- balance = nativeXrpBalance;
176
- break;
109
+ return nativeSolanaBalance && nativeSolanaToken?.decimals
110
+ ? {
111
+ decimals: nativeSolanaToken.decimals,
112
+ value: parseToBigInt(nativeSolanaBalance, nativeSolanaToken.decimals),
113
+ }
114
+ : undefined;
115
+ default:
116
+ return undefined;
177
117
  }
178
- const balanceFormatted = !!balance
179
- ? formatBNToReadable(balance.value, balance.decimals)
180
- : undefined;
181
- return {
182
- nativeBalance: balance,
183
- nativeBalanceFormatted: balanceFormatted,
184
- };
185
118
  }, [
186
119
  chain?.chainType,
187
120
  nativeEvmBalance,
121
+ nativeCosmosToken?.decimals,
188
122
  nativeCosmosBalance,
123
+ nativeBitcoinToken?.decimals,
189
124
  nativeBitcoinBalance,
190
125
  nativeSolanaBalance,
191
- nativeXrpBalance,
126
+ nativeSolanaToken?.decimals,
192
127
  ]);
193
128
  const isLoading = useMemo(() => {
194
- if (!chain?.chainType)
195
- return false;
196
- switch (chain.chainType) {
129
+ switch (chain?.chainType) {
197
130
  case ChainType.EVM:
198
131
  return isEvmLoading;
199
132
  case ChainType.COSMOS:
@@ -202,8 +135,8 @@ export const useNativeBalance = (chain) => {
202
135
  return isBitcoinLoading;
203
136
  case ChainType.SOLANA:
204
137
  return isSolanaLoading;
205
- case ChainType.XRP:
206
- return isXrpLoading;
138
+ default:
139
+ return false;
207
140
  }
208
141
  }, [
209
142
  chain?.chainType,
@@ -211,8 +144,9 @@ export const useNativeBalance = (chain) => {
211
144
  isCosmosLoading,
212
145
  isBitcoinLoading,
213
146
  isSolanaLoading,
214
- isXrpLoading,
215
147
  ]);
148
+ const nativeBalanceFormatted = nativeBalance &&
149
+ formatBNToReadable(nativeBalance?.value, nativeBalance?.decimals);
216
150
  return { nativeBalance, nativeBalanceFormatted, isLoading };
217
151
  };
218
152
  //# sourceMappingURL=useNativeBalance.js.map