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,1239 +0,0 @@
1
- import { useQuery, useQueryClient } from "@tanstack/react-query"
2
- import { useRef, useMemo, useState, useEffect } from "react"
3
- import type { TransactionReceipt } from "viem"
4
- import { zeroAddress, erc20Abi, parseUnits } from "viem"
5
- import { etherlink } from "viem/chains"
6
- import { useAccount } from "wagmi"
7
- import { useIndexerGatewayClient } from "../../indexerClient.js"
8
- import { balanceQueries } from "../../query/balance.queries.js"
9
- import { isNetworkError } from "../../query/helpers.js"
10
- import { logger } from "../../logger.js"
11
- import { useSupportedTokens } from "../../tokens.js"
12
- import { findSupportedToken } from "../utils/tokens.js"
13
- import { useTrailsClient } from "../../trailsClient.js"
14
- import { useTrails } from "../../widget/providers/TrailsProvider.js"
15
- import { getExplorerUrl } from "../../explorer.js"
16
- import { getFullErrorMessage, getPrettifiedErrorMessage } from "../../error.js"
17
- import { prepareSend } from "../../prepareSend.js"
18
- import { abortControllerRegistry } from "../../abortController.js"
19
- import { TradeType } from "../../prepareSend.js"
20
- import { getChainInfo } from "../../chains.js"
21
- import { useChainRpcClient } from "../../query/chains.hooks.js"
22
- import { getIsContract } from "../../contractUtils.js"
23
- import type { IntentTransaction } from "@0xtrails/api"
24
- import type {
25
- PrepareSendOptions,
26
- FundMethod,
27
- } from "../../transactionIntent/types.js"
28
- import type { Chain } from "../../chains.js"
29
- import type { Token } from "../../tokens.js"
30
- import type { TransactionState } from "../../transactions.js"
31
- import type { PrepareSendFees } from "../../prepareSend.js"
32
- import type { TrailsFeeBreakdown } from "../../fees.js"
33
- import { getTokenPrice } from "../../query/price.queries.js"
34
- import { useCommitIntent, useExecuteIntent } from "../../mutations.js"
35
- import type { CheckoutOnHandlers } from "./useCheckout.js"
36
- import type {
37
- FeeOption,
38
- RouteProvider,
39
- PriceImpactDetails,
40
- } from "@0xtrails/api"
41
- import type { OnrampTrackingData } from "../types/analytics.js"
42
- import { isZeroOrInvalidAmount } from "../../utils/validation.js"
43
- import { addressEqual } from "../../utils/address.js"
44
- import { HOUR_MS } from "../../utils/time.js"
45
-
46
- /**
47
- * Configuration options for the `useQuote` hook.
48
- *
49
- * All parameters are optional, but the hook will not fetch a quote until all required
50
- * parameters are provided (walletClient, fromTokenAddress, fromChainId, toTokenAddress,
51
- * toChainId, swapAmount, toAddress, toApprove).
52
- */
53
- export type UseQuoteProps = {
54
- /** The wallet client from wagmi (e.g., from `useWalletClient()`). Required for quote fetching. */
55
- walletClient?: any // TODO: fix this, has to do with viem/wagmi versions
56
- /** The contract address of the origin token. */
57
- fromTokenAddress?: string | null
58
- /** The chain ID of the origin chain */
59
- fromChainId?: number | null
60
- /** The contract address of the destination token. */
61
- toTokenAddress?: string | null
62
- /** The chain ID of the destination chain. */
63
- toChainId?: number | null
64
- /** Optional address to approve the destination token to. If not specified, the to address will be used. */
65
- toApprove?: string | null
66
- /** Optional custom calldata for the destination chain. Used for executing arbitrary contract calls. */
67
- toCalldata?: string | null
68
- /** The amount to swap, as a string or bigint in the token's smallest unit (wei/smallest unit). For example, 1 USDC (6 decimals) = '1000000'. */
69
- swapAmount?: string | bigint
70
- /** The recipient address for the destination token. */
71
- toAddress?: string | null
72
- /**
73
- * @deprecated Use `toAddress` instead. This will be removed in a future version.
74
- */
75
- toRecipient?: string | null
76
- /** The trade type: `TradeType.EXACT_INPUT` (you specify input amount) or `TradeType.EXACT_OUTPUT` (you specify output amount). Defaults to `EXACT_OUTPUT`. */
77
- tradeType?: TradeType | null
78
- /** Slippage tolerance as a decimal string or number (e.g., '0.005' for 0.5%, '0.01' for 1%). Defaults to a reasonable value if not provided. */
79
- slippageTolerance?: string | number | null
80
- /** Optional callback function that receives transaction state updates during swap execution. */
81
- onStatusUpdate?: ((transactionStates: TransactionState[]) => void) | null
82
- /** Optional quote swap provider ID to use. If not specified, the best available provider will be selected. */
83
- swapProvider?: RouteProvider | null
84
- /** Optional quote bridge provider ID to use. If not specified, the best available provider will be selected. */
85
- bridgeProvider?: RouteProvider | null
86
- /** Optional swap provider fallback flag passed to QuoteIntent request options. */
87
- swapProviderFallback?: boolean
88
- /** Optional bridge provider fallback flag passed to QuoteIntent request options. */
89
- bridgeProviderFallback?: boolean
90
- /**
91
- * Optional checkout event handlers for tracking the states of a Trails transaction.
92
- *
93
- * @example
94
- * ```ts
95
- * checkoutOnHandlers: {
96
- * triggerCheckoutStart: () => {
97
- * console.log('Checkout started')
98
- * },
99
- * triggerCheckoutQuote: (quote) => {
100
- * console.log('Quote received:', quote)
101
- * },
102
- * triggerCheckoutComplete: (status, accountAddress) => {
103
- * console.log('Checkout completed:', status, accountAddress)
104
- * }
105
- * }
106
- * ```
107
- *
108
- * Available handlers:
109
- * - `triggerCheckoutStart`
110
- * - `triggerCheckoutQuote`
111
- * - `triggerCheckoutSignatureRequest`
112
- * - `triggerCheckoutSignatureConfirmed`
113
- * - `triggerCheckoutSignatureRejected`
114
- * - `triggerCheckoutComplete`
115
- * - `triggerCheckoutError`
116
- * - `triggerCheckoutStatusUpdate`
117
- */
118
- checkoutOnHandlers?: Partial<CheckoutOnHandlers>
119
- /** Optional paymaster URL for gasless ERC-4337 transactions. */
120
- paymasterUrl?: string
121
- /** Optional fee option selection (e.g., user selects USDC as the fee token instead of ETH) */
122
- selectedFeeOption?: FeeOption | null
123
- /** Optional AbortSignal to cancel the quote request. */
124
- abortSignal?: AbortSignal
125
- /** Optional API key override for Trails API access. */
126
- apiKey?: string | null
127
- /** Optional environment override for node gateway ('prod' | 'dev' | 'local' | 'cors-anywhere'). */
128
- nodeGatewayEnv?: "prod" | "dev" | "local" | "cors-anywhere"
129
- /** Optional flag to indicate if the wallet is a smart wallet. */
130
- isSmartWallet?: boolean | null
131
- /** Optional fund method (e.g., 'wallet', 'direct-transfer', 'onramp-mesh', 'onramp-meld'). Used to determine default balance for external deposit flows. */
132
- fundMethod?: FundMethod | null
133
- /** Optional onramp tracking data for analytics */
134
- onramp?: OnrampTrackingData | null
135
- /** Optional mode for analytics tracking ('pay' | 'fund' | 'earn' | 'swap') */
136
- mode?: "pay" | "fund" | "earn" | "swap" | "withdraw" | null
137
- }
138
-
139
- /**
140
- * Return type for the `swap` function returned by {@link useQuote}.
141
- *
142
- * Contains information about both the origin and destination transactions,
143
- * including transaction hashes, explorer URLs, and receipts.
144
- */
145
- export type SwapReturn = {
146
- originTransaction: {
147
- transactionHash?: string | null
148
- explorerUrl?: string | null
149
- receipt: TransactionReceipt | IntentTransaction | null
150
- }
151
- destinationTransaction: {
152
- transactionHash?: string | null
153
- explorerUrl?: string | null
154
- receipt: IntentTransaction | null
155
- }
156
- totalCompletionSeconds?: number
157
- }
158
-
159
- /**
160
- * Information about a quote provider (LiFi, CCTP, Relay, etc.) used for routing the swap.
161
- */
162
- export type RouteProviderInfo = {
163
- id: string
164
- name: string
165
- url: string
166
- }
167
-
168
- /**
169
- * A quote object containing all the details about a Trails intent transaction.
170
- *
171
- * Includes token amounts, fees, price impact, estimated completion time,
172
- * and other relevant information for displaying to the user.
173
- */
174
- export type Quote = {
175
- // Kept for backward compatibility (use origin*/destination* versions)
176
- fromAmount: string
177
- fromAmountMin: string
178
- toAmount: string
179
- toAmountMin: string
180
- fromAmountUsdDisplay: string
181
- toAmountUsdDisplay: string
182
- toAmountMinUsdDisplay: string
183
- // PrepareSendQuote compatible names
184
- originAmount: string
185
- originAmountMin: string
186
- destinationAmount: string
187
- destinationAmountMin: string
188
- originAmountUsdDisplay: string
189
- destinationAmountUsdDisplay: string
190
- originAmountDisplay: string
191
- destinationAmountDisplay: string
192
- originAmountMinDisplay: string
193
- originAmountMinUsdFormatted: string
194
- originAmountMinUsdDisplay: string
195
- destinationAmountMinDisplay: string
196
- destinationAmountMinUsdFormatted: string
197
- destinationAmountMinUsdDisplay: string
198
- originAmountUsdFormatted: string
199
- destinationAmountUsdFormatted: string
200
- // Locale display fields
201
- intentProtocol: string
202
- originAmountFormattedLocale?: string
203
- originAmountUsdLocaleDisplay?: string
204
- destinationAmountFormattedLocale?: string
205
- destinationAmountUsdLocaleDisplay?: string
206
- originAmountUsd?: number
207
- fromAmountUsd?: number
208
- // Common fields
209
- originToken: Token
210
- destinationToken: Token
211
- originChain: Chain
212
- destinationChain: Chain
213
- fees: PrepareSendFees
214
- slippageTolerance: string
215
- priceImpact: string
216
- priceImpactUsd: string | null
217
- priceImpactUsdDisplay: string
218
- priceImpactUsdLocaleDisplay?: string
219
- completionEstimateSeconds: number
220
- completionEstimateDisplay: string
221
- transactionStates: TransactionState[]
222
- originTokenRate: string
223
- routeProviders: RouteProviderInfo[]
224
- destinationTokenRate: string
225
- originTokenPriceUsd: number
226
- destinationTokenPriceUsd: number
227
- gasCostUsd: number | null
228
- gasCostUsdDisplay: string
229
- gasCost: string
230
- gasCostFormatted: string
231
- totalFeesUsd: number | null
232
- totalFeesUsdDisplay: string
233
- totalGasUsd: number | null
234
- totalGasUsdDisplay: string
235
- intentId: string | null
236
- originAmountFormatted: string
237
- destinationAmountFormatted: string
238
- originDepositAddress: string
239
- destinationDepositAddress: string
240
- destinationAddress: string
241
- destinationApproveAddress: string
242
- destinationCalldata: string
243
- trailsFeeBreakdown: TrailsFeeBreakdown | null
244
- originGasUsd: number | null
245
- originGasUsdDisplay: string
246
- destinationGasUsd: number | null
247
- destinationGasUsdDisplay: string
248
- providerFeeUsd: number | null
249
- providerFeeUsdDisplay: string
250
- trailsFeeUsd: number | null
251
- trailsFeeUsdDisplay: string
252
- totalProviderFeesUsd: number | null
253
- totalProviderFeesUsdDisplay: string
254
- // Locale display fields for fees
255
- totalGasUsdLocaleDisplay?: string
256
- originGasUsdLocaleDisplay?: string
257
- destinationGasUsdLocaleDisplay?: string
258
- totalProviderFeesUsdLocaleDisplay?: string
259
- providerFeeUsdLocaleDisplay?: string
260
- trailsFeeUsdLocaleDisplay?: string
261
- noSufficientBalance: boolean
262
- expiresAt: string | null
263
- priceImpactDetails: PriceImpactDetails | null
264
- // Passthrough fields for UI switching
265
- passthroughEligible?: boolean
266
- passthroughTransactionStates?: TransactionState[]
267
- }
268
-
269
- /**
270
- * Return type for the {@link useQuote} hook.
271
- *
272
- * Provides the quote data, send function, loading state, error information,
273
- * and utility functions for managing the quote lifecycle.
274
- */
275
- export type SendOptions = {
276
- /** Override the fee option for this transaction (e.g., pay gas in USDC instead of ETH). */
277
- selectedFeeOption?: FeeOption | null
278
- /** Callback called when the wallet signature is confirmed and transaction is submitted. */
279
- onOriginSend?: () => void
280
- /** For onramp-meld flow, provide the deposit transaction hash directly. */
281
- depositTransactionHash?: string
282
- /** Skip committing the intent (used when intent is already committed). */
283
- skipCommit?: boolean
284
- }
285
-
286
- export type UseQuoteReturn = {
287
- /** The quote object with transaction details, or `null` if not available. */
288
- quote: Quote | null
289
- /** A function to execute the transaction, or `null` if not available. Returns a Promise that resolves to transaction result with receipts. Accepts optional SendOptions to override fee option. */
290
- send: ((options?: SendOptions) => Promise<SwapReturn | null>) | null
291
- /**
292
- * @deprecated Use `send` instead. This will be removed in a future version.
293
- */
294
- swap: ((options?: SendOptions) => Promise<SwapReturn | null>) | null
295
- /** Boolean indicating if a quote is currently being fetched. */
296
- isLoadingQuote: boolean
297
- /** Any error that occurred while fetching the quote, or `null`. */
298
- quoteError: unknown
299
- /** A user-friendly error message string. */
300
- quoteErrorPrettified: string
301
- /** Function to manually refetch the quote (useful for refreshing stale quotes). */
302
- refetchQuote: () => Promise<void>
303
- /** Function to abort any in-flight quote requests. */
304
- abort: () => void
305
- /** Fee options available for this quote (e.g., pay gas in different tokens). */
306
- feeOptions: FeeOption[]
307
- /** Whether the recipient address is a contract (null if not yet checked). */
308
- isRecipientContract: boolean | null
309
- /** Whether the sender address is a contract on the origin chain (null if not yet checked). */
310
- isSenderContractOnOrigin: boolean | null
311
- /** Whether the sender address is a contract on the destination chain (null if not yet checked). */
312
- isSenderContractOnDestination: boolean | null
313
- }
314
-
315
- // TODO: consolidate useSendForm, prepareSend, and useQuote hooks into a single hook
316
-
317
- /**
318
- * React hook for fetching quotes and executing cross-chain or same-chain intent transactions.
319
- *
320
- * This hook provides a simple interface to get quotes for intent transactions and execute them.
321
- * It handles both cross-chain and same-chain intent transactions, automatically fetching token balances,
322
- * calculating fees, and providing transaction state updates.
323
- *
324
- * @example
325
- * Cross-chain swap example:
326
- * ```tsx
327
- * import { useQuote, TradeType } from '0xtrails'
328
- * import { useEffect } from 'react'
329
- * import { useWalletClient, useAccount } from 'wagmi'
330
- *
331
- * export const Swap = () => {
332
- * const { data: walletClient } = useWalletClient()
333
- * const { address } = useAccount()
334
- *
335
- * const { quote, send, isLoadingQuote, quoteError, refetchQuote } = useQuote({
336
- * walletClient,
337
- * fromTokenAddress: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
338
- * fromChainId: 1, // Ethereum
339
- * toTokenAddress: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913', // USDC
340
- * toChainId: 8453, // Base
341
- * swapAmount: '1000000', // 1 USDC (6 decimals)
342
- * tradeType: TradeType.EXACT_INPUT,
343
- * toAddress: address,
344
- * slippageTolerance: '0.005', // 0.5%
345
- * onStatusUpdate: (states) => {
346
- * console.log('Transaction states:', states)
347
- * }
348
- * })
349
- *
350
- * // Quotes can become stale; refetch every ~30 seconds
351
- * useEffect(() => {
352
- * const id = setInterval(() => {
353
- * refetchQuote?.()
354
- * }, 30000)
355
- * return () => clearInterval(id)
356
- * }, [refetchQuote])
357
- *
358
- * const handleSend = async () => {
359
- * if (!send) return
360
- *
361
- * try {
362
- * const result = await send()
363
- * console.log('Transaction completed:', result)
364
- * } catch (error) {
365
- * console.error('Transaction failed:', error)
366
- * }
367
- * }
368
- *
369
- * if (isLoadingQuote) return <div>Getting quote...</div>
370
- * if (quoteError) return <div>Error: {String(quoteError)}</div>
371
- * if (!quote) return <div>No quote available</div>
372
- *
373
- * return (
374
- * <div>
375
- * <div>From: {quote.fromAmount} {quote.originToken.symbol}</div>
376
- * <div>To: {quote.toAmount} {quote.destinationToken.symbol}</div>
377
- * <button onClick={handleSend}>Send</button>
378
- * </div>
379
- * )
380
- * }
381
- * ```
382
- *
383
- * @param props - Configuration options for the quote
384
- * @param props.walletClient - The wallet client from wagmi (e.g., from `useWalletClient()`)
385
- * @param props.fromTokenAddress - The contract address of the token to swap from.
386
- * @param props.fromChainId - The chain ID of the origin chain
387
- * @param props.toTokenAddress - The contract address of the token to swap to. Use `zeroAddress` for native tokens
388
- * @param props.toChainId - The chain ID of the destination chain
389
- * @param props.swapAmount - The amount to swap, as a string or bigint in the token's smallest unit (wei/smallest unit). For example, 1 USDC (6 decimals) = '1000000'
390
- * @param props.tradeType - The trade type: `TradeType.EXACT_INPUT` (you specify input amount) or `TradeType.EXACT_OUTPUT` (you specify output amount). Defaults to `EXACT_OUTPUT`
391
- * @param props.toAddress - The recipient address for the destination token.
392
- * @param props.slippageTolerance - Slippage tolerance as a decimal string or number (e.g., '0.005' for 0.5%, '0.01' for 1%). Defaults to a reasonable value if not provided
393
- * @param props.toCalldata - Optional custom calldata for the destination chain. Used for executing arbitrary contract calls (e.g., swap and mint an NFT on destination chain)
394
- * @param props.onStatusUpdate - Optional callback function that receives transaction state updates during swap execution
395
- * @param props.swapProvider - Optional swap provider ID to use (auto, lifi, relay, cctp, direct). If not specified, the best available provider will be selected
396
- * @param props.bridgeProvider - Optional bridge provider ID to use (auto, lifi, relay, cctp, direct). If not specified, the best available provider will be selected
397
- * @param props.checkoutOnHandlers - Optional event handlers for tracking checkout/transaction lifecycle events
398
- * @param props.paymasterUrl - Optional paymaster URL for gasless ERC-4337 transactions
399
- * @param props.selectedFeeOption - Optional fee option selection (e.g., user selects USDC as the fee token instead of ETH)
400
- * @param props.abortSignal - Optional AbortSignal to cancel the quote request
401
- * @param props.apiKey - Optional API key override for Trails API access
402
- * @param props.nodeGatewayEnv - Optional environment override ('prod' | 'dev' | 'local' | 'cors-anywhere')
403
- * @param props.isSmartWallet - Optional flag to indicate if the wallet is a smart wallet
404
- *
405
- * @returns An object containing:
406
- * - `quote` - The quote object with transaction details, or `null` if not available
407
- * - `send` - A function to execute the transaction, or `null` if not available. Returns a Promise that resolves to transaction result with receipts
408
- * - `isLoadingQuote` - Boolean indicating if a quote is currently being fetched
409
- * - `quoteError` - Any error that occurred while fetching the quote, or `null`
410
- * - `quoteErrorPrettified` - A user-friendly error message string
411
- * - `refetchQuote` - Function to manually refetch the quote (useful for refreshing stale quotes)
412
- * - `abort` - Function to abort any in-flight quote requests
413
- *
414
- * @remarks
415
- * - The hook uses React Query internally, so quotes are cached and automatically refetched based on query key changes
416
- * - Quotes are considered stale after 30 seconds. You may want to periodically call `refetchQuote()` to keep quotes fresh
417
- * - The hook will not fetch a quote until all required parameters are provided (walletClient, token addresses, chain IDs, swap amount, recipient)
418
- * - For native tokens (ETH, MATIC, etc.), use the zero address (`0x0000000000000000000000000000000000000000`)
419
- *
420
- * @see {@link TradeType} for available trade types
421
- * @see {@link Quote} for the quote object structure
422
- * @see {@link SwapReturn} for the swap result structure
423
- *
424
- * For more information go to {@link https://docs.trails.build/sdk/hooks#usequote-hook}
425
- */
426
- export function useQuote({
427
- walletClient,
428
- fromTokenAddress,
429
- fromChainId,
430
- toTokenAddress,
431
- toChainId,
432
- swapAmount,
433
- tradeType,
434
- toAddress,
435
- toRecipient,
436
- toApprove,
437
- toCalldata,
438
- slippageTolerance,
439
- onStatusUpdate,
440
- checkoutOnHandlers,
441
- swapProvider,
442
- bridgeProvider,
443
- swapProviderFallback,
444
- bridgeProviderFallback,
445
- paymasterUrl,
446
- selectedFeeOption,
447
- nodeGatewayEnv,
448
- abortSignal: externalAbortSignal,
449
- apiKey,
450
- isSmartWallet,
451
- fundMethod,
452
- onramp,
453
- mode,
454
- }: Partial<UseQuoteProps> = {}): UseQuoteReturn {
455
- // Handle deprecated toRecipient prop - prefer toAddress
456
- if (toRecipient && !toAddress) {
457
- logger.console.warn(
458
- "[trails-sdk] [useQuote] Warning: 'toRecipient' is deprecated, use 'toAddress' instead",
459
- )
460
- }
461
- const effectiveToAddress = toAddress ?? toRecipient
462
-
463
- // Generate a unique session ID for this hook instance to ensure fresh quotes on mount
464
- // This forces React Query to treat this as a new query even if parameters are identical
465
- const quoteSessionId = useMemo(() => Date.now(), [])
466
-
467
- // Set node gateway environment override for this quote session
468
- if (nodeGatewayEnv) {
469
- ;(globalThis as any).__testNodeGatewayEnv = nodeGatewayEnv
470
- }
471
-
472
- // Create abort controller for this hook instance
473
- const abortControllerRef = useRef<AbortController>(new AbortController())
474
-
475
- // Combine external abort signal with internal abort controller
476
- const combinedAbortSignal = externalAbortSignal
477
- ? (() => {
478
- const controller = new AbortController()
479
-
480
- // Listen to external abort signal
481
- externalAbortSignal.addEventListener("abort", () => {
482
- controller.abort()
483
- abortControllerRef.current?.abort()
484
- })
485
-
486
- // Listen to internal abort controller
487
- abortControllerRef.current?.signal.addEventListener("abort", () => {
488
- controller.abort()
489
- })
490
-
491
- return controller.signal
492
- })()
493
- : abortControllerRef.current.signal
494
-
495
- // Debounce swapAmount to prevent excessive API calls while user is typing
496
- // Skip debounce for onramp-meld to get instant quotes after Meld quote is received
497
- const [debouncedSwapAmount, setDebouncedSwapAmount] = useState(swapAmount)
498
- useEffect(() => {
499
- // No debounce for onramp-meld - instant quote fetching
500
- if (fundMethod === "onramp-meld") {
501
- setDebouncedSwapAmount(swapAmount)
502
- return
503
- }
504
-
505
- const timer = setTimeout(() => {
506
- setDebouncedSwapAmount(swapAmount)
507
- }, 300)
508
- return () => clearTimeout(timer)
509
- }, [swapAmount, fundMethod])
510
-
511
- const {
512
- trailsApiKey,
513
- trailsApiUrl,
514
- sequenceIndexerUrl,
515
- sequenceMetadataUrl,
516
- } = useTrails()
517
- // trailsApiKey is the same as sequenceProjectAccessKey
518
- const sequenceProjectAccessKey = trailsApiKey
519
-
520
- // Get wallet ID from wagmi
521
- const { connector } = useAccount()
522
- const walletId = connector?.id
523
-
524
- const trailsClient = useTrailsClient({
525
- apiKey: trailsApiKey,
526
- hostname: trailsApiUrl,
527
- })
528
- const indexerGatewayClient = useIndexerGatewayClient()
529
-
530
- // Get RPC clients for known chainIds using hooks (reads from TrailsProvider context)
531
- const originPublicClient = useChainRpcClient(fromChainId ?? undefined)
532
- const destinationPublicClient = useChainRpcClient(toChainId ?? undefined)
533
-
534
- const { supportedTokens } = useSupportedTokens({
535
- disabled: !!toTokenAddress || !!fromTokenAddress,
536
- })
537
-
538
- // Get mutation hooks for passing to prepareSend
539
- const commitIntentMutation = useCommitIntent()
540
- const executeIntentMutation = useExecuteIntent()
541
-
542
- // Auto-detect swap/bridge provider for etherlink chains
543
- const effectiveSwapProvider =
544
- !swapProvider &&
545
- (fromChainId === etherlink.id || toChainId === etherlink.id)
546
- ? ("lifi" as RouteProvider)
547
- : (swapProvider ?? null)
548
-
549
- const effectiveBridgeProvider =
550
- !bridgeProvider &&
551
- (fromChainId === etherlink.id || toChainId === etherlink.id)
552
- ? ("lifi" as RouteProvider)
553
- : (bridgeProvider ?? null)
554
-
555
- // - If address IS a contract: cache untill refresh
556
- // - If address is NOT a contract: don't cache, keep checking
557
-
558
- const queryClient = useQueryClient()
559
-
560
- const senderAddress = walletClient?.account?.address?.toLowerCase()
561
- const recipientAddress = effectiveToAddress?.toLowerCase()
562
-
563
- // Check if sender and recipient are the same address (case-insensitive)
564
- const isSameAddress =
565
- senderAddress && recipientAddress && senderAddress === recipientAddress
566
- // Check if origin and destination chains are the same
567
- const isSameChain = fromChainId && toChainId && fromChainId === toChainId
568
-
569
- // Helper to check if we already have a confirmed contract result cached
570
- const hasCachedContractResult = (
571
- address: string | undefined,
572
- chainId: number | undefined,
573
- ) => {
574
- if (!address || !chainId) return false
575
- const cached = queryClient.getQueryData(["isContract", address, chainId])
576
- return cached === true // Only skip if we've confirmed it's a contract
577
- }
578
-
579
- // Query for sender on origin chain
580
- const { data: senderOnOriginResult } = useQuery({
581
- queryKey: ["isContract", senderAddress, fromChainId],
582
- queryFn: async () => {
583
- if (!senderAddress || !fromChainId) return null
584
- return getIsContract(senderAddress as `0x${string}`, fromChainId)
585
- },
586
- enabled:
587
- !!senderAddress &&
588
- !!fromChainId &&
589
- !hasCachedContractResult(senderAddress, fromChainId),
590
- staleTime: (query) => (query.state.data === true ? Infinity : 0),
591
- gcTime: HOUR_MS,
592
- })
593
-
594
- // Query for sender on destination chain - skip if same chain as origin (reuse origin result)
595
- const { data: senderOnDestinationResult } = useQuery({
596
- queryKey: ["isContract", senderAddress, toChainId],
597
- queryFn: async () => {
598
- if (!senderAddress || !toChainId) return null
599
- return getIsContract(senderAddress as `0x${string}`, toChainId)
600
- },
601
- // Skip if same chain OR if we already have a cached contract result
602
- enabled:
603
- !!senderAddress &&
604
- !!toChainId &&
605
- !isSameChain &&
606
- !hasCachedContractResult(senderAddress, toChainId),
607
- staleTime: (query) => (query.state.data === true ? Infinity : 0),
608
- gcTime: HOUR_MS,
609
- })
610
-
611
- // Query for recipient on destination chain - skip if same address as sender (reuse sender result)
612
- const { data: recipientOnDestinationResult } = useQuery({
613
- queryKey: ["isContract", recipientAddress, toChainId],
614
- queryFn: async () => {
615
- if (!recipientAddress || !toChainId) return null
616
- return getIsContract(recipientAddress as `0x${string}`, toChainId)
617
- },
618
- // Skip if same address as sender OR if we already have a cached contract result
619
- enabled:
620
- !!recipientAddress &&
621
- !!toChainId &&
622
- !isSameAddress &&
623
- !hasCachedContractResult(recipientAddress, toChainId),
624
- staleTime: (query) => (query.state.data === true ? Infinity : 0),
625
- gcTime: HOUR_MS,
626
- })
627
-
628
- // Derive the final values, reusing results where addresses/chains match
629
- const isSenderContractOnOrigin = senderOnOriginResult ?? null
630
- const isSenderContractOnDestination = isSameChain
631
- ? senderOnOriginResult // Same chain, reuse origin result
632
- : (senderOnDestinationResult ?? null)
633
- const isRecipientContract = isSameAddress
634
- ? isSameChain
635
- ? senderOnOriginResult
636
- : senderOnDestinationResult // Same address, reuse sender result
637
- : (recipientOnDestinationResult ?? null)
638
-
639
- const prepareSendEnabled = Boolean(
640
- walletClient &&
641
- trailsClient &&
642
- fromTokenAddress &&
643
- toTokenAddress &&
644
- debouncedSwapAmount &&
645
- !isZeroOrInvalidAmount(debouncedSwapAmount) &&
646
- effectiveToAddress &&
647
- fromChainId &&
648
- toChainId &&
649
- indexerGatewayClient,
650
- )
651
-
652
- logger.console.log("[trails-sdk] [useQuote] prepareSend enabled check:", {
653
- enabled: prepareSendEnabled,
654
- walletClient: !!walletClient,
655
- trailsClient: !!trailsClient,
656
- fromTokenAddress: !!fromTokenAddress,
657
- toTokenAddress: !!toTokenAddress,
658
- debouncedSwapAmount: !!debouncedSwapAmount,
659
- isZeroOrInvalid: isZeroOrInvalidAmount(debouncedSwapAmount),
660
- effectiveToAddress: !!effectiveToAddress,
661
- fromChainId: !!fromChainId,
662
- toChainId: !!toChainId,
663
- indexerGatewayClient: !!indexerGatewayClient,
664
- })
665
-
666
- const { data, isFetching, error, refetch } = useQuery({
667
- queryKey: [
668
- "prepareSend",
669
- fromTokenAddress,
670
- fromChainId,
671
- toTokenAddress,
672
- toChainId,
673
- debouncedSwapAmount?.toString(),
674
- effectiveToAddress,
675
- toCalldata,
676
- tradeType,
677
- slippageTolerance,
678
- swapProvider,
679
- bridgeProvider,
680
- swapProviderFallback,
681
- bridgeProviderFallback,
682
- apiKey,
683
- isSmartWallet,
684
- fundMethod,
685
- quoteSessionId, // Include session ID to force fresh query on mount
686
- ],
687
- queryFn: async () => {
688
- try {
689
- logger.console.log(
690
- "[trails-sdk] [useQuote] prepareSend queryFn entered",
691
- )
692
-
693
- // Reset the abort controller for new queries to ensure fresh state
694
- if (abortControllerRef.current.signal.aborted) {
695
- logger.console.log(
696
- "[trails-sdk] Resetting aborted controller for new query",
697
- )
698
- abortControllerRef.current = new AbortController()
699
- }
700
-
701
- if (
702
- !walletClient ||
703
- !trailsClient ||
704
- !fromTokenAddress ||
705
- !toTokenAddress ||
706
- !debouncedSwapAmount ||
707
- isZeroOrInvalidAmount(debouncedSwapAmount) ||
708
- !effectiveToAddress ||
709
- !fromChainId ||
710
- !toChainId ||
711
- !indexerGatewayClient
712
- ) {
713
- logger.console.log(
714
- "[trails-sdk] [useQuote] prepareSend queryFn guard failed, returning null",
715
- )
716
- return null
717
- }
718
-
719
- // Create a 20-second timeout
720
- const timeoutId = setTimeout(() => {
721
- logger.console.warn(
722
- "[trails-sdk] [useQuote] Quote request timed out after 20 seconds",
723
- )
724
- abortControllerRef.current.abort()
725
- }, 20000) // 20 seconds
726
-
727
- try {
728
- const originChain = getChainInfo(fromChainId)
729
- const nativeTokenSymbol = originChain?.nativeCurrency?.symbol ?? ""
730
-
731
- const balanceResult = await queryClient
732
- .ensureQueryData(
733
- balanceQueries.withPrices(
734
- walletClient.account!.address,
735
- indexerGatewayClient,
736
- trailsClient,
737
- ),
738
- )
739
- .catch((balanceError: unknown) => {
740
- if (isNetworkError(balanceError)) {
741
- logger.console.warn(
742
- "[trails-sdk] [useQuote] Network error fetching balances, proceeding with quote using zero balance:",
743
- {
744
- error: balanceError,
745
- account: walletClient.account!.address,
746
- },
747
- )
748
- return { balances: [] }
749
- }
750
- throw balanceError
751
- })
752
-
753
- const balances = balanceResult.balances
754
- const nativeTokenFromBalances = balances.find(
755
- (b: any) =>
756
- b.chainId === fromChainId &&
757
- (addressEqual(b.contractAddress, zeroAddress) || b.isNativeToken),
758
- )
759
- let originNativeTokenPriceUsd = nativeTokenFromBalances?.priceUsd ?? 0
760
-
761
- // Reuse the price already fetched by balanceQueries.withPrices.
762
- // Fallback only when native token is missing from the balances payload.
763
- if (!originNativeTokenPriceUsd && nativeTokenSymbol) {
764
- const nativePriceResult = await getTokenPrice(trailsClient, {
765
- tokenSymbol: nativeTokenSymbol,
766
- tokenAddress: zeroAddress,
767
- chainId: fromChainId,
768
- }).catch((error) => {
769
- logger.console.error(
770
- "[trails-sdk] [useQuote] Error getting origin native token price:",
771
- error,
772
- )
773
- return null
774
- })
775
- originNativeTokenPriceUsd = nativePriceResult?.priceUsd ?? 0
776
- }
777
-
778
- if (originNativeTokenPriceUsd) {
779
- logger.console.log(
780
- "[trails-sdk] [useQuote] Origin native token price:",
781
- {
782
- chainId: fromChainId,
783
- symbol: nativeTokenSymbol,
784
- priceUsd: originNativeTokenPriceUsd,
785
- },
786
- )
787
- }
788
-
789
- const originTokenBalance = balances.find(
790
- (b: any) =>
791
- b.chainId === fromChainId &&
792
- (b.contractAddress?.toLowerCase() ===
793
- fromTokenAddress.toLowerCase() ||
794
- (!b.contractAddress && fromTokenAddress === zeroAddress)),
795
- )
796
-
797
- const originTokenBalanceAmount = originTokenBalance?.balance ?? "0"
798
-
799
- // Helper function to fetch decimals on-chain if not found in token list
800
- const fetchDecimalsOnChain = async (
801
- tokenAddress: string,
802
- chainId: number,
803
- ): Promise<number | null> => {
804
- try {
805
- // Use the hook-based RPC clients that are already available
806
- const publicClient =
807
- chainId === fromChainId
808
- ? originPublicClient
809
- : chainId === toChainId
810
- ? destinationPublicClient
811
- : null
812
-
813
- if (!publicClient) {
814
- logger.console.warn(
815
- `[trails-sdk] No RPC client available for chain ${chainId}`,
816
- )
817
- return null
818
- }
819
-
820
- // For native tokens, return 18 decimals
821
- if (addressEqual(tokenAddress, zeroAddress)) {
822
- const chainInfo = getChainInfo(chainId)
823
- return chainInfo?.nativeCurrency.decimals ?? 18
824
- }
825
-
826
- const decimals = await publicClient.readContract({
827
- address: tokenAddress as `0x${string}`,
828
- abi: erc20Abi,
829
- functionName: "decimals",
830
- })
831
-
832
- logger.console.log(
833
- `[trails-sdk] Fetched decimals on-chain for token ${tokenAddress} on chain ${chainId}: ${decimals}`,
834
- )
835
- return decimals
836
- } catch (error) {
837
- logger.console.error(
838
- `[trails-sdk] Error fetching decimals on-chain for token ${tokenAddress} on chain ${chainId}:`,
839
- error,
840
- )
841
- return null
842
- }
843
- }
844
-
845
- const originToken = findSupportedToken(
846
- supportedTokens,
847
- fromTokenAddress,
848
- fromChainId,
849
- )
850
- const destinationToken = findSupportedToken(
851
- supportedTokens,
852
- toTokenAddress,
853
- toChainId,
854
- )
855
-
856
- let sourceTokenDecimals = originToken?.decimals
857
- if (!sourceTokenDecimals && fromTokenAddress && fromChainId) {
858
- logger.console.warn(
859
- "[trails-sdk] [useQuote] Source token decimals not found in token list, fetching on-chain:",
860
- {
861
- originToken,
862
- fromTokenAddress,
863
- fromChainId,
864
- },
865
- )
866
- const onChainDecimals = await fetchDecimalsOnChain(
867
- fromTokenAddress,
868
- fromChainId,
869
- )
870
- if (onChainDecimals !== null) {
871
- sourceTokenDecimals = onChainDecimals
872
- }
873
- }
874
- if (!sourceTokenDecimals) {
875
- logger.console.error(
876
- "[trails-sdk] [useQuote] Source token decimals not found:",
877
- {
878
- originToken,
879
- fromTokenAddress,
880
- fromChainId,
881
- },
882
- )
883
- throw new Error("Source token decimals not found")
884
- }
885
- let destinationTokenDecimals = destinationToken?.decimals
886
- if (!destinationTokenDecimals && toTokenAddress && toChainId) {
887
- logger.console.warn(
888
- "[trails-sdk] Destination token decimals not found in token list, fetching on-chain:",
889
- {
890
- destinationToken,
891
- toTokenAddress,
892
- toChainId,
893
- },
894
- )
895
- const onChainDecimals = await fetchDecimalsOnChain(
896
- toTokenAddress,
897
- toChainId,
898
- )
899
- if (onChainDecimals !== null) {
900
- destinationTokenDecimals = onChainDecimals
901
- }
902
- }
903
- if (!destinationTokenDecimals) {
904
- logger.console.error(
905
- "[trails-sdk] Destination token decimals not found:",
906
- {
907
- destinationToken,
908
- toTokenAddress,
909
- toChainId,
910
- },
911
- )
912
- throw new Error("Destination token decimals not found")
913
- }
914
- const destinationTokenSymbol = destinationToken?.symbol ?? ""
915
- const originTokenSymbol = originToken?.symbol ?? ""
916
-
917
- // For onramp, qr-code and exchange fund methods, use a default amount of 100 tokens
918
- // since the user will deposit from an external wallet/onramp provider (their connected wallet balance may be 0)
919
- const effectiveOriginTokenBalance =
920
- fundMethod === "direct-transfer" ||
921
- fundMethod === "onramp-mesh" ||
922
- fundMethod === "onramp-meld"
923
- ? parseUnits("100", sourceTokenDecimals).toString()
924
- : originTokenBalanceAmount
925
-
926
- const options: PrepareSendOptions = {
927
- queryClient,
928
- account: walletClient.account!,
929
- originTokenAddress: fromTokenAddress,
930
- originChainId: fromChainId,
931
- originTokenBalance: effectiveOriginTokenBalance,
932
- destinationChainId: toChainId,
933
- recipient: effectiveToAddress,
934
- destinationApproveAddress: toApprove ?? undefined,
935
- destinationTokenAddress: toTokenAddress,
936
- swapAmount: debouncedSwapAmount.toString(),
937
- tradeType: tradeType ?? TradeType.EXACT_OUTPUT,
938
- originTokenSymbol: originTokenSymbol,
939
- destinationTokenSymbol: destinationTokenSymbol,
940
- destinationCalldata: toCalldata as string,
941
- client: walletClient,
942
- trailsClient,
943
- sourceTokenDecimals,
944
- destinationTokenDecimals,
945
- onTransactionStateChange: onStatusUpdate ?? (() => {}),
946
- slippageTolerance: slippageTolerance?.toString(),
947
- swapProvider: effectiveSwapProvider,
948
- bridgeProvider: effectiveBridgeProvider,
949
- swapProviderFallback,
950
- bridgeProviderFallback,
951
- paymasterUrl: paymasterUrl,
952
- selectedFeeOption: selectedFeeOption ?? null,
953
- abortSignal: combinedAbortSignal,
954
- originNativeTokenPriceUsd: originNativeTokenPriceUsd,
955
- commitIntentFn: (intent) =>
956
- commitIntentMutation.mutateAsync(intent),
957
- executeIntentFn: executeIntentMutation.mutateAsync,
958
- checkoutOnHandlers,
959
- sequenceIndexerUrl,
960
- sequenceProjectAccessKey,
961
- originPublicClient: originPublicClient ?? undefined,
962
- destinationPublicClient: destinationPublicClient ?? undefined,
963
- isSmartWallet: isSmartWallet ?? undefined,
964
- isSenderContractOnOrigin: isSenderContractOnOrigin ?? undefined,
965
- trailsApiKey,
966
- trailsApiUrl,
967
- sequenceMetadataUrl,
968
- fundMethod: fundMethod ?? "wallet",
969
- onramp: onramp ?? undefined,
970
- mode: mode ?? undefined,
971
- walletId: walletId ?? undefined,
972
- }
973
-
974
- logger.console.log("[trails-sdk] options", options)
975
-
976
- const {
977
- quote: prepareSendQuote,
978
- send: prepareSendSend,
979
- feeOptions: prepareSendFeeOptions,
980
- } = await prepareSend(options)
981
-
982
- const quote: Quote = {
983
- // Backward compatible fields
984
- fromAmount: prepareSendQuote.originAmount,
985
- toAmount: prepareSendQuote.destinationAmount,
986
- fromAmountMin: prepareSendQuote.originAmountMin,
987
- toAmountMin: prepareSendQuote.destinationAmountMin,
988
- fromAmountUsdDisplay: prepareSendQuote.originAmountUsdDisplay ?? "",
989
- toAmountUsdDisplay:
990
- prepareSendQuote.destinationAmountUsdDisplay ?? "",
991
- toAmountMinUsdDisplay:
992
- prepareSendQuote.destinationAmountMinUsdDisplay ?? "",
993
- // PrepareSendQuote compatible fields
994
- originAmount: prepareSendQuote.originAmount,
995
- originAmountMin: prepareSendQuote.originAmountMin,
996
- destinationAmount: prepareSendQuote.destinationAmount,
997
- destinationAmountMin: prepareSendQuote.destinationAmountMin,
998
- originAmountUsdDisplay:
999
- prepareSendQuote.originAmountUsdDisplay ?? "",
1000
- destinationAmountUsdDisplay:
1001
- prepareSendQuote.destinationAmountUsdDisplay ?? "",
1002
- originAmountDisplay: prepareSendQuote.originAmountDisplay ?? "",
1003
- destinationAmountDisplay:
1004
- prepareSendQuote.destinationAmountDisplay ?? "",
1005
- originAmountMinDisplay:
1006
- prepareSendQuote.originAmountMinDisplay ?? "",
1007
- originAmountMinUsdFormatted:
1008
- prepareSendQuote.originAmountMinUsdFormatted ?? "",
1009
- originAmountMinUsdDisplay:
1010
- prepareSendQuote.originAmountMinUsdDisplay ?? "",
1011
- destinationAmountMinDisplay:
1012
- prepareSendQuote.destinationAmountMinDisplay ?? "",
1013
- destinationAmountMinUsdFormatted:
1014
- prepareSendQuote.destinationAmountMinUsdFormatted ?? "",
1015
- destinationAmountMinUsdDisplay:
1016
- prepareSendQuote.destinationAmountMinUsdDisplay ?? "",
1017
- originAmountUsdFormatted:
1018
- prepareSendQuote.originAmountUsdFormatted ?? "",
1019
- destinationAmountUsdFormatted:
1020
- prepareSendQuote.destinationAmountUsdFormatted ?? "",
1021
- // Locale display fields
1022
- originAmountFormattedLocale:
1023
- prepareSendQuote.originAmountFormattedLocale,
1024
- originAmountUsdLocaleDisplay:
1025
- prepareSendQuote.originAmountUsdLocaleDisplay,
1026
- destinationAmountFormattedLocale:
1027
- prepareSendQuote.destinationAmountFormattedLocale,
1028
- destinationAmountUsdLocaleDisplay:
1029
- prepareSendQuote.destinationAmountUsdLocaleDisplay,
1030
- originAmountUsd: prepareSendQuote.originAmountUsd,
1031
- fromAmountUsd: prepareSendQuote.fromAmountUsd,
1032
- // Common fields
1033
- originToken: prepareSendQuote.originToken,
1034
- destinationToken: prepareSendQuote.destinationToken,
1035
- originChain: prepareSendQuote.originChain,
1036
- destinationChain: prepareSendQuote.destinationChain,
1037
- fees: prepareSendQuote.fees,
1038
- priceImpact: prepareSendQuote.priceImpact,
1039
- priceImpactUsd: prepareSendQuote.priceImpactUsd ?? null,
1040
- priceImpactUsdDisplay: prepareSendQuote.priceImpactUsdDisplay ?? "",
1041
- priceImpactUsdLocaleDisplay:
1042
- prepareSendQuote.priceImpactUsdLocaleDisplay,
1043
- completionEstimateSeconds:
1044
- prepareSendQuote.completionEstimateSeconds,
1045
- completionEstimateDisplay:
1046
- prepareSendQuote.completionEstimateDisplay ?? "",
1047
- slippageTolerance: prepareSendQuote.slippageTolerance,
1048
- transactionStates: prepareSendQuote.transactionStates ?? [],
1049
- originTokenRate: prepareSendQuote.originTokenRate ?? "",
1050
- destinationTokenRate: prepareSendQuote.destinationTokenRate ?? "",
1051
- originTokenPriceUsd: prepareSendQuote.originTokenPriceUsd ?? 0,
1052
- destinationTokenPriceUsd:
1053
- prepareSendQuote.destinationTokenPriceUsd ?? 0,
1054
- routeProviders: prepareSendQuote.routeProviders ?? [],
1055
- gasCostUsd: prepareSendQuote.gasCostUsd ?? null,
1056
- gasCostUsdDisplay: prepareSendQuote.gasCostUsdDisplay ?? "",
1057
- gasCost: prepareSendQuote.gasCost ?? "",
1058
- gasCostFormatted: prepareSendQuote.gasCostFormatted ?? "",
1059
- totalFeesUsd: prepareSendQuote.totalFeesUsd ?? null,
1060
- totalFeesUsdDisplay: prepareSendQuote.totalFeesUsdDisplay ?? "",
1061
- totalGasUsd: prepareSendQuote.totalGasUsd ?? null,
1062
- totalGasUsdDisplay: prepareSendQuote.totalGasUsdDisplay ?? "",
1063
- intentId: prepareSendQuote.intentId ?? null,
1064
- originAmountFormatted: prepareSendQuote.originAmountFormatted ?? "",
1065
- destinationAmountFormatted:
1066
- prepareSendQuote.destinationAmountFormatted ?? "",
1067
- originDepositAddress: prepareSendQuote.originDepositAddress ?? "",
1068
- destinationDepositAddress:
1069
- prepareSendQuote.destinationDepositAddress ?? "",
1070
- destinationAddress: prepareSendQuote.destinationAddress ?? "",
1071
- destinationApproveAddress:
1072
- prepareSendQuote.destinationApproveAddress ?? "",
1073
- destinationCalldata: prepareSendQuote.destinationCalldata ?? "",
1074
- intentProtocol: prepareSendQuote.intentProtocol,
1075
- // Fee breakdown fields
1076
- trailsFeeBreakdown: prepareSendQuote.trailsFeeBreakdown ?? null,
1077
- originGasUsd: prepareSendQuote.originGasUsd ?? null,
1078
- originGasUsdDisplay: prepareSendQuote.originGasUsdDisplay ?? "",
1079
- destinationGasUsd: prepareSendQuote.destinationGasUsd ?? null,
1080
- destinationGasUsdDisplay:
1081
- prepareSendQuote.destinationGasUsdDisplay ?? "",
1082
- providerFeeUsd: prepareSendQuote.providerFeeUsd ?? null,
1083
- providerFeeUsdDisplay: prepareSendQuote.providerFeeUsdDisplay ?? "",
1084
- trailsFeeUsd: prepareSendQuote.trailsFeeUsd ?? null,
1085
- trailsFeeUsdDisplay: prepareSendQuote.trailsFeeUsdDisplay ?? "",
1086
- totalProviderFeesUsd: prepareSendQuote.totalProviderFeesUsd ?? null,
1087
- totalProviderFeesUsdDisplay:
1088
- prepareSendQuote.totalProviderFeesUsdDisplay ?? "",
1089
- // Locale display fields for fees
1090
- totalGasUsdLocaleDisplay: prepareSendQuote.totalGasUsdLocaleDisplay,
1091
- originGasUsdLocaleDisplay:
1092
- prepareSendQuote.originGasUsdLocaleDisplay,
1093
- destinationGasUsdLocaleDisplay:
1094
- prepareSendQuote.destinationGasUsdLocaleDisplay,
1095
- totalProviderFeesUsdLocaleDisplay:
1096
- prepareSendQuote.totalProviderFeesUsdLocaleDisplay,
1097
- providerFeeUsdLocaleDisplay:
1098
- prepareSendQuote.providerFeeUsdLocaleDisplay,
1099
- trailsFeeUsdLocaleDisplay:
1100
- prepareSendQuote.trailsFeeUsdLocaleDisplay,
1101
- noSufficientBalance: prepareSendQuote.noSufficientBalance ?? false,
1102
- expiresAt: prepareSendQuote.expiresAt ?? null,
1103
- priceImpactDetails: prepareSendQuote.priceImpactDetails ?? null,
1104
- // Passthrough fields for UI switching
1105
- passthroughEligible: prepareSendQuote.passthroughEligible,
1106
- passthroughTransactionStates:
1107
- prepareSendQuote.passthroughTransactionStates,
1108
- }
1109
-
1110
- const sendTransaction = async (
1111
- options?: SendOptions,
1112
- ): Promise<SwapReturn> => {
1113
- // Use fee option from send() call if provided, otherwise fall back to prop value
1114
- const effectiveFeeOption =
1115
- options?.selectedFeeOption !== undefined
1116
- ? options.selectedFeeOption
1117
- : (selectedFeeOption ?? null)
1118
-
1119
- const {
1120
- depositUserTxnReceipt,
1121
- destinationIntentTransaction,
1122
- totalCompletionSeconds,
1123
- } = await prepareSendSend({
1124
- selectedFeeOption: effectiveFeeOption,
1125
- onOriginSend: options?.onOriginSend,
1126
- depositTransactionHash: options?.depositTransactionHash,
1127
- skipCommit: options?.skipCommit,
1128
- })
1129
-
1130
- return {
1131
- originTransaction: {
1132
- transactionHash: depositUserTxnReceipt?.transactionHash,
1133
- explorerUrl: getExplorerUrl({
1134
- txHash: depositUserTxnReceipt?.transactionHash as string,
1135
- chainId: fromChainId,
1136
- }),
1137
- receipt: depositUserTxnReceipt,
1138
- },
1139
- destinationTransaction: {
1140
- transactionHash: destinationIntentTransaction?.txnHash,
1141
- explorerUrl: getExplorerUrl({
1142
- txHash: destinationIntentTransaction?.txnHash as string,
1143
- chainId: toChainId,
1144
- }),
1145
- receipt: destinationIntentTransaction,
1146
- },
1147
- totalCompletionSeconds,
1148
- }
1149
- }
1150
-
1151
- // Clear the timeout on successful completion
1152
- clearTimeout(timeoutId)
1153
-
1154
- return {
1155
- quote,
1156
- send: sendTransaction,
1157
- feeOptions: prepareSendFeeOptions?.feeOptions ?? [],
1158
- }
1159
- } finally {
1160
- // Always clear the timeout
1161
- clearTimeout(timeoutId)
1162
- }
1163
- } catch (error) {
1164
- const isAbortError =
1165
- error instanceof Error && error.name === "AbortError"
1166
-
1167
- // Check if this was aborted due to timeout
1168
- if (isAbortError || abortControllerRef.current.signal.aborted) {
1169
- logger.console.error(
1170
- "[trails-sdk] [useQuote] Quote request timed out:",
1171
- error,
1172
- )
1173
- throw new Error("No route available")
1174
- }
1175
-
1176
- logger.console.error(
1177
- "[trails-sdk] [useQuote] Error getting quote:",
1178
- error,
1179
- )
1180
- throw new Error(getFullErrorMessage(error))
1181
- }
1182
- },
1183
- // Prevent unnecessary refetching
1184
- enabled: prepareSendEnabled,
1185
- staleTime: 0, // Always refetch when returning to a previously-queried amount
1186
- refetchOnWindowFocus: false, // Don't refetch when window regains focus
1187
- refetchOnMount: "always", // Always refetch on component remount to ensure fresh quote
1188
- refetchInterval: false, // Disable automatic polling
1189
- retry: false, // Disable automatic retries - only make 1 request
1190
- refetchOnReconnect: true, // Refetch when network reconnects
1191
- })
1192
-
1193
- const sendFn = data?.send || null
1194
-
1195
- // Create deprecated swap wrapper
1196
- const swapFn = sendFn
1197
- ? async (options?: SendOptions) => {
1198
- logger.console.warn(
1199
- "[trails-sdk] [useQuote] Warning: 'swap' is deprecated, use 'send' instead",
1200
- )
1201
- return sendFn(options)
1202
- }
1203
- : null
1204
-
1205
- return {
1206
- quote: data?.quote || null,
1207
- send: sendFn,
1208
- swap: swapFn,
1209
- isLoadingQuote: isFetching,
1210
- quoteError: error,
1211
- quoteErrorPrettified: getPrettifiedErrorMessage(error),
1212
- refetchQuote: async () => {
1213
- await refetch()
1214
- },
1215
- abort: () => {
1216
- logger.console.log("[trails-sdk] useQuote abort() called")
1217
- logger.console.log(
1218
- "[trails-sdk] Active operations before abort:",
1219
- abortControllerRegistry.getAll(),
1220
- )
1221
-
1222
- // Abort the internal abort controller
1223
- abortControllerRef.current.abort()
1224
-
1225
- // Also abort all active polling operations in prepareSend
1226
- abortControllerRegistry.abortAll()
1227
-
1228
- logger.console.log(
1229
- "[trails-sdk] Abort completed, active operations:",
1230
- abortControllerRegistry.getAll(),
1231
- )
1232
- },
1233
- feeOptions: data?.feeOptions || [],
1234
- // Contract detection results
1235
- isRecipientContract: isRecipientContract ?? null,
1236
- isSenderContractOnOrigin: isSenderContractOnOrigin ?? null,
1237
- isSenderContractOnDestination: isSenderContractOnDestination ?? null,
1238
- }
1239
- }