@0xsquid/react-hooks 6.7.0-rollup-beta.1 → 6.7.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 (258) hide show
  1. package/dist/core/abis/ics20.json +128 -0
  2. package/dist/core/connectors/bitcoin/errors/index.js +22 -0
  3. package/dist/core/connectors/bitcoin/errors/index.js.map +1 -0
  4. package/dist/core/connectors/bitcoin/helpers.js +86 -0
  5. package/dist/core/connectors/bitcoin/helpers.js.map +1 -0
  6. package/dist/core/connectors/bitcoin/index.js +2 -0
  7. package/dist/core/connectors/bitcoin/index.js.map +1 -0
  8. package/dist/core/connectors/bitcoin/wallets/index.js +4 -0
  9. package/dist/core/connectors/bitcoin/wallets/index.js.map +1 -0
  10. package/dist/core/connectors/bitcoin/wallets/keplr.js +28 -0
  11. package/dist/core/connectors/bitcoin/wallets/keplr.js.map +1 -0
  12. package/dist/core/connectors/bitcoin/wallets/phantom.js +56 -0
  13. package/dist/core/connectors/bitcoin/wallets/phantom.js.map +1 -0
  14. package/dist/core/connectors/bitcoin/wallets/unisat.js +28 -0
  15. package/dist/core/connectors/bitcoin/wallets/unisat.js.map +1 -0
  16. package/dist/core/constants.js +144 -0
  17. package/dist/core/constants.js.map +1 -0
  18. package/dist/core/externalLinks.js +21 -0
  19. package/dist/core/externalLinks.js.map +1 -0
  20. package/dist/core/index.js +4 -0
  21. package/dist/core/index.js.map +1 -0
  22. package/dist/core/multicall3.js +442 -0
  23. package/dist/core/multicall3.js.map +1 -0
  24. package/dist/core/providers/CosmosProvider.js +13 -0
  25. package/dist/core/providers/CosmosProvider.js.map +1 -0
  26. package/dist/core/providers/SolanaProvider.js +15 -0
  27. package/dist/core/providers/SolanaProvider.js.map +1 -0
  28. package/dist/core/providers/SuiProvider.js +15 -0
  29. package/dist/core/providers/SuiProvider.js.map +1 -0
  30. package/dist/core/queries/queries-keys.d.ts +2 -2
  31. package/dist/core/queries/queries-keys.js +206 -0
  32. package/dist/core/queries/queries-keys.js.map +1 -0
  33. package/dist/core/queries/react-query-config.js +11 -0
  34. package/dist/core/queries/react-query-config.js.map +1 -0
  35. package/dist/core/types/config.d.ts +2 -0
  36. package/dist/core/types/config.js +2 -0
  37. package/dist/core/types/config.js.map +1 -0
  38. package/dist/core/types/dex.js +33 -0
  39. package/dist/core/types/dex.js.map +1 -0
  40. package/dist/core/types/error.js +12 -0
  41. package/dist/core/types/error.js.map +1 -0
  42. package/dist/core/types/event.d.ts +5 -0
  43. package/dist/core/types/event.js +2 -0
  44. package/dist/core/types/event.js.map +1 -0
  45. package/dist/core/types/index.js +2 -0
  46. package/dist/core/types/index.js.map +1 -0
  47. package/dist/core/types/rpc.js +2 -0
  48. package/dist/core/types/rpc.js.map +1 -0
  49. package/dist/core/types/sui.js +2 -0
  50. package/dist/core/types/sui.js.map +1 -0
  51. package/dist/core/types/swap.js +2 -0
  52. package/dist/core/types/swap.js.map +1 -0
  53. package/dist/core/types/tokens.js +2 -0
  54. package/dist/core/types/tokens.js.map +1 -0
  55. package/dist/core/types/transaction.js +41 -0
  56. package/dist/core/types/transaction.js.map +1 -0
  57. package/dist/core/types/wallet.js +26 -0
  58. package/dist/core/types/wallet.js.map +1 -0
  59. package/dist/core/wagmiConfig.js +60 -0
  60. package/dist/core/wagmiConfig.js.map +1 -0
  61. package/dist/core/wallets.js +549 -0
  62. package/dist/core/wallets.js.map +1 -0
  63. package/dist/hooks/analytics/useTrackSearchEmpty.d.ts +12 -0
  64. package/dist/hooks/analytics/useTrackSearchEmpty.js +22 -0
  65. package/dist/hooks/analytics/useTrackSearchEmpty.js.map +1 -0
  66. package/dist/hooks/chains/useSquidChains.js +107 -0
  67. package/dist/hooks/chains/useSquidChains.js.map +1 -0
  68. package/dist/hooks/client/useClient.js +6 -0
  69. package/dist/hooks/client/useClient.js.map +1 -0
  70. package/dist/hooks/cosmos/useCosmos.js +172 -0
  71. package/dist/hooks/cosmos/useCosmos.js.map +1 -0
  72. package/dist/hooks/cosmos/useCosmosForChain.js +33 -0
  73. package/dist/hooks/cosmos/useCosmosForChain.js.map +1 -0
  74. package/dist/hooks/index.d.ts +5 -5
  75. package/dist/hooks/index.js +45 -0
  76. package/dist/hooks/index.js.map +1 -0
  77. package/dist/hooks/navigation/useKeyboardNavigation.js +67 -0
  78. package/dist/hooks/navigation/useKeyboardNavigation.js.map +1 -0
  79. package/dist/hooks/query/useSquidQueryClient.js +23 -0
  80. package/dist/hooks/query/useSquidQueryClient.js.map +1 -0
  81. package/dist/hooks/solana/useSolana.js +104 -0
  82. package/dist/hooks/solana/useSolana.js.map +1 -0
  83. package/dist/hooks/squid/useSquid.js +55 -0
  84. package/dist/hooks/squid/useSquid.js.map +1 -0
  85. package/dist/hooks/store/useAddressBookStore.js +26 -0
  86. package/dist/hooks/store/useAddressBookStore.js.map +1 -0
  87. package/dist/hooks/store/useAssetsColorsStore.js +7 -0
  88. package/dist/hooks/store/useAssetsColorsStore.js.map +1 -0
  89. package/dist/hooks/store/useDepositAddressStore.js +12 -0
  90. package/dist/hooks/store/useDepositAddressStore.js.map +1 -0
  91. package/dist/hooks/store/useFavoriteTokensStore.js +28 -0
  92. package/dist/hooks/store/useFavoriteTokensStore.js.map +1 -0
  93. package/dist/hooks/store/useHistoryStore.js +41 -0
  94. package/dist/hooks/store/useHistoryStore.js.map +1 -0
  95. package/dist/hooks/store/useSquidStore.js +56 -0
  96. package/dist/hooks/store/useSquidStore.js.map +1 -0
  97. package/dist/hooks/store/useWalletStore.js +42 -0
  98. package/dist/hooks/store/useWalletStore.js.map +1 -0
  99. package/dist/hooks/sui/useSui.js +28 -0
  100. package/dist/hooks/sui/useSui.js.map +1 -0
  101. package/dist/hooks/sui/useSuiClient.js +16 -0
  102. package/dist/hooks/sui/useSuiClient.js.map +1 -0
  103. package/dist/hooks/sui/useSuiWallets.js +42 -0
  104. package/dist/hooks/sui/useSuiWallets.js.map +1 -0
  105. package/dist/hooks/swap/useDepositAddress.js +63 -0
  106. package/dist/hooks/swap/useDepositAddress.js.map +1 -0
  107. package/dist/hooks/swap/useSwap.js +209 -0
  108. package/dist/hooks/swap/useSwap.js.map +1 -0
  109. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +103 -0
  110. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -0
  111. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +119 -0
  112. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -0
  113. package/dist/hooks/tokens/useBalance.js +136 -0
  114. package/dist/hooks/tokens/useBalance.js.map +1 -0
  115. package/dist/hooks/tokens/useMultiChainBalance.js +68 -0
  116. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -0
  117. package/dist/hooks/tokens/useMultipleTokenPrices.js +46 -0
  118. package/dist/hooks/tokens/useMultipleTokenPrices.js.map +1 -0
  119. package/dist/hooks/tokens/useNativeBalance.js +217 -0
  120. package/dist/hooks/tokens/useNativeBalance.js.map +1 -0
  121. package/dist/hooks/tokens/useNativeTokenForChain.js +28 -0
  122. package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -0
  123. package/dist/hooks/tokens/useSingleTokenPrice.js +38 -0
  124. package/dist/hooks/tokens/useSingleTokenPrice.js.map +1 -0
  125. package/dist/hooks/tokens/useSquidTokens.js +80 -0
  126. package/dist/hooks/tokens/useSquidTokens.js.map +1 -0
  127. package/dist/hooks/tokens/useTokenHistoricalData.js +23 -0
  128. package/dist/hooks/tokens/useTokenHistoricalData.js.map +1 -0
  129. package/dist/hooks/transaction/useAllTransactionsStatus.js +68 -0
  130. package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -0
  131. package/dist/hooks/transaction/useApproval.js +223 -0
  132. package/dist/hooks/transaction/useApproval.js.map +1 -0
  133. package/dist/hooks/transaction/useErc20Allowance.js +43 -0
  134. package/dist/hooks/transaction/useErc20Allowance.js.map +1 -0
  135. package/dist/hooks/transaction/useEstimate.js +118 -0
  136. package/dist/hooks/transaction/useEstimate.js.map +1 -0
  137. package/dist/hooks/transaction/useEstimatePriceImpact.js +31 -0
  138. package/dist/hooks/transaction/useEstimatePriceImpact.js.map +1 -0
  139. package/dist/hooks/transaction/useExecuteTransaction.js +605 -0
  140. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -0
  141. package/dist/hooks/transaction/useGetRoute.d.ts +3 -0
  142. package/dist/hooks/transaction/useGetRoute.js +230 -0
  143. package/dist/hooks/transaction/useGetRoute.js.map +1 -0
  144. package/dist/hooks/transaction/useIcs20Allowance.js +40 -0
  145. package/dist/hooks/transaction/useIcs20Allowance.js.map +1 -0
  146. package/dist/hooks/transaction/useRouteWarnings.js +19 -0
  147. package/dist/hooks/transaction/useRouteWarnings.js.map +1 -0
  148. package/dist/hooks/transaction/useSingleTransaction.js +91 -0
  149. package/dist/hooks/transaction/useSingleTransaction.js.map +1 -0
  150. package/dist/hooks/user/useAvatar.js +34 -0
  151. package/dist/hooks/user/useAvatar.js.map +1 -0
  152. package/dist/hooks/user/useHistory.js +106 -0
  153. package/dist/hooks/user/useHistory.js.map +1 -0
  154. package/dist/hooks/user/useUserParams.js +33 -0
  155. package/dist/hooks/user/useUserParams.js.map +1 -0
  156. package/dist/hooks/wallet/useAddToken.js +49 -0
  157. package/dist/hooks/wallet/useAddToken.js.map +1 -0
  158. package/dist/hooks/wallet/useAutoConnect.js +74 -0
  159. package/dist/hooks/wallet/useAutoConnect.js.map +1 -0
  160. package/dist/hooks/wallet/useEns.js +69 -0
  161. package/dist/hooks/wallet/useEns.js.map +1 -0
  162. package/dist/hooks/wallet/useGnosisContext.js +78 -0
  163. package/dist/hooks/wallet/useGnosisContext.js.map +1 -0
  164. package/dist/hooks/wallet/useIntegratorContext.js +39 -0
  165. package/dist/hooks/wallet/useIntegratorContext.js.map +1 -0
  166. package/dist/hooks/wallet/useMultiChainWallet.js +175 -0
  167. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -0
  168. package/dist/hooks/wallet/useSigner.js +76 -0
  169. package/dist/hooks/wallet/useSigner.js.map +1 -0
  170. package/dist/hooks/wallet/useWallet.js +206 -0
  171. package/dist/hooks/wallet/useWallet.js.map +1 -0
  172. package/dist/hooks/wallet/useWallets.js +36 -0
  173. package/dist/hooks/wallet/useWallets.js.map +1 -0
  174. package/dist/index.js +6 -17096
  175. package/dist/index.js.map +1 -1
  176. package/dist/provider/index.js +113 -0
  177. package/dist/provider/index.js.map +1 -0
  178. package/dist/services/external/ens.js +66 -0
  179. package/dist/services/external/ens.js.map +1 -0
  180. package/dist/services/external/rpcService.js +421 -0
  181. package/dist/services/external/rpcService.js.map +1 -0
  182. package/dist/{secretService-Cnn1_HQT.js → services/external/secretService.js} +8 -37
  183. package/dist/services/external/secretService.js.map +1 -0
  184. package/dist/services/external/suiRpcClient.js +80 -0
  185. package/dist/services/external/suiRpcClient.js.map +1 -0
  186. package/dist/services/external/tokenDataService.js +108 -0
  187. package/dist/services/external/tokenDataService.js.map +1 -0
  188. package/dist/services/index.js +16 -0
  189. package/dist/services/index.js.map +1 -0
  190. package/dist/services/internal/apiService.js +21 -0
  191. package/dist/services/internal/apiService.js.map +1 -0
  192. package/dist/services/internal/assetsService.js +586 -0
  193. package/dist/services/internal/assetsService.js.map +1 -0
  194. package/dist/services/internal/bitcoinService.js +51 -0
  195. package/dist/services/internal/bitcoinService.js.map +1 -0
  196. package/dist/services/internal/configService.js +218 -0
  197. package/dist/services/internal/configService.js.map +1 -0
  198. package/dist/services/internal/cosmosService.js +141 -0
  199. package/dist/services/internal/cosmosService.js.map +1 -0
  200. package/dist/services/internal/errorService.js +188 -0
  201. package/dist/services/internal/errorService.js.map +1 -0
  202. package/dist/services/internal/estimateService.js +221 -0
  203. package/dist/services/internal/estimateService.js.map +1 -0
  204. package/dist/services/internal/eventService.d.ts +5 -0
  205. package/dist/services/internal/eventService.js +163 -0
  206. package/dist/services/internal/eventService.js.map +1 -0
  207. package/dist/services/internal/evmService.js +42 -0
  208. package/dist/services/internal/evmService.js.map +1 -0
  209. package/dist/services/internal/numberService.js +171 -0
  210. package/dist/services/internal/numberService.js.map +1 -0
  211. package/dist/services/internal/priceService.js +53 -0
  212. package/dist/services/internal/priceService.js.map +1 -0
  213. package/dist/services/internal/searchService.js +98 -0
  214. package/dist/services/internal/searchService.js.map +1 -0
  215. package/dist/services/internal/solanaService.js +109 -0
  216. package/dist/services/internal/solanaService.js.map +1 -0
  217. package/dist/services/internal/suiService.js +119 -0
  218. package/dist/services/internal/suiService.js.map +1 -0
  219. package/dist/services/internal/transactionService.js +207 -0
  220. package/dist/services/internal/transactionService.js.map +1 -0
  221. package/dist/services/internal/transactionStatusService.js +315 -0
  222. package/dist/services/internal/transactionStatusService.js.map +1 -0
  223. package/dist/services/internal/walletService.js +464 -0
  224. package/dist/services/internal/walletService.js.map +1 -0
  225. package/dist/tests/apiService.test.js +40 -0
  226. package/dist/tests/apiService.test.js.map +1 -0
  227. package/dist/tests/assetsService.test.js +500 -0
  228. package/dist/tests/assetsService.test.js.map +1 -0
  229. package/dist/tests/configService.test.js +673 -0
  230. package/dist/tests/configService.test.js.map +1 -0
  231. package/dist/tests/estimateService.test.js +355 -0
  232. package/dist/tests/estimateService.test.js.map +1 -0
  233. package/dist/tests/fetchSquidData.js +36 -0
  234. package/dist/tests/fetchSquidData.js.map +1 -0
  235. package/dist/tests/jest-svg-transform.d.ts +0 -0
  236. package/dist/tests/jest-svg-transform.js +21 -0
  237. package/dist/tests/jest-svg-transform.js.map +1 -0
  238. package/dist/tests/numberService.test.js +135 -0
  239. package/dist/tests/numberService.test.js.map +1 -0
  240. package/dist/tests/priceService.test.js +38 -0
  241. package/dist/tests/priceService.test.js.map +1 -0
  242. package/dist/tests/sample.json +0 -0
  243. package/dist/tests/searchService.test.js +92 -0
  244. package/dist/tests/searchService.test.js.map +1 -0
  245. package/dist/tests/swapConfig.test.js +332 -0
  246. package/dist/tests/swapConfig.test.js.map +1 -0
  247. package/dist/tests/transactionService.test.js +53 -0
  248. package/dist/tests/transactionService.test.js.map +1 -0
  249. package/dist/tests/transactionStatusService.test.js +165 -0
  250. package/dist/tests/transactionStatusService.test.js.map +1 -0
  251. package/dist/tests/walletService.test.js +264 -0
  252. package/dist/tests/walletService.test.js.map +1 -0
  253. package/package.json +4 -18
  254. package/dist/index.esm.js +0 -16892
  255. package/dist/index.esm.js.map +0 -1
  256. package/dist/secretService-Cnn1_HQT.js.map +0 -1
  257. package/dist/secretService-DW4QetNp.js +0 -162
  258. package/dist/secretService-DW4QetNp.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSolana.js","sourceRoot":"","sources":["../../../src/hooks/solana/useSolana.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import { useMemo } from "react";
