@0xsquid/react-hooks 6.4.6 → 6.4.7-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 (132) hide show
  1. package/dist/core/connectors/bitcoin/errors/index.d.ts +2 -1
  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 +7 -4
  5. package/dist/core/constants.js +21 -4
  6. package/dist/core/constants.js.map +1 -1
  7. package/dist/core/externalLinks.d.ts +1 -1
  8. package/dist/core/externalLinks.js +1 -1
  9. package/dist/core/index.d.ts +1 -1
  10. package/dist/core/index.js +1 -1
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/core/providers/CosmosProvider.d.ts +1 -1
  13. package/dist/core/providers/CosmosProvider.js.map +1 -1
  14. package/dist/core/providers/SuiProvider.d.ts +19 -0
  15. package/dist/core/providers/SuiProvider.js +15 -0
  16. package/dist/core/providers/SuiProvider.js.map +1 -0
  17. package/dist/core/queries/queries-keys.d.ts +4 -4
  18. package/dist/core/types/error.d.ts +0 -1
  19. package/dist/core/types/error.js.map +1 -1
  20. package/dist/core/types/rpc.d.ts +10 -0
  21. package/dist/core/types/rpc.js +2 -0
  22. package/dist/core/types/rpc.js.map +1 -0
  23. package/dist/core/types/sui.d.ts +14 -0
  24. package/dist/core/types/sui.js +2 -0
  25. package/dist/core/types/sui.js.map +1 -0
  26. package/dist/core/types/transaction.d.ts +0 -1
  27. package/dist/core/types/wallet.d.ts +19 -2
  28. package/dist/core/types/wallet.js.map +1 -1
  29. package/dist/core/wallets.d.ts +1 -0
  30. package/dist/core/wallets.js +1 -1
  31. package/dist/core/wallets.js.map +1 -1
  32. package/dist/hooks/chains/useSquidChains.d.ts +1 -0
  33. package/dist/hooks/chains/useSquidChains.js +23 -4
  34. package/dist/hooks/chains/useSquidChains.js.map +1 -1
  35. package/dist/hooks/cosmos/useCosmos.js +15 -20
  36. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  37. package/dist/hooks/index.d.ts +1 -0
  38. package/dist/hooks/index.js +1 -0
  39. package/dist/hooks/index.js.map +1 -1
  40. package/dist/hooks/solana/useSolana.js +8 -2
  41. package/dist/hooks/solana/useSolana.js.map +1 -1
  42. package/dist/hooks/store/useWalletStore.d.ts +5 -5
  43. package/dist/hooks/store/useWalletStore.js +13 -20
  44. package/dist/hooks/store/useWalletStore.js.map +1 -1
  45. package/dist/hooks/sui/useSui.d.ts +2 -0
  46. package/dist/hooks/sui/useSui.js +28 -0
  47. package/dist/hooks/sui/useSui.js.map +1 -0
  48. package/dist/hooks/sui/useSuiClient.d.ts +9 -0
  49. package/dist/hooks/sui/useSuiClient.js +16 -0
  50. package/dist/hooks/sui/useSuiClient.js.map +1 -0
  51. package/dist/hooks/sui/useSuiWallets.d.ts +7 -0
  52. package/dist/hooks/sui/useSuiWallets.js +36 -0
  53. package/dist/hooks/sui/useSuiWallets.js.map +1 -0
  54. package/dist/hooks/swap/useSwap.js +3 -3
  55. package/dist/hooks/swap/useSwap.js.map +1 -1
  56. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +12 -1
  57. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
  58. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +4 -5
  59. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +30 -17
  60. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  61. package/dist/hooks/tokens/useBalance.d.ts +18 -246
  62. package/dist/hooks/tokens/useBalance.js +66 -25
  63. package/dist/hooks/tokens/useBalance.js.map +1 -1
  64. package/dist/hooks/tokens/useMultiChainBalance.d.ts +2 -2
  65. package/dist/hooks/tokens/useMultiChainBalance.js +38 -35
  66. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
  67. package/dist/hooks/tokens/useNativeBalance.d.ts +16 -18
  68. package/dist/hooks/tokens/useNativeBalance.js +121 -56
  69. package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
  70. package/dist/hooks/tokens/useNativeTokenForChain.js +6 -4
  71. package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -1
  72. package/dist/hooks/tokens/useSquidTokens.d.ts +2 -11
  73. package/dist/hooks/tokens/useSquidTokens.js +8 -16
  74. package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
  75. package/dist/hooks/transaction/useEstimate.js +1 -1
  76. package/dist/hooks/transaction/useEstimate.js.map +1 -1
  77. package/dist/hooks/transaction/useExecuteTransaction.d.ts +0 -2
  78. package/dist/hooks/transaction/useExecuteTransaction.js +81 -39
  79. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  80. package/dist/hooks/transaction/useGetRoute.d.ts +1 -2
  81. package/dist/hooks/transaction/useGetRoute.js +2 -2
  82. package/dist/hooks/transaction/useGetRoute.js.map +1 -1
  83. package/dist/hooks/transaction/useSingleTransaction.js +1 -1
  84. package/dist/hooks/transaction/useSingleTransaction.js.map +1 -1
  85. package/dist/hooks/user/useUserParams.js +1 -1
  86. package/dist/hooks/user/useUserParams.js.map +1 -1
  87. package/dist/hooks/wallet/useIntegratorContext.js +1 -1
  88. package/dist/hooks/wallet/useIntegratorContext.js.map +1 -1
  89. package/dist/hooks/wallet/useMultiChainWallet.d.ts +1 -3
  90. package/dist/hooks/wallet/useMultiChainWallet.js +32 -25
  91. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  92. package/dist/hooks/wallet/useSigner.d.ts +2 -2
  93. package/dist/hooks/wallet/useSigner.js +32 -3
  94. package/dist/hooks/wallet/useSigner.js.map +1 -1
  95. package/dist/hooks/wallet/useWallet.d.ts +53 -7
  96. package/dist/hooks/wallet/useWallet.js +25 -11
  97. package/dist/hooks/wallet/useWallet.js.map +1 -1
  98. package/dist/hooks/wallet/useWallets.d.ts +29 -1
  99. package/dist/hooks/wallet/useWallets.js +5 -1
  100. package/dist/hooks/wallet/useWallets.js.map +1 -1
  101. package/dist/provider/index.d.ts +1 -1
  102. package/dist/provider/index.js +10 -8
  103. package/dist/provider/index.js.map +1 -1
  104. package/dist/services/external/rpcService.d.ts +8 -4
  105. package/dist/services/external/rpcService.js +38 -14
  106. package/dist/services/external/rpcService.js.map +1 -1
  107. package/dist/services/external/suiRpcClient.d.ts +32 -0
  108. package/dist/services/external/suiRpcClient.js +80 -0
  109. package/dist/services/external/suiRpcClient.js.map +1 -0
  110. package/dist/services/internal/assetsService.d.ts +2 -2
  111. package/dist/services/internal/assetsService.js +2 -2
  112. package/dist/services/internal/assetsService.js.map +1 -1
  113. package/dist/services/internal/bitcoinService.d.ts +3 -5
  114. package/dist/services/internal/bitcoinService.js.map +1 -1
  115. package/dist/services/internal/cosmosService.d.ts +4 -14
  116. package/dist/services/internal/cosmosService.js +1 -1
  117. package/dist/services/internal/cosmosService.js.map +1 -1
  118. package/dist/services/internal/errorService.d.ts +15 -0
  119. package/dist/services/internal/errorService.js +34 -4
  120. package/dist/services/internal/errorService.js.map +1 -1
  121. package/dist/services/internal/evmService.d.ts +3 -6
  122. package/dist/services/internal/evmService.js.map +1 -1
  123. package/dist/services/internal/solanaService.d.ts +3 -6
  124. package/dist/services/internal/solanaService.js.map +1 -1
  125. package/dist/services/internal/suiService.d.ts +9 -0
  126. package/dist/services/internal/suiService.js +88 -0
  127. package/dist/services/internal/suiService.js.map +1 -0
  128. package/dist/services/internal/transactionService.d.ts +0 -1
  129. package/dist/services/internal/walletService.d.ts +20 -14
  130. package/dist/services/internal/walletService.js +32 -25
  131. package/dist/services/internal/walletService.js.map +1 -1
  132. package/package.json +11 -7
