@0xsquid/react-hooks 6.7.0-beta.0 → 6.7.0-rollup-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 (250) hide show
  1. package/dist/hooks/index.d.ts +5 -4
  2. package/dist/index.esm.js +16892 -0
  3. package/dist/index.esm.js.map +1 -0
  4. package/dist/index.js +17096 -6
  5. package/dist/index.js.map +1 -1
  6. package/dist/secretService-Cc7emxDy.js +162 -0
  7. package/dist/secretService-Cc7emxDy.js.map +1 -0
  8. package/dist/{services/external/secretService.js → secretService-SEqSyHG0.js} +37 -8
  9. package/dist/secretService-SEqSyHG0.js.map +1 -0
  10. package/package.json +18 -4
  11. package/dist/core/abis/ics20.json +0 -128
  12. package/dist/core/connectors/bitcoin/errors/index.js +0 -22
  13. package/dist/core/connectors/bitcoin/errors/index.js.map +0 -1
  14. package/dist/core/connectors/bitcoin/helpers.js +0 -86
  15. package/dist/core/connectors/bitcoin/helpers.js.map +0 -1
  16. package/dist/core/connectors/bitcoin/index.js +0 -2
  17. package/dist/core/connectors/bitcoin/index.js.map +0 -1
  18. package/dist/core/connectors/bitcoin/wallets/index.js +0 -4
  19. package/dist/core/connectors/bitcoin/wallets/index.js.map +0 -1
  20. package/dist/core/connectors/bitcoin/wallets/keplr.js +0 -28
  21. package/dist/core/connectors/bitcoin/wallets/keplr.js.map +0 -1
  22. package/dist/core/connectors/bitcoin/wallets/phantom.js +0 -56
  23. package/dist/core/connectors/bitcoin/wallets/phantom.js.map +0 -1
  24. package/dist/core/connectors/bitcoin/wallets/unisat.js +0 -28
  25. package/dist/core/connectors/bitcoin/wallets/unisat.js.map +0 -1
  26. package/dist/core/constants.js +0 -144
  27. package/dist/core/constants.js.map +0 -1
  28. package/dist/core/externalLinks.js +0 -21
  29. package/dist/core/externalLinks.js.map +0 -1
  30. package/dist/core/index.js +0 -4
  31. package/dist/core/index.js.map +0 -1
  32. package/dist/core/multicall3.js +0 -442
  33. package/dist/core/multicall3.js.map +0 -1
  34. package/dist/core/providers/CosmosProvider.js +0 -13
  35. package/dist/core/providers/CosmosProvider.js.map +0 -1
  36. package/dist/core/providers/SolanaProvider.js +0 -15
  37. package/dist/core/providers/SolanaProvider.js.map +0 -1
  38. package/dist/core/providers/SuiProvider.js +0 -15
  39. package/dist/core/providers/SuiProvider.js.map +0 -1
  40. package/dist/core/queries/queries-keys.js +0 -204
  41. package/dist/core/queries/queries-keys.js.map +0 -1
  42. package/dist/core/queries/react-query-config.js +0 -11
  43. package/dist/core/queries/react-query-config.js.map +0 -1
  44. package/dist/core/types/config.js +0 -2
  45. package/dist/core/types/config.js.map +0 -1
  46. package/dist/core/types/dex.js +0 -33
  47. package/dist/core/types/dex.js.map +0 -1
  48. package/dist/core/types/error.js +0 -12
  49. package/dist/core/types/error.js.map +0 -1
  50. package/dist/core/types/event.js +0 -2
  51. package/dist/core/types/event.js.map +0 -1
  52. package/dist/core/types/index.js +0 -2
  53. package/dist/core/types/index.js.map +0 -1
  54. package/dist/core/types/rpc.js +0 -2
  55. package/dist/core/types/rpc.js.map +0 -1
  56. package/dist/core/types/sui.js +0 -2
  57. package/dist/core/types/sui.js.map +0 -1
  58. package/dist/core/types/swap.js +0 -2
  59. package/dist/core/types/swap.js.map +0 -1
  60. package/dist/core/types/tokens.js +0 -2
  61. package/dist/core/types/tokens.js.map +0 -1
  62. package/dist/core/types/transaction.js +0 -41
  63. package/dist/core/types/transaction.js.map +0 -1
  64. package/dist/core/types/wallet.js +0 -26
  65. package/dist/core/types/wallet.js.map +0 -1
  66. package/dist/core/wagmiConfig.js +0 -60
  67. package/dist/core/wagmiConfig.js.map +0 -1
  68. package/dist/core/wallets.js +0 -549
  69. package/dist/core/wallets.js.map +0 -1
  70. package/dist/hooks/chains/useSquidChains.js +0 -107
  71. package/dist/hooks/chains/useSquidChains.js.map +0 -1
  72. package/dist/hooks/client/useClient.js +0 -6
  73. package/dist/hooks/client/useClient.js.map +0 -1
  74. package/dist/hooks/cosmos/useCosmos.js +0 -172
  75. package/dist/hooks/cosmos/useCosmos.js.map +0 -1
  76. package/dist/hooks/cosmos/useCosmosForChain.js +0 -33
  77. package/dist/hooks/cosmos/useCosmosForChain.js.map +0 -1
  78. package/dist/hooks/index.js +0 -44
  79. package/dist/hooks/index.js.map +0 -1
  80. package/dist/hooks/navigation/useKeyboardNavigation.js +0 -67
  81. package/dist/hooks/navigation/useKeyboardNavigation.js.map +0 -1
  82. package/dist/hooks/query/useSquidQueryClient.js +0 -23
  83. package/dist/hooks/query/useSquidQueryClient.js.map +0 -1
  84. package/dist/hooks/solana/useSolana.js +0 -104
  85. package/dist/hooks/solana/useSolana.js.map +0 -1
  86. package/dist/hooks/squid/useSquid.js +0 -55
  87. package/dist/hooks/squid/useSquid.js.map +0 -1
  88. package/dist/hooks/store/useAddressBookStore.js +0 -26
  89. package/dist/hooks/store/useAddressBookStore.js.map +0 -1
  90. package/dist/hooks/store/useAssetsColorsStore.js +0 -7
  91. package/dist/hooks/store/useAssetsColorsStore.js.map +0 -1
  92. package/dist/hooks/store/useDepositAddressStore.js +0 -12
  93. package/dist/hooks/store/useDepositAddressStore.js.map +0 -1
  94. package/dist/hooks/store/useFavoriteTokensStore.js +0 -28
  95. package/dist/hooks/store/useFavoriteTokensStore.js.map +0 -1
  96. package/dist/hooks/store/useHistoryStore.js +0 -41
  97. package/dist/hooks/store/useHistoryStore.js.map +0 -1
  98. package/dist/hooks/store/useSquidStore.js +0 -56
  99. package/dist/hooks/store/useSquidStore.js.map +0 -1
  100. package/dist/hooks/store/useWalletStore.js +0 -42
  101. package/dist/hooks/store/useWalletStore.js.map +0 -1
  102. package/dist/hooks/sui/useSui.js +0 -28
  103. package/dist/hooks/sui/useSui.js.map +0 -1
  104. package/dist/hooks/sui/useSuiClient.js +0 -16
  105. package/dist/hooks/sui/useSuiClient.js.map +0 -1
  106. package/dist/hooks/sui/useSuiWallets.js +0 -42
  107. package/dist/hooks/sui/useSuiWallets.js.map +0 -1
  108. package/dist/hooks/swap/useDepositAddress.js +0 -63
  109. package/dist/hooks/swap/useDepositAddress.js.map +0 -1
  110. package/dist/hooks/swap/useSwap.js +0 -209
  111. package/dist/hooks/swap/useSwap.js.map +0 -1
  112. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +0 -103
  113. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +0 -1
  114. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +0 -119
  115. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +0 -1
  116. package/dist/hooks/tokens/useBalance.js +0 -136
  117. package/dist/hooks/tokens/useBalance.js.map +0 -1
  118. package/dist/hooks/tokens/useMultiChainBalance.js +0 -68
  119. package/dist/hooks/tokens/useMultiChainBalance.js.map +0 -1
  120. package/dist/hooks/tokens/useMultipleTokenPrices.js +0 -46
  121. package/dist/hooks/tokens/useMultipleTokenPrices.js.map +0 -1
  122. package/dist/hooks/tokens/useNativeBalance.js +0 -217
  123. package/dist/hooks/tokens/useNativeBalance.js.map +0 -1
  124. package/dist/hooks/tokens/useNativeTokenForChain.js +0 -28
  125. package/dist/hooks/tokens/useNativeTokenForChain.js.map +0 -1
  126. package/dist/hooks/tokens/useSingleTokenPrice.js +0 -38
  127. package/dist/hooks/tokens/useSingleTokenPrice.js.map +0 -1
  128. package/dist/hooks/tokens/useSquidTokens.js +0 -80
  129. package/dist/hooks/tokens/useSquidTokens.js.map +0 -1
  130. package/dist/hooks/tokens/useTokenHistoricalData.js +0 -23
  131. package/dist/hooks/tokens/useTokenHistoricalData.js.map +0 -1
  132. package/dist/hooks/transaction/useAllTransactionsStatus.js +0 -68
  133. package/dist/hooks/transaction/useAllTransactionsStatus.js.map +0 -1
  134. package/dist/hooks/transaction/useApproval.js +0 -223
  135. package/dist/hooks/transaction/useApproval.js.map +0 -1
  136. package/dist/hooks/transaction/useErc20Allowance.js +0 -43
  137. package/dist/hooks/transaction/useErc20Allowance.js.map +0 -1
  138. package/dist/hooks/transaction/useEstimate.js +0 -118
  139. package/dist/hooks/transaction/useEstimate.js.map +0 -1
  140. package/dist/hooks/transaction/useEstimatePriceImpact.js +0 -31
  141. package/dist/hooks/transaction/useEstimatePriceImpact.js.map +0 -1
  142. package/dist/hooks/transaction/useExecuteTransaction.js +0 -605
  143. package/dist/hooks/transaction/useExecuteTransaction.js.map +0 -1
  144. package/dist/hooks/transaction/useGetRoute.js +0 -224
  145. package/dist/hooks/transaction/useGetRoute.js.map +0 -1
  146. package/dist/hooks/transaction/useIcs20Allowance.js +0 -40
  147. package/dist/hooks/transaction/useIcs20Allowance.js.map +0 -1
  148. package/dist/hooks/transaction/useRouteWarnings.js +0 -19
  149. package/dist/hooks/transaction/useRouteWarnings.js.map +0 -1
  150. package/dist/hooks/transaction/useSingleTransaction.js +0 -91
  151. package/dist/hooks/transaction/useSingleTransaction.js.map +0 -1
  152. package/dist/hooks/user/useAvatar.js +0 -34
  153. package/dist/hooks/user/useAvatar.js.map +0 -1
  154. package/dist/hooks/user/useHistory.js +0 -106
  155. package/dist/hooks/user/useHistory.js.map +0 -1
  156. package/dist/hooks/user/useUserParams.js +0 -33
  157. package/dist/hooks/user/useUserParams.js.map +0 -1
  158. package/dist/hooks/wallet/useAddToken.js +0 -49
  159. package/dist/hooks/wallet/useAddToken.js.map +0 -1
  160. package/dist/hooks/wallet/useAutoConnect.js +0 -74
  161. package/dist/hooks/wallet/useAutoConnect.js.map +0 -1
  162. package/dist/hooks/wallet/useEns.js +0 -69
  163. package/dist/hooks/wallet/useEns.js.map +0 -1
  164. package/dist/hooks/wallet/useGnosisContext.js +0 -78
  165. package/dist/hooks/wallet/useGnosisContext.js.map +0 -1
  166. package/dist/hooks/wallet/useIntegratorContext.js +0 -39
  167. package/dist/hooks/wallet/useIntegratorContext.js.map +0 -1
  168. package/dist/hooks/wallet/useMultiChainWallet.js +0 -175
  169. package/dist/hooks/wallet/useMultiChainWallet.js.map +0 -1
  170. package/dist/hooks/wallet/useSigner.js +0 -76
  171. package/dist/hooks/wallet/useSigner.js.map +0 -1
  172. package/dist/hooks/wallet/useWallet.js +0 -206
  173. package/dist/hooks/wallet/useWallet.js.map +0 -1
  174. package/dist/hooks/wallet/useWallets.js +0 -36
  175. package/dist/hooks/wallet/useWallets.js.map +0 -1
  176. package/dist/provider/index.js +0 -113
  177. package/dist/provider/index.js.map +0 -1
  178. package/dist/services/external/ens.js +0 -66
  179. package/dist/services/external/ens.js.map +0 -1
  180. package/dist/services/external/rpcService.js +0 -421
  181. package/dist/services/external/rpcService.js.map +0 -1
  182. package/dist/services/external/secretService.js.map +0 -1
  183. package/dist/services/external/suiRpcClient.js +0 -80
  184. package/dist/services/external/suiRpcClient.js.map +0 -1
  185. package/dist/services/external/tokenDataService.js +0 -108
  186. package/dist/services/external/tokenDataService.js.map +0 -1
  187. package/dist/services/index.js +0 -16
  188. package/dist/services/index.js.map +0 -1
  189. package/dist/services/internal/apiService.js +0 -21
  190. package/dist/services/internal/apiService.js.map +0 -1
  191. package/dist/services/internal/assetsService.js +0 -586
  192. package/dist/services/internal/assetsService.js.map +0 -1
  193. package/dist/services/internal/bitcoinService.js +0 -51
  194. package/dist/services/internal/bitcoinService.js.map +0 -1
  195. package/dist/services/internal/configService.js +0 -215
  196. package/dist/services/internal/configService.js.map +0 -1
  197. package/dist/services/internal/cosmosService.js +0 -141
  198. package/dist/services/internal/cosmosService.js.map +0 -1
  199. package/dist/services/internal/errorService.js +0 -188
  200. package/dist/services/internal/errorService.js.map +0 -1
  201. package/dist/services/internal/estimateService.js +0 -221
  202. package/dist/services/internal/estimateService.js.map +0 -1
  203. package/dist/services/internal/eventService.js +0 -156
  204. package/dist/services/internal/eventService.js.map +0 -1
  205. package/dist/services/internal/evmService.js +0 -42
  206. package/dist/services/internal/evmService.js.map +0 -1
  207. package/dist/services/internal/numberService.js +0 -171
  208. package/dist/services/internal/numberService.js.map +0 -1
  209. package/dist/services/internal/priceService.js +0 -53
  210. package/dist/services/internal/priceService.js.map +0 -1
  211. package/dist/services/internal/searchService.js +0 -98
  212. package/dist/services/internal/searchService.js.map +0 -1
  213. package/dist/services/internal/solanaService.js +0 -109
  214. package/dist/services/internal/solanaService.js.map +0 -1
  215. package/dist/services/internal/suiService.js +0 -119
  216. package/dist/services/internal/suiService.js.map +0 -1
  217. package/dist/services/internal/transactionService.js +0 -207
  218. package/dist/services/internal/transactionService.js.map +0 -1
  219. package/dist/services/internal/transactionStatusService.js +0 -315
  220. package/dist/services/internal/transactionStatusService.js.map +0 -1
  221. package/dist/services/internal/walletService.js +0 -464
  222. package/dist/services/internal/walletService.js.map +0 -1
  223. package/dist/tests/apiService.test.js +0 -40
  224. package/dist/tests/apiService.test.js.map +0 -1
  225. package/dist/tests/assetsService.test.js +0 -500
  226. package/dist/tests/assetsService.test.js.map +0 -1
  227. package/dist/tests/configService.test.js +0 -673
  228. package/dist/tests/configService.test.js.map +0 -1
  229. package/dist/tests/estimateService.test.js +0 -355
  230. package/dist/tests/estimateService.test.js.map +0 -1
  231. package/dist/tests/fetchSquidData.js +0 -36
  232. package/dist/tests/fetchSquidData.js.map +0 -1
  233. package/dist/tests/jest-svg-transform.d.ts +0 -0
  234. package/dist/tests/jest-svg-transform.js +0 -21
  235. package/dist/tests/jest-svg-transform.js.map +0 -1
  236. package/dist/tests/numberService.test.js +0 -135
  237. package/dist/tests/numberService.test.js.map +0 -1
  238. package/dist/tests/priceService.test.js +0 -38
  239. package/dist/tests/priceService.test.js.map +0 -1
  240. package/dist/tests/sample.json +0 -0
  241. package/dist/tests/searchService.test.js +0 -92
  242. package/dist/tests/searchService.test.js.map +0 -1
  243. package/dist/tests/swapConfig.test.js +0 -332
  244. package/dist/tests/swapConfig.test.js.map +0 -1
  245. package/dist/tests/transactionService.test.js +0 -53
  246. package/dist/tests/transactionService.test.js.map +0 -1
  247. package/dist/tests/transactionStatusService.test.js +0 -165
  248. package/dist/tests/transactionStatusService.test.js.map +0 -1
  249. package/dist/tests/walletService.test.js +0 -264
  250. package/dist/tests/walletService.test.js.map +0 -1
