0xtrails 0.13.2 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (753) hide show
  1. package/dist/abis/trailsHydrate.d.ts +5 -42
  2. package/dist/abis/trailsHydrate.d.ts.map +1 -1
  3. package/dist/abis/trailsRouter.d.ts +1 -1
  4. package/dist/abis/trailsRouter.d.ts.map +1 -1
  5. package/dist/{widget/analytics → analytics/hooks}/useWidgetAnalytics.d.ts +2 -4
  6. package/dist/analytics/hooks/useWidgetAnalytics.d.ts.map +1 -0
  7. package/dist/analytics.d.ts.map +1 -1
  8. package/dist/chainSwitch.d.ts.map +1 -1
  9. package/dist/chains-C1NhDLF_.js +4 -0
  10. package/dist/chains-CcoarGia.js +658 -0
  11. package/dist/chains.d.ts +0 -1
  12. package/dist/chains.d.ts.map +1 -1
  13. package/dist/committedIntentStore.d.ts +5 -0
  14. package/dist/committedIntentStore.d.ts.map +1 -0
  15. package/dist/config.d.ts +2 -0
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/constants.d.ts +2 -1
  18. package/dist/constants.d.ts.map +1 -1
  19. package/dist/error.d.ts +73 -4
  20. package/dist/error.d.ts.map +1 -1
  21. package/dist/hooks/useAddressWalletIcon.d.ts.map +1 -0
  22. package/dist/hooks/useAmountUsd.d.ts.map +1 -0
  23. package/dist/hooks/useBalanceVisible.d.ts.map +1 -0
  24. package/dist/hooks/useChainFilter.d.ts.map +1 -0
  25. package/dist/{widget/hooks → hooks}/useCheckout.d.ts +15 -15
  26. package/dist/hooks/useCheckout.d.ts.map +1 -0
  27. package/dist/hooks/useClickTracking.d.ts.map +1 -0
  28. package/dist/{widget/hooks → hooks}/useCombinedHistory.d.ts +3 -2
  29. package/dist/hooks/useCombinedHistory.d.ts.map +1 -0
  30. package/dist/hooks/useConnector.d.ts.map +1 -0
  31. package/dist/{widget/hooks → hooks}/useCustomTokenSearch.d.ts +1 -1
  32. package/dist/hooks/useCustomTokenSearch.d.ts.map +1 -0
  33. package/dist/hooks/useDebounce.d.ts.map +1 -0
  34. package/dist/{widget/hooks → hooks}/useDebugScreens.d.ts +2 -2
  35. package/dist/hooks/useDebugScreens.d.ts.map +1 -0
  36. package/dist/{widget/hooks → hooks}/useDefaultDestinationToken.d.ts +1 -1
  37. package/dist/hooks/useDefaultDestinationToken.d.ts.map +1 -0
  38. package/dist/{widget/hooks → hooks}/useDefaultOriginToken.d.ts +1 -1
  39. package/dist/hooks/useDefaultOriginToken.d.ts.map +1 -0
  40. package/dist/hooks/useDepositMonitor.d.ts.map +1 -0
  41. package/dist/{widget/hooks → hooks}/useDestinationSelectedToken.d.ts +2 -2
  42. package/dist/hooks/useDestinationSelectedToken.d.ts.map +1 -0
  43. package/dist/hooks/useDisplayCurrencyPreference.d.ts.map +1 -0
  44. package/dist/{widget/hooks → hooks}/useEarnPool.d.ts +1 -1
  45. package/dist/hooks/useEarnPool.d.ts.map +1 -0
  46. package/dist/hooks/useEffectiveFundBalance.d.ts +28 -0
  47. package/dist/hooks/useEffectiveFundBalance.d.ts.map +1 -0
  48. package/dist/hooks/useExecutingIntentsCount.d.ts.map +1 -0
  49. package/dist/{widget/hooks → hooks}/useExternalFundingReceiptSync.d.ts +1 -1
  50. package/dist/hooks/useExternalFundingReceiptSync.d.ts.map +1 -0
  51. package/dist/{widget/hooks → hooks}/useFiatOnRampCurrencies.d.ts +1 -1
  52. package/dist/hooks/useFiatOnRampCurrencies.d.ts.map +1 -0
  53. package/dist/hooks/useFiatSelectedCurrency.d.ts.map +1 -0
  54. package/dist/hooks/useGetIntent.d.ts.map +1 -0
  55. package/dist/{widget/hooks → hooks}/useIntentReceiptBalances.d.ts +1 -1
  56. package/dist/hooks/useIntentReceiptBalances.d.ts.map +1 -0
  57. package/dist/{widget/hooks → hooks}/useIntentTransactionHistory.d.ts +2 -1
  58. package/dist/hooks/useIntentTransactionHistory.d.ts.map +1 -0
  59. package/dist/hooks/useIsMobile.d.ts.map +1 -0
  60. package/dist/hooks/useIsSequenceWallet.d.ts.map +1 -0
  61. package/dist/hooks/useLocalePreference.d.ts.map +1 -0
  62. package/dist/hooks/useMeldTransactionHistory.d.ts.map +1 -0
  63. package/dist/hooks/useMeldTransactionStatus.d.ts.map +1 -0
  64. package/dist/hooks/useOnRampCountryDefaults.d.ts.map +1 -0
  65. package/dist/{widget/hooks → hooks}/useOnRampPaymentMethods.d.ts +2 -2
  66. package/dist/hooks/useOnRampPaymentMethods.d.ts.map +1 -0
  67. package/dist/{widget/hooks → hooks}/useOnRampProviderWidget.d.ts +1 -1
  68. package/dist/hooks/useOnRampProviderWidget.d.ts.map +1 -0
  69. package/dist/{widget/hooks → hooks}/useOnRampQuote.d.ts +3 -3
  70. package/dist/hooks/useOnRampQuote.d.ts.map +1 -0
  71. package/dist/{widget/hooks → hooks}/useOnRampTransactionStatus.d.ts +1 -1
  72. package/dist/hooks/useOnRampTransactionStatus.d.ts.map +1 -0
  73. package/dist/{widget/hooks → hooks}/useOriginSelectedToken.d.ts +1 -1
  74. package/dist/hooks/useOriginSelectedToken.d.ts.map +1 -0
  75. package/dist/hooks/usePayMessage.d.ts.map +1 -0
  76. package/dist/hooks/usePriceImpactWarning.d.ts.map +1 -0
  77. package/dist/hooks/useQuote.d.ts +439 -0
  78. package/dist/hooks/useQuote.d.ts.map +1 -0
  79. package/dist/{widget/hooks → hooks}/useRecentTokens.d.ts +1 -1
  80. package/dist/hooks/useRecentTokens.d.ts.map +1 -0
  81. package/dist/hooks/useRecipients.d.ts.map +1 -0
  82. package/dist/hooks/useSelectedFeeOption.d.ts.map +1 -0
  83. package/dist/{widget/hooks → hooks}/useSelectedFundMethod.d.ts +11 -1
  84. package/dist/hooks/useSelectedFundMethod.d.ts.map +1 -0
  85. package/dist/hooks/useSelectedRecipient.d.ts.map +1 -0
  86. package/dist/{widget/hooks → hooks}/useSendForm.d.ts +6 -11
  87. package/dist/hooks/useSendForm.d.ts.map +1 -0
  88. package/dist/hooks/useSwapAmount.d.ts.map +1 -0
  89. package/dist/{widget/hooks → hooks}/useSwapState.d.ts +1 -1
  90. package/dist/hooks/useSwapState.d.ts.map +1 -0
  91. package/dist/hooks/useTargetAmount.d.ts.map +1 -0
  92. package/dist/hooks/useTheme.d.ts.map +1 -0
  93. package/dist/{widget/hooks → hooks}/useTokenList.d.ts +2 -2
  94. package/dist/hooks/useTokenList.d.ts.map +1 -0
  95. package/dist/{widget/hooks → hooks}/useTrailsSendTransaction.d.ts +1 -1
  96. package/dist/hooks/useTrailsSendTransaction.d.ts.map +1 -0
  97. package/dist/{widget/hooks → hooks}/useViewManager.d.ts +1 -1
  98. package/dist/hooks/useViewManager.d.ts.map +1 -0
  99. package/dist/hooks/useWalletConnectUri.d.ts +19 -0
  100. package/dist/hooks/useWalletConnectUri.d.ts.map +1 -0
  101. package/dist/hooks/useWalletConnectionContext.d.ts.map +1 -0
  102. package/dist/{widget/hooks → hooks}/useWidgetProps.d.ts +1 -1
  103. package/dist/hooks/useWidgetProps.d.ts.map +1 -0
  104. package/dist/hydrate/builder.d.ts +131 -0
  105. package/dist/hydrate/builder.d.ts.map +1 -0
  106. package/dist/hydrate/constants.d.ts +13 -0
  107. package/dist/hydrate/constants.d.ts.map +1 -0
  108. package/dist/hydrate/encodeExecute.d.ts +73 -0
  109. package/dist/hydrate/encodeExecute.d.ts.map +1 -0
  110. package/dist/hydrate/index.d.ts +6 -0
  111. package/dist/hydrate/index.d.ts.map +1 -0
  112. package/dist/hydrate/index.js +11 -0
  113. package/dist/hydrate/payload.d.ts +38 -0
  114. package/dist/hydrate/payload.d.ts.map +1 -0
  115. package/dist/hydrate/selectors.d.ts +28 -0
  116. package/dist/hydrate/selectors.d.ts.map +1 -0
  117. package/dist/hydrate/types.d.ts +19 -0
  118. package/dist/hydrate/types.d.ts.map +1 -0
  119. package/dist/hydrate/utils.d.ts +8 -0
  120. package/dist/hydrate/utils.d.ts.map +1 -0
  121. package/dist/hydrate-Cr9eaeDK.js +654 -0
  122. package/dist/index.d.ts +19 -13
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +157 -662
  125. package/dist/intentConfigStore.d.ts +8 -0
  126. package/dist/intentConfigStore.d.ts.map +1 -0
  127. package/dist/intentProtocolApi.d.ts +11 -0
  128. package/dist/intentProtocolApi.d.ts.map +1 -0
  129. package/dist/intentProtocolEncoding.d.ts +25 -0
  130. package/dist/intentProtocolEncoding.d.ts.map +1 -0
  131. package/dist/intentProtocolResolver.d.ts +28 -0
  132. package/dist/intentProtocolResolver.d.ts.map +1 -0
  133. package/dist/intentReceiptPoller.d.ts.map +1 -1
  134. package/dist/intentValidation.d.ts +5 -0
  135. package/dist/intentValidation.d.ts.map +1 -0
  136. package/dist/intents.d.ts.map +1 -1
  137. package/dist/keymachine/index.d.ts +20 -0
  138. package/dist/keymachine/index.d.ts.map +1 -1
  139. package/dist/mutations.d.ts.map +1 -1
  140. package/dist/offlineRecovery.d.ts +24 -0
  141. package/dist/offlineRecovery.d.ts.map +1 -0
  142. package/dist/onramp/MeshConnectFlow.d.ts +9 -0
  143. package/dist/onramp/MeshConnectFlow.d.ts.map +1 -1
  144. package/dist/onramp/MeshConnectIframe.d.ts +9 -0
  145. package/dist/onramp/MeshConnectIframe.d.ts.map +1 -1
  146. package/dist/onramp/TrailsOnRampProvider.d.ts.map +1 -1
  147. package/dist/onramp/mesh/components/MeshExchangeConfirmation.d.ts +10 -0
  148. package/dist/onramp/mesh/components/MeshExchangeConfirmation.d.ts.map +1 -0
  149. package/dist/onramp/mesh/components/MeshExchangeIcon.d.ts +13 -0
  150. package/dist/onramp/mesh/components/MeshExchangeIcon.d.ts.map +1 -0
  151. package/dist/{widget → onramp/mesh}/components/MeshExchangeSelection.d.ts +1 -0
  152. package/dist/onramp/mesh/components/MeshExchangeSelection.d.ts.map +1 -0
  153. package/dist/onramp/mesh/components/MeshSessionOptions.d.ts +15 -0
  154. package/dist/onramp/mesh/components/MeshSessionOptions.d.ts.map +1 -0
  155. package/dist/onramp/mesh/hooks/useMeshAccessTokens.d.ts +9 -0
  156. package/dist/onramp/mesh/hooks/useMeshAccessTokens.d.ts.map +1 -0
  157. package/dist/onramp/mesh/hooks/useMeshFundingSelection.d.ts +11 -0
  158. package/dist/onramp/mesh/hooks/useMeshFundingSelection.d.ts.map +1 -0
  159. package/dist/onramp/mesh/hooks/useMeshOnrampFlow.d.ts +71 -0
  160. package/dist/onramp/mesh/hooks/useMeshOnrampFlow.d.ts.map +1 -0
  161. package/dist/onramp/mesh/hooks/useMeshOnrampSessionState.d.ts +32 -0
  162. package/dist/onramp/mesh/hooks/useMeshOnrampSessionState.d.ts.map +1 -0
  163. package/dist/onramp/mesh/hooks/useMeshSelectedTokenBalance.d.ts +19 -0
  164. package/dist/onramp/mesh/hooks/useMeshSelectedTokenBalance.d.ts.map +1 -0
  165. package/dist/onramp/mesh/hooks/useMeshSessionAccountBalance.d.ts +15 -0
  166. package/dist/onramp/mesh/hooks/useMeshSessionAccountBalance.d.ts.map +1 -0
  167. package/dist/onramp/mesh/hooks/useMeshSessionStorage.d.ts +7 -0
  168. package/dist/onramp/mesh/hooks/useMeshSessionStorage.d.ts.map +1 -0
  169. package/dist/onramp/meshSessionStorage.d.ts +13 -0
  170. package/dist/onramp/meshSessionStorage.d.ts.map +1 -0
  171. package/dist/onramp/meshconnect.d.ts +6 -4
  172. package/dist/onramp/meshconnect.d.ts.map +1 -1
  173. package/dist/onramp/trailsOnramp.d.ts +8 -0
  174. package/dist/onramp/trailsOnramp.d.ts.map +1 -1
  175. package/dist/onrampClient.d.ts.map +1 -1
  176. package/dist/prepareSend.d.ts +3 -2
  177. package/dist/prepareSend.d.ts.map +1 -1
  178. package/dist/query/intentProtocol.queries.d.ts +32 -0
  179. package/dist/query/intentProtocol.queries.d.ts.map +1 -0
  180. package/dist/recover.d.ts +70 -24
  181. package/dist/recover.d.ts.map +1 -1
  182. package/dist/src-4HYDQv2T.js +48798 -0
  183. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts +2 -3
  184. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts.map +1 -1
  185. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts +2 -3
  186. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts.map +1 -1
  187. package/dist/transactionIntent/deposits/standardDeposit.d.ts +2 -5
  188. package/dist/transactionIntent/deposits/standardDeposit.d.ts.map +1 -1
  189. package/dist/transactionIntent/handlers/intentHandler.d.ts +4 -4
  190. package/dist/transactionIntent/handlers/intentHandler.d.ts.map +1 -1
  191. package/dist/transactionIntent/quote/quoteHelpers.d.ts +2 -2
  192. package/dist/transactionIntent/quote/quoteHelpers.d.ts.map +1 -1
  193. package/dist/transactionIntent/types.d.ts +3 -3
  194. package/dist/transactionIntent/types.d.ts.map +1 -1
  195. package/dist/transactions.d.ts +1 -0
  196. package/dist/transactions.d.ts.map +1 -1
  197. package/dist/umd/trails.min.js +1370 -410
  198. package/dist/utils/localStorageGc.d.ts +22 -0
  199. package/dist/utils/localStorageGc.d.ts.map +1 -0
  200. package/dist/walletUtils.d.ts.map +1 -1
  201. package/dist/widget/components/AccountIntentTransactionHistory.d.ts.map +1 -1
  202. package/dist/widget/components/ClassicSwap.d.ts.map +1 -1
  203. package/dist/widget/components/ConnectedWallets.d.ts +1 -1
  204. package/dist/widget/components/ConnectedWallets.d.ts.map +1 -1
  205. package/dist/widget/components/Earn.d.ts +2 -6
  206. package/dist/widget/components/Earn.d.ts.map +1 -1
  207. package/dist/widget/components/FeeOption.d.ts +1 -1
  208. package/dist/widget/components/FeeOption.d.ts.map +1 -1
  209. package/dist/widget/components/FeeOptions.d.ts +1 -1
  210. package/dist/widget/components/FeeOptions.d.ts.map +1 -1
  211. package/dist/widget/components/FiatSelector.d.ts +1 -1
  212. package/dist/widget/components/FiatSelector.d.ts.map +1 -1
  213. package/dist/widget/components/FiatSelectorButton.d.ts +1 -1
  214. package/dist/widget/components/FiatSelectorButton.d.ts.map +1 -1
  215. package/dist/widget/components/Fund.d.ts +1 -1
  216. package/dist/widget/components/Fund.d.ts.map +1 -1
  217. package/dist/widget/components/FundMethods.d.ts.map +1 -1
  218. package/dist/widget/components/FundingMethodSelectorButton.d.ts +1 -1
  219. package/dist/widget/components/FundingMethodSelectorButton.d.ts.map +1 -1
  220. package/dist/widget/components/MeldHistory.d.ts +1 -1
  221. package/dist/widget/components/MeldHistory.d.ts.map +1 -1
  222. package/dist/widget/components/MeldTransactionStatus.d.ts +1 -1
  223. package/dist/widget/components/MeldTransactionStatus.d.ts.map +1 -1
  224. package/dist/widget/components/MeshExchangeAccountHeader.d.ts +9 -0
  225. package/dist/widget/components/MeshExchangeAccountHeader.d.ts.map +1 -0
  226. package/dist/widget/components/OnrampHistoryRow.d.ts +1 -1
  227. package/dist/widget/components/OnrampHistoryRow.d.ts.map +1 -1
  228. package/dist/widget/components/OnrampProviderConfirmation.d.ts +1 -1
  229. package/dist/widget/components/OnrampProviderConfirmation.d.ts.map +1 -1
  230. package/dist/widget/components/Pay.d.ts.map +1 -1
  231. package/dist/widget/components/PoolDeposit.d.ts +2 -6
  232. package/dist/widget/components/PoolDeposit.d.ts.map +1 -1
  233. package/dist/widget/components/PoolWithdraw.d.ts +2 -2
  234. package/dist/widget/components/PoolWithdraw.d.ts.map +1 -1
  235. package/dist/widget/components/PulsatingButton.d.ts +9 -0
  236. package/dist/widget/components/PulsatingButton.d.ts.map +1 -0
  237. package/dist/widget/components/Receipt.d.ts +1 -1
  238. package/dist/widget/components/Receipt.d.ts.map +1 -1
  239. package/dist/widget/components/RecipientSelectorButton.d.ts.map +1 -1
  240. package/dist/widget/components/Recipients.d.ts.map +1 -1
  241. package/dist/widget/components/Swap.d.ts +2 -6
  242. package/dist/widget/components/Swap.d.ts.map +1 -1
  243. package/dist/widget/components/TokenList.d.ts +1 -0
  244. package/dist/widget/components/TokenList.d.ts.map +1 -1
  245. package/dist/widget/components/TokenSelector.d.ts +1 -2
  246. package/dist/widget/components/TokenSelector.d.ts.map +1 -1
  247. package/dist/widget/components/TransactionDetails.d.ts +1 -0
  248. package/dist/widget/components/TransactionDetails.d.ts.map +1 -1
  249. package/dist/widget/components/TransactionHistoryItem.d.ts +1 -0
  250. package/dist/widget/components/TransactionHistoryItem.d.ts.map +1 -1
  251. package/dist/widget/components/TransferPendingVertical.d.ts +1 -1
  252. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -1
  253. package/dist/widget/components/WalletAccountHeader.d.ts +7 -0
  254. package/dist/widget/components/WalletAccountHeader.d.ts.map +1 -0
  255. package/dist/widget/components/WalletConfirmation.d.ts +2 -1
  256. package/dist/widget/components/WalletConfirmation.d.ts.map +1 -1
  257. package/dist/widget/components/WalletConnect.d.ts.map +1 -1
  258. package/dist/widget/components/WidgetProviders.d.ts.map +1 -1
  259. package/dist/widget/components/Withdraw.d.ts.map +1 -1
  260. package/dist/widget/index.d.ts +13 -0
  261. package/dist/widget/index.d.ts.map +1 -1
  262. package/dist/widget/index.js +16 -8
  263. package/dist/widget/modes/EarnWidget.d.ts +83 -0
  264. package/dist/widget/modes/EarnWidget.d.ts.map +1 -0
  265. package/dist/widget/modes/FundWidget.d.ts +103 -0
  266. package/dist/widget/modes/FundWidget.d.ts.map +1 -0
  267. package/dist/widget/modes/PayWidget.d.ts +86 -0
  268. package/dist/widget/modes/PayWidget.d.ts.map +1 -0
  269. package/dist/widget/modes/SwapWidget.d.ts +82 -0
  270. package/dist/widget/modes/SwapWidget.d.ts.map +1 -0
  271. package/dist/widget/modes/WithdrawWidget.d.ts +71 -0
  272. package/dist/widget/modes/WithdrawWidget.d.ts.map +1 -0
  273. package/dist/widget/providers/TrailsProvider.d.ts +3 -0
  274. package/dist/widget/providers/TrailsProvider.d.ts.map +1 -1
  275. package/dist/widget/shared/mapSharedProps.d.ts +9 -0
  276. package/dist/widget/shared/mapSharedProps.d.ts.map +1 -0
  277. package/dist/widget/shared/methodMap.d.ts +18 -0
  278. package/dist/widget/shared/methodMap.d.ts.map +1 -0
  279. package/dist/widget/shared/resolution.d.ts +22 -0
  280. package/dist/widget/shared/resolution.d.ts.map +1 -0
  281. package/dist/widget/shared/resolvePaymentSource.d.ts +34 -0
  282. package/dist/widget/shared/resolvePaymentSource.d.ts.map +1 -0
  283. package/dist/widget/shared/types.d.ts +94 -0
  284. package/dist/widget/shared/types.d.ts.map +1 -0
  285. package/dist/widget/types/commonProps.d.ts +3 -7
  286. package/dist/widget/types/commonProps.d.ts.map +1 -1
  287. package/dist/widget/utils/fundMethodSwitchState.d.ts +1 -0
  288. package/dist/widget/utils/fundMethodSwitchState.d.ts.map +1 -1
  289. package/dist/widget/utils/viewManagerGuards.d.ts +1 -1
  290. package/dist/widget/utils/viewManagerGuards.d.ts.map +1 -1
  291. package/dist/widget/widget.d.ts +21 -16
  292. package/dist/widget/widget.d.ts.map +1 -1
  293. package/package.json +17 -23
  294. package/dist/buffer.d.ts +0 -3
  295. package/dist/buffer.d.ts.map +0 -1
  296. package/dist/ccip-CT_An6eM.js +0 -230
  297. package/dist/index-RfqL5Foz.js +0 -114567
  298. package/dist/paymasterSend.d.ts +0 -90
  299. package/dist/paymasterSend.d.ts.map +0 -1
  300. package/dist/sendUserOp.d.ts +0 -122
  301. package/dist/sendUserOp.d.ts.map +0 -1
  302. package/dist/toSimpleSmartAccount.d.ts +0 -95
  303. package/dist/toSimpleSmartAccount.d.ts.map +0 -1
  304. package/dist/transactionIntent/utils/erc20Approval.d.ts +0 -34
  305. package/dist/transactionIntent/utils/erc20Approval.d.ts.map +0 -1
  306. package/dist/utils/allowance.d.ts +0 -19
  307. package/dist/utils/allowance.d.ts.map +0 -1
  308. package/dist/widget/analytics/useWidgetAnalytics.d.ts.map +0 -1
  309. package/dist/widget/components/FeeBreakdown.d.ts +0 -9
  310. package/dist/widget/components/FeeBreakdown.d.ts.map +0 -1
  311. package/dist/widget/components/HideBalances.d.ts +0 -4
  312. package/dist/widget/components/HideBalances.d.ts.map +0 -1
  313. package/dist/widget/components/MeshExchangeSelection.d.ts.map +0 -1
  314. package/dist/widget/components/OnrampDeposit.d.ts +0 -10
  315. package/dist/widget/components/OnrampDeposit.d.ts.map +0 -1
  316. package/dist/widget/components/SwapSettings.d.ts +0 -4
  317. package/dist/widget/components/SwapSettings.d.ts.map +0 -1
  318. package/dist/widget/components/TruncatedAddress.d.ts +0 -12
  319. package/dist/widget/components/TruncatedAddress.d.ts.map +0 -1
  320. package/dist/widget/components/WalletImage.d.ts +0 -8
  321. package/dist/widget/components/WalletImage.d.ts.map +0 -1
  322. package/dist/widget/css/compiled.css +0 -26
  323. package/dist/widget/css/index.css +0 -686
  324. package/dist/widget/hooks/useAddressWalletIcon.d.ts.map +0 -1
  325. package/dist/widget/hooks/useAmountUsd.d.ts.map +0 -1
  326. package/dist/widget/hooks/useBalanceVisible.d.ts.map +0 -1
  327. package/dist/widget/hooks/useChainFilter.d.ts.map +0 -1
  328. package/dist/widget/hooks/useCheckout.d.ts.map +0 -1
  329. package/dist/widget/hooks/useClickTracking.d.ts.map +0 -1
  330. package/dist/widget/hooks/useCombinedHistory.d.ts.map +0 -1
  331. package/dist/widget/hooks/useConnector.d.ts.map +0 -1
  332. package/dist/widget/hooks/useCustomTokenSearch.d.ts.map +0 -1
  333. package/dist/widget/hooks/useDebounce.d.ts.map +0 -1
  334. package/dist/widget/hooks/useDebugScreens.d.ts.map +0 -1
  335. package/dist/widget/hooks/useDefaultDestinationToken.d.ts.map +0 -1
  336. package/dist/widget/hooks/useDefaultOriginToken.d.ts.map +0 -1
  337. package/dist/widget/hooks/useDepositMonitor.d.ts.map +0 -1
  338. package/dist/widget/hooks/useDestinationSelectedToken.d.ts.map +0 -1
  339. package/dist/widget/hooks/useDisplayCurrencyPreference.d.ts.map +0 -1
  340. package/dist/widget/hooks/useEarnPool.d.ts.map +0 -1
  341. package/dist/widget/hooks/useExecutingIntentsCount.d.ts.map +0 -1
  342. package/dist/widget/hooks/useExternalFundingReceiptSync.d.ts.map +0 -1
  343. package/dist/widget/hooks/useFiatOnRampCurrencies.d.ts.map +0 -1
  344. package/dist/widget/hooks/useFiatSelectedCurrency.d.ts.map +0 -1
  345. package/dist/widget/hooks/useGetIntent.d.ts.map +0 -1
  346. package/dist/widget/hooks/useIntentReceiptBalances.d.ts.map +0 -1
  347. package/dist/widget/hooks/useIntentTransactionHistory.d.ts.map +0 -1
  348. package/dist/widget/hooks/useIsConnectedWalletSmartContract.d.ts +0 -7
  349. package/dist/widget/hooks/useIsConnectedWalletSmartContract.d.ts.map +0 -1
  350. package/dist/widget/hooks/useIsMobile.d.ts.map +0 -1
  351. package/dist/widget/hooks/useIsSequenceWallet.d.ts.map +0 -1
  352. package/dist/widget/hooks/useLocalePreference.d.ts.map +0 -1
  353. package/dist/widget/hooks/useMeldTransactionHistory.d.ts.map +0 -1
  354. package/dist/widget/hooks/useMeldTransactionStatus.d.ts.map +0 -1
  355. package/dist/widget/hooks/useOnRampCountryDefaults.d.ts.map +0 -1
  356. package/dist/widget/hooks/useOnRampPaymentMethods.d.ts.map +0 -1
  357. package/dist/widget/hooks/useOnRampProviderWidget.d.ts.map +0 -1
  358. package/dist/widget/hooks/useOnRampQuote.d.ts.map +0 -1
  359. package/dist/widget/hooks/useOnRampTransactionStatus.d.ts.map +0 -1
  360. package/dist/widget/hooks/useOriginSelectedToken.d.ts.map +0 -1
  361. package/dist/widget/hooks/usePayMessage.d.ts.map +0 -1
  362. package/dist/widget/hooks/usePriceImpactWarning.d.ts.map +0 -1
  363. package/dist/widget/hooks/useQuote.d.ts +0 -378
  364. package/dist/widget/hooks/useQuote.d.ts.map +0 -1
  365. package/dist/widget/hooks/useRecentTokens.d.ts.map +0 -1
  366. package/dist/widget/hooks/useRecipients.d.ts.map +0 -1
  367. package/dist/widget/hooks/useScreenTracking.d.ts +0 -2
  368. package/dist/widget/hooks/useScreenTracking.d.ts.map +0 -1
  369. package/dist/widget/hooks/useSelectedFeeOption.d.ts.map +0 -1
  370. package/dist/widget/hooks/useSelectedFundMethod.d.ts.map +0 -1
  371. package/dist/widget/hooks/useSelectedRecipient.d.ts.map +0 -1
  372. package/dist/widget/hooks/useSendForm.d.ts.map +0 -1
  373. package/dist/widget/hooks/useSwapAmount.d.ts.map +0 -1
  374. package/dist/widget/hooks/useSwapState.d.ts.map +0 -1
  375. package/dist/widget/hooks/useTargetAmount.d.ts.map +0 -1
  376. package/dist/widget/hooks/useTheme.d.ts.map +0 -1
  377. package/dist/widget/hooks/useTokenList.d.ts.map +0 -1
  378. package/dist/widget/hooks/useTrailsSendTransaction.d.ts.map +0 -1
  379. package/dist/widget/hooks/useViewManager.d.ts.map +0 -1
  380. package/dist/widget/hooks/useWalletConnectUri.d.ts +0 -11
  381. package/dist/widget/hooks/useWalletConnectUri.d.ts.map +0 -1
  382. package/dist/widget/hooks/useWalletConnectionContext.d.ts.map +0 -1
  383. package/dist/widget/hooks/useWidgetProps.d.ts.map +0 -1
  384. package/dist/widget/types.d.ts +0 -44
  385. package/dist/widget/types.d.ts.map +0 -1
  386. package/dist/widget/utils/historyUtils.d.ts +0 -18
  387. package/dist/widget/utils/historyUtils.d.ts.map +0 -1
  388. package/src/abi.ts +0 -38
  389. package/src/abis/erc20.ts +0 -60
  390. package/src/abis/trailsHydrate.ts +0 -185
  391. package/src/abis/trailsRouter.ts +0 -121
  392. package/src/abis/trailsSweep.ts +0 -32
  393. package/src/abortController.ts +0 -35
  394. package/src/analytics.ts +0 -2029
  395. package/src/buffer.ts +0 -10
  396. package/src/chainSwitch.ts +0 -95
  397. package/src/chains.ts +0 -570
  398. package/src/config.ts +0 -118
  399. package/src/constants.ts +0 -239
  400. package/src/contractUtils.ts +0 -46
  401. package/src/cssUtils.ts +0 -5
  402. package/src/customChains.ts +0 -24
  403. package/src/customTokens.ts +0 -168
  404. package/src/decoders.ts +0 -365
  405. package/src/ens.ts +0 -74
  406. package/src/error.ts +0 -268
  407. package/src/estimate.ts +0 -480
  408. package/src/explorer.ts +0 -38
  409. package/src/fees.ts +0 -362
  410. package/src/gasless.ts +0 -638
  411. package/src/index.ts +0 -205
  412. package/src/indexerClient.ts +0 -118
  413. package/src/intentReceiptMonitor.ts +0 -99
  414. package/src/intentReceiptPoller.ts +0 -327
  415. package/src/intents.ts +0 -1133
  416. package/src/keyMachineClient.ts +0 -29
  417. package/src/keymachine/index.ts +0 -175
  418. package/src/keymachine/key-machine.gen.ts +0 -993
  419. package/src/localeUtils.ts +0 -244
  420. package/src/logger/index.ts +0 -95
  421. package/src/logger/useSyncLoggerDebug.ts +0 -11
  422. package/src/logger.ts +0 -1
  423. package/src/meld/components/MeldCountriesList.tsx +0 -237
  424. package/src/meld/components/MeldFundMethods.tsx +0 -265
  425. package/src/meld/components/MeldProvidersList.tsx +0 -187
  426. package/src/meld/components/MeldTokensList.tsx +0 -321
  427. package/src/meld/components/SimpleHeader.tsx +0 -35
  428. package/src/meld/utils/meld.ts +0 -77
  429. package/src/mutations.ts +0 -166
  430. package/src/onramp/MeshConnectFlow.tsx +0 -86
  431. package/src/onramp/MeshConnectIframe.tsx +0 -661
  432. package/src/onramp/SendFromExchangeButton.tsx +0 -81
  433. package/src/onramp/TrailsOnRampProvider.tsx +0 -59
  434. package/src/onramp/index.ts +0 -31
  435. package/src/onramp/meshconnect.ts +0 -277
  436. package/src/onramp/trailsOnramp.tsx +0 -130
  437. package/src/onramp-client/index.ts +0 -52
  438. package/src/onrampClient.ts +0 -46
  439. package/src/paymasterSend.ts +0 -521
  440. package/src/placeholder.ts +0 -92
  441. package/src/poolUtils.ts +0 -222
  442. package/src/pools.ts +0 -120
  443. package/src/prepareSend.ts +0 -553
  444. package/src/query/balance.fetchers.ts +0 -753
  445. package/src/query/balance.hooks.ts +0 -357
  446. package/src/query/balance.queries.ts +0 -307
  447. package/src/query/chains.hooks.ts +0 -45
  448. package/src/query/chains.queries.ts +0 -17
  449. package/src/query/client.ts +0 -20
  450. package/src/query/fiat.fetchers.ts +0 -33
  451. package/src/query/fiat.hooks.ts +0 -71
  452. package/src/query/fiat.queries.ts +0 -67
  453. package/src/query/geo.fetchers.ts +0 -100
  454. package/src/query/geo.hooks.ts +0 -16
  455. package/src/query/geo.queries.ts +0 -36
  456. package/src/query/helpers.ts +0 -81
  457. package/src/query/meld.fetchers.ts +0 -97
  458. package/src/query/meld.hooks.ts +0 -18
  459. package/src/query/meld.queries.ts +0 -184
  460. package/src/query/persister.ts +0 -11
  461. package/src/query/price.fetchers.ts +0 -53
  462. package/src/query/price.hooks.ts +0 -46
  463. package/src/query/price.queries.ts +0 -364
  464. package/src/query/tokenList.queries.ts +0 -118
  465. package/src/queryParams.ts +0 -100
  466. package/src/recover.ts +0 -1728
  467. package/src/sendUserOp.ts +0 -512
  468. package/src/theme.ts +0 -2
  469. package/src/toSimpleSmartAccount.ts +0 -567
  470. package/src/toast.ts +0 -110
  471. package/src/tokens.ts +0 -1862
  472. package/src/trailsClient.ts +0 -40
  473. package/src/transactionIntent/constants.ts +0 -15
  474. package/src/transactionIntent/deposits/depositOrchestrator.ts +0 -243
  475. package/src/transactionIntent/deposits/gaslessDeposit.ts +0 -705
  476. package/src/transactionIntent/deposits/index.ts +0 -3
  477. package/src/transactionIntent/deposits/standardDeposit.ts +0 -590
  478. package/src/transactionIntent/execution/index.ts +0 -1
  479. package/src/transactionIntent/execution/transactionState.ts +0 -38
  480. package/src/transactionIntent/handlers/index.ts +0 -1
  481. package/src/transactionIntent/handlers/intentHandler.ts +0 -1613
  482. package/src/transactionIntent/helpers/index.ts +0 -1
  483. package/src/transactionIntent/helpers/transactionStateHelpers.ts +0 -440
  484. package/src/transactionIntent/index.ts +0 -10
  485. package/src/transactionIntent/quote/feeExtractors.ts +0 -61
  486. package/src/transactionIntent/quote/index.ts +0 -3
  487. package/src/transactionIntent/quote/normalizeQuote.ts +0 -559
  488. package/src/transactionIntent/quote/quoteHelpers.ts +0 -117
  489. package/src/transactionIntent/types.ts +0 -241
  490. package/src/transactionIntent/utils/balanceChecker.ts +0 -103
  491. package/src/transactionIntent/utils/erc20Approval.ts +0 -171
  492. package/src/transactionIntent/utils/index.ts +0 -2
  493. package/src/transactionIntent/utils/resilientDepositTracker.ts +0 -171
  494. package/src/transactionIntent/utils/testnetHelpers.ts +0 -5
  495. package/src/transactionIntent/validators.ts +0 -27
  496. package/src/transactions.ts +0 -429
  497. package/src/types.d.ts +0 -16
  498. package/src/umd.tsx +0 -33
  499. package/src/utils/address.ts +0 -78
  500. package/src/utils/allowance.ts +0 -47
  501. package/src/utils/fiat.ts +0 -32
  502. package/src/utils/format.ts +0 -625
  503. package/src/utils/passthrough.ts +0 -93
  504. package/src/utils/time.ts +0 -118
  505. package/src/utils/validation.ts +0 -104
  506. package/src/utils.ts +0 -112
  507. package/src/version.ts +0 -8
  508. package/src/vite-env.d.ts +0 -4
  509. package/src/walletUtils.ts +0 -293
  510. package/src/wallets.ts +0 -544
  511. package/src/widget/analytics/useWidgetAnalytics.ts +0 -56
  512. package/src/widget/assets/Exchange-icon-black.svg +0 -5
  513. package/src/widget/assets/MetaMask-icon-fox-with-margins.svg +0 -31
  514. package/src/widget/assets/MetaMask-icon-fox.svg +0 -26
  515. package/src/widget/assets/MetaMask-logo-black.svg +0 -3
  516. package/src/widget/assets/MetaMask-logo-white.svg +0 -16
  517. package/src/widget/assets/Trails-logo-black.svg +0 -13
  518. package/src/widget/assets/Trails-logo-white.svg +0 -13
  519. package/src/widget/assets/WalletChange-black.svg +0 -5
  520. package/src/widget/assets/WalletConnect-logo-black.svg +0 -14
  521. package/src/widget/assets/WalletConnect-logo-blue.svg +0 -14
  522. package/src/widget/assets/WalletConnect-logo-white.svg +0 -14
  523. package/src/widget/assets/WalletConnect-logo.svg +0 -40
  524. package/src/widget/assets/aave.svg +0 -14
  525. package/src/widget/assets/morpho.svg +0 -14
  526. package/src/widget/compiled.css +0 -26
  527. package/src/widget/components/AccountActionsDropdown.tsx +0 -31
  528. package/src/widget/components/AccountIntentTransactionHistory.tsx +0 -756
  529. package/src/widget/components/AccountIntentTransactionHistoryButton.tsx +0 -34
  530. package/src/widget/components/AccountSettings.tsx +0 -168
  531. package/src/widget/components/AddressOrEnsName.tsx +0 -24
  532. package/src/widget/components/AddressWalletIcon.tsx +0 -49
  533. package/src/widget/components/AllChainsIcon.tsx +0 -54
  534. package/src/widget/components/ChainFilterDropdown.tsx +0 -220
  535. package/src/widget/components/ChainImage.tsx +0 -40
  536. package/src/widget/components/ChainList.tsx +0 -158
  537. package/src/widget/components/ClassicSwap.tsx +0 -1761
  538. package/src/widget/components/ConfigDisplay.tsx +0 -158
  539. package/src/widget/components/ConnectWallet.tsx +0 -566
  540. package/src/widget/components/ConnectedWallets.tsx +0 -414
  541. package/src/widget/components/CopyButton.tsx +0 -108
  542. package/src/widget/components/CountryFilterDropdown.tsx +0 -179
  543. package/src/widget/components/DebugMenu.tsx +0 -50
  544. package/src/widget/components/DebugScreensList.tsx +0 -70
  545. package/src/widget/components/DebugToast.tsx +0 -63
  546. package/src/widget/components/DepositTracker.tsx +0 -326
  547. package/src/widget/components/DirectTransfer.tsx +0 -305
  548. package/src/widget/components/Disconnect.tsx +0 -68
  549. package/src/widget/components/DynamicInputStyles.tsx +0 -121
  550. package/src/widget/components/DynamicSizeInputField.tsx +0 -245
  551. package/src/widget/components/ENSAvatar.tsx +0 -33
  552. package/src/widget/components/Earn.tsx +0 -160
  553. package/src/widget/components/EarnPools.tsx +0 -417
  554. package/src/widget/components/EarnPoolsFilters.tsx +0 -165
  555. package/src/widget/components/ErrorAnimationIcon.tsx +0 -130
  556. package/src/widget/components/ErrorDisplay.tsx +0 -152
  557. package/src/widget/components/ExecutingIntentsBadge.tsx +0 -24
  558. package/src/widget/components/ExecutionStatusBadge.tsx +0 -53
  559. package/src/widget/components/FeeBreakdown.tsx +0 -155
  560. package/src/widget/components/FeeOption.tsx +0 -170
  561. package/src/widget/components/FeeOptions.tsx +0 -247
  562. package/src/widget/components/FiatSelector.tsx +0 -308
  563. package/src/widget/components/FiatSelectorButton.tsx +0 -68
  564. package/src/widget/components/Footer.tsx +0 -67
  565. package/src/widget/components/Fund.tsx +0 -2463
  566. package/src/widget/components/FundMethods.tsx +0 -423
  567. package/src/widget/components/FundWalletSelection.tsx +0 -60
  568. package/src/widget/components/FundingMethodSelectorButton.tsx +0 -106
  569. package/src/widget/components/GreenCheckAnimation.tsx +0 -119
  570. package/src/widget/components/HideBalances.tsx +0 -24
  571. package/src/widget/components/HighPriceImpactBlock.tsx +0 -44
  572. package/src/widget/components/HookModalContent.tsx +0 -377
  573. package/src/widget/components/Identicon.tsx +0 -228
  574. package/src/widget/components/LoadingSpinner.tsx +0 -9
  575. package/src/widget/components/MeldForm.tsx +0 -780
  576. package/src/widget/components/MeldHistory.tsx +0 -433
  577. package/src/widget/components/MeldStepsFlow.tsx +0 -1651
  578. package/src/widget/components/MeldTransactionStatus.tsx +0 -255
  579. package/src/widget/components/MeshExchangeSelection.tsx +0 -218
  580. package/src/widget/components/Modal.tsx +0 -86
  581. package/src/widget/components/OFTProgressBar.tsx +0 -89
  582. package/src/widget/components/OnRampProviderSelector.tsx +0 -263
  583. package/src/widget/components/OnrampDeposit.tsx +0 -122
  584. package/src/widget/components/OnrampErrorScreen.tsx +0 -163
  585. package/src/widget/components/OnrampHistoryRow.tsx +0 -321
  586. package/src/widget/components/OnrampPaymentMethods.tsx +0 -81
  587. package/src/widget/components/OnrampProviderConfirmation.tsx +0 -1060
  588. package/src/widget/components/OriginSelectionAmount.tsx +0 -144
  589. package/src/widget/components/OriginTransferInformation.tsx +0 -59
  590. package/src/widget/components/Pay.tsx +0 -1165
  591. package/src/widget/components/PaymentMethods.tsx +0 -198
  592. package/src/widget/components/PercentageMaxButtons.tsx +0 -112
  593. package/src/widget/components/PoolDeposit.tsx +0 -642
  594. package/src/widget/components/PoolWithdraw.tsx +0 -761
  595. package/src/widget/components/PriceImpactWarning.tsx +0 -87
  596. package/src/widget/components/QRCodeOptions.tsx +0 -65
  597. package/src/widget/components/QRCodeWalletSelect.tsx +0 -80
  598. package/src/widget/components/QrCode.tsx +0 -216
  599. package/src/widget/components/QuoteDetails.tsx +0 -1275
  600. package/src/widget/components/Receipt.tsx +0 -673
  601. package/src/widget/components/ReceiptRecoverableFunds.tsx +0 -135
  602. package/src/widget/components/RecentTokens.tsx +0 -66
  603. package/src/widget/components/RecipientSelectorButton.tsx +0 -50
  604. package/src/widget/components/Recipients.tsx +0 -413
  605. package/src/widget/components/RefundWarning.tsx +0 -61
  606. package/src/widget/components/RequiredPropsError.tsx +0 -33
  607. package/src/widget/components/ScreenHeader.tsx +0 -123
  608. package/src/widget/components/SearchInputField.tsx +0 -99
  609. package/src/widget/components/SessionTimeoutScreen.tsx +0 -103
  610. package/src/widget/components/ShadowPortal.tsx +0 -99
  611. package/src/widget/components/ShadowRootContext.tsx +0 -17
  612. package/src/widget/components/SimpleRecipientInputScreen.tsx +0 -91
  613. package/src/widget/components/SlippageToleranceSettings.tsx +0 -279
  614. package/src/widget/components/Swap.tsx +0 -50
  615. package/src/widget/components/SwapDisplay.tsx +0 -68
  616. package/src/widget/components/SwapSettings.tsx +0 -52
  617. package/src/widget/components/ThemeProvider.tsx +0 -115
  618. package/src/widget/components/ThemeSyncer.tsx +0 -47
  619. package/src/widget/components/Toast.tsx +0 -336
  620. package/src/widget/components/TokenDisplayNonSelectable.tsx +0 -40
  621. package/src/widget/components/TokenImage.tsx +0 -156
  622. package/src/widget/components/TokenList.tsx +0 -107
  623. package/src/widget/components/TokenSelector.tsx +0 -807
  624. package/src/widget/components/TokenSelectorButton.tsx +0 -123
  625. package/src/widget/components/TokenSkeleton.tsx +0 -53
  626. package/src/widget/components/Tooltip.tsx +0 -64
  627. package/src/widget/components/TrailsHookModal.tsx +0 -107
  628. package/src/widget/components/TransactionDetails.tsx +0 -534
  629. package/src/widget/components/TransactionHistoryItem.tsx +0 -767
  630. package/src/widget/components/TransferPendingVertical.tsx +0 -591
  631. package/src/widget/components/TruncatedAddress.tsx +0 -68
  632. package/src/widget/components/TruncatedTransactionHash.tsx +0 -74
  633. package/src/widget/components/UserPreferences.tsx +0 -570
  634. package/src/widget/components/WaasFeeOptions.tsx +0 -588
  635. package/src/widget/components/WalletConfirmation.tsx +0 -220
  636. package/src/widget/components/WalletConnect.tsx +0 -348
  637. package/src/widget/components/WalletConnectionPending.tsx +0 -178
  638. package/src/widget/components/WalletImage.tsx +0 -52
  639. package/src/widget/components/WalletList.tsx +0 -125
  640. package/src/widget/components/WidgetProviders.tsx +0 -82
  641. package/src/widget/components/Withdraw.tsx +0 -1106
  642. package/src/widget/components/YellowWarningAnimation.tsx +0 -146
  643. package/src/widget/hooks/useAddressWalletIcon.ts +0 -55
  644. package/src/widget/hooks/useAmountUsd.ts +0 -44
  645. package/src/widget/hooks/useBalanceVisible.tsx +0 -95
  646. package/src/widget/hooks/useChainFilter.tsx +0 -56
  647. package/src/widget/hooks/useCheckout.ts +0 -361
  648. package/src/widget/hooks/useClickTracking.ts +0 -74
  649. package/src/widget/hooks/useCombinedHistory.ts +0 -420
  650. package/src/widget/hooks/useConnector.tsx +0 -24
  651. package/src/widget/hooks/useCustomTokenSearch.tsx +0 -369
  652. package/src/widget/hooks/useDebounce.ts +0 -25
  653. package/src/widget/hooks/useDebugScreens.ts +0 -600
  654. package/src/widget/hooks/useDefaultDestinationToken.tsx +0 -179
  655. package/src/widget/hooks/useDefaultOriginToken.tsx +0 -407
  656. package/src/widget/hooks/useDepositMonitor.ts +0 -118
  657. package/src/widget/hooks/useDestinationSelectedToken.tsx +0 -310
  658. package/src/widget/hooks/useDisplayCurrencyPreference.tsx +0 -145
  659. package/src/widget/hooks/useEarnPool.tsx +0 -36
  660. package/src/widget/hooks/useExecutingIntentsCount.ts +0 -78
  661. package/src/widget/hooks/useExternalFundingReceiptSync.ts +0 -79
  662. package/src/widget/hooks/useFiatOnRampCurrencies.ts +0 -46
  663. package/src/widget/hooks/useFiatSelectedCurrency.tsx +0 -123
  664. package/src/widget/hooks/useGetIntent.ts +0 -54
  665. package/src/widget/hooks/useIntentReceiptBalances.ts +0 -141
  666. package/src/widget/hooks/useIntentTransactionHistory.ts +0 -790
  667. package/src/widget/hooks/useIsConnectedWalletSmartContract.ts +0 -43
  668. package/src/widget/hooks/useIsMobile.tsx +0 -50
  669. package/src/widget/hooks/useIsSequenceWallet.ts +0 -17
  670. package/src/widget/hooks/useLocalePreference.tsx +0 -187
  671. package/src/widget/hooks/useMeldTransactionHistory.ts +0 -184
  672. package/src/widget/hooks/useMeldTransactionStatus.ts +0 -707
  673. package/src/widget/hooks/useOnRampCountryDefaults.ts +0 -57
  674. package/src/widget/hooks/useOnRampPaymentMethods.ts +0 -72
  675. package/src/widget/hooks/useOnRampProviderWidget.ts +0 -184
  676. package/src/widget/hooks/useOnRampQuote.ts +0 -340
  677. package/src/widget/hooks/useOnRampTransactionStatus.ts +0 -196
  678. package/src/widget/hooks/useOriginSelectedToken.tsx +0 -253
  679. package/src/widget/hooks/usePayMessage.tsx +0 -496
  680. package/src/widget/hooks/usePriceImpactWarning.ts +0 -17
  681. package/src/widget/hooks/useQuote.ts +0 -1239
  682. package/src/widget/hooks/useRecentTokens.ts +0 -159
  683. package/src/widget/hooks/useRecipients.ts +0 -167
  684. package/src/widget/hooks/useScreenTracking.ts +0 -14
  685. package/src/widget/hooks/useSelectedFeeOption.tsx +0 -323
  686. package/src/widget/hooks/useSelectedFundMethod.tsx +0 -93
  687. package/src/widget/hooks/useSelectedRecipient.tsx +0 -75
  688. package/src/widget/hooks/useSendForm.ts +0 -1389
  689. package/src/widget/hooks/useSwapAmount.tsx +0 -50
  690. package/src/widget/hooks/useSwapState.tsx +0 -121
  691. package/src/widget/hooks/useTargetAmount.ts +0 -26
  692. package/src/widget/hooks/useTheme.tsx +0 -80
  693. package/src/widget/hooks/useTokenList.ts +0 -1168
  694. package/src/widget/hooks/useTrailsSendTransaction.ts +0 -987
  695. package/src/widget/hooks/useViewManager.tsx +0 -506
  696. package/src/widget/hooks/useWalletConnectUri.tsx +0 -307
  697. package/src/widget/hooks/useWalletConnectionContext.tsx +0 -128
  698. package/src/widget/hooks/useWidgetProps.tsx +0 -33
  699. package/src/widget/index.css +0 -686
  700. package/src/widget/index.tsx +0 -28
  701. package/src/widget/providers/TrailsModalProvider.tsx +0 -238
  702. package/src/widget/providers/TrailsProvider.tsx +0 -155
  703. package/src/widget/providers/UserActivityProvider.tsx +0 -78
  704. package/src/widget/providers/WidgetProviderTree.tsx +0 -90
  705. package/src/widget/styles.ts +0 -26
  706. package/src/widget/types/analytics.ts +0 -22
  707. package/src/widget/types/commonProps.ts +0 -56
  708. package/src/widget/types/svg.d.ts +0 -8
  709. package/src/widget/types.ts +0 -51
  710. package/src/widget/utils/countryUtils.ts +0 -89
  711. package/src/widget/utils/createWagmiConfig.ts +0 -43
  712. package/src/widget/utils/forexRateStore.ts +0 -120
  713. package/src/widget/utils/fundMethodSwitchState.ts +0 -27
  714. package/src/widget/utils/historyFilters.ts +0 -157
  715. package/src/widget/utils/historyUtils.ts +0 -101
  716. package/src/widget/utils/localeStore.ts +0 -68
  717. package/src/widget/utils/meldProviderUtils.ts +0 -26
  718. package/src/widget/utils/meshSupportedTokens.ts +0 -28
  719. package/src/widget/utils/onrampConfig.ts +0 -15
  720. package/src/widget/utils/statusLabel.ts +0 -3
  721. package/src/widget/utils/tokens.ts +0 -138
  722. package/src/widget/utils/trailsOnrampConfig.ts +0 -39
  723. package/src/widget/utils/transactionFailure.ts +0 -52
  724. package/src/widget/utils/viewManagerGuards.ts +0 -49
  725. package/src/widget/utils/windowUtils.ts +0 -138
  726. package/src/widget/widget.tsx +0 -3400
  727. /package/dist/{widget/hooks → hooks}/useAddressWalletIcon.d.ts +0 -0
  728. /package/dist/{widget/hooks → hooks}/useAmountUsd.d.ts +0 -0
  729. /package/dist/{widget/hooks → hooks}/useBalanceVisible.d.ts +0 -0
  730. /package/dist/{widget/hooks → hooks}/useChainFilter.d.ts +0 -0
  731. /package/dist/{widget/hooks → hooks}/useClickTracking.d.ts +0 -0
  732. /package/dist/{widget/hooks → hooks}/useConnector.d.ts +0 -0
  733. /package/dist/{widget/hooks → hooks}/useDebounce.d.ts +0 -0
  734. /package/dist/{widget/hooks → hooks}/useDepositMonitor.d.ts +0 -0
  735. /package/dist/{widget/hooks → hooks}/useDisplayCurrencyPreference.d.ts +0 -0
  736. /package/dist/{widget/hooks → hooks}/useExecutingIntentsCount.d.ts +0 -0
  737. /package/dist/{widget/hooks → hooks}/useFiatSelectedCurrency.d.ts +0 -0
  738. /package/dist/{widget/hooks → hooks}/useGetIntent.d.ts +0 -0
  739. /package/dist/{widget/hooks → hooks}/useIsMobile.d.ts +0 -0
  740. /package/dist/{widget/hooks → hooks}/useIsSequenceWallet.d.ts +0 -0
  741. /package/dist/{widget/hooks → hooks}/useLocalePreference.d.ts +0 -0
  742. /package/dist/{widget/hooks → hooks}/useMeldTransactionHistory.d.ts +0 -0
  743. /package/dist/{widget/hooks → hooks}/useMeldTransactionStatus.d.ts +0 -0
  744. /package/dist/{widget/hooks → hooks}/useOnRampCountryDefaults.d.ts +0 -0
  745. /package/dist/{widget/hooks → hooks}/usePayMessage.d.ts +0 -0
  746. /package/dist/{widget/hooks → hooks}/usePriceImpactWarning.d.ts +0 -0
  747. /package/dist/{widget/hooks → hooks}/useRecipients.d.ts +0 -0
  748. /package/dist/{widget/hooks → hooks}/useSelectedFeeOption.d.ts +0 -0
  749. /package/dist/{widget/hooks → hooks}/useSelectedRecipient.d.ts +0 -0
  750. /package/dist/{widget/hooks → hooks}/useSwapAmount.d.ts +0 -0
  751. /package/dist/{widget/hooks → hooks}/useTargetAmount.d.ts +0 -0
  752. /package/dist/{widget/hooks → hooks}/useTheme.d.ts +0 -0
  753. /package/dist/{widget/hooks → hooks}/useWalletConnectionContext.d.ts +0 -0
@@ -1,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