0xtrails 0.13.1 → 0.14.0

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