@0xsquid/react-hooks 3.0.30-beta.9 → 4.0.1

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 (61) hide show
  1. package/dist/core/constants.d.ts +1 -0
  2. package/dist/core/constants.js +1 -0
  3. package/dist/core/constants.js.map +1 -1
  4. package/dist/core/wagmiConfig.d.ts +2 -3
  5. package/dist/core/wagmiConfig.js +17 -17
  6. package/dist/core/wagmiConfig.js.map +1 -1
  7. package/dist/core/wallets.d.ts +2 -1
  8. package/dist/core/wallets.js +1 -1
  9. package/dist/core/wallets.js.map +1 -1
  10. package/dist/hooks/cosmos/useCosmos.js +2 -2
  11. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  12. package/dist/hooks/index.d.ts +1 -1
  13. package/dist/hooks/index.js +1 -1
  14. package/dist/hooks/index.js.map +1 -1
  15. package/dist/hooks/store/useWalletStore.d.ts +1 -1
  16. package/dist/hooks/store/useWalletStore.js +20 -12
  17. package/dist/hooks/store/useWalletStore.js.map +1 -1
  18. package/dist/hooks/tokens/useAllConnectedWalletBalances.d.ts +17 -85
  19. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +50 -37
  20. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
  21. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +7 -26
  22. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +70 -61
  23. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  24. package/dist/hooks/tokens/useBalance.js +10 -6
  25. package/dist/hooks/tokens/useBalance.js.map +1 -1
  26. package/dist/hooks/tokens/useMultipleTokenPrices.js +1 -1
  27. package/dist/hooks/tokens/useMultipleTokenPrices.js.map +1 -1
  28. package/dist/hooks/tokens/useNativeBalance.js +7 -7
  29. package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
  30. package/dist/hooks/transaction/useApproval.js +8 -3
  31. package/dist/hooks/transaction/useApproval.js.map +1 -1
  32. package/dist/hooks/wallet/useAutoConnect.d.ts +3 -1
  33. package/dist/hooks/wallet/useAutoConnect.js +31 -21
  34. package/dist/hooks/wallet/useAutoConnect.js.map +1 -1
  35. package/dist/hooks/wallet/useGnosisContext.d.ts +7 -3
  36. package/dist/hooks/wallet/useGnosisContext.js +31 -22
  37. package/dist/hooks/wallet/useGnosisContext.js.map +1 -1
  38. package/dist/hooks/wallet/useMultiChainWallet.js +6 -1
  39. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  40. package/dist/hooks/wallet/useWallet.d.ts +2 -1
  41. package/dist/hooks/wallet/useWallet.js +55 -25
  42. package/dist/hooks/wallet/useWallet.js.map +1 -1
  43. package/dist/provider/index.d.ts +2 -1
  44. package/dist/provider/index.js +15 -59
  45. package/dist/provider/index.js.map +1 -1
  46. package/dist/services/external/tokenDataService.js +3 -4
  47. package/dist/services/external/tokenDataService.js.map +1 -1
  48. package/dist/services/internal/assetsService.js +7 -4
  49. package/dist/services/internal/assetsService.js.map +1 -1
  50. package/dist/services/internal/priceService.d.ts +5 -0
  51. package/dist/services/internal/priceService.js +19 -5
  52. package/dist/services/internal/priceService.js.map +1 -1
  53. package/dist/services/internal/walletService.d.ts +8 -1
  54. package/dist/services/internal/walletService.js +13 -0
  55. package/dist/services/internal/walletService.js.map +1 -1
  56. package/dist/tests/assetsService.test.js +37 -2
  57. package/dist/tests/assetsService.test.js.map +1 -1
  58. package/dist/tests/priceService.test.d.ts +1 -0
  59. package/dist/tests/priceService.test.js +38 -0
  60. package/dist/tests/priceService.test.js.map +1 -0
  61. package/package.json +1 -1
