@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,464 +0,0 @@
1
- import { ChainType } from "@0xsquid/squid-types";
2
- import { ChainNotConfiguredError } from "@wagmi/core";
3
- import getProperty from "lodash/get";
4
- import { isAddress, SwitchChainError } from "viem";
5
- import { chainTypeToDefaultChainIdMap } from "../../core/constants";
6
- import { walletStoreLinks } from "../../core/wallets";
7
- import { WidgetEvents } from "../../services/internal/eventService";
8
- import { connectBitcoinWallet, isBitcoinAddressValid } from "./bitcoinService";
9
- import { connectCosmosWallet, isCosmosAddressValid } from "./cosmosService";
10
- import { connectEvmWallet } from "./evmService";
11
- import { connectSolanaWallet, isSolanaAddressValid } from "./solanaService";
12
- import { isSuiAddressValid } from "./suiService";
13
- const chainTypeToTrimLength = {
14
- // 0x1234...5678
15
- [ChainType.EVM]: {
16
- start: 6,
17
- end: 4,
18
- },
19
- // osmo1234...5678
20
- [ChainType.COSMOS]: {
21
- start: 8,
22
- end: 4,
23
- },
24
- // 1A1zP1eP...vfNa
25
- [ChainType.BTC]: {
26
- start: 8,
27
- end: 4,
28
- },
29
- // 6fq5...AmcC
30
- [ChainType.SOLANA]: {
31
- start: 4,
32
- end: 4,
33
- },
34
- // 0x1234...5678
35
- [ChainType.SUI]: {
36
- start: 6,
37
- end: 4,
38
- },
39
- };
40
- export const formatHash = ({ chainType, hash }) => {
41
- if (!hash)
42
- return "";
43
- let chainTypeFormat = chainType;
44
- if (!chainType) {
45
- if (hash?.startsWith("0x")) {
46
- chainTypeFormat = ChainType.EVM;
47
- }
48
- else {
49
- chainTypeFormat = ChainType.COSMOS;
50
- }
51
- }
52
- const trimLengthStart = chainTypeToTrimLength[chainTypeFormat].start;
53
- const trimLengthEnd = chainTypeToTrimLength[chainTypeFormat].end;
54
- // return the same hash if its length is less than the trim length
55
- if (hash.length <= trimLengthStart + trimLengthEnd)
56
- return hash;
57
- return (hash.slice(0, trimLengthStart) +
58
- "..." +
59
- hash.slice(hash.length - trimLengthEnd, hash.length));
60
- };
61
- export const isWalletAddressValid = (chainData, address) => {
62
- if (!address || !chainData?.chainType)
63
- return false;
64
- switch (chainData.chainType) {
65
- case ChainType.EVM:
66
- return isAddress(address);
67
- case ChainType.COSMOS:
68
- return isCosmosAddressValid(chainData.bech32Config.bech32PrefixAccAddr, address);
69
- case ChainType.BTC:
70
- return isBitcoinAddressValid(address);
71
- case ChainType.SOLANA:
72
- return isSolanaAddressValid(address);
73
- case ChainType.SUI:
74
- return isSuiAddressValid(address);
75
- }
76
- };
77
- export const redirectToExtensionsStore = (wallet) => {
78
- const { userAgent } = navigator;
79
- let link;
80
- if (userAgent.indexOf("Firefox") > -1) {
81
- link = walletStoreLinks[wallet.connectorId].firefox;
82
- }
83
- else if (userAgent.indexOf("Chrome") > -1) {
84
- link = walletStoreLinks[wallet.connectorId].chrome;
85
- }
86
- if (link && link !== "") {
87
- window?.open(link, "_blank")?.focus();
88
- }
89
- };
90
- /**
91
- * Dynamically accesses a nested property of an object based on a dot-separated string path.
92
- * Returns the value of the property if found, otherwise undefined.
93
- * e.g. "xfi.keplr" will return window.xfi.keplr
94
- */
95
- export const accessProperty = (object, path) => {
96
- const value = getProperty(object, path);
97
- if (value === undefined) {
98
- console.error(`Property "${path}" not found while reading object`, object);
99
- }
100
- return value;
101
- };
102
- export const getWalletWindowProvider = (window, wallet, chainType) => {
103
- if (wallet.isMultiChain) {
104
- const connector = wallet.supportedNetworks.find((network) => network.chainType === chainType)?.connector;
105
- return connector?.().provider;
106
- }
107
- return wallet.windowFlag
108
- ? accessProperty(window, wallet.windowFlag)
109
- : undefined;
110
- };
111
- const definedInWindow = (path, clientWindow) => {
112
- if (!path || !clientWindow)
113
- return false;
114
- const parts = path.split(".");
115
- let obj = clientWindow;
116
- for (const part of parts) {
117
- if (obj && typeof obj === "object" && part in obj) {
118
- obj = obj[part];
119
- }
120
- else {
121
- return false;
122
- }
123
- }
124
- return Boolean(obj);
125
- };
126
- export const getWallets = (window, wallets) => {
127
- return wallets.map((wallet) => {
128
- if (!wallet.isInstalled) {
129
- return {
130
- ...wallet,
131
- isInstalled() {
132
- return definedInWindow(wallet.windowFlag, window);
133
- },
134
- };
135
- }
136
- return wallet;
137
- });
138
- };
139
- /**
140
- * Get the base chain to connect to
141
- * If only one chain type is selected, use that chain type
142
- * Otherwise, use the wallet's type
143
- * This is mainly used for Cosmos wallets, they need a reference chain to connect to (because addresses are different on each chain)
144
- * @param wallet
145
- * @param chain
146
- * @param selectedChainTypes
147
- * @param findChain
148
- * @returns
149
- */
150
- export const getDefaultChain = (wallet, chain, selectedChainTypes, findChain) => {
151
- // If a chain is provided, use that chain
152
- if (chain)
153
- return chain;
154
- let walletType = wallet.isMultiChain ? undefined : wallet.type;
155
- // If only one chain type is selected, use that chain type
156
- if (selectedChainTypes?.length === 1) {
157
- const chainType = selectedChainTypes[0];
158
- walletType = chainType;
159
- }
160
- if (!walletType)
161
- return undefined;
162
- return findChain(chainTypeToDefaultChainIdMap[walletType]);
163
- };
164
- /**
165
- * Sort order:
166
- * 1. Connected wallets
167
- * 2. Installed wallets
168
- * 3. Priority wallets
169
- * 4. The rest
170
- *
171
- * On mobile, Injected and WalletConnect are always on top,
172
- * after installed wallets.
173
- *
174
- * @returns The sorted wallets
175
- */
176
- export function sortWallets(a, b, { isMobile, connectedWallets, priorityList = [], }) {
177
- // Sort connected wallets first
178
- const aIsConnected = connectedWallets?.some((w) => w.connectorId === a.connectorId);
179
- const bIsConnected = connectedWallets?.some((w) => w.connectorId === b.connectorId);
180
- if (aIsConnected && !bIsConnected)
181
- return -1;
182
- if (!aIsConnected && bIsConnected)
183
- return 1;
184
- // Then sort installed wallets
185
- const aIsInstalled = a.isInstalled?.();
186
- const bIsInstalled = b.isInstalled?.();
187
- if (aIsInstalled && !bIsInstalled)
188
- return -1;
189
- if (!aIsInstalled && bIsInstalled)
190
- return 1;
191
- // Sort by priority list
192
- const aPriorityIndex = priorityList.indexOf(a.connectorId);
193
- const bPriorityIndex = priorityList.indexOf(b.connectorId);
194
- if (aPriorityIndex !== -1 || bPriorityIndex !== -1) {
195
- if (aPriorityIndex === -1)
196
- return 1;
197
- if (bPriorityIndex === -1)
198
- return -1;
199
- return aPriorityIndex - bPriorityIndex;
200
- }
201
- // Mobile-specific sorting
202
- if (isMobile) {
203
- if (a.connectorId === "injected" && b.connectorId !== "injected")
204
- return -1;
205
- if (a.connectorId !== "injected" && b.connectorId === "injected")
206
- return 1;
207
- if (a.connectorId === "walletConnect" && b.connectorId !== "walletConnect")
208
- return -1;
209
- if (a.connectorId !== "walletConnect" && b.connectorId === "walletConnect")
210
- return 1;
211
- }
212
- return 0;
213
- }
214
- export function areSameAddress(address1, address2) {
215
- if (!address1 || !address2)
216
- return false;
217
- return address1.trim().toLowerCase() === address2.trim().toLowerCase();
218
- }
219
- export function sortAddressBook(a, b, selectedAddress) {
220
- if (!selectedAddress)
221
- return 0;
222
- if (areSameAddress(a.address, selectedAddress)) {
223
- return -1;
224
- }
225
- if (areSameAddress(b.address, selectedAddress)) {
226
- return 1;
227
- }
228
- return 0;
229
- }
230
- export const calculateTotalUsdBalanceUSD = (tokens) => {
231
- const totalUsd = tokens.reduce((total, token) => {
232
- const balance = parseFloat(token.balance);
233
- const usdPrice = token.usdPrice ?? 0;
234
- const balanceUsd = balance * usdPrice;
235
- return total + balanceUsd;
236
- }, 0);
237
- // Convert to string with high precision
238
- const preciseTotal = totalUsd.toFixed(18);
239
- // Remove trailing zeros and decimal point if necessary
240
- const trimmedTotal = preciseTotal.replace(/\.?0+$/, "");
241
- return trimmedTotal;
242
- };
243
- export function addTokenToWallet({ token: { address, decimals, symbol, logoURI }, provider, }) {
244
- if (!address || !symbol || !decimals || !logoURI)
245
- return;
246
- try {
247
- return provider.request({
248
- method: "wallet_watchAsset",
249
- params: {
250
- type: "ERC20",
251
- options: {
252
- address,
253
- symbol,
254
- decimals,
255
- image: logoURI,
256
- },
257
- },
258
- });
259
- }
260
- catch (error) {
261
- console.debug("Error adding token to wallet:", error);
262
- }
263
- }
264
- export function isEvmChainNotSupportedError(error) {
265
- return (error instanceof ChainNotConfiguredError ||
266
- error instanceof SwitchChainError);
267
- }
268
- /**
269
- * Find a wallet by wagmi connector
270
- * EIP-6963: https://eips.ethereum.org/EIPS/eip-6963
271
- * Sometimes the ID is set as the RDNS which is the domain name of wallet
272
- * @param wallets
273
- * @param connector
274
- * @returns
275
- */
276
- export const findWalletByWagmiConnector = (wallets, connector) => {
277
- if (!connector)
278
- return undefined;
279
- return wallets.find((w) => w.connectorId.toLowerCase() === connector.id.toLowerCase() ||
280
- w.connectorName.toLowerCase() === connector.name.toLowerCase() ||
281
- w.rdns?.toLowerCase() === connector.id.toLowerCase());
282
- };
283
- /**
284
- * Find a wallet by label (connector ID, name, or RDNS)
285
- * @param wallets
286
- * @param label
287
- * @returns
288
- */
289
- export const findWalletByLabel = (wallets, label) => {
290
- return wallets.find((w) => w.connectorId.toLowerCase() === label.toLowerCase() ||
291
- w.connectorName.toLowerCase() === label.toLowerCase() ||
292
- w.rdns?.toLowerCase() === label.toLowerCase());
293
- };
294
- // Xion has a way to create smart contract accounts (with social logins) these are 63 characters long
295
- // And the particularity is that we can't derive the osmosis fallback address from these because they don't have a way to access funds in other networks
296
- export const isXionSmartContractAddress = (address) => {
297
- return address?.length === 63;
298
- };
299
- export const getWalletSupportedChainTypes = (wallet) => {
300
- if (!wallet.isMultiChain)
301
- return [];
302
- return wallet.supportedNetworks.map((config) => config.chainType);
303
- };
304
- export const getConnectorForChainType = (wallet, chainType) => {
305
- // For cross-chain wallets
306
- if (wallet.isMultiChain) {
307
- const networkConfig = wallet.supportedNetworks.find((config) => config.chainType === chainType);
308
- return networkConfig?.connector;
309
- }
310
- // For single-chain wallets, return the wallet's connector if chain type matches
311
- if (wallet.type === chainType) {
312
- return wallet.connector;
313
- }
314
- return undefined;
315
- };
316
- export function walletSupportsChainType(wallet, chainType) {
317
- if (wallet.isMultiChain) {
318
- return wallet.supportedNetworks.some((network) => network.chainType === chainType);
319
- }
320
- return wallet.type === chainType;
321
- }
322
- const connectByChainType = async (chainType, wallet, defaultChain, params) => {
323
- if (!chainType) {
324
- throw new Error(`Unsupported wallet type: ${chainType}`);
325
- }
326
- // Get connector for chain type if it's a multi-chain wallet
327
- const connector = getConnectorForChainType(wallet, chainType);
328
- switch (chainType) {
329
- case ChainType.EVM:
330
- return connectEvmWallet({ ...wallet, connector }, {
331
- connectEvmAsync: params.connectEvmAsync,
332
- });
333
- case ChainType.COSMOS:
334
- return connectCosmosWallet({ ...wallet, connector }, defaultChain, {
335
- connectCosmos: params.connectCosmos,
336
- cosmosConnectedWallet: params.cosmosConnectedWallet,
337
- });
338
- case ChainType.SOLANA:
339
- return connectSolanaWallet(wallet, {
340
- connectSolana: params.connectSolana,
341
- });
342
- case ChainType.BTC:
343
- return connectBitcoinWallet(wallet);
344
- case ChainType.SUI:
345
- return params.connectSui.mutateAsync({
346
- wallet: {
347
- ...wallet,
348
- connector,
349
- },
350
- });
351
- }
352
- };
353
- const getChainTypesToConnect = (selectedChainTypes, defaultChain, supportedChains) => {
354
- if (selectedChainTypes?.length) {
355
- return selectedChainTypes;
356
- }
357
- if (defaultChain) {
358
- return [defaultChain.chainType];
359
- }
360
- return supportedChains.map((chain) => chain.chainType);
361
- };
362
- const connectMultiChainWallet = async (params) => {
363
- if (!params.wallet.isMultiChain) {
364
- return null;
365
- }
366
- const results = [];
367
- // This should be defined, but in some cases (like widget connection) it's not
368
- const supportedChains = params.wallet.supportedNetworks;
369
- // Depending on params, we need to connect to specific chains or just one
370
- const chainTypesToConnect = getChainTypesToConnect(params.selectedChainTypes, params.selectedChain, supportedChains);
371
- // Connect to each chain type
372
- for (const chainConfig of supportedChains) {
373
- if (!chainTypesToConnect.includes(chainConfig.chainType)) {
374
- continue;
375
- }
376
- const defaultChain = getDefaultChain(params.wallet, params.selectedChain, [chainConfig.chainType], params.findChain);
377
- try {
378
- const result = await connectByChainType(chainConfig.chainType, params.wallet, defaultChain, {
379
- connectEvmAsync: params.connectEvmAsync,
380
- connectCosmos: params.connectCosmos,
381
- cosmosConnectedWallet: params.cosmosConnectedWallet,
382
- connectSolana: params.connectSolana,
383
- connectSui: params.connectSui,
384
- });
385
- if (result) {
386
- results.push({
387
- chainType: chainConfig.chainType,
388
- data: result,
389
- });
390
- }
391
- }
392
- catch (error) {
393
- console.error(`Failed to connect ${chainConfig.chainType}:`, error);
394
- }
395
- }
396
- return results.length > 0
397
- ? {
398
- wallet: params.wallet,
399
- addresses: results,
400
- }
401
- : null;
402
- };
403
- const connectSingleChainWallet = async (params) => {
404
- if (params.wallet.isMultiChain) {
405
- return null;
406
- }
407
- const defaultChain = params.selectedChain;
408
- const result = await connectByChainType(params.wallet.type, params.wallet, defaultChain, {
409
- connectEvmAsync: params.connectEvmAsync,
410
- connectCosmos: params.connectCosmos,
411
- cosmosConnectedWallet: params.cosmosConnectedWallet,
412
- connectSolana: params.connectSolana,
413
- connectSui: params.connectSui,
414
- });
415
- return result
416
- ? {
417
- wallet: params.wallet,
418
- addresses: [
419
- {
420
- chainType: params.wallet.type,
421
- data: result,
422
- },
423
- ],
424
- }
425
- : null;
426
- };
427
- export const connectWallet = async (params) => {
428
- try {
429
- const result = params.wallet.isMultiChain
430
- ? await connectMultiChainWallet(params)
431
- : await connectSingleChainWallet(params);
432
- if (result) {
433
- // Dispatch wallet connect event for each connected address
434
- result.addresses.forEach(({ chainType, data }) => {
435
- WidgetEvents.getInstance().dispatchWalletConnect({
436
- walletAddress: data.address,
437
- chainType: chainType,
438
- provider: params.wallet.connectorId,
439
- });
440
- });
441
- }
442
- return result;
443
- }
444
- catch (error) {
445
- // Dispatch wallet reject event
446
- if (params.selectedChain) {
447
- WidgetEvents.getInstance().dispatchWalletReject({
448
- chainId: params.selectedChain.chainId,
449
- provider: params.wallet.name,
450
- reason: error instanceof Error ? error.message : "Unknown error",
451
- });
452
- }
453
- throw error;
454
- }
455
- };
456
- // Issues with Rabby wallet on some chains
457
- // we need to wait some time before getting transaction receipt
458
- // https://github.com/ethers-io/ethers.js/issues/4760
459
- export const isProblematicConnector = (connector) => {
460
- return (connector?.id != null &&
461
- // TODO: inconsistent connector ID behavior, investigate and debug Wagmi
462
- ["rabby", "io.rabby"].includes(connector.id));
463
- };
464
- //# sourceMappingURL=walletService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"walletService.js","sourceRoot":"","sources":["../../../src/services/internal/walletService.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import axios from "axios";
2
- import { is404Error } from "../services";
3
- describe("apiService", () => {
4
- describe("is404Error", () => {
5
- it("returns true if error is axios error & status 404", () => {
6
- const mockError = {
7
- isAxiosError: true,
8
- response: {
9
- status: 404,
10
- },
11
- };
12
- expect(is404Error(mockError)).toBe(true);
13
- });
14
- it("returns false if error is not an axios error", () => {
15
- const nonAxiosError = new Error("Regular error");
16
- expect(is404Error(nonAxiosError)).toBe(false);
17
- });
18
- it("returns false if error is axios error but not 404", () => {
19
- const mockError = {
20
- isAxiosError: true,
21
- response: {
22
- status: 500,
23
- },
24
- };
25
- expect(is404Error(mockError)).toBe(false);
26
- });
27
- it("returns true for a real 404 error", async () => {
28
- try {
29
- // real url that gives a 404
30
- await axios.get("https://httpstat.us/404");
31
- // If the request doesn't throw, fail the test
32
- expect(true).toBe(false);
33
- }
34
- catch (error) {
35
- expect(is404Error(error)).toBe(true);
36
- }
37
- });
38
- });
39
- });
40
- //# sourceMappingURL=apiService.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiService.test.js","sourceRoot":"","sources":["../../src/tests/apiService.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,SAAS,GAAG;gBAChB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE;oBACR,MAAM,EAAE,GAAG;iBACZ;aACF,CAAC;YAEF,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YAEjD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,SAAS,GAAG;gBAChB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE;oBACR,MAAM,EAAE,GAAG;iBACZ;aACF,CAAC;YAEF,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,IAAI;gBACF,4BAA4B;gBAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBAC3C,8CAA8C;gBAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}