@@ -1,8 +1,10 @@
1
+ import { ChainType } from "@0xsquid/squid-types";
1
2
  import { useMemo } from "react";
2
3
  import { useAccount, useWalletClient } from "wagmi";
3
4
  import { PhantomConnector, UnisatConnector, } from "../../core/connectors/bitcoin";
4
5
  import { useCosmosContext } from "../../core/providers/CosmosProvider";
5
6
  import { useSolanaContext } from "../../core/providers/SolanaProvider";
7
+ import { useSuiContext } from "../../core/providers/SuiProvider";
6
8
  import { clientToSigner } from "../../core/wagmiConfig";
7
9
  import { useSwap } from "../swap/useSwap";
8
10
  import { useWallet } from "./useWallet";
@@ -16,8 +18,7 @@ export const useSigner = () => {
16
18
  const evmSigner = useEthersSigner({ chainId: Number(fromChain?.chainId) });
17
19
  const { cosmosSigner } = useCosmosContext();
18
20
  const { signer: solanaSigner } = useSolanaContext();
19
- const isEvmSignerReady = !!evmSigner;
20
- const isSolanaSignerReady = !!solanaSigner;
21
+ const { signer: suiSigner } = useSuiContext();
21
22
  const { connectedWalletsByChainType } = useWallet();
22
23
  const connectedSourceWallet = fromChain?.chainType
23
24
  ? connectedWalletsByChainType[fromChain.chainType]
@@ -32,13 +33,41 @@ export const useSigner = () => {
32
33
  }
33
34
  }
