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,1165 +0,0 @@
1
- import { ArrowLeftRight, ChevronRight, Search } from "lucide-react"
2
- import type React from "react"
3
- import { useCallback, useEffect, useMemo, useRef, useState } from "react"
4
- import { getChainInfo } from "../../chains.js"
5
- import { isValidNumber } from "../../utils/validation.js"
6
- import { logger } from "../../logger.js"
7
- import { TradeType } from "../../prepareSend.js"
8
- import { formatUsdAmountLocaleDisplay } from "../../utils/format.js"
9
- import type { Token } from "../../tokens.js"
10
- import { isPassthroughEligible } from "../../utils/passthrough.js"
11
- import { useClickTracking } from "../hooks/useClickTracking.js"
12
- import { useDefaultDestinationToken } from "../hooks/useDefaultDestinationToken.js"
13
- import { useDefaultOriginToken } from "../hooks/useDefaultOriginToken.js"
14
- import { useDestinationSelectedToken } from "../hooks/useDestinationSelectedToken.js"
15
- import { useViewManager } from "../hooks/useViewManager.js"
16
- import { useOriginSelectedToken } from "../hooks/useOriginSelectedToken.js"
17
- import { usePayMessage } from "../hooks/usePayMessage.js"
18
- import type { ProcessedFeeOption } from "../hooks/useSelectedFeeOption.js"
19
- import { useSelectedRecipient } from "../hooks/useSelectedRecipient.js"
20
- import { useSendForm } from "../hooks/useSendForm.js"
21
- import { useSwapAmount } from "../hooks/useSwapAmount.js"
22
- import { useSwapState } from "../hooks/useSwapState.js"
23
- import { useTargetAmount } from "../hooks/useTargetAmount.js"
24
- import { useAccountTokenBalanceOnchain } from "../../query/balance.hooks.js"
25
- import type { BaseProps } from "../types/commonProps.js"
26
- import { AddressOrEnsName } from "./AddressOrEnsName.js"
27
- import { AddressWalletIcon } from "./AddressWalletIcon.js"
28
- import { ChainList } from "./ChainList.js"
29
- import { useDynamicInputStyles } from "./DynamicInputStyles.js"
30
- import { DynamicSizeInputField } from "./DynamicSizeInputField.js"
31
- import { ErrorDisplay } from "./ErrorDisplay.js"
32
- import { isFeeOptionDisabled } from "./FeeOption.js"
33
- import { FeeOptions } from "./FeeOptions.js"
34
- import { PercentageMaxButtons } from "./PercentageMaxButtons.js"
35
- import { QuoteDetails } from "./QuoteDetails.js"
36
- import { RefundWarning } from "./RefundWarning.js"
37
- import { RequiredPropsError } from "./RequiredPropsError.js"
38
- import { ScreenHeader } from "./ScreenHeader.js"
39
- import { FundingMethodSelectorButton } from "./FundingMethodSelectorButton.js"
40
- import { TokenImage } from "./TokenImage.js"
41
- import { TokenSelector } from "./TokenSelector.js"
42
- import { TokenSelectorButton } from "./TokenSelectorButton.js"
43
- import LoadingSpinner from "./LoadingSpinner.js"
44
-
45
- import { addressEqual } from "../../utils/address.js"
46
- interface PayProps extends BaseProps {}
47
-
48
- export const Pay: React.FC<PayProps> = ({
49
- selectedToken: initialOriginToken,
50
- onBack,
51
- account,
52
- walletClient,
53
- onTransactionStateChange,
54
- onError,
55
- onWaitingForWalletConfirm,
56
- onConfirm,
57
- onComplete,
58
- onSend,
59
- paymasterUrls,
60
- isSequenceWallet = false,
61
- setWalletConfirmRetryHandler,
62
- swapProvider,
63
- bridgeProvider,
64
- swapProviderFallback,
65
- bridgeProviderFallback,
66
- fundMethod,
67
- checkoutOnHandlers,
68
- recentTokens,
69
- onRecentTokenSelect,
70
- onTrackToken,
71
- toRecipient,
72
- toAmount,
73
- toChainId,
74
- toToken,
75
- toCalldata,
76
- onAmountUpdate,
77
- }) => {
78
- const { mode, navigate } = useViewManager()
79
- const { selectedToken: globalOriginToken, setSelectedToken: setOriginToken } =
80
- useOriginSelectedToken()
81
- const {
82
- selectedToken: globalDestinationToken,
83
- setSelectedToken: setDestinationToken,
84
- isControlledByProps: isDestinationControlledByProps,
85
- } = useDestinationSelectedToken()
86
- const { selectedRecipient, setSelectedRecipient } = useSelectedRecipient()
87
- const { setAmount: setGlobalAmount, clearAmount } = useSwapAmount()
88
- const { targetAmountUsd } = useTargetAmount()
89
- const { enterFormMode } = useSwapState()
90
-
91
- // Reset amounts only when switching between different form modes
92
- // biome-ignore lint/correctness/useExhaustiveDependencies: Only run on mount to register form mode and conditionally reset
93
- useEffect(() => {
94
- if (!toAmount) {
95
- const didReset = enterFormMode("pay")
96
- if (didReset) {
97
- clearAmount()
98
- }
99
- } else {
100
- enterFormMode("pay")
101
- }
102
- }, [])
103
-
104
- // Use global origin token state or initial prop
105
- const originToken = globalOriginToken || initialOriginToken
106
-
107
- // Use separated default token selection hooks
108
- const { defaultOriginToken, isLoading: isLoadingOriginDefaults } =
109
- useDefaultOriginToken()
110
-
111
- const { defaultDestinationToken, isLoading: isLoadingDestinationDefaults } =
112
- useDefaultDestinationToken(originToken)
113
-
114
- // Use pay message hook for payment request display
115
- const { message: payMessage } = usePayMessage()
116
-
117
- // Local state for pay-specific functionality
118
- const [tokenAmountForBackend, setTokenAmountForBackend] = useState("")
119
- const [inputDisplayValue, setInputDisplayValue] = useState("")
120
- const [showOriginTokenSelector, setShowOriginTokenSelector] = useState(false)
121
- const [showOriginChainList, setShowOriginChainList] = useState(false)
122
- const [showDestinationTokenSelector, setShowDestinationTokenSelector] =
123
- useState(false)
124
- const [showDestinationChainList, setShowDestinationChainList] =
125
- useState(false)
126
- const [showQuoteDetails, setShowQuoteDetails] = useState(false)
127
- const inputRef = useRef<HTMLInputElement>(null)
128
-
129
- // Initialize click tracking
130
- const { trackClick } = useClickTracking()
131
- const paymentRequestInputRef = useRef<HTMLInputElement>(null)
132
-
133
- // Get origin token with fresh balance for display and fee option checks
134
- const {
135
- token: freshOriginToken,
136
- isLoadingBalance: isLoadingFreshOriginBalance,
137
- } = useAccountTokenBalanceOnchain(originToken, account?.address)
138
-
139
- // Calculate effective recipient for useSendForm
140
- const effectiveRecipient =
141
- selectedRecipient || toRecipient || account?.address
142
-
143
- const isSameTokenSameChainToSelf = useMemo(() => {
144
- if (
145
- !originToken ||
146
- !globalDestinationToken ||
147
- !effectiveRecipient ||
148
- !account?.address
149
- ) {
150
- return false
151
- }
152
-
153
- const isSameToken =
154
- originToken.contractAddress?.toLowerCase() ===
155
- globalDestinationToken.contractAddress?.toLowerCase() &&
156
- originToken.chainId === globalDestinationToken.chainId
157
-
158
- const isSameRecipient = addressEqual(effectiveRecipient, account.address)
159
-
160
- return isSameToken && isSameRecipient
161
- }, [
162
- originToken,
163
- globalDestinationToken,
164
- effectiveRecipient,
165
- account?.address,
166
- ])
167
-
168
- // Use useSendForm for quote functionality with EXACT_OUTPUT trade type
169
- const {
170
- amountUsdDisplay,
171
- amountUsdLocaleDisplay,
172
- isLoadingQuote,
173
- prepareSendQuote,
174
- setAmount: setSendFormAmount,
175
- handleSubmit,
176
- isSubmitting,
177
- buttonText,
178
- isValidRecipient,
179
- selectedDestToken,
180
- setSelectedDestToken,
181
- setSelectedDestinationChain,
182
- quoteError,
183
- quoteErrorPrettified,
184
- destinationTokenAddress,
185
- isValidCustomToken,
186
- isSenderContractOnOrigin,
187
- isSenderContractOnDestination,
188
- processedFeeOptions,
189
- selectedFeeOption,
190
- setSelectedFeeOption,
191
- } = useSendForm({
192
- account,
193
- toAmount: tokenAmountForBackend || toAmount, // Use the input amount as target amount for EXACT_OUTPUT
194
- toRecipient: effectiveRecipient,
195
- toChainId,
196
- toToken,
197
- toCalldata,
198
- walletClient,
199
- onTransactionStateChange,
200
- onError,
201
- onWaitingForWalletConfirm,
202
- paymasterUrls,
203
- onConfirm,
204
- onComplete,
205
- onSend,
206
- selectedToken: originToken as any,
207
- setWalletConfirmRetryHandler,
208
- tradeType: TradeType.EXACT_OUTPUT, // Key difference: using EXACT_OUTPUT
209
- swapProvider,
210
- bridgeProvider,
211
- swapProviderFallback,
212
- bridgeProviderFallback,
213
- fundMethod,
214
- mode,
215
- checkoutOnHandlers,
216
- // Skip fee balance fetching for onramp/direct-transfer modes where fee options aren't shown
217
- skipFeeBalanceFetch:
218
- fundMethod === "onramp-meld" ||
219
- fundMethod === "direct-transfer" ||
220
- fundMethod === "onramp-mesh",
221
- })
222
-
223
- // Auto-select origin token using new hook
224
- useEffect(() => {
225
- if (!originToken && !isLoadingOriginDefaults && defaultOriginToken) {
226
- logger.console.log(
227
- "[trails-sdk] Auto-selecting origin token:",
228
- defaultOriginToken,
229
- )
230
- setOriginToken(defaultOriginToken as any)
231
- }
232
- }, [originToken, isLoadingOriginDefaults, defaultOriginToken, setOriginToken])
233
-
234
- useEffect(() => {
235
- if (globalDestinationToken) {
236
- // Sync local state with global state
237
- setSelectedDestToken(globalDestinationToken)
238
-
239
- // Set the destination chain to match the token
240
- if (setSelectedDestinationChain) {
241
- const chainInfo = getChainInfo(globalDestinationToken.chainId)
242
- if (chainInfo) {
243
- setSelectedDestinationChain(chainInfo)
244
- }
245
- }
246
- }
247
- }, [
248
- globalDestinationToken,
249
- setSelectedDestToken,
250
- setSelectedDestinationChain,
251
- ])
252
-
253
- // Sync resolved token from useSendForm back to global provider
254
- // This handles the case where toToken is not in supported tokens and useSendForm resolves it
255
- useEffect(() => {
256
- // Skip if not controlled by props or no resolved token
257
- if (!isDestinationControlledByProps || !selectedDestToken || !toToken) {
258
- return
259
- }
260
-
261
- // Check if the resolved token matches what we're looking for
262
- const chainIdMatches = selectedDestToken.chainId === Number(toChainId)
263
- const tokenMatches =
264
- selectedDestToken.contractAddress?.toLowerCase() ===
265
- toToken.toLowerCase() ||
266
- selectedDestToken.symbol?.toLowerCase() === toToken.toLowerCase()
267
-
268
- // Only sync if the token matches the toToken prop
269
- if (chainIdMatches && tokenMatches) {
270
- const globalMatches =
271
- globalDestinationToken &&
272
- globalDestinationToken.chainId === selectedDestToken.chainId &&
273
- globalDestinationToken.contractAddress?.toLowerCase() ===
274
- selectedDestToken.contractAddress?.toLowerCase()
275
-
276
- if (!globalMatches) {
277
- logger.console.log(
278
- "[trails-sdk] Syncing resolved token from useSendForm to global provider:",
279
- selectedDestToken.symbol,
280
- )
281
- setDestinationToken(selectedDestToken)
282
- }
283
- }
284
- }, [
285
- isDestinationControlledByProps,
286
- selectedDestToken,
287
- globalDestinationToken,
288
- setDestinationToken,
289
- toToken,
290
- toChainId,
291
- ])
292
-
293
- // Initialize and update selected recipient from toRecipient prop or default to connected wallet
294
- // biome-ignore lint/correctness/useExhaustiveDependencies: selectedRecipient is intentionally excluded to avoid infinite loops
295
- useEffect(() => {
296
- logger.console.log("[trails-sdk] toRecipient prop effect:", {
297
- toRecipient,
298
- selectedRecipient,
299
- accountAddress: account?.address,
300
- })
301
-
302
- if (toRecipient) {
303
- // Always sync with toRecipient prop when it changes
304
- logger.console.log(
305
- "[trails-sdk] Setting selectedRecipient to toRecipient:",
306
- toRecipient,
307
- )
308
- setSelectedRecipient(toRecipient)
309
- } else if (!selectedRecipient && account?.address) {
310
- // Default to connected wallet address if no recipient is set
311
- logger.console.log(
312
- "[trails-sdk] Setting selectedRecipient to account address:",
313
- account.address,
314
- )
315
- setSelectedRecipient(account.address)
316
- }
317
- }, [toRecipient, setSelectedRecipient, account?.address])
318
-
319
- // Initialize and update amount from toAmount prop
320
- useEffect(() => {
321
- logger.console.log("[trails-sdk] Pay component toAmount effect:", {
322
- toAmount,
323
- tokenAmountForBackend,
324
- inputDisplayValue,
325
- willUpdate: !!toAmount && toAmount !== tokenAmountForBackend,
326
- })
327
-
328
- // Update amount when toAmount prop changes (for payment requests)
329
- if (toAmount && toAmount !== tokenAmountForBackend) {
330
- logger.console.log(
331
- "[trails-sdk] Updating amount from toAmount prop:",
332
- toAmount,
333
- )
334
- setTokenAmountForBackend(toAmount)
335
- setInputDisplayValue(toAmount)
336
- setSendFormAmount(toAmount)
337
- setGlobalAmount(toAmount)
338
- }
339
- }, [
340
- toAmount,
341
- tokenAmountForBackend,
342
- inputDisplayValue,
343
- setSendFormAmount,
344
- setGlobalAmount,
345
- ])
346
-
347
- // Initialize destination token from global state or default when not controlled by props
348
- useEffect(() => {
349
- // Skip if destination is controlled by props - the provider handles that
350
- if (isDestinationControlledByProps) {
351
- return
352
- }
353
-
354
- // Skip if already have a local selection
355
- if (selectedDestToken?.symbol) {
356
- return
357
- }
358
-
359
- // Prefer global destination token if set
360
- const destTokenToUse = globalDestinationToken || defaultDestinationToken
361
-
362
- if (destTokenToUse && !isLoadingDestinationDefaults) {
363
- logger.console.log("[trails-sdk] Initializing destination token:", {
364
- symbol: destTokenToUse.symbol,
365
- chainId: destTokenToUse.chainId,
366
- name: destTokenToUse.name,
367
- contractAddress: destTokenToUse.contractAddress,
368
- })
369
-
370
- // Set destination token if not already set by global state
371
- if (!globalDestinationToken && defaultDestinationToken) {
372
- setDestinationToken(defaultDestinationToken as any)
373
- }
374
-
375
- setSelectedDestToken(destTokenToUse)
376
-
377
- // Also set the destination chain if available
378
- if (setSelectedDestinationChain && destTokenToUse.chainId) {
379
- const chainInfo = getChainInfo(destTokenToUse.chainId)
380
- if (chainInfo) {
381
- setSelectedDestinationChain(chainInfo)
382
- }
383
- }
384
- }
385
- }, [
386
- isDestinationControlledByProps,
387
- globalDestinationToken,
388
- defaultDestinationToken,
389
- isLoadingDestinationDefaults,
390
- selectedDestToken?.symbol,
391
- setDestinationToken,
392
- setSelectedDestToken,
393
- setSelectedDestinationChain,
394
- ])
395
-
396
- // Auto-focus input field on component mount
397
- useEffect(() => {
398
- if (inputRef.current) {
399
- inputRef.current.focus()
400
- }
401
- }, [])
402
-
403
- // Handle input amount changes with 8 decimal limit and 16 char total limit
404
- const handleAmountChange = useCallback(
405
- (value: string) => {
406
- // Allow empty string
407
- if (value === "") {
408
- setInputDisplayValue("")
409
- setTokenAmountForBackend("")
410
- setSendFormAmount("")
411
- setGlobalAmount("")
412
- onAmountUpdate?.("")
413
- return
414
- }
415
-
416
- // Limit total length to 16 characters
417
- if (value.length > 16) {
418
- return
419
- }
420
-
421
- // Validate decimal places (max 8 decimals) and allow single decimal point
422
- const decimalMatch = value.match(/^\d*\.?\d{0,8}$/)
423
- if (!decimalMatch) {
424
- return // Don't update if invalid format
425
- }
426
-
427
- // Store the display value
428
- setInputDisplayValue(value)
429
-
430
- // Update the token amount for backend and useSendForm
431
- setTokenAmountForBackend(value)
432
- setSendFormAmount(value)
433
- setGlobalAmount(value)
434
- onAmountUpdate?.(value)
435
- },
436
- [setSendFormAmount, setGlobalAmount, onAmountUpdate],
437
- )
438
-
439
- // Get display values based on input type
440
- const displayAmount = inputDisplayValue
441
-
442
- // Dynamic font size based on input length for destination amount
443
- const inputStyles = useDynamicInputStyles({ inputValue: displayAmount })
444
-
445
- const handleOriginTokenSelect = useCallback(
446
- (token: Token) => {
447
- // Update global origin token state
448
- setOriginToken(token)
449
- setShowOriginTokenSelector(false)
450
- logger.console.log("[trails-sdk] selected origin token", token)
451
- // Track the token selection
452
- onTrackToken?.(token)
453
- },
454
- [setOriginToken, onTrackToken],
455
- )
456
-
457
- const handleDestinationTokenSelect = useCallback(
458
- (token: Token) => {
459
- // Update both global destination token state and useSendForm state
460
- setDestinationToken(token)
461
- setSelectedDestToken(token)
462
-
463
- // Update destination chain to match the selected token's chain
464
- if (setSelectedDestinationChain && token.chainId) {
465
- const chainInfo = getChainInfo(token.chainId)
466
- if (chainInfo) {
467
- setSelectedDestinationChain(chainInfo)
468
- }
469
- }
470
-
471
- setShowDestinationTokenSelector(false)
472
- logger.console.log("[trails-sdk] selected destination token", token)
473
- // Track the token selection
474
- onTrackToken?.(token)
475
- },
476
- [
477
- setDestinationToken,
478
- setSelectedDestToken,
479
- setSelectedDestinationChain,
480
- onTrackToken,
481
- ],
482
- )
483
-
484
- // Show origin chain list screen
485
- if (showOriginChainList) {
486
- return (
487
- <ChainList
488
- onBack={() => {
489
- setShowOriginChainList(false)
490
- setShowOriginTokenSelector(true)
491
- }}
492
- />
493
- )
494
- }
495
-
496
- // Show destination chain list screen
497
- if (showDestinationChainList) {
498
- return (
499
- <ChainList
500
- onBack={() => {
501
- setShowDestinationChainList(false)
502
- setShowDestinationTokenSelector(true)
503
- }}
504
- />
505
- )
506
- }
507
-
508
- // Show origin token selector screen
509
- if (showOriginTokenSelector) {
510
- return (
511
- <div className="space-y-2">
512
- <ScreenHeader
513
- onBack={() => setShowOriginTokenSelector(false)}
514
- headerContent="Select Token"
515
- headerContentAlign="left"
516
- />
517
- <TokenSelector
518
- onTokenSelect={handleOriginTokenSelect}
519
- targetAmountUsd={targetAmountUsd}
520
- onError={onError}
521
- fundMethod={fundMethod}
522
- showContinueButton={false}
523
- compactMode={false}
524
- recentTokens={recentTokens}
525
- onRecentTokenSelect={(token) => {
526
- setOriginToken(token)
527
- setShowOriginTokenSelector(false)
528
- onRecentTokenSelect?.(token)
529
- }}
530
- allSupportedTokens={false}
531
- chainListScreen={true}
532
- onNavigateToChainList={() => {
533
- setShowOriginTokenSelector(false)
534
- setShowOriginChainList(true)
535
- }}
536
- onNavigateToFundMethods={() => {
537
- navigate("payment-methods")
538
- }}
539
- />
540
- </div>
541
- )
542
- }
543
-
544
- // Show destination token selector screen
545
- if (showDestinationTokenSelector) {
546
- return (
547
- <div className="space-y-2">
548
- <ScreenHeader
549
- onBack={() => setShowDestinationTokenSelector(false)}
550
- headerContent="Select Token"
551
- headerContentAlign="left"
552
- />
553
- <TokenSelector
554
- onTokenSelect={handleDestinationTokenSelect}
555
- targetAmountUsd={targetAmountUsd}
556
- onError={onError}
557
- fundMethod={fundMethod}
558
- showContinueButton={false}
559
- compactMode={false}
560
- recentTokens={recentTokens}
561
- onRecentTokenSelect={(token) => {
562
- setDestinationToken(token)
563
- setSelectedDestToken(token)
564
- setShowDestinationTokenSelector(false)
565
- onRecentTokenSelect?.(token)
566
- }}
567
- allSupportedTokens={true}
568
- chainListScreen={true}
569
- onNavigateToChainList={() => {
570
- setShowDestinationTokenSelector(false)
571
- setShowDestinationChainList(true)
572
- }}
573
- />
574
- </div>
575
- )
576
- }
577
-
578
- // Check for required props
579
- const missingRequiredProps = []
580
- if (!toAmount) missingRequiredProps.push("toAmount")
581
- if (!toToken) missingRequiredProps.push("toToken")
582
- if (!toRecipient) missingRequiredProps.push("toAddress")
583
-
584
- // Check if this is a payment request (all required props are set)
585
- const isPaymentRequest = !!(toToken && toAmount && toChainId && toRecipient)
586
-
587
- // If required props are missing, only show the error
588
- if (missingRequiredProps.length > 0) {
589
- return (
590
- <div className="space-y-4">
591
- <ScreenHeader
592
- onBack={onBack}
593
- headerContent="Pay"
594
- headerContentAlign="left"
595
- showAccountActions={true}
596
- customActions={
597
- <button
598
- type="button"
599
- onClick={() => navigate("swap", { backTarget: "send-form" })}
600
- 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"
601
- title="Swap"
602
- >
603
- <ArrowLeftRight className="h-4 w-4" />
604
- <span className="text-sm font-medium">Swap</span>
605
- </button>
606
- }
607
- />
608
- <RequiredPropsError
609
- missingProps={missingRequiredProps}
610
- componentName="Pay"
611
- />
612
- </div>
613
- )
614
- }
615
-
616
- return (
617
- <div className="space-y-2">
618
- <ScreenHeader
619
- onBack={onBack}
620
- headerContent="Pay"
621
- headerContentAlign="left"
622
- showAccountActions={true}
623
- customActions={
624
- <button
625
- type="button"
626
- onClick={() => navigate("swap", { backTarget: "send-form" })}
627
- 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"
628
- title="Swap"
629
- >
630
- <ArrowLeftRight className="h-4 w-4" />
631
- <span className="text-sm font-medium">Swap</span>
632
- </button>
633
- }
634
- />
635
-
636
- {isPaymentRequest ? (
637
- /* Payment Request UI */
638
- <>
639
- {/* Payment Request Header */}
640
- <div
641
- className="space-y-1 trails-bg-secondary p-3 border bg-white dark:bg-gray-800"
642
- style={{
643
- borderColor: "var(--trails-bg-secondary-hover)",
644
- borderWidth: "1px",
645
- borderStyle: "solid",
646
- borderRadius: "var(--trails-border-radius-large-button)",
647
- }}
648
- >
649
- <div className="flex justify-start">
650
- <div className="flex items-center font-medium trails-text-primary text-sm flex-wrap whitespace-break-spaces break-all min-w-full">
651
- {payMessage}
652
- </div>
653
- </div>
654
- </div>
655
-
656
- {/* Origin Token Selection for Payment Request */}
657
- <div className="mb-4">
658
- <div
659
- className="pt-4 pb-4 trails-border-radius-container p-3 group transition-all duration-200 border bg-white dark:bg-gray-800 min-h-[120px] flex flex-col"
660
- style={{
661
- borderColor: "var(--trails-bg-secondary-hover)",
662
- borderWidth: "1px",
663
- borderStyle: "solid",
664
- }}
665
- >
666
- {/* Amount to Pay Label */}
667
- <div className="mb-4 flex justify-between items-center">
668
- <div className="text-sm font-medium trails-text-secondary text-left m-0">
669
- Pay with
670
- {fundMethod === "direct-transfer"
671
- ? ""
672
- : fundMethod === "onramp-mesh"
673
- ? " Exchange"
674
- : fundMethod === "onramp-meld"
675
- ? " Onramp Provider"
676
- : ""}
677
- </div>
678
- <FundingMethodSelectorButton />
679
- </div>
680
-
681
- <div className="flex items-center space-x-2 flex-1">
682
- {/* Amount Display - Non-editable */}
683
- <div className="flex-1">
684
- <div className="flex items-center space-x-2">
685
- <DynamicSizeInputField
686
- ref={paymentRequestInputRef}
687
- value={
688
- prepareSendQuote?.originAmountFormattedLocale ||
689
- prepareSendQuote?.originAmountFormatted ||
690
- ""
691
- }
692
- readOnly={true}
693
- isLoading={isLoadingQuote}
694
- variant="default"
695
- inputSize="standard"
696
- />
697
- {isLoadingQuote && <LoadingSpinner />}
698
- </div>
699
- </div>
700
-
701
- {/* Origin Token Selection */}
702
- <div className="relative">
703
- <TokenSelectorButton
704
- token={originToken}
705
- chainId={originToken?.chainId}
706
- onSelect={() => setShowOriginTokenSelector(true)}
707
- />
708
- </div>
709
- </div>
710
-
711
- {/* Bottom Info Row */}
712
- <div className="mt-4 flex justify-between items-center">
713
- {/* USD Amount */}
714
- <div
715
- className="text-xs text-gray-500 dark:text-gray-400"
716
- title={prepareSendQuote?.originAmountUsdDisplay || undefined}
717
- >
718
- {originToken?.symbol &&
719
- prepareSendQuote?.originAmountFormatted ? (
720
- prepareSendQuote?.originAmountUsdDisplay === "$0.00" ||
721
- prepareSendQuote?.originAmountUsdDisplay === "$0" ? (
722
- <>
723
- {prepareSendQuote.originAmountFormatted}{" "}
724
- {originToken.symbol}
725
- </>
726
- ) : (
727
- <span className="notranslate" translate="no">
728
- ≈ {(() => {
729
- return (
730
- prepareSendQuote?.originAmountUsdLocaleDisplay ||
731
- prepareSendQuote?.originAmountUsdLocaleDisplay ||
732
- prepareSendQuote?.originAmountUsdDisplay ||
733
- formatUsdAmountLocaleDisplay(0)
734
- )
735
- })()} {prepareSendQuote?.fees?.totalFeeAmountUsd &&
736
- parseFloat(prepareSendQuote.fees.totalFeeAmountUsd) >
737
- 0 ? (
738
- <button
739
- type="button"
740
- onClick={() => setShowQuoteDetails(true)}
741
- className="text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 cursor-pointer transition-colors"
742
- >
743
- <span className="notranslate" translate="no">
744
- (incl.{" "}
745
- {prepareSendQuote.fees
746
- .totalFeeAmountUsdLocaleDisplay ||
747
- prepareSendQuote.fees
748
- .totalFeeAmountUsdDisplay}{" "}
749
- fees)
750
- </span>
751
- </button>
752
- ) : null}
753
- </span>
754
- )
755
- ) : (
756
- <span>&nbsp;</span>
757
- )}
758
- </div>
759
-
760
- {/* Origin Token Balance and Percentage Buttons */}
761
- {originToken &&
762
- fundMethod !== "direct-transfer" &&
763
- fundMethod !== "onramp-mesh" && (
764
- <div className="flex items-center space-x-2">
765
- <button
766
- type="button"
767
- className="text-xs text-gray-500 dark:text-gray-400 cursor-pointer hover:text-gray-700 dark:hover:text-gray-200 transition-colors bg-transparent border-none p-0"
768
- onClick={() => {
769
- if (freshOriginToken?.balanceFormatted) {
770
- const balance = parseFloat(
771
- freshOriginToken.balanceFormatted,
772
- )
773
- if (isValidNumber(balance)) {
774
- setTokenAmountForBackend(balance.toFixed(6))
775
- }
776
- }
777
- }}
778
- onKeyDown={(e) => {
779
- if (e.key === "Enter" || e.key === " ") {
780
- e.preventDefault()
781
- if (freshOriginToken?.balanceFormatted) {
782
- const balance = parseFloat(
783
- freshOriginToken.balanceFormatted,
784
- )
785
- if (isValidNumber(balance)) {
786
- setTokenAmountForBackend(balance.toFixed(6))
787
- }
788
- }
789
- }
790
- }}
791
- title="Click to use full balance"
792
- disabled={!freshOriginToken?.balanceFormatted}
793
- >
794
- <span translate="no">
795
- Balance:{" "}
796
- {isLoadingFreshOriginBalance ? (
797
- <span className="inline-block w-12 h-3 bg-gray-200 dark:bg-gray-700 rounded animate-pulse"></span>
798
- ) : (
799
- freshOriginToken?.balanceLocaleDisplay ||
800
- freshOriginToken?.balanceFormatted ||
801
- ""
802
- )}
803
- </span>
804
- </button>
805
-
806
- {/* Percentage Buttons - Only show if toAmount is not set */}
807
- {!toAmount && freshOriginToken?.balanceFormatted && (
808
- <PercentageMaxButtons
809
- userBalance={freshOriginToken.balanceFormatted}
810
- userBalanceRaw={freshOriginToken.balance ?? "0"}
811
- decimals={freshOriginToken.decimals ?? 18}
812
- isNativeToken={originToken.isNativeToken ?? false}
813
- gasCostFormatted={prepareSendQuote?.gasCostFormatted}
814
- chainId={originToken.chainId}
815
- onAmountSelect={(amount) => {
816
- setTokenAmountForBackend(amount)
817
- }}
818
- className="opacity-100"
819
- />
820
- )}
821
- </div>
822
- )}
823
- </div>
824
- </div>
825
- </div>
826
- </>
827
- ) : (
828
- /* Regular Pay UI */
829
- <>
830
- {/* Recipient and Origin Token Section */}
831
- <div className="space-y-1 trails-bg-secondary trails-border-radius-container p-3">
832
- {/* Recipient Button - Like Fund.tsx */}
833
- <div className="relative">
834
- {toRecipient ? (
835
- /* Display only - recipient is fixed */
836
- <div className="w-full flex items-center justify-between space-x-3 trails-bg-secondary trails-border-radius-list-button px-4 py-2">
837
- <div className="text-left">
838
- <div className="font-medium trails-text-primary text-sm">
839
- Recipient address
840
- </div>
841
- </div>
842
- <div className="flex items-center space-x-2">
843
- <AddressOrEnsName
844
- address={toRecipient}
845
- className="font-medium trails-text-primary text-sm"
846
- />
847
- <AddressWalletIcon
848
- walletAddress={toRecipient as `0x${string}`}
849
- size={20}
850
- className="shrink-0"
851
- />
852
- </div>
853
- </div>
854
- ) : (
855
- /* Interactive button - user can select recipient */
856
- <button
857
- type="button"
858
- onClick={() => navigate("recipients")}
859
- className="w-full flex items-center justify-between space-x-3 hover:trails-hover-bg hover:bg-gray-50 dark:hover:bg-gray-700 trails-border-radius-list-button px-4 py-2 transition-all duration-200 cursor-pointer"
860
- >
861
- <div className="text-left">
862
- <div className="font-medium trails-text-primary text-sm">
863
- Recipient address
864
- </div>
865
- </div>
866
- <div className="flex items-center space-x-2">
867
- {selectedRecipient ? (
868
- <>
869
- <AddressOrEnsName
870
- address={selectedRecipient}
871
- className="font-medium trails-text-primary text-sm"
872
- />
873
- <AddressWalletIcon
874
- walletAddress={selectedRecipient as `0x${string}`}
875
- size={20}
876
- className="shrink-0"
877
- />
878
- </>
879
- ) : (
880
- <>
881
- <div className="font-medium text-gray-900 dark:text-white text-sm">
882
- Select address
883
- </div>
884
- <div className="w-6 h-6 rounded-full bg-gray-100 dark:bg-gray-700 flex items-center justify-center">
885
- <div className="w-4 h-4 rounded-full bg-gray-400 dark:bg-gray-500"></div>
886
- </div>
887
- </>
888
- )}
889
- <ChevronRight className="w-4 h-4 trails-text-muted flex-shrink-0" />
890
- </div>
891
- </button>
892
- )}
893
- </div>
894
-
895
- {/* Origin Token Selector - Like Fund.tsx */}
896
- <div className="relative">
897
- <button
898
- type="button"
899
- onClick={() => setShowOriginTokenSelector(true)}
900
- className="w-full flex items-center justify-between space-x-3 hover:trails-hover-bg hover:bg-gray-50 dark:hover:bg-gray-700 trails-border-radius-list-button px-4 py-2 transition-all duration-200 cursor-pointer"
901
- >
902
- <div className="text-left">
903
- <div className="font-medium trails-text-primary text-sm">
904
- Payment method
905
- </div>
906
- </div>
907
-
908
- <div className="flex items-center space-x-2">
909
- {originToken ? (
910
- <>
911
- <div className="font-medium trails-text-primary text-sm">
912
- {isLoadingQuote ? (
913
- <div className="h-4 w-20 bg-gray-200 dark:bg-gray-700 rounded animate-pulse"></div>
914
- ) : prepareSendQuote?.originAmountFormatted ? (
915
- <span>
916
- {prepareSendQuote.originAmountFormatted}{" "}
917
- {originToken.symbol}
918
- </span>
919
- ) : (
920
- ""
921
- )}
922
- </div>
923
- <TokenImage
924
- symbol={originToken.symbol}
925
- imageUrl={originToken.imageUrl}
926
- chainId={originToken.chainId}
927
- size={20}
928
- />
929
- </>
930
- ) : (
931
- <>
932
- <div className="font-medium text-gray-900 dark:text-white text-sm">
933
- Select payment token
934
- </div>
935
- <div className="w-6 h-6 rounded-full bg-gray-100 dark:bg-gray-700 flex items-center justify-center">
936
- <Search className="w-4 h-4 text-gray-400" />
937
- </div>
938
- </>
939
- )}
940
- <ChevronRight className="w-4 h-4 trails-text-muted flex-shrink-0" />
941
- </div>
942
- </button>
943
- </div>
944
- </div>
945
-
946
- <div className="space-y-1">
947
- {/* Destination Amount Input Section - Like Fund.tsx but for destination token */}
948
- <div
949
- className={`pt-4 pb-4 p-3 group transition-all duration-200 border min-h-[120px] flex flex-col ${
950
- !toAmount ? "" : ""
951
- }`}
952
- style={{
953
- borderColor: "var(--trails-bg-secondary-hover)",
954
- borderWidth: "1px",
955
- borderStyle: "solid",
956
- borderRadius: "var(--trails-border-radius-large-button)",
957
- }}
958
- >
959
- {/* Amount to Pay Label */}
960
- <div className="mb-4 flex justify-between items-center">
961
- <div className="text-sm font-medium trails-text-secondary text-left m-0">
962
- Recipient receives
963
- </div>
964
- <FundingMethodSelectorButton />
965
- </div>
966
-
967
- <div className="flex items-center space-x-2 flex-1">
968
- {/* Amount Input */}
969
- <div className="flex-1">
970
- <div className="flex items-center space-x-2">
971
- <input
972
- ref={inputRef}
973
- type="text"
974
- value={displayAmount}
975
- onChange={(e) => handleAmountChange(e.target.value)}
976
- placeholder={`0 ${selectedDestToken?.symbol || ""}`}
977
- readOnly={!!toAmount}
978
- autoComplete="off"
979
- className={`w-full bg-transparent font-bold trails-text-primary placeholder:trails-text-muted border-none outline-none ${
980
- isLoadingQuote ? "animate-pulse" : ""
981
- }`}
982
- style={inputStyles}
983
- />
984
- {isLoadingQuote && <LoadingSpinner />}
985
- </div>
986
- </div>
987
-
988
- {/* Destination Token Selection */}
989
- <div className="relative">
990
- <TokenSelectorButton
991
- token={selectedDestToken}
992
- chainId={globalDestinationToken?.chainId || toChainId}
993
- onSelect={() => setShowDestinationTokenSelector(true)}
994
- unselectable={!!toToken}
995
- />
996
- </div>
997
- </div>
998
-
999
- {/* Bottom Info Row */}
1000
- <div className="mt-4 flex justify-between items-center">
1001
- {/* USD Amount */}
1002
- <div className="text-xs text-gray-500 dark:text-gray-400">
1003
- {selectedDestToken?.symbol && displayAmount ? (
1004
- <span className="notranslate" translate="no">
1005
- ≈{" "}
1006
- {amountUsdLocaleDisplay ||
1007
- amountUsdDisplay ||
1008
- formatUsdAmountLocaleDisplay(0)}
1009
- </span>
1010
- ) : (
1011
- <span>&nbsp;</span>
1012
- )}
1013
- </div>
1014
- </div>
1015
- </div>
1016
- </div>
1017
- </>
1018
- )}
1019
-
1020
- {/* Exchange/Contract Warning */}
1021
- <RefundWarning
1022
- fundMethod={fundMethod}
1023
- isSenderContractOnOrigin={isSenderContractOnOrigin}
1024
- isSenderContractOnDestination={isSenderContractOnDestination}
1025
- isSequenceWallet={isSequenceWallet}
1026
- />
1027
-
1028
- {/* Error Display */}
1029
- <ErrorDisplay
1030
- errorPrettified={quoteErrorPrettified}
1031
- error={quoteError}
1032
- severity="warning"
1033
- />
1034
-
1035
- {/* Fee Options */}
1036
- {fundMethod !== "direct-transfer" &&
1037
- fundMethod !== "onramp-mesh" &&
1038
- originToken && (
1039
- <FeeOptions
1040
- processedFeeOptions={processedFeeOptions}
1041
- selectedFeeOption={selectedFeeOption}
1042
- setSelectedFeeOption={(feeOption) =>
1043
- setSelectedFeeOption(feeOption)
1044
- }
1045
- chainId={originToken.chainId}
1046
- isRefetching={isLoadingQuote}
1047
- originTokenInfo={
1048
- originToken
1049
- ? {
1050
- originToken,
1051
- originTokenBalance: freshOriginToken?.balance ?? "0",
1052
- originTokenAmount:
1053
- prepareSendQuote?.originAmountFormatted ?? "0",
1054
- }
1055
- : undefined
1056
- }
1057
- />
1058
- )}
1059
-
1060
- {/* Quote Details */}
1061
- {prepareSendQuote && (
1062
- <div className="mb-4">
1063
- <QuoteDetails
1064
- quote={prepareSendQuote}
1065
- showContent={true}
1066
- isRefetching={isLoadingQuote}
1067
- initialExpanded={showQuoteDetails}
1068
- isPassthrough={isPassthroughEligible(
1069
- prepareSendQuote.passthroughEligible,
1070
- selectedFeeOption,
1071
- processedFeeOptions,
1072
- )}
1073
- />
1074
- </div>
1075
- )}
1076
-
1077
- {/* Pay Button */}
1078
- <form
1079
- onSubmit={(e) => {
1080
- // Track the click event with string values
1081
- trackClick({
1082
- component: "PayWidget",
1083
- action: "submit_payment",
1084
- label: buttonText || "Pay",
1085
- metadata: {
1086
- originToken: originToken?.symbol || "",
1087
- destinationToken: selectedDestToken?.symbol || "",
1088
- amount: tokenAmountForBackend || "",
1089
- recipient: selectedRecipient || "",
1090
- fundMethod: fundMethod || "",
1091
- chainId: toChainId?.toString() || "",
1092
- },
1093
- })
1094
- // Call the original submit handler
1095
- handleSubmit(e)
1096
- }}
1097
- >
1098
- <button
1099
- type="submit"
1100
- disabled={
1101
- !tokenAmountForBackend ||
1102
- parseFloat(tokenAmountForBackend) <= 0 ||
1103
- isSubmitting ||
1104
- isLoadingQuote ||
1105
- !isValidRecipient ||
1106
- !destinationTokenAddress ||
1107
- !isValidCustomToken ||
1108
- isSameTokenSameChainToSelf ||
1109
- (fundMethod !== "direct-transfer" &&
1110
- prepareSendQuote?.noSufficientBalance) ||
1111
- !prepareSendQuote ||
1112
- (fundMethod !== "direct-transfer" &&
1113
- (selectedFeeOption && originToken
1114
- ? isFeeOptionDisabled(selectedFeeOption as ProcessedFeeOption, {
1115
- originToken: originToken,
1116
- originTokenBalance: freshOriginToken?.balance ?? "0",
1117
- originTokenAmount:
1118
- prepareSendQuote?.originAmountFormatted ?? "0",
1119
- })
1120
- : false))
1121
- }
1122
- 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"
1123
- >
1124
- {isSubmitting ? (
1125
- <div className="flex items-center justify-center">
1126
- <LoadingSpinner className="mr-2" />
1127
- <span>{buttonText}</span>
1128
- </div>
1129
- ) : !account?.address ? (
1130
- "Connect your wallet"
1131
- ) : fundMethod !== "direct-transfer" &&
1132
- prepareSendQuote?.noSufficientBalance ? (
1133
- "Insufficient Balance"
1134
- ) : !selectedRecipient ? (
1135
- "Select recipient address"
1136
- ) : !originToken ? (
1137
- "Select payment token"
1138
- ) : !selectedDestToken ? (
1139
- "Select destination token"
1140
- ) : !tokenAmountForBackend ||
1141
- parseFloat(tokenAmountForBackend) <= 0 ? (
1142
- "Enter an amount"
1143
- ) : isSameTokenSameChainToSelf ? (
1144
- "No quote available"
1145
- ) : isLoadingQuote ? (
1146
- <div className="flex items-center justify-center">
1147
- <LoadingSpinner className="mr-2" />
1148
- <span>Getting quote...</span>
1149
- </div>
1150
- ) : buttonText === "Getting quote..." ||
1151
- buttonText === "No quote available" ? (
1152
- <div className="flex items-center justify-center">
1153
- <LoadingSpinner className="mr-2" />
1154
- <span>{buttonText}</span>
1155
- </div>
1156
- ) : (
1157
- buttonText || "Pay"
1158
- )}
1159
- </button>
1160
- </form>
1161
- </div>
1162
- )
1163
- }
1164
-
1165
- export default Pay