@@ -11,76 +11,85 @@ export const useAllTokensWithBalanceForChainType = ({ chainType, address, direct
11
11
  const { cosmosChains, chains } = useSquidChains(direction);
12
12
  const { evmTokens, cosmosTokens } = useSquidTokens(direction);
13
13
  const { keplrTypeWallet } = useCosmosContext();
14
- const tokensWithZeroBalance = useMemo(() => ({
15
- [ChainType.EVM]: evmTokens.map((t) => ({ ...t, balance: "0" })),
16
- [ChainType.COSMOS]: cosmosTokens.map((t) => ({ ...t, balance: "0" })),
17
- [ChainType.BTC]: [],
18
- }), [evmTokens, cosmosTokens]);
19
- const evmTokensQuery = useQuery(keys().allTokensBalance(address, ChainType.EVM), async () => {
20
- const evmTokensBalances = await getAllEvmTokensBalance(evmTokens, address, chains);
21
- return evmTokensBalances;
22
- }, {
23
- ...queryOptions,
24
- enabled: evmTokens.length > 0 &&
25
- chainType === ChainType.EVM &&
26
- !!address &&
27
- queryOptions?.enabled !== false,
28
- });
29
- const cosmosTokensQuery = useQuery(keys().allTokensBalance(address, ChainType.COSMOS), async () => {
30
- const addresses = await getAllKeysForSupportedCosmosChains(cosmosChains.map((c) => c.chainId), keplrTypeWallet);
31
- const cosmosBalances = await getAllCosmosBalancesForAddress({
32
- addresses,
33
- cosmosChains,
34
- cosmosTokens,
35
- });
36
- return cosmosBalances;
37
- }, {
38
- ...queryOptions,
39
- enabled: cosmosTokens.length > 0 &&
40
- chainType === ChainType.COSMOS &&
41
- !!address &&
42
- queryOptions?.enabled !== false,
43
- });
44
- const tokensWithBalanceQuery = useMemo(() => {
45
- let baseQuery;
14
+ const placeholderData = useMemo(() => {
15
+ const tokens = {
16
+ [ChainType.EVM]: evmTokens.map((t) => ({ ...t, balance: "0" })),
17
+ [ChainType.COSMOS]: cosmosTokens.map((t) => ({ ...t, balance: "0" })),
18
+ [ChainType.BTC]: [],
19
+ };
20
+ if (!chainType) {
21
+ return {
22
+ tokens: [...tokens[ChainType.EVM], ...tokens[ChainType.COSMOS]],
23
+ totalUsdBalance: "0",
24
+ };
25
+ }
26
+ return {
27
+ tokens: tokens[chainType],
28
+ totalUsdBalance: "0",
29
+ };
30
+ }, [evmTokens, cosmosTokens, chainType]);
31
+ const isQueryEnabled = useMemo(() => {
32
+ // Respect the queryOptions.enabled override if provided
33
+ if (queryOptions?.enabled === false)
34
+ return false;
46
35
  switch (chainType) {
36
+ case ChainType.EVM:
37
+ return evmTokens.length > 0 && !!address;
47
38
  case ChainType.COSMOS:
48
- baseQuery = cosmosTokensQuery;
49
- break;
39
+ return cosmosTokens.length > 0 && !!address;
40
+ case undefined:
41
+ return false;
42
+ case ChainType.BTC:
43
+ default:
44
+ return true;
45
+ }
46
+ }, [
47
+ chainType,
48
+ evmTokens.length,
49
+ cosmosTokens.length,
50
+ address,
51
+ queryOptions?.enabled,
52
+ ]);
53
+ const query = useQuery(keys().allTokensBalance(address, chainType), async () => {
54
+ // Return zero balances if no address
55
+ if (!address) {
56
+ const defaultTokens = placeholderData.tokens;
57
+ return {
58
+ tokens: defaultTokens,
59
+ totalUsdBalance: calculateTotalUsdBalanceUSD(defaultTokens),
60
+ };
61
+ }
62
+ let fetchedTokens = [];
63
+ // Fetch tokens based on chain type
64
+ switch (chainType) {
50
65
  case ChainType.EVM:
51
- baseQuery = evmTokensQuery;
66
+ fetchedTokens = await getAllEvmTokensBalance(evmTokens, address, chains);
67
+ break;
68
+ case ChainType.COSMOS:
69
+ const addresses = await getAllKeysForSupportedCosmosChains(cosmosChains.map((c) => c.chainId), keplrTypeWallet);
70
+ fetchedTokens = await getAllCosmosBalancesForAddress({
71
+ addresses,
72
+ cosmosChains,
73
+ cosmosTokens,
74
+ });
52
75
  break;
76
+ case ChainType.BTC:
53
77
  default:
54
- baseQuery = { data: tokensWithZeroBalance[ChainType.EVM] };
78
+ fetchedTokens = placeholderData.tokens;
79
+ break;
55
80
  }
56
81
  return {
57
- ...baseQuery,
58
- isLoading: chainType ? baseQuery.isLoading : false,
59
- isSuccess: chainType ? baseQuery.isSuccess : true,
60
- data: baseQuery.data ??
61
- tokensWithZeroBalance[chainType ?? ChainType.EVM] ??
62
- [],
82
+ tokens: fetchedTokens,
83
+ totalUsdBalance: calculateTotalUsdBalanceUSD(fetchedTokens),
63
84
  };
64
- }, [chainType, cosmosTokensQuery, evmTokensQuery, 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]);
78
- const totalUsdBalance = useMemo(() => calculateTotalUsdBalanceUSD(tokens), [tokens]);
85
+ }, {
86
+ ...queryOptions,
87
+ enabled: isQueryEnabled,
88
+ });
89
+ // Return placeholder if not fetched yet, otherwise return query data
79
90
  return {
80
- tokensWithBalanceQuery,
81
- tokens,
82
- refetch: tokensWithBalanceQuery.refetch,
83
- totalUsdBalance,
91
+ ...query,
92
+ data: query.data ?? placeholderData,
84
93
  };
85
94
  };
86
95
  //# sourceMappingURL=useAllTokensWithBalanceForChainType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAllTokensWithBalanceForChainType.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalanceForChainType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGL,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,EAClD,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAY,GAMb,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,EAAE,eAAe,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAE/C,MAAM,qBAAqB,GAAG,OAAO,CACnC,GAAG,EAAE,CAAC,CAAC;QACL,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/D,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACrE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE;KACpB,CAAC,EACF,CAAC,SAAS,EAAE,YAAY,CAAC,CAC1B,CAAC;IAEF,MAAM,cAAc,GAAG,QAAQ,CAC7B,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAC/C,KAAK,IAAI,EAAE;QACT,MAAM,iBAAiB,GAAG,MAAM,sBAAsB,CACpD,SAAS,EACT,OAAQ,EACR,MAAM,CACP,CAAC;QACF,OAAO,iBAAiB,CAAC;IAC3B,CAAC,EACD;QACE,GAAG,YAAY;QACf,OAAO,EACL,SAAS,CAAC,MAAM,GAAG,CAAC;YACpB,SAAS,KAAK,SAAS,CAAC,GAAG;YAC3B,CAAC,CAAC,OAAO;YACT,YAAY,EAAE,OAAO,KAAK,KAAK;KAClC,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,QAAQ,CAChC,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAClD,KAAK,IAAI,EAAE;QACT,MAAM,SAAS,GAAG,MAAM,kCAAkC,CACxD,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAClC,eAAe,CAChB,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,8BAA8B,CAAC;YAC1D,SAAS;YACT,YAAY;YACZ,YAAY;SACb,CAAC,CAAC;QACH,OAAO,cAAc,CAAC;IACxB,CAAC,EACD;QACE,GAAG,YAAY;QACf,OAAO,EACL,YAAY,CAAC,MAAM,GAAG,CAAC;YACvB,SAAS,KAAK,SAAS,CAAC,MAAM;YAC9B,CAAC,CAAC,OAAO;YACT,YAAY,EAAE,OAAO,KAAK,KAAK;KAClC,CACF,CAAC;IAEF,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAGrC,EAAE;QACF,IAAI,SAAS,CAAC;QAEd,QAAQ,SAAS,EAAE;YACjB,KAAK,SAAS,CAAC,MAAM;gBACnB,SAAS,GAAG,iBAAiB,CAAC;gBAC9B,MAAM;YACR,KAAK,SAAS,CAAC,GAAG;gBAChB,SAAS,GAAG,cAAc,CAAC;gBAC3B,MAAM;YACR;gBACE,SAAS,GAAG,EAAE,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;SAC9D;QAED,OAAO;YACL,GAAG,SAAS;YACZ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;YAClD,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACjD,IAAI,EACF,SAAS,CAAC,IAAI;gBACd,qBAAqB,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC;gBACjD,EAAE;SAC0C,CAAC;IACnD,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;gBACL,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC;gBACvC,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC1C,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC;aACxC,CAAC;SACH;QAED,MAAM,mBAAmB,GACvB,sBAAsB,CAAC,IAAI,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CACrD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAC7B,CAAC;QACF,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAC9C,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CACtC,CAAC;QAEF,OAAO,CAAC,GAAG,mBAAmB,EAAE,GAAG,gBAAgB,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpE,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,2BAA2B,CAAC,MAAM,CAAC,EACzC,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,sBAAsB;QACtB,MAAM;QACN,OAAO,EAAE,sBAAsB,CAAC,OAAO;QACvC,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useAllTokensWithBalanceForChainType.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalanceForChainType.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { ChainType } from "@0xsquid/squid-types";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- import { useAccount, useBalance, useReadContract } from "wagmi";
3
+ import { useBalance, useReadContract } from "wagmi";
4
4
  import { erc20Abi } from "viem";
5
5
  import { useCosmosContext } from "../../core";
6
6
  import { nativeEvmTokenAddress } from "../../core/constants";
7
7
  import { keys } from "../../core/queries/queries-keys";
8
8
  import { formatBNToReadable } from "../../services";
9
+ import { useWallet } from "../wallet/useWallet";
9
10
  import { useAllTokensWithBalanceForChainType } from "./useAllTokensWithBalanceForChainType";
10
11
  const DEFAULT_REFRESH_INTERVAL_MS = 15000;
11
12
  export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
12
- const { isConnected } = useAccount();
13
+ const { isConnected } = useWallet();
13
14
  const isNativeToken = token?.address.toLowerCase() === nativeEvmTokenAddress.toLowerCase();
14
15
  const userAddressParsed = userAddress;
15
16
  // Only fetch using useBalance if it's a native token
@@ -17,7 +18,7 @@ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refre
17
18
  address: userAddressParsed,
18
19
  chainId: Number(chain?.chainId),
19
20
  query: {
20
- enabled: isConnected && enabled && !!userAddress && isNativeToken,
21
+ enabled: isConnected(ChainType.EVM) && enabled && !!userAddress && isNativeToken,
21
22
  refetchInterval: refreshIntervalMs,
22
23
  retry: 2,
23
24
  },
@@ -31,7 +32,10 @@ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refre
31
32
  args: [userAddressParsed],
32
33
  chainId: Number(chain?.chainId),
33
34
  query: {
34
- enabled: isConnected && enabled && !!userAddress && !isNativeToken,
35
+ enabled: isConnected(ChainType.EVM) &&
36
+ enabled &&
37
+ !!userAddress &&
38
+ !isNativeToken,
35
39
  refetchInterval: refreshIntervalMs,
36
40
  retry: 2,
37
41
  },
@@ -42,7 +46,7 @@ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refre
42
46
  };