34
35
  }, [connectedSourceWallet?.wallet?.connectorId]);
35
- return {
36
+ const isEvmSignerReady = !!evmSigner;
37
+ const isCosmosSignerReady = !!cosmosSigner;
38
+ const isSolanaSignerReady = !!solanaSigner;
39
+ const isBitcoinSignerReady = !!bitcoinSigner;
40
+ const isSuiSignerReady = !!suiSigner;
41
+ const isSignerReady = useMemo(() => {
42
+ if (!fromChain?.chainType)
43
+ return false;
44
+ switch (fromChain.chainType) {
45
+ case ChainType.EVM:
46
+ return isEvmSignerReady;
47
+ case ChainType.COSMOS:
48
+ return isCosmosSignerReady;
49
+ case ChainType.BTC:
50
+ return isBitcoinSignerReady;
51
+ case ChainType.SOLANA:
52
+ return isSolanaSignerReady;
53
+ case ChainType.SUI:
54
+ return isSuiSignerReady;
55
+ }
56
+ }, [
57
+ fromChain?.chainType,
36
58
  isEvmSignerReady,
59
+ isCosmosSignerReady,
60
+ isBitcoinSignerReady,
37
61
  isSolanaSignerReady,
62
+ isSuiSignerReady,
63
+ ]);
64
+ return {
65
+ isSignerReady,
38
66
  evmSigner,
39
67
  cosmosSigner,
40
68
  bitcoinSigner,
41
69
  solanaSigner,
70
+ suiSigner,
42
71
  };
43
72
  };
44
73
  //# sourceMappingURL=useSigner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSigner.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAEL,gBAAgB,EAChB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,KAA2B,EAAE;IACpE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEpD,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,CAAC;IACrC,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IAE3C,MAAM,EAAE,2BAA2B,EAAE,GAAG,SAAS,EAAE,CAAC;IACpD,MAAM,qBAAqB,GAAG,SAAS,EAAE,SAAS;QAChD,CAAC,CAAC,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,aAAa,GAAiC,OAAO,CAAC,GAAG,EAAE;QAC/D,QAAQ,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,KAAK,QAAQ,CAAC,CAAC;gBACb,OAAO,IAAI,eAAe,EAAE,CAAC;aAC9B;YACD,KAAK,SAAS,CAAC,CAAC;gBACd,OAAO,IAAI,gBAAgB,EAAE,CAAC;aAC/B;SACF;IACH,CAAC,EAAE,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,OAAO;QACL,gBAAgB;QAChB,mBAAmB;QACnB,SAAS;QACT,YAAY;QACZ,aAAa;QACb,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useSigner.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useSigner.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,59 @@
1
1
  import type { ChainData } from "@0xsquid/squid-types";
2
2
  import { ChainType } from "@0xsquid/squid-types";
