@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,165 +0,0 @@
1
- import { ActionType, BridgeProvider, BridgeType, WrapperType, } from "@0xsquid/squid-types";
2
- import { chainflipMultihopBridgeType, getBridgeType } from "../services";
3
- describe("transactionStatusService", () => {
4
- describe("getBridgeType", () => {
5
- it("should return the correct bridge type for a Coral route", () => {
6
- expect(getBridgeType([
7
- {
8
- type: ActionType.RFQ,
9
- data: {
10
- type: BridgeType.RFQ,
11
- },
12
- },
13
- ])).toBe(BridgeType.RFQ);
14
- });
15
- it("should return the correct bridge type for a Noble CCTP route", () => {
16
- expect(getBridgeType([
17
- {
18
- type: ActionType.BRIDGE,
19
- data: {
20
- type: BridgeType.NOBLE_CCTP,
21
- },
22
- },
23
- ])).toBe(BridgeType.NOBLE_CCTP);
24
- });
25
- it("should return the correct bridge type for a Chainflip route", () => {
26
- expect(getBridgeType([
27
- {
28
- type: ActionType.BRIDGE,
29
- data: {
30
- type: BridgeType.CHAINFLIP,
31
- },
32
- },
33
- ])).toBe(BridgeType.CHAINFLIP);
34
- });
35
- it("should return the correct bridge type for a Chainflip multihop route with Chainflip on source", () => {
36
- // BTC -> Arbitrum -> Base
37
- const chainflipMultihopBitcoinActions = [
38
- {
39
- type: ActionType.BRIDGE,
40
- data: {
41
- provider: BridgeProvider.CHAINFLIP,
42
- type: BridgeType.CHAINFLIP,
43
- },
44
- },
45
- {
46
- type: ActionType.WRAP,
47
- data: {
48
- type: WrapperType.WRAPPED_NATIVE,
49
- },
50
- },
51
- {
52
- type: ActionType.WRAP,
53
- data: {},
54
- },
55
- {
56
- type: ActionType.WRAP,
57
- data: {},
58
- },
59
- {
60
- type: ActionType.BRIDGE,
61
- data: {
62
- provider: BridgeProvider.AXELAR,
63
- type: BridgeType.AXELAR_GMP,
64
- },
65
- },
66
- {
67
- type: ActionType.WRAP,
68
- data: {},
69
- },
70
- ];
71
- expect(getBridgeType(chainflipMultihopBitcoinActions)).toEqual(chainflipMultihopBridgeType);
72
- // SOL -> Arbitrum -> Base
73
- const chainflipMultihopSolanaActions = [
74
- {
75
- type: ActionType.BRIDGE,
76
- data: {
77
- type: BridgeType.CHAINFLIP,
78
- provider: BridgeProvider.CHAINFLIP,
79
- },
80
- },
81
- {
82
- type: ActionType.WRAP,
83
- data: {
84
- type: WrapperType.WRAPPED_NATIVE,
85
- },
86
- },
87
- {
88
- type: ActionType.SWAP,
89
- data: {},
90
- },
91
- {
92
- type: ActionType.SWAP,
93
- data: {},
94
- },
95
- {
96
- type: ActionType.BRIDGE,
97
- data: {
98
- type: BridgeType.AXELAR_GMP,
99
- provider: BridgeProvider.AXELAR,
100
- },
101
- },
102
- {
103
- type: ActionType.SWAP,
104
- data: {},
105
- },
106
- ];
107
- expect(getBridgeType(chainflipMultihopSolanaActions)).toEqual(chainflipMultihopBridgeType);
108
- });
109
- it("should return the correct bridge type for a Chainflip multihop route with Chainflip on destination", () => {
110
- // Base -> Arbitrum -> BTC
111
- const chainflipMultihopBitcoinActions = [
112
- {
113
- type: ActionType.SWAP,
114
- data: {},
115
- },
116
- {
117
- type: ActionType.BRIDGE,
118
- data: {
119
- type: BridgeType.AXELAR_GMP,
120
- provider: BridgeProvider.AXELAR,
121
- },
122
- },
123
- {
124
- type: ActionType.SWAP,
125
- data: {},
126
- },
127
- {
128
- type: ActionType.BRIDGE,
129
- data: {
130
- type: BridgeType.CHAINFLIP,
131
- provider: BridgeProvider.CHAINFLIP,
132
- },
133
- },
134
- ];
135
- expect(getBridgeType(chainflipMultihopBitcoinActions)).toBe(chainflipMultihopBridgeType);
136
- // Base -> Arbitrum -> SOL
137
- const chainflipMultihopSolanaActions = [
138
- {
139
- type: ActionType.SWAP,
140
- data: {},
141
- },
142
- {
143
- type: ActionType.BRIDGE,
144
- data: {
145
- type: BridgeType.AXELAR_GMP,
146
- provider: BridgeProvider.AXELAR,
147
- },
148
- },
149
- {
150
- type: ActionType.SWAP,
151
- data: {},
152
- },
153
- {
154
- type: ActionType.BRIDGE,
155
- data: {
156
- type: BridgeType.CHAINFLIP,
157
- provider: BridgeProvider.CHAINFLIP,
158
- },
159
- },
160
- ];
161
- expect(getBridgeType(chainflipMultihopSolanaActions)).toEqual(chainflipMultihopBridgeType);
162
- });
163
- });
164
- });
165
- //# sourceMappingURL=transactionStatusService.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionStatusService.test.js","sourceRoot":"","sources":["../../src/tests/transactionStatusService.test.ts"],"names":[],"mappings":"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"}
@@ -1,264 +0,0 @@
1
- import { ChainType } from "@0xsquid/squid-types";
2
- import { jest } from "@jest/globals";
3
- import { accessProperty, calculateTotalUsdBalanceUSD, formatHash, isWalletAddressValid, sortWallets, } from "../services/internal/walletService";
4
- import { fetchSquidData } from "./fetchSquidData";
5
- let squid = undefined;
6
- let CHAINS = {};
7
- describe("walletService", () => {
8
- beforeAll(async () => {
9
- squid = await fetchSquidData();
10
- CHAINS = squid?.chains;
11
- });
12
- describe("isWalletAddressValid", () => {
13
- test("returns true when address is a valid EVM address for an EVM chain", () => {
14
- expect(isWalletAddressValid(CHAINS.BASE, "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664")).toBe(true);
15
- expect(isWalletAddressValid(CHAINS.BINANCE, "0x6f1c3f578ef3f0d2cf9b1ec712d9654f143ea4d1")).toBe(true);
16
- expect(isWalletAddressValid(CHAINS.POLYGON, "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d")).toBe(true);
17
- });
18
- test("returns false when address is not a valid EVM address for an EVM chain", () => {
19
- expect(isWalletAddressValid(CHAINS.BASE, "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C66" // missing last character
20
- )).toBe(false);
21
- expect(isWalletAddressValid(CHAINS.BINANCE, "e43f1c3f578ef3f0d2cf9b1ec712d9654f143ea4d1" // missing 0x prefix
22
- )).toBe(false);
23
- expect(isWalletAddressValid(CHAINS.POLYGON, "cosmos1w3jhx7w3jhx7w3jhx7w3jhx7w3jhx7w3jhx7w3j" // cosmos address
24
- )).toBe(false);
25
- });
26
- test("returns true when address is a valid Cosmos address for a Cosmos chain", () => {
27
- expect(isWalletAddressValid(CHAINS.NOBLE, "noble1awrua7e2kj69d7vn5qt5tccrhavmj9xa6up0eq")).toBe(true);
28
- expect(isWalletAddressValid(CHAINS.NOBLE, "noble1qe8uuf5x69c526h4nzxwv4ltftr73v7qgk33qz")).toBe(true);
29
- expect(isWalletAddressValid(CHAINS.NOBLE, "noble1zttnm2cl60m5ffsrfeqtzkmtvepl4hwnsqg9fd")).toBe(true);
30
- });
31
- test("returns false when address is not a valid Cosmos address for a Cosmos chain", () => {
32
- expect(isWalletAddressValid(CHAINS.NOBLE, "noble1qe8uuf5x69c526h4nzxwv4ltftr73v7qgk33" // missing last character
33
- )).toBe(false);
34
- expect(isWalletAddressValid(CHAINS.NOBLE, "1qe8uuf5x69c526h4nzxwv4ltftr73v7qgk33q" // missing chain prefix
35
- )).toBe(false);
36
- expect(isWalletAddressValid(CHAINS.NOBLE, "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664" // EVM address
37
- )).toBe(false);
38
- });
39
- });
40
- describe("formatHash", () => {
41
- test("formats EVM addresses correctly", () => {
42
- expect(formatHash({
43
- hash: "0x6f1c3f578ef3f0d2cf9b1ec712d9654f143ea4d1",
44
- chainType: ChainType.EVM,
45
- })).toBe("0x6f1c...a4d1");
46
- expect(formatHash({
47
- hash: "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
48
- chainType: ChainType.EVM,
49
- })).toBe("0xbc4c...f13d");
50
- expect(formatHash({
51
- hash: "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",
52
- chainType: ChainType.EVM,
53
- })).toBe("0xA7D7...C664");
54
- expect(formatHash({ hash: "0x123456789", chainType: ChainType.EVM })).toBe("0x1234...6789");
55
- });
56
- test("formats Cosmos addresses correctly", () => {
57
- expect(formatHash({
58
- hash: "osmo14lzvt4gdwh2q4ymyjqma0p4j4aykpn929zx75y",
59
- chainType: ChainType.COSMOS,
60
- })).toBe("osmo14lz...x75y");
61
- expect(formatHash({
62
- hash: "neutron1clpqr4nrk4khgkxj78fcwwh6dl3uw4ep35p7l8",
63
- chainType: ChainType.COSMOS,
64
- })).toBe("neutron1...p7l8");
65
- expect(formatHash({
66
- hash: "inj1lsuqpgm8kgwpq96ewyew26xnfwyn3lh3y7knzj",
67
- chainType: ChainType.COSMOS,
68
- })).toBe("inj1lsuq...knzj");
69
- expect(formatHash({ hash: "neutron123456", chainType: ChainType.COSMOS })).toBe("neutron1...3456");
70
- });
71
- test("returns empty string when params are missing", () => {
72
- expect(formatHash({ hash: undefined })).toBe("");
73
- expect(formatHash({ hash: "" })).toBe("");
74
- expect(formatHash({ chainType: ChainType.EVM })).toBe("");
75
- expect(formatHash({ chainType: ChainType.COSMOS })).toBe("");
76
- });
77
- test("returns the same hash when its length is less than the trim length", () => {
78
- expect(formatHash({ hash: "0x123", chainType: ChainType.EVM })).toBe("0x123");
79
- expect(formatHash({ hash: "0", chainType: ChainType.EVM })).toBe("0");
80
- expect(formatHash({ hash: "0x12345678", chainType: ChainType.EVM })).toBe("0x12345678");
81
- expect(formatHash({ hash: "osmo123", chainType: ChainType.COSMOS })).toBe("osmo123");
82
- expect(formatHash({ hash: "inj1", chainType: ChainType.COSMOS })).toBe("inj1");
83
- expect(formatHash({ hash: "neutron12345", chainType: ChainType.COSMOS })).toBe("neutron12345");
84
- });
85
- test("returns right hash format without chainType", () => {
86
- expect(formatHash({ hash: "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664" })).toBe("0xA7D7...C664");
87
- expect(formatHash({ hash: "osmo14lzvt4gdwh2q4ymyjqma0p4j4aykpn929zx75y" })).toBe("osmo14lz...x75y");
88
- });
89
- });
90
- describe("calculateTotalUsdBalanceUSD", () => {
91
- test("returns the correct total balance ", () => {
92
- expect(calculateTotalUsdBalanceUSD([
93
- {
94
- balance: "100",
95
- usdPrice: 1,
96
- },
97
- {
98
- balance: "100",
99
- usdPrice: 2,
100
- },
101
- ])).toBe("300");
102
- });
103
- test("returns the correct total balance with 0 balances ", () => {
104
- expect(calculateTotalUsdBalanceUSD([
105
- {
106
- balance: "0",
107
- usdPrice: 1,
108
- },
109
- {
110
- balance: "0",
111
- usdPrice: 2,
112
- },
113
- ])).toBe("0");
114
- });
115
- test("returns the correct total balance without tokens ", () => {
116
- expect(calculateTotalUsdBalanceUSD([])).toBe("0");
117
- });
118
- test("returns the correct total balance with undefined prices ", () => {
119
- expect(calculateTotalUsdBalanceUSD([
120
- {
121
- balance: "100",
122
- usdPrice: undefined,
123
- },
124
- {
125
- balance: "0",
126
- usdPrice: 2,
127
- },
128
- ])).toBe("0");
129
- });
130
- test("returns the correct total balance with decimal balances & usd ", () => {
131
- expect(calculateTotalUsdBalanceUSD([
132
- {
133
- balance: "1000000",
134
- usdPrice: 5000000000,
135
- },
136
- ])).toBe("5000000000000000");
137
- expect(calculateTotalUsdBalanceUSD([
138
- {
139
- balance: "0.5",
140
- usdPrice: 0.00001,
141
- },
142
- ])).toBe("0.000005");
143
- expect(calculateTotalUsdBalanceUSD([
144
- {
145
- balance: "1000000000000000000",
146
- usdPrice: 0.00000000000005,
147
- },
148
- ])).toBe("50000");
149
- expect(calculateTotalUsdBalanceUSD([
150
- {
151
- balance: "123456789",
152
- usdPrice: 0.000000000005120966,
153
- },
154
- ])).toBe("0.000632218018938174");
155
- expect(calculateTotalUsdBalanceUSD([
156
- {
157
- balance: "1234",
158
- usdPrice: 0.000000000005120966,
159
- },
160
- ])).toBe("0.000000006319272044");
161
- });
162
- });
163
- describe("sortWallets", () => {
164
- beforeEach(() => {
165
- jest.resetAllMocks();
166
- });
167
- const metamask = {
168
- connectorId: "metaMaskSDK",
169
- isInstalled: jest.fn(() => false),
170
- };
171
- const walletConnect = {
172
- connectorId: "walletConnect",
173
- isInstalled: jest.fn(() => false),
174
- };
175
- const coinbaseWallet = {
176
- connectorId: "coinbaseWalletSDK",
177
- isInstalled: jest.fn(() => false),
178
- };
179
- const trustWallet = {
180
- connectorId: "trustwallet",
181
- isInstalled: jest.fn(() => false),
182
- };
183
- const exodus = {
184
- connectorId: "exodus",
185
- isInstalled: jest.fn(() => false),
186
- };
187
- const injectedWallet = {
188
- connectorId: "injected",
189
- isInstalled: jest.fn(() => false),
190
- };
191
- it("sorts connected wallets first", () => {
192
- const connectedWallets = [metamask];
193
- expect([walletConnect, metamask].sort((a, b) => sortWallets(a, b, { isMobile: false, connectedWallets }))).toEqual([metamask, walletConnect]);
194
- });
195
- it("sorts installed wallets after connected wallets", () => {
196
- const connectedWallets = [walletConnect];
197
- exodus.isInstalled.mockReturnValue(true);
198
- expect([trustWallet, walletConnect, coinbaseWallet, exodus].sort((a, b) => sortWallets(a, b, { isMobile: false, connectedWallets }))).toEqual([walletConnect, exodus, trustWallet, coinbaseWallet]);
199
- });
200
- it("sorts multiple connected wallets and multiple installed wallets", () => {
201
- const connectedWallets = [walletConnect, coinbaseWallet];
202
- metamask.isInstalled.mockReturnValue(true);
203
- exodus.isInstalled.mockReturnValue(true);
204
- expect([trustWallet, metamask, walletConnect, exodus, coinbaseWallet].sort((a, b) => sortWallets(a, b, { isMobile: false, connectedWallets }))).toEqual([walletConnect, coinbaseWallet, metamask, exodus, trustWallet]);
205
- });
206
- it("sorts based on the priority list", () => {
207
- expect([metamask, coinbaseWallet, trustWallet, exodus].sort((a, b) => sortWallets(a, b, {
208
- isMobile: false,
209
- connectedWallets: [],
210
- priorityList: [coinbaseWallet.connectorId, exodus.connectorId],
211
- }))).toEqual([coinbaseWallet, exodus, metamask, trustWallet]);
212
- });
213
- it("applies mobile-specific sorting for injected and walletConnect", () => {
214
- expect([injectedWallet, trustWallet, walletConnect, metamask].sort((a, b) => sortWallets(a, b, {
215
- isMobile: true,
216
- connectedWallets: [metamask],
217
- }))).toEqual([metamask, injectedWallet, walletConnect, trustWallet]);
218
- });
219
- it("sorts connected, installed, and priority wallets correctly", () => {
220
- const connectedWallets = [metamask];
221
- trustWallet.isInstalled.mockReturnValue(true);
222
- expect([trustWallet, coinbaseWallet, exodus, metamask].sort((a, b) => sortWallets(a, b, {
223
- isMobile: false,
224
- connectedWallets,
225
- priorityList: [trustWallet.connectorId],
226
- }))).toEqual([metamask, trustWallet, coinbaseWallet, exodus]);
227
- });
228
- it("returns 0 for wallets that are equally ranked", () => {
229
- const result = sortWallets(walletConnect, metamask, {
230
- isMobile: false,
231
- connectedWallets: [],
232
- });
233
- expect(result).toBe(0);
234
- });
235
- });
236
- describe("accessProperty", () => {
237
- it("returns nested object values correctly", () => {
238
- const testObj = {
239
- a: {
240
- b: {
241
- c: "value",
242
- },
243
- },
244
- x: {
245
- y: 123,
246
- },
247
- };
248
- expect(accessProperty(testObj, "a.b.c")).toBe("value");
249
- expect(accessProperty(testObj, "x.y")).toBe(123);
250
- });
251
- it("handles empty or invalid inputs", () => {
252
- expect(accessProperty({}, "a.b.c")).toBeUndefined();
253
- expect(accessProperty(null, "a.b.c")).toBeUndefined();
254
- });
255
- it("works with array indices", () => {
256
- const testObj = {
257
- users: [{ name: "John" }, { name: "Jane" }],
258
- };
259
- expect(accessProperty(testObj, "users[0].name")).toBe("John");
260
- expect(accessProperty(testObj, "users[1].name")).toBe("Jane");
261
- });
262
- });
263
- });
264
- //# sourceMappingURL=walletService.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"walletService.test.js","sourceRoot":"","sources":["../../src/tests/walletService.test.ts"],"names":[],"mappings":"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"}