0xtrails 0.13.2 → 0.15.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 (844) hide show
  1. package/dist/abis/requireUtils.d.ts +134 -0
  2. package/dist/abis/requireUtils.d.ts.map +1 -0
  3. package/dist/abis/trailsHydrate.d.ts +6 -42
  4. package/dist/abis/trailsHydrate.d.ts.map +1 -1
  5. package/dist/abis/trailsRouter.d.ts +1 -1
  6. package/dist/abis/trailsRouter.d.ts.map +1 -1
  7. package/dist/actions/actionBuilder.d.ts +414 -0
  8. package/dist/actions/actionBuilder.d.ts.map +1 -0
  9. package/dist/actions/constants.d.ts +1853 -0
  10. package/dist/actions/constants.d.ts.map +1 -0
  11. package/dist/actions/custom-integrations/sushiswapV3/addresses.d.ts +4 -0
  12. package/dist/actions/custom-integrations/sushiswapV3/addresses.d.ts.map +1 -0
  13. package/dist/actions/custom-integrations/sushiswapV3/calldata.d.ts +4 -0
  14. package/dist/actions/custom-integrations/sushiswapV3/calldata.d.ts.map +1 -0
  15. package/dist/actions/custom-integrations/sushiswapV3/calls.d.ts +28 -0
  16. package/dist/actions/custom-integrations/sushiswapV3/calls.d.ts.map +1 -0
  17. package/dist/actions/custom-integrations/sushiswapV3/helpers.d.ts +15 -0
  18. package/dist/actions/custom-integrations/sushiswapV3/helpers.d.ts.map +1 -0
  19. package/dist/actions/custom-integrations/sushiswapV3/sushiswapV3.d.ts +9 -0
  20. package/dist/actions/custom-integrations/sushiswapV3/sushiswapV3.d.ts.map +1 -0
  21. package/dist/actions/custom-integrations/sushiswapV3/types.d.ts +95 -0
  22. package/dist/actions/custom-integrations/sushiswapV3/types.d.ts.map +1 -0
  23. package/dist/actions/custom-integrations/uniswapV3/addresses.d.ts +4 -0
  24. package/dist/actions/custom-integrations/uniswapV3/addresses.d.ts.map +1 -0
  25. package/dist/actions/custom-integrations/uniswapV3/calldata.d.ts +4 -0
  26. package/dist/actions/custom-integrations/uniswapV3/calldata.d.ts.map +1 -0
  27. package/dist/actions/custom-integrations/uniswapV3/calls.d.ts +50 -0
  28. package/dist/actions/custom-integrations/uniswapV3/calls.d.ts.map +1 -0
  29. package/dist/actions/custom-integrations/uniswapV3/helpers.d.ts +23 -0
  30. package/dist/actions/custom-integrations/uniswapV3/helpers.d.ts.map +1 -0
  31. package/dist/actions/custom-integrations/uniswapV3/types.d.ts +90 -0
  32. package/dist/actions/custom-integrations/uniswapV3/types.d.ts.map +1 -0
  33. package/dist/actions/custom-integrations/uniswapV3/uniswapV3.d.ts +9 -0
  34. package/dist/actions/custom-integrations/uniswapV3/uniswapV3.d.ts.map +1 -0
  35. package/dist/actions/destinationCalls.d.ts +17 -0
  36. package/dist/actions/destinationCalls.d.ts.map +1 -0
  37. package/dist/actions/dynamic.d.ts +97 -0
  38. package/dist/actions/dynamic.d.ts.map +1 -0
  39. package/dist/actions/hooks/useEarnBalances.d.ts +53 -0
  40. package/dist/actions/hooks/useEarnBalances.d.ts.map +1 -0
  41. package/dist/actions/hooks/useEarnMarkets.d.ts +29 -0
  42. package/dist/actions/hooks/useEarnMarkets.d.ts.map +1 -0
  43. package/dist/actions/hooks/useEarnProviders.d.ts +18 -0
  44. package/dist/actions/hooks/useEarnProviders.d.ts.map +1 -0
  45. package/dist/actions/hooks/useResolveActions.d.ts +28 -0
  46. package/dist/actions/hooks/useResolveActions.d.ts.map +1 -0
  47. package/dist/actions/index.d.ts +8 -0
  48. package/dist/actions/index.d.ts.map +1 -0
  49. package/dist/actions/index.js +13 -0
  50. package/dist/actions/resolvers.d.ts +30 -0
  51. package/dist/actions/resolvers.d.ts.map +1 -0
  52. package/dist/actions/types/earn.d.ts +51 -0
  53. package/dist/actions/types/earn.d.ts.map +1 -0
  54. package/dist/actions/types.d.ts +303 -0
  55. package/dist/actions/types.d.ts.map +1 -0
  56. package/dist/actions/utils.d.ts +181 -0
  57. package/dist/actions/utils.d.ts.map +1 -0
  58. package/dist/{widget/analytics → analytics/hooks}/useWidgetAnalytics.d.ts +2 -4
  59. package/dist/analytics/hooks/useWidgetAnalytics.d.ts.map +1 -0
  60. package/dist/analytics.d.ts.map +1 -1
  61. package/dist/chainSwitch.d.ts.map +1 -1
  62. package/dist/chains-DttlfV-6.js +4 -0
  63. package/dist/chains-ccVR_-73.js +655 -0
  64. package/dist/chains.d.ts +0 -1
  65. package/dist/chains.d.ts.map +1 -1
  66. package/dist/committedIntentStore.d.ts +5 -0
  67. package/dist/committedIntentStore.d.ts.map +1 -0
  68. package/dist/config.d.ts +2 -0
  69. package/dist/config.d.ts.map +1 -1
  70. package/dist/constants.d.ts +2 -1
  71. package/dist/constants.d.ts.map +1 -1
  72. package/dist/error.d.ts +73 -4
  73. package/dist/error.d.ts.map +1 -1
  74. package/dist/hooks/persistedToken.d.ts +22 -0
  75. package/dist/hooks/persistedToken.d.ts.map +1 -0
  76. package/dist/hooks/prepareTrailsSendTransactionDestination.d.ts +26 -0
  77. package/dist/hooks/prepareTrailsSendTransactionDestination.d.ts.map +1 -0
  78. package/dist/hooks/useAddressWalletIcon.d.ts.map +1 -0
  79. package/dist/hooks/useAmountUsd.d.ts.map +1 -0
  80. package/dist/hooks/useBalanceVisible.d.ts.map +1 -0
  81. package/dist/hooks/useChainFilter.d.ts.map +1 -0
  82. package/dist/{widget/hooks → hooks}/useCheckout.d.ts +15 -15
  83. package/dist/hooks/useCheckout.d.ts.map +1 -0
  84. package/dist/hooks/useClickTracking.d.ts.map +1 -0
  85. package/dist/{widget/hooks → hooks}/useCombinedHistory.d.ts +3 -2
  86. package/dist/hooks/useCombinedHistory.d.ts.map +1 -0
  87. package/dist/hooks/useConnector.d.ts.map +1 -0
  88. package/dist/{widget/hooks → hooks}/useCustomTokenSearch.d.ts +3 -2
  89. package/dist/hooks/useCustomTokenSearch.d.ts.map +1 -0
  90. package/dist/hooks/useDebounce.d.ts.map +1 -0
  91. package/dist/{widget/hooks → hooks}/useDebugScreens.d.ts +2 -2
  92. package/dist/hooks/useDebugScreens.d.ts.map +1 -0
  93. package/dist/{widget/hooks → hooks}/useDefaultDestinationToken.d.ts +1 -1
  94. package/dist/hooks/useDefaultDestinationToken.d.ts.map +1 -0
  95. package/dist/{widget/hooks → hooks}/useDefaultOriginToken.d.ts +1 -1
  96. package/dist/hooks/useDefaultOriginToken.d.ts.map +1 -0
  97. package/dist/hooks/useDepositMonitor.d.ts.map +1 -0
  98. package/dist/{widget/hooks → hooks}/useDestinationSelectedToken.d.ts +10 -2
  99. package/dist/hooks/useDestinationSelectedToken.d.ts.map +1 -0
  100. package/dist/hooks/useDisplayCurrencyPreference.d.ts.map +1 -0
  101. package/dist/{widget/hooks → hooks}/useEarnPool.d.ts +1 -1
  102. package/dist/hooks/useEarnPool.d.ts.map +1 -0
  103. package/dist/hooks/useEffectiveFundBalance.d.ts +28 -0
  104. package/dist/hooks/useEffectiveFundBalance.d.ts.map +1 -0
  105. package/dist/hooks/useExecutingIntentsCount.d.ts.map +1 -0
  106. package/dist/{widget/hooks → hooks}/useExternalFundingReceiptSync.d.ts +1 -1
  107. package/dist/hooks/useExternalFundingReceiptSync.d.ts.map +1 -0
  108. package/dist/{widget/hooks → hooks}/useFiatOnRampCurrencies.d.ts +1 -1
  109. package/dist/hooks/useFiatOnRampCurrencies.d.ts.map +1 -0
  110. package/dist/hooks/useFiatSelectedCurrency.d.ts.map +1 -0
  111. package/dist/hooks/useGetIntent.d.ts.map +1 -0
  112. package/dist/{widget/hooks → hooks}/useIntentReceiptBalances.d.ts +1 -1
  113. package/dist/hooks/useIntentReceiptBalances.d.ts.map +1 -0
  114. package/dist/{widget/hooks → hooks}/useIntentTransactionHistory.d.ts +2 -1
  115. package/dist/hooks/useIntentTransactionHistory.d.ts.map +1 -0
  116. package/dist/hooks/useIsMobile.d.ts.map +1 -0
  117. package/dist/hooks/useIsSequenceWallet.d.ts.map +1 -0
  118. package/dist/hooks/useLocalePreference.d.ts.map +1 -0
  119. package/dist/hooks/useMeldTransactionHistory.d.ts.map +1 -0
  120. package/dist/hooks/useMeldTransactionStatus.d.ts.map +1 -0
  121. package/dist/hooks/useOnRampCountryDefaults.d.ts.map +1 -0
  122. package/dist/{widget/hooks → hooks}/useOnRampPaymentMethods.d.ts +2 -2
  123. package/dist/hooks/useOnRampPaymentMethods.d.ts.map +1 -0
  124. package/dist/{widget/hooks → hooks}/useOnRampProviderWidget.d.ts +1 -1
  125. package/dist/hooks/useOnRampProviderWidget.d.ts.map +1 -0
  126. package/dist/{widget/hooks → hooks}/useOnRampQuote.d.ts +3 -3
  127. package/dist/hooks/useOnRampQuote.d.ts.map +1 -0
  128. package/dist/{widget/hooks → hooks}/useOnRampTransactionStatus.d.ts +1 -1
  129. package/dist/hooks/useOnRampTransactionStatus.d.ts.map +1 -0
  130. package/dist/{widget/hooks → hooks}/useOriginSelectedToken.d.ts +1 -1
  131. package/dist/hooks/useOriginSelectedToken.d.ts.map +1 -0
  132. package/dist/hooks/usePayMessage.d.ts.map +1 -0
  133. package/dist/hooks/usePriceImpactWarning.d.ts.map +1 -0
  134. package/dist/hooks/useQuote.d.ts +619 -0
  135. package/dist/hooks/useQuote.d.ts.map +1 -0
  136. package/dist/{widget/hooks → hooks}/useRecentTokens.d.ts +1 -1
  137. package/dist/hooks/useRecentTokens.d.ts.map +1 -0
  138. package/dist/hooks/useRecipients.d.ts.map +1 -0
  139. package/dist/hooks/useSelectedFeeOption.d.ts.map +1 -0
  140. package/dist/{widget/hooks → hooks}/useSelectedFundMethod.d.ts +11 -1
  141. package/dist/hooks/useSelectedFundMethod.d.ts.map +1 -0
  142. package/dist/hooks/useSelectedRecipient.d.ts.map +1 -0
  143. package/dist/{widget/hooks → hooks}/useSendForm.d.ts +10 -12
  144. package/dist/hooks/useSendForm.d.ts.map +1 -0
  145. package/dist/hooks/useSwapAmount.d.ts.map +1 -0
  146. package/dist/{widget/hooks → hooks}/useSwapState.d.ts +1 -1
  147. package/dist/hooks/useSwapState.d.ts.map +1 -0
  148. package/dist/hooks/useTargetAmount.d.ts.map +1 -0
  149. package/dist/hooks/useTheme.d.ts.map +1 -0
  150. package/dist/{widget/hooks → hooks}/useTokenList.d.ts +4 -3
  151. package/dist/hooks/useTokenList.d.ts.map +1 -0
  152. package/dist/hooks/useTrailsSendTransaction.d.ts +171 -0
  153. package/dist/hooks/useTrailsSendTransaction.d.ts.map +1 -0
  154. package/dist/{widget/hooks → hooks}/useViewManager.d.ts +1 -1
  155. package/dist/hooks/useViewManager.d.ts.map +1 -0
  156. package/dist/hooks/useWalletConnectUri.d.ts +19 -0
  157. package/dist/hooks/useWalletConnectUri.d.ts.map +1 -0
  158. package/dist/hooks/useWalletConnectionContext.d.ts.map +1 -0
  159. package/dist/{widget/hooks → hooks}/useWidgetProps.d.ts +1 -1
  160. package/dist/hooks/useWidgetProps.d.ts.map +1 -0
  161. package/dist/hydrate/builder.d.ts +131 -0
  162. package/dist/hydrate/builder.d.ts.map +1 -0
  163. package/dist/hydrate/constants.d.ts +13 -0
  164. package/dist/hydrate/constants.d.ts.map +1 -0
  165. package/dist/hydrate/encodeExecute.d.ts +73 -0
  166. package/dist/hydrate/encodeExecute.d.ts.map +1 -0
  167. package/dist/hydrate/index.d.ts +8 -0
  168. package/dist/hydrate/index.d.ts.map +1 -0
  169. package/dist/hydrate/index.js +14 -0
  170. package/dist/hydrate/multicall.d.ts +69 -0
  171. package/dist/hydrate/multicall.d.ts.map +1 -0
  172. package/dist/hydrate/payload.d.ts +38 -0
  173. package/dist/hydrate/payload.d.ts.map +1 -0
  174. package/dist/hydrate/selectors.d.ts +28 -0
  175. package/dist/hydrate/selectors.d.ts.map +1 -0
  176. package/dist/hydrate/source.d.ts +11 -0
  177. package/dist/hydrate/source.d.ts.map +1 -0
  178. package/dist/hydrate/types.d.ts +21 -0
  179. package/dist/hydrate/types.d.ts.map +1 -0
  180. package/dist/hydrate/utils.d.ts +8 -0
  181. package/dist/hydrate/utils.d.ts.map +1 -0
  182. package/dist/hydrate-BsQ8nPlI.js +882 -0
  183. package/dist/index.d.ts +47 -14
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +189 -662
  186. package/dist/intentConfigStore.d.ts +8 -0
  187. package/dist/intentConfigStore.d.ts.map +1 -0
  188. package/dist/intentProtocolApi.d.ts +11 -0
  189. package/dist/intentProtocolApi.d.ts.map +1 -0
  190. package/dist/intentProtocolEncoding.d.ts +30 -0
  191. package/dist/intentProtocolEncoding.d.ts.map +1 -0
  192. package/dist/intentProtocolResolver.d.ts +28 -0
  193. package/dist/intentProtocolResolver.d.ts.map +1 -0
  194. package/dist/intentReceiptPoller.d.ts.map +1 -1
  195. package/dist/intentValidation.d.ts +5 -0
  196. package/dist/intentValidation.d.ts.map +1 -0
  197. package/dist/intents.d.ts.map +1 -1
  198. package/dist/keymachine/index.d.ts +20 -0
  199. package/dist/keymachine/index.d.ts.map +1 -1
  200. package/dist/mutations.d.ts.map +1 -1
  201. package/dist/offlineRecovery.d.ts +24 -0
  202. package/dist/offlineRecovery.d.ts.map +1 -0
  203. package/dist/onramp/MeshConnectFlow.d.ts +9 -0
  204. package/dist/onramp/MeshConnectFlow.d.ts.map +1 -1
  205. package/dist/onramp/MeshConnectIframe.d.ts +9 -0
  206. package/dist/onramp/MeshConnectIframe.d.ts.map +1 -1
  207. package/dist/onramp/TrailsOnRampProvider.d.ts.map +1 -1
  208. package/dist/onramp/mesh/components/MeshExchangeConfirmation.d.ts +10 -0
  209. package/dist/onramp/mesh/components/MeshExchangeConfirmation.d.ts.map +1 -0
  210. package/dist/onramp/mesh/components/MeshExchangeIcon.d.ts +13 -0
  211. package/dist/onramp/mesh/components/MeshExchangeIcon.d.ts.map +1 -0
  212. package/dist/{widget → onramp/mesh}/components/MeshExchangeSelection.d.ts +1 -0
  213. package/dist/onramp/mesh/components/MeshExchangeSelection.d.ts.map +1 -0
  214. package/dist/onramp/mesh/components/MeshSessionOptions.d.ts +15 -0
  215. package/dist/onramp/mesh/components/MeshSessionOptions.d.ts.map +1 -0
  216. package/dist/onramp/mesh/hooks/useMeshAccessTokens.d.ts +9 -0
  217. package/dist/onramp/mesh/hooks/useMeshAccessTokens.d.ts.map +1 -0
  218. package/dist/onramp/mesh/hooks/useMeshFundingSelection.d.ts +11 -0
  219. package/dist/onramp/mesh/hooks/useMeshFundingSelection.d.ts.map +1 -0
  220. package/dist/onramp/mesh/hooks/useMeshOnrampFlow.d.ts +71 -0
  221. package/dist/onramp/mesh/hooks/useMeshOnrampFlow.d.ts.map +1 -0
  222. package/dist/onramp/mesh/hooks/useMeshOnrampSessionState.d.ts +32 -0
  223. package/dist/onramp/mesh/hooks/useMeshOnrampSessionState.d.ts.map +1 -0
  224. package/dist/onramp/mesh/hooks/useMeshSelectedTokenBalance.d.ts +19 -0
  225. package/dist/onramp/mesh/hooks/useMeshSelectedTokenBalance.d.ts.map +1 -0
  226. package/dist/onramp/mesh/hooks/useMeshSessionAccountBalance.d.ts +15 -0
  227. package/dist/onramp/mesh/hooks/useMeshSessionAccountBalance.d.ts.map +1 -0
  228. package/dist/onramp/mesh/hooks/useMeshSessionStorage.d.ts +7 -0
  229. package/dist/onramp/mesh/hooks/useMeshSessionStorage.d.ts.map +1 -0
  230. package/dist/onramp/meshSessionStorage.d.ts +13 -0
  231. package/dist/onramp/meshSessionStorage.d.ts.map +1 -0
  232. package/dist/onramp/meshconnect.d.ts +6 -4
  233. package/dist/onramp/meshconnect.d.ts.map +1 -1
  234. package/dist/onramp/trailsOnramp.d.ts +8 -0
  235. package/dist/onramp/trailsOnramp.d.ts.map +1 -1
  236. package/dist/onrampClient.d.ts.map +1 -1
  237. package/dist/placeholder.d.ts +129 -5
  238. package/dist/placeholder.d.ts.map +1 -1
  239. package/dist/poolUtils.d.ts +0 -14
  240. package/dist/poolUtils.d.ts.map +1 -1
  241. package/dist/prepareSend.d.ts +3 -2
  242. package/dist/prepareSend.d.ts.map +1 -1
  243. package/dist/query/balance.fetchers.d.ts +7 -1
  244. package/dist/query/balance.fetchers.d.ts.map +1 -1
  245. package/dist/query/intentProtocol.queries.d.ts +32 -0
  246. package/dist/query/intentProtocol.queries.d.ts.map +1 -0
  247. package/dist/recover.d.ts +70 -24
  248. package/dist/recover.d.ts.map +1 -1
  249. package/dist/src-CQhZqidH.js +51593 -0
  250. package/dist/tokens.d.ts.map +1 -1
  251. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts +2 -3
  252. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts.map +1 -1
  253. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts +2 -3
  254. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts.map +1 -1
  255. package/dist/transactionIntent/deposits/standardDeposit.d.ts +2 -5
  256. package/dist/transactionIntent/deposits/standardDeposit.d.ts.map +1 -1
  257. package/dist/transactionIntent/handlers/intentHandler.d.ts +5 -4
  258. package/dist/transactionIntent/handlers/intentHandler.d.ts.map +1 -1
  259. package/dist/transactionIntent/quote/quoteHelpers.d.ts +2 -2
  260. package/dist/transactionIntent/quote/quoteHelpers.d.ts.map +1 -1
  261. package/dist/transactionIntent/types.d.ts +4 -3
  262. package/dist/transactionIntent/types.d.ts.map +1 -1
  263. package/dist/transactions.d.ts +1 -0
  264. package/dist/transactions.d.ts.map +1 -1
  265. package/dist/umd/trails.min.js +1371 -409
  266. package/dist/utils/localStorageGc.d.ts +22 -0
  267. package/dist/utils/localStorageGc.d.ts.map +1 -0
  268. package/dist/utils/validation.d.ts +14 -0
  269. package/dist/utils/validation.d.ts.map +1 -1
  270. package/dist/walletUtils.d.ts.map +1 -1
  271. package/dist/widget/components/AccountIntentTransactionHistory.d.ts.map +1 -1
  272. package/dist/widget/components/ChainList.d.ts +2 -0
  273. package/dist/widget/components/ChainList.d.ts.map +1 -1
  274. package/dist/widget/components/ClassicSwap.d.ts.map +1 -1
  275. package/dist/widget/components/ConnectedWallets.d.ts +1 -1
  276. package/dist/widget/components/ConnectedWallets.d.ts.map +1 -1
  277. package/dist/widget/components/Earn.d.ts +2 -6
  278. package/dist/widget/components/Earn.d.ts.map +1 -1
  279. package/dist/widget/components/EarnMarkets.d.ts +9 -0
  280. package/dist/widget/components/EarnMarkets.d.ts.map +1 -0
  281. package/dist/widget/components/EarnPoolsFilters.d.ts +7 -1
  282. package/dist/widget/components/EarnPoolsFilters.d.ts.map +1 -1
  283. package/dist/widget/components/{PoolWithdraw.d.ts → EarnWithdraw.d.ts} +5 -5
  284. package/dist/widget/components/{PoolWithdraw.d.ts.map → EarnWithdraw.d.ts.map} +1 -1
  285. package/dist/widget/components/FeeOption.d.ts +1 -1
  286. package/dist/widget/components/FeeOption.d.ts.map +1 -1
  287. package/dist/widget/components/FeeOptions.d.ts +1 -1
  288. package/dist/widget/components/FeeOptions.d.ts.map +1 -1
  289. package/dist/widget/components/FiatSelector.d.ts +1 -1
  290. package/dist/widget/components/FiatSelector.d.ts.map +1 -1
  291. package/dist/widget/components/FiatSelectorButton.d.ts +1 -1
  292. package/dist/widget/components/FiatSelectorButton.d.ts.map +1 -1
  293. package/dist/widget/components/Fund.d.ts +1 -1
  294. package/dist/widget/components/Fund.d.ts.map +1 -1
  295. package/dist/widget/components/FundMethods.d.ts.map +1 -1
  296. package/dist/widget/components/FundingMethodSelectorButton.d.ts +1 -1
  297. package/dist/widget/components/FundingMethodSelectorButton.d.ts.map +1 -1
  298. package/dist/widget/components/HookModalContent.d.ts.map +1 -1
  299. package/dist/widget/components/MeldHistory.d.ts +1 -1
  300. package/dist/widget/components/MeldHistory.d.ts.map +1 -1
  301. package/dist/widget/components/MeldTransactionStatus.d.ts +1 -1
  302. package/dist/widget/components/MeldTransactionStatus.d.ts.map +1 -1
  303. package/dist/widget/components/MeshExchangeAccountHeader.d.ts +9 -0
  304. package/dist/widget/components/MeshExchangeAccountHeader.d.ts.map +1 -0
  305. package/dist/widget/components/OnrampHistoryRow.d.ts +1 -1
  306. package/dist/widget/components/OnrampHistoryRow.d.ts.map +1 -1
  307. package/dist/widget/components/OnrampProviderConfirmation.d.ts +1 -1
  308. package/dist/widget/components/OnrampProviderConfirmation.d.ts.map +1 -1
  309. package/dist/widget/components/Pay.d.ts.map +1 -1
  310. package/dist/widget/components/PoolDeposit.d.ts +2 -6
  311. package/dist/widget/components/PoolDeposit.d.ts.map +1 -1
  312. package/dist/widget/components/PulsatingButton.d.ts +9 -0
  313. package/dist/widget/components/PulsatingButton.d.ts.map +1 -0
  314. package/dist/widget/components/Receipt.d.ts +1 -1
  315. package/dist/widget/components/Receipt.d.ts.map +1 -1
  316. package/dist/widget/components/RecipientSelectorButton.d.ts.map +1 -1
  317. package/dist/widget/components/Recipients.d.ts.map +1 -1
  318. package/dist/widget/components/Swap.d.ts +2 -6
  319. package/dist/widget/components/Swap.d.ts.map +1 -1
  320. package/dist/widget/components/TokenList.d.ts +1 -0
  321. package/dist/widget/components/TokenList.d.ts.map +1 -1
  322. package/dist/widget/components/TokenSelector.d.ts +2 -2
  323. package/dist/widget/components/TokenSelector.d.ts.map +1 -1
  324. package/dist/widget/components/TransactionDetails.d.ts +1 -0
  325. package/dist/widget/components/TransactionDetails.d.ts.map +1 -1
  326. package/dist/widget/components/TransactionHistoryItem.d.ts +1 -0
  327. package/dist/widget/components/TransactionHistoryItem.d.ts.map +1 -1
  328. package/dist/widget/components/TransferPendingVertical.d.ts +1 -1
  329. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -1
  330. package/dist/widget/components/WalletAccountHeader.d.ts +7 -0
  331. package/dist/widget/components/WalletAccountHeader.d.ts.map +1 -0
  332. package/dist/widget/components/WalletConfirmation.d.ts +2 -1
  333. package/dist/widget/components/WalletConfirmation.d.ts.map +1 -1
  334. package/dist/widget/components/WalletConnect.d.ts.map +1 -1
  335. package/dist/widget/components/WidgetProviders.d.ts.map +1 -1
  336. package/dist/widget/components/Withdraw.d.ts.map +1 -1
  337. package/dist/widget/components/earnMarketUtils.d.ts +11 -0
  338. package/dist/widget/components/earnMarketUtils.d.ts.map +1 -0
  339. package/dist/widget/components/earnNetworks.d.ts +6 -0
  340. package/dist/widget/components/earnNetworks.d.ts.map +1 -0
  341. package/dist/widget/index.d.ts +13 -0
  342. package/dist/widget/index.d.ts.map +1 -1
  343. package/dist/widget/index.js +17 -9
  344. package/dist/widget/modes/EarnWidget.d.ts +90 -0
  345. package/dist/widget/modes/EarnWidget.d.ts.map +1 -0
  346. package/dist/widget/modes/FundWidget.d.ts +97 -0
  347. package/dist/widget/modes/FundWidget.d.ts.map +1 -0
  348. package/dist/widget/modes/PayWidget.d.ts +80 -0
  349. package/dist/widget/modes/PayWidget.d.ts.map +1 -0
  350. package/dist/widget/modes/SwapWidget.d.ts +76 -0
  351. package/dist/widget/modes/SwapWidget.d.ts.map +1 -0
  352. package/dist/widget/modes/WithdrawWidget.d.ts +87 -0
  353. package/dist/widget/modes/WithdrawWidget.d.ts.map +1 -0
  354. package/dist/widget/providers/TrailsProvider.d.ts +3 -0
  355. package/dist/widget/providers/TrailsProvider.d.ts.map +1 -1
  356. package/dist/widget/providers/WidgetProviderTree.d.ts.map +1 -1
  357. package/dist/widget/shared/destinationDefaultToken.d.ts +15 -0
  358. package/dist/widget/shared/destinationDefaultToken.d.ts.map +1 -0
  359. package/dist/widget/shared/mapSharedProps.d.ts +9 -0
  360. package/dist/widget/shared/mapSharedProps.d.ts.map +1 -0
  361. package/dist/widget/shared/methodMap.d.ts +18 -0
  362. package/dist/widget/shared/methodMap.d.ts.map +1 -0
  363. package/dist/widget/shared/resolution.d.ts +23 -0
  364. package/dist/widget/shared/resolution.d.ts.map +1 -0
  365. package/dist/widget/shared/resolvePaymentSource.d.ts +36 -0
  366. package/dist/widget/shared/resolvePaymentSource.d.ts.map +1 -0
  367. package/dist/widget/shared/tokenAllowlist.d.ts +36 -0
  368. package/dist/widget/shared/tokenAllowlist.d.ts.map +1 -0
  369. package/dist/widget/shared/types.d.ts +150 -0
  370. package/dist/widget/shared/types.d.ts.map +1 -0
  371. package/dist/widget/styles.gen.d.ts +2 -0
  372. package/dist/widget/styles.gen.d.ts.map +1 -0
  373. package/dist/widget/types/commonProps.d.ts +3 -7
  374. package/dist/widget/types/commonProps.d.ts.map +1 -1
  375. package/dist/widget/utils/fundMethodSwitchState.d.ts +1 -0
  376. package/dist/widget/utils/fundMethodSwitchState.d.ts.map +1 -1
  377. package/dist/widget/utils/viewManagerGuards.d.ts +1 -1
  378. package/dist/widget/utils/viewManagerGuards.d.ts.map +1 -1
  379. package/dist/widget/widget.d.ts +23 -16
  380. package/dist/widget/widget.d.ts.map +1 -1
  381. package/package.json +22 -23
  382. package/dist/buffer.d.ts +0 -3
  383. package/dist/buffer.d.ts.map +0 -1
  384. package/dist/ccip-CT_An6eM.js +0 -230
  385. package/dist/index-RfqL5Foz.js +0 -114567
  386. package/dist/paymasterSend.d.ts +0 -90
  387. package/dist/paymasterSend.d.ts.map +0 -1
  388. package/dist/sendUserOp.d.ts +0 -122
  389. package/dist/sendUserOp.d.ts.map +0 -1
  390. package/dist/toSimpleSmartAccount.d.ts +0 -95
  391. package/dist/toSimpleSmartAccount.d.ts.map +0 -1
  392. package/dist/transactionIntent/utils/erc20Approval.d.ts +0 -34
  393. package/dist/transactionIntent/utils/erc20Approval.d.ts.map +0 -1
  394. package/dist/utils/allowance.d.ts +0 -19
  395. package/dist/utils/allowance.d.ts.map +0 -1
  396. package/dist/widget/analytics/useWidgetAnalytics.d.ts.map +0 -1
  397. package/dist/widget/components/FeeBreakdown.d.ts +0 -9
  398. package/dist/widget/components/FeeBreakdown.d.ts.map +0 -1
  399. package/dist/widget/components/HideBalances.d.ts +0 -4
  400. package/dist/widget/components/HideBalances.d.ts.map +0 -1
  401. package/dist/widget/components/MeshExchangeSelection.d.ts.map +0 -1
  402. package/dist/widget/components/OnrampDeposit.d.ts +0 -10
  403. package/dist/widget/components/OnrampDeposit.d.ts.map +0 -1
  404. package/dist/widget/components/SwapSettings.d.ts +0 -4
  405. package/dist/widget/components/SwapSettings.d.ts.map +0 -1
  406. package/dist/widget/components/TruncatedAddress.d.ts +0 -12
  407. package/dist/widget/components/TruncatedAddress.d.ts.map +0 -1
  408. package/dist/widget/components/WalletImage.d.ts +0 -8
  409. package/dist/widget/components/WalletImage.d.ts.map +0 -1
  410. package/dist/widget/css/compiled.css +0 -26
  411. package/dist/widget/css/index.css +0 -686
  412. package/dist/widget/hooks/useAddressWalletIcon.d.ts.map +0 -1
  413. package/dist/widget/hooks/useAmountUsd.d.ts.map +0 -1
  414. package/dist/widget/hooks/useBalanceVisible.d.ts.map +0 -1
  415. package/dist/widget/hooks/useChainFilter.d.ts.map +0 -1
  416. package/dist/widget/hooks/useCheckout.d.ts.map +0 -1
  417. package/dist/widget/hooks/useClickTracking.d.ts.map +0 -1
  418. package/dist/widget/hooks/useCombinedHistory.d.ts.map +0 -1
  419. package/dist/widget/hooks/useConnector.d.ts.map +0 -1
  420. package/dist/widget/hooks/useCustomTokenSearch.d.ts.map +0 -1
  421. package/dist/widget/hooks/useDebounce.d.ts.map +0 -1
  422. package/dist/widget/hooks/useDebugScreens.d.ts.map +0 -1
  423. package/dist/widget/hooks/useDefaultDestinationToken.d.ts.map +0 -1
  424. package/dist/widget/hooks/useDefaultOriginToken.d.ts.map +0 -1
  425. package/dist/widget/hooks/useDepositMonitor.d.ts.map +0 -1
  426. package/dist/widget/hooks/useDestinationSelectedToken.d.ts.map +0 -1
  427. package/dist/widget/hooks/useDisplayCurrencyPreference.d.ts.map +0 -1
  428. package/dist/widget/hooks/useEarnPool.d.ts.map +0 -1
  429. package/dist/widget/hooks/useExecutingIntentsCount.d.ts.map +0 -1
  430. package/dist/widget/hooks/useExternalFundingReceiptSync.d.ts.map +0 -1
  431. package/dist/widget/hooks/useFiatOnRampCurrencies.d.ts.map +0 -1
  432. package/dist/widget/hooks/useFiatSelectedCurrency.d.ts.map +0 -1
  433. package/dist/widget/hooks/useGetIntent.d.ts.map +0 -1
  434. package/dist/widget/hooks/useIntentReceiptBalances.d.ts.map +0 -1
  435. package/dist/widget/hooks/useIntentTransactionHistory.d.ts.map +0 -1
  436. package/dist/widget/hooks/useIsConnectedWalletSmartContract.d.ts +0 -7
  437. package/dist/widget/hooks/useIsConnectedWalletSmartContract.d.ts.map +0 -1
  438. package/dist/widget/hooks/useIsMobile.d.ts.map +0 -1
  439. package/dist/widget/hooks/useIsSequenceWallet.d.ts.map +0 -1
  440. package/dist/widget/hooks/useLocalePreference.d.ts.map +0 -1
  441. package/dist/widget/hooks/useMeldTransactionHistory.d.ts.map +0 -1
  442. package/dist/widget/hooks/useMeldTransactionStatus.d.ts.map +0 -1
  443. package/dist/widget/hooks/useOnRampCountryDefaults.d.ts.map +0 -1
  444. package/dist/widget/hooks/useOnRampPaymentMethods.d.ts.map +0 -1
  445. package/dist/widget/hooks/useOnRampProviderWidget.d.ts.map +0 -1
  446. package/dist/widget/hooks/useOnRampQuote.d.ts.map +0 -1
  447. package/dist/widget/hooks/useOnRampTransactionStatus.d.ts.map +0 -1
  448. package/dist/widget/hooks/useOriginSelectedToken.d.ts.map +0 -1
  449. package/dist/widget/hooks/usePayMessage.d.ts.map +0 -1
  450. package/dist/widget/hooks/usePriceImpactWarning.d.ts.map +0 -1
  451. package/dist/widget/hooks/useQuote.d.ts +0 -378
  452. package/dist/widget/hooks/useQuote.d.ts.map +0 -1
  453. package/dist/widget/hooks/useRecentTokens.d.ts.map +0 -1
  454. package/dist/widget/hooks/useRecipients.d.ts.map +0 -1
  455. package/dist/widget/hooks/useScreenTracking.d.ts +0 -2
  456. package/dist/widget/hooks/useScreenTracking.d.ts.map +0 -1
  457. package/dist/widget/hooks/useSelectedFeeOption.d.ts.map +0 -1
  458. package/dist/widget/hooks/useSelectedFundMethod.d.ts.map +0 -1
  459. package/dist/widget/hooks/useSelectedRecipient.d.ts.map +0 -1
  460. package/dist/widget/hooks/useSendForm.d.ts.map +0 -1
  461. package/dist/widget/hooks/useSwapAmount.d.ts.map +0 -1
  462. package/dist/widget/hooks/useSwapState.d.ts.map +0 -1
  463. package/dist/widget/hooks/useTargetAmount.d.ts.map +0 -1
  464. package/dist/widget/hooks/useTheme.d.ts.map +0 -1
  465. package/dist/widget/hooks/useTokenList.d.ts.map +0 -1
  466. package/dist/widget/hooks/useTrailsSendTransaction.d.ts +0 -83
  467. package/dist/widget/hooks/useTrailsSendTransaction.d.ts.map +0 -1
  468. package/dist/widget/hooks/useViewManager.d.ts.map +0 -1
  469. package/dist/widget/hooks/useWalletConnectUri.d.ts +0 -11
  470. package/dist/widget/hooks/useWalletConnectUri.d.ts.map +0 -1
  471. package/dist/widget/hooks/useWalletConnectionContext.d.ts.map +0 -1
  472. package/dist/widget/hooks/useWidgetProps.d.ts.map +0 -1
  473. package/dist/widget/styles.d.ts +0 -2
  474. package/dist/widget/styles.d.ts.map +0 -1
  475. package/dist/widget/types.d.ts +0 -44
  476. package/dist/widget/types.d.ts.map +0 -1
  477. package/dist/widget/utils/historyUtils.d.ts +0 -18
  478. package/dist/widget/utils/historyUtils.d.ts.map +0 -1
  479. package/src/abi.ts +0 -38
  480. package/src/abis/erc20.ts +0 -60
  481. package/src/abis/trailsHydrate.ts +0 -185
  482. package/src/abis/trailsRouter.ts +0 -121
  483. package/src/abis/trailsSweep.ts +0 -32
  484. package/src/abortController.ts +0 -35
  485. package/src/analytics.ts +0 -2029
  486. package/src/buffer.ts +0 -10
  487. package/src/chainSwitch.ts +0 -95
  488. package/src/chains.ts +0 -570
  489. package/src/config.ts +0 -118
  490. package/src/constants.ts +0 -239
  491. package/src/contractUtils.ts +0 -46
  492. package/src/cssUtils.ts +0 -5
  493. package/src/customChains.ts +0 -24
  494. package/src/customTokens.ts +0 -168
  495. package/src/decoders.ts +0 -365
  496. package/src/ens.ts +0 -74
  497. package/src/error.ts +0 -268
  498. package/src/estimate.ts +0 -480
  499. package/src/explorer.ts +0 -38
  500. package/src/fees.ts +0 -362
  501. package/src/gasless.ts +0 -638
  502. package/src/index.ts +0 -205
  503. package/src/indexerClient.ts +0 -118
  504. package/src/intentReceiptMonitor.ts +0 -99
  505. package/src/intentReceiptPoller.ts +0 -327
  506. package/src/intents.ts +0 -1133
  507. package/src/keyMachineClient.ts +0 -29
  508. package/src/keymachine/index.ts +0 -175
  509. package/src/keymachine/key-machine.gen.ts +0 -993
  510. package/src/localeUtils.ts +0 -244
  511. package/src/logger/index.ts +0 -95
  512. package/src/logger/useSyncLoggerDebug.ts +0 -11
  513. package/src/logger.ts +0 -1
  514. package/src/meld/components/MeldCountriesList.tsx +0 -237
  515. package/src/meld/components/MeldFundMethods.tsx +0 -265
  516. package/src/meld/components/MeldProvidersList.tsx +0 -187
  517. package/src/meld/components/MeldTokensList.tsx +0 -321
  518. package/src/meld/components/SimpleHeader.tsx +0 -35
  519. package/src/meld/utils/meld.ts +0 -77
  520. package/src/mutations.ts +0 -166
  521. package/src/onramp/MeshConnectFlow.tsx +0 -86
  522. package/src/onramp/MeshConnectIframe.tsx +0 -661
  523. package/src/onramp/SendFromExchangeButton.tsx +0 -81
  524. package/src/onramp/TrailsOnRampProvider.tsx +0 -59
  525. package/src/onramp/index.ts +0 -31
  526. package/src/onramp/meshconnect.ts +0 -277
  527. package/src/onramp/trailsOnramp.tsx +0 -130
  528. package/src/onramp-client/index.ts +0 -52
  529. package/src/onrampClient.ts +0 -46
  530. package/src/paymasterSend.ts +0 -521
  531. package/src/placeholder.ts +0 -92
  532. package/src/poolUtils.ts +0 -222
  533. package/src/pools.ts +0 -120
  534. package/src/prepareSend.ts +0 -553
  535. package/src/query/balance.fetchers.ts +0 -753
  536. package/src/query/balance.hooks.ts +0 -357
  537. package/src/query/balance.queries.ts +0 -307
  538. package/src/query/chains.hooks.ts +0 -45
  539. package/src/query/chains.queries.ts +0 -17
  540. package/src/query/client.ts +0 -20
  541. package/src/query/fiat.fetchers.ts +0 -33
  542. package/src/query/fiat.hooks.ts +0 -71
  543. package/src/query/fiat.queries.ts +0 -67
  544. package/src/query/geo.fetchers.ts +0 -100
  545. package/src/query/geo.hooks.ts +0 -16
  546. package/src/query/geo.queries.ts +0 -36
  547. package/src/query/helpers.ts +0 -81
  548. package/src/query/meld.fetchers.ts +0 -97
  549. package/src/query/meld.hooks.ts +0 -18
  550. package/src/query/meld.queries.ts +0 -184
  551. package/src/query/persister.ts +0 -11
  552. package/src/query/price.fetchers.ts +0 -53
  553. package/src/query/price.hooks.ts +0 -46
  554. package/src/query/price.queries.ts +0 -364
  555. package/src/query/tokenList.queries.ts +0 -118
  556. package/src/queryParams.ts +0 -100
  557. package/src/recover.ts +0 -1728
  558. package/src/sendUserOp.ts +0 -512
  559. package/src/theme.ts +0 -2
  560. package/src/toSimpleSmartAccount.ts +0 -567
  561. package/src/toast.ts +0 -110
  562. package/src/tokens.ts +0 -1862
  563. package/src/trailsClient.ts +0 -40
  564. package/src/transactionIntent/constants.ts +0 -15
  565. package/src/transactionIntent/deposits/depositOrchestrator.ts +0 -243
  566. package/src/transactionIntent/deposits/gaslessDeposit.ts +0 -705
  567. package/src/transactionIntent/deposits/index.ts +0 -3
  568. package/src/transactionIntent/deposits/standardDeposit.ts +0 -590
  569. package/src/transactionIntent/execution/index.ts +0 -1
  570. package/src/transactionIntent/execution/transactionState.ts +0 -38
  571. package/src/transactionIntent/handlers/index.ts +0 -1
  572. package/src/transactionIntent/handlers/intentHandler.ts +0 -1613
  573. package/src/transactionIntent/helpers/index.ts +0 -1
  574. package/src/transactionIntent/helpers/transactionStateHelpers.ts +0 -440
  575. package/src/transactionIntent/index.ts +0 -10
  576. package/src/transactionIntent/quote/feeExtractors.ts +0 -61
  577. package/src/transactionIntent/quote/index.ts +0 -3
  578. package/src/transactionIntent/quote/normalizeQuote.ts +0 -559
  579. package/src/transactionIntent/quote/quoteHelpers.ts +0 -117
  580. package/src/transactionIntent/types.ts +0 -241
  581. package/src/transactionIntent/utils/balanceChecker.ts +0 -103
  582. package/src/transactionIntent/utils/erc20Approval.ts +0 -171
  583. package/src/transactionIntent/utils/index.ts +0 -2
  584. package/src/transactionIntent/utils/resilientDepositTracker.ts +0 -171
  585. package/src/transactionIntent/utils/testnetHelpers.ts +0 -5
  586. package/src/transactionIntent/validators.ts +0 -27
  587. package/src/transactions.ts +0 -429
  588. package/src/types.d.ts +0 -16
  589. package/src/umd.tsx +0 -33
  590. package/src/utils/address.ts +0 -78
  591. package/src/utils/allowance.ts +0 -47
  592. package/src/utils/fiat.ts +0 -32
  593. package/src/utils/format.ts +0 -625
  594. package/src/utils/passthrough.ts +0 -93
  595. package/src/utils/time.ts +0 -118
  596. package/src/utils/validation.ts +0 -104
  597. package/src/utils.ts +0 -112
  598. package/src/version.ts +0 -8
  599. package/src/vite-env.d.ts +0 -4
  600. package/src/walletUtils.ts +0 -293
  601. package/src/wallets.ts +0 -544
  602. package/src/widget/analytics/useWidgetAnalytics.ts +0 -56
  603. package/src/widget/assets/Exchange-icon-black.svg +0 -5
  604. package/src/widget/assets/MetaMask-icon-fox-with-margins.svg +0 -31
  605. package/src/widget/assets/MetaMask-icon-fox.svg +0 -26
  606. package/src/widget/assets/MetaMask-logo-black.svg +0 -3
  607. package/src/widget/assets/MetaMask-logo-white.svg +0 -16
  608. package/src/widget/assets/Trails-logo-black.svg +0 -13
  609. package/src/widget/assets/Trails-logo-white.svg +0 -13
  610. package/src/widget/assets/WalletChange-black.svg +0 -5
  611. package/src/widget/assets/WalletConnect-logo-black.svg +0 -14
  612. package/src/widget/assets/WalletConnect-logo-blue.svg +0 -14
  613. package/src/widget/assets/WalletConnect-logo-white.svg +0 -14
  614. package/src/widget/assets/WalletConnect-logo.svg +0 -40
  615. package/src/widget/assets/aave.svg +0 -14
  616. package/src/widget/assets/morpho.svg +0 -14
  617. package/src/widget/compiled.css +0 -26
  618. package/src/widget/components/AccountActionsDropdown.tsx +0 -31
  619. package/src/widget/components/AccountIntentTransactionHistory.tsx +0 -756
  620. package/src/widget/components/AccountIntentTransactionHistoryButton.tsx +0 -34
  621. package/src/widget/components/AccountSettings.tsx +0 -168
  622. package/src/widget/components/AddressOrEnsName.tsx +0 -24
  623. package/src/widget/components/AddressWalletIcon.tsx +0 -49
  624. package/src/widget/components/AllChainsIcon.tsx +0 -54
  625. package/src/widget/components/ChainFilterDropdown.tsx +0 -220
  626. package/src/widget/components/ChainImage.tsx +0 -40
  627. package/src/widget/components/ChainList.tsx +0 -158
  628. package/src/widget/components/ClassicSwap.tsx +0 -1761
  629. package/src/widget/components/ConfigDisplay.tsx +0 -158
  630. package/src/widget/components/ConnectWallet.tsx +0 -566
  631. package/src/widget/components/ConnectedWallets.tsx +0 -414
  632. package/src/widget/components/CopyButton.tsx +0 -108
  633. package/src/widget/components/CountryFilterDropdown.tsx +0 -179
  634. package/src/widget/components/DebugMenu.tsx +0 -50
  635. package/src/widget/components/DebugScreensList.tsx +0 -70
  636. package/src/widget/components/DebugToast.tsx +0 -63
  637. package/src/widget/components/DepositTracker.tsx +0 -326
  638. package/src/widget/components/DirectTransfer.tsx +0 -305
  639. package/src/widget/components/Disconnect.tsx +0 -68
  640. package/src/widget/components/DynamicInputStyles.tsx +0 -121
  641. package/src/widget/components/DynamicSizeInputField.tsx +0 -245
  642. package/src/widget/components/ENSAvatar.tsx +0 -33
  643. package/src/widget/components/Earn.tsx +0 -160
  644. package/src/widget/components/EarnPools.tsx +0 -417
  645. package/src/widget/components/EarnPoolsFilters.tsx +0 -165
  646. package/src/widget/components/ErrorAnimationIcon.tsx +0 -130
  647. package/src/widget/components/ErrorDisplay.tsx +0 -152
  648. package/src/widget/components/ExecutingIntentsBadge.tsx +0 -24
  649. package/src/widget/components/ExecutionStatusBadge.tsx +0 -53
  650. package/src/widget/components/FeeBreakdown.tsx +0 -155
  651. package/src/widget/components/FeeOption.tsx +0 -170
  652. package/src/widget/components/FeeOptions.tsx +0 -247
  653. package/src/widget/components/FiatSelector.tsx +0 -308
  654. package/src/widget/components/FiatSelectorButton.tsx +0 -68
  655. package/src/widget/components/Footer.tsx +0 -67
  656. package/src/widget/components/Fund.tsx +0 -2463
  657. package/src/widget/components/FundMethods.tsx +0 -423
  658. package/src/widget/components/FundWalletSelection.tsx +0 -60
  659. package/src/widget/components/FundingMethodSelectorButton.tsx +0 -106
  660. package/src/widget/components/GreenCheckAnimation.tsx +0 -119
  661. package/src/widget/components/HideBalances.tsx +0 -24
  662. package/src/widget/components/HighPriceImpactBlock.tsx +0 -44
  663. package/src/widget/components/HookModalContent.tsx +0 -377
  664. package/src/widget/components/Identicon.tsx +0 -228
  665. package/src/widget/components/LoadingSpinner.tsx +0 -9
  666. package/src/widget/components/MeldForm.tsx +0 -780
  667. package/src/widget/components/MeldHistory.tsx +0 -433
  668. package/src/widget/components/MeldStepsFlow.tsx +0 -1651
  669. package/src/widget/components/MeldTransactionStatus.tsx +0 -255
  670. package/src/widget/components/MeshExchangeSelection.tsx +0 -218
  671. package/src/widget/components/Modal.tsx +0 -86
  672. package/src/widget/components/OFTProgressBar.tsx +0 -89
  673. package/src/widget/components/OnRampProviderSelector.tsx +0 -263
  674. package/src/widget/components/OnrampDeposit.tsx +0 -122
  675. package/src/widget/components/OnrampErrorScreen.tsx +0 -163
  676. package/src/widget/components/OnrampHistoryRow.tsx +0 -321
  677. package/src/widget/components/OnrampPaymentMethods.tsx +0 -81
  678. package/src/widget/components/OnrampProviderConfirmation.tsx +0 -1060
  679. package/src/widget/components/OriginSelectionAmount.tsx +0 -144
  680. package/src/widget/components/OriginTransferInformation.tsx +0 -59
  681. package/src/widget/components/Pay.tsx +0 -1165
  682. package/src/widget/components/PaymentMethods.tsx +0 -198
  683. package/src/widget/components/PercentageMaxButtons.tsx +0 -112
  684. package/src/widget/components/PoolDeposit.tsx +0 -642
  685. package/src/widget/components/PoolWithdraw.tsx +0 -761
  686. package/src/widget/components/PriceImpactWarning.tsx +0 -87
  687. package/src/widget/components/QRCodeOptions.tsx +0 -65
  688. package/src/widget/components/QRCodeWalletSelect.tsx +0 -80
  689. package/src/widget/components/QrCode.tsx +0 -216
  690. package/src/widget/components/QuoteDetails.tsx +0 -1275
  691. package/src/widget/components/Receipt.tsx +0 -673
  692. package/src/widget/components/ReceiptRecoverableFunds.tsx +0 -135
  693. package/src/widget/components/RecentTokens.tsx +0 -66
  694. package/src/widget/components/RecipientSelectorButton.tsx +0 -50
  695. package/src/widget/components/Recipients.tsx +0 -413
  696. package/src/widget/components/RefundWarning.tsx +0 -61
  697. package/src/widget/components/RequiredPropsError.tsx +0 -33
  698. package/src/widget/components/ScreenHeader.tsx +0 -123
  699. package/src/widget/components/SearchInputField.tsx +0 -99
  700. package/src/widget/components/SessionTimeoutScreen.tsx +0 -103
  701. package/src/widget/components/ShadowPortal.tsx +0 -99
  702. package/src/widget/components/ShadowRootContext.tsx +0 -17
  703. package/src/widget/components/SimpleRecipientInputScreen.tsx +0 -91
  704. package/src/widget/components/SlippageToleranceSettings.tsx +0 -279
  705. package/src/widget/components/Swap.tsx +0 -50
  706. package/src/widget/components/SwapDisplay.tsx +0 -68
  707. package/src/widget/components/SwapSettings.tsx +0 -52
  708. package/src/widget/components/ThemeProvider.tsx +0 -115
  709. package/src/widget/components/ThemeSyncer.tsx +0 -47
  710. package/src/widget/components/Toast.tsx +0 -336
  711. package/src/widget/components/TokenDisplayNonSelectable.tsx +0 -40
  712. package/src/widget/components/TokenImage.tsx +0 -156
  713. package/src/widget/components/TokenList.tsx +0 -107
  714. package/src/widget/components/TokenSelector.tsx +0 -807
  715. package/src/widget/components/TokenSelectorButton.tsx +0 -123
  716. package/src/widget/components/TokenSkeleton.tsx +0 -53
  717. package/src/widget/components/Tooltip.tsx +0 -64
  718. package/src/widget/components/TrailsHookModal.tsx +0 -107
  719. package/src/widget/components/TransactionDetails.tsx +0 -534
  720. package/src/widget/components/TransactionHistoryItem.tsx +0 -767
  721. package/src/widget/components/TransferPendingVertical.tsx +0 -591
  722. package/src/widget/components/TruncatedAddress.tsx +0 -68
  723. package/src/widget/components/TruncatedTransactionHash.tsx +0 -74
  724. package/src/widget/components/UserPreferences.tsx +0 -570
  725. package/src/widget/components/WaasFeeOptions.tsx +0 -588
  726. package/src/widget/components/WalletConfirmation.tsx +0 -220
  727. package/src/widget/components/WalletConnect.tsx +0 -348
  728. package/src/widget/components/WalletConnectionPending.tsx +0 -178
  729. package/src/widget/components/WalletImage.tsx +0 -52
  730. package/src/widget/components/WalletList.tsx +0 -125
  731. package/src/widget/components/WidgetProviders.tsx +0 -82
  732. package/src/widget/components/Withdraw.tsx +0 -1106
  733. package/src/widget/components/YellowWarningAnimation.tsx +0 -146
  734. package/src/widget/hooks/useAddressWalletIcon.ts +0 -55
  735. package/src/widget/hooks/useAmountUsd.ts +0 -44
  736. package/src/widget/hooks/useBalanceVisible.tsx +0 -95
  737. package/src/widget/hooks/useChainFilter.tsx +0 -56
  738. package/src/widget/hooks/useCheckout.ts +0 -361
  739. package/src/widget/hooks/useClickTracking.ts +0 -74
  740. package/src/widget/hooks/useCombinedHistory.ts +0 -420
  741. package/src/widget/hooks/useConnector.tsx +0 -24
  742. package/src/widget/hooks/useCustomTokenSearch.tsx +0 -369
  743. package/src/widget/hooks/useDebounce.ts +0 -25
  744. package/src/widget/hooks/useDebugScreens.ts +0 -600
  745. package/src/widget/hooks/useDefaultDestinationToken.tsx +0 -179
  746. package/src/widget/hooks/useDefaultOriginToken.tsx +0 -407
  747. package/src/widget/hooks/useDepositMonitor.ts +0 -118
  748. package/src/widget/hooks/useDestinationSelectedToken.tsx +0 -310
  749. package/src/widget/hooks/useDisplayCurrencyPreference.tsx +0 -145
  750. package/src/widget/hooks/useEarnPool.tsx +0 -36
  751. package/src/widget/hooks/useExecutingIntentsCount.ts +0 -78
  752. package/src/widget/hooks/useExternalFundingReceiptSync.ts +0 -79
  753. package/src/widget/hooks/useFiatOnRampCurrencies.ts +0 -46
  754. package/src/widget/hooks/useFiatSelectedCurrency.tsx +0 -123
  755. package/src/widget/hooks/useGetIntent.ts +0 -54
  756. package/src/widget/hooks/useIntentReceiptBalances.ts +0 -141
  757. package/src/widget/hooks/useIntentTransactionHistory.ts +0 -790
  758. package/src/widget/hooks/useIsConnectedWalletSmartContract.ts +0 -43
  759. package/src/widget/hooks/useIsMobile.tsx +0 -50
  760. package/src/widget/hooks/useIsSequenceWallet.ts +0 -17
  761. package/src/widget/hooks/useLocalePreference.tsx +0 -187
  762. package/src/widget/hooks/useMeldTransactionHistory.ts +0 -184
  763. package/src/widget/hooks/useMeldTransactionStatus.ts +0 -707
  764. package/src/widget/hooks/useOnRampCountryDefaults.ts +0 -57
  765. package/src/widget/hooks/useOnRampPaymentMethods.ts +0 -72
  766. package/src/widget/hooks/useOnRampProviderWidget.ts +0 -184
  767. package/src/widget/hooks/useOnRampQuote.ts +0 -340
  768. package/src/widget/hooks/useOnRampTransactionStatus.ts +0 -196
  769. package/src/widget/hooks/useOriginSelectedToken.tsx +0 -253
  770. package/src/widget/hooks/usePayMessage.tsx +0 -496
  771. package/src/widget/hooks/usePriceImpactWarning.ts +0 -17
  772. package/src/widget/hooks/useQuote.ts +0 -1239
  773. package/src/widget/hooks/useRecentTokens.ts +0 -159
  774. package/src/widget/hooks/useRecipients.ts +0 -167
  775. package/src/widget/hooks/useScreenTracking.ts +0 -14
  776. package/src/widget/hooks/useSelectedFeeOption.tsx +0 -323
  777. package/src/widget/hooks/useSelectedFundMethod.tsx +0 -93
  778. package/src/widget/hooks/useSelectedRecipient.tsx +0 -75
  779. package/src/widget/hooks/useSendForm.ts +0 -1389
  780. package/src/widget/hooks/useSwapAmount.tsx +0 -50
  781. package/src/widget/hooks/useSwapState.tsx +0 -121
  782. package/src/widget/hooks/useTargetAmount.ts +0 -26
  783. package/src/widget/hooks/useTheme.tsx +0 -80
  784. package/src/widget/hooks/useTokenList.ts +0 -1168
  785. package/src/widget/hooks/useTrailsSendTransaction.ts +0 -987
  786. package/src/widget/hooks/useViewManager.tsx +0 -506
  787. package/src/widget/hooks/useWalletConnectUri.tsx +0 -307
  788. package/src/widget/hooks/useWalletConnectionContext.tsx +0 -128
  789. package/src/widget/hooks/useWidgetProps.tsx +0 -33
  790. package/src/widget/index.css +0 -686
  791. package/src/widget/index.tsx +0 -28
  792. package/src/widget/providers/TrailsModalProvider.tsx +0 -238
  793. package/src/widget/providers/TrailsProvider.tsx +0 -155
  794. package/src/widget/providers/UserActivityProvider.tsx +0 -78
  795. package/src/widget/providers/WidgetProviderTree.tsx +0 -90
  796. package/src/widget/styles.ts +0 -26
  797. package/src/widget/types/analytics.ts +0 -22
  798. package/src/widget/types/commonProps.ts +0 -56
  799. package/src/widget/types/svg.d.ts +0 -8
  800. package/src/widget/types.ts +0 -51
  801. package/src/widget/utils/countryUtils.ts +0 -89
  802. package/src/widget/utils/createWagmiConfig.ts +0 -43
  803. package/src/widget/utils/forexRateStore.ts +0 -120
  804. package/src/widget/utils/fundMethodSwitchState.ts +0 -27
  805. package/src/widget/utils/historyFilters.ts +0 -157
  806. package/src/widget/utils/historyUtils.ts +0 -101
  807. package/src/widget/utils/localeStore.ts +0 -68
  808. package/src/widget/utils/meldProviderUtils.ts +0 -26
  809. package/src/widget/utils/meshSupportedTokens.ts +0 -28
  810. package/src/widget/utils/onrampConfig.ts +0 -15
  811. package/src/widget/utils/statusLabel.ts +0 -3
  812. package/src/widget/utils/tokens.ts +0 -138
  813. package/src/widget/utils/trailsOnrampConfig.ts +0 -39
  814. package/src/widget/utils/transactionFailure.ts +0 -52
  815. package/src/widget/utils/viewManagerGuards.ts +0 -49
  816. package/src/widget/utils/windowUtils.ts +0 -138
  817. package/src/widget/widget.tsx +0 -3400
  818. /package/dist/{widget/hooks → hooks}/useAddressWalletIcon.d.ts +0 -0
  819. /package/dist/{widget/hooks → hooks}/useAmountUsd.d.ts +0 -0
  820. /package/dist/{widget/hooks → hooks}/useBalanceVisible.d.ts +0 -0
  821. /package/dist/{widget/hooks → hooks}/useChainFilter.d.ts +0 -0
  822. /package/dist/{widget/hooks → hooks}/useClickTracking.d.ts +0 -0
  823. /package/dist/{widget/hooks → hooks}/useConnector.d.ts +0 -0
  824. /package/dist/{widget/hooks → hooks}/useDebounce.d.ts +0 -0
  825. /package/dist/{widget/hooks → hooks}/useDepositMonitor.d.ts +0 -0
  826. /package/dist/{widget/hooks → hooks}/useDisplayCurrencyPreference.d.ts +0 -0
  827. /package/dist/{widget/hooks → hooks}/useExecutingIntentsCount.d.ts +0 -0
  828. /package/dist/{widget/hooks → hooks}/useFiatSelectedCurrency.d.ts +0 -0
  829. /package/dist/{widget/hooks → hooks}/useGetIntent.d.ts +0 -0
  830. /package/dist/{widget/hooks → hooks}/useIsMobile.d.ts +0 -0
  831. /package/dist/{widget/hooks → hooks}/useIsSequenceWallet.d.ts +0 -0
  832. /package/dist/{widget/hooks → hooks}/useLocalePreference.d.ts +0 -0
  833. /package/dist/{widget/hooks → hooks}/useMeldTransactionHistory.d.ts +0 -0
  834. /package/dist/{widget/hooks → hooks}/useMeldTransactionStatus.d.ts +0 -0
  835. /package/dist/{widget/hooks → hooks}/useOnRampCountryDefaults.d.ts +0 -0
  836. /package/dist/{widget/hooks → hooks}/usePayMessage.d.ts +0 -0
  837. /package/dist/{widget/hooks → hooks}/usePriceImpactWarning.d.ts +0 -0
  838. /package/dist/{widget/hooks → hooks}/useRecipients.d.ts +0 -0
  839. /package/dist/{widget/hooks → hooks}/useSelectedFeeOption.d.ts +0 -0
  840. /package/dist/{widget/hooks → hooks}/useSelectedRecipient.d.ts +0 -0
  841. /package/dist/{widget/hooks → hooks}/useSwapAmount.d.ts +0 -0
  842. /package/dist/{widget/hooks → hooks}/useTargetAmount.d.ts +0 -0
  843. /package/dist/{widget/hooks → hooks}/useTheme.d.ts +0 -0
  844. /package/dist/{widget/hooks → hooks}/useWalletConnectionContext.d.ts +0 -0