3
- import type { Wallet } from "../../core/types/wallet";
3
+ import type { EvmWallet, Wallet } from "../../core/types/wallet";
4
4
  export declare const useWallet: () => {
5
- wallets: Wallet[];
5
+ wallets: (({
6
+ name: string;
7
+ connectorId: import("../../core/types/wallet").ConnectorID;
8
+ connectorName: string;
9
+ icon: string | undefined;
10
+ windowFlag: import("../../core/types/wallet").WindowWalletFlag;
11
+ canSwitchWallets?: boolean | undefined;
12
+ isMobile?: boolean | undefined;
13
+ isInstalled?: (() => boolean) | undefined;
14
+ skipInstallCheck?: boolean | undefined;
15
+ rdns?: string | undefined;
16
+ } & {
17
+ isMultiChain: true;
18
+ supportedNetworks: import("../../core/types/wallet").NetworkConfig[];
19
+ }) | ({
20
+ name: string;
21
+ connectorId: import("../../core/types/wallet").ConnectorID;
22
+ connectorName: string;
23
+ icon: string | undefined;
24
+ windowFlag: import("../../core/types/wallet").WindowWalletFlag;
25
+ canSwitchWallets?: boolean | undefined;
26
+ isMobile?: boolean | undefined;
27
+ isInstalled?: (() => boolean) | undefined;
28
+ skipInstallCheck?: boolean | undefined;
29
+ rdns?: string | undefined;
30
+ } & {
31
+ isMultiChain?: false | undefined;
32
+ type: ChainType;
33
+ }))[];
6
34
  connectedWallets: Wallet[];
7
- connectedWalletsByChainType: Record<ChainType, {
8
- wallet: Wallet | undefined;
9
- address: string | undefined;
10
- }>;
35
+ connectedWalletsByChainType: {
36
+ evm: Partial<{
37
+ wallet: EvmWallet;
38
+ address: string;
39
+ }>;
40
+ cosmos: Partial<{
41
+ wallet: import("../../core/types/wallet").CosmosWallet;
42
+ address: string;
43
+ }>;
44
+ solana: Partial<{
45
+ wallet: import("../../core/types/wallet").SolanaWallet;
46
+ address: string;
47
+ }>;
48
+ bitcoin: Partial<{
49
+ wallet: import("../../core/types/wallet").BitcoinWallet;
50
+ address: string;
51
+ }>;
52
+ sui: Partial<{
53
+ wallet: import("../../core/types/wallet").SuiWallet;
54
+ address: string;
55
+ } & import("../../core/types/sui").SuiAccount>;
56
+ };
11
57
  connectedAddresses: Record<ChainType, string | undefined>;
12
58
  connectingWalletState: import("../store/useWalletStore").ConnectingWalletState;
13
59
  changeWallet: () => Promise<void>;
@@ -18,6 +64,6 @@ export declare const useWallet: () => {
18
64
  selectedChainTypes?: ChainType[] | undefined;
19
65
  }, unknown>;
20
66
  isWalletConnected: (wallet: Wallet) => boolean;
21
- isConnected: (chainType: ChainType) => boolean;
67
+ isChainTypeConnected: (chainType: ChainType | undefined) => boolean;
22
68
  };
23
69
  export declare const useEvmWalletListener: () => void;
@@ -4,6 +4,7 @@ import { useCallback, useEffect, useMemo } from "react";
4
4
  import { useAccount, useConnect, useDisconnect, useWalletClient } from "wagmi";
5
5
  import { useCosmosContext } from "../../core/providers/CosmosProvider";
6
6
  import { useSolanaContext } from "../../core/providers/SolanaProvider";
7
+ import { useSuiContext } from "../../core/providers/SuiProvider";
7
8
  import { connectWallet as connectWalletServiceMethod, findWalletByWagmiConnector, getWalletSupportedChainTypes, redirectToExtensionsStore, } from "../../services/internal/walletService";
8
9
  import { useSquidChains } from "../chains/useSquidChains";
9
10
  import { useConfigStore } from "../store/useSquidStore";
