0xtrails 0.13.2 → 0.15.0

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