@@ -1,224 +0,0 @@
1
- import { ChainType, } from "@0xsquid/squid-types";
2
- import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
3
- import { useCallback, useMemo, useRef } from "react";
4
- import { CHAIN_IDS, chainTypeToZeroAddressMap } from "../../core/constants";
5
- import { useCosmosContext } from "../../core/providers/CosmosProvider";
6
- import { keys } from "../../core/queries/queries-keys";
7
- import { evmosAddressToEvmAddress, isEvmosChain } from "../../services";
8
- import { WidgetEvents, createQuoteRequestParamsHash, } from "../../services/internal/eventService";
9
- import { parseToBigInt } from "../../services/internal/numberService";
10
- import { useSquidChains } from "../chains/useSquidChains";
11
- import { useConfigStore, useSquidStore, useSwapRoutePersistStore, } from "../store/useSquidStore";
12
- import { useDepositAddress } from "../swap/useDepositAddress";
13
- import { useSwap } from "../swap/useSwap";
14
- import { useMultiChainWallet } from "../wallet/useMultiChainWallet";
15
- export const useGetRoute = () => {
16
- const { getCosmosAddressForChain, isConnected: isCosmosConnected } = useCosmosContext();
17
- const config = useConfigStore((state) => state.config);
18
- const squid = useSquidStore((state) => state.squid);
19
- const { swapRoute } = useSwapRoutePersistStore();
20
- const { findChain } = useSquidChains();
21
- const queryClient = useQueryClient();
22
- const previousParamsHashRef = useRef();
23
- /**
24
- * Dispatch event when requesting a quote for swap
25
- */
26
- const dispatchRequestQuoteEvent = useCallback((params) => {
27
- const currentParamsHash = createQuoteRequestParamsHash(params);
28
- // Only dispatch if any parameter has changed
29
- if (previousParamsHashRef.current !== currentParamsHash) {
30
- previousParamsHashRef.current = currentParamsHash;
31
- WidgetEvents.getInstance().dispatchRequestQuote(params);
32
- }
33
- }, []);
34
- /**
35
- * Get fallback addresses for cosmos chains.
36
- * First try to get the fallback address added manually by the user (if any).
37
- * If not set, try to get the derived osmo address.
38
- *
39
- * This is needed by backend when a cosmos swap occurs between non coin118 chains
40
- * The backend might need a coin118 address to send the funds to in case of failure for a swap happening between the two chains
41
- */
42
- const getCosmosFallbackAddresses = useCallback(async () => {
43
- if (swapRoute?.fallbackAddress) {
44
- return [
45
- {
46
- address: swapRoute?.fallbackAddress,
47
- coinType: 118,
48
- },
49
- ];
50
- }
51
- // There's no fallback address manually added and the user is not connected
52
- if (!isCosmosConnected) {
53
- return undefined;
54
- }
55
- // the user is connected to cosmos, we can get the fallback address from the wallet
56
- // We only need coin118, so taking osmosis hub address by default
57
- const osmosisAddress = await getCosmosAddressForChain(CHAIN_IDS.OSMOSIS);
58
- if (osmosisAddress) {
59
- return [
60
- {
61
- address: osmosisAddress,
62
- coinType: 118,
63
- },
64
- ];
65
- }
66
- }, [getCosmosAddressForChain, isCosmosConnected, swapRoute?.fallbackAddress]);
67
- /**
68
- * Fetching route data from the API
69
- * These data will be used to trigger the transaction
70
- * @returns {Route} Route data
71
- */
72
- return useMutation(async ({ fromChain, toChain, fromToken, toToken, sourceUserAddress, destinationAddress, fromPrice, bypassGuardrails, quoteOnly, fromChainType, }) => {
73
- if (!fromChain || !toChain || !fromToken || !toToken || !fromPrice) {
74
- return undefined;
75
- }
76
- // Dispatch requestQuote event
77
- dispatchRequestQuoteEvent({
78
- fromChain,
79
- toChain,
80
- fromToken: fromToken.address,
81
- toToken: toToken.address,
82
- fromAmount: fromPrice,
83
- fromAddress: sourceUserAddress,
84
- toAddress: destinationAddress,
85
- });
86
- const isEvmSwap = Number(fromChain) > 0 && Number(toChain) > 0;
87
- const cosmosFallbackAddresses = quoteOnly || isEvmSwap ? undefined : await getCosmosFallbackAddresses();
88
- const isSrcChainEvmos = isEvmosChain(findChain(fromChain));
89
- const isDestChainEvmos = isEvmosChain(findChain(toChain));
90
- // Evmos tokens require the original address to be used (erc20/0x123...abc)
91
- // TODO: this will be fixed in the backend
92
- const fromTokenAddress = isSrcChainEvmos
93
- ? fromToken.originalAddress || fromToken.address
94
- : fromToken.address;
95
- const toTokenAddress = isDestChainEvmos
96
- ? toToken.originalAddress || toToken.address
97
- : toToken.address;
98
- const fromAmount = parseToBigInt(fromPrice?.toString() ?? "0", fromToken?.decimals).toString();
99
- const fromAddress = sourceUserAddress ??
100
- chainTypeToZeroAddressMap[fromChainType ?? ChainType.EVM];
101
- const params = {
102
- fromChain,
103
- fromToken: fromTokenAddress,
104
- fromAddress,
105
- fromAmount,
106
- toChain,
107
- toToken: toTokenAddress,
108
- toAddress: destinationAddress ?? "",
109
- quoteOnly,
110
- slippage: config.slippage === 0 ? undefined : config.slippage,
111
- bypassGuardrails,
112
- };
113
- // If the swap is involving cosmos chains, we need to add the fallback addresses (if any)
114
- if (cosmosFallbackAddresses &&
115
- cosmosFallbackAddresses.length > 0 &&
116
- cosmosFallbackAddresses[0].address) {
117
- params.fallbackAddresses = cosmosFallbackAddresses;
118
- }
119
- const { route } = await squid.getRoute({
120
- ...params,
121
- });
122
- if (isSrcChainEvmos) {
123
- // need to format evmos addresses in route.params
124
- // to standard evm addresses for the Squid sdk to find tokens by address properly
125
- // when approving or executing the route
126
- route.params.fromToken = evmosAddressToEvmAddress(route.params.fromToken);
127
- }
128
- if (isDestChainEvmos) {
129
- // need to format evmos addresses in route.params
130
- // to standard evm addresses for the Squid sdk to find tokens by address properly
131
- // when approving or executing the route
132
- route.params.toToken = evmosAddressToEvmAddress(route.params.toToken);
133
- }
134
- // Cache the route data
135
- // Useful when the getRoute mutation is called from another hook
136
- queryClient.setQueryData(keys().transaction(fromChain, toChain, toToken.address, fromToken.address, fromPrice, config.slippage, config.enableGetGasOnDestination, sourceUserAddress, config.degenMode, destinationAddress, swapRoute?.fallbackAddress, quoteOnly, fromChainType), route);
137
- return route;
138
- });
139
- };
140
- // TODO: this is a bit dangerous to base the type on the useQuery function indexing
141
- // as it could change in the future
142
- // type UseQueryOptionsType = Parameters<typeof useQuery>[2];
143
- export const useGetRouteWrapper = ({ enabled, cacheTime = 5 * 60 * 1000, // 5 minutes
144
- staleTime = 60 * 1000, // 1 minute
145
- refetchOnWindowFocus = (query) => Date.now() - query.state.dataUpdatedAt > 30000, // Update if older than 30 seconds, when window is focused
146
- refetchIntervalInBackground = false, refetchInterval = 30000, quoteOnly = true, }) => {
147
- const config = useConfigStore((state) => state.config);
148
- const squid = useSquidStore((state) => state.squid);
149
- const fallbackAddress = useSwapRoutePersistStore((store) => store.swapRoute?.fallbackAddress);
150
- const depositRefundAddress = useSwapRoutePersistStore((store) => store.swapRoute?.depositRefundAddress);
151
- const { isAvailableAsPaymentMethod, isEnabled: isDepositAddressEnabled } = useDepositAddress();
152
- const getRouteMutation = useGetRoute();
153
- const { fromChain, toChain, fromPrice, destinationAddress: { address: destinationAddress } = {}, fromToken, toToken, } = useSwap();
154
- const { connectedAddress: { address: sourceConnectedAddress }, } = useMultiChainWallet(fromChain);
155
- // When the payment method is deposit address, users can specify a refund address on the source chain
156
- // Tokens will be sent to this address in case of swap failure
157
- //
158
- // If deposit address is not selected, we use the connected address as the source address instead
159
- const sourceUserAddress = isDepositAddressEnabled && isAvailableAsPaymentMethod
160
- ? depositRefundAddress ?? sourceConnectedAddress
161
- : sourceConnectedAddress;
162
- const squidRouteQueryKeys = useMemo(() => keys().transaction(fromChain?.chainId, toChain?.chainId, toToken?.address, fromToken?.address, fromPrice, config.slippage, config.enableGetGasOnDestination, sourceUserAddress, config.degenMode, destinationAddress, fallbackAddress, quoteOnly, fromChain?.chainType), [
163
- fromChain?.chainId,
164
- toChain?.chainId,
165
- toToken?.address,
166
- fromToken?.address,
167
- fromPrice,
168
- config.slippage,
169
- config.enableGetGasOnDestination,
170
- sourceUserAddress,
171
- config.degenMode,
172
- destinationAddress,
173
- fallbackAddress,
174
- quoteOnly,
175
- fromChain?.chainType,
176
- ]);
177
- const queryEnabled = enabled != undefined
178
- ? enabled
179
- : squid !== undefined &&
180
- fromPrice !== undefined &&
181
- fromPrice !== "0" &&
182
- toChain?.chainId !== undefined &&
183
- toToken?.address !== undefined;
184
- const queryClient = useQueryClient();
185
- const cachedRouteData = queryClient.getQueryData(squidRouteQueryKeys);
186
- /**
187
- * Fetching route data from the API
188
- * These data will be used to trigger the transaction
189
- * @returns {Route} Route data
190
- */
191
- const squidRoute = useQuery(squidRouteQueryKeys, async () => {
192
- const route = await getRouteMutation.mutateAsync({
193
- fromChain: fromChain?.chainId,
194
- toChain: toChain?.chainId,
195
- fromToken,
196
- toToken,
197
- sourceUserAddress,
198
- destinationAddress,
199
- fromPrice,
200
- bypassGuardrails: config.degenMode,
201
- quoteOnly,
202
- fromChainType: fromChain?.chainType,
203
- });
204
- return route;
205
- }, {
206
- enabled: queryEnabled,
207
- cacheTime,
208
- staleTime,
209
- refetchOnWindowFocus,
210
- refetchIntervalInBackground,
211
- refetchInterval,
212
- });
213
- /**
214
- * If last updated data is older than X seconds and the query is currently loading, show loading indicator
215
- */
216
- const showLoading = useMemo(() => squidRoute.isFetching || squidRoute.isRefetching, [squidRoute.isFetching, squidRoute.isRefetching]);
217
- return {
218
- squidRoute,
219
- showLoading,
220
- squidRouteError: squidRoute.error,
221
- routeData: queryEnabled ? squidRoute.data : cachedRouteData,
222
- };
223
- };
224
- //# sourceMappingURL=useGetRoute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGetRoute.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useGetRoute.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import { useReadContract } from "wagmi";
2
- import ics20Abi from "../../core/abis/ics20.json";
3
- import { parseEvmAddress } from "../../services";
4
- /**
5
- * ICS20 is similar to ERC20 but the ABI is different
6
- *
7
- * https://docs.evmos.org/develop/smart-contracts/evm-extensions/ibc-transfer
8
- * https://github.com/evmos/extensions/blob/main/precompiles/abi/ics20.json
9
- */
10
- export function useIcs20Allowance({ targetAddress, ownerAddress, amount = BigInt(0), chainId, enabled = true, }) {
11
- const parsedTargetAddress = parseEvmAddress(targetAddress);
12
- const parsedOwnerAddress = parseEvmAddress(ownerAddress);
13
- const query = useReadContract({
14
- abi: ics20Abi,
15
- address: parsedTargetAddress,
16
- functionName: "allowance",
17
- chainId,
18
- args: parsedOwnerAddress
19
- ? [parsedOwnerAddress, parsedOwnerAddress]
20
- : undefined,
21
- query: {
22
- enabled: enabled && Boolean(parsedTargetAddress && parsedOwnerAddress),
23
- },
24
- });
25
- if (!parsedTargetAddress || !parsedOwnerAddress) {
26
- return {
27
- hasAllowance: false,
28
- error: new Error("Invalid or missing address"),
29
- };
30
- }
31
- const allowanceInWei = query.data?.[0]?.spendLimit?.[0].amount ??
32
- BigInt(0);
33
- const hasAllowance = allowanceInWei >= amount;
34
- return {
35
- query,
36
- hasAllowance,
37
- allowanceInWei,
38
- };
39
- }
40
- //# sourceMappingURL=useIcs20Allowance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIcs20Allowance.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useIcs20Allowance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAuBjD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,aAAa,EACb,YAAY,EACZ,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAClB,OAAO,EACP,OAAO,GAAG,IAAI,GACO;IACrB,MAAM,mBAAmB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAG,eAAe,CAAC;QAC5B,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE,mBAAmB;QAC5B,YAAY,EAAE,WAAW;QACzB,OAAO;QACP,IAAI,EAAE,kBAAkB;YACtB,CAAC,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YAC1C,CAAC,CAAC,SAAS;QACb,KAAK,EAAE;YACL,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,mBAAmB,IAAI,kBAAkB,CAAC;SACvE;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,IAAI,CAAC,kBAAkB,EAAE;QAC/C,OAAO;YACL,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,IAAI,KAAK,CAAC,4BAA4B,CAAC;SAC/C,CAAC;KACH;IAED,MAAM,cAAc,GACjB,KAAK,CAAC,IAA+B,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;QACnE,MAAM,CAAC,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,cAAc,IAAI,MAAM,CAAC;IAE9C,OAAO;QACL,KAAK;QACL,YAAY;QACZ,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -1,19 +0,0 @@
1
- import { useMemo } from "react";
2
- import { isFallbackAddressNeeded } from "../../services/internal/cosmosService";
3
- import { useSwapRoutePersistStore } from "../store/useSquidStore";
4
- import { useSwap } from "../swap/useSwap";
5
- export const useRouteWarnings = () => {
6
- const { toChain, destinationAddress } = useSwap();
7
- const { swapRoute } = useSwapRoutePersistStore();
8
- const needsFallbackAddress = useMemo(() => {
9
- return isFallbackAddressNeeded({
10
- address: destinationAddress?.address,
11
- currentFallbackAddress: swapRoute?.fallbackAddress,
12
- chain: toChain,
13
- });
14
- }, [destinationAddress?.address, swapRoute?.fallbackAddress, toChain]);
15
- return {
16
- needsFallbackAddress,
17
- };
18
- };
19
- //# sourceMappingURL=useRouteWarnings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRouteWarnings.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useRouteWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;IAClD,MAAM,EAAE,SAAS,EAAE,GAAG,wBAAwB,EAAE,CAAC;IAEjD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,uBAAuB,CAAC;YAC7B,OAAO,EAAE,kBAAkB,EAAE,OAAO;YACpC,sBAAsB,EAAE,SAAS,EAAE,eAAe;YAClD,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvE,OAAO;QACL,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,91 +0,0 @@
1
- import { ChainType } from "@0xsquid/squid-types";
2
- import { useQuery } from "@tanstack/react-query";
3
- import { useCallback, useMemo, useState } from "react";
4
- import { transactionEndStatuses } from "../../core/constants";
5
- import { keys } from "../../core/queries/queries-keys";
6
- import { TransactionStatus, } from "../../core/types/transaction";
7
- import { fetchTransactionStatus, getTransactionEndStatus, getTransactionStatus, getTxStatusRefetchInterval, is404Error, } from "../../services";
8
- import { WidgetEvents } from "../../services/internal/eventService";
9
- import { useSquidChains } from "../chains/useSquidChains";
10
- import { useConfigStore } from "../store/useSquidStore";
11
- import { useHistory } from "../user/useHistory";
12
- export const useSingleTransaction = ({ transaction, retry = 25, refetchOnWindowFocus = "always", enabled = true, }) => {
13
- const config = useConfigStore((state) => state.config);
14
- const isInitialized = useConfigStore((state) => state.isInitialized);
15
- const { replaceTransactionStatus, findHistoryItem } = useHistory();
16
- const [isTransactionComplete, setIsTransactionComplete] = useState(false);
17
- const [refetchInterval, setRefetchInterval] = useState(getTxStatusRefetchInterval(transaction));
18
- const { getChainType } = useSquidChains();
19
- const currentHistoryItem = useMemo(() => findHistoryItem(transaction?.transactionId), [findHistoryItem, transaction?.transactionId]);
20
- /**
21
- * Transaction status endpoint
22
- * Squid api is using axelar endpoint and parsing the response
23
- * @returns {StatusResponse} Status response
24
- */
25
- const fetchTransactionStatusWithLatestConfig = useCallback(async () => {
26
- const latestConfig = useConfigStore.getState().config;
27
- return fetchTransactionStatus({
28
- transaction,
29
- integratorId: latestConfig.integratorId,
30
- apiUrl: latestConfig.apiUrl,
31
- });
32
- }, [transaction]);
33
- const transactionStatusQuery = useQuery(keys().transactionStatus(transaction), fetchTransactionStatusWithLatestConfig, {
34
- enabled: enabled &&
35
- transaction?.transactionId !== "0" &&
36
- !!transaction?.transactionId &&
37
- !!transaction.fromAddress &&
38
- !!config.apiUrl &&
39
- transaction !== undefined &&
40
- !isTransactionComplete &&
41
- isInitialized &&
42
- !!currentHistoryItem?.status &&
43
- !transactionEndStatuses.includes(currentHistoryItem.status),
44
- refetchInterval(statusResponse) {
45
- // If the status response is something telling that the transaction
46
- // is finished, then store transaction history state if success
47
- // And return false to indicate refetcher to stop
48
- if (statusResponse &&
49
- transactionEndStatuses.includes(getTransactionStatus(statusResponse) ?? "")) {
50
- return false;
51
- }
52
- return refetchInterval; // Had to handle a variable here because after onError, we want the interval to stop
53
- },
54
- // At the moment Cosmos indexing takes more time, so need more time between retries
55
- retryDelay: getChainType(transaction?.fromChain) === ChainType.COSMOS ? 5000 : 3000,
56
- retry: getChainType(transaction?.fromChain) === ChainType.COSMOS ? 6 : retry,
57
- refetchOnWindowFocus,
58
- onSuccess: (data) => {
59
- const statusResponse = data;
60
- // Dispatch event
61
- WidgetEvents.getInstance().dispatchSwapStatus(statusResponse.squidTransactionStatus ?? "");
62
- const endStatus = getTransactionEndStatus({ statusResponse });
63
- if (endStatus && transaction?.transactionId) {
64
- setIsTransactionComplete(true);
65
- replaceTransactionStatus(transaction.transactionId, statusResponse, endStatus);
66
- }
67
- },
68
- onError: (error) => {
69
- // `fetchTransactionStatus` throws an error with a cause being an AxiosError
70
- const is404 = is404Error(error.cause);
71
- if (!transaction?.transactionId)
72
- return;
73
- if (is404) {
74
- replaceTransactionStatus(transaction.transactionId, undefined, TransactionStatus.NOT_FOUND);
75
- }
76
- else {
77
- setRefetchInterval(-1);
78
- setIsTransactionComplete(true);
79
- replaceTransactionStatus(transaction.transactionId, undefined, TransactionStatus.ERROR);
80
- }
81
- },
82
- });
83
- return {
84
- transactionStatusQuery,
85
- latestStatus: transactionStatusQuery.data
86
- ?.squidTransactionStatus ??
87
- transaction?.status ??
88
- currentHistoryItem?.status,
89
- };
90
- };
91
- //# sourceMappingURL=useSingleTransaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSingleTransaction.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useSingleTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,OAAO,EAEL,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,WAAW,EACX,KAAK,GAAG,EAAE,EACV,oBAAoB,GAAG,QAAQ,EAC/B,OAAO,GAAG,IAAI,GAMf,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACrE,MAAM,EAAE,wBAAwB,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,CAAC;IACnE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CACpD,0BAA0B,CAAC,WAAW,CAAC,CACxC,CAAC;IACF,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC;IAE1C,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,EACjD,CAAC,eAAe,EAAE,WAAW,EAAE,aAAa,CAAC,CAC9C,CAAC;IAEF;;;;OAIG;IACH,MAAM,sCAAsC,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACpE,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QACtD,OAAO,sBAAsB,CAAC;YAC5B,WAAW;YACX,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,MAAM,EAAE,YAAY,CAAC,MAAO;SAC7B,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,sBAAsB,GAAG,QAAQ,CACrC,IAAI,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACrC,sCAAsC,EACtC;QACE,OAAO,EACL,OAAO;YACP,WAAW,EAAE,aAAa,KAAK,GAAG;YAClC,CAAC,CAAC,WAAW,EAAE,aAAa;YAC5B,CAAC,CAAC,WAAW,CAAC,WAAW;YACzB,CAAC,CAAC,MAAM,CAAC,MAAM;YACf,WAAW,KAAK,SAAS;YACzB,CAAC,qBAAqB;YACtB,aAAa;YACb,CAAC,CAAC,kBAAkB,EAAE,MAAM;YAC5B,CAAC,sBAAsB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC7D,eAAe,CAAC,cAAc;YAC5B,mEAAmE;YACnE,+DAA+D;YAC/D,iDAAiD;YACjD,IACE,cAAc;gBACd,sBAAsB,CAAC,QAAQ,CAC7B,oBAAoB,CAAC,cAAc,CAAC,IAAI,EAAE,CAC3C,EACD;gBACA,OAAO,KAAK,CAAC;aACd;YACD,OAAO,eAAe,CAAC,CAAC,oFAAoF;QAC9G,CAAC;QAED,mFAAmF;QACnF,UAAU,EACR,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACzE,KAAK,EACH,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;QACvE,oBAAoB;QAEpB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAClB,MAAM,cAAc,GAAG,IAAI,CAAC;YAE5B,iBAAiB;YACjB,YAAY,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAC3C,cAAc,CAAC,sBAAsB,IAAI,EAAE,CAC5C,CAAC;YAEF,MAAM,SAAS,GAAG,uBAAuB,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;YAE9D,IAAI,SAAS,IAAI,WAAW,EAAE,aAAa,EAAE;gBAC3C,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBAC/B,wBAAwB,CACtB,WAAW,CAAC,aAAa,EACzB,cAAc,EACd,SAAS,CACV,CAAC;aACH;QACH,CAAC;QACD,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACxB,4EAA4E;YAC5E,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEtC,IAAI,CAAC,WAAW,EAAE,aAAa;gBAAE,OAAO;YAExC,IAAI,KAAK,EAAE;gBACT,wBAAwB,CACtB,WAAW,CAAC,aAAa,EACzB,SAAS,EACT,iBAAiB,CAAC,SAAS,CAC5B,CAAC;aACH;iBAAM;gBACL,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBAC/B,wBAAwB,CACtB,WAAW,CAAC,aAAa,EACzB,SAAS,EACT,iBAAiB,CAAC,KAAK,CACxB,CAAC;aACH;QACH,CAAC;KACF,CACF,CAAC;IAEF,OAAO;QACL,sBAAsB;QACtB,YAAY,EACT,sBAAsB,CAAC,IAAI;YAC1B,EAAE,sBAAmD;YACvD,WAAW,EAAE,MAAM;YACnB,kBAAkB,EAAE,MAAM;KAC7B,CAAC;AACJ,CAAC,CAAC"}
@@ -1,34 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- const zeroAddress = "0x0000000000000000000000000000000000000000";
3
- const avatarImagesBaseUrl = "https://raw.githubusercontent.com/0xsquid/assets/main/squid-brand-assets/pfps";
4
- const TOTAL_AVATARS = 60;
5
- const avatarImages = Array.from({
6
- length: TOTAL_AVATARS,
7
- }).map((_, i) => `${avatarImagesBaseUrl}/pfp${i + 1}.svg`);
8
- /**
9
- * Simple hash function to create a deterministic index from a given string.
10
- * @param {string} str - The input string to hash.
11
- * @param {number} max - The maximum value for the hash.
12
- * @returns {number} - The index within the array.
13
- */
14
- const hashStringToIndex = (str, max) => {
15
- let index = 0;
16
- for (let i = 0; i < str.length; i++) {
17
- index = (index * 31 + str.charCodeAt(i)) % max;
18
- }
19
- return index;
20
- };
21
- /**
22
- * Custom hook to return a deterministic avatar image URL based on the provided seed.
23
- * @param {string} seed - The seed used to determine the avatar.
24
- * @returns {string} - The selected avatar image URL.
25
- */
26
- export const useAvatar = (seed = zeroAddress) => {
27
- const [avatar, setAvatar] = useState("");
28
- useEffect(() => {
29
- const index = hashStringToIndex(seed, avatarImages.length);
30
- setAvatar(avatarImages[index]);
31
- }, [seed]);
32
- return avatar;
33
- };
34
- //# sourceMappingURL=useAvatar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAvatar.js","sourceRoot":"","sources":["../../../src/hooks/user/useAvatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,GAAG,4CAA4C,CAAC;AAEjE,MAAM,mBAAmB,GACvB,+EAA+E,CAAC;AAElF,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;IAC9B,MAAM,EAAE,aAAa;CACtB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,mBAAmB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAU,EAAE;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;KAChD;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,WAAW,EAAU,EAAE;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3D,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,106 +0,0 @@
1
- import { useCallback, useMemo } from "react";
2
- import { TransactionStatus, } from "../../core/types/transaction";
3
- import { getBridgeType } from "../../services/internal/transactionStatusService";
4
- import { useHistoryStore } from "../store/useHistoryStore";
5
- export const useHistory = () => {
6
- const transactions = useHistoryStore((state) => state.transactions);
7
- const { persistTransaction, replaceTransactionStatus, removeTransaction, replaceTransactionAtNonce, } = useHistoryStore();
8
- const pendingTransactions = useMemo(() => {
9
- return transactions.filter((tx) => tx.status === TransactionStatus.INITIAL_LOADING ||
10
- tx.status === TransactionStatus.ONGOING ||
11
- tx.status === TransactionStatus.PENDING);
12
- }, [transactions]);
13
- const parseTransaction = (tx) => {
14
- if (!tx.transactionId || !tx.params.toAddress || !tx.params.fromAddress) {
15
- return null;
16
- }
17
- const simplifiedActions = tx.estimate?.actions?.map((action) => ({
18
- type: action.type,
19
- provider: action.provider,
20
- data: action.data,
21
- })) ?? [];
22
- return {
23
- fromChain: tx.params.fromChain,
24
- fromToken: tx.params.fromToken,
25
- fromAddress: tx.params.fromAddress,
26
- fromAmount: tx.params.fromAmount,
27
- toChain: tx.params.toChain,
28
- toToken: tx.params.toToken,
29
- toAddress: tx.params.toAddress,
30
- toAmount: tx.estimate.toAmount,
31
- toAmountMin: tx.estimate.toAmountMin,
32
- exchangeRate: tx.estimate.exchangeRate,
33
- aggregatePriceImpact: tx.estimate.aggregatePriceImpact,
34
- transactionId: tx.transactionId,
35
- transactionIdForStatus: tx.transactionIdForStatus,
36
- requestId: tx.requestId,
37
- fromAmountUSD: tx.estimate.fromAmountUSD,
38
- toAmountUSD: tx.estimate.toAmountUSD,
39
- toAmountMinUSD: tx.estimate.toAmountMinUSD,
40
- slippage: tx.params.slippage,
41
- status: tx.status,
42
- nonce: tx.nonce,
43
- routeType: tx.routeType,
44
- statusResponse: tx.statusResponse,
45
- sourceTxExplorerUrl: tx.sourceTxExplorerUrl,
46
- timestamp: tx.timestamp ?? Date.now(),
47
- bridgeType: getBridgeType(tx.estimate.actions),
48
- actions: simplifiedActions,
49
- };
50
- };
51
- const addTransaction = (tx) => {
52
- const simplifiedTx = parseTransaction(tx);
53
- if (simplifiedTx) {
54
- persistTransaction(simplifiedTx);
55
- }
56
- };
57
- const replaceNonceTx = (nonce, userAddress, tx) => {
58
- const simplifiedTx = parseTransaction(tx);
59
- if (simplifiedTx) {
60
- replaceTransactionAtNonce(nonce, userAddress, simplifiedTx);
61
- }
62
- };
63
- const findHistoryItem = useCallback((transactionID) => {
64
- return useHistoryStore
65
- .getState()
66
- .transactions?.find((th) => th.transactionId === transactionID);
67
- }, []);
68
- const globalStatus = useMemo(() => {
69
- const statusPriority = [
70
- {
71
- status: TransactionStatus.ERROR,
72
- check: (tx) => tx.status === TransactionStatus.ERROR,
73
- },
74
- {
75
- status: TransactionStatus.WARNING,
76
- check: (tx) => tx.status === TransactionStatus.WARNING,
77
- },
78
- {
79
- status: TransactionStatus.PENDING,
80
- check: (tx) => [
81
- TransactionStatus.PENDING,
82
- TransactionStatus.ONGOING,
83
- TransactionStatus.INITIAL_LOADING,
84
- ].includes(tx.status),
85
- },
86
- ];
87
- for (const { status, check } of statusPriority) {
88
- if (transactions.some(check)) {
89
- return status;
90
- }
91
- }
92
- return TransactionStatus.SUCCESS;
93
- }, [transactions]);
94
- return {
95
- transactions,
96
- addTransaction,
97
- replaceTransactionStatus,
98
- removeTransaction,
99
- globalStatus,
100
- replaceNonceTx,
101
- findHistoryItem,
102
- parseTransaction,
103
- pendingTransactions,
104
- };
105
- };
106
- //# sourceMappingURL=useHistory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHistory.js","sourceRoot":"","sources":["../../../src/hooks/user/useHistory.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { ChainType } from "@0xsquid/squid-types";
2
- import { useMemo } from "react";
3
- import { useConfigStore } from "../store/useSquidStore";
4
- import { useSwap } from "../swap/useSwap";
5
- export const useUserParams = () => {
6
- const enableGetGasOnDestination = useConfigStore((state) => state.config.enableGetGasOnDestination);
7
- const { fromToken, toToken, toChain, fromChain } = useSwap();
8
- // =============
9
- // GAS
10
- // =============
11
- const getGasOnDestSupportedForThisRoute = useMemo(() =>
12
- // Not supporting get gas on dest for same chains
13
- fromChain?.chainId !== toChain?.chainId &&
14
- // If the destination chain is cosmos, we don't support getting gas there
15
- toChain?.chainType !== ChainType.COSMOS &&
16
- // Not supporting get gas on dest for same tokens (bridge)
17
- ((fromToken?.subGraphIds?.some((sgi) => !!toToken?.subGraphIds?.includes(sgi)) &&
18
- toToken?.subGraphIds?.some((sgi) => !!fromToken?.subGraphIds?.includes(sgi))) ||
19
- // Except for uusdc -> uusdc
20
- (fromToken?.subGraphIds?.includes("uusdc") &&
21
- toToken?.subGraphIds?.includes("uusdc"))), [
22
- fromChain?.chainId,
23
- fromToken?.subGraphIds,
24
- toChain?.chainId,
25
- toToken?.subGraphIds,
26
- toChain?.chainType,
27
- ]);
28
- return {
29
- gasEnabled: enableGetGasOnDestination && getGasOnDestSupportedForThisRoute,
30
- getGasOnDestSupportedForThisRoute,
31
- };
32
- };
33
- //# sourceMappingURL=useUserParams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useUserParams.js","sourceRoot":"","sources":["../../../src/hooks/user/useUserParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,yBAAyB,GAAG,cAAc,CAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAClD,CAAC;IAEF,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;IAE7D,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,MAAM,iCAAiC,GAAG,OAAO,CAC/C,GAAG,EAAE;IACH,iDAAiD;IACjD,SAAS,EAAE,OAAO,KAAK,OAAO,EAAE,OAAO;QACvC,yEAAyE;QACzE,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,MAAM;QACvC,0DAA0D;QAE1D,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAC5B,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CAC/C;YACC,OAAO,EAAE,WAAW,EAAE,IAAI,CACxB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CACjD,CAAC;YACF,4BAA4B;YAC5B,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC;gBACxC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAC/C;QACE,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,SAAS;KACnB,CACF,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,yBAAyB,IAAI,iCAAiC;QAC1E,iCAAiC;KAClC,CAAC;AACJ,CAAC,CAAC"}