@@ -14,10 +15,11 @@ export const useWallet = () => {
14
15
  const { wallets } = useWallets();
15
16
  const { disconnectAsync: disconnectEvm } = useDisconnect();
16
17
  const { connectCosmos, cosmosConnectedWallet } = useCosmosContext();
18
+ const { connectSolana } = useSolanaContext();
19
+ const { connectSui, disconnectSui } = useSuiContext();
17
20
  const { connectAsync: connectEvmAsync } = useConnect();
18
21
  const { findChain } = useSquidChains();
19
22
  const { isGnosisConnected, gnosisAddress } = useGnosisContext();
20
- const { connectSolana } = useSolanaContext();
21
23
  const { connectedWalletsByChainType, connectingWalletState, setConnectedWallet, setConnectingWallet, disconnectWallet: storeDisconnectWallet, } = useWalletStore();
22
24
  const walletConnectionRejected = (wallet) => {
23
25
  setConnectingWallet({
@@ -44,13 +46,13 @@ export const useWallet = () => {
44
46
  connectCosmos,
45
47
  cosmosConnectedWallet,
46
48
  connectSolana,
49
+ connectSui,
47
50
  selectedChainTypes,
48
51
  findChain,
49
52
  });
50
53
  if (result) {
51
- // Set connected wallet for each chain type with its corresponding address
52
- result.addresses.forEach(({ chainType, address }) => {
53
- setConnectedWallet(result.wallet, address, chainType);
54
+ result.addresses.forEach(({ chainType, data }) => {
55
+ setConnectedWallet(chainType, data);
54
56
  });
55
57
  setConnectingWallet({
56
58
  status: ConnectingWalletStatus.IDLE,
@@ -77,6 +79,9 @@ export const useWallet = () => {
77
79
  case ChainType.SOLANA:
78
80
  // Solana disconnect is handled by the wallet adapter events
79
81
  break;
82
+ case ChainType.SUI:
83
+ disconnectSui();
84
+ break;
80
85
  default:
81
86
  // TODO: Implement disconnect for other chains
82
87
  break;
@@ -133,9 +138,15 @@ export const useWallet = () => {
133
138
  .map((c) => c.wallet)
134
139
  .filter((w) => w !== null && w !== undefined);
135
140
  }, [connectedWalletsByChainType]);
136
- const isConnected = useCallback((chainType) => {
137
- return !!connectedAddresses[chainType];
138
- }, [connectedAddresses]);
141
+ const isChainTypeConnected = useCallback((chainType) => {
142
+ if (!chainType)
143
+ return false;
144
+ if (isGnosisConnected && chainType === ChainType.EVM) {
145
+ return true;
146
+ }
147
+ const connectedWallet = connectedWalletsByChainType[chainType];
148
+ return !!connectedWallet?.wallet && !!connectedWallet?.address;
149
+ }, [connectedWalletsByChainType, isGnosisConnected]);
139
150
  return {
140
151
  wallets,
141
152
  connectedWallets,
@@ -146,7 +157,7 @@ export const useWallet = () => {
146
157
  disconnectWallet,
147
158
  connectWallet: connectWalletMutation.mutateAsync,
148
159
  isWalletConnected,
149
- isConnected,
160
+ isChainTypeConnected,
150
161
  };
151
162
  };
152
163
  export const useEvmWalletListener = () => {
@@ -163,14 +174,17 @@ export const useEvmWalletListener = () => {
163
174
  address &&
164
175
  connector &&
165
176
  !isConnecting &&
166
- !evmConnectedWallet.wallet &&
177
+ !evmConnectedWallet?.wallet &&
167
178
  !isDisconnected) {
168
179
  const wallet = findWalletByWagmiConnector(wallets, connector);
169
180
  // TODO: implement evm listener for multichain wallets
170
181
  if (!wallet || wallet.isMultiChain)
171
182
  return;
172
183
  if (wallet.type === ChainType.EVM) {
173
- setConnectedWallet(wallet, address, ChainType.EVM);
184
+ setConnectedWallet(ChainType.EVM, {
185
+ wallet: wallet,
186
+ address,
187
+ });
174
188
  }
175
189
  }
176
190
  else if (isDisconnected && evmConnectedWallet.wallet) {
@@ -180,7 +194,7 @@ export const useEvmWalletListener = () => {
180
194
  address,
181
195
  connector,
182
196
  disconnectWallet,
183
- evmConnectedWallet.wallet,
197
+ evmConnectedWallet?.wallet,
184
198
  isConnected,
185
199
  isConnecting,
186
200
  isDisconnected,
@@ -1 +1 @@
1
- {"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallet.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,31 @@
1
1
  export declare const useWallets: () => {
2
- wallets: import("../..").Wallet[];
2
+ wallets: (({
3
+ name: string;
4
+ connectorId: import("../..").ConnectorID;
5
+ connectorName: string;
6
+ icon: string | undefined;
7
+ windowFlag: import("../../core/types/wallet").WindowWalletFlag;
8
+ canSwitchWallets?: boolean | undefined;
9
+ isMobile?: boolean | undefined;
10
+ isInstalled?: (() => boolean) | undefined;
11
+ skipInstallCheck?: boolean | undefined;
12
+ rdns?: string | undefined;
13
+ } & {
14
+ isMultiChain: true;
15
+ supportedNetworks: import("../..").NetworkConfig[];
16
+ }) | ({
17
+ name: string;
18
+ connectorId: import("../..").ConnectorID;
19
+ connectorName: string;
20
+ icon: string | undefined;
21
+ windowFlag: import("../../core/types/wallet").WindowWalletFlag;
22
+ canSwitchWallets?: boolean | undefined;
23
+ isMobile?: boolean | undefined;
24
+ isInstalled?: (() => boolean) | undefined;
25
+ skipInstallCheck?: boolean | undefined;
26
+ rdns?: string | undefined;
27
+ } & {
28
+ isMultiChain?: false | undefined;
29
+ type: import("@0xsquid/squid-types").ChainType;
30
+ }))[];
3
31
  };
@@ -1,9 +1,13 @@
1
1
  import { useMemo } from "react";
2
+ import { useSuiContext } from "../../core/providers/SuiProvider";
2
3
  import { getWallets } from "../../services/internal/walletService";
3
4
  import { useClient } from "../client/useClient";
4
5
  export const useWallets = () => {
5
6
  const { clientWindow } = useClient();
6
- const wallets = useMemo(() => getWallets(clientWindow), [clientWindow]);
7
+ const { wallets: suiWallets } = useSuiContext();
8
+ const wallets = useMemo(() => {
9
+ return [...getWallets(clientWindow), ...suiWallets];
10
+ }, [clientWindow, suiWallets]);
7
11
  return {
8
12
  wallets,
9
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;IACrC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAEhD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAE/B,OAAO;QACL,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { AppConfig } from "../core/types/config";
2
1
  import React from "react";
2
+ import { AppConfig } from "../core/types/config";
3
3
  interface ISdkProviderProps {
4
4
  children: React.ReactNode;
5
5
  config: AppConfig;
@@ -1,18 +1,19 @@
1
1
  import { Squid } from "@0xsquid/sdk";
2
2
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
3
- import { squidApiBaseUrl } from "../core/externalLinks";
4
- import { CosmosProvider } from "../core/providers/CosmosProvider";
5
- import { defaultOptions } from "../core/queries/react-query-config";
6
- import { createWagmiConfig } from "../core/wagmiConfig";
7
- import { useConfigStore, useSquidStore, useSwapRoutePersistStore, } from "../hooks/store/useSquidStore";
8
- import { getConfigWithDefaults } from "../services/internal/configService";
9
3
  import React, { useCallback, useEffect, useRef, useState } from "react";
10
4
  import { mainnet } from "viem/chains";
11
5
  import { createConfig, http, WagmiProvider } from "wagmi";
12
6
  import { injected } from "wagmi/connectors";
7
+ import { squidApiBaseUrl } from "../core/externalLinks";
8
+ import { CosmosProvider } from "../core/providers/CosmosProvider";
13
9
  import { SolanaProvider } from "../core/providers/SolanaProvider";
10
+ import { SuiProvider } from "../core/providers/SuiProvider";
11
+ import { defaultOptions } from "../core/queries/react-query-config";
12
+ import { createWagmiConfig } from "../core/wagmiConfig";
14
13
  import { useAssetsColorsStore } from "../hooks/store/useAssetsColorsStore";
14
+ import { useConfigStore, useSquidStore, useSwapRoutePersistStore, } from "../hooks/store/useSquidStore";
15
15
  import { fetchAssetsColors, initializeSquidWithAssetsColors, isEmptyObject, } from "../services";
16
+ import { getConfigWithDefaults } from "../services/internal/configService";
16
17
  const queryClient = new QueryClient({ defaultOptions });
17
18
  const verifyIntegratorIdValidity = (integratorId) => {
18
19
  if (!integratorId) {
@@ -105,7 +106,8 @@ export const SquidProvider = ({ children, config, placeholder, }) => {
105
106
  }, [initializeSdk]);
106
107
  return wagmiConfig ? (React.createElement(WagmiProvider, { config: wagmiConfig },
107
108
  React.createElement(QueryClientProvider, { client: queryClient },
108
- React.createElement(SolanaProvider, null,
109
- React.createElement(CosmosProvider, null, children))))) : (placeholder);
109
+ React.createElement(SuiProvider, null,
110
+ React.createElement(SolanaProvider, null,
111
+ React.createElement(CosmosProvider, null, children)))))) : (placeholder);
110
112
  };
111
113
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { type ChainData, type CosmosChain, type Token } from "@0xsquid/squid-types";
2
2
  import type { TokenWithBalance } from "../../core/types/tokens";
3
- declare const getTokensSupportingMultiCall: (tokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
4
- export { getTokensSupportingMultiCall };
3
+ export declare const getTokensSupportingMultiCall: (tokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
5
4
  export declare const getAllEvmTokensBalance: (evmTokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
6
5
  export declare const getWorkingCosmosRpcUrl: (chainData: ChainData) => Promise<string>;
7
6
  /**
@@ -33,7 +32,7 @@ export declare const getAllCosmosBalancesForChain: ({ rpc, address, tokens, }: {
33
32
  * @param {CosmosChain[]} params.cosmosChains
34
33
  * @returns {Promise<TokenWithBalance[]>} All tokens with their balances.
35
34
  */
36
- export declare const getAllCosmosBalancesForAddress: ({ addresses, cosmosTokens, cosmosChains, }: {
35
+ export declare const getAllCosmosBalances: ({ addresses, cosmosTokens, cosmosChains, }: {
37
36
  addresses: {
38
37
  chainId: string;
39
38
  address: string;
@@ -46,9 +45,14 @@ export declare const getSolanaTokenBalance: (userAddress: string, tokenAddress:
46
45
  export declare const getSolanaTokensBalance: (userAddress: string, tokenAddresses: string[]) => Promise<{
47
46
  [address: string]: bigint;
48
47
  }>;
49
- export declare const getAllSolanaTokensBalance: (solanaTokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
48
+ export declare const getAllSolanaTokensBalance: (solanaTokens: Token[], userAddress: string) => Promise<TokenWithBalance[]>;
50
49
  export declare function getBitcoinNativeBalance(address: string): Promise<string>;
51
50
  export declare const getAllBitcoinTokensBalance: (userAddress: string, bitcoinTokens: Token[]) => Promise<TokenWithBalance[]>;
51
+ /**
52
+ * Returns the balance of a single Sui coin for a given address
53
+ */
54
+ export declare const getSuiTokenBalance: (userAddress: string, tokenAddress: string, rpcUrl: string) => Promise<bigint>;
55
+ export declare const getAllSuiTokensBalance: (userAddress: string, suiTokens: Token[], suiChains: ChainData[]) => Promise<TokenWithBalance[]>;
52
56
  /**
53
57
  * Returns a promise that resolves when the given promise resolves or after the given timeout
54
58
  * @param ms - timeout in milliseconds
@@ -1,12 +1,13 @@
1
1
  import { ChainType, } from "@0xsquid/squid-types";
2
2
  import { StargateClient } from "@cosmjs/stargate";
3
- import { CHAIN_IDS, nativeEvmTokenAddress, SOLANA_RPC_URL, } from "../../core/constants";
3
+ import { CHAIN_IDS, nativeEvmTokenAddress, nativeSolanaTokenAddress, SOLANA_RPC_URL, } from "../../core/constants";
4
4
  import { multicallAbi, multicallAddress } from "../../core/multicall3";
5
5
  import { ethers, Interface, JsonRpcProvider } from "ethers";
6
6
  import { erc20Abi } from "viem";
7
7
  import { normalizeIbcAddress } from "../internal/assetsService";
8
8
  import { isBitcoinAddressValid } from "../internal/bitcoinService";
9
9
  import { formatBNToReadable } from "../internal/numberService";
10
+ import { SuiRpcClient } from "./suiRpcClient";
10
11
  const isTokenNative = (token) => token.address.toLowerCase() === nativeEvmTokenAddress.toLowerCase();
11
12
  const getTokenAddressForMultiCall = (t) => {
12
13
  return isTokenNative(t)
@@ -63,7 +64,7 @@ const formatBalanceForTokens = (results) => {
63
64
  balance: formatBNToReadable(BigInt(result.returnData), token.decimals),
64
65
  };
65
66
  }
66
- catch (error) {
67
+ catch {
67
68
  return {
68
69
  ...token,
69
70
  balance: "0",
@@ -71,7 +72,7 @@ const formatBalanceForTokens = (results) => {
71
72
  }
72
73
  });
73
74
  };
74
- const getTokensSupportingMultiCall = async (tokens, userAddress, chains) => {
75
+ export const getTokensSupportingMultiCall = async (tokens, userAddress, chains) => {
75
76
  // Create providers for each chain
76
77
  const providers = {};
77
78
  chains.forEach((chain) => {
@@ -98,7 +99,6 @@ const getTokensSupportingMultiCall = async (tokens, userAddress, chains) => {
98
99
  const allResults = await Promise.all(chains.map((chain) => fetchBalancesForChain(chain)));
99
100
  return allResults.flat();
100
101
  };
101
- export { getTokensSupportingMultiCall };
102
102
  export const getAllEvmTokensBalance = async (evmTokens, userAddress, chains) => {
103
103
  const tokensMulticall = await getTokensSupportingMultiCall(evmTokens, userAddress, chains);
104
104
  return tokensMulticall;
@@ -142,7 +142,7 @@ export const getWorkingCosmosRpcUrl = async (chainData) => {
142
142
  for (const rpc of rpcList) {
143
143
  try {
144
144
  // eslint-disable-next-line no-await-in-loop
145
- const isValid = await testCosmosRpc(rpc);
145
+ const isValid = await timeout(5_000, testCosmosRpc(rpc));
146
146
  if (isValid) {
147
147
  return rpc;
148
148
  }
@@ -162,7 +162,7 @@ export const getWorkingCosmosRpcUrl = async (chainData) => {
162
162
  * @returns balance as formatted string
163
163
  */
164
164
  export const getCosmosTokenBalance = async (chain, address, tokenAddress) => {
165
- const validRpc = await timeout(4_000, getWorkingCosmosRpcUrl(chain));
165
+ const validRpc = await getWorkingCosmosRpcUrl(chain);
166
166
  if (!validRpc)
167
167
  return "0";
168
168
  const client = await StargateClient.connect(validRpc);
@@ -200,7 +200,7 @@ export const getAllCosmosBalancesForChain = async ({ rpc, address, tokens, }) =>
200
200
  * @param {CosmosChain[]} params.cosmosChains
201
201
  * @returns {Promise<TokenWithBalance[]>} All tokens with their balances.
202
202
  */
203
- export const getAllCosmosBalancesForAddress = async ({ addresses, cosmosTokens, cosmosChains, }) => {
203
+ export const getAllCosmosBalances = async ({ addresses, cosmosTokens, cosmosChains, }) => {
204
204
  const tokensWithBalance = [];
205
205
  await Promise.all(cosmosChains.map(async (cosmosChain) => {
206
206
  const userAddress = addresses.find((a) => a.chainId === cosmosChain.chainId)?.address;
@@ -279,7 +279,7 @@ export const getSolanaNativeBalance = async (userAddress) => {
279
279
  return BigInt(data.result?.value || 0);
280
280
  };
281
281
  export const getSolanaTokenBalance = async (userAddress, tokenAddress) => {
282
- if (tokenAddress.toLowerCase() === nativeEvmTokenAddress.toLowerCase()) {
282
+ if (tokenAddress.toLowerCase() === nativeSolanaTokenAddress.toLowerCase()) {
283
283
  return getSolanaNativeBalance(userAddress);
284
284
  }
285
285
  const response = await fetch(SOLANA_RPC_URL, {
@@ -318,17 +318,13 @@ export const getSolanaTokensBalance = async (userAddress, tokenAddresses) => {
318
318
  });
319
319
  const data = await response.json();
320
320
  return tokenAddresses.reduce((acc, address) => {
321
- const tokenAccount = data.result?.value?.find((acc) => acc.account.data.parsed.info.mint.toLowerCase() ===
321
+ const tokenAccount = data.result?.value?.find((accountInfo) => accountInfo.account.data.parsed.info.mint.toLowerCase() ===
322
322
  address.toLowerCase());
323
323
  acc[address] = BigInt(tokenAccount?.account.data.parsed.info.tokenAmount.amount || 0);
324
324
  return acc;
325
325
  }, {});
326
326
  };
327
- export const getAllSolanaTokensBalance = async (solanaTokens, userAddress, chains) => {
328
- const solanaChain = chains.find((c) => c.chainId === "solana-mainnet-beta");
329
- if (!solanaChain || !solanaTokens.length) {
330
- return solanaTokens.map((t) => ({ ...t, balance: "0" }));
331
- }
327
+ export const getAllSolanaTokensBalance = async (solanaTokens, userAddress) => {
332
328
  try {
333
329
  const nativeToken = solanaTokens.find((t) => t.address === nativeEvmTokenAddress);
334
330
  const otherTokens = solanaTokens.filter((t) => t.address !== nativeEvmTokenAddress);
@@ -381,6 +377,34 @@ export const getAllBitcoinTokensBalance = async (userAddress, bitcoinTokens) =>
381
377
  };
382
378
  }));
383
379
  };
380
+ /**
381
+ * Returns the balance of a single Sui coin for a given address
382
+ */
383
+ export const getSuiTokenBalance = async (userAddress, tokenAddress, rpcUrl) => {
384
+ const suiClient = new SuiRpcClient(rpcUrl);
385
+ const { totalBalance } = await suiClient.getBalance(userAddress, tokenAddress);
386
+ return BigInt(totalBalance || 0);
387
+ };
388
+ export const getAllSuiTokensBalance = async (userAddress, suiTokens, suiChains) => {
389
+ const getBalancesForChain = async (chain) => {
390
+ const tokensForChain = suiTokens.filter((t) => t.chainId === chain.chainId);
391
+ const suiClient = new SuiRpcClient(chain.rpc);
392
+ const foundBalances = await suiClient.getAllBalances(userAddress);
393
+ const balanceMap = foundBalances.reduce((acc, balance) => {
394
+ acc[balance.coinType] = balance.totalBalance;
395
+ return acc;
396
+ }, {});
397
+ return tokensForChain.map((token) => {
398
+ const balanceBn = BigInt(balanceMap[token.address] || 0);
399
+ return {
400
+ ...token,
401
+ balance: formatBNToReadable(balanceBn, token.decimals),
402
+ };
403
+ });
404
+ };
405
+ const allResults = await Promise.all(suiChains.map(getBalancesForChain));
406
+ return allResults.flat();
407
+ };
384
408
  /**
385
409
  * Returns a promise that resolves when the given promise resolves or after the given timeout
386
410
  * @param ms - timeout in milliseconds