43
47
  export const useCosmosBalance = ({ chainData, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
44
48
  const { isConnected } = useCosmosContext();
45
- const { tokens: cosmosBalances } = useAllTokensWithBalanceForChainType({
49
+ const { data: cosmosBalancesData } = useAllTokensWithBalanceForChainType({
46
50
  chainType: ChainType.COSMOS,
47
51
  address: chainData?.chainType === ChainType.COSMOS ? userAddress : undefined,
48
52
  });
@@ -53,7 +57,7 @@ export const useCosmosBalance = ({ chainData, token, userAddress, enabled = true
53
57
  chainData &&
54
58
  chainData.chainType === ChainType.COSMOS &&
55
59
  isConnected) {
56
- return (cosmosBalances?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
60
+ return (cosmosBalancesData?.tokens?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
57
61
  }
58
62
  return "0";
59
63
  },
@@ -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 { useQuery } from "@tanstack/react-query";
2
+ import { TOKEN_PRICE_API_URL } from "../../core/constants";
2
3
  import { keys } from "../../core/queries/queries-keys";
3
- const TOKEN_PRICE_API_URL = `https://squid-app-v2-git-chore-wallet-squid-hooks-wiring-0xsquid.vercel.app/api/coingecko`;
4
4
  export const useMultipleTokenPrices = (tokens) => {
5
5
  const coingeckoIds = Array.from(new Set(tokens.map((token) => token.coingeckoId).filter(Boolean)));
6
6
  const coinGeckoQuery = useQuery({
@@ -1 +1 @@
1
- {"version":3,"file":"useMultipleTokenPrices.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultipleTokenPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,MAAM,mBAAmB,GAAG,2FAA2F,CAAC;AAcxH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAoC,EACpC,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACtD,CAAC;IAEd,MAAM,cAAc,GAAG,QAAQ,CAA2B;QACxD,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,aAAa,EAAE,KAAK;gBACpB,mBAAmB,EAAE,MAAM;aAC5B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,mBAAmB,IAAI,MAAM,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACV,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE;YACR,GAAG,CAAC,EAAE,CAAC,GAAG;gBACR,KAAK,EAAE,IAAI,CAAC,GAAG;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;aAC9B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,WAAmB,EAA8B,EAAE,CACxE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE3B,OAAO;QACL,WAAW;QACX,aAAa;QACb,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;KAChC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useMultipleTokenPrices.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultipleTokenPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAcvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAoC,EACpC,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACtD,CAAC;IAEd,MAAM,cAAc,GAAG,QAAQ,CAA2B;QACxD,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,aAAa,EAAE,KAAK;gBACpB,mBAAmB,EAAE,MAAM;aAC5B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,mBAAmB,IAAI,MAAM,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACV,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE;YACR,GAAG,CAAC,EAAE,CAAC,GAAG;gBACR,KAAK,EAAE,IAAI,CAAC,GAAG;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;aAC9B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,WAAmB,EAA8B,EAAE,CACxE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE3B,OAAO;QACL,WAAW;QACX,aAAa;QACb,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;KAChC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,17 +1,18 @@
1
1
  import { ChainType, } from "@0xsquid/squid-types";
2
2
  import { useMemo } from "react";
3
- import { useAccount, useBalance as useWagmiBalance } from "wagmi";
3
+ import { useBalance as useWagmiBalance } from "wagmi";
4
4
  import { useCosmosContext } from "../../core";
5
5
  import { findNativeToken, formatBNToReadable, parseToBigInt, } from "../../services";
6
+ import { useWallet } from "../wallet/useWallet";
6
7
  import { useCosmosBalance } from "./useBalance";
7
8
  import { useSquidTokens } from "./useSquidTokens";
8
9
  const useEvmNativeBalance = (chain, evmAddress) => {
9
- const { isConnected: isEvmConnected } = useAccount();
10
+ const { isConnected: isEvmConnected } = useWallet();
10
11
  return useWagmiBalance({
11
12
  address: evmAddress,
12
13
  chainId: Number(chain?.chainId),
13
14
  query: {
14
- enabled: isEvmConnected && chain?.chainType === ChainType.EVM,
15
+ enabled: isEvmConnected(ChainType.EVM) && !!evmAddress,
15
16
  refetchInterval: 10000,
16
17
  staleTime: 5000,
17
18
  refetchOnWindowFocus: true,
@@ -37,10 +38,9 @@ const useCosmosNativeBalance = (chain, cosmosAddress) => {
37
38
  return { nativeCosmosBalance, nativeCosmosToken, isLoading };
38
39
  };
39
40
  export const useNativeBalance = (chain) => {
40
- const { address: evmAddress } = useAccount();
41
- const { cosmosAddress } = useCosmosContext();
42
- const { data: nativeEvmBalance, isLoading: isEvmLoading } = useEvmNativeBalance(chain, evmAddress);
43
- const { nativeCosmosBalance, nativeCosmosToken, isLoading: isCosmosLoading, } = useCosmosNativeBalance(chain, cosmosAddress);
41
+ const { connectedAddresses } = useWallet();
42
+ const { data: nativeEvmBalance, isLoading: isEvmLoading } = useEvmNativeBalance(chain, connectedAddresses[ChainType.EVM]);
43
+ const { nativeCosmosBalance, nativeCosmosToken, isLoading: isCosmosLoading, } = useCosmosNativeBalance(chain, connectedAddresses[ChainType.COSMOS]);
44
44
  const nativeBalance = useMemo(() => {
45
45
  switch (chain?.chainType) {
46
46
  case ChainType.EVM:
@@ -1 +1 @@
1
- {"version":3,"file":"useNativeBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useNativeBalance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useNativeBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useNativeBalance.ts"],"names":[],"mappings":"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"}
@@ -115,9 +115,14 @@ export const useApproval = ({ squidRoute, }) => {
115
115
  }
116
116
  if (!!squidRoute && walletClient && fromToken && evmSigner) {
117
117
  await approveSpecificTokenToZero(fromToken);
118
- // If needed, we can switch the chain here
119
- // If already on the correct chain, this will do nothing
120
- await switchChainAsync({ chainId: Number(fromChain?.chainId) });
118
+ try {
119
+ // If needed, we can switch the chain here
120
+ // If already on the correct chain, this will do nothing
121
+ await switchChainAsync({ chainId: Number(fromChain?.chainId) });
122
+ }
123
+ catch (error) {
124
+ console.error("Error switching network:", error);
125
+ }
121
126
  const approved = await squid?.approveRoute({
122
127
  route: squidRoute,
123
128
  signer: evmSigner,
@@ -1 +1 @@
1
- {"version":3,"file":"useApproval.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useApproval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useApproval.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useApproval.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,6 @@
3
3
  * Safe will always be the priority connector
4
4
  * Because if it's present, this means the user is on a Safe app iframe
5
5
  */
6
- export declare const useAutoConnect: () => void;
6
+ export declare const useAutoConnect: () => {
7
+ autoConnect: () => Promise<void>;
8
+ };
@@ -1,9 +1,10 @@
1
- import { useCallback, useEffect } from "react";
2
- import { useConnect } from "wagmi";
1
+ import { useCallback, useEffect, useRef } from "react";
2
+ import { useAccount, useConnect, useReconnect, } from "wagmi";
3
3
  import { PriorityConnectors } from "../../core/constants";
4
- import { useWallet } from "./useWallet";
4
+ import { useSquidChains } from "../chains/useSquidChains";
5
+ import { useConfigStore } from "../store/useSquidStore";
6
+ import { useEvmWalletListener } from "./useWallet";
5
7
  const PRIORITY_CONNECTOR_ID = [PriorityConnectors.Safe];
6
- const WAGMI_RECENT_CONNECTOR_ID_LOCAL_STORAGE_KEY = "wagmi.recentConnectorId";
7
8
  /**
8
9
  * Auto connect to Safe provider if it's present
9
10
  * Safe will always be the priority connector
@@ -11,7 +12,12 @@ const WAGMI_RECENT_CONNECTOR_ID_LOCAL_STORAGE_KEY = "wagmi.recentConnectorId";
11
12
  */
12
13
  export const useAutoConnect = () => {
13
14
  const { connect, connectors } = useConnect();
14
- const { connectWallet, wallets } = useWallet();
15
+ const { isConnecting } = useAccount();
16
+ const { chains } = useSquidChains();
17
+ const { isInitialized } = useConfigStore();
18
+ const hasAttemptedReconnect = useRef(false);
19
+ const { reconnect } = useReconnect();
20
+ useEvmWalletListener();
15
21
  const autoConnect = useCallback(async () => {
16
22
  const queryParameters = new URLSearchParams(window.location.search);
17
23
  // TODO: At the moment gnosis was published without the embed parameter in the manifest,
@@ -33,32 +39,36 @@ export const useAutoConnect = () => {
33
39
  }
34
40
  }
35
41
  // Connect priority provider if it's present
36
- // Otherwise, connect to the last wallet used if authorized
37
42
  if (priorityConnector) {
38
43
  connect({ connector: priorityConnector });
39
44
  }
40
45
  else {
41
- try {
42
- const wagmiRecentConnectorId = JSON.parse(localStorage.getItem(WAGMI_RECENT_CONNECTOR_ID_LOCAL_STORAGE_KEY) ||
43
- "null");
44
- if (!wagmiRecentConnectorId) {
45
- return;
46
+ if (chains.length > 0 &&
47
+ isInitialized &&
48
+ !isConnecting &&
49
+ !hasAttemptedReconnect.current) {
50
+ try {
51
+ reconnect();
46
52
  }
47
- const wagmiRecentConnector = wallets.find((c) => c.connectorId === wagmiRecentConnectorId);
48
- const hasBeenDisconnected = JSON.parse(localStorage.getItem(`wagmi.${wagmiRecentConnectorId}.disconnected`) || "false");
49
- // If we do not check this, the wallet will try to connect even if the user disconnected on purpose
50
- // Checking this will prevent the wallet to popup at each page refresh if the user is disconnected
51
- if (!hasBeenDisconnected && wagmiRecentConnector) {
52
- connectWallet({ wallet: wagmiRecentConnector });
53
+ catch (error) {
54
+ console.error("Error auto connecting wallet:", error);
55
+ }
56
+ finally {
57
+ hasAttemptedReconnect.current = true;
53
58
  }
54
- }
55
- catch (error) {
56
- console.error("Error auto connecting wallet:", error);
57
59
  }
58
60
  }
59
- }, [connect, connectors, connectWallet, wallets]);
61
+ }, [
62
+ connectors,
63
+ connect,
64
+ chains.length,
65
+ isInitialized,
66
+ isConnecting,
67
+ reconnect,
68
+ ]);
60
69
  useEffect(() => {
61
70
  autoConnect();
62
71
  }, [autoConnect]);
72
+ return { autoConnect };
63
73
  };
64
74
  //# sourceMappingURL=useAutoConnect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoConnect.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useAutoConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAgC,UAAU,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAExD,MAAM,2CAA2C,GAAG,yBAAyB,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;IAC7C,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;IAE/C,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpE,wFAAwF;QACxF,8FAA8F;QAC9F,mFAAmF;QACnF,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAuB,CAAC;QACrE,IAAI,iBAA4D,CAAC;QAEjE,IAAI,SAAS,EAAE;YACb,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;SAChE;aAAM;YACL,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE;gBAChC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAwB,CAAC,EAAE;oBAC9D,IAAI,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;wBAC1B,iBAAiB,GAAG,CAAC,CAAC;wBACtB,MAAM;qBACP;iBACF;aACF;SACF;QAED,4CAA4C;QAC5C,2DAA2D;QAC3D,IAAI,iBAAiB,EAAE;YACrB,OAAO,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;SAC3C;aAAM;YACL,IAAI;gBACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CACvC,YAAY,CAAC,OAAO,CAAC,2CAA2C,CAAC;oBAC/D,MAAM,CACT,CAAC;gBAEF,IAAI,CAAC,sBAAsB,EAAE;oBAC3B,OAAO;iBACR;gBAED,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,sBAAsB,CAChD,CAAC;gBAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CACpC,YAAY,CAAC,OAAO,CAClB,SAAS,sBAAsB,eAAe,CAC/C,IAAI,OAAO,CACb,CAAC;gBAEF,mGAAmG;gBACnG,kGAAkG;gBAClG,IAAI,CAAC,mBAAmB,IAAI,oBAAoB,EAAE;oBAChD,aAAa,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;iBACjD;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;aACvD;SACF;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,EAAE,CAAC;IAChB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC"}
1
+ {"version":3,"file":"useAutoConnect.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useAutoConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAGL,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;IAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAEpC,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE,CAAC;IAC3C,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IACrC,oBAAoB,EAAE,CAAC;IAEvB,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpE,wFAAwF;QACxF,8FAA8F;QAC9F,mFAAmF;QACnF,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAuB,CAAC;QACrE,IAAI,iBAA4D,CAAC;QAEjE,IAAI,SAAS,EAAE;YACb,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;SAChE;aAAM;YACL,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE;gBAChC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAwB,CAAC,EAAE;oBAC9D,IAAI,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;wBAC1B,iBAAiB,GAAG,CAAC,CAAC;wBACtB,MAAM;qBACP;iBACF;aACF;SACF;QAED,4CAA4C;QAC5C,IAAI,iBAAiB,EAAE;YACrB,OAAO,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;SAC3C;aAAM;YACL,IACE,MAAM,CAAC,MAAM,GAAG,CAAC;gBACjB,aAAa;gBACb,CAAC,YAAY;gBACb,CAAC,qBAAqB,CAAC,OAAO,EAC9B;gBACA,IAAI;oBACF,SAAS,EAAE,CAAC;iBACb;gBAAC,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;iBACvD;wBAAS;oBACR,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAC;iBACtC;aACF;SACF;IACH,CAAC,EAAE;QACD,UAAU;QACV,OAAO;QACP,MAAM,CAAC,MAAM;QACb,aAAa;QACb,YAAY;QACZ,SAAS;KACV,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,EAAE,CAAC;IAChB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,EAAE,WAAW,EAAE,CAAC;AACzB,CAAC,CAAC"}
@@ -1,7 +1,11 @@
1
- import SafeAppsSDK from "@safe-global/safe-apps-sdk";
1
+ import { SafeInfo } from "@safe-global/safe-apps-sdk";
2
2
  export declare const useGnosisContext: () => {
3
- getGnosisSafeContext: () => Promise<SafeAppsSDK | undefined>;
4
- isSameAddressAndGnosisContext: boolean;
3
+ gnosisSafeInfo: SafeInfo | undefined;
5
4
  isGnosisContext: boolean;
6
5
  getGnosisTransactionHash: (initialHash: string) => Promise<string>;
6
+ isGnosisConnected: boolean;
7
+ gnosisAddress: `0x${string}` | undefined;
8
+ };
9
+ export declare const useIsSameAddressAndGnosisContext: () => {
10
+ isSameAddressAndGnosisContext: boolean;
7
11
  };
@@ -1,15 +1,13 @@
1
1
  import SafeAppsSDK, { TransactionStatus as GnosisTransactionStatus, } from "@safe-global/safe-apps-sdk";
2
2
  import { useCallback, useEffect, useMemo, useState } from "react";
3
3
  import { useAccount } from "wagmi";
4
- import { useSwapRoutePersistStore } from "../../hooks/store/useSquidStore";
5
- import { useSwap } from "../../hooks/swap/useSwap";
6
- import { useMultiChainWallet } from "../../hooks/wallet/useMultiChainWallet";
4
+ import { useSwapRoutePersistStore } from "../store/useSquidStore";
5
+ import { useSwap } from "../swap/useSwap";
6
+ import { useMultiChainWallet } from "./useMultiChainWallet";
7
7
  export const useGnosisContext = () => {
8
- const { connector } = useAccount();
9
- const { fromChain } = useSwap();
10
- const { swapRoute } = useSwapRoutePersistStore();
11
- const { connectedAddress } = useMultiChainWallet(fromChain);
12
- const [isGnosisContext, setisGnosisContext] = useState(false);
8
+ const { connector, isConnected, address } = useAccount();
9
+ const [isGnosisContext, setIsGnosisContext] = useState(false);
10
+ const [gnosisSafeInfo, setGnosisSafeInfo] = useState();
13
11
  /**
14
12
  * Method that will be used to send transaction
15
13
  * TODO: could have loaded the sdk when app load and stored globally
@@ -20,24 +18,15 @@ export const useGnosisContext = () => {
20
18
  const isSafeContext = safe.chainId !== undefined &&
21
19
  safe.safeAddress !== undefined &&
22
20
  connector?.id === "safe";
23
- setisGnosisContext(isSafeContext);
21
+ setGnosisSafeInfo(safe);
22
+ setIsGnosisContext(isSafeContext);
24
23
  if (isSafeContext)
25
24
  return appsSdk;
26
25
  return undefined;
27
26
  }, [connector]);
28
27
  useEffect(() => {
29
28
  getGnosisSafeContext();
30
- }, [connector]);
31
- /**
32
- * Check if we are in a Gnosis Safe Context
33
- * And if source wallet address = destination address
34
- * If swapRoute.destinationAddress is not defined, it means that it's the same from the source
35
- */
36
- const isSameAddressAndGnosisContext = useMemo(() => {
37
- const destAddressSameAsSource = connectedAddress === swapRoute?.destinationAddress ||
38
- swapRoute?.destinationAddress === undefined;
39
- return isGnosisContext && destAddressSameAsSource;
40
- }, [connectedAddress, swapRoute, isGnosisContext]);
29
+ }, [getGnosisSafeContext]);
41
30
  /**
42
31
  * There's a specific way to get the transaction hash for the safe connector
43
32
  * Using then initial hash received by the transaction, we can get the real hash
@@ -59,11 +48,31 @@ export const useGnosisContext = () => {
59
48
  }
60
49
  return tx?.txHash ?? initialHash;
61
50
  };
51
+ const isGnosisConnected = connector?.id === "safe" && isConnected;
62
52
  return {
63
- getGnosisSafeContext,
64
- isSameAddressAndGnosisContext,
53
+ gnosisSafeInfo,
65
54
  isGnosisContext,
66
55
  getGnosisTransactionHash,
56
+ isGnosisConnected,
57
+ gnosisAddress: isGnosisConnected ? address : undefined,
58
+ };
59
+ };
60
+ export const useIsSameAddressAndGnosisContext = () => {
61
+ const { isGnosisContext } = useGnosisContext();
62
+ const { fromChain } = useSwap();
63
+ const { connectedAddress: sourceAddress } = useMultiChainWallet(fromChain);
64
+ const destinationAddress = useSwapRoutePersistStore((store) => store.swapRoute?.destinationAddress?.address);
65
+ /**
66
+ * Check if we are in a Gnosis Safe Context
67
+ * And if source wallet address = destination address
68
+ * If destinationAddress is not defined, it means that it's the same from the source
69
+ */
70
+ const isSameAddressAndGnosisContext = useMemo(() => {
71
+ const destAddressSameAsSource = sourceAddress === destinationAddress || destinationAddress === undefined;
72
+ return isGnosisContext && destAddressSameAsSource;
73
+ }, [sourceAddress, destinationAddress, isGnosisContext]);
74
+ return {
75
+ isSameAddressAndGnosisContext,
67
76
  };
68
77
  };
69
78
  //# sourceMappingURL=useGnosisContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGnosisContext.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useGnosisContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useGnosisContext.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useGnosisContext.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,14 @@ import { useCosmosContext } from "../../core/providers/CosmosProvider";
7
7
  import { addEthereumChain, formatHash, isEvmChainNotSupportedError, } from "../../services/internal/walletService";
8
8
  import { useSquidChains } from "../chains/useSquidChains";
9
9
  import { useEnsDataForAddress } from "./useEns";
10
+ import { useGnosisContext } from "./useGnosisContext";
10
11
  import { useWallet } from "./useWallet";
11
12
  export const useMultiChainWallet = (chain) => {
12
13
  const { connectedAddresses, connectedWalletsByChainType } = useWallet();
13
14
  const { chain: currentEvmChain, connector: evmConnector } = useAccount();
14
15
  const { chains } = useSquidChains();
15
16
  const { getCosmosAddressForChain } = useCosmosContext();
17
+ const { isGnosisConnected } = useGnosisContext();
16
18
  const { switchChainAsync } = useSwitchChain();
17
19
  const evmAddress = useMemo(() => connectedAddresses[ChainType.EVM], [connectedAddresses]);
18
20
  const evmEnsData = useEnsDataForAddress({
@@ -85,9 +87,12 @@ export const useMultiChainWallet = (chain) => {
85
87
  },
86
88
  });
87
89
  const isChainTypeConnected = useCallback((chainType) => {
90
+ if (isGnosisConnected && chainType === ChainType.EVM) {
91
+ return true;
92
+ }
88
93
  const connectedWallet = connectedWalletsByChainType[chainType];
89
94
  return !!connectedWallet?.wallet && !!connectedWallet?.address;
90
- }, [connectedWalletsByChainType]);
95
+ }, [connectedWalletsByChainType, isGnosisConnected]);
91
96
  /**
92
97
  * Handle multiple chains
93
98
  */