0xtrails 0.13.2 → 0.14.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 (753) hide show
  1. package/dist/abis/trailsHydrate.d.ts +5 -42
  2. package/dist/abis/trailsHydrate.d.ts.map +1 -1
  3. package/dist/abis/trailsRouter.d.ts +1 -1
  4. package/dist/abis/trailsRouter.d.ts.map +1 -1
  5. package/dist/{widget/analytics → analytics/hooks}/useWidgetAnalytics.d.ts +2 -4
  6. package/dist/analytics/hooks/useWidgetAnalytics.d.ts.map +1 -0
  7. package/dist/analytics.d.ts.map +1 -1
  8. package/dist/chainSwitch.d.ts.map +1 -1
  9. package/dist/chains-C1NhDLF_.js +4 -0
  10. package/dist/chains-CcoarGia.js +658 -0
  11. package/dist/chains.d.ts +0 -1
  12. package/dist/chains.d.ts.map +1 -1
  13. package/dist/committedIntentStore.d.ts +5 -0
  14. package/dist/committedIntentStore.d.ts.map +1 -0
  15. package/dist/config.d.ts +2 -0
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/constants.d.ts +2 -1
  18. package/dist/constants.d.ts.map +1 -1
  19. package/dist/error.d.ts +73 -4
  20. package/dist/error.d.ts.map +1 -1
  21. package/dist/hooks/useAddressWalletIcon.d.ts.map +1 -0
  22. package/dist/hooks/useAmountUsd.d.ts.map +1 -0
  23. package/dist/hooks/useBalanceVisible.d.ts.map +1 -0
  24. package/dist/hooks/useChainFilter.d.ts.map +1 -0
  25. package/dist/{widget/hooks → hooks}/useCheckout.d.ts +15 -15
  26. package/dist/hooks/useCheckout.d.ts.map +1 -0
  27. package/dist/hooks/useClickTracking.d.ts.map +1 -0
  28. package/dist/{widget/hooks → hooks}/useCombinedHistory.d.ts +3 -2
  29. package/dist/hooks/useCombinedHistory.d.ts.map +1 -0
  30. package/dist/hooks/useConnector.d.ts.map +1 -0
  31. package/dist/{widget/hooks → hooks}/useCustomTokenSearch.d.ts +1 -1
  32. package/dist/hooks/useCustomTokenSearch.d.ts.map +1 -0
  33. package/dist/hooks/useDebounce.d.ts.map +1 -0
  34. package/dist/{widget/hooks → hooks}/useDebugScreens.d.ts +2 -2
  35. package/dist/hooks/useDebugScreens.d.ts.map +1 -0
  36. package/dist/{widget/hooks → hooks}/useDefaultDestinationToken.d.ts +1 -1
  37. package/dist/hooks/useDefaultDestinationToken.d.ts.map +1 -0
  38. package/dist/{widget/hooks → hooks}/useDefaultOriginToken.d.ts +1 -1
  39. package/dist/hooks/useDefaultOriginToken.d.ts.map +1 -0
  40. package/dist/hooks/useDepositMonitor.d.ts.map +1 -0
  41. package/dist/{widget/hooks → hooks}/useDestinationSelectedToken.d.ts +2 -2
  42. package/dist/hooks/useDestinationSelectedToken.d.ts.map +1 -0
  43. package/dist/hooks/useDisplayCurrencyPreference.d.ts.map +1 -0
  44. package/dist/{widget/hooks → hooks}/useEarnPool.d.ts +1 -1
  45. package/dist/hooks/useEarnPool.d.ts.map +1 -0
  46. package/dist/hooks/useEffectiveFundBalance.d.ts +28 -0
  47. package/dist/hooks/useEffectiveFundBalance.d.ts.map +1 -0
  48. package/dist/hooks/useExecutingIntentsCount.d.ts.map +1 -0
  49. package/dist/{widget/hooks → hooks}/useExternalFundingReceiptSync.d.ts +1 -1
  50. package/dist/hooks/useExternalFundingReceiptSync.d.ts.map +1 -0
  51. package/dist/{widget/hooks → hooks}/useFiatOnRampCurrencies.d.ts +1 -1
  52. package/dist/hooks/useFiatOnRampCurrencies.d.ts.map +1 -0
  53. package/dist/hooks/useFiatSelectedCurrency.d.ts.map +1 -0
  54. package/dist/hooks/useGetIntent.d.ts.map +1 -0
  55. package/dist/{widget/hooks → hooks}/useIntentReceiptBalances.d.ts +1 -1
  56. package/dist/hooks/useIntentReceiptBalances.d.ts.map +1 -0
  57. package/dist/{widget/hooks → hooks}/useIntentTransactionHistory.d.ts +2 -1
  58. package/dist/hooks/useIntentTransactionHistory.d.ts.map +1 -0
  59. package/dist/hooks/useIsMobile.d.ts.map +1 -0
  60. package/dist/hooks/useIsSequenceWallet.d.ts.map +1 -0
  61. package/dist/hooks/useLocalePreference.d.ts.map +1 -0
  62. package/dist/hooks/useMeldTransactionHistory.d.ts.map +1 -0
  63. package/dist/hooks/useMeldTransactionStatus.d.ts.map +1 -0
  64. package/dist/hooks/useOnRampCountryDefaults.d.ts.map +1 -0
  65. package/dist/{widget/hooks → hooks}/useOnRampPaymentMethods.d.ts +2 -2
  66. package/dist/hooks/useOnRampPaymentMethods.d.ts.map +1 -0
  67. package/dist/{widget/hooks → hooks}/useOnRampProviderWidget.d.ts +1 -1
  68. package/dist/hooks/useOnRampProviderWidget.d.ts.map +1 -0
  69. package/dist/{widget/hooks → hooks}/useOnRampQuote.d.ts +3 -3
  70. package/dist/hooks/useOnRampQuote.d.ts.map +1 -0
  71. package/dist/{widget/hooks → hooks}/useOnRampTransactionStatus.d.ts +1 -1
  72. package/dist/hooks/useOnRampTransactionStatus.d.ts.map +1 -0
  73. package/dist/{widget/hooks → hooks}/useOriginSelectedToken.d.ts +1 -1
  74. package/dist/hooks/useOriginSelectedToken.d.ts.map +1 -0
  75. package/dist/hooks/usePayMessage.d.ts.map +1 -0
  76. package/dist/hooks/usePriceImpactWarning.d.ts.map +1 -0
  77. package/dist/hooks/useQuote.d.ts +439 -0
  78. package/dist/hooks/useQuote.d.ts.map +1 -0
  79. package/dist/{widget/hooks → hooks}/useRecentTokens.d.ts +1 -1
  80. package/dist/hooks/useRecentTokens.d.ts.map +1 -0
  81. package/dist/hooks/useRecipients.d.ts.map +1 -0
  82. package/dist/hooks/useSelectedFeeOption.d.ts.map +1 -0
  83. package/dist/{widget/hooks → hooks}/useSelectedFundMethod.d.ts +11 -1
  84. package/dist/hooks/useSelectedFundMethod.d.ts.map +1 -0
  85. package/dist/hooks/useSelectedRecipient.d.ts.map +1 -0
  86. package/dist/{widget/hooks → hooks}/useSendForm.d.ts +6 -11
  87. package/dist/hooks/useSendForm.d.ts.map +1 -0
  88. package/dist/hooks/useSwapAmount.d.ts.map +1 -0
  89. package/dist/{widget/hooks → hooks}/useSwapState.d.ts +1 -1
  90. package/dist/hooks/useSwapState.d.ts.map +1 -0
  91. package/dist/hooks/useTargetAmount.d.ts.map +1 -0
  92. package/dist/hooks/useTheme.d.ts.map +1 -0
  93. package/dist/{widget/hooks → hooks}/useTokenList.d.ts +2 -2
  94. package/dist/hooks/useTokenList.d.ts.map +1 -0
  95. package/dist/{widget/hooks → hooks}/useTrailsSendTransaction.d.ts +1 -1
  96. package/dist/hooks/useTrailsSendTransaction.d.ts.map +1 -0
  97. package/dist/{widget/hooks → hooks}/useViewManager.d.ts +1 -1
  98. package/dist/hooks/useViewManager.d.ts.map +1 -0
  99. package/dist/hooks/useWalletConnectUri.d.ts +19 -0
  100. package/dist/hooks/useWalletConnectUri.d.ts.map +1 -0
  101. package/dist/hooks/useWalletConnectionContext.d.ts.map +1 -0
  102. package/dist/{widget/hooks → hooks}/useWidgetProps.d.ts +1 -1
  103. package/dist/hooks/useWidgetProps.d.ts.map +1 -0
  104. package/dist/hydrate/builder.d.ts +131 -0
  105. package/dist/hydrate/builder.d.ts.map +1 -0
  106. package/dist/hydrate/constants.d.ts +13 -0
  107. package/dist/hydrate/constants.d.ts.map +1 -0
  108. package/dist/hydrate/encodeExecute.d.ts +73 -0
  109. package/dist/hydrate/encodeExecute.d.ts.map +1 -0
  110. package/dist/hydrate/index.d.ts +6 -0
  111. package/dist/hydrate/index.d.ts.map +1 -0
  112. package/dist/hydrate/index.js +11 -0
  113. package/dist/hydrate/payload.d.ts +38 -0
  114. package/dist/hydrate/payload.d.ts.map +1 -0
  115. package/dist/hydrate/selectors.d.ts +28 -0
  116. package/dist/hydrate/selectors.d.ts.map +1 -0
  117. package/dist/hydrate/types.d.ts +19 -0
  118. package/dist/hydrate/types.d.ts.map +1 -0
  119. package/dist/hydrate/utils.d.ts +8 -0
  120. package/dist/hydrate/utils.d.ts.map +1 -0
  121. package/dist/hydrate-Cr9eaeDK.js +654 -0
  122. package/dist/index.d.ts +19 -13
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +157 -662
  125. package/dist/intentConfigStore.d.ts +8 -0
  126. package/dist/intentConfigStore.d.ts.map +1 -0
  127. package/dist/intentProtocolApi.d.ts +11 -0
  128. package/dist/intentProtocolApi.d.ts.map +1 -0
  129. package/dist/intentProtocolEncoding.d.ts +25 -0
  130. package/dist/intentProtocolEncoding.d.ts.map +1 -0
  131. package/dist/intentProtocolResolver.d.ts +28 -0
  132. package/dist/intentProtocolResolver.d.ts.map +1 -0
  133. package/dist/intentReceiptPoller.d.ts.map +1 -1
  134. package/dist/intentValidation.d.ts +5 -0
  135. package/dist/intentValidation.d.ts.map +1 -0
  136. package/dist/intents.d.ts.map +1 -1
  137. package/dist/keymachine/index.d.ts +20 -0
  138. package/dist/keymachine/index.d.ts.map +1 -1
  139. package/dist/mutations.d.ts.map +1 -1
  140. package/dist/offlineRecovery.d.ts +24 -0
  141. package/dist/offlineRecovery.d.ts.map +1 -0
  142. package/dist/onramp/MeshConnectFlow.d.ts +9 -0
  143. package/dist/onramp/MeshConnectFlow.d.ts.map +1 -1
  144. package/dist/onramp/MeshConnectIframe.d.ts +9 -0
  145. package/dist/onramp/MeshConnectIframe.d.ts.map +1 -1
  146. package/dist/onramp/TrailsOnRampProvider.d.ts.map +1 -1
  147. package/dist/onramp/mesh/components/MeshExchangeConfirmation.d.ts +10 -0
  148. package/dist/onramp/mesh/components/MeshExchangeConfirmation.d.ts.map +1 -0
  149. package/dist/onramp/mesh/components/MeshExchangeIcon.d.ts +13 -0
  150. package/dist/onramp/mesh/components/MeshExchangeIcon.d.ts.map +1 -0
  151. package/dist/{widget → onramp/mesh}/components/MeshExchangeSelection.d.ts +1 -0
  152. package/dist/onramp/mesh/components/MeshExchangeSelection.d.ts.map +1 -0
  153. package/dist/onramp/mesh/components/MeshSessionOptions.d.ts +15 -0
  154. package/dist/onramp/mesh/components/MeshSessionOptions.d.ts.map +1 -0
  155. package/dist/onramp/mesh/hooks/useMeshAccessTokens.d.ts +9 -0
  156. package/dist/onramp/mesh/hooks/useMeshAccessTokens.d.ts.map +1 -0
  157. package/dist/onramp/mesh/hooks/useMeshFundingSelection.d.ts +11 -0
  158. package/dist/onramp/mesh/hooks/useMeshFundingSelection.d.ts.map +1 -0
  159. package/dist/onramp/mesh/hooks/useMeshOnrampFlow.d.ts +71 -0
  160. package/dist/onramp/mesh/hooks/useMeshOnrampFlow.d.ts.map +1 -0
  161. package/dist/onramp/mesh/hooks/useMeshOnrampSessionState.d.ts +32 -0
  162. package/dist/onramp/mesh/hooks/useMeshOnrampSessionState.d.ts.map +1 -0
  163. package/dist/onramp/mesh/hooks/useMeshSelectedTokenBalance.d.ts +19 -0
  164. package/dist/onramp/mesh/hooks/useMeshSelectedTokenBalance.d.ts.map +1 -0
  165. package/dist/onramp/mesh/hooks/useMeshSessionAccountBalance.d.ts +15 -0
  166. package/dist/onramp/mesh/hooks/useMeshSessionAccountBalance.d.ts.map +1 -0
  167. package/dist/onramp/mesh/hooks/useMeshSessionStorage.d.ts +7 -0
  168. package/dist/onramp/mesh/hooks/useMeshSessionStorage.d.ts.map +1 -0
  169. package/dist/onramp/meshSessionStorage.d.ts +13 -0
  170. package/dist/onramp/meshSessionStorage.d.ts.map +1 -0
  171. package/dist/onramp/meshconnect.d.ts +6 -4
  172. package/dist/onramp/meshconnect.d.ts.map +1 -1
  173. package/dist/onramp/trailsOnramp.d.ts +8 -0
  174. package/dist/onramp/trailsOnramp.d.ts.map +1 -1
  175. package/dist/onrampClient.d.ts.map +1 -1
  176. package/dist/prepareSend.d.ts +3 -2
  177. package/dist/prepareSend.d.ts.map +1 -1
  178. package/dist/query/intentProtocol.queries.d.ts +32 -0
  179. package/dist/query/intentProtocol.queries.d.ts.map +1 -0
  180. package/dist/recover.d.ts +70 -24
  181. package/dist/recover.d.ts.map +1 -1
  182. package/dist/src-4HYDQv2T.js +48798 -0
  183. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts +2 -3
  184. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts.map +1 -1
  185. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts +2 -3
  186. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts.map +1 -1
  187. package/dist/transactionIntent/deposits/standardDeposit.d.ts +2 -5
  188. package/dist/transactionIntent/deposits/standardDeposit.d.ts.map +1 -1
  189. package/dist/transactionIntent/handlers/intentHandler.d.ts +4 -4
  190. package/dist/transactionIntent/handlers/intentHandler.d.ts.map +1 -1
  191. package/dist/transactionIntent/quote/quoteHelpers.d.ts +2 -2
  192. package/dist/transactionIntent/quote/quoteHelpers.d.ts.map +1 -1
  193. package/dist/transactionIntent/types.d.ts +3 -3
  194. package/dist/transactionIntent/types.d.ts.map +1 -1
  195. package/dist/transactions.d.ts +1 -0
  196. package/dist/transactions.d.ts.map +1 -1
  197. package/dist/umd/trails.min.js +1370 -410
  198. package/dist/utils/localStorageGc.d.ts +22 -0
  199. package/dist/utils/localStorageGc.d.ts.map +1 -0
  200. package/dist/walletUtils.d.ts.map +1 -1
  201. package/dist/widget/components/AccountIntentTransactionHistory.d.ts.map +1 -1
  202. package/dist/widget/components/ClassicSwap.d.ts.map +1 -1
  203. package/dist/widget/components/ConnectedWallets.d.ts +1 -1
  204. package/dist/widget/components/ConnectedWallets.d.ts.map +1 -1
  205. package/dist/widget/components/Earn.d.ts +2 -6
  206. package/dist/widget/components/Earn.d.ts.map +1 -1
  207. package/dist/widget/components/FeeOption.d.ts +1 -1
  208. package/dist/widget/components/FeeOption.d.ts.map +1 -1
  209. package/dist/widget/components/FeeOptions.d.ts +1 -1
  210. package/dist/widget/components/FeeOptions.d.ts.map +1 -1
  211. package/dist/widget/components/FiatSelector.d.ts +1 -1
  212. package/dist/widget/components/FiatSelector.d.ts.map +1 -1
  213. package/dist/widget/components/FiatSelectorButton.d.ts +1 -1
  214. package/dist/widget/components/FiatSelectorButton.d.ts.map +1 -1
  215. package/dist/widget/components/Fund.d.ts +1 -1
  216. package/dist/widget/components/Fund.d.ts.map +1 -1
  217. package/dist/widget/components/FundMethods.d.ts.map +1 -1
  218. package/dist/widget/components/FundingMethodSelectorButton.d.ts +1 -1
  219. package/dist/widget/components/FundingMethodSelectorButton.d.ts.map +1 -1
  220. package/dist/widget/components/MeldHistory.d.ts +1 -1
  221. package/dist/widget/components/MeldHistory.d.ts.map +1 -1
  222. package/dist/widget/components/MeldTransactionStatus.d.ts +1 -1
  223. package/dist/widget/components/MeldTransactionStatus.d.ts.map +1 -1
  224. package/dist/widget/components/MeshExchangeAccountHeader.d.ts +9 -0
  225. package/dist/widget/components/MeshExchangeAccountHeader.d.ts.map +1 -0
  226. package/dist/widget/components/OnrampHistoryRow.d.ts +1 -1
  227. package/dist/widget/components/OnrampHistoryRow.d.ts.map +1 -1
  228. package/dist/widget/components/OnrampProviderConfirmation.d.ts +1 -1
  229. package/dist/widget/components/OnrampProviderConfirmation.d.ts.map +1 -1
  230. package/dist/widget/components/Pay.d.ts.map +1 -1
  231. package/dist/widget/components/PoolDeposit.d.ts +2 -6
  232. package/dist/widget/components/PoolDeposit.d.ts.map +1 -1
  233. package/dist/widget/components/PoolWithdraw.d.ts +2 -2
  234. package/dist/widget/components/PoolWithdraw.d.ts.map +1 -1
  235. package/dist/widget/components/PulsatingButton.d.ts +9 -0
  236. package/dist/widget/components/PulsatingButton.d.ts.map +1 -0
  237. package/dist/widget/components/Receipt.d.ts +1 -1
  238. package/dist/widget/components/Receipt.d.ts.map +1 -1
  239. package/dist/widget/components/RecipientSelectorButton.d.ts.map +1 -1
  240. package/dist/widget/components/Recipients.d.ts.map +1 -1
  241. package/dist/widget/components/Swap.d.ts +2 -6
  242. package/dist/widget/components/Swap.d.ts.map +1 -1
  243. package/dist/widget/components/TokenList.d.ts +1 -0
  244. package/dist/widget/components/TokenList.d.ts.map +1 -1
  245. package/dist/widget/components/TokenSelector.d.ts +1 -2
  246. package/dist/widget/components/TokenSelector.d.ts.map +1 -1
  247. package/dist/widget/components/TransactionDetails.d.ts +1 -0
  248. package/dist/widget/components/TransactionDetails.d.ts.map +1 -1
  249. package/dist/widget/components/TransactionHistoryItem.d.ts +1 -0
  250. package/dist/widget/components/TransactionHistoryItem.d.ts.map +1 -1
  251. package/dist/widget/components/TransferPendingVertical.d.ts +1 -1
  252. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -1
  253. package/dist/widget/components/WalletAccountHeader.d.ts +7 -0
  254. package/dist/widget/components/WalletAccountHeader.d.ts.map +1 -0
  255. package/dist/widget/components/WalletConfirmation.d.ts +2 -1
  256. package/dist/widget/components/WalletConfirmation.d.ts.map +1 -1
  257. package/dist/widget/components/WalletConnect.d.ts.map +1 -1
  258. package/dist/widget/components/WidgetProviders.d.ts.map +1 -1
  259. package/dist/widget/components/Withdraw.d.ts.map +1 -1
  260. package/dist/widget/index.d.ts +13 -0
  261. package/dist/widget/index.d.ts.map +1 -1
  262. package/dist/widget/index.js +16 -8
  263. package/dist/widget/modes/EarnWidget.d.ts +83 -0
  264. package/dist/widget/modes/EarnWidget.d.ts.map +1 -0
  265. package/dist/widget/modes/FundWidget.d.ts +103 -0
  266. package/dist/widget/modes/FundWidget.d.ts.map +1 -0
  267. package/dist/widget/modes/PayWidget.d.ts +86 -0
  268. package/dist/widget/modes/PayWidget.d.ts.map +1 -0
  269. package/dist/widget/modes/SwapWidget.d.ts +82 -0
  270. package/dist/widget/modes/SwapWidget.d.ts.map +1 -0
  271. package/dist/widget/modes/WithdrawWidget.d.ts +71 -0
  272. package/dist/widget/modes/WithdrawWidget.d.ts.map +1 -0
  273. package/dist/widget/providers/TrailsProvider.d.ts +3 -0
  274. package/dist/widget/providers/TrailsProvider.d.ts.map +1 -1
  275. package/dist/widget/shared/mapSharedProps.d.ts +9 -0
  276. package/dist/widget/shared/mapSharedProps.d.ts.map +1 -0
  277. package/dist/widget/shared/methodMap.d.ts +18 -0
  278. package/dist/widget/shared/methodMap.d.ts.map +1 -0
  279. package/dist/widget/shared/resolution.d.ts +22 -0
  280. package/dist/widget/shared/resolution.d.ts.map +1 -0
  281. package/dist/widget/shared/resolvePaymentSource.d.ts +34 -0
  282. package/dist/widget/shared/resolvePaymentSource.d.ts.map +1 -0
  283. package/dist/widget/shared/types.d.ts +94 -0
  284. package/dist/widget/shared/types.d.ts.map +1 -0
  285. package/dist/widget/types/commonProps.d.ts +3 -7
  286. package/dist/widget/types/commonProps.d.ts.map +1 -1
  287. package/dist/widget/utils/fundMethodSwitchState.d.ts +1 -0
  288. package/dist/widget/utils/fundMethodSwitchState.d.ts.map +1 -1
  289. package/dist/widget/utils/viewManagerGuards.d.ts +1 -1
  290. package/dist/widget/utils/viewManagerGuards.d.ts.map +1 -1
  291. package/dist/widget/widget.d.ts +21 -16
  292. package/dist/widget/widget.d.ts.map +1 -1
  293. package/package.json +17 -23
  294. package/dist/buffer.d.ts +0 -3
  295. package/dist/buffer.d.ts.map +0 -1
  296. package/dist/ccip-CT_An6eM.js +0 -230
  297. package/dist/index-RfqL5Foz.js +0 -114567
  298. package/dist/paymasterSend.d.ts +0 -90
  299. package/dist/paymasterSend.d.ts.map +0 -1
  300. package/dist/sendUserOp.d.ts +0 -122
  301. package/dist/sendUserOp.d.ts.map +0 -1
  302. package/dist/toSimpleSmartAccount.d.ts +0 -95
  303. package/dist/toSimpleSmartAccount.d.ts.map +0 -1
  304. package/dist/transactionIntent/utils/erc20Approval.d.ts +0 -34
  305. package/dist/transactionIntent/utils/erc20Approval.d.ts.map +0 -1
  306. package/dist/utils/allowance.d.ts +0 -19
  307. package/dist/utils/allowance.d.ts.map +0 -1
  308. package/dist/widget/analytics/useWidgetAnalytics.d.ts.map +0 -1
  309. package/dist/widget/components/FeeBreakdown.d.ts +0 -9
  310. package/dist/widget/components/FeeBreakdown.d.ts.map +0 -1
  311. package/dist/widget/components/HideBalances.d.ts +0 -4
  312. package/dist/widget/components/HideBalances.d.ts.map +0 -1
  313. package/dist/widget/components/MeshExchangeSelection.d.ts.map +0 -1
  314. package/dist/widget/components/OnrampDeposit.d.ts +0 -10
  315. package/dist/widget/components/OnrampDeposit.d.ts.map +0 -1
  316. package/dist/widget/components/SwapSettings.d.ts +0 -4
  317. package/dist/widget/components/SwapSettings.d.ts.map +0 -1
  318. package/dist/widget/components/TruncatedAddress.d.ts +0 -12
  319. package/dist/widget/components/TruncatedAddress.d.ts.map +0 -1
  320. package/dist/widget/components/WalletImage.d.ts +0 -8
  321. package/dist/widget/components/WalletImage.d.ts.map +0 -1
  322. package/dist/widget/css/compiled.css +0 -26
  323. package/dist/widget/css/index.css +0 -686
  324. package/dist/widget/hooks/useAddressWalletIcon.d.ts.map +0 -1
  325. package/dist/widget/hooks/useAmountUsd.d.ts.map +0 -1
  326. package/dist/widget/hooks/useBalanceVisible.d.ts.map +0 -1
  327. package/dist/widget/hooks/useChainFilter.d.ts.map +0 -1
  328. package/dist/widget/hooks/useCheckout.d.ts.map +0 -1
  329. package/dist/widget/hooks/useClickTracking.d.ts.map +0 -1
  330. package/dist/widget/hooks/useCombinedHistory.d.ts.map +0 -1
  331. package/dist/widget/hooks/useConnector.d.ts.map +0 -1
  332. package/dist/widget/hooks/useCustomTokenSearch.d.ts.map +0 -1
  333. package/dist/widget/hooks/useDebounce.d.ts.map +0 -1
  334. package/dist/widget/hooks/useDebugScreens.d.ts.map +0 -1
  335. package/dist/widget/hooks/useDefaultDestinationToken.d.ts.map +0 -1
  336. package/dist/widget/hooks/useDefaultOriginToken.d.ts.map +0 -1
  337. package/dist/widget/hooks/useDepositMonitor.d.ts.map +0 -1
  338. package/dist/widget/hooks/useDestinationSelectedToken.d.ts.map +0 -1
  339. package/dist/widget/hooks/useDisplayCurrencyPreference.d.ts.map +0 -1
  340. package/dist/widget/hooks/useEarnPool.d.ts.map +0 -1
  341. package/dist/widget/hooks/useExecutingIntentsCount.d.ts.map +0 -1
  342. package/dist/widget/hooks/useExternalFundingReceiptSync.d.ts.map +0 -1
  343. package/dist/widget/hooks/useFiatOnRampCurrencies.d.ts.map +0 -1
  344. package/dist/widget/hooks/useFiatSelectedCurrency.d.ts.map +0 -1
  345. package/dist/widget/hooks/useGetIntent.d.ts.map +0 -1
  346. package/dist/widget/hooks/useIntentReceiptBalances.d.ts.map +0 -1
  347. package/dist/widget/hooks/useIntentTransactionHistory.d.ts.map +0 -1
  348. package/dist/widget/hooks/useIsConnectedWalletSmartContract.d.ts +0 -7
  349. package/dist/widget/hooks/useIsConnectedWalletSmartContract.d.ts.map +0 -1
  350. package/dist/widget/hooks/useIsMobile.d.ts.map +0 -1
  351. package/dist/widget/hooks/useIsSequenceWallet.d.ts.map +0 -1
  352. package/dist/widget/hooks/useLocalePreference.d.ts.map +0 -1
  353. package/dist/widget/hooks/useMeldTransactionHistory.d.ts.map +0 -1
  354. package/dist/widget/hooks/useMeldTransactionStatus.d.ts.map +0 -1
  355. package/dist/widget/hooks/useOnRampCountryDefaults.d.ts.map +0 -1
  356. package/dist/widget/hooks/useOnRampPaymentMethods.d.ts.map +0 -1
  357. package/dist/widget/hooks/useOnRampProviderWidget.d.ts.map +0 -1
  358. package/dist/widget/hooks/useOnRampQuote.d.ts.map +0 -1
  359. package/dist/widget/hooks/useOnRampTransactionStatus.d.ts.map +0 -1
  360. package/dist/widget/hooks/useOriginSelectedToken.d.ts.map +0 -1
  361. package/dist/widget/hooks/usePayMessage.d.ts.map +0 -1
  362. package/dist/widget/hooks/usePriceImpactWarning.d.ts.map +0 -1
  363. package/dist/widget/hooks/useQuote.d.ts +0 -378
  364. package/dist/widget/hooks/useQuote.d.ts.map +0 -1
  365. package/dist/widget/hooks/useRecentTokens.d.ts.map +0 -1
  366. package/dist/widget/hooks/useRecipients.d.ts.map +0 -1
  367. package/dist/widget/hooks/useScreenTracking.d.ts +0 -2
  368. package/dist/widget/hooks/useScreenTracking.d.ts.map +0 -1
  369. package/dist/widget/hooks/useSelectedFeeOption.d.ts.map +0 -1
  370. package/dist/widget/hooks/useSelectedFundMethod.d.ts.map +0 -1
  371. package/dist/widget/hooks/useSelectedRecipient.d.ts.map +0 -1
  372. package/dist/widget/hooks/useSendForm.d.ts.map +0 -1
  373. package/dist/widget/hooks/useSwapAmount.d.ts.map +0 -1
  374. package/dist/widget/hooks/useSwapState.d.ts.map +0 -1
  375. package/dist/widget/hooks/useTargetAmount.d.ts.map +0 -1
  376. package/dist/widget/hooks/useTheme.d.ts.map +0 -1
  377. package/dist/widget/hooks/useTokenList.d.ts.map +0 -1
  378. package/dist/widget/hooks/useTrailsSendTransaction.d.ts.map +0 -1
  379. package/dist/widget/hooks/useViewManager.d.ts.map +0 -1
  380. package/dist/widget/hooks/useWalletConnectUri.d.ts +0 -11
  381. package/dist/widget/hooks/useWalletConnectUri.d.ts.map +0 -1
  382. package/dist/widget/hooks/useWalletConnectionContext.d.ts.map +0 -1
  383. package/dist/widget/hooks/useWidgetProps.d.ts.map +0 -1
  384. package/dist/widget/types.d.ts +0 -44
  385. package/dist/widget/types.d.ts.map +0 -1
  386. package/dist/widget/utils/historyUtils.d.ts +0 -18
  387. package/dist/widget/utils/historyUtils.d.ts.map +0 -1
  388. package/src/abi.ts +0 -38
  389. package/src/abis/erc20.ts +0 -60
  390. package/src/abis/trailsHydrate.ts +0 -185
  391. package/src/abis/trailsRouter.ts +0 -121
  392. package/src/abis/trailsSweep.ts +0 -32
  393. package/src/abortController.ts +0 -35
  394. package/src/analytics.ts +0 -2029
  395. package/src/buffer.ts +0 -10
  396. package/src/chainSwitch.ts +0 -95
  397. package/src/chains.ts +0 -570
  398. package/src/config.ts +0 -118
  399. package/src/constants.ts +0 -239
  400. package/src/contractUtils.ts +0 -46
  401. package/src/cssUtils.ts +0 -5
  402. package/src/customChains.ts +0 -24
  403. package/src/customTokens.ts +0 -168
  404. package/src/decoders.ts +0 -365
  405. package/src/ens.ts +0 -74
  406. package/src/error.ts +0 -268
  407. package/src/estimate.ts +0 -480
  408. package/src/explorer.ts +0 -38
  409. package/src/fees.ts +0 -362
  410. package/src/gasless.ts +0 -638
  411. package/src/index.ts +0 -205
  412. package/src/indexerClient.ts +0 -118
  413. package/src/intentReceiptMonitor.ts +0 -99
  414. package/src/intentReceiptPoller.ts +0 -327
  415. package/src/intents.ts +0 -1133
  416. package/src/keyMachineClient.ts +0 -29
  417. package/src/keymachine/index.ts +0 -175
  418. package/src/keymachine/key-machine.gen.ts +0 -993
  419. package/src/localeUtils.ts +0 -244
  420. package/src/logger/index.ts +0 -95
  421. package/src/logger/useSyncLoggerDebug.ts +0 -11
  422. package/src/logger.ts +0 -1
  423. package/src/meld/components/MeldCountriesList.tsx +0 -237
  424. package/src/meld/components/MeldFundMethods.tsx +0 -265
  425. package/src/meld/components/MeldProvidersList.tsx +0 -187
  426. package/src/meld/components/MeldTokensList.tsx +0 -321
  427. package/src/meld/components/SimpleHeader.tsx +0 -35
  428. package/src/meld/utils/meld.ts +0 -77
  429. package/src/mutations.ts +0 -166
  430. package/src/onramp/MeshConnectFlow.tsx +0 -86
  431. package/src/onramp/MeshConnectIframe.tsx +0 -661
  432. package/src/onramp/SendFromExchangeButton.tsx +0 -81
  433. package/src/onramp/TrailsOnRampProvider.tsx +0 -59
  434. package/src/onramp/index.ts +0 -31
  435. package/src/onramp/meshconnect.ts +0 -277
  436. package/src/onramp/trailsOnramp.tsx +0 -130
  437. package/src/onramp-client/index.ts +0 -52
  438. package/src/onrampClient.ts +0 -46
  439. package/src/paymasterSend.ts +0 -521
  440. package/src/placeholder.ts +0 -92
  441. package/src/poolUtils.ts +0 -222
  442. package/src/pools.ts +0 -120
  443. package/src/prepareSend.ts +0 -553
  444. package/src/query/balance.fetchers.ts +0 -753
  445. package/src/query/balance.hooks.ts +0 -357
  446. package/src/query/balance.queries.ts +0 -307
  447. package/src/query/chains.hooks.ts +0 -45
  448. package/src/query/chains.queries.ts +0 -17
  449. package/src/query/client.ts +0 -20
  450. package/src/query/fiat.fetchers.ts +0 -33
  451. package/src/query/fiat.hooks.ts +0 -71
  452. package/src/query/fiat.queries.ts +0 -67
  453. package/src/query/geo.fetchers.ts +0 -100
  454. package/src/query/geo.hooks.ts +0 -16
  455. package/src/query/geo.queries.ts +0 -36
  456. package/src/query/helpers.ts +0 -81
  457. package/src/query/meld.fetchers.ts +0 -97
  458. package/src/query/meld.hooks.ts +0 -18
  459. package/src/query/meld.queries.ts +0 -184
  460. package/src/query/persister.ts +0 -11
  461. package/src/query/price.fetchers.ts +0 -53
  462. package/src/query/price.hooks.ts +0 -46
  463. package/src/query/price.queries.ts +0 -364
  464. package/src/query/tokenList.queries.ts +0 -118
  465. package/src/queryParams.ts +0 -100
  466. package/src/recover.ts +0 -1728
  467. package/src/sendUserOp.ts +0 -512
  468. package/src/theme.ts +0 -2
  469. package/src/toSimpleSmartAccount.ts +0 -567
  470. package/src/toast.ts +0 -110
  471. package/src/tokens.ts +0 -1862
  472. package/src/trailsClient.ts +0 -40
  473. package/src/transactionIntent/constants.ts +0 -15
  474. package/src/transactionIntent/deposits/depositOrchestrator.ts +0 -243
  475. package/src/transactionIntent/deposits/gaslessDeposit.ts +0 -705
  476. package/src/transactionIntent/deposits/index.ts +0 -3
  477. package/src/transactionIntent/deposits/standardDeposit.ts +0 -590
  478. package/src/transactionIntent/execution/index.ts +0 -1
  479. package/src/transactionIntent/execution/transactionState.ts +0 -38
  480. package/src/transactionIntent/handlers/index.ts +0 -1
  481. package/src/transactionIntent/handlers/intentHandler.ts +0 -1613
  482. package/src/transactionIntent/helpers/index.ts +0 -1
  483. package/src/transactionIntent/helpers/transactionStateHelpers.ts +0 -440
  484. package/src/transactionIntent/index.ts +0 -10
  485. package/src/transactionIntent/quote/feeExtractors.ts +0 -61
  486. package/src/transactionIntent/quote/index.ts +0 -3
  487. package/src/transactionIntent/quote/normalizeQuote.ts +0 -559
  488. package/src/transactionIntent/quote/quoteHelpers.ts +0 -117
  489. package/src/transactionIntent/types.ts +0 -241
  490. package/src/transactionIntent/utils/balanceChecker.ts +0 -103
  491. package/src/transactionIntent/utils/erc20Approval.ts +0 -171
  492. package/src/transactionIntent/utils/index.ts +0 -2
  493. package/src/transactionIntent/utils/resilientDepositTracker.ts +0 -171
  494. package/src/transactionIntent/utils/testnetHelpers.ts +0 -5
  495. package/src/transactionIntent/validators.ts +0 -27
  496. package/src/transactions.ts +0 -429
  497. package/src/types.d.ts +0 -16
  498. package/src/umd.tsx +0 -33
  499. package/src/utils/address.ts +0 -78
  500. package/src/utils/allowance.ts +0 -47
  501. package/src/utils/fiat.ts +0 -32
  502. package/src/utils/format.ts +0 -625
  503. package/src/utils/passthrough.ts +0 -93
  504. package/src/utils/time.ts +0 -118
  505. package/src/utils/validation.ts +0 -104
  506. package/src/utils.ts +0 -112
  507. package/src/version.ts +0 -8
  508. package/src/vite-env.d.ts +0 -4
  509. package/src/walletUtils.ts +0 -293
  510. package/src/wallets.ts +0 -544
  511. package/src/widget/analytics/useWidgetAnalytics.ts +0 -56
  512. package/src/widget/assets/Exchange-icon-black.svg +0 -5
  513. package/src/widget/assets/MetaMask-icon-fox-with-margins.svg +0 -31
  514. package/src/widget/assets/MetaMask-icon-fox.svg +0 -26
  515. package/src/widget/assets/MetaMask-logo-black.svg +0 -3
  516. package/src/widget/assets/MetaMask-logo-white.svg +0 -16
  517. package/src/widget/assets/Trails-logo-black.svg +0 -13
  518. package/src/widget/assets/Trails-logo-white.svg +0 -13
  519. package/src/widget/assets/WalletChange-black.svg +0 -5
  520. package/src/widget/assets/WalletConnect-logo-black.svg +0 -14
  521. package/src/widget/assets/WalletConnect-logo-blue.svg +0 -14
  522. package/src/widget/assets/WalletConnect-logo-white.svg +0 -14
  523. package/src/widget/assets/WalletConnect-logo.svg +0 -40
  524. package/src/widget/assets/aave.svg +0 -14
  525. package/src/widget/assets/morpho.svg +0 -14
  526. package/src/widget/compiled.css +0 -26
  527. package/src/widget/components/AccountActionsDropdown.tsx +0 -31
  528. package/src/widget/components/AccountIntentTransactionHistory.tsx +0 -756
  529. package/src/widget/components/AccountIntentTransactionHistoryButton.tsx +0 -34
  530. package/src/widget/components/AccountSettings.tsx +0 -168
  531. package/src/widget/components/AddressOrEnsName.tsx +0 -24
  532. package/src/widget/components/AddressWalletIcon.tsx +0 -49
  533. package/src/widget/components/AllChainsIcon.tsx +0 -54
  534. package/src/widget/components/ChainFilterDropdown.tsx +0 -220
  535. package/src/widget/components/ChainImage.tsx +0 -40
  536. package/src/widget/components/ChainList.tsx +0 -158
  537. package/src/widget/components/ClassicSwap.tsx +0 -1761
  538. package/src/widget/components/ConfigDisplay.tsx +0 -158
  539. package/src/widget/components/ConnectWallet.tsx +0 -566
  540. package/src/widget/components/ConnectedWallets.tsx +0 -414
  541. package/src/widget/components/CopyButton.tsx +0 -108
  542. package/src/widget/components/CountryFilterDropdown.tsx +0 -179
  543. package/src/widget/components/DebugMenu.tsx +0 -50
  544. package/src/widget/components/DebugScreensList.tsx +0 -70
  545. package/src/widget/components/DebugToast.tsx +0 -63
  546. package/src/widget/components/DepositTracker.tsx +0 -326
  547. package/src/widget/components/DirectTransfer.tsx +0 -305
  548. package/src/widget/components/Disconnect.tsx +0 -68
  549. package/src/widget/components/DynamicInputStyles.tsx +0 -121
  550. package/src/widget/components/DynamicSizeInputField.tsx +0 -245
  551. package/src/widget/components/ENSAvatar.tsx +0 -33
  552. package/src/widget/components/Earn.tsx +0 -160
  553. package/src/widget/components/EarnPools.tsx +0 -417
  554. package/src/widget/components/EarnPoolsFilters.tsx +0 -165
  555. package/src/widget/components/ErrorAnimationIcon.tsx +0 -130
  556. package/src/widget/components/ErrorDisplay.tsx +0 -152
  557. package/src/widget/components/ExecutingIntentsBadge.tsx +0 -24
  558. package/src/widget/components/ExecutionStatusBadge.tsx +0 -53
  559. package/src/widget/components/FeeBreakdown.tsx +0 -155
  560. package/src/widget/components/FeeOption.tsx +0 -170
  561. package/src/widget/components/FeeOptions.tsx +0 -247
  562. package/src/widget/components/FiatSelector.tsx +0 -308
  563. package/src/widget/components/FiatSelectorButton.tsx +0 -68
  564. package/src/widget/components/Footer.tsx +0 -67
  565. package/src/widget/components/Fund.tsx +0 -2463
  566. package/src/widget/components/FundMethods.tsx +0 -423
  567. package/src/widget/components/FundWalletSelection.tsx +0 -60
  568. package/src/widget/components/FundingMethodSelectorButton.tsx +0 -106
  569. package/src/widget/components/GreenCheckAnimation.tsx +0 -119
  570. package/src/widget/components/HideBalances.tsx +0 -24
  571. package/src/widget/components/HighPriceImpactBlock.tsx +0 -44
  572. package/src/widget/components/HookModalContent.tsx +0 -377
  573. package/src/widget/components/Identicon.tsx +0 -228
  574. package/src/widget/components/LoadingSpinner.tsx +0 -9
  575. package/src/widget/components/MeldForm.tsx +0 -780
  576. package/src/widget/components/MeldHistory.tsx +0 -433
  577. package/src/widget/components/MeldStepsFlow.tsx +0 -1651
  578. package/src/widget/components/MeldTransactionStatus.tsx +0 -255
  579. package/src/widget/components/MeshExchangeSelection.tsx +0 -218
  580. package/src/widget/components/Modal.tsx +0 -86
  581. package/src/widget/components/OFTProgressBar.tsx +0 -89
  582. package/src/widget/components/OnRampProviderSelector.tsx +0 -263
  583. package/src/widget/components/OnrampDeposit.tsx +0 -122
  584. package/src/widget/components/OnrampErrorScreen.tsx +0 -163
  585. package/src/widget/components/OnrampHistoryRow.tsx +0 -321
  586. package/src/widget/components/OnrampPaymentMethods.tsx +0 -81
  587. package/src/widget/components/OnrampProviderConfirmation.tsx +0 -1060
  588. package/src/widget/components/OriginSelectionAmount.tsx +0 -144
  589. package/src/widget/components/OriginTransferInformation.tsx +0 -59
  590. package/src/widget/components/Pay.tsx +0 -1165
  591. package/src/widget/components/PaymentMethods.tsx +0 -198
  592. package/src/widget/components/PercentageMaxButtons.tsx +0 -112
  593. package/src/widget/components/PoolDeposit.tsx +0 -642
  594. package/src/widget/components/PoolWithdraw.tsx +0 -761
  595. package/src/widget/components/PriceImpactWarning.tsx +0 -87
  596. package/src/widget/components/QRCodeOptions.tsx +0 -65
  597. package/src/widget/components/QRCodeWalletSelect.tsx +0 -80
  598. package/src/widget/components/QrCode.tsx +0 -216
  599. package/src/widget/components/QuoteDetails.tsx +0 -1275
  600. package/src/widget/components/Receipt.tsx +0 -673
  601. package/src/widget/components/ReceiptRecoverableFunds.tsx +0 -135
  602. package/src/widget/components/RecentTokens.tsx +0 -66
  603. package/src/widget/components/RecipientSelectorButton.tsx +0 -50
  604. package/src/widget/components/Recipients.tsx +0 -413
  605. package/src/widget/components/RefundWarning.tsx +0 -61
  606. package/src/widget/components/RequiredPropsError.tsx +0 -33
  607. package/src/widget/components/ScreenHeader.tsx +0 -123
  608. package/src/widget/components/SearchInputField.tsx +0 -99
  609. package/src/widget/components/SessionTimeoutScreen.tsx +0 -103
  610. package/src/widget/components/ShadowPortal.tsx +0 -99
  611. package/src/widget/components/ShadowRootContext.tsx +0 -17
  612. package/src/widget/components/SimpleRecipientInputScreen.tsx +0 -91
  613. package/src/widget/components/SlippageToleranceSettings.tsx +0 -279
  614. package/src/widget/components/Swap.tsx +0 -50
  615. package/src/widget/components/SwapDisplay.tsx +0 -68
  616. package/src/widget/components/SwapSettings.tsx +0 -52
  617. package/src/widget/components/ThemeProvider.tsx +0 -115
  618. package/src/widget/components/ThemeSyncer.tsx +0 -47
  619. package/src/widget/components/Toast.tsx +0 -336
  620. package/src/widget/components/TokenDisplayNonSelectable.tsx +0 -40
  621. package/src/widget/components/TokenImage.tsx +0 -156
  622. package/src/widget/components/TokenList.tsx +0 -107
  623. package/src/widget/components/TokenSelector.tsx +0 -807
  624. package/src/widget/components/TokenSelectorButton.tsx +0 -123
  625. package/src/widget/components/TokenSkeleton.tsx +0 -53
  626. package/src/widget/components/Tooltip.tsx +0 -64
  627. package/src/widget/components/TrailsHookModal.tsx +0 -107
  628. package/src/widget/components/TransactionDetails.tsx +0 -534
  629. package/src/widget/components/TransactionHistoryItem.tsx +0 -767
  630. package/src/widget/components/TransferPendingVertical.tsx +0 -591
  631. package/src/widget/components/TruncatedAddress.tsx +0 -68
  632. package/src/widget/components/TruncatedTransactionHash.tsx +0 -74
  633. package/src/widget/components/UserPreferences.tsx +0 -570
  634. package/src/widget/components/WaasFeeOptions.tsx +0 -588
  635. package/src/widget/components/WalletConfirmation.tsx +0 -220
  636. package/src/widget/components/WalletConnect.tsx +0 -348
  637. package/src/widget/components/WalletConnectionPending.tsx +0 -178
  638. package/src/widget/components/WalletImage.tsx +0 -52
  639. package/src/widget/components/WalletList.tsx +0 -125
  640. package/src/widget/components/WidgetProviders.tsx +0 -82
  641. package/src/widget/components/Withdraw.tsx +0 -1106
  642. package/src/widget/components/YellowWarningAnimation.tsx +0 -146
  643. package/src/widget/hooks/useAddressWalletIcon.ts +0 -55
  644. package/src/widget/hooks/useAmountUsd.ts +0 -44
  645. package/src/widget/hooks/useBalanceVisible.tsx +0 -95
  646. package/src/widget/hooks/useChainFilter.tsx +0 -56
  647. package/src/widget/hooks/useCheckout.ts +0 -361
  648. package/src/widget/hooks/useClickTracking.ts +0 -74
  649. package/src/widget/hooks/useCombinedHistory.ts +0 -420
  650. package/src/widget/hooks/useConnector.tsx +0 -24
  651. package/src/widget/hooks/useCustomTokenSearch.tsx +0 -369
  652. package/src/widget/hooks/useDebounce.ts +0 -25
  653. package/src/widget/hooks/useDebugScreens.ts +0 -600
  654. package/src/widget/hooks/useDefaultDestinationToken.tsx +0 -179
  655. package/src/widget/hooks/useDefaultOriginToken.tsx +0 -407
  656. package/src/widget/hooks/useDepositMonitor.ts +0 -118
  657. package/src/widget/hooks/useDestinationSelectedToken.tsx +0 -310
  658. package/src/widget/hooks/useDisplayCurrencyPreference.tsx +0 -145
  659. package/src/widget/hooks/useEarnPool.tsx +0 -36
  660. package/src/widget/hooks/useExecutingIntentsCount.ts +0 -78
  661. package/src/widget/hooks/useExternalFundingReceiptSync.ts +0 -79
  662. package/src/widget/hooks/useFiatOnRampCurrencies.ts +0 -46
  663. package/src/widget/hooks/useFiatSelectedCurrency.tsx +0 -123
  664. package/src/widget/hooks/useGetIntent.ts +0 -54
  665. package/src/widget/hooks/useIntentReceiptBalances.ts +0 -141
  666. package/src/widget/hooks/useIntentTransactionHistory.ts +0 -790
  667. package/src/widget/hooks/useIsConnectedWalletSmartContract.ts +0 -43
  668. package/src/widget/hooks/useIsMobile.tsx +0 -50
  669. package/src/widget/hooks/useIsSequenceWallet.ts +0 -17
  670. package/src/widget/hooks/useLocalePreference.tsx +0 -187
  671. package/src/widget/hooks/useMeldTransactionHistory.ts +0 -184
  672. package/src/widget/hooks/useMeldTransactionStatus.ts +0 -707
  673. package/src/widget/hooks/useOnRampCountryDefaults.ts +0 -57
  674. package/src/widget/hooks/useOnRampPaymentMethods.ts +0 -72
  675. package/src/widget/hooks/useOnRampProviderWidget.ts +0 -184
  676. package/src/widget/hooks/useOnRampQuote.ts +0 -340
  677. package/src/widget/hooks/useOnRampTransactionStatus.ts +0 -196
  678. package/src/widget/hooks/useOriginSelectedToken.tsx +0 -253
  679. package/src/widget/hooks/usePayMessage.tsx +0 -496
  680. package/src/widget/hooks/usePriceImpactWarning.ts +0 -17
  681. package/src/widget/hooks/useQuote.ts +0 -1239
  682. package/src/widget/hooks/useRecentTokens.ts +0 -159
  683. package/src/widget/hooks/useRecipients.ts +0 -167
  684. package/src/widget/hooks/useScreenTracking.ts +0 -14
  685. package/src/widget/hooks/useSelectedFeeOption.tsx +0 -323
  686. package/src/widget/hooks/useSelectedFundMethod.tsx +0 -93
  687. package/src/widget/hooks/useSelectedRecipient.tsx +0 -75
  688. package/src/widget/hooks/useSendForm.ts +0 -1389
  689. package/src/widget/hooks/useSwapAmount.tsx +0 -50
  690. package/src/widget/hooks/useSwapState.tsx +0 -121
  691. package/src/widget/hooks/useTargetAmount.ts +0 -26
  692. package/src/widget/hooks/useTheme.tsx +0 -80
  693. package/src/widget/hooks/useTokenList.ts +0 -1168
  694. package/src/widget/hooks/useTrailsSendTransaction.ts +0 -987
  695. package/src/widget/hooks/useViewManager.tsx +0 -506
  696. package/src/widget/hooks/useWalletConnectUri.tsx +0 -307
  697. package/src/widget/hooks/useWalletConnectionContext.tsx +0 -128
  698. package/src/widget/hooks/useWidgetProps.tsx +0 -33
  699. package/src/widget/index.css +0 -686
  700. package/src/widget/index.tsx +0 -28
  701. package/src/widget/providers/TrailsModalProvider.tsx +0 -238
  702. package/src/widget/providers/TrailsProvider.tsx +0 -155
  703. package/src/widget/providers/UserActivityProvider.tsx +0 -78
  704. package/src/widget/providers/WidgetProviderTree.tsx +0 -90
  705. package/src/widget/styles.ts +0 -26
  706. package/src/widget/types/analytics.ts +0 -22
  707. package/src/widget/types/commonProps.ts +0 -56
  708. package/src/widget/types/svg.d.ts +0 -8
  709. package/src/widget/types.ts +0 -51
  710. package/src/widget/utils/countryUtils.ts +0 -89
  711. package/src/widget/utils/createWagmiConfig.ts +0 -43
  712. package/src/widget/utils/forexRateStore.ts +0 -120
  713. package/src/widget/utils/fundMethodSwitchState.ts +0 -27
  714. package/src/widget/utils/historyFilters.ts +0 -157
  715. package/src/widget/utils/historyUtils.ts +0 -101
  716. package/src/widget/utils/localeStore.ts +0 -68
  717. package/src/widget/utils/meldProviderUtils.ts +0 -26
  718. package/src/widget/utils/meshSupportedTokens.ts +0 -28
  719. package/src/widget/utils/onrampConfig.ts +0 -15
  720. package/src/widget/utils/statusLabel.ts +0 -3
  721. package/src/widget/utils/tokens.ts +0 -138
  722. package/src/widget/utils/trailsOnrampConfig.ts +0 -39
  723. package/src/widget/utils/transactionFailure.ts +0 -52
  724. package/src/widget/utils/viewManagerGuards.ts +0 -49
  725. package/src/widget/utils/windowUtils.ts +0 -138
  726. package/src/widget/widget.tsx +0 -3400
  727. /package/dist/{widget/hooks → hooks}/useAddressWalletIcon.d.ts +0 -0
  728. /package/dist/{widget/hooks → hooks}/useAmountUsd.d.ts +0 -0
  729. /package/dist/{widget/hooks → hooks}/useBalanceVisible.d.ts +0 -0
  730. /package/dist/{widget/hooks → hooks}/useChainFilter.d.ts +0 -0
  731. /package/dist/{widget/hooks → hooks}/useClickTracking.d.ts +0 -0
  732. /package/dist/{widget/hooks → hooks}/useConnector.d.ts +0 -0
  733. /package/dist/{widget/hooks → hooks}/useDebounce.d.ts +0 -0
  734. /package/dist/{widget/hooks → hooks}/useDepositMonitor.d.ts +0 -0
  735. /package/dist/{widget/hooks → hooks}/useDisplayCurrencyPreference.d.ts +0 -0
  736. /package/dist/{widget/hooks → hooks}/useExecutingIntentsCount.d.ts +0 -0
  737. /package/dist/{widget/hooks → hooks}/useFiatSelectedCurrency.d.ts +0 -0
  738. /package/dist/{widget/hooks → hooks}/useGetIntent.d.ts +0 -0
  739. /package/dist/{widget/hooks → hooks}/useIsMobile.d.ts +0 -0
  740. /package/dist/{widget/hooks → hooks}/useIsSequenceWallet.d.ts +0 -0
  741. /package/dist/{widget/hooks → hooks}/useLocalePreference.d.ts +0 -0
  742. /package/dist/{widget/hooks → hooks}/useMeldTransactionHistory.d.ts +0 -0
  743. /package/dist/{widget/hooks → hooks}/useMeldTransactionStatus.d.ts +0 -0
  744. /package/dist/{widget/hooks → hooks}/useOnRampCountryDefaults.d.ts +0 -0
  745. /package/dist/{widget/hooks → hooks}/usePayMessage.d.ts +0 -0
  746. /package/dist/{widget/hooks → hooks}/usePriceImpactWarning.d.ts +0 -0
  747. /package/dist/{widget/hooks → hooks}/useRecipients.d.ts +0 -0
  748. /package/dist/{widget/hooks → hooks}/useSelectedFeeOption.d.ts +0 -0
  749. /package/dist/{widget/hooks → hooks}/useSelectedRecipient.d.ts +0 -0
  750. /package/dist/{widget/hooks → hooks}/useSwapAmount.d.ts +0 -0
  751. /package/dist/{widget/hooks → hooks}/useTargetAmount.d.ts +0 -0
  752. /package/dist/{widget/hooks → hooks}/useTheme.d.ts +0 -0
  753. /package/dist/{widget/hooks → hooks}/useWalletConnectionContext.d.ts +0 -0