3
+ import { keys } from "../../core/queries/queries-keys";
4
+ import { initializeSquidWithAssetsColors } from "../../services";
5
+ import { useAssetsColorsStore } from "../store/useAssetsColorsStore";
6
+ import { useSquidStore } from "../store/useSquidStore";
7
+ /**
8
+ * Fetch squid info based on the current squid object
9
+ * @param refetchInterval refetch at this frequency in milliseconds (or false to disable)
10
+ * @returns tokens, chains, forceSquidInfoRefetch, squidInfoQuery
11
+ */
12
+ export const useSquid = () => {
13
+ // Use initial squid object (because has infos about integrator id, ect)
14
+ const squid = useSquidStore((state) => state.squid);
15
+ const maintenanceMode = useSquidStore((state) => state.maintenanceMode);
16
+ const assetsColors = useAssetsColorsStore();
17
+ /**
18
+ * Fetch squid info
19
+ * Will refetch every minute
20
+ */
21
+ const squidInfoQuery = useQuery(keys().squidInfo(), async () => {
22
+ if (squid) {
23
+ await squid?.init();
24
+ initializeSquidWithAssetsColors(squid, assetsColors);
25
+ return squid;
26
+ }
27
+ return null;
28
+ });
29
+ const tokens = useMemo(() => {
30
+ if ((squidInfoQuery?.data?.tokens ?? []).length > 0) {
31
+ return squidInfoQuery?.data?.tokens;
32
+ }
33
+ else {
34
+ return squid?.tokens ?? [];
35
+ }
36
+ }, [squidInfoQuery?.data?.tokens, squid?.tokens]);
37
+ const chains = useMemo(() => {
38
+ if ((squidInfoQuery?.data?.chains ?? []).length > 0) {
39
+ return squidInfoQuery?.data?.chains;
40
+ }
41
+ else {
42
+ return squid?.chains ?? [];
43
+ }
44
+ }, [squidInfoQuery?.data?.chains, squid?.chains]);
45
+ // If needed, force refetch to get latest prices
46
+ const forceSquidInfoRefetch = squidInfoQuery.refetch;
47
+ return {
48
+ tokens,
49
+ chains,
50
+ forceSquidInfoRefetch,
51
+ squidInfoQuery,
52
+ maintenanceMode,
53
+ };
54
+ };
55
+ //# sourceMappingURL=useSquid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSquid.js","sourceRoot":"","sources":["../../../src/hooks/squid/useSquid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,wEAAwE;IAExE,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;IAE5C;;;OAGG;IACH,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7D,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,EAAE,IAAI,EAAE,CAAC;YACpB,+BAA+B,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,OAAO,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;SACrC;aAAM;YACL,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,OAAO,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;SACrC;aAAM;YACL,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAElD,gDAAgD;IAChD,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,CAAC;IAErD,OAAO;QACL,MAAM;QACN,MAAM;QACN,qBAAqB;QACrB,cAAc;QACd,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { create } from "zustand";
2
+ import { persist } from "zustand/middleware";
3
+ import { areSameAddress } from "../../services";
4
+ export const useAddressBookStore = create(persist((set) => ({
5
+ addressBook: [],
6
+ add: (newAddressData) => {
7
+ set((state) => {
8
+ const alreadyExists = state.addressBook.some((savedAddress) => areSameAddress(savedAddress.address, newAddressData.address));
9
+ if (alreadyExists)
10
+ return state;
11
+ return {
12
+ addressBook: [...state.addressBook, newAddressData],
13
+ };
14
+ });
15
+ },
16
+ remove: (addressToRemove) => {
17
+ set((state) => {
18
+ return {
19
+ addressBook: state.addressBook.filter((savedAddress) => !areSameAddress(savedAddress.address, addressToRemove)),
20
+ };
21
+ });
22
+ },
23
+ }), {
24
+ name: "squid.addressbook.store",
25
+ }));
26
+ //# sourceMappingURL=useAddressBookStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAddressBookStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useAddressBookStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CACvC,OAAO,CACL,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,WAAW,EAAE,EAAE;IACf,GAAG,EAAE,CAAC,cAA8B,EAAE,EAAE;QACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAC5D,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAC7D,CAAC;YAEF,IAAI,aAAa;gBAAE,OAAO,KAAK,CAAC;YAEhC,OAAO;gBACL,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC;aACpD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,EAAE,CAAC,eAAuB,EAAE,EAAE;QAClC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,OAAO;gBACL,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CACnC,CAAC,YAAY,EAAE,EAAE,CACf,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CACzD;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,EACF;IACE,IAAI,EAAE,yBAAyB;CAChC,CACF,CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { create } from "zustand";
2
+ const initialState = {
3
+ chains: {},
4
+ tokens: {},
5
+ };
6
+ export const useAssetsColorsStore = create(() => initialState);
7
+ //# sourceMappingURL=useAssetsColorsStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAssetsColorsStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useAssetsColorsStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,MAAM,YAAY,GAAiB;IACjC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAe,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { create } from "zustand";
2
+ export const useDepositAddressStore = create((set) => ({
3
+ deposit: null,
4
+ isEnabled: false,
5
+ setDeposit: (data) => {
6
+ set({ deposit: data });
7
+ },
8
+ toggleDepositFlow: (enabled) => {
9
+ set({ isEnabled: enabled });
10
+ },
11
+ }));
12
+ //# sourceMappingURL=useDepositAddressStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDepositAddressStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useDepositAddressStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AASjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAsB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,KAAK;IAEhB,UAAU,EAAE,CAAC,IAA4B,EAAE,EAAE;QAC3C,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,iBAAiB,EAAE,CAAC,OAAgB,EAAE,EAAE;QACtC,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { create } from "zustand";
2
+ import { persist } from "zustand/middleware";
3
+ export const useFavoriteTokensStore = create(persist((set, get) => ({
4
+ favoriteTokens: [],
5
+ addFavoriteToken(token) {
6
+ set((state) => ({
7
+ favoriteTokens: [...state.favoriteTokens, token],
8
+ }));
9
+ },
10
+ removeFavoriteToken(token) {
11
+ set((state) => ({
12
+ favoriteTokens: state.favoriteTokens.filter((t) => t.chainId !== token.chainId || t.address !== token.address),
13
+ }));
14
+ },
15
+ toggleFavoriteToken(token) {
16
+ const isFavorite = get().favoriteTokens.some((t) => t.chainId === token.chainId && t.address === token.address);
17
+ if (isFavorite) {
18
+ get().removeFavoriteToken(token);
19
+ }
20
+ else {
21
+ get().addFavoriteToken(token);
22
+ }
23
+ },
24
+ }), {
25
+ name: "squid.favorite.tokens.store",
26
+ version: 1,
27
+ }));
28
+ //# sourceMappingURL=useFavoriteTokensStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFavoriteTokensStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useFavoriteTokensStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAW7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAC1C,OAAO,CACL,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACb,cAAc,EAAE,EAAE;IAClB,gBAAgB,CAAC,KAAoB;QACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC;SACjD,CAAC,CAAC,CAAC;IACN,CAAC;IACD,mBAAmB,CAAC,KAAoB;QACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAClE;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IACD,mBAAmB,CAAC,KAAoB;QACtC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAClE,CAAC;QAEF,IAAI,UAAU,EAAE;YACd,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAClC;aAAM;YACL,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;CACF,CAAC,EACF;IACE,IAAI,EAAE,6BAA6B;IACnC,OAAO,EAAE,CAAC;CACX,CACF,CACF,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { create } from "zustand";
2
+ import { persist } from "zustand/middleware";
3
+ import { compareTransactionIds, formatStatusResponseForStorage, formatTxForStorage, } from "../../services";
4
+ export const useHistoryStore = create(persist((set) => ({
5
+ transactions: [],
6
+ persistTransaction: (tx) => set((state) => ({
7
+ transactions: [...state.transactions, formatTxForStorage(tx)],
8
+ })),
9
+ replaceTransactionStatus: (transactionId, statusResponse, status) => {
10
+ const sr = formatStatusResponseForStorage(statusResponse);
11
+ set((state) => ({
12
+ transactions: state.transactions.map((tx) => {
13
+ return compareTransactionIds(transactionId, tx.transactionId)
14
+ ? {
15
+ ...tx,
16
+ statusResponse: sr ?? tx.statusResponse,
17
+ status,
18
+ }
19
+ : tx;
20
+ }),
21
+ }));
22
+ },
23
+ removeAllTransactions: () => set(() => ({
24
+ transactions: [],
25
+ })),
26
+ removeTransaction: (transactionId) => set((state) => ({
27
+ transactions: state.transactions.filter((tx) => tx.transactionId !== transactionId),
28
+ })),
29
+ replaceTransactionAtNonce: (nonce, fromAddress, newTx) => set((state) => {
30
+ const index = state.transactions.findIndex((tx) => tx.nonce === nonce && tx.fromAddress === fromAddress);
31
+ if (index !== -1) {
32
+ const newTransactions = [...state.transactions];
33
+ newTransactions[index] = formatTxForStorage(newTx);
34
+ return { transactions: newTransactions };
35
+ }
36
+ return state;
37
+ }),
38
+ }), {
39
+ name: "squid.history.store.v2",
40
+ }));
41
+ //# sourceMappingURL=useHistoryStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHistoryStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useHistoryStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAmBxB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CACnC,OAAO,CACL,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,YAAY,EAAE,EAAE;IAChB,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CACzB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;KAC9D,CAAC,CAAC;IACL,wBAAwB,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE;QAClE,MAAM,EAAE,GAAG,8BAA8B,CAAC,cAAc,CAAC,CAAC;QAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC1C,OAAO,qBAAqB,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC;oBAC3D,CAAC,CAAC;wBACE,GAAG,EAAE;wBACL,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,cAAc;wBACvC,MAAM;qBACP;oBACH,CAAC,CAAC,EAAE,CAAC;YACT,CAAC,CAAC;SACH,CAAC,CAAC,CAAC;IACN,CAAC;IACD,qBAAqB,EAAE,GAAG,EAAE,CAC1B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACT,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;IACL,iBAAiB,EAAE,CAAC,aAAa,EAAE,EAAE,CACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CACrC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,KAAK,aAAa,CAC3C;KACF,CAAC,CAAC;IACL,yBAAyB,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,CACvD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CACxC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,WAAW,KAAK,WAAW,CAC7D,CAAC;QACF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YAChD,eAAe,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACnD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;SAC1C;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;CACL,CAAC,EACF;IACE,IAAI,EAAE,wBAAwB;CAC/B,CACF,CACF,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { create } from "zustand";
2
+ import { persist } from "zustand/middleware";
3
+ import { defaultConfigValues } from "../../core/constants";
4
+ export const useSquidStore = create(() => ({
5
+ squid: undefined,
6
+ maintenanceMode: {
7
+ active: false,
8
+ message: undefined,
9
+ },
10
+ }));
11
+ export const useConfigStore = create(() => ({
12
+ config: defaultConfigValues,
13
+ isInitialized: false,
14
+ }));
15
+ export const useTransactionStore = create((set, get) => ({
16
+ fromPrice: undefined,
17
+ txLocalId: undefined,
18
+ transactions: {},
19
+ setTransactionState(txId, tx) {
20
+ set((state) => {
21
+ if (!txId)
22
+ return state;
23
+ state.transactions[txId] = tx;
24
+ return state;
25
+ });
26
+ },
27
+ getCurrentTransaction() {
28
+ const { txLocalId, transactions } = get();
29
+ if (!txLocalId)
30
+ return;
31
+ return transactions[txLocalId];
32
+ },
33
+ getTransaction(id) {
34
+ return get().transactions[id];
35
+ },
36
+ }));
37
+ export const useSwapRoutePersistStore = create()(persist((set) => ({
38
+ swapRoute: undefined,
39
+ destinationAddressHasBeenUpdated: undefined,
40
+ resetAddresses: () => set((state) => ({
41
+ swapRoute: state.swapRoute
42
+ ? {
43
+ ...state.swapRoute,
44
+ destinationAddress: undefined,
45
+ fallbackAddress: undefined,
46
+ }
47
+ : undefined,
48
+ })),
49
+ }), {
50
+ name: "squid-swap-route.store",
51
+ onRehydrateStorage: () => (state) => {
52
+ // Reset addresses on page load/rehydration
53
+ state?.resetAddresses();
54
+ },
55
+ }));
56
+ //# sourceMappingURL=useSquidStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSquidStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useSquidStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAsB3D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAa,GAAG,EAAE,CAAC,CAAC;IACrD,KAAK,EAAE,SAAS;IAChB,eAAe,EAAE;QACf,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,SAAS;KACnB;CACF,CAAC,CAAC,CAAC;AAUJ,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAc,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,EAAE,mBAAmB;IAC3B,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC,CAAC;AAiBJ,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACzE,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,EAAE;IAChB,mBAAmB,CAAC,IAAI,EAAE,EAAE;QAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,IAAI,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC;YAExB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAE9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IACD,qBAAqB;QACnB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,GAAG,EAAE,CAAC;QAE1C,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IACD,cAAc,CAAC,EAAE;QACf,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACF,CAAC,CAAC,CAAC;AAWJ,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,EAAyB,CACrE,OAAO,CACL,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,SAAS;IACpB,gCAAgC,EAAE,SAAS;IAC3C,cAAc,EAAE,GAAG,EAAE,CACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;YACxB,CAAC,CAAC;gBACE,GAAG,KAAK,CAAC,SAAS;gBAClB,kBAAkB,EAAE,SAAS;gBAC7B,eAAe,EAAE,SAAS;aAC3B;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;CACN,CAAC,EACF;IACE,IAAI,EAAE,wBAAwB;IAC9B,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,2CAA2C;QAC3C,KAAK,EAAE,cAAc,EAAE,CAAC;IAC1B,CAAC;CACF,CACF,CACF,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { ChainType } from "@0xsquid/squid-types";
2
+ import { create } from "zustand";
3
+ export var ConnectingWalletStatus;
4
+ (function (ConnectingWalletStatus) {
5
+ ConnectingWalletStatus[ConnectingWalletStatus["IDLE"] = 0] = "IDLE";
6
+ ConnectingWalletStatus[ConnectingWalletStatus["CONNECTING"] = 1] = "CONNECTING";
7
+ ConnectingWalletStatus[ConnectingWalletStatus["REJECTED"] = 2] = "REJECTED";
8
+ })(ConnectingWalletStatus || (ConnectingWalletStatus = {}));
9
+ const initialWalletState = {
10
+ // Initialize all chain types to an empty wallet object
11
+ connectedWalletsByChainType: Object.values(ChainType).reduce((acc, chainType) => ({
12
+ ...acc,
13
+ [chainType]: {},
14
+ }), {}),
15
+ connectingWalletState: {
16
+ wallet: undefined,
17
+ status: ConnectingWalletStatus.IDLE,
18
+ },
19
+ };
20
+ export const useWalletStore = create((set) => ({
21
+ ...initialWalletState,
22
+ setConnectedWallet: (chainType, connectedWalletState) => set((state) => {
23
+ return {
24
+ connectedWalletsByChainType: {
25
+ ...state.connectedWalletsByChainType,
26
+ [chainType]: connectedWalletState,
27
+ },
28
+ };
29
+ }),
30
+ setConnectingWallet: (state) => set({ connectingWalletState: state }),
31
+ disconnectWallet: (chainType) => set((state) => {
32
+ if (!state.connectedWalletsByChainType[chainType])
33
+ return state;
34
+ return {
35
+ connectedWalletsByChainType: {
36
+ ...state.connectedWalletsByChainType,
37
+ [chainType]: {},
38
+ },
39
+ };
40
+ }),
41
+ }));
42
+ //# sourceMappingURL=useWalletStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useWalletStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,mEAAI,CAAA;IACJ,+EAAU,CAAA;IACV,2EAAQ,CAAA;AACV,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAcD,MAAM,kBAAkB,GAAgB;IACtC,uDAAuD;IACvD,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,GAAG;QACN,CAAC,SAAS,CAAC,EAAE,EAAE;KAChB,CAAC,EACF,EAAgD,CACjD;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,sBAAsB,CAAC,IAAI;KACpC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CASlC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACV,GAAG,kBAAkB;IACrB,kBAAkB,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,EAAE,CACtD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,OAAO;YACL,2BAA2B,EAAE;gBAC3B,GAAG,KAAK,CAAC,2BAA2B;gBACpC,CAAC,SAAS,CAAC,EAAE,oBAAoB;aAClC;SACF,CAAC;IACJ,CAAC,CAAC;IACJ,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;IACrE,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAEhE,OAAO;YACL,2BAA2B,EAAE;gBAC3B,GAAG,KAAK,CAAC,2BAA2B;gBACpC,CAAC,SAAS,CAAC,EAAE,EAAE;aAChB;SACF,CAAC;IACJ,CAAC,CAAC;CACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { ChainType } from "@0xsquid/squid-types";
2
+ import { useMutation } from "@tanstack/react-query";
3
+ import { useCallback } from "react";
4
+ import { useWalletStore } from "../store/useWalletStore";
5
+ import { useSuiWallets } from "./useSuiWallets";
6
+ export function useSui() {
7
+ const { wallets } = useSuiWallets();
8
+ const connectedSuiWallet = useWalletStore((store) => store.connectedWalletsByChainType[ChainType.SUI]);
9
+ const connectSui = useMutation(async ({ wallet, }) => {
10
+ const { account } = await wallet.connector().connect();
11
+ return {
12
+ wallet,
13
+ address: account.address,
14
+ account,
15
+ };
16
+ });
17
+ const disconnectSui = useCallback(async () => {
18
+ await connectedSuiWallet.wallet?.connector().disconnect();
19
+ }, [connectedSuiWallet.wallet]);
20
+ return {
21
+ connectSui,
22
+ disconnectSui,
23
+ isConnected: !!connectedSuiWallet.wallet,
24
+ signer: connectedSuiWallet.wallet?.connector(),
25
+ wallets,
26
+ };
27
+ }
28
+ //# sourceMappingURL=useSui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSui.js","sourceRoot":"","sources":["../../../src/hooks/sui/useSui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,MAAM;IACpB,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IACpC,MAAM,kBAAkB,GAAG,cAAc,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,SAAS,CAAC,GAAG,CAAC,CAC5D,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EAAE,EACL,MAAM,GAGP,EAA+C,EAAE;QAChD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC;QAEvD,OAAO;YACL,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO;SACR,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC3C,MAAM,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC;IAC5D,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhC,OAAO;QACL,UAAU;QACV,aAAa;QACb,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM;QACxC,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE;QAC9C,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ChainType } from "@0xsquid/squid-types";
2
+ import { SuiClient } from "@mysten/sui/client";
3
+ import { useMemo } from "react";
4
+ export function useSuiClient({ chain }) {
5
+ const client = useMemo(() => {
6
+ if (!chain?.rpc || chain.chainType !== ChainType.SUI) {
7
+ return null;
8
+ }
9
+ const suiClient = new SuiClient({
10
+ url: chain.rpc,
11
+ });
12
+ return suiClient;
13
+ }, [chain?.chainType, chain?.rpc]);
14
+ return { client };
15
+ }
16
+ //# sourceMappingURL=useSuiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuiClient.js","sourceRoot":"","sources":["../../../src/hooks/sui/useSuiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAMhC,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAU;IAG5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;QAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;YAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnC,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { SlushWallet } from "@mysten/slush-wallet";
2
+ import { getWallets as getWalletsApi, } from "@mysten/wallet-standard";
3
+ import { useCallback, useEffect, useRef, useState } from "react";
4
+ import { filterSuiWallets, slushWebWalletData, } from "../../services/internal/suiService";
5
+ /**
6
+ * Returns the list of registered Sui wallets
7
+ */
8
+ export function useSuiWallets() {
9
+ const isInitializedRef = useRef(false);
10
+ const [wallets, setWallets] = useState([]);
11
+ const setRegisteredWallets = useCallback((standardWallets) => {
12
+ setWallets(filterSuiWallets(standardWallets));
13
+ }, []);
14
+ useEffect(() => {
15
+ const walletsApi = getWalletsApi();
16
+ const removeOnRegisterListener = walletsApi.on("register", (wallet) => {
17
+ setRegisteredWallets([wallet]);
18
+ });
19
+ if (!isInitializedRef.current) {
20
+ const slushWebWallet = new SlushWallet({
21
+ name: "Squid",
22
+ chain: "sui:mainnet",
23
+ metadata: {
24
+ enabled: true,
25
+ icon: slushWebWalletData.icon,
26
+ id: slushWebWalletData.id,
27
+ walletName: slushWebWalletData.name,
28
+ },
29
+ });
30
+ walletsApi.register(slushWebWallet);
31
+ setRegisteredWallets(walletsApi.get());
32
+ isInitializedRef.current = true;
33
+ }
34
+ return () => {
35
+ removeOnRegisterListener();
36
+ };
37
+ }, [setRegisteredWallets]);
38
+ return {
39
+ wallets,
40
+ };
41
+ }
42
+ //# sourceMappingURL=useSuiWallets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuiWallets.js","sourceRoot":"","sources":["../../../src/hooks/sui/useSuiWallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,UAAU,IAAI,aAAa,GAE5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,aAAa;IAG3B,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;IAExD,MAAM,oBAAoB,GAAG,WAAW,CACtC,CAAC,eAA0C,EAAE,EAAE;QAC7C,UAAU,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;IAChD,CAAC,EACD,EAAE,CACH,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QAEnC,MAAM,wBAAwB,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACpE,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC7B,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC;gBACrC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE;oBACR,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,kBAAkB,CAAC,IAAI;oBAC7B,EAAE,EAAE,kBAAkB,CAAC,EAAE;oBACzB,UAAU,EAAE,kBAAkB,CAAC,IAAI;iBACpC;aACF,CAAC,CAAC;YAEH,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpC,oBAAoB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YACvC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;SACjC;QAED,OAAO,GAAG,EAAE;YACV,wBAAwB,EAAE,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,OAAO;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { SquidDataType, } from "@0xsquid/squid-types";
2
+ import { useMutation } from "@tanstack/react-query";
3
+ import { useCallback, useMemo } from "react";
4
+ import { CHAIN_IDS } from "../../core";
5
+ import { useDepositAddressStore } from "../store/useDepositAddressStore";
6
+ import { useSquidStore } from "../store/useSquidStore";
7
+ import { useSwap } from "./useSwap";
8
+ export function useDepositAddress(squidRoute) {
9
+ const { isEnabled, depositAddress } = useDepositAddressStore((state) => ({
10
+ isEnabled: state.isEnabled,
11
+ depositAddress: state.deposit?.depositAddress,
12
+ }));
13
+ const { setDeposit, toggleDepositFlow, deposit } = useDepositAddressStore();
14
+ const { squid } = useSquidStore();
15
+ const { fromChain } = useSwap();
16
+ const isAvailableAsPaymentMethod = useMemo(() => {
17
+ if (!fromChain?.chainId)
18
+ return false;
19
+ const chainsSupportingDepositAddress = [
20
+ CHAIN_IDS.BITCOIN,
21
+ CHAIN_IDS.SOLANA,
22
+ ];
23
+ return chainsSupportingDepositAddress.includes(fromChain.chainId);
24
+ }, [fromChain?.chainId]);
25
+ const swapWillGenerateDepositAddress = useMemo(() => {
26
+ return (squidRoute?.transactionRequest?.type ===
27
+ SquidDataType.ChainflipDepositAddress);
28
+ }, [squidRoute?.transactionRequest?.type]);
29
+ const enable = useCallback(() => {
30
+ toggleDepositFlow(true);
31
+ }, [toggleDepositFlow]);
32
+ const disable = useCallback(() => {
33
+ toggleDepositFlow(false);
34
+ }, [toggleDepositFlow]);
35
+ const closeDepositChannel = useCallback(() => {
36
+ toggleDepositFlow(false);
37
+ setDeposit(null);
38
+ }, [toggleDepositFlow, setDeposit]);
39
+ const getRouteWithDeposit = useMutation(async ({ route }) => {
40
+ if (!squid)
41
+ throw new Error("Squid SDK not initialized");
42
+ const depositAddressResponse = (await squid.executeRoute({
43
+ signer: {},
44
+ route,
45
+ }));
46
+ setDeposit(depositAddressResponse);
47
+ return {
48
+ depositAddress: depositAddressResponse,
49
+ };
50
+ });
51
+ return {
52
+ isEnabled,
53
+ isAvailableAsPaymentMethod,
54
+ swapWillGenerateDepositAddress,
55
+ enable,
56
+ disable,
57
+ getRouteWithDeposit,
58
+ depositAddress,
59
+ closeDepositChannel,
60
+ depositData: deposit,
61
+ };
62
+ }
63
+ //# sourceMappingURL=useDepositAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDepositAddress.js","sourceRoot":"","sources":["../../../src/hooks/swap/useDepositAddress.ts"],"names":[],"mappings":"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"}