@0xsquid/react-hooks 7.8.0 → 8.0.0-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 (347) hide show
  1. package/dist/index-B3FG6tRj.js +6021 -0
  2. package/dist/index-B3FG6tRj.js.map +1 -0
  3. package/dist/index-CeIwio11.js +41015 -0
  4. package/dist/index-CeIwio11.js.map +1 -0
  5. package/dist/index-CjYMwYuT.js +41267 -0
  6. package/dist/index-CjYMwYuT.js.map +1 -0
  7. package/dist/index-CoxuUJzG.js +6021 -0
  8. package/dist/index-CoxuUJzG.js.map +1 -0
  9. package/dist/index.esm.js +36 -0
  10. package/dist/index.esm.js.map +1 -0
  11. package/dist/index.js +292 -6
  12. package/dist/index.js.map +1 -1
  13. package/dist/secretService-C6ack504.js +168 -0
  14. package/dist/secretService-C6ack504.js.map +1 -0
  15. package/dist/{services/external/secretService.js → secretService-CgLleYSR.js} +43 -8
  16. package/dist/secretService-CgLleYSR.js.map +1 -0
  17. package/package.json +18 -4
  18. package/dist/core/abis/ics20.json +0 -128
  19. package/dist/core/client/index.js +0 -38
  20. package/dist/core/client/index.js.map +0 -1
  21. package/dist/core/connectors/bitcoin/errors/index.js +0 -22
  22. package/dist/core/connectors/bitcoin/errors/index.js.map +0 -1
  23. package/dist/core/connectors/bitcoin/helpers.js +0 -91
  24. package/dist/core/connectors/bitcoin/helpers.js.map +0 -1
  25. package/dist/core/connectors/bitcoin/index.js +0 -2
  26. package/dist/core/connectors/bitcoin/index.js.map +0 -1
  27. package/dist/core/connectors/bitcoin/wallets/index.js +0 -4
  28. package/dist/core/connectors/bitcoin/wallets/index.js.map +0 -1
  29. package/dist/core/connectors/bitcoin/wallets/keplr.js +0 -28
  30. package/dist/core/connectors/bitcoin/wallets/keplr.js.map +0 -1
  31. package/dist/core/connectors/bitcoin/wallets/phantom.js +0 -56
  32. package/dist/core/connectors/bitcoin/wallets/phantom.js.map +0 -1
  33. package/dist/core/connectors/bitcoin/wallets/unisat.js +0 -28
  34. package/dist/core/connectors/bitcoin/wallets/unisat.js.map +0 -1
  35. package/dist/core/connectors/xrpl/CrossMark.js +0 -76
  36. package/dist/core/connectors/xrpl/CrossMark.js.map +0 -1
  37. package/dist/core/connectors/xrpl/WalletConnect.js +0 -194
  38. package/dist/core/connectors/xrpl/WalletConnect.js.map +0 -1
  39. package/dist/core/connectors/xrpl/Xaman.js +0 -71
  40. package/dist/core/connectors/xrpl/Xaman.js.map +0 -1
  41. package/dist/core/connectors/xrpl/XamanQr.js +0 -95
  42. package/dist/core/connectors/xrpl/XamanQr.js.map +0 -1
  43. package/dist/core/connectors/xrpl/XrplMetamaskSnap.js +0 -176
  44. package/dist/core/connectors/xrpl/XrplMetamaskSnap.js.map +0 -1
  45. package/dist/core/constants.js +0 -157
  46. package/dist/core/constants.js.map +0 -1
  47. package/dist/core/externalLinks.js +0 -21
  48. package/dist/core/externalLinks.js.map +0 -1
  49. package/dist/core/index.js +0 -4
  50. package/dist/core/index.js.map +0 -1
  51. package/dist/core/multicall3.js +0 -462
  52. package/dist/core/multicall3.js.map +0 -1
  53. package/dist/core/providers/BitcoinProvider.js +0 -15
  54. package/dist/core/providers/BitcoinProvider.js.map +0 -1
  55. package/dist/core/providers/CosmosProvider.js +0 -13
  56. package/dist/core/providers/CosmosProvider.js.map +0 -1
  57. package/dist/core/providers/EvmProvider.js +0 -15
  58. package/dist/core/providers/EvmProvider.js.map +0 -1
  59. package/dist/core/providers/SolanaProvider.js +0 -15
  60. package/dist/core/providers/SolanaProvider.js.map +0 -1
  61. package/dist/core/providers/SuiProvider.js +0 -15
  62. package/dist/core/providers/SuiProvider.js.map +0 -1
  63. package/dist/core/providers/XrplProvider.js +0 -15
  64. package/dist/core/providers/XrplProvider.js.map +0 -1
  65. package/dist/core/queries/queries-keys.js +0 -232
  66. package/dist/core/queries/queries-keys.js.map +0 -1
  67. package/dist/core/queries/react-query-config.js +0 -11
  68. package/dist/core/queries/react-query-config.js.map +0 -1
  69. package/dist/core/types/bitcoin.js +0 -2
  70. package/dist/core/types/bitcoin.js.map +0 -1
  71. package/dist/core/types/config.js +0 -2
  72. package/dist/core/types/config.js.map +0 -1
  73. package/dist/core/types/error.js +0 -18
  74. package/dist/core/types/error.js.map +0 -1
  75. package/dist/core/types/event.js +0 -2
  76. package/dist/core/types/event.js.map +0 -1
  77. package/dist/core/types/evm.js +0 -2
  78. package/dist/core/types/evm.js.map +0 -1
  79. package/dist/core/types/history.js +0 -7
  80. package/dist/core/types/history.js.map +0 -1
  81. package/dist/core/types/index.js +0 -4
  82. package/dist/core/types/index.js.map +0 -1
  83. package/dist/core/types/onramps/index.js +0 -3
  84. package/dist/core/types/onramps/index.js.map +0 -1
  85. package/dist/core/types/onramps/onramp.js +0 -2
  86. package/dist/core/types/onramps/onramp.js.map +0 -1
  87. package/dist/core/types/onramps/revolut.js +0 -2
  88. package/dist/core/types/onramps/revolut.js.map +0 -1
  89. package/dist/core/types/rpc.js +0 -2
  90. package/dist/core/types/rpc.js.map +0 -1
  91. package/dist/core/types/solana.js +0 -2
  92. package/dist/core/types/solana.js.map +0 -1
  93. package/dist/core/types/sui.js +0 -2
  94. package/dist/core/types/sui.js.map +0 -1
  95. package/dist/core/types/swap.js +0 -2
  96. package/dist/core/types/swap.js.map +0 -1
  97. package/dist/core/types/tokens.js +0 -2
  98. package/dist/core/types/tokens.js.map +0 -1
  99. package/dist/core/types/transaction.js +0 -47
  100. package/dist/core/types/transaction.js.map +0 -1
  101. package/dist/core/types/wallet.js +0 -19
  102. package/dist/core/types/wallet.js.map +0 -1
  103. package/dist/core/types/xrpl.js +0 -32
  104. package/dist/core/types/xrpl.js.map +0 -1
  105. package/dist/core/wagmiConfig.js +0 -81
  106. package/dist/core/wagmiConfig.js.map +0 -1
  107. package/dist/core/wallets.js +0 -357
  108. package/dist/core/wallets.js.map +0 -1
  109. package/dist/hooks/analytics/useTrackSearchEmpty.js +0 -22
  110. package/dist/hooks/analytics/useTrackSearchEmpty.js.map +0 -1
  111. package/dist/hooks/bitcoin/useBitcoin.js +0 -18
  112. package/dist/hooks/bitcoin/useBitcoin.js.map +0 -1
  113. package/dist/hooks/chains/useSquidChains.js +0 -96
  114. package/dist/hooks/chains/useSquidChains.js.map +0 -1
  115. package/dist/hooks/client/useClient.js +0 -63
  116. package/dist/hooks/client/useClient.js.map +0 -1
  117. package/dist/hooks/cosmos/useCosmos.js +0 -167
  118. package/dist/hooks/cosmos/useCosmos.js.map +0 -1
  119. package/dist/hooks/cosmos/useCosmosForChain.js +0 -29
  120. package/dist/hooks/cosmos/useCosmosForChain.js.map +0 -1
  121. package/dist/hooks/evm/useEvm.js +0 -68
  122. package/dist/hooks/evm/useEvm.js.map +0 -1
  123. package/dist/hooks/evm/useEvmWallets.js +0 -13
  124. package/dist/hooks/evm/useEvmWallets.js.map +0 -1
  125. package/dist/hooks/index.js +0 -54
  126. package/dist/hooks/index.js.map +0 -1
  127. package/dist/hooks/navigation/useKeyboardNavigation.js +0 -67
  128. package/dist/hooks/navigation/useKeyboardNavigation.js.map +0 -1
  129. package/dist/hooks/onramp/useFiatToCrypto.js +0 -298
  130. package/dist/hooks/onramp/useFiatToCrypto.js.map +0 -1
  131. package/dist/hooks/query/useSquidQueryClient.js +0 -23
  132. package/dist/hooks/query/useSquidQueryClient.js.map +0 -1
  133. package/dist/hooks/solana/useSolana.js +0 -81
  134. package/dist/hooks/solana/useSolana.js.map +0 -1
  135. package/dist/hooks/solana/useSolanaWallets.js +0 -8
  136. package/dist/hooks/solana/useSolanaWallets.js.map +0 -1
  137. package/dist/hooks/squid/useSquid.js +0 -55
  138. package/dist/hooks/squid/useSquid.js.map +0 -1
  139. package/dist/hooks/store/useAddressBookStore.js +0 -30
  140. package/dist/hooks/store/useAddressBookStore.js.map +0 -1
  141. package/dist/hooks/store/useAssetsColorsStore.js +0 -7
  142. package/dist/hooks/store/useAssetsColorsStore.js.map +0 -1
  143. package/dist/hooks/store/useDepositAddressStore.js +0 -12
  144. package/dist/hooks/store/useDepositAddressStore.js.map +0 -1
  145. package/dist/hooks/store/useFavoriteTokensStore.js +0 -28
  146. package/dist/hooks/store/useFavoriteTokensStore.js.map +0 -1
  147. package/dist/hooks/store/useHistoryStore.js +0 -129
  148. package/dist/hooks/store/useHistoryStore.js.map +0 -1
  149. package/dist/hooks/store/useSendTransactionStore.js +0 -21
  150. package/dist/hooks/store/useSendTransactionStore.js.map +0 -1
  151. package/dist/hooks/store/useSquidStore.js +0 -54
  152. package/dist/hooks/store/useSquidStore.js.map +0 -1
  153. package/dist/hooks/store/useWalletStore.js +0 -61
  154. package/dist/hooks/store/useWalletStore.js.map +0 -1
  155. package/dist/hooks/sui/useSui.js +0 -81
  156. package/dist/hooks/sui/useSui.js.map +0 -1
  157. package/dist/hooks/sui/useSuiWallets.js +0 -23
  158. package/dist/hooks/sui/useSuiWallets.js.map +0 -1
  159. package/dist/hooks/swap/useDepositAddress.js +0 -63
  160. package/dist/hooks/swap/useDepositAddress.js.map +0 -1
  161. package/dist/hooks/swap/useSwap.js +0 -228
  162. package/dist/hooks/swap/useSwap.js.map +0 -1
  163. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +0 -114
  164. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +0 -1
  165. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +0 -130
  166. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +0 -1
  167. package/dist/hooks/tokens/useBalance.js +0 -157
  168. package/dist/hooks/tokens/useBalance.js.map +0 -1
  169. package/dist/hooks/tokens/useMultiChainBalance.js +0 -77
  170. package/dist/hooks/tokens/useMultiChainBalance.js.map +0 -1
  171. package/dist/hooks/tokens/useMultipleTokenPrices.js +0 -46
  172. package/dist/hooks/tokens/useMultipleTokenPrices.js.map +0 -1
  173. package/dist/hooks/tokens/useNativeBalance.js +0 -249
  174. package/dist/hooks/tokens/useNativeBalance.js.map +0 -1
  175. package/dist/hooks/tokens/useNativeTokenForChain.js +0 -30
  176. package/dist/hooks/tokens/useNativeTokenForChain.js.map +0 -1
  177. package/dist/hooks/tokens/useSingleTokenPrice.js +0 -38
  178. package/dist/hooks/tokens/useSingleTokenPrice.js.map +0 -1
  179. package/dist/hooks/tokens/useSquidTokens.js +0 -75
  180. package/dist/hooks/tokens/useSquidTokens.js.map +0 -1
  181. package/dist/hooks/tokens/useTokenHistoricalData.js +0 -23
  182. package/dist/hooks/tokens/useTokenHistoricalData.js.map +0 -1
  183. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js +0 -58
  184. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js.map +0 -1
  185. package/dist/hooks/transaction/send/useSendTransaction.js +0 -245
  186. package/dist/hooks/transaction/send/useSendTransaction.js.map +0 -1
  187. package/dist/hooks/transaction/send/useSendTransactionGas.js +0 -73
  188. package/dist/hooks/transaction/send/useSendTransactionGas.js.map +0 -1
  189. package/dist/hooks/transaction/useAllTransactionsStatus.js +0 -127
  190. package/dist/hooks/transaction/useAllTransactionsStatus.js.map +0 -1
  191. package/dist/hooks/transaction/useApproval.js +0 -246
  192. package/dist/hooks/transaction/useApproval.js.map +0 -1
  193. package/dist/hooks/transaction/useErc20Allowance.js +0 -43
  194. package/dist/hooks/transaction/useErc20Allowance.js.map +0 -1
  195. package/dist/hooks/transaction/useEstimate.js +0 -115
  196. package/dist/hooks/transaction/useEstimate.js.map +0 -1
  197. package/dist/hooks/transaction/useEstimatePriceImpact.js +0 -31
  198. package/dist/hooks/transaction/useEstimatePriceImpact.js.map +0 -1
  199. package/dist/hooks/transaction/useExecuteTransaction.js +0 -678
  200. package/dist/hooks/transaction/useExecuteTransaction.js.map +0 -1
  201. package/dist/hooks/transaction/useGetRoute.js +0 -207
  202. package/dist/hooks/transaction/useGetRoute.js.map +0 -1
  203. package/dist/hooks/transaction/useIcs20Allowance.js +0 -46
  204. package/dist/hooks/transaction/useIcs20Allowance.js.map +0 -1
  205. package/dist/hooks/transaction/useRouteWarnings.js +0 -19
  206. package/dist/hooks/transaction/useRouteWarnings.js.map +0 -1
  207. package/dist/hooks/transaction/useSendTransactionStatus.js +0 -63
  208. package/dist/hooks/transaction/useSendTransactionStatus.js.map +0 -1
  209. package/dist/hooks/transaction/useSwapTransactionStatus.js +0 -114
  210. package/dist/hooks/transaction/useSwapTransactionStatus.js.map +0 -1
  211. package/dist/hooks/user/useAvatar.js +0 -40
  212. package/dist/hooks/user/useAvatar.js.map +0 -1
  213. package/dist/hooks/user/useHistory.js +0 -103
  214. package/dist/hooks/user/useHistory.js.map +0 -1
  215. package/dist/hooks/user/useUserParams.js +0 -33
  216. package/dist/hooks/user/useUserParams.js.map +0 -1
  217. package/dist/hooks/utils/useUtils.js +0 -20
  218. package/dist/hooks/utils/useUtils.js.map +0 -1
  219. package/dist/hooks/wallet/useAddToken.js +0 -49
  220. package/dist/hooks/wallet/useAddToken.js.map +0 -1
  221. package/dist/hooks/wallet/useAutoConnect.js +0 -92
  222. package/dist/hooks/wallet/useAutoConnect.js.map +0 -1
  223. package/dist/hooks/wallet/useEns.js +0 -57
  224. package/dist/hooks/wallet/useEns.js.map +0 -1
  225. package/dist/hooks/wallet/useGnosisContext.js +0 -74
  226. package/dist/hooks/wallet/useGnosisContext.js.map +0 -1
  227. package/dist/hooks/wallet/useIntegratorContext.js +0 -39
  228. package/dist/hooks/wallet/useIntegratorContext.js.map +0 -1
  229. package/dist/hooks/wallet/useMultiChainWallet.js +0 -210
  230. package/dist/hooks/wallet/useMultiChainWallet.js.map +0 -1
  231. package/dist/hooks/wallet/useSigner.js +0 -68
  232. package/dist/hooks/wallet/useSigner.js.map +0 -1
  233. package/dist/hooks/wallet/useStandardWallets.js +0 -26
  234. package/dist/hooks/wallet/useStandardWallets.js.map +0 -1
  235. package/dist/hooks/wallet/useWallet.js +0 -199
  236. package/dist/hooks/wallet/useWallet.js.map +0 -1
  237. package/dist/hooks/wallet/useWallets.js +0 -33
  238. package/dist/hooks/wallet/useWallets.js.map +0 -1
  239. package/dist/hooks/xrpl/useXrpl.js +0 -55
  240. package/dist/hooks/xrpl/useXrpl.js.map +0 -1
  241. package/dist/hooks/xrpl/useXrplTrustLine.js +0 -159
  242. package/dist/hooks/xrpl/useXrplTrustLine.js.map +0 -1
  243. package/dist/hooks/xrpl/useXrplWallets.js +0 -51
  244. package/dist/hooks/xrpl/useXrplWallets.js.map +0 -1
  245. package/dist/provider/index.js +0 -118
  246. package/dist/provider/index.js.map +0 -1
  247. package/dist/services/external/cosmosRestClient.js +0 -45
  248. package/dist/services/external/cosmosRestClient.js.map +0 -1
  249. package/dist/services/external/ens.js +0 -66
  250. package/dist/services/external/ens.js.map +0 -1
  251. package/dist/services/external/index.js +0 -3
  252. package/dist/services/external/index.js.map +0 -1
  253. package/dist/services/external/onrampAdapter.js +0 -52
  254. package/dist/services/external/onrampAdapter.js.map +0 -1
  255. package/dist/services/external/rpcService.js +0 -411
  256. package/dist/services/external/rpcService.js.map +0 -1
  257. package/dist/services/external/secretService.js.map +0 -1
  258. package/dist/services/external/suiRpcClient.js +0 -80
  259. package/dist/services/external/suiRpcClient.js.map +0 -1
  260. package/dist/services/external/tokenDataService.js +0 -108
  261. package/dist/services/external/tokenDataService.js.map +0 -1
  262. package/dist/services/external/websocket.js +0 -34
  263. package/dist/services/external/websocket.js.map +0 -1
  264. package/dist/services/external/xaman.js +0 -78
  265. package/dist/services/external/xaman.js.map +0 -1
  266. package/dist/services/external/xrplRpcClient.js +0 -167
  267. package/dist/services/external/xrplRpcClient.js.map +0 -1
  268. package/dist/services/index.js +0 -19
  269. package/dist/services/index.js.map +0 -1
  270. package/dist/services/internal/apiService.js +0 -21
  271. package/dist/services/internal/apiService.js.map +0 -1
  272. package/dist/services/internal/assetsService.js +0 -575
  273. package/dist/services/internal/assetsService.js.map +0 -1
  274. package/dist/services/internal/bitcoinService.js +0 -20
  275. package/dist/services/internal/bitcoinService.js.map +0 -1
  276. package/dist/services/internal/configService.js +0 -198
  277. package/dist/services/internal/configService.js.map +0 -1
  278. package/dist/services/internal/cosmosService.js +0 -141
  279. package/dist/services/internal/cosmosService.js.map +0 -1
  280. package/dist/services/internal/countryCurrencyMap.js +0 -1102
  281. package/dist/services/internal/countryCurrencyMap.js.map +0 -1
  282. package/dist/services/internal/errorService.js +0 -190
  283. package/dist/services/internal/errorService.js.map +0 -1
  284. package/dist/services/internal/estimateService.js +0 -225
  285. package/dist/services/internal/estimateService.js.map +0 -1
  286. package/dist/services/internal/eventService.js +0 -219
  287. package/dist/services/internal/eventService.js.map +0 -1
  288. package/dist/services/internal/evmService.js +0 -67
  289. package/dist/services/internal/evmService.js.map +0 -1
  290. package/dist/services/internal/fiatToCryptoService.js +0 -84
  291. package/dist/services/internal/fiatToCryptoService.js.map +0 -1
  292. package/dist/services/internal/fiatToCryptoService.test.js +0 -45
  293. package/dist/services/internal/fiatToCryptoService.test.js.map +0 -1
  294. package/dist/services/internal/numberService.js +0 -199
  295. package/dist/services/internal/numberService.js.map +0 -1
  296. package/dist/services/internal/priceService.js +0 -53
  297. package/dist/services/internal/priceService.js.map +0 -1
  298. package/dist/services/internal/searchService.js +0 -98
  299. package/dist/services/internal/searchService.js.map +0 -1
  300. package/dist/services/internal/sendTransaction.js +0 -191
  301. package/dist/services/internal/sendTransaction.js.map +0 -1
  302. package/dist/services/internal/sendTransactionStatus.js +0 -134
  303. package/dist/services/internal/sendTransactionStatus.js.map +0 -1
  304. package/dist/services/internal/solanaService.js +0 -142
  305. package/dist/services/internal/solanaService.js.map +0 -1
  306. package/dist/services/internal/suiService.js +0 -81
  307. package/dist/services/internal/suiService.js.map +0 -1
  308. package/dist/services/internal/transactionService.js +0 -210
  309. package/dist/services/internal/transactionService.js.map +0 -1
  310. package/dist/services/internal/transactionStatusService.js +0 -390
  311. package/dist/services/internal/transactionStatusService.js.map +0 -1
  312. package/dist/services/internal/walletService.js +0 -546
  313. package/dist/services/internal/walletService.js.map +0 -1
  314. package/dist/services/internal/walletStandardService.js +0 -128
  315. package/dist/services/internal/walletStandardService.js.map +0 -1
  316. package/dist/services/internal/xionService.js +0 -6
  317. package/dist/services/internal/xionService.js.map +0 -1
  318. package/dist/services/internal/xrplService.js +0 -52
  319. package/dist/services/internal/xrplService.js.map +0 -1
  320. package/dist/tests/apiService.test.js +0 -40
  321. package/dist/tests/apiService.test.js.map +0 -1
  322. package/dist/tests/assetsService.test.js +0 -614
  323. package/dist/tests/assetsService.test.js.map +0 -1
  324. package/dist/tests/configService.test.js +0 -641
  325. package/dist/tests/configService.test.js.map +0 -1
  326. package/dist/tests/estimateService.test.js +0 -429
  327. package/dist/tests/estimateService.test.js.map +0 -1
  328. package/dist/tests/fetchSquidData.js +0 -36
  329. package/dist/tests/fetchSquidData.js.map +0 -1
  330. package/dist/tests/jest-svg-transform.d.ts +0 -0
  331. package/dist/tests/jest-svg-transform.js +0 -21
  332. package/dist/tests/jest-svg-transform.js.map +0 -1
  333. package/dist/tests/numberService.test.js +0 -166
  334. package/dist/tests/numberService.test.js.map +0 -1
  335. package/dist/tests/priceService.test.js +0 -38
  336. package/dist/tests/priceService.test.js.map +0 -1
  337. package/dist/tests/sample.json +0 -0
  338. package/dist/tests/searchService.test.js +0 -86
  339. package/dist/tests/searchService.test.js.map +0 -1
  340. package/dist/tests/swapConfig.test.js +0 -332
  341. package/dist/tests/swapConfig.test.js.map +0 -1
  342. package/dist/tests/transactionService.test.js +0 -53
  343. package/dist/tests/transactionService.test.js.map +0 -1
  344. package/dist/tests/transactionStatusService.test.js +0 -165
  345. package/dist/tests/transactionStatusService.test.js.map +0 -1
  346. package/dist/tests/walletService.test.js +0 -488
  347. package/dist/tests/walletService.test.js.map +0 -1