@@ -1,1106 +0,0 @@
1
- import { ArrowLeftRight } from "lucide-react"
2
- import type React from "react"
3
- import { useCallback, useEffect, useRef, useState } from "react"
4
- import { getChainInfo } from "../../chains.js"
5
- import { FIAT_CURRENCY_SYMBOLS } from "../../constants.js"
6
- import { isPositiveNumber, toSafeNumber } from "../../utils/validation.js"
7
- import { logger } from "../../logger.js"
8
- import { TradeType } from "../../prepareSend.js"
9
- import {
10
- formatUsdAmountDisplay,
11
- formatUsdAmountLocaleDisplay,
12
- } from "../../utils/format.js"
13
- import { useSupportedTokens, type Token } from "../../tokens.js"
14
- import { useViewManager, useScreenGuard } from "../hooks/useViewManager.js"
15
- import { useBalanceVisible } from "../hooks/useBalanceVisible.js"
16
- import { useDefaultDestinationToken } from "../hooks/useDefaultDestinationToken.js"
17
- import { useDefaultOriginToken } from "../hooks/useDefaultOriginToken.js"
18
- import { useDestinationSelectedToken } from "../hooks/useDestinationSelectedToken.js"
19
- import { useOriginSelectedToken } from "../hooks/useOriginSelectedToken.js"
20
- import type { ProcessedFeeOption } from "../hooks/useSelectedFeeOption.js"
21
- import { useSelectedRecipient } from "../hooks/useSelectedRecipient.js"
22
- import { useSendForm, type OnCompleteProps } from "../hooks/useSendForm.js"
23
- import { useSwapState } from "../hooks/useSwapState.js"
24
- import { useAccountTokenBalanceOnchain } from "../../query/balance.hooks.js"
25
- import type { BaseProps } from "../types/commonProps.js"
26
- import { isWithinCooldown, SECOND_MS } from "../../utils/time.js"
27
- import { forexRateStore } from "../utils/forexRateStore.js"
28
- import { ChainList } from "./ChainList.js"
29
- import { DynamicSizeInputField } from "./DynamicSizeInputField.js"
30
- import { isFeeOptionDisabled } from "./FeeOption.js"
31
- import { FeeOptions } from "./FeeOptions.js"
32
- import { PercentageMaxButtons } from "./PercentageMaxButtons.js"
33
- import { QuoteDetails } from "./QuoteDetails.js"
34
- import { RecipientSelectorButton } from "./RecipientSelectorButton.js"
35
- import { ScreenHeader } from "./ScreenHeader.js"
36
- import { FundingMethodSelectorButton } from "./FundingMethodSelectorButton.js"
37
- import { TokenSelector } from "./TokenSelector.js"
38
- import { TokenSelectorButton } from "./TokenSelectorButton.js"
39
- import LoadingSpinner from "./LoadingSpinner.js"
40
-
41
- import { addressEqual } from "../../utils/address.js"
42
- interface WithdrawProps extends BaseProps {
43
- title?: string
44
- fromToken?: string
45
- fromChainId?: number
46
- /** Default input mode: "fiat" starts with USD input, "token" starts with token input */
47
- defaultInputMode?: "fiat" | "token"
48
- }
49
-
50
- const Withdraw: React.FC<WithdrawProps> = ({
51
- selectedToken: initialSelectedToken,
52
- onSend,
53
- onConfirm,
54
- onComplete,
55
- account,
56
- toRecipient,
57
- toAmount,
58
- toChainId,
59
- toToken,
60
- toCalldata,
61
- walletClient,
62
- onTransactionStateChange,
63
- onError,
64
- onWaitingForWalletConfirm,
65
- paymasterUrls,
66
- setWalletConfirmRetryHandler,
67
- swapProvider,
68
- bridgeProvider,
69
- swapProviderFallback,
70
- bridgeProviderFallback,
71
- onAmountUpdate,
72
- checkoutOnHandlers,
73
- recentTokens,
74
- onTrackToken,
75
- isSequenceWallet: _isSequenceWallet = false,
76
- fromToken,
77
- fromChainId: fromChainIdProp,
78
- defaultInputMode,
79
- }) => {
80
- const { mode, navigate } = useViewManager()
81
- const isGenericLayout = !fromToken
82
- const { isBalanceVisible } = useBalanceVisible()
83
- const {
84
- selectedToken: originToken,
85
- setSelectedToken: setOriginToken,
86
- hasManualSelection: hasManualOriginSelection,
87
- setHasManualSelection: setHasManualOriginSelection,
88
- } = useOriginSelectedToken()
89
- const {
90
- selectedToken: destinationToken,
91
- setSelectedToken: setDestinationToken,
92
- hasManualSelection: hasManualDestinationSelection,
93
- setHasManualSelection: setHasManualDestinationSelection,
94
- } = useDestinationSelectedToken()
95
-
96
- // Get origin token with fresh balance for fee option checks
97
- const {
98
- token: freshOriginToken,
99
- isLoadingBalance: isLoadingFreshOriginBalance,
100
- } = useAccountTokenBalanceOnchain(originToken, account?.address)
101
-
102
- const { selectedRecipient, setSelectedRecipient } = useSelectedRecipient()
103
- const prevToRecipientRef = useRef<string | undefined>(toRecipient)
104
-
105
- // Use a ref to track user actions to prevent race conditions with async state updates
106
- const userActionRef = useRef({
107
- hasManualDestinationSelection: false,
108
- lastOriginSelectionTime: 0,
109
- lastDestinationSelectionTime: 0,
110
- })
111
-
112
- // Use separated default token selection hooks
113
- const { defaultOriginToken, isLoading: isLoadingOriginDefaults } =
114
- useDefaultOriginToken()
115
-
116
- const { defaultDestinationToken, isLoading: isLoadingDestinationDefaults } =
117
- useDefaultDestinationToken(originToken)
118
-
119
- const [originChainId, setOriginChainId] = useState<number | null | undefined>(
120
- initialSelectedToken?.chainId || originToken?.chainId,
121
- )
122
- const {
123
- tradeType: globalTradeType,
124
- setTradeType,
125
- sellAmount,
126
- setSellAmount,
127
- buyAmount,
128
- setBuyAmount,
129
- resetSwapState,
130
- enterFormMode,
131
- } = useSwapState()
132
-
133
- // Reset swap state only when entering withdraw mode
134
- // biome-ignore lint/correctness/useExhaustiveDependencies: Stable setters, only react to mode changes
135
- useEffect(() => {
136
- enterFormMode("withdraw")
137
- }, [])
138
-
139
- useScreenGuard(
140
- (toRecipient == null || toRecipient === "") && !selectedRecipient,
141
- "recipients",
142
- { backTarget: "withdraw" },
143
- )
144
-
145
- // Initialize and update selected recipient from toRecipient prop
146
- useEffect(() => {
147
- const toRecipientChanged = toRecipient !== prevToRecipientRef.current
148
- prevToRecipientRef.current = toRecipient
149
-
150
- if (toRecipientChanged) {
151
- if (toRecipient) {
152
- logger.console.log(
153
- "[trails-sdk] Withdraw Setting selectedRecipient to toRecipient:",
154
- toRecipient,
155
- )
156
- setSelectedRecipient(toRecipient)
157
- } else {
158
- logger.console.log(
159
- "[trails-sdk] Withdraw Clearing selectedRecipient (toRecipient is now empty)",
160
- )
161
- setSelectedRecipient(null)
162
- }
163
- } else if (toRecipient && !selectedRecipient) {
164
- logger.console.log(
165
- "[trails-sdk] Withdraw Setting selectedRecipient to toRecipient:",
166
- toRecipient,
167
- )
168
- setSelectedRecipient(toRecipient)
169
- }
170
- }, [toRecipient, selectedRecipient, setSelectedRecipient])
171
-
172
- // Calculate effective recipient for useSendForm
173
- const effectiveRecipient =
174
- selectedRecipient || toRecipient || account?.address
175
-
176
- const tradeType = globalTradeType || TradeType.EXACT_INPUT
177
- // Initialize based on defaultInputMode prop
178
- const [isEnteringFiat, setIsEnteringFiat] = useState(
179
- defaultInputMode === "fiat",
180
- )
181
- const [inputDisplayValue, setInputDisplayValue] = useState("")
182
- const [_isUserTyping, setIsUserTyping] = useState(false)
183
- const typingTimeoutRef = useRef<NodeJS.Timeout | null>(null)
184
-
185
- useEffect(() => {
186
- return () => {
187
- if (typingTimeoutRef.current) {
188
- clearTimeout(typingTimeoutRef.current)
189
- }
190
- }
191
- }, [])
192
-
193
- const handleCompleteAndClearAmounts = useCallback(
194
- (result: OnCompleteProps) => {
195
- setInputDisplayValue("")
196
- resetSwapState()
197
- onComplete(result)
198
- },
199
- [onComplete, resetSwapState],
200
- )
201
-
202
- const {
203
- amount,
204
- amountRaw,
205
- balanceFormatted,
206
- balanceRaw,
207
- tokenDecimals,
208
- balanceLocaleDisplay,
209
- balanceUsdDisplay,
210
- balanceUsdLocaleDisplay,
211
- handleSubmit,
212
- isSubmitting,
213
- isLoadingQuote,
214
- selectedDestToken,
215
- setSelectedDestinationChain,
216
- setSelectedDestToken,
217
- buttonText,
218
- destinationTokenAddress,
219
- isValidCustomToken,
220
- prepareSendQuote,
221
- processedFeeOptions,
222
- selectedFeeOption,
223
- setSelectedFeeOption,
224
- sourceTokenPrices,
225
- } = useSendForm({
226
- account,
227
- toAmount: tradeType === TradeType.EXACT_OUTPUT ? buyAmount : toAmount,
228
- fromAmount: tradeType === TradeType.EXACT_INPUT ? sellAmount : undefined,
229
- toRecipient: effectiveRecipient,
230
- toChainId,
231
- toToken,
232
- toCalldata,
233
- walletClient,
234
- onTransactionStateChange,
235
- onError,
236
- onWaitingForWalletConfirm,
237
- paymasterUrls,
238
- onSend,
239
- onConfirm,
240
- onComplete: handleCompleteAndClearAmounts,
241
- selectedToken: originToken ?? undefined,
242
- setWalletConfirmRetryHandler,
243
- tradeType: tradeType,
244
- swapProvider,
245
- bridgeProvider,
246
- swapProviderFallback,
247
- bridgeProviderFallback,
248
- fundMethod: "wallet",
249
- mode,
250
- checkoutOnHandlers,
251
- })
252
-
253
- // Get the token price for USD conversions
254
- const tokenPriceUsd = sourceTokenPrices?.[0]?.priceUsd || 0
255
-
256
- // Handle sell amount input changes
257
- const handleSellAmountChange = useCallback(
258
- (value: string) => {
259
- let processedValue = value
260
- if (
261
- value !== "0" &&
262
- value.length > 1 &&
263
- value.startsWith("0") &&
264
- value[1] !== "."
265
- ) {
266
- processedValue = value.replace(/^0+/, "") || "0"
267
- }
268
- setTradeType(TradeType.EXACT_INPUT)
269
- setSellAmount(processedValue)
270
- },
271
- [setTradeType, setSellAmount],
272
- )
273
-
274
- // Update amounts when quote is received
275
- useEffect(() => {
276
- if (!prepareSendQuote) return
277
-
278
- if (
279
- tradeType === TradeType.EXACT_OUTPUT &&
280
- prepareSendQuote.originAmountDisplay
281
- ) {
282
- setSellAmount(prepareSendQuote.originAmountDisplay)
283
- } else if (
284
- tradeType === TradeType.EXACT_INPUT &&
285
- prepareSendQuote.destinationAmountDisplay
286
- ) {
287
- setBuyAmount(prepareSendQuote.destinationAmountDisplay)
288
- }
289
- }, [prepareSendQuote, tradeType, setSellAmount, setBuyAmount])
290
-
291
- // Call onAmountUpdate when amountRaw changes
292
- useEffect(() => {
293
- if (onAmountUpdate) {
294
- onAmountUpdate(amountRaw)
295
- }
296
- }, [amountRaw, onAmountUpdate])
297
-
298
- // Reset the flag so auto-selection can work as a fallback
299
- useEffect(() => {
300
- if (hasManualOriginSelection && !originToken && !isLoadingOriginDefaults) {
301
- logger.console.log(
302
- "[trails-sdk] Resetting hasManualOriginSelection - token was cleared",
303
- )
304
- setHasManualOriginSelection(false)
305
- }
306
- }, [
307
- hasManualOriginSelection,
308
- originToken,
309
- isLoadingOriginDefaults,
310
- setHasManualOriginSelection,
311
- ])
312
-
313
- // Auto-select origin token using separated hook
314
- useEffect(() => {
315
- if (
316
- !originToken &&
317
- !isLoadingOriginDefaults &&
318
- defaultOriginToken &&
319
- !hasManualOriginSelection
320
- ) {
321
- logger.console.log(
322
- "[trails-sdk] Auto-selecting origin token:",
323
- defaultOriginToken,
324
- )
325
- setOriginToken(defaultOriginToken)
326
- setOriginChainId(defaultOriginToken.chainId)
327
- }
328
- }, [
329
- originToken,
330
- isLoadingOriginDefaults,
331
- defaultOriginToken,
332
- setOriginToken,
333
- hasManualOriginSelection,
334
- ])
335
-
336
- // Auto-select destination token using separated hook
337
- useEffect(() => {
338
- if (toToken) {
339
- return
340
- }
341
-
342
- const hasRecentOriginSelection =
343
- hasManualOriginSelection ||
344
- isWithinCooldown(userActionRef.current.lastOriginSelectionTime, SECOND_MS)
345
-
346
- const hasRecentDestSelection =
347
- userActionRef.current.hasManualDestinationSelection ||
348
- hasManualDestinationSelection ||
349
- isWithinCooldown(
350
- userActionRef.current.lastDestinationSelectionTime,
351
- SECOND_MS,
352
- )
353
-
354
- if (
355
- !destinationToken &&
356
- !isLoadingDestinationDefaults &&
357
- defaultDestinationToken &&
358
- !hasRecentDestSelection &&
359
- !hasRecentOriginSelection
360
- ) {
361
- logger.console.log(
362
- "[trails-sdk] Auto-selecting destination token:",
363
- defaultDestinationToken,
364
- )
365
- setDestinationToken(defaultDestinationToken)
366
- setSelectedDestToken(defaultDestinationToken)
367
-
368
- const chainInfo = getChainInfo(defaultDestinationToken.chainId)
369
- if (chainInfo) {
370
- setSelectedDestinationChain(chainInfo)
371
- }
372
- }
373
- }, [
374
- destinationToken,
375
- isLoadingDestinationDefaults,
376
- defaultDestinationToken,
377
- hasManualDestinationSelection,
378
- hasManualOriginSelection,
379
- setDestinationToken,
380
- setSelectedDestToken,
381
- setSelectedDestinationChain,
382
- toToken,
383
- ])
384
-
385
- // Auto-focus the input field when component mounts
386
- useEffect(() => {
387
- if (inputRef.current) {
388
- inputRef.current.focus()
389
- }
390
- }, [])
391
-
392
- const inputRef = useRef<HTMLInputElement>(null)
393
-
394
- const [showSourceTokenSelector, setShowSourceTokenSelector] = useState(false)
395
- const [showDestinationTokenSelector, setShowDestinationTokenSelector] =
396
- useState(false)
397
- const [showSourceChainList, setShowSourceChainList] = useState(false)
398
- const [showDestinationChainList, setShowDestinationChainList] =
399
- useState(false)
400
-
401
- const { supportedTokens } = useSupportedTokens({
402
- disabled:
403
- !!toToken || showSourceTokenSelector || showDestinationTokenSelector,
404
- })
405
-
406
- // Initialize destination token from toToken prop
407
- const lastAutoSelectedRef = useRef<string | null>(null)
408
-
409
- useEffect(() => {
410
- const currentKey = `${toToken}-${toChainId}`
411
-
412
- if (
413
- toToken &&
414
- toChainId &&
415
- supportedTokens?.length > 0 &&
416
- lastAutoSelectedRef.current !== currentKey
417
- ) {
418
- const destToken = supportedTokens?.find(
419
- (token) =>
420
- token.chainId === Number(toChainId) &&
421
- (addressEqual(token.contractAddress, toToken) ||
422
- token.symbol.toLowerCase() === toToken.toLowerCase()),
423
- )
424
-
425
- if (destToken) {
426
- logger.console.log(
427
- "[trails-sdk] Withdraw: Setting destination token from toToken prop:",
428
- destToken,
429
- )
430
-
431
- setDestinationToken(destToken)
432
- setSelectedDestToken(destToken)
433
-
434
- const chainInfo = getChainInfo(Number(toChainId))
435
- if (chainInfo) {
436
- setSelectedDestinationChain(chainInfo)
437
- }
438
-
439
- lastAutoSelectedRef.current = currentKey
440
- }
441
- } else if (!toToken && hasManualDestinationSelection) {
442
- setHasManualDestinationSelection(false)
443
- userActionRef.current.hasManualDestinationSelection = false
444
- lastAutoSelectedRef.current = null
445
- }
446
- }, [
447
- toToken,
448
- toChainId,
449
- supportedTokens,
450
- setDestinationToken,
451
- setSelectedDestToken,
452
- setSelectedDestinationChain,
453
- hasManualDestinationSelection,
454
- setHasManualDestinationSelection,
455
- ])
456
-
457
- // Sync destination token from hook with useSendForm
458
- useEffect(() => {
459
- if (destinationToken) {
460
- logger.console.log(
461
- "[trails-sdk] Syncing destination token to useSendForm:",
462
- destinationToken,
463
- )
464
- setSelectedDestToken(destinationToken)
465
- }
466
- }, [destinationToken, setSelectedDestToken])
467
-
468
- // Initialize origin token from fromToken prop
469
- const lastAutoSelectedOriginRef = useRef<string | null>(null)
470
-
471
- useEffect(() => {
472
- const currentKey = `${fromToken}-${fromChainIdProp}`
473
-
474
- if (
475
- fromToken &&
476
- fromChainIdProp &&
477
- supportedTokens?.length > 0 &&
478
- lastAutoSelectedOriginRef.current !== currentKey
479
- ) {
480
- const sourceToken = supportedTokens?.find(
481
- (token) =>
482
- token.chainId === Number(fromChainIdProp) &&
483
- (addressEqual(token.contractAddress, fromToken) ||
484
- token.symbol.toLowerCase() === fromToken.toLowerCase()),
485
- )
486
-
487
- if (sourceToken) {
488
- logger.console.log(
489
- "[trails-sdk] Withdraw: Setting origin token from fromToken prop:",
490
- sourceToken,
491
- )
492
-
493
- setOriginToken(sourceToken)
494
- setOriginChainId(sourceToken.chainId)
495
- setHasManualOriginSelection(true)
496
-
497
- lastAutoSelectedOriginRef.current = currentKey
498
- }
499
- }
500
- }, [
501
- fromToken,
502
- fromChainIdProp,
503
- supportedTokens,
504
- setOriginToken,
505
- setHasManualOriginSelection,
506
- ])
507
-
508
- // Handle source token selection from full-screen selector
509
- const handleSourceTokenSelectorSelect = useCallback(
510
- (token: Token) => {
511
- const isDifferentToken =
512
- !originToken || originToken.symbol !== token.symbol
513
- if (isDifferentToken) {
514
- setSellAmount("")
515
- setBuyAmount("")
516
- setTradeType(TradeType.EXACT_INPUT)
517
- setInputDisplayValue("")
518
- }
519
-
520
- setOriginToken(token)
521
- setOriginChainId(token.chainId)
522
- setShowSourceTokenSelector(false)
523
-
524
- setHasManualOriginSelection(true)
525
- userActionRef.current.lastOriginSelectionTime = Date.now()
526
-
527
- onTrackToken?.(token)
528
- logger.console.log("[trails-sdk] selected origin token", token)
529
- },
530
- [
531
- setOriginToken,
532
- setHasManualOriginSelection,
533
- onTrackToken,
534
- originToken,
535
- setSellAmount,
536
- setBuyAmount,
537
- setTradeType,
538
- ],
539
- )
540
-
541
- // Handle destination token selection from full-screen selector
542
- const handleDestinationTokenSelectorSelect = useCallback(
543
- (token: Token) => {
544
- setDestinationToken(token)
545
- setSelectedDestToken(token)
546
-
547
- const chainInfo = getChainInfo(token.chainId)
548
- if (chainInfo) {
549
- setSelectedDestinationChain(chainInfo)
550
- }
551
-
552
- setShowDestinationTokenSelector(false)
553
-
554
- setHasManualDestinationSelection(true)
555
- userActionRef.current.hasManualDestinationSelection = true
556
- userActionRef.current.lastDestinationSelectionTime = Date.now()
557
-
558
- onTrackToken?.(token)
559
- logger.console.log("[trails-sdk] selected destination token", token)
560
- },
561
- [
562
- setDestinationToken,
563
- setSelectedDestToken,
564
- setSelectedDestinationChain,
565
- setHasManualDestinationSelection,
566
- onTrackToken,
567
- ],
568
- )
569
-
570
- // Handle recent token selection
571
- const handleRecentTokenSelect = useCallback(
572
- (token: Token) => {
573
- if (showSourceTokenSelector) {
574
- handleSourceTokenSelectorSelect(token)
575
- } else if (showDestinationTokenSelector) {
576
- handleDestinationTokenSelectorSelect(token)
577
- }
578
- },
579
- [
580
- showSourceTokenSelector,
581
- showDestinationTokenSelector,
582
- handleSourceTokenSelectorSelect,
583
- handleDestinationTokenSelectorSelect,
584
- ],
585
- )
586
-
587
- // Show source chain list screen
588
- if (showSourceChainList) {
589
- return (
590
- <ChainList
591
- onBack={() => {
592
- setShowSourceChainList(false)
593
- setShowSourceTokenSelector(true)
594
- }}
595
- />
596
- )
597
- }
598
-
599
- // Show source token selector screen
600
- if (showSourceTokenSelector) {
601
- return (
602
- <div className="space-y-2">
603
- <ScreenHeader
604
- onBack={() => setShowSourceTokenSelector(false)}
605
- headerContent="Select Token to Withdraw"
606
- headerContentAlign="left"
607
- />
608
- <TokenSelector
609
- onTokenSelect={handleSourceTokenSelectorSelect}
610
- onError={onError}
611
- showContinueButton={false}
612
- compactMode={false}
613
- allSupportedTokens={false}
614
- fundMethod="wallet"
615
- chainListScreen={true}
616
- onNavigateToChainList={() => {
617
- setShowSourceTokenSelector(false)
618
- setShowSourceChainList(true)
619
- }}
620
- recentTokens={recentTokens}
621
- onRecentTokenSelect={handleRecentTokenSelect}
622
- />
623
- </div>
624
- )
625
- }
626
-
627
- // Show destination chain list screen
628
- if (showDestinationChainList) {
629
- return (
630
- <ChainList
631
- onBack={() => {
632
- setShowDestinationChainList(false)
633
- setShowDestinationTokenSelector(true)
634
- }}
635
- />
636
- )
637
- }
638
-
639
- // Show destination token selector screen
640
- if (showDestinationTokenSelector) {
641
- return (
642
- <div className="space-y-2">
643
- <ScreenHeader
644
- onBack={() => setShowDestinationTokenSelector(false)}
645
- headerContent="Select Token to Receive"
646
- headerContentAlign="left"
647
- />
648
- <TokenSelector
649
- onTokenSelect={handleDestinationTokenSelectorSelect}
650
- onError={onError}
651
- showContinueButton={false}
652
- compactMode={false}
653
- allSupportedTokens={true}
654
- fundMethod="wallet"
655
- chainListScreen={true}
656
- onNavigateToChainList={() => {
657
- setShowDestinationTokenSelector(false)
658
- setShowDestinationChainList(true)
659
- }}
660
- recentTokens={recentTokens}
661
- onRecentTokenSelect={handleRecentTokenSelect}
662
- />
663
- </div>
664
- )
665
- }
666
-
667
- return (
668
- <div className="space-y-2">
669
- <ScreenHeader
670
- headerContent="Withdraw"
671
- headerContentAlign="left"
672
- showAccountActions={true}
673
- customActions={
674
- <button
675
- type="button"
676
- onClick={() => navigate("swap", { backTarget: "withdraw" })}
677
- className="flex h-8 px-3 justify-center items-center gap-1.5 rounded-full bg-gray-50 dark:bg-gray-700 cursor-pointer transition-colors text-gray-900 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600"
678
- title="Swap"
679
- >
680
- <ArrowLeftRight className="h-4 w-4" />
681
- <span className="text-sm font-medium">Swap</span>
682
- </button>
683
- }
684
- />
685
-
686
- <form
687
- onSubmit={(e) => {
688
- e.preventDefault()
689
- logger.console.log("[trails-sdk] Calling handleSubmit from Withdraw")
690
- handleSubmit(e)
691
- }}
692
- className="space-y-1"
693
- >
694
- {/* Input Section - Amount */}
695
- <div className="pt-4 pb-4 trails-border-radius-container p-3 flex flex-col border border-gray-200 dark:border-gray-700 rounded-lg relative">
696
- {/* Amount Input - Centered */}
697
- <div className="flex items-center justify-center">
698
- <div className="flex items-center justify-center space-x-2">
699
- <DynamicSizeInputField
700
- ref={inputRef}
701
- value={inputDisplayValue}
702
- onChange={(e) => {
703
- const value = e.target.value
704
-
705
- setIsUserTyping(true)
706
-
707
- if (typingTimeoutRef.current) {
708
- clearTimeout(typingTimeoutRef.current)
709
- }
710
-
711
- typingTimeoutRef.current = setTimeout(() => {
712
- setIsUserTyping(false)
713
- }, 300)
714
-
715
- if (value === "") {
716
- setInputDisplayValue("")
717
- setSellAmount("")
718
- return
719
- }
720
-
721
- // Validate decimal places (max 8 for tokens, max 2 for USD)
722
- const maxDecimals = isEnteringFiat ? 2 : 8
723
- const decimalRegex = new RegExp(
724
- `^\\d*\\.?\\d{0,${maxDecimals}}$`,
725
- )
726
- const decimalMatch = value.match(decimalRegex)
727
- if (!decimalMatch) {
728
- return
729
- }
730
-
731
- setInputDisplayValue(value)
732
-
733
- if (isEnteringFiat && tokenPriceUsd > 0) {
734
- // User is entering fiat, convert to token amount for backend
735
- const inputAmount = toSafeNumber(value)
736
- const rateData = forexRateStore.getRate()
737
- const usdAmount =
738
- rateData && rateData.currency !== "USD"
739
- ? inputAmount / rateData.rate
740
- : inputAmount
741
- const tokenAmount = usdAmount / tokenPriceUsd
742
- handleSellAmountChange(tokenAmount.toString())
743
- } else {
744
- handleSellAmountChange(value)
745
- }
746
- }}
747
- isLoading={
748
- isLoadingQuote && tradeType === TradeType.EXACT_OUTPUT
749
- }
750
- variant="default"
751
- inputSize="large"
752
- textAlign="center"
753
- isFiatInput={isEnteringFiat}
754
- currencySymbol={
755
- isEnteringFiat
756
- ? (() => {
757
- const rateData = forexRateStore.getRate()
758
- const currency = rateData?.currency || "USD"
759
- return (
760
- FIAT_CURRENCY_SYMBOLS[
761
- currency as keyof typeof FIAT_CURRENCY_SYMBOLS
762
- ] || "$"
763
- )
764
- })()
765
- : originToken?.symbol
766
- }
767
- />
768
- {isLoadingQuote && tradeType === TradeType.EXACT_OUTPUT && (
769
- <LoadingSpinner />
770
- )}
771
- </div>
772
- </div>
773
-
774
- {/* Destination Address Selector */}
775
- {!isGenericLayout && (
776
- <div className="mt-3 flex justify-center">
777
- <div className="flex items-center space-x-1 text-sm">
778
- <span className="text-gray-500 dark:text-gray-400">To:</span>
779
- <RecipientSelectorButton
780
- selectedRecipient={selectedRecipient}
781
- />
782
- </div>
783
- </div>
784
- )}
785
-
786
- {/* USD Value Toggle */}
787
- <div className="mt-2 text-center text-sm">
788
- <div className="flex justify-center">
789
- <button
790
- type="button"
791
- onClick={() => {
792
- const newMode = !isEnteringFiat
793
- setIsEnteringFiat(newMode)
794
-
795
- if (inputDisplayValue && tokenPriceUsd > 0) {
796
- const currentValue = parseFloat(inputDisplayValue)
797
-
798
- if (isPositiveNumber(currentValue)) {
799
- const rateData = forexRateStore.getRate()
800
-
801
- if (newMode) {
802
- // Switching to fiat mode
803
- const usdValue = currentValue * tokenPriceUsd
804
- const displayValue =
805
- rateData && rateData.currency !== "USD"
806
- ? usdValue * rateData.rate
807
- : usdValue
808
- const finalValue = Number(
809
- displayValue.toFixed(2),
810
- ).toString()
811
- setInputDisplayValue(finalValue)
812
- } else {
813
- // Switching to token mode
814
- const usdValue =
815
- rateData && rateData.currency !== "USD"
816
- ? currentValue / rateData.rate
817
- : currentValue
818
- const tokenValue = usdValue / tokenPriceUsd
819
- const rounded =
820
- Math.round(tokenValue * 100000000) / 100000000
821
- setInputDisplayValue(rounded.toString())
822
- }
823
- }
824
- }
825
- }}
826
- className="text-xs text-blue-500 hover:text-blue-600 transition-colors cursor-pointer flex items-center gap-1"
827
- title={
828
- originToken
829
- ? `Toggle between USD and ${originToken.symbol}`
830
- : ""
831
- }
832
- >
833
- <svg
834
- aria-hidden="true"
835
- width="16"
836
- height="16"
837
- viewBox="0 0 16 16"
838
- fill="none"
839
- xmlns="http://www.w3.org/2000/svg"
840
- >
841
- <path
842
- d="M3.16669 6.5L5.50002 4.16667M5.50002 4.16667L7.83335 6.5M5.50002 4.16667L5.50002 11.8333"
843
- stroke="#3B82F6"
844
- strokeWidth="1.5"
845
- strokeLinecap="round"
846
- strokeLinejoin="round"
847
- />
848
- <path
849
- d="M12.8334 9.5L10.5 11.8333M10.5 11.8333L8.16669 9.5M10.5 11.8333L10.5 4.16667"
850
- stroke="#3B82F6"
851
- strokeWidth="1.5"
852
- strokeLinecap="round"
853
- strokeLinejoin="round"
854
- />
855
- </svg>
856
- {(() => {
857
- const inputValue = toSafeNumber(inputDisplayValue)
858
-
859
- if (isEnteringFiat) {
860
- // Currently entering in fiat, show the token amount
861
- const rateData = forexRateStore.getRate()
862
- const usdValue =
863
- rateData && rateData.currency !== "USD"
864
- ? inputValue / rateData.rate
865
- : inputValue
866
- const tokenAmount =
867
- tokenPriceUsd > 0 ? usdValue / tokenPriceUsd : 0
868
- const tokenDisplay =
869
- tokenAmount > 0
870
- ? `${tokenAmount.toFixed(8)} ${originToken?.symbol || ""}`
871
- : `0 ${originToken?.symbol || ""}`
872
-
873
- return <span title={tokenDisplay}>≈ {tokenDisplay}</span>
874
- } else {
875
- // Currently entering in token amount, show USD value
876
- const usdAmount = inputValue * tokenPriceUsd
877
- const displayValue = formatUsdAmountDisplay(usdAmount)
878
- const localeValue = formatUsdAmountLocaleDisplay(usdAmount)
879
-
880
- return <span title={displayValue}>≈ {localeValue}</span>
881
- }
882
- })()}
883
- </button>
884
- </div>
885
- </div>
886
-
887
- {/* Percentage Buttons */}
888
- {originToken && balanceFormatted && (
889
- <div className="mt-3 flex justify-center items-center space-x-2">
890
- <PercentageMaxButtons
891
- userBalance={balanceFormatted}
892
- userBalanceRaw={balanceRaw}
893
- decimals={tokenDecimals}
894
- isNativeToken={originToken.isNativeToken ?? false}
895
- gasCostFormatted={prepareSendQuote?.gasCostFormatted}
896
- chainId={originChainId || undefined}
897
- onAmountSelect={(amount) => {
898
- setTradeType(TradeType.EXACT_INPUT)
899
- setSellAmount(amount)
900
- setBuyAmount("")
901
- if (isEnteringFiat && tokenPriceUsd > 0) {
902
- const usdAmount = parseFloat(amount) * tokenPriceUsd
903
- setInputDisplayValue(
904
- Number(usdAmount.toFixed(2)).toString(),
905
- )
906
- } else {
907
- setInputDisplayValue(amount)
908
- }
909
- }}
910
- className="opacity-100"
911
- />
912
- </div>
913
- )}
914
- </div>
915
-
916
- {/* Withdraw As / Receive As Section */}
917
- <div className="mt-4 pt-4 pb-4 trails-border-radius-container p-3 mb-4 border border-gray-200 dark:border-gray-700 rounded-lg">
918
- {/* Labels */}
919
- <div className="flex items-center justify-between mb-3 px-1">
920
- <div className="flex flex-col" style={{ minWidth: "138px" }}>
921
- <span className="text-sm font-medium text-black dark:text-white">
922
- {isGenericLayout ? "From" : "Withdraw"}
923
- </span>
924
- {isGenericLayout && (
925
- <div className="mt-1">
926
- <FundingMethodSelectorButton
927
- sendToScreen={{
928
- screen: "select-funding-wallet",
929
- backScreen: "withdraw",
930
- }}
931
- />
932
- </div>
933
- )}
934
- </div>
935
- <div className="w-7 shrink-0"></div>
936
- <div className="flex flex-col" style={{ minWidth: "138px" }}>
937
- <span className="text-sm font-medium text-black dark:text-white">
938
- {isGenericLayout ? "To" : "Receive"}
939
- </span>
940
- {isGenericLayout && (
941
- <div className="mt-1">
942
- <RecipientSelectorButton
943
- selectedRecipient={selectedRecipient}
944
- />
945
- </div>
946
- )}
947
- </div>
948
- </div>
949
-
950
- {/* Token Selectors with Arrow */}
951
- <div className="flex items-center justify-between space-x-2">
952
- {/* Origin Token Selector */}
953
- <div className="min-w-[138px] flex flex-col mr-0 py-3.5">
954
- <TokenSelectorButton
955
- token={originToken}
956
- chainId={originChainId}
957
- onSelect={() => setShowSourceTokenSelector(true)}
958
- unselectable={!!fromToken}
959
- fullWidth={true}
960
- />
961
- </div>
962
-
963
- {/* Arrow Icon */}
964
- <div className="shrink-0 mr-0">
965
- <div className="w-7 h-7 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center">
966
- <svg
967
- aria-hidden="true"
968
- xmlns="http://www.w3.org/2000/svg"
969
- width="16"
970
- height="16"
971
- viewBox="0 0 16 16"
972
- fill="none"
973
- >
974
- <path
975
- d="M7.52861 2.86201C7.78895 2.60166 8.21096 2.60166 8.47131 2.86201L13.138 7.52868C13.3983 7.78903 13.3983 8.21104 13.138 8.47138L8.47131 13.1381C8.21096 13.3984 7.78895 13.3984 7.52861 13.1381C7.26826 12.8777 7.26826 12.4557 7.52861 12.1953L11.0573 8.6667H3.33329C2.9651 8.6667 2.66663 8.36822 2.66663 8.00003C2.66663 7.63184 2.9651 7.33336 3.33329 7.33336H11.0573L7.52861 3.80472C7.26826 3.54437 7.26826 3.12236 7.52861 2.86201Z"
976
- fill="currentColor"
977
- className="text-gray-900 dark:text-white"
978
- />
979
- </svg>
980
- </div>
981
- </div>
982
-
983
- {/* Destination Token Selector */}
984
- <div className="min-w-[138px] flex">
985
- <TokenSelectorButton
986
- token={selectedDestToken}
987
- chainId={selectedDestToken?.chainId}
988
- onSelect={() => setShowDestinationTokenSelector(true)}
989
- unselectable={!!toToken}
990
- fullWidth={true}
991
- />
992
- </div>
993
- </div>
994
-
995
- {/* Token Balance Display: show insufficient funds when no quote (e.g. 0 balance) or quote says insufficient; otherwise show balance */}
996
- {originToken && (
997
- <div className="mt-3 pl-1 text-xs text-left">
998
- {prepareSendQuote?.noSufficientBalance ||
999
- (!isLoadingFreshOriginBalance &&
1000
- balanceRaw !== undefined &&
1001
- balanceRaw !== "" &&
1002
- BigInt(balanceRaw) === 0n) ? (
1003
- <span style={{ color: "#F97316" }}>Insufficient funds</span>
1004
- ) : balanceFormatted ? (
1005
- <>
1006
- <span
1007
- className="text-black dark:text-white notranslate"
1008
- translate="no"
1009
- >
1010
- Balance:
1011
- </span>
1012
- <span
1013
- className="text-gray-500 dark:text-gray-400 notranslate"
1014
- translate="no"
1015
- >
1016
- {" "}
1017
- {isBalanceVisible
1018
- ? `${balanceLocaleDisplay || balanceFormatted} ${originToken.symbol}`
1019
- : "••••••"}
1020
- {balanceUsdDisplay && isBalanceVisible ? (
1021
- <span className="notranslate" translate="no">
1022
- {" "}
1023
- ({balanceUsdLocaleDisplay || balanceUsdDisplay})
1024
- </span>
1025
- ) : null}
1026
- </span>
1027
- </>
1028
- ) : null}
1029
- </div>
1030
- )}
1031
- </div>
1032
-
1033
- {/* Fee Options */}
1034
- <FeeOptions
1035
- processedFeeOptions={processedFeeOptions || []}
1036
- selectedFeeOption={selectedFeeOption}
1037
- setSelectedFeeOption={(feeOption) => setSelectedFeeOption(feeOption)}
1038
- chainId={originToken?.chainId}
1039
- isRefetching={isLoadingQuote}
1040
- originTokenInfo={{
1041
- originToken: freshOriginToken ?? originToken!,
1042
- originTokenBalance:
1043
- freshOriginToken?.balance ?? originToken?.balance ?? "0",
1044
- originTokenAmount: sellAmount,
1045
- isLoadingBalance: isLoadingFreshOriginBalance,
1046
- }}
1047
- />
1048
-
1049
- {/* Quote Details */}
1050
- {prepareSendQuote && !isLoadingQuote && (
1051
- <div className="mb-4">
1052
- <QuoteDetails
1053
- quote={prepareSendQuote}
1054
- showContent={true}
1055
- swapMode={false}
1056
- isRefetching={isLoadingQuote}
1057
- showInsufficientFunds={false}
1058
- />
1059
- </div>
1060
- )}
1061
-
1062
- <button
1063
- type="submit"
1064
- disabled={
1065
- !amount ||
1066
- isSubmitting ||
1067
- !destinationTokenAddress ||
1068
- !isValidCustomToken ||
1069
- isLoadingQuote ||
1070
- !prepareSendQuote ||
1071
- prepareSendQuote?.noSufficientBalance ||
1072
- (selectedFeeOption
1073
- ? isFeeOptionDisabled(selectedFeeOption as ProcessedFeeOption, {
1074
- originToken: freshOriginToken ?? originToken!,
1075
- originTokenBalance:
1076
- freshOriginToken?.balance ?? originToken?.balance ?? "0",
1077
- originTokenAmount: sellAmount,
1078
- })
1079
- : false)
1080
- }
1081
- className="w-full font-semibold py-4 px-4 trails-border-radius-button transition-colors bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white disabled:text-gray-500 disabled:cursor-not-allowed cursor-pointer relative"
1082
- >
1083
- {isSubmitting ? (
1084
- <div className="flex items-center justify-center">
1085
- <LoadingSpinner className="mr-2" />
1086
- <span>{buttonText}</span>
1087
- </div>
1088
- ) : prepareSendQuote?.noSufficientBalance ? (
1089
- "Insufficient Balance"
1090
- ) : !sellAmount ? (
1091
- "Enter amount"
1092
- ) : buttonText === "Getting quote..." ? (
1093
- <div className="flex items-center justify-center">
1094
- <LoadingSpinner className="mr-2" />
1095
- <span>{buttonText}</span>
1096
- </div>
1097
- ) : (
1098
- buttonText || "Make withdrawal"
1099
- )}
1100
- </button>
1101
- </form>
1102
- </div>
1103
- )
1104
- }
1105
-
1106
- export { Withdraw }