@@ -1,1168 +0,0 @@
1
- import type { Address } from "ox"
2
- import { useEffect, useMemo, useState } from "react"
3
- import { isAddress, zeroAddress } from "viem"
4
- import { useAccount } from "wagmi"
5
- import { useQuery } from "@tanstack/react-query"
6
- import { getChainInfo } from "../../chains.js"
7
- import { useSupportedChains } from "../../query/chains.hooks.js"
8
- import type { Token } from "../../tokens.js"
9
- import {
10
- addressEqual,
11
- isNativeToken as isNativeTokenUtil,
12
- normalizeAddress,
13
- } from "../../utils/address.js"
14
- import { isValidDecimals } from "../../utils/validation.js"
15
- import {
16
- useAccountTotalBalanceUsd,
17
- useHasSufficientBalanceUsd,
18
- useTokenBalances,
19
- WIDGET_REFRESH_INTERVAL,
20
- } from "../../query/balance.hooks.js"
21
- import {
22
- formatPriceFields,
23
- formatUsdAmountDisplay,
24
- } from "../../utils/format.js"
25
- import { useSupportedTokens, useGetTokenImageUrl } from "../../tokens.js"
26
- import { useTrailsClient } from "../../trailsClient.js"
27
- import { useTokenPrices } from "../../query/price.hooks.js"
28
- import { logger } from "../../logger.js"
29
- import { useOnrampClient } from "../../onrampClient.js"
30
- import type { MeshSupportedToken } from "@0xtrails/api/onramp"
31
- import { useTrails } from "../providers/TrailsProvider.js"
32
- import { isMeshAssetSupported } from "../utils/meshSupportedTokens.js"
33
- import { getActiveMeshEnvironment } from "../utils/onrampConfig.js"
34
- import { getWidgetOnrampConfig } from "../utils/trailsOnrampConfig.js"
35
- import { DAY_MS } from "../../utils/time.js"
36
- import { useChainFilter } from "./useChainFilter.js"
37
- import { useCustomTokenSearch } from "./useCustomTokenSearch.js"
38
- import { useDebounce } from "./useDebounce.js"
39
- import { useSelectedFundMethod } from "./useSelectedFundMethod.js"
40
- import { useWidgetProps } from "./useWidgetProps.js"
41
- import type { FundMethod } from "../../transactionIntent/types.js"
42
- import { tokenListQueries } from "../../query/tokenList.queries.js"
43
-
44
- // Standard tokens for QR code and exchange modes
45
- const STANDARD_TOKENS = [
46
- "ETH",
47
- "POL",
48
- "USDC",
49
- "USDT",
50
- "DAI",
51
- "BAT",
52
- "WETH",
53
- ] as const
54
-
55
- // Type for API token info from getTokenList endpoint
56
- type ApiTokenInfo = {
57
- chainId: number
58
- address: string
59
- name: string
60
- symbol: string
61
- decimals: number
62
- supportsBridging?: boolean
63
- logoUri?: string
64
- }
65
-
66
- // Helper function to validate and clamp decimals (1-18)
67
- function validateDecimals(decimals: number): number {
68
- return Math.max(1, Math.min(18, Math.floor(decimals || 18)))
69
- }
70
-
71
- // Helper function to check if token is native
72
- function isNativeToken(token: Token | ApiTokenInfo): boolean {
73
- // Token has isNativeToken property
74
- if ("isNativeToken" in token && typeof token.isNativeToken === "boolean") {
75
- return token.isNativeToken
76
- }
77
- // ApiTokenInfo uses "address" field (intermediate type before conversion to Token)
78
- if ("address" in token) {
79
- return isNativeTokenUtil(token.address)
80
- }
81
- return false
82
- }
83
-
84
- // Helper function to get token key for mapping
85
- function getTokenKey(chainId: number, contractAddress: string): string {
86
- return `${chainId}:${normalizeAddress(contractAddress)}`
87
- }
88
-
89
- // Helper function to convert API token info to Token
90
- function convertApiTokenToToken(
91
- tokenInfo: ApiTokenInfo,
92
- getTokenImageUrl: (params: {
93
- chainId: number
94
- contractAddress: string
95
- symbol: string
96
- }) => string,
97
- ): Token {
98
- const chainInfo = getChainInfo(tokenInfo.chainId)
99
- const isNative = isNativeToken(tokenInfo)
100
- const validatedDecimals = validateDecimals(tokenInfo.decimals)
101
-
102
- return {
103
- symbol: isNative
104
- ? chainInfo?.nativeCurrency.symbol || "Unknown"
105
- : tokenInfo.symbol,
106
- name: isNative
107
- ? chainInfo?.nativeCurrency.name || "Unknown"
108
- : tokenInfo.name,
109
- decimals: isNative
110
- ? chainInfo?.nativeCurrency.decimals || 18
111
- : validatedDecimals,
112
- contractAddress: isNative ? zeroAddress : tokenInfo.address,
113
- chainId: tokenInfo.chainId,
114
- chainName: chainInfo?.name || `Chain ${tokenInfo.chainId}`,
115
- imageUrl:
116
- tokenInfo.logoUri ||
117
- getTokenImageUrl({
118
- chainId: tokenInfo.chainId,
119
- contractAddress: isNative ? zeroAddress : tokenInfo.address,
120
- symbol: isNative
121
- ? chainInfo?.nativeCurrency.symbol || "Unknown"
122
- : tokenInfo.symbol,
123
- }),
124
- isNativeToken: isNative,
125
- }
126
- }
127
-
128
- // Helper function to calculate search relevance score
129
- function calculateSearchRelevanceScore(
130
- tokenSymbol: string,
131
- tokenName: string,
132
- chainName: string,
133
- queryParts: string[],
134
- ): number {
135
- let score = 0
136
-
137
- for (const part of queryParts) {
138
- // Exact symbol match gets highest priority (100 points)
139
- if (tokenSymbol === part) score += 100
140
-
141
- // Symbol starts with query gets high priority (50 points)
142
- if (tokenSymbol.startsWith(part)) score += 50
143
-
144
- // Symbol contains query gets medium priority (25 points)
145
- if (tokenSymbol.includes(part)) score += 25
146
-
147
- // Token name exact match (20 points)
148
- if (tokenName === part) score += 20
149
-
150
- // Token name starts with query (15 points)
151
- if (tokenName.startsWith(part)) score += 15
152
-
153
- // Token name contains query (10 points)
154
- if (tokenName.includes(part)) score += 10
155
-
156
- // Chain name exact match (5 points)
157
- if (chainName === part) score += 5
158
-
159
- // Chain name contains query (2 points)
160
- if (chainName.includes(part)) score += 2
161
- }
162
-
163
- return score
164
- }
165
-
166
- export type UseTokenListProps = {
167
- onContinue: (selectedToken: Token) => void
168
- targetAmountUsd?: number | null
169
- onError: (error: Error | string | null) => void
170
- fundMethod?: FundMethod | null
171
- allSupportedTokens?: boolean
172
- includePrice?: boolean
173
- balanceRefetchInterval?: number | false
174
- }
175
-
176
- export type UseTokenListReturn = {
177
- selectedToken: Token | null
178
- searchQuery: string
179
- handleTokenSelect: (token: Token) => void
180
- filteredTokens: Token[]
181
- chainFilteredTokens: Token[]
182
- /** All tokens found by findContractInfo across every supported chain (unfiltered by chain selector). */
183
- foundTokensAllChains: Token[]
184
- isLoadingSortedTokens: boolean
185
- isLoadingSearchTokens?: boolean
186
- isLoadingCustomToken: boolean
187
- isSearching: boolean // True when search is in progress (typing)
188
- customTokenError: Error | null
189
- balanceError: Error | null
190
- showContinueButton: boolean
191
- isTokenSelected: (token: Token) => boolean
192
- setSearchQuery: (query: string) => void
193
- filteredTokensFormatted: Token[]
194
- totalBalanceUsd: number
195
- totalBalanceUsdFormatted: string
196
- isLoadingTotalBalanceUsd: boolean
197
- showInsufficientBalance: boolean
198
- isLoadingTokens: boolean
199
- }
200
-
201
- export function useTokenList({
202
- onContinue,
203
- targetAmountUsd,
204
- onError,
205
- fundMethod,
206
- allSupportedTokens = false,
207
- includePrice = false,
208
- balanceRefetchInterval = WIDGET_REFRESH_INTERVAL,
209
- }: UseTokenListProps): UseTokenListReturn {
210
- const [selectedToken, setSelectedToken] = useState<Token | null>(null)
211
- const [searchQuery, setSearchQuery] = useState("")
212
- const { address } = useAccount()
213
- const trailsClient = useTrailsClient()
214
- const { getTokenImageUrl } = useGetTokenImageUrl()
215
- const shouldSkipBalanceQueries = !!fundMethod && fundMethod !== "wallet"
216
- const balanceQueryAccount = shouldSkipBalanceQueries
217
- ? null
218
- : (address as Address.Address)
219
-
220
- const {
221
- sortedTokens: allSortedTokens,
222
- isLoadingSortedTokens,
223
- balanceError,
224
- } = useTokenBalances(balanceQueryAccount, undefined, {
225
- disabled: shouldSkipBalanceQueries,
226
- refetchInterval: shouldSkipBalanceQueries ? false : balanceRefetchInterval,
227
- })
228
-
229
- // Only fetch the full token catalog when needed (non-wallet fund methods
230
- // or destination selector with allSupportedTokens). For the wallet source
231
- // selector we only show user balance tokens.
232
- const needsSupportedTokens =
233
- (fundMethod && fundMethod !== "wallet") || allSupportedTokens
234
- const { supportedTokens, isLoadingTokens: isLoadingSupportedTokens } =
235
- useSupportedTokens({ disabled: !needsSupportedTokens })
236
-
237
- // Get trails config for API calls
238
- const trailsConfig = useTrails()
239
- const { onramp: onrampFactory } = useWidgetProps()
240
- const { selectedMeshExchange } = useSelectedFundMethod()
241
- const onrampClient = useOnrampClient()
242
- const meshOnrampConfig = getWidgetOnrampConfig(onrampFactory)
243
- const meshEnvironment = getActiveMeshEnvironment(meshOnrampConfig)
244
- const meshEnabled = !!meshOnrampConfig?.mesh
245
- const meshAllowedExchanges = meshOnrampConfig?.mesh?.exchanges ?? null
246
- const activeMeshIntegrationIds = selectedMeshExchange
247
- ? [selectedMeshExchange.integrationId]
248
- : null
249
- const activeMeshExchangeKeys = selectedMeshExchange
250
- ? null
251
- : meshAllowedExchanges
252
-
253
- // Get supported chains for getTokenList API
254
- const { data: supportedChains = [] } = useSupportedChains()
255
-
256
- // Get chain filter for destination token list
257
- const { selectedChainId: filterByChainId } = useChainFilter()
258
-
259
- // Only use API search for exchange/meld/qr-code modes or when allSupportedTokens is true
260
- // (where we show all tokens, not just user balances)
261
- // For other modes, we only filter user's token balances locally
262
- const shouldUseApiSearch =
263
- (fundMethod && fundMethod !== "wallet") || allSupportedTokens
264
- const shouldFilterMeshTokens =
265
- fundMethod === "onramp-mesh" && !allSupportedTokens
266
-
267
- // Memoize chain IDs to avoid recalculating
268
- const apiSearchChainIds = useMemo(
269
- () => supportedChains.map((chain) => chain.id),
270
- [supportedChains],
271
- )
272
-
273
- // Check if search query is an address
274
- const trimmedSearchQuery = useMemo(() => searchQuery.trim(), [searchQuery])
275
- // Debounce the search query to avoid excessive API calls (300ms delay)
276
- const debouncedSearchQuery = useDebounce(trimmedSearchQuery, 300)
277
- const isSearchQueryAddress = useMemo(
278
- () => (debouncedSearchQuery ? isAddress(debouncedSearchQuery) : false),
279
- [debouncedSearchQuery],
280
- )
281
-
282
- // Track if user is actively typing (search query changed but debounce hasn't fired yet)
283
- const isSearchPending = trimmedSearchQuery !== debouncedSearchQuery
284
-
285
- // Call getTokenList API when there's a search query (for any search, not just addresses)
286
- const { data: searchTokensResult, isLoading: isLoadingSearchTokens } =
287
- useQuery({
288
- ...tokenListQueries.search(
289
- trailsClient,
290
- {
291
- trailsApiUrl: trailsConfig.trailsApiUrl,
292
- trailsApiKey: trailsConfig.trailsApiKey,
293
- },
294
- {
295
- searchQuery: debouncedSearchQuery,
296
- // For getTokenList, pass a chain id if selected
297
- chainIds:
298
- filterByChainId !== null ? [filterByChainId] : apiSearchChainIds,
299
- limit: 30,
300
- },
301
- ),
302
- enabled:
303
- shouldUseApiSearch &&
304
- debouncedSearchQuery.length > 0 &&
305
- !!trailsClient &&
306
- !!trailsConfig.trailsApiKey,
307
- })
308
-
309
- // Fetch tokens from getTokenList when a chain is selected (for destination token list only)
310
- // This fetches all available tokens from that chain, not just filtering existing tokens
311
- const {
312
- data: chainFilteredTokenList,
313
- isLoading: isLoadingChainFilteredTokens,
314
- } = useQuery({
315
- ...tokenListQueries.byChain(
316
- trailsClient,
317
- {
318
- trailsApiUrl: trailsConfig.trailsApiUrl,
319
- trailsApiKey: trailsConfig.trailsApiKey,
320
- },
321
- {
322
- chainId: filterByChainId,
323
- limit: 100,
324
- },
325
- ),
326
- enabled:
327
- shouldUseApiSearch &&
328
- filterByChainId !== null &&
329
- !!trailsClient &&
330
- !!trailsConfig.trailsApiKey,
331
- })
332
-
333
- const {
334
- data: meshSupportedTokens = [],
335
- isLoading: isLoadingMeshSupportedTokens,
336
- } = useQuery({
337
- queryKey: [
338
- "mesh-supported-tokens",
339
- meshEnvironment,
340
- activeMeshExchangeKeys,
341
- trailsConfig.trailsApiUrl,
342
- trailsConfig.trailsApiKey,
343
- ],
344
- queryFn: async () => {
345
- const response = await onrampClient.getMeshSupportedTokens({
346
- environment: meshEnvironment,
347
- })
348
-
349
- if (activeMeshIntegrationIds?.length) {
350
- return (response.tokens || []).filter((token: MeshSupportedToken) =>
351
- (token.integrationIds || []).some((integrationId) =>
352
- activeMeshIntegrationIds.includes(integrationId),
353
- ),
354
- )
355
- }
356
-
357
- if (!activeMeshExchangeKeys?.length) {
358
- return response.tokens || []
359
- }
360
-
361
- return (response.tokens || []).filter((token: MeshSupportedToken) =>
362
- (token.exchangeKeys || []).some((exchangeKey) =>
363
- activeMeshExchangeKeys.includes(exchangeKey),
364
- ),
365
- )
366
- },
367
- enabled:
368
- fundMethod === "onramp-mesh" &&
369
- meshEnabled &&
370
- !!trailsConfig.trailsApiKey &&
371
- !!trailsConfig.trailsApiUrl,
372
- staleTime: DAY_MS,
373
- gcTime: DAY_MS,
374
- refetchOnMount: false,
375
- refetchOnWindowFocus: false,
376
- refetchOnReconnect: false,
377
- })
378
-
379
- const isSupportedMeshToken = useMemo(
380
- () => (chainId?: number | null, symbol?: string | null) =>
381
- isMeshAssetSupported(meshSupportedTokens, chainId, symbol),
382
- [meshSupportedTokens],
383
- )
384
-
385
- // Fetch prices for supported tokens when allSupportedTokens is true OR for qr-code/exchange/meld modes
386
- const supportedTokensForPricing = useMemo(() => {
387
- if (
388
- fundMethod === "direct-transfer" ||
389
- fundMethod === "onramp-mesh" ||
390
- fundMethod === "onramp-meld"
391
- ) {
392
- // For QR code and exchange modes, get prices for the filtered tokens
393
- if (!supportedTokens?.length) return []
394
-
395
- const filteredTokens = supportedTokens.filter((token: any) => {
396
- const symbol = token.symbol.toUpperCase()
397
- return shouldFilterMeshTokens
398
- ? isSupportedMeshToken(token.chainId, token.symbol)
399
- : STANDARD_TOKENS.includes(symbol as any)
400
- })
401
-
402
- return filteredTokens.map((token: any) => ({
403
- chainId: token.chainId,
404
- tokenAddress: token.contractAddress || zeroAddress,
405
- tokenSymbol: token.symbol,
406
- }))
407
- }
408
-
409
- if (!allSupportedTokens || !supportedTokens?.length) return []
410
-
411
- return supportedTokens.map((token: any) => ({
412
- chainId: token.chainId,
413
- tokenAddress: token.contractAddress || zeroAddress,
414
- tokenSymbol: token.symbol,
415
- }))
416
- }, [
417
- allSupportedTokens,
418
- supportedTokens,
419
- fundMethod,
420
- isSupportedMeshToken,
421
- shouldFilterMeshTokens,
422
- ])
423
-
424
- const {
425
- tokenPrices: supportedTokenPrices,
426
- isLoadingTokenPrices: isLoadingSupportedTokenPrices,
427
- } = useTokenPrices(supportedTokensForPricing, !includePrice)
428
-
429
- // Determine loading state based on fund method and allSupportedTokens
430
- const isLoadingTokens =
431
- fundMethod && fundMethod !== "wallet"
432
- ? isLoadingSupportedTokens ||
433
- isLoadingSupportedTokenPrices ||
434
- isLoadingMeshSupportedTokens ||
435
- isLoadingSearchTokens ||
436
- isLoadingChainFilteredTokens
437
- : allSupportedTokens
438
- ? isLoadingSortedTokens ||
439
- isLoadingSupportedTokens ||
440
- isLoadingSupportedTokenPrices ||
441
- isLoadingChainFilteredTokens
442
- : isLoadingSortedTokens
443
-
444
- const { data: totalBalanceUsd = 0, isLoading: isLoadingTotalBalanceUsd } =
445
- useAccountTotalBalanceUsd(balanceQueryAccount)
446
- const totalBalanceUsdFormatted = formatUsdAmountDisplay(totalBalanceUsd)
447
- const {
448
- data: hasSufficientBalanceUsd = false,
449
- isLoading: isLoadingHasSufficientBalanceUsd,
450
- error: hasSufficientBalanceUsdError,
451
- } = useHasSufficientBalanceUsd(
452
- balanceQueryAccount,
453
- shouldSkipBalanceQueries ? null : targetAmountUsd,
454
- )
455
- const showContinueButton = false
456
- // Note: Supported tokens are now fetched via useSupportedTokens hook with caching
457
-
458
- // Map chain-filtered token list results to Token format
459
- // Used when a chain is selected for destination token list
460
- const chainFilteredApiTokens = useMemo(() => {
461
- const chainTokens = (chainFilteredTokenList?.tokens ?? []) as ApiTokenInfo[]
462
- if (
463
- !shouldUseApiSearch ||
464
- chainTokens.length === 0 ||
465
- filterByChainId === null
466
- ) {
467
- return []
468
- }
469
-
470
- const tokens = chainTokens
471
- .filter((tokenInfo: ApiTokenInfo) => {
472
- if (!isValidDecimals(tokenInfo.decimals)) {
473
- logger.console.warn(
474
- "[trails-sdk] Skipping token with invalid decimals:",
475
- {
476
- symbol: tokenInfo.symbol,
477
- address: tokenInfo.address,
478
- decimals: tokenInfo.decimals,
479
- },
480
- )
481
- return false
482
- }
483
- return true
484
- })
485
- .map((tokenInfo: ApiTokenInfo) =>
486
- convertApiTokenToToken(tokenInfo, getTokenImageUrl),
487
- )
488
-
489
- return shouldFilterMeshTokens
490
- ? tokens.filter((token) =>
491
- isSupportedMeshToken(token.chainId, token.symbol),
492
- )
493
- : tokens
494
- }, [
495
- chainFilteredTokenList,
496
- getTokenImageUrl,
497
- shouldUseApiSearch,
498
- filterByChainId,
499
- shouldFilterMeshTokens,
500
- isSupportedMeshToken,
501
- ])
502
-
503
- const sortedTokens = useMemo<Array<Token>>(() => {
504
- // If fundMethod is not wallet, use filtered supported tokens
505
- if (fundMethod && fundMethod !== "wallet") {
506
- // If chain filter is active and we have chain-filtered tokens, use those
507
- if (
508
- shouldUseApiSearch &&
509
- filterByChainId !== null &&
510
- chainFilteredApiTokens.length > 0
511
- ) {
512
- // Merge chain-filtered tokens with local tokens (prefer local tokens with balances)
513
- const localTokensMap = new Map<string, Token>()
514
- for (const tokenItem of allSortedTokens) {
515
- const contractAddress = tokenItem.contractAddress || zeroAddress
516
- const key = getTokenKey(tokenItem.chainId || 0, contractAddress)
517
- localTokensMap.set(key, tokenItem)
518
- }
519
-
520
- const mergedTokens: Token[] = chainFilteredApiTokens.map(
521
- (apiToken: Token) => {
522
- const contractAddress = apiToken.contractAddress || zeroAddress
523
- const key = getTokenKey(apiToken.chainId || 0, contractAddress)
524
- const localToken = localTokensMap.get(key)
525
-
526
- // If local token exists and has balance, use it; otherwise use API token
527
- return localToken && (localToken.balanceUsd || 0) > 0
528
- ? localToken
529
- : apiToken
530
- },
531
- )
532
-
533
- // Add any local tokens that weren't in API results
534
- const apiTokenKeys = new Set(
535
- mergedTokens.map((token) =>
536
- getTokenKey(
537
- token.chainId || 0,
538
- token.contractAddress || zeroAddress,
539
- ),
540
- ),
541
- )
542
- for (const localToken of allSortedTokens) {
543
- const key = getTokenKey(
544
- localToken.chainId || 0,
545
- localToken.contractAddress || zeroAddress,
546
- )
547
- if (
548
- !apiTokenKeys.has(key) &&
549
- (localToken.chainId || 0) === filterByChainId
550
- ) {
551
- mergedTokens.push(localToken)
552
- }
553
- }
554
-
555
- return shouldFilterMeshTokens
556
- ? mergedTokens.filter((token) =>
557
- isSupportedMeshToken(token.chainId, token.symbol),
558
- )
559
- : mergedTokens
560
- }
561
-
562
- // Filter to only show specific tokens for QR code and exchange modes
563
- const filteredTokens = supportedTokens.filter((token: any) => {
564
- const symbol = token.symbol.toUpperCase()
565
- return shouldFilterMeshTokens
566
- ? isSupportedMeshToken(token.chainId, token.symbol)
567
- : STANDARD_TOKENS.includes(symbol as any)
568
- })
569
-
570
- // Convert SupportedToken to Token format and add price data
571
- const tokensWithPrices: Token[] = filteredTokens.map(
572
- (token: Token): Token => {
573
- // Find price data for this token
574
- const priceData = supportedTokenPrices?.find(
575
- (p: any) =>
576
- p.token.tokenAddress?.toLowerCase() ===
577
- (token.contractAddress || zeroAddress).toLowerCase() &&
578
- Number(p.token.chainId) === Number(token.chainId),
579
- )
580
-
581
- const priceUsd = priceData?.priceUsd
582
-
583
- // Format price fields if price exists
584
- const priceFields = priceUsd ? formatPriceFields(priceUsd) : undefined
585
-
586
- // Return Token with price data
587
- return {
588
- ...token,
589
- // No balance info for QR code and exchange modes
590
- ...(priceFields && {
591
- priceUsd: priceFields.priceUsd,
592
- priceUsdFormatted: priceFields.priceUsdFormatted,
593
- priceUsdDisplay: priceFields.priceUsdDisplay,
594
- }),
595
- isSufficientBalance: true, // Always true for QR code and exchange modes
596
- }
597
- },
598
- )
599
-
600
- // Sort by price (highest first) since volume is not available
601
- const sortedMeshTokens = tokensWithPrices.sort((a, b) => {
602
- return (b.priceUsd || 0) - (a.priceUsd || 0)
603
- })
604
-
605
- return shouldFilterMeshTokens
606
- ? sortedMeshTokens.filter((token) =>
607
- isSupportedMeshToken(token.chainId, token.symbol),
608
- )
609
- : sortedMeshTokens
610
- }
611
-
612
- // If allSupportedTokens is true and chain filter is active, use chain-filtered tokens
613
- if (
614
- allSupportedTokens &&
615
- shouldUseApiSearch &&
616
- filterByChainId !== null &&
617
- chainFilteredApiTokens.length > 0
618
- ) {
619
- // Merge chain-filtered tokens with local tokens (prefer local tokens with balances)
620
- const localTokensMap = new Map<string, Token>()
621
- for (const tokenItem of allSortedTokens) {
622
- const contractAddress = tokenItem.contractAddress || zeroAddress
623
- const key = getTokenKey(tokenItem.chainId || 0, contractAddress)
624
- localTokensMap.set(key, tokenItem)
625
- }
626
-
627
- const mergedTokens: Token[] = chainFilteredApiTokens.map(
628
- (apiToken: Token) => {
629
- const contractAddress = apiToken.contractAddress || zeroAddress
630
- const key = getTokenKey(apiToken.chainId || 0, contractAddress)
631
- const localToken = localTokensMap.get(key)
632
-
633
- // If local token exists and has balance, use it; otherwise use API token
634
- return localToken && (localToken.balanceUsd || 0) > 0
635
- ? localToken
636
- : apiToken
637
- },
638
- )
639
-
640
- // Add any local tokens that weren't in API results
641
- const apiTokenKeys = new Set(
642
- mergedTokens.map((token) =>
643
- getTokenKey(token.chainId || 0, token.contractAddress || zeroAddress),
644
- ),
645
- )
646
- for (const localToken of allSortedTokens) {
647
- const key = getTokenKey(
648
- localToken.chainId || 0,
649
- localToken.contractAddress || zeroAddress,
650
- )
651
- if (
652
- !apiTokenKeys.has(key) &&
653
- (localToken.chainId || 0) === filterByChainId
654
- ) {
655
- mergedTokens.push(localToken)
656
- }
657
- }
658
-
659
- return mergedTokens
660
- }
661
-
662
- // Default behavior: use account-specific tokens (already Token[]). Chain
663
- // filtering is applied in useTokenBalances with fail-open fallback.
664
- return allSortedTokens
665
- }, [
666
- allSortedTokens,
667
- fundMethod,
668
- supportedTokens,
669
- supportedTokenPrices,
670
- isSupportedMeshToken,
671
- shouldFilterMeshTokens,
672
- shouldUseApiSearch,
673
- filterByChainId,
674
- chainFilteredApiTokens,
675
- allSupportedTokens,
676
- ])
677
-
678
- useEffect(() => {
679
- if (onError && balanceError) {
680
- onError(balanceError)
681
- }
682
- }, [balanceError, onError])
683
-
684
- const handleTokenSelect = (token: Token) => {
685
- const isNative = token.isNativeToken ?? false
686
- const decimals = token.decimals
687
- if (!decimals) {
688
- logger.console.warn(
689
- "[trails-sdk] [useTokenList] Missing decimals for token:",
690
- {
691
- token: token,
692
- chainId: token.chainId,
693
- isNative,
694
- },
695
- )
696
- onError("Decimals not found [useTokenList]")
697
- return
698
- }
699
-
700
- setSelectedToken(token)
701
- const canContinue =
702
- (!targetAmountUsd || (targetAmountUsd && hasSufficientBalanceUsd)) &&
703
- (token.isSufficientBalance ?? true)
704
-
705
- if (!canContinue) {
706
- logger.console.warn("[trails-sdk] Cannot continue with token selection", {
707
- token: token,
708
- targetAmountUsd,
709
- hasSufficientBalanceUsd,
710
- isSufficientBalance: token.isSufficientBalance,
711
- })
712
- }
713
-
714
- onContinue(token)
715
- }
716
-
717
- const isTokenSelected = (token: Token): boolean => {
718
- if (!selectedToken) return false
719
-
720
- const isNative = token.isNativeToken ?? false
721
- const selectedIsNative = selectedToken.isNativeToken ?? false
722
- return (
723
- (selectedToken.chainId || 0) === (token.chainId || 0) &&
724
- (isNative
725
- ? selectedIsNative
726
- : addressEqual(selectedToken.contractAddress, token.contractAddress))
727
- )
728
- }
729
-
730
- // Map API search results to Token format
731
- // Only used for exchange/qr-code modes
732
- const apiSearchTokens = useMemo(() => {
733
- const searchTokens = (searchTokensResult?.tokens ?? []) as ApiTokenInfo[]
734
- if (!shouldUseApiSearch || searchTokens.length === 0) {
735
- return []
736
- }
737
-
738
- const tokens = searchTokens
739
- .filter((tokenInfo: ApiTokenInfo) => {
740
- if (!isValidDecimals(tokenInfo.decimals)) {
741
- logger.console.warn(
742
- "[trails-sdk] Skipping token with invalid decimals:",
743
- {
744
- symbol: tokenInfo.symbol,
745
- address: tokenInfo.address,
746
- decimals: tokenInfo.decimals,
747
- },
748
- )
749
- return false
750
- }
751
- return true
752
- })
753
- .map((tokenInfo: ApiTokenInfo) =>
754
- convertApiTokenToToken(tokenInfo, getTokenImageUrl),
755
- )
756
-
757
- return shouldFilterMeshTokens
758
- ? tokens.filter((token) =>
759
- isSupportedMeshToken(token.chainId, token.symbol),
760
- )
761
- : tokens
762
- }, [
763
- searchTokensResult,
764
- getTokenImageUrl,
765
- shouldUseApiSearch,
766
- shouldFilterMeshTokens,
767
- isSupportedMeshToken,
768
- ])
769
-
770
- const filteredTokens = useMemo(() => {
771
- // sortedTokens is already Token[] from useTokenBalances
772
- // Only use API search results for exchange/qr-code modes
773
- if (
774
- shouldUseApiSearch &&
775
- trimmedSearchQuery &&
776
- apiSearchTokens.length > 0
777
- ) {
778
- // Create a map of local tokens by chainId and contractAddress for quick lookup
779
- const localTokensMap = new Map<string, Token>()
780
- for (const tokenItem of sortedTokens) {
781
- const contractAddress = tokenItem.contractAddress || zeroAddress
782
- const key = getTokenKey(tokenItem.chainId || 0, contractAddress)
783
- localTokensMap.set(key, tokenItem)
784
- }
785
-
786
- // Merge API results with local tokens (prefer local tokens with balances)
787
- const mergedTokens: Token[] = apiSearchTokens.map((apiToken: Token) => {
788
- const contractAddress = apiToken.contractAddress || zeroAddress
789
- const key = getTokenKey(apiToken.chainId || 0, contractAddress)
790
- const localToken = localTokensMap.get(key)
791
-
792
- // If local token exists and has balance, use it; otherwise use API token
793
- return localToken && (localToken.balanceUsd || 0) > 0
794
- ? localToken
795
- : apiToken
796
- })
797
-
798
- // Add any local tokens that weren't in API results but match the search
799
- const apiTokenKeys = new Set(
800
- mergedTokens.map((token) => {
801
- const contractAddress = token.contractAddress || zeroAddress
802
- return getTokenKey(token.chainId || 0, contractAddress)
803
- }),
804
- )
805
-
806
- const queryLower = trimmedSearchQuery.toLowerCase()
807
- for (const tokenItem of sortedTokens) {
808
- const contractAddress = tokenItem.contractAddress || zeroAddress
809
- const key = getTokenKey(tokenItem.chainId || 0, contractAddress)
810
-
811
- if (!apiTokenKeys.has(key)) {
812
- // Check if token matches search query locally
813
- const tokenSymbol = (tokenItem.symbol || "").toLowerCase()
814
- const tokenName = (tokenItem.name || "").toLowerCase()
815
-
816
- if (
817
- tokenSymbol.includes(queryLower) ||
818
- tokenName.includes(queryLower) ||
819
- normalizeAddress(contractAddress).includes(queryLower)
820
- ) {
821
- mergedTokens.push(tokenItem)
822
- }
823
- }
824
- }
825
-
826
- return mergedTokens
827
- }
828
-
829
- // Fallback to local filtering if no API results or not using API search
830
- if (!trimmedSearchQuery) {
831
- return sortedTokens
832
- }
833
-
834
- const queryLower = trimmedSearchQuery.toLowerCase()
835
- const queryParts = queryLower.split(/\s+/).filter((part) => part.length > 0)
836
-
837
- const matchingTokens = sortedTokens.filter((token: Token) => {
838
- const chainInfo = getChainInfo(token.chainId || 0)
839
- const chainName = chainInfo?.name || ""
840
- const chainNameLower = chainName.toLowerCase()
841
-
842
- const tokenSymbol = (token.symbol || "???").toLowerCase()
843
- const tokenName = (token.name || "Unknown Token").toLowerCase()
844
- const contractAddress = (
845
- token.contractAddress || zeroAddress
846
- ).toLowerCase()
847
-
848
- // If multiple query parts, check if they match chain + token combination
849
- if (queryParts.length > 1) {
850
- const matchesChain = queryParts.some((part) =>
851
- chainNameLower.includes(part),
852
- )
853
- const matchesToken = queryParts.some(
854
- (part) =>
855
- tokenSymbol.includes(part) ||
856
- tokenName.includes(part) ||
857
- contractAddress.includes(part),
858
- )
859
- return matchesChain && matchesToken
860
- }
861
-
862
- // Single query part - match against any field
863
- return queryParts.some(
864
- (part) =>
865
- tokenSymbol.includes(part) ||
866
- tokenName.includes(part) ||
867
- chainNameLower.includes(part) ||
868
- contractAddress.includes(part),
869
- )
870
- })
871
-
872
- // Sort by relevance for balance tokens too
873
- return matchingTokens.sort((a: Token, b: Token) => {
874
- const aChainInfo = getChainInfo(a.chainId || 0)
875
- const bChainInfo = getChainInfo(b.chainId || 0)
876
- const aChainName = aChainInfo?.name?.toLowerCase() || ""
877
- const bChainName = bChainInfo?.name?.toLowerCase() || ""
878
-
879
- const aTokenSymbol = (a.symbol || "???").toLowerCase()
880
- const bTokenSymbol = (b.symbol || "???").toLowerCase()
881
-
882
- const aTokenName = (a.name || "Unknown Token").toLowerCase()
883
- const bTokenName = (b.name || "Unknown Token").toLowerCase()
884
-
885
- // Calculate relevance scores using helper function
886
- const aScore = calculateSearchRelevanceScore(
887
- aTokenSymbol,
888
- aTokenName,
889
- aChainName,
890
- queryParts,
891
- )
892
- const bScore = calculateSearchRelevanceScore(
893
- bTokenSymbol,
894
- bTokenName,
895
- bChainName,
896
- queryParts,
897
- )
898
-
899
- return bScore - aScore // Higher score first
900
- })
901
- }, [sortedTokens, trimmedSearchQuery, apiSearchTokens, shouldUseApiSearch])
902
-
903
- const filteredTokensFormatted = useMemo(() => {
904
- // Get base formatted tokens - filteredTokens is already Token[]
905
- const baseFormattedTokens = filteredTokens
906
- .map((token: Token): Token | null => {
907
- const isNative = token.isNativeToken ?? false
908
- const chainInfo = getChainInfo(token.chainId || 0)
909
- const decimals = token.decimals
910
- if (!decimals) {
911
- logger.console.warn(
912
- "[trails-sdk] Missing decimals for token, skipping:",
913
- {
914
- token: token,
915
- chainId: token.chainId,
916
- isNative,
917
- },
918
- )
919
- return null // Return null to filter out tokens without decimals
920
- }
921
-
922
- let isSufficientBalance = token.isSufficientBalance ?? true
923
- if (targetAmountUsd) {
924
- isSufficientBalance = (token.balanceUsd ?? 0) >= targetAmountUsd
925
- }
926
- const chainName = token.chainName || chainInfo?.name || ""
927
-
928
- // Format price fields if not already formatted
929
- const priceFields = token.priceUsdFormatted
930
- ? undefined
931
- : token.priceUsd
932
- ? formatPriceFields(token.priceUsd)
933
- : undefined
934
-
935
- // Return Token with all formatting fields set
936
- return {
937
- ...token,
938
- balanceDisplay: token.balanceDisplay || token.balanceFormatted,
939
- priceUsdFormatted:
940
- token.priceUsdFormatted || priceFields?.priceUsdFormatted,
941
- priceUsdDisplay:
942
- token.priceUsdDisplay || priceFields?.priceUsdDisplay,
943
- balanceUsdDisplay:
944
- token.balanceUsdDisplay || token.balanceUsdFormatted,
945
- isSufficientBalance,
946
- chainName,
947
- }
948
- })
949
- .filter(Boolean) as Token[] // Filter out null values for tokens without decimals
950
-
951
- // If allSupportedTokens is true, combine with supported tokens
952
- if (allSupportedTokens) {
953
- // Create a set of existing token keys for quick lookup
954
- const existingTokenKeys = new Set(
955
- baseFormattedTokens.map(
956
- (token) =>
957
- `${token.chainId}-${normalizeAddress(token.contractAddress)}`,
958
- ),
959
- )
960
-
961
- // Add supported tokens that don't exist in the base list
962
- const additionalSupportedTokens: Token[] = supportedTokens
963
- .filter((supportedToken) => {
964
- if (
965
- shouldFilterMeshTokens &&
966
- !isSupportedMeshToken(supportedToken.chainId, supportedToken.symbol)
967
- ) {
968
- return false
969
- }
970
-
971
- const key = `${supportedToken.chainId || 0}-${normalizeAddress(supportedToken.contractAddress)}`
972
- return !existingTokenKeys.has(key)
973
- })
974
- .map((supportedToken): Token => {
975
- const chainInfo = getChainInfo(supportedToken.chainId || 0)
976
- const chainName =
977
- chainInfo?.name || `Chain ${supportedToken.chainId || 0}`
978
-
979
- // Find price data for this supported token
980
- const priceData = supportedTokenPrices?.find(
981
- (p: any) =>
982
- p.token.tokenAddress?.toLowerCase() ===
983
- (supportedToken.contractAddress || zeroAddress).toLowerCase() &&
984
- Number(p.token.chainId) === Number(supportedToken.chainId),
985
- )
986
-
987
- // Format price fields if price exists
988
- const priceFields = priceData?.priceUsd
989
- ? formatPriceFields(priceData.priceUsd)
990
- : undefined
991
-
992
- return {
993
- symbol: supportedToken.symbol,
994
- name: supportedToken.name,
995
- decimals: supportedToken.decimals,
996
- contractAddress: supportedToken.contractAddress,
997
- chainId: supportedToken.chainId,
998
- chainName: chainName,
999
- imageUrl: supportedToken.imageUrl || "",
1000
- ...(priceFields && {
1001
- priceUsd: priceFields.priceUsd,
1002
- priceUsdFormatted: priceFields.priceUsdFormatted,
1003
- priceUsdDisplay: priceFields.priceUsdDisplay,
1004
- }),
1005
- isSufficientBalance: true,
1006
- }
1007
- })
1008
- .sort((a, b) => {
1009
- // Sort supported tokens by price (highest first) since volume is not available
1010
- return (b.priceUsd || 0) - (a.priceUsd || 0)
1011
- })
1012
-
1013
- // Combine lists with base tokens taking precedence
1014
- const combinedTokens = [
1015
- ...baseFormattedTokens,
1016
- ...additionalSupportedTokens,
1017
- ]
1018
-
1019
- // Apply search filtering to combined tokens when allSupportedTokens is true
1020
- if (searchQuery.trim()) {
1021
- const query = searchQuery.toLowerCase().trim()
1022
- const queryParts = query.split(/\s+/).filter((part) => part.length > 0)
1023
-
1024
- const filteredTokens = combinedTokens.filter((token: Token) => {
1025
- const chainName = token.chainName?.toLowerCase() || ""
1026
- const tokenSymbol = token.symbol?.toLowerCase() || ""
1027
- const tokenName = token.name?.toLowerCase() || ""
1028
- const contractAddress = token.contractAddress?.toLowerCase() || ""
1029
-
1030
- // If multiple query parts, check if they match chain + token combination
1031
- if (queryParts.length > 1) {
1032
- const matchesChain = queryParts.some((part) =>
1033
- chainName.includes(part),
1034
- )
1035
- const matchesToken = queryParts.some(
1036
- (part) =>
1037
- tokenSymbol.includes(part) ||
1038
- tokenName.includes(part) ||
1039
- contractAddress.includes(part),
1040
- )
1041
- return matchesChain && matchesToken
1042
- }
1043
-
1044
- // Single query part - match against any field
1045
- return queryParts.some(
1046
- (part) =>
1047
- tokenSymbol.includes(part) ||
1048
- tokenName.includes(part) ||
1049
- chainName.includes(part) ||
1050
- contractAddress.includes(part),
1051
- )
1052
- })
1053
-
1054
- // Sort filtered tokens by relevance
1055
- return filteredTokens.sort((a, b) => {
1056
- const aChainName = a.chainName?.toLowerCase() || ""
1057
- const aTokenSymbol = a.symbol?.toLowerCase() || ""
1058
- const aTokenName = a.name?.toLowerCase() || ""
1059
- const bChainName = b.chainName?.toLowerCase() || ""
1060
- const bTokenSymbol = b.symbol?.toLowerCase() || ""
1061
- const bTokenName = b.name?.toLowerCase() || ""
1062
-
1063
- // Calculate relevance scores using helper function
1064
- const aScore = calculateSearchRelevanceScore(
1065
- aTokenSymbol,
1066
- aTokenName,
1067
- aChainName,
1068
- queryParts,
1069
- )
1070
- const bScore = calculateSearchRelevanceScore(
1071
- bTokenSymbol,
1072
- bTokenName,
1073
- bChainName,
1074
- queryParts,
1075
- )
1076
-
1077
- // If scores are equal, prefer tokens with balances
1078
- if (aScore === bScore) {
1079
- const aHasBalance = a.balance && a.balance !== ""
1080
- const bHasBalance = b.balance && b.balance !== ""
1081
- if (aHasBalance && !bHasBalance) return -1
1082
- if (!aHasBalance && bHasBalance) return 1
1083
- }
1084
-
1085
- return bScore - aScore // Higher score first
1086
- })
1087
- }
1088
-
1089
- return combinedTokens
1090
- }
1091
-
1092
- return baseFormattedTokens
1093
- }, [
1094
- filteredTokens,
1095
- targetAmountUsd,
1096
- allSupportedTokens,
1097
- supportedTokens,
1098
- supportedTokenPrices,
1099
- searchQuery,
1100
- shouldFilterMeshTokens,
1101
- isSupportedMeshToken,
1102
- ])
1103
-
1104
- const showInsufficientBalance = useMemo(() => {
1105
- return (
1106
- (totalBalanceUsd &&
1107
- targetAmountUsd &&
1108
- !hasSufficientBalanceUsd &&
1109
- !isLoadingHasSufficientBalanceUsd &&
1110
- !hasSufficientBalanceUsdError) ||
1111
- (filteredTokensFormatted?.length > 0 &&
1112
- !filteredTokensFormatted.some((token) => token.isSufficientBalance))
1113
- )
1114
- }, [
1115
- targetAmountUsd,
1116
- hasSufficientBalanceUsd,
1117
- isLoadingHasSufficientBalanceUsd,
1118
- hasSufficientBalanceUsdError,
1119
- filteredTokensFormatted,
1120
- totalBalanceUsd,
1121
- ])
1122
-
1123
- // isSearching: true when user is typing (debounce pending) or API is fetching
1124
- const isSearching = isSearchPending || isLoadingSearchTokens
1125
-
1126
- // True when an address search via the trailsApi.getTokenList has finished with zero results.
1127
- const isApiAddressSearchComplete =
1128
- isSearchQueryAddress &&
1129
- !isLoadingSearchTokens &&
1130
- !isSearchPending &&
1131
- (searchTokensResult?.tokens?.length ?? 0) === 0
1132
-
1133
- const {
1134
- chainFilteredTokens,
1135
- foundTokensAllChains,
1136
- isLoadingCustomToken,
1137
- customTokenError,
1138
- } = useCustomTokenSearch({
1139
- searchQuery,
1140
- filteredTokensFormatted,
1141
- filterByChainId,
1142
- isApiAddressSearchComplete,
1143
- })
1144
-
1145
- return {
1146
- selectedToken,
1147
- searchQuery,
1148
- handleTokenSelect,
1149
- filteredTokens,
1150
- chainFilteredTokens,
1151
- foundTokensAllChains,
1152
- isLoadingSortedTokens: isLoadingSortedTokens || isLoadingSearchTokens,
1153
- isLoadingSearchTokens,
1154
- isLoadingCustomToken,
1155
- isSearching,
1156
- customTokenError,
1157
- balanceError,
1158
- showContinueButton,
1159
- isTokenSelected,
1160
- setSearchQuery,
1161
- filteredTokensFormatted,
1162
- totalBalanceUsd,
1163
- totalBalanceUsdFormatted,
1164
- isLoadingTotalBalanceUsd,
1165
- showInsufficientBalance,
1166
- isLoadingTokens,
1167
- }
1168
- }