@@ -1,219 +0,0 @@
1
- import { formatUnitsRounded } from "./numberService";
2
- /**
3
- * Creates a hash string from quote request parameters to track changes
4
- */
5
- export const createQuoteRequestParamsHash = (params) => {
6
- return [
7
- params.fromAddress || "",
8
- params.toAddress || "",
9
- params.fromChain,
10
- params.toChain,
11
- `${params.fromToken}_${params.fromChain}`,
12
- `${params.toToken}_${params.toChain}`,
13
- params.fromAmount,
14
- ].join("|");
15
- };
16
- /**
17
- * Formats the amount based on token details
18
- * @param data Event parameters containing fromToken, fromChain, and fromAmount
19
- * @param findToken Function to find token details
20
- * @returns Original data with formatted amount
21
- */
22
- const formatTokenAmountForEvent = (data, findToken) => {
23
- const fromToken = findToken(data.fromToken, data.fromChain);
24
- const formattedFromAmount = formatUnitsRounded((data.fromAmount ?? "0").toString(), fromToken?.decimals, 10);
25
- // Rewrite the fromAmount with the formatted amount
26
- // Example: 1000000000000000000 -> 1 with decimals 18
27
- // For readability of the event data
28
- return {
29
- ...data,
30
- fromAmount: formattedFromAmount,
31
- };
32
- };
33
- export class WidgetEvents extends EventTarget {
34
- static instance;
35
- constructor() {
36
- super();
37
- }
38
- // Singleton, because we need to access this service outside the widget
39
- static getInstance() {
40
- if (!WidgetEvents.instance) {
41
- WidgetEvents.instance = new WidgetEvents();
42
- }
43
- return WidgetEvents.instance;
44
- }
45
- /**
46
- * Overriding the addEventListener method to make it easier to use with typescript
47
- * @param type
48
- * @param listener
49
- * @param options
50
- */
51
- listenToWidget(type, listener, options) {
52
- super.addEventListener(type, listener, options);
53
- }
54
- /**
55
- * Overriding the removeEventListener method to make it easier to use with typescript
56
- * @param type
57
- * @param listener
58
- * @param options
59
- */
60
- removeWidgetListener(type, listener, options) {
61
- super.removeEventListener(type, listener, options);
62
- }
63
- /**
64
- * Dispatch an event of the widget
65
- * To be listened from an integrator website
66
- * For example to display a success message when transaction is done
67
- * @param name
68
- * @param data
69
- */
70
- dispatch(name, data) {
71
- this.dispatchEvent(new CustomEvent(name, { detail: data }));
72
- }
73
- /**
74
- * Will dispatch the main axelar status of transaction
75
- * This will be called every time the status is received by backend
76
- * (Using interval to check status)
77
- * @param status
78
- */
79
- dispatchSwapStatus(status) {
80
- this.dispatch("swapStatus", { status });
81
- }
82
- /**
83
- * Dispatch event when user executes a swap
84
- * Only when we have the tx hash received
85
- * @param route
86
- */
87
- dispatchSwapExecuteCall(route, txHash) {
88
- this.dispatch("swap", { route, txHash });
89
- }
90
- /**
91
- * Dispatch event when user changes chain/token
92
- * @param swapParams
93
- */
94
- dispatchSwapParamsChanged(swapParams) {
95
- this.dispatch("swapParamsChanged", { ...swapParams });
96
- }
97
- /**
98
- * Dispatch event when we are waiting for the user to sign the swap transaction
99
- * @param data
100
- */
101
- dispatchSwapTxSignatureRequested(data) {
102
- this.dispatch("swapTxSignatureRequested", data);
103
- }
104
- /**
105
- * Dispatch event when there's an error while executing the swap route
106
- * @param data
107
- */
108
- dispatchSwapRouteExecutionError(data) {
109
- this.dispatch("swapRouteExecutionError", data);
110
- }
111
- /**
112
- * Dispatch event when requesting a quote for swap
113
- * @param data Quote request parameters
114
- */
115
- dispatchRequestQuote(data) {
116
- this.dispatch("requestQuote", data);
117
- }
118
- /**
119
- * Dispatch event before swap execution
120
- * @param data Pre-swap parameters
121
- * @param findToken Function to find token details
122
- */
123
- dispatchPreSwap(data, findToken) {
124
- this.dispatch("preSwap", formatTokenAmountForEvent(data, findToken));
125
- }
126
- /**
127
- * Dispatch event after swap execution
128
- * @param data Post-swap parameters including transaction hash
129
- * @param findToken Function to find token details
130
- */
131
- dispatchPostSwap(data, findToken) {
132
- this.dispatch("postSwap", formatTokenAmountForEvent(data, findToken));
133
- }
134
- /**
135
- * Dispatch event when wallet is successfully connected
136
- * @param data Wallet connection details
137
- */
138
- dispatchWalletConnect(data) {
139
- this.dispatch("walletConnect", data);
140
- }
141
- /**
142
- * Dispatch event when wallet connection is rejected
143
- * @param data Wallet rejection details
144
- */
145
- dispatchWalletReject(data) {
146
- this.dispatch("walletReject", data);
147
- }
148
- /**
149
- * Dispatch event when onchain transaction is rejected
150
- * @param data Onchain rejection details
151
- */
152
- dispatchOnchainReject(data) {
153
- this.dispatch("onchainReject", data);
154
- }
155
- /**
156
- * Dispatch event when requesting an onramp quote
157
- * @param data Quote request parameters
158
- */
159
- dispatchOnrampQuoteRequest(data) {
160
- this.dispatch("onrampQuoteRequest", data);
161
- }
162
- /**
163
- * Dispatch event when executing an onramp quote
164
- * @param data Quote execution parameters
165
- */
166
- dispatchOnrampQuoteExecute(data) {
167
- this.dispatch("onrampQuoteExecute", data);
168
- }
169
- /**
170
- * Dispatch event when the search query has no results
171
- * @param data Empty search details
172
- */
173
- dispatchSearchEmpty(data) {
174
- this.dispatch("searchEmpty", data);
175
- }
176
- /**
177
- * Dispatch event before Send transaction execution
178
- * @param data Pre-send parameters
179
- */
180
- dispatchPreSend(data) {
181
- this.dispatch("preSend", data);
182
- }
183
- /**
184
- * Dispatch event after Send transaction execution
185
- * @param data Post-send parameters
186
- */
187
- dispatchPostSend(data) {
188
- this.dispatch("postSend", data);
189
- }
190
- /**
191
- * Dispatch event when QR code is generated for wallet connection.
192
- * @param data QR code data
193
- */
194
- dispatchQrCodeGeneratedForConnect(data) {
195
- this.dispatch("qrCodeGeneratedForConnect", data);
196
- }
197
- /**
198
- * Dispatch event when QR code is generated for signing a transaction.
199
- * @param data QR code data
200
- */
201
- dispatchQrCodeGeneratedForSign(data) {
202
- this.dispatch("qrCodeGeneratedForSign", data);
203
- }
204
- /**
205
- * Dispatch event when QR code generation for signing a transaction fails.
206
- * @param data Error information
207
- */
208
- dispatchQrCodeGenerationFailedForSign(data) {
209
- this.dispatch("qrCodeGenerationFailedForSign", data);
210
- }
211
- /**
212
- * Dispatches event after the QR code for signing a transaction is scanned
213
- * and we're waiting for the user to approve or reject it.
214
- */
215
- dispatchQrTxScannedAwaitingApproval(data) {
216
- this.dispatch("qrTxScannedAwaitingUserApproval", data);
217
- }
218
- }
219
- //# sourceMappingURL=eventService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventService.js","sourceRoot":"","sources":["../../../src/services/internal/eventService.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- import { ChainType } from "@0xsquid/squid-types";
2
- import { isAddress as isEvmAddress, } from "viem";
3
- import { standardWalletOverrides } from "./walletStandardService";
4
- export const EvmNetworkNotSupportedErrorCode = 4902;
5
- export async function addEthereumChain({ chain, provider, }) {
6
- const chainName = chain.rpc.includes("tenderly")
7
- ? `${chain.networkName} Tenderly fork`
8
- : chain.networkName;
9
- const chainParameters = {
10
- chainId: `0x${parseInt(chain.chainId, 10).toString(16)}`,
11
- chainName,
12
- nativeCurrency: chain.nativeCurrency,
13
- rpcUrls: [chain.rpc],
14
- blockExplorerUrls: chain.blockExplorerUrls,
15
- iconUrls: [chain.chainIconURI],
16
- };
17
- try {
18
- return provider.request({
19
- method: "wallet_addEthereumChain",
20
- params: [chainParameters],
21
- });
22
- }
23
- catch (error) {
24
- console.debug("Error adding chain:", error);
25
- }
26
- }
27
- export const parseEvmAddress = (address) => {
28
- if (address && isEvmAddress(address)) {
29
- return address;
30
- }
31
- };
32
- /**
33
- * Formats a Wagmi connector into a Squid Wallet
34
- */
35
- export function formatEvmWallet(connector) {
36
- const { icon, name: defaultName, id: wagmiConnectorId } = connector;
37
- const walletOverrides = standardWalletOverrides[wagmiConnectorId];
38
- const walletIcon = walletOverrides?.icon || icon;
39
- const name = walletOverrides?.name || defaultName;
40
- const connectorId = walletOverrides?.connectorId || wagmiConnectorId;
41
- const isNonInstallableWallet = [
42
- "injected",
43
- "walletConnect",
44
- "metaMaskSDK",
45
- "coinbaseWalletSDK",
46
- ].includes(wagmiConnectorId);
47
- return {
48
- connectorId,
49
- name,
50
- connectorName: name,
51
- type: ChainType.EVM,
52
- icon: walletIcon,
53
- rdns: wagmiConnectorId,
54
- windowFlag: name,
55
- // For non-installable wallets, we don't want to show the "Installed" label
56
- // but still want to allow the user to connect
57
- skipInstallCheck: isNonInstallableWallet,
58
- isInstalled: isNonInstallableWallet ? undefined : () => true,
59
- connector,
60
- isMobile: true,
61
- };
62
- }
63
- export function filterWagmiConnector(connector) {
64
- // Safe is auto-connected when available, should not be listed as an available wallet
65
- return connector.id !== "safe";
66
- }
67
- //# sourceMappingURL=evmService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evmService.js","sourceRoot":"","sources":["../../../src/services/internal/evmService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAGL,SAAS,IAAI,YAAY,GAC1B,MAAM,MAAM,CAAC;AAOd,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,KAAK,EACL,QAAQ,GAIT;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9C,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,gBAAgB;QACtC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IACtB,MAAM,eAAe,GAA8B;QACjD,OAAO,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACxD,SAAS;QACT,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QACpB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,QAAQ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;KAC/B,CAAC;IAEF,IAAI;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;YACtB,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,CAAC,eAAe,CAAC;SAC1B,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAA2B,EACH,EAAE;IAC1B,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;QACpC,OAAO,OAAqB,CAAC;KAC9B;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAEpE,MAAM,eAAe,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,eAAe,EAAE,IAAI,IAAI,IAAI,CAAC;IACjD,MAAM,IAAI,GAAG,eAAe,EAAE,IAAI,IAAI,WAAW,CAAC;IAClD,MAAM,WAAW,GACf,eAAe,EAAE,WAAW,IAAK,gBAAgC,CAAC;IACpE,MAAM,sBAAsB,GAAG;QAC7B,UAAU;QACV,eAAe;QACf,aAAa;QACb,mBAAmB;KACpB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAE7B,OAAO;QACL,WAAW;QACX,IAAI;QACJ,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,SAAS,CAAC,GAAG;QACnB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,IAAwB;QACpC,2EAA2E;QAC3E,8CAA8C;QAC9C,gBAAgB,EAAE,sBAAsB;QACxC,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;QAC5D,SAAS;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IACvD,qFAAqF;IACrF,OAAO,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC;AACjC,CAAC"}
@@ -1,84 +0,0 @@
1
- import axios from "axios";
2
- import { countries } from "countries-list";
3
- import getSymbolFromCurrency from "currency-symbol-map";
4
- import { DEFAULT_COUNTRY_CODE, internalSquidApiBaseUrl, } from "../../core/constants";
5
- import { countryCurrencyMap } from "./countryCurrencyMap";
6
- export const getUserCountry = async () => {
7
- try {
8
- const { data } = await axios.get(`${internalSquidApiBaseUrl}/country`);
9
- return data;
10
- }
11
- catch (error) {
12
- return {
13
- countryName: "United Kingdom",
14
- countryCode: DEFAULT_COUNTRY_CODE,
15
- };
16
- }
17
- };
18
- /**
19
- * Get country data from country code
20
- * TODO: Host the flags on our own CDN
21
- * @param countryCode - The country code (e.g., "US", "GB")
22
- * @returns Country details including name, flag URL, and other information
23
- */
24
- export function getCountryData(countryCode) {
25
- const countryCodeUpper = countryCode.toUpperCase();
26
- const countryCodeLower = countryCode.toLowerCase();
27
- return {
28
- ...countries[countryCodeUpper],
29
- code: countryCodeUpper,
30
- flagUrl: countryCodeLower
31
- ? `https://flagcdn.com/w80/${countryCodeLower}.png`
32
- : "",
33
- };
34
- }
35
- /**
36
- * Get currency data from currency code
37
- */
38
- export function getCurrencyData(currencyCode) {
39
- const symbol = getSymbolFromCurrency(currencyCode);
40
- if (!symbol)
41
- return undefined;
42
- const currencyInfo = countryCurrencyMap.find((c) => c.currencyCode === currencyCode);
43
- const countryData = getCountryData(currencyInfo?.countryCode ?? "");
44
- return {
45
- denomination: currencyCode,
46
- symbol,
47
- name: currencyInfo?.name,
48
- flagUrl: countryData.flagUrl,
49
- };
50
- }
51
- /**
52
- * Adaptive rounding: rounds value up to a nice number based on its magnitude
53
- * e.g. 3840 -> 4000, 38400 -> 40000, 384000 -> 400000
54
- * For values >= 100, round up to the nearest power-of-ten
55
- */
56
- export const adaptiveRound = (value) => {
57
- if (value < 10)
58
- return Math.round(value * 100) / 100;
59
- if (value < 100)
60
- return Math.round(value);
61
- if (value < 100)
62
- return Math.round(value);
63
- // For 100 and above, round up to the nearest power of ten
64
- const magnitude = Math.pow(10, Math.floor(Math.log10(value)));
65
- return Math.ceil(value / magnitude) * magnitude;
66
- };
67
- /**
68
- * Get suggested amounts for a given currency code, based on rateAgainstUSD
69
- * Returns 3 amounts (low, medium, high) roughly equivalent to $100, $500, $1000 in local currency
70
- */
71
- export function getSuggestedAmountsForCurrency(currencyCode) {
72
- const baseUsdAmounts = [100, 500, 1000];
73
- const currencyInfo = countryCurrencyMap.find((c) => c.currencyCode === currencyCode);
74
- if (!currencyInfo?.rateAgainstUSD || currencyInfo.rateAgainstUSD <= 0) {
75
- return baseUsdAmounts;
76
- }
77
- if (currencyInfo.rateAgainstUSD >= 0.7 &&
78
- currencyInfo.rateAgainstUSD <= 1.3) {
79
- return baseUsdAmounts;
80
- }
81
- const amounts = baseUsdAmounts.map((usd) => usd * currencyInfo.rateAgainstUSD);
82
- return amounts.map(adaptiveRound);
83
- }
84
- //# sourceMappingURL=fiatToCryptoService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fiatToCryptoService.js","sourceRoot":"","sources":["../../../src/services/internal/fiatToCryptoService.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- import { adaptiveRound, getSuggestedAmountsForCurrency, } from "./fiatToCryptoService";
2
- describe("adaptiveRound", () => {
3
- it("rounds up to the nearest power of ten for values >= 100", () => {
4
- expect(adaptiveRound(3840)).toBe(4000);
5
- expect(adaptiveRound(38400)).toBe(40000);
6
- expect(adaptiveRound(384000)).toBe(400000);
7
- expect(adaptiveRound(19000)).toBe(20000);
8
- expect(adaptiveRound(999)).toBe(1000);
9
- expect(adaptiveRound(100)).toBe(100);
10
- expect(adaptiveRound(101)).toBe(200);
11
- expect(adaptiveRound(9999)).toBe(10000);
12
- expect(adaptiveRound(99999)).toBe(100000);
13
- expect(adaptiveRound(100000)).toBe(100000);
14
- });
15
- it("rounds correctly for values < 100", () => {
16
- expect(adaptiveRound(99.99)).toBe(100);
17
- expect(adaptiveRound(50)).toBe(50);
18
- expect(adaptiveRound(10)).toBe(10);
19
- expect(adaptiveRound(9.99)).toBeCloseTo(9.99, 2);
20
- expect(adaptiveRound(1.234)).toBeCloseTo(1.23, 2);
21
- expect(adaptiveRound(0.1234)).toBeCloseTo(0.12, 2);
22
- });
23
- });
24
- describe("getSuggestedAmountsForCurrency", () => {
25
- it("returns USD defaults for USD and similar rates", () => {
26
- expect(getSuggestedAmountsForCurrency("USD")).toEqual([100, 500, 1000]);
27
- expect(getSuggestedAmountsForCurrency("BMD")).toEqual([100, 500, 1000]);
28
- expect(getSuggestedAmountsForCurrency("CAD")).toEqual([200, 700, 2000]);
29
- });
30
- it("returns local equivalents for other rates", () => {
31
- expect(getSuggestedAmountsForCurrency("EUR")).toEqual([100, 500, 1000]);
32
- expect(getSuggestedAmountsForCurrency("JPY")).toEqual([
33
- 20000, 80000, 200000,
34
- ]);
35
- expect(getSuggestedAmountsForCurrency("INR")).toEqual([9000, 50000, 90000]);
36
- expect(getSuggestedAmountsForCurrency("NGN")).toEqual([
37
- 200000, 900000, 2000000,
38
- ]);
39
- });
40
- it("returns USD defaults for unknown or invalid codes", () => {
41
- expect(getSuggestedAmountsForCurrency("XXX")).toEqual([100, 500, 1000]);
42
- expect(getSuggestedAmountsForCurrency("")).toEqual([100, 500, 1000]);
43
- });
44
- });
45
- //# sourceMappingURL=fiatToCryptoService.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fiatToCryptoService.test.js","sourceRoot":"","sources":["../../../src/services/internal/fiatToCryptoService.test.ts"],"names":[],"mappings":"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"}
@@ -1,199 +0,0 @@
1
- /* eslint-disable prefer-const */
2
- import take from "lodash/take";
3
- import takeWhile from "lodash/takeWhile";
4
- import { formatUnits, parseUnits } from "viem";
5
- import { DEFAULT_LOCALE } from "../../core/constants";
6
- // =====================================================
7
- // NOTE: We wrap viem utility method here
8
- // So that in the future we can change the implementation
9
- // if we want to use something else than viem formatters
10
- // =====================================================
11
- /**
12
- * Parses a value to a bigint
13
- * @param value - The value to parse
14
- * @param decimals - The number of decimals
15
- * @returns The parsed bigint
16
- * @throws Error if parsing fails
17
- */
18
- export const parseToBigInt = (value, decimals = 18) => {
19
- try {
20
- return parseUnits(value.toString(), decimals);
21
- }
22
- catch (error) {
23
- const errorMessage = error instanceof Error ? error.message : String(error);
24
- throw new Error(`Failed to parse value to BigInt: ${errorMessage}`);
25
- }
26
- };
27
- /**
28
- * Formats a value to a readable string
29
- * @param value - The value to format (bigint or string)
30
- * @param decimals - The number of decimals
31
- * @returns The formatted string
32
- * @throws Error if formatting fails
33
- */
34
- export const formatBNToReadable = (value, decimals = 18) => {
35
- try {
36
- return formatUnits(BigInt(value), decimals);
37
- }
38
- catch (error) {
39
- const errorMessage = error instanceof Error ? error.message : String(error);
40
- throw new Error(`Failed to format value: ${errorMessage}`);
41
- }
42
- };
43
- export const roundNumericValue = (value = "0", precision = 2, useComaEvery3Digits = true, significantFigures = 0) => {
44
- let newValue = value;
45
- const temp = newValue?.toString() ?? "";
46
- let [integers, decimals] = temp.split(".");
47
- // toLocaleString is supported on all modern browsers
48
- // We might monitor and have a polyfill if some people are not
49
- // Seeing the comas.
50
- if (useComaEvery3Digits && integers !== "0") {
51
- integers = parseInt(integers, 10).toLocaleString(DEFAULT_LOCALE).toString();
52
- }
53
- if (significantFigures && decimals) {
54
- const zeros = takeWhile(decimals?.toString(), (c) => c === "0").length;
55
- return `${integers}.${take(decimals, zeros + significantFigures).join("")}`;
56
- }
57
- return decimals
58
- ? `${integers}.${take(decimals, precision).join("")}`
59
- : integers;
60
- };
61
- export function formatUnitsRounded(value, decimals, maxDecimalDigits) {
62
- const dc = decimals ?? 0;
63
- try {
64
- const formatted = formatBNToReadable(BigInt(value), Number(dc));
65
- const [integerPart, fractionalPart] = formatted.split(".");
66
- if (fractionalPart && maxDecimalDigits !== undefined) {
67
- const roundedFractional = Math.round(Number(`0.${fractionalPart}`) * Math.pow(10, maxDecimalDigits)) / Math.pow(10, maxDecimalDigits);
68
- return (Number(integerPart) + roundedFractional).toFixed(maxDecimalDigits);
69
- }
70
- return formatted;
71
- }
72
- catch (e) {
73
- return value;
74
- }
75
- }
76
- const MAX_TOKEN_DECIMALS = 8;
77
- const MAX_COMPACT_SIGNIFICANT_DIGITS = 5;
78
- const TOKEN_EXACT_AMOUNT_FORMATTER = new Intl.NumberFormat(DEFAULT_LOCALE, {
79
- minimumFractionDigits: 0,
80
- maximumFractionDigits: MAX_TOKEN_DECIMALS,
81
- });
82
- const TOKEN_ROUNDED_AMOUNT_FORMATTER = new Intl.NumberFormat(DEFAULT_LOCALE, {
83
- minimumFractionDigits: 0,
84
- maximumFractionDigits: MAX_TOKEN_DECIMALS,
85
- minimumSignificantDigits: 2,
86
- maximumSignificantDigits: 4,
87
- });
88
- const TOKEN_SIMPLIFIED_AMOUNT_FORMATTER = new Intl.NumberFormat(DEFAULT_LOCALE, {
89
- maximumSignificantDigits: 2,
90
- });
91
- const TOKEN_COMPACT_AMOUNT_FORMATTER = new Intl.NumberFormat(DEFAULT_LOCALE, {
92
- notation: "compact",
93
- compactDisplay: "short",
94
- maximumSignificantDigits: MAX_COMPACT_SIGNIFICANT_DIGITS,
95
- maximumFractionDigits: MAX_COMPACT_SIGNIFICANT_DIGITS,
96
- });
97
- export function formatTokenAmount(amount, { exact = true, simplified = false, compact = false, } = {}) {
98
- const numericAmount = parseFloat(amount || "0");
99
- if (numericAmount <= 0) {
100
- return "0";
101
- }
102
- // Check if numericAmount is less than the smallest displayable amount
103
- const maxDecimals = compact
104
- ? MAX_COMPACT_SIGNIFICANT_DIGITS
105
- : MAX_TOKEN_DECIMALS;
106
- if (numericAmount < Math.pow(10, -maxDecimals)) {
107
- return `<${Math.pow(10, -maxDecimals).toFixed(maxDecimals)}`;
108
- }
109
- if (compact) {
110
- return TOKEN_COMPACT_AMOUNT_FORMATTER.format(numericAmount);
111
- }
112
- if (simplified) {
113
- return TOKEN_SIMPLIFIED_AMOUNT_FORMATTER.format(numericAmount);
114
- }
115
- if (exact) {
116
- return TOKEN_EXACT_AMOUNT_FORMATTER.format(numericAmount);
117
- }
118
- return TOKEN_ROUNDED_AMOUNT_FORMATTER.format(numericAmount);
119
- }
120
- // For values below 100,000, use exact integer precision
121
- // e.g 1,234.56, 98,765.43
122
- const STANDARD_USD_INTL_FORMATTER = new Intl.NumberFormat(DEFAULT_LOCALE, {
123
- style: "currency",
124
- currency: "USD",
125
- minimumFractionDigits: 2,
126
- maximumFractionDigits: 2,
127
- });
128
- // For values above 100,000, use compact notation
129
- // e.g $12,34K, $98,765.43M
130
- const COMPACT_USD_INTL_FORMATTER = new Intl.NumberFormat(DEFAULT_LOCALE, {
131
- style: "currency",
132
- currency: "USD",
133
- notation: "compact",
134
- compactDisplay: "short",
135
- minimumFractionDigits: 2,
136
- maximumFractionDigits: 2,
137
- });
138
- // For small amounts where decimal precision is important
139
- // e.g $0.00045, $1,231.3209, $57.00002
140
- const PRECISE_USD_INTL_FORMATTER = new Intl.NumberFormat(DEFAULT_LOCALE, {
141
- style: "currency",
142
- currency: "USD",
143
- minimumFractionDigits: 2,
144
- maximumFractionDigits: 5,
145
- });
146
- const DECIMAL_PRECISION_THRESHOLD = 1;
147
- export function formatUsdAmount(amount = "0", { includeSign = true, decimalPrecision = false } = {}) {
148
- const parsedAmount = Number(amount);
149
- if (parsedAmount < 0.01 && parsedAmount > 0 && !decimalPrecision) {
150
- return includeSign ? "<$0.01" : "<0.01";
151
- }
152
- // Handle amounts 100,000 or above using compact notation
153
- if (parsedAmount >= 100_000) {
154
- return COMPACT_USD_INTL_FORMATTER.format(parsedAmount).replace(/^\$/, includeSign ? "$" : "");
155
- }
156
- // Handle small amounts with decimal precision
157
- // We don't care about decimal precision for big amounts
158
- if (decimalPrecision && parsedAmount < DECIMAL_PRECISION_THRESHOLD) {
159
- return PRECISE_USD_INTL_FORMATTER.format(parsedAmount).replace(/^\$/, includeSign ? "$" : "");
160
- }
161
- // Handle amounts less than 100,000 with exact integer precision
162
- return STANDARD_USD_INTL_FORMATTER.format(parsedAmount).replace(/^\$/, includeSign ? "$" : "");
163
- }
164
- export function trimExtraDecimals(value, maxDecimals) {
165
- const [integerPart, decimalPart] = value.split(".");
166
- // Return just the integer part if maxDecimals is zero
167
- if (maxDecimals === 0) {
168
- return integerPart;
169
- }
170
- // Process decimals if present and maxDecimals is not zero
171
- if (decimalPart &&
172
- maxDecimals !== undefined &&
173
- decimalPart.length > maxDecimals) {
174
- return `${integerPart}.${decimalPart.slice(0, maxDecimals)}`;
175
- }
176
- // Return the original value if there are no excess decimals or maxDecimals is undefined
177
- return value;
178
- }
179
- export const getNumericValue = ({ value, precision, useComaEvery3Digits = true, hideIfZero = false, currency, significantFigures, formatIfVerySmall, wrapInParens = false, isNegative = false, }) => {
180
- const roundedValue = value !== undefined && value !== ""
181
- ? roundNumericValue(value, precision, useComaEvery3Digits, significantFigures)
182
- : undefined;
183
- if (hideIfZero && (value === "0" || value === "0.0")) {
184
- return null;
185
- }
186
- const isVerySmall = formatIfVerySmall !== undefined &&
187
- +(value ?? "0") !== 0 &&
188
- +(value ?? "0") < formatIfVerySmall;
189
- const prefix = `${isVerySmall ? "<" : ""}${currency && currency.symbol && currency.symbolPosition === "before"
190
- ? currency.symbol
191
- : ""}`;
192
- const suffix = `${currency && currency.symbol && currency.symbolPosition === "after"
193
- ? currency.symbol
194
- : ""}`;
195
- const formattedIfVerySmall = roundedValue && isVerySmall ? formatIfVerySmall?.toString() : roundedValue;
196
- const finalValue = `${isNegative ? "-" : ""}${prefix}${formattedIfVerySmall}${suffix ? ` ${suffix}` : ""}`;
197
- return wrapInParens ? `(${finalValue})` : finalValue;
198
- };
199
- //# sourceMappingURL=numberService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"numberService.js","sourceRoot":"","sources":["../../../src/services/internal/numberService.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wDAAwD;AACxD,yCAAyC;AACzC,yDAAyD;AACzD,wDAAwD;AACxD,wDAAwD;AACxD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,WAAmB,EAAE,EAAU,EAAE;IAC5E,IAAI;QACF,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;KAC/C;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,oCAAoC,YAAY,EAAE,CAAC,CAAC;KACrE;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAsB,EACtB,WAAmB,EAAE,EACb,EAAE;IACV,IAAI;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC7C;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;KAC5D;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAAgB,GAAG,EACnB,YAAoB,CAAC,EACrB,mBAAmB,GAAG,IAAI,EAC1B,qBAA6B,CAAC,EACtB,EAAE;IACV,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,IAAI,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3C,qDAAqD;IACrD,8DAA8D;IAC9D,oBAAoB;IACpB,IAAI,mBAAmB,IAAI,QAAQ,KAAK,GAAG,EAAE;QAC3C,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;KAC7E;IAED,IAAI,kBAAkB,IAAI,QAAQ,EAAE;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACvE,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;KAC7E;IAED,OAAO,QAAQ;QACb,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACrD,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,QAAqC,EACrC,gBAAyB;IAEzB,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,CAAC;IACzB,IAAI;QACF,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,cAAc,IAAI,gBAAgB,KAAK,SAAS,EAAE;YACpD,MAAM,iBAAiB,GACrB,IAAI,CAAC,KAAK,CACR,MAAM,CAAC,KAAK,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAC/D,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAErC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAAC,CAAC,OAAO,CACtD,gBAAgB,CACjB,CAAC;SACH;QACD,OAAO,SAAS,CAAC;KAClB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,MAAM,4BAA4B,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;IACzE,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,kBAAkB;CAC1C,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;IAC3E,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,kBAAkB;IACzC,wBAAwB,EAAE,CAAC;IAC3B,wBAAwB,EAAE,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,IAAI,IAAI,CAAC,YAAY,CAC7D,cAAc,EACd;IACE,wBAAwB,EAAE,CAAC;CAC5B,CACF,CAAC;AAEF,MAAM,8BAA8B,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;IAC3E,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,OAAO;IACvB,wBAAwB,EAAE,8BAA8B;IACxD,qBAAqB,EAAE,8BAA8B;CACtD,CAAC,CAAC;AAmBH,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,EACE,KAAK,GAAG,IAAI,EACZ,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,KAAK,MACa,EAAE;IAEhC,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;IAEhD,IAAI,aAAa,IAAI,CAAC,EAAE;QACtB,OAAO,GAAG,CAAC;KACZ;IAED,sEAAsE;IACtE,MAAM,WAAW,GAAG,OAAO;QACzB,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,kBAAkB,CAAC;IACvB,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;QAC9C,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;KAC9D;IAED,IAAI,OAAO,EAAE;QACX,OAAO,8BAA8B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC7D;IAED,IAAI,UAAU,EAAE;QACd,OAAO,iCAAiC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAChE;IAED,IAAI,KAAK,EAAE;QACT,OAAO,4BAA4B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC3D;IAED,OAAO,8BAA8B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC9D,CAAC;AAED,wDAAwD;AACxD,0BAA0B;AAC1B,MAAM,2BAA2B,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;IACxE,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,KAAK;IACf,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,iDAAiD;AACjD,2BAA2B;AAC3B,MAAM,0BAA0B,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;IACvE,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,OAAO;IACvB,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,yDAAyD;AACzD,uCAAuC;AACvC,MAAM,0BAA0B,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;IACvE,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,KAAK;IACf,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAiBtC,MAAM,UAAU,eAAe,CAC7B,SAAmC,GAAG,EACtC,EAAE,WAAW,GAAG,IAAI,EAAE,gBAAgB,GAAG,KAAK,KAA6B,EAAE;IAE7E,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAEpC,IAAI,YAAY,GAAG,IAAI,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;QAChE,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;KACzC;IAED,yDAAyD;IACzD,IAAI,YAAY,IAAI,OAAO,EAAE;QAC3B,OAAO,0BAA0B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAC5D,KAAK,EACL,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACvB,CAAC;KACH;IAED,8CAA8C;IAC9C,wDAAwD;IACxD,IAAI,gBAAgB,IAAI,YAAY,GAAG,2BAA2B,EAAE;QAClE,OAAO,0BAA0B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAC5D,KAAK,EACL,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACvB,CAAC;KACH;IAED,gEAAgE;IAChE,OAAO,2BAA2B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAC7D,KAAK,EACL,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,WAAoB;IACnE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEpD,sDAAsD;IACtD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,WAAW,CAAC;KACpB;IAED,0DAA0D;IAC1D,IACE,WAAW;QACX,WAAW,KAAK,SAAS;QACzB,WAAW,CAAC,MAAM,GAAG,WAAW,EAChC;QACA,OAAO,GAAG,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;KAC9D;IAED,wFAAwF;IACxF,OAAO,KAAK,CAAC;AACf,CAAC;AAmBD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,mBAAmB,GAAG,IAAI,EAC1B,UAAU,GAAG,KAAK,EAClB,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GAAG,KAAK,EACpB,UAAU,GAAG,KAAK,GACZ,EAAE,EAAE;IACV,MAAM,YAAY,GAChB,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QACjC,CAAC,CAAC,iBAAiB,CACf,KAAK,EACL,SAAS,EACT,mBAAmB,EACnB,kBAAkB,CACnB;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,UAAU,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;QACpD,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GACf,iBAAiB,KAAK,SAAS;QAC/B,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,iBAAiB,CAAC;IAEtC,MAAM,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GACtC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,cAAc,KAAK,QAAQ;QACjE,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjB,CAAC,CAAC,EACN,EAAE,CAAC;IAEH,MAAM,MAAM,GAAG,GACb,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,cAAc,KAAK,OAAO;QAChE,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjB,CAAC,CAAC,EACN,EAAE,CAAC;IAEH,MAAM,oBAAoB,GACxB,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAE7E,MAAM,UAAU,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,oBAAoB,GACzE,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAC1B,EAAE,CAAC;IAEH,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;AACvD,CAAC,CAAC"}