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,1275 +0,0 @@
1
- import {
2
- ChevronDown,
3
- Clock,
4
- ExternalLink,
5
- Info,
6
- TriangleAlert,
7
- } from "lucide-react"
8
- import type React from "react"
9
- import { useCallback, useEffect, useMemo, useRef, useState } from "react"
10
- import { getExplorerUrl, getExplorerUrlForAddress } from "../../explorer.js"
11
- import { logger } from "../../logger.js"
12
- import type { MeldQuote } from "../../meld/utils/meld.js"
13
- import type { PrepareSendQuote } from "../../prepareSend.js"
14
- import {
15
- formatUsdAmountDisplay,
16
- formatUsdAmountLocaleDisplay,
17
- } from "../../utils/format.js"
18
- import {
19
- type TransactionState,
20
- isDisplayableTransactionHash,
21
- } from "../../transactions.js"
22
- import { isNativeToken, truncateAddress } from "../../utils/address.js"
23
- import { isSameChainSameToken } from "../../utils/passthrough.js"
24
- import { usePriceImpactWarning } from "../hooks/usePriceImpactWarning.js"
25
- import { useTrails } from "../providers/TrailsProvider.js"
26
- import { ChainImage } from "./ChainImage.js"
27
- import { PriceImpactWarning } from "./PriceImpactWarning.js"
28
- import { TokenImage } from "./TokenImage.js"
29
- import { Tooltip } from "./Tooltip.js"
30
- import { hasFailedOrAbortedTransaction } from "../utils/transactionFailure.js"
31
-
32
- interface QuoteDetailsProps {
33
- quote?: PrepareSendQuote | null
34
- onRampQuote?: MeldQuote | null
35
- fiatToUsdExchangeRate?: number | undefined
36
- showContent?: boolean
37
- children?: React.ReactNode
38
- onExpand?: (isExpanded: boolean) => void
39
- swapMode?: boolean
40
- compact?: boolean
41
- isRefetching?: boolean
42
- initialExpanded?: boolean
43
- showInsufficientFunds?: boolean
44
- isPassthrough?: boolean
45
- /** Actual transaction states with hashes (for receipt view) */
46
- liveTransactionStates?: TransactionState[]
47
- /** Callback to check if a transaction has meta tx errors */
48
- hasMetaTxError?: (tx: TransactionState) => boolean | undefined
49
- }
50
-
51
- export const QuoteDetails: React.FC<QuoteDetailsProps> = ({
52
- quote,
53
- onRampQuote,
54
- fiatToUsdExchangeRate,
55
- showContent = true,
56
- children,
57
- onExpand,
58
- swapMode,
59
- compact = false,
60
- isRefetching = false,
61
- initialExpanded = false,
62
- showInsufficientFunds = true,
63
- isPassthrough = false,
64
- liveTransactionStates,
65
- hasMetaTxError,
66
- }) => {
67
- const [showCalldata, setShowCalldata] = useState(false)
68
- const [showOriginRate, setShowOriginRate] = useState(true)
69
- const [isExpanded, setIsExpanded] = useState(initialExpanded)
70
- const [prevInitialExpanded, setPrevInitialExpanded] =
71
- useState(initialExpanded)
72
- if (initialExpanded !== prevInitialExpanded) {
73
- setPrevInitialExpanded(initialExpanded)
74
- setIsExpanded(initialExpanded)
75
- }
76
- const containerRef = useRef<HTMLDivElement>(null)
77
- const { trailsAppUrl } = useTrails()
78
- const calldataRef = useRef<HTMLDivElement>(null)
79
-
80
- const priceImpactConfig = usePriceImpactWarning()
81
-
82
- // Check if origin and destination are the same token on the same chain
83
- const isSameToken = isSameChainSameToken(quote)
84
-
85
- const totalOnRampFeeInUsd = onRampQuote?.totalFee
86
- ? onRampQuote?.totalFee / (fiatToUsdExchangeRate ?? 1)
87
- : 0
88
-
89
- if (onRampQuote) {
90
- logger.console.log("[trails-sdk] OnRamp Quote", {
91
- onRampQuote,
92
- })
93
- }
94
-
95
- // Notify parent when expansion state changes
96
- useEffect(() => {
97
- onExpand?.(isExpanded)
98
- }, [isExpanded, onExpand])
99
-
100
- const getFiatToCryptoRate = useCallback(() => {
101
- if (!onRampQuote || !quote?.originTokenRate) {
102
- return null
103
- }
104
-
105
- const fiatToUsdcRate = onRampQuote.exchangeRate
106
- if (!fiatToUsdcRate || quote.originTokenRate === "0") {
107
- return null
108
- }
109
-
110
- // Parse USDC -> Destination Token rate
111
- const usdcToDestMatch = quote.originTokenRate.match(/=\s*([\d.]+)/)
112
- const usdcToDestRate = usdcToDestMatch
113
- ? parseFloat(usdcToDestMatch[1]!)
114
- : null
115
-
116
- if (!usdcToDestRate) {
117
- return null
118
- }
119
-
120
- // Calculate final rate: FIAT <-> Destination Token
121
- const fiatToDestinationToken = usdcToDestRate / fiatToUsdcRate
122
-
123
- const fiatSymbol = onRampQuote.sourceCurrencyCode
124
- const destSymbol = quote.destinationToken?.symbol || "TOKEN"
125
-
126
- return {
127
- fiatToDestinationToken,
128
- fiatSymbol,
129
- destSymbol,
130
- fiatToUsdcRate,
131
- }
132
- }, [onRampQuote, quote])
133
-
134
- const { totalFeeUsd, totalFeeUsdDisplay, totalFeeUsdLocaleDisplay } =
135
- useMemo(() => {
136
- if (onRampQuote) {
137
- const feeInUsd =
138
- totalOnRampFeeInUsd + parseFloat(quote?.fees.totalFeeAmountUsd || "0")
139
- return {
140
- totalFeeUsd: feeInUsd,
141
- totalFeeUsdDisplay: formatUsdAmountDisplay(feeInUsd),
142
- totalFeeUsdLocaleDisplay: formatUsdAmountLocaleDisplay(feeInUsd),
143
- }
144
- }
145
- if (quote?.fees?.totalFeeAmountUsd) {
146
- const feeInUsd = parseFloat(quote.fees.totalFeeAmountUsd)
147
- return {
148
- totalFeeUsd: feeInUsd,
149
- totalFeeUsdDisplay:
150
- quote.fees.totalFeeAmountUsdDisplay ??
151
- formatUsdAmountDisplay(feeInUsd),
152
- totalFeeUsdLocaleDisplay:
153
- quote.fees.totalFeeAmountUsdLocaleDisplay ??
154
- formatUsdAmountLocaleDisplay(feeInUsd),
155
- }
156
- }
157
- return {
158
- totalFeeUsd: 0,
159
- totalFeeUsdDisplay: "$0.00",
160
- totalFeeUsdLocaleDisplay: formatUsdAmountLocaleDisplay(0),
161
- }
162
- }, [onRampQuote, quote?.fees, totalOnRampFeeInUsd])
163
-
164
- const parseSlippageTolerance = useCallback(() => {
165
- if (!quote?.slippageTolerance) return null
166
- return parseFloat(quote.slippageTolerance) * 100
167
- }, [quote?.slippageTolerance])
168
-
169
- const protocolVersionDisplay = useMemo(() => {
170
- const normalized = (quote?.intentProtocol || "v1")
171
- .replace("_", ".")
172
- .toUpperCase()
173
- return normalized.startsWith("V") ? normalized : `V${normalized}`
174
- }, [quote?.intentProtocol])
175
-
176
- if (!showContent) return null
177
-
178
- return (
179
- <div
180
- className={`relative transition-opacity duration-300 ${
181
- isRefetching ? "opacity-50" : ""
182
- }`}
183
- >
184
- {/* Price Impact Warning - always visible when conditions are met */}
185
- <PriceImpactWarning
186
- quote={quote}
187
- thresholdBps={priceImpactConfig.thresholdBps}
188
- warningMessage={priceImpactConfig.warningMessage}
189
- fallbackBridgeUrl={priceImpactConfig.fallbackBridgeUrl}
190
- />
191
-
192
- {/* Insufficient Balance Warning - only visible when showInsufficientFunds is true */}
193
- {showInsufficientFunds && quote?.noSufficientBalance && (
194
- <div className="flex justify-between items-center mb-2 p-2 bg-amber-50 dark:bg-amber-900/20 rounded-lg">
195
- <span className="text-xs text-amber-600 dark:text-amber-400 flex items-center gap-1">
196
- Balance Status:
197
- <Tooltip message="Your wallet does not have sufficient balance to complete this transaction">
198
- <Info className="size-3 text-amber-500 dark:text-amber-400 cursor-pointer" />
199
- </Tooltip>
200
- </span>
201
- <span className="font-medium text-xs text-amber-600 dark:text-amber-400 flex items-center gap-1">
202
- <TriangleAlert className="size-3" />
203
- Insufficient Balance
204
- </span>
205
- </div>
206
- )}
207
-
208
- <div className={`flex justify-center`}>
209
- {swapMode ? (
210
- <button
211
- type="button"
212
- onClick={() => setIsExpanded(!isExpanded)}
213
- className="w-full flex items-center justify-between px-2 py-2 trails-border-radius-button transition-colors cursor-pointer text-sm"
214
- aria-label="Show more details"
215
- >
216
- <div className="font-semibold text-gray-900 dark:text-white flex items-center gap-2 whitespace-nowrap max-w-48 truncate">
217
- {(() => {
218
- const finalRate = getFiatToCryptoRate()
219
- if (finalRate) {
220
- const { fiatToDestinationToken, fiatSymbol, destSymbol } =
221
- finalRate
222
- return (
223
- <span>
224
- 1 {fiatSymbol} = {fiatToDestinationToken.toFixed(6)}{" "}
225
- {destSymbol}
226
- </span>
227
- )
228
- }
229
-
230
- if (onRampQuote?.exchangeRate) {
231
- const fiatSymbol = onRampQuote.sourceCurrencyCode
232
- const destSymbol =
233
- onRampQuote.destinationCurrencyCode.split("_")[0]
234
- return (
235
- <span>
236
- 1 {fiatSymbol} ={" "}
237
- {(1 / onRampQuote.exchangeRate).toFixed(6)} {destSymbol}
238
- </span>
239
- )
240
- }
241
-
242
- if (quote?.originTokenRate && quote.originTokenRate !== "0") {
243
- return <span>{quote.originTokenRate}</span>
244
- }
245
-
246
- return null
247
- })()}
248
- </div>
249
- <div className="flex items-center gap-2 text-gray-600 dark:text-gray-400">
250
- {quote?.completionEstimateDisplay && (
251
- <div className="flex items-center gap-1">
252
- <Clock className="size-3" />
253
- <span className="font-medium">
254
- ~{onRampQuote ? "3 min" : quote.completionEstimateDisplay}
255
- </span>
256
- </div>
257
- )}
258
- {totalFeeUsd > 0 && (
259
- <div className="flex items-center gap-1">
260
- <svg
261
- aria-hidden="true"
262
- focusable="false"
263
- data-prefix="fas"
264
- data-icon="gas-pump"
265
- className="svg-inline--fa fa-gas-pump"
266
- role="img"
267
- xmlns="http://www.w3.org/2000/svg"
268
- viewBox="0 0 512 512"
269
- width="12"
270
- >
271
- <path
272
- fill="currentColor"
273
- d="M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z"
274
- />
275
- </svg>
276
- <span className="font-medium" title={totalFeeUsdDisplay}>
277
- {totalFeeUsdLocaleDisplay}
278
- </span>
279
- </div>
280
- )}
281
- <ChevronDown
282
- className={`size-3 transition-transform duration-300 ease-out text-gray-600 dark:text-gray-400 ${
283
- isExpanded ? "rotate-180" : ""
284
- }`}
285
- />
286
- </div>
287
- </button>
288
- ) : (
289
- <button
290
- type="button"
291
- onClick={() => setIsExpanded(!isExpanded)}
292
- className={`w-full max-w-md flex items-center ${
293
- compact ? "justify-center" : "justify-between"
294
- } gap-2 py-1 px-1 trails-border-radius-button transition-colors cursor-pointer text-xs text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300`}
295
- aria-label="Show transaction details"
296
- >
297
- <span>Transaction details</span>
298
- <ChevronDown
299
- className={`size-3 transition-transform duration-300 ease-out ${
300
- isExpanded ? "rotate-180" : ""
301
- }`}
302
- />
303
- </button>
304
- )}
305
- </div>
306
-
307
- {/* Details container */}
308
- <div
309
- ref={containerRef}
310
- className={`overflow-auto transition-all duration-300 ease-out ${
311
- isExpanded ? "max-h-[250px] opacity-100" : "max-h-0 opacity-0"
312
- }`}
313
- >
314
- <div className={`text-sm p-2 space-y-2`}>
315
- <div className="space-y-2">
316
- {/* Gas Costs Section */}
317
- {quote?.trailsFeeBreakdown &&
318
- (quote?.trailsFeeBreakdown.originRelayFee ||
319
- quote?.trailsFeeBreakdown.destinationRelayFee) &&
320
- totalFeeUsd > 0 && (
321
- <>
322
- <Row variant="bold">
323
- <RowLabel tooltip="The total fees for this transaction, including gas costs and all provider fees">
324
- Fees total
325
- </RowLabel>
326
- <RowValue>
327
- <span
328
- className="notranslate"
329
- translate="no"
330
- title={`${totalFeeUsd}`}
331
- >
332
- ≈{" "}
333
- {totalFeeUsdLocaleDisplay ||
334
- quote?.fees?.totalFeeAmountUsdLocaleDisplay}
335
- </span>
336
- </RowValue>
337
- </Row>
338
- <div className="h-0" />
339
- {/* Gas Costs Group */}
340
- {(quote.trailsFeeBreakdown.originRelayFee ||
341
- quote.trailsFeeBreakdown.destinationRelayFee) && (
342
- <RowGroup>
343
- <Row>
344
- <RowLabel tooltip="Total gas costs for executing transactions on both origin and destination chains">
345
- All gas costs
346
- </RowLabel>
347
- <RowValue>
348
- <span title={`$${quote.totalGasUsd ?? 0}`}>
349
- {quote.totalGasUsdLocaleDisplay ||
350
- quote.totalGasUsdDisplay ||
351
- "$0.00"}
352
- </span>
353
- </RowValue>
354
- </Row>
355
-
356
- {quote.trailsFeeBreakdown.originRelayFee && (
357
- <Row variant="light">
358
- <RowLabel tooltip="Gas fee for executing the transaction on the origin chain">
359
- Origin Gas
360
- <ChainImage
361
- chainId={quote.originChain.id}
362
- size={16}
363
- />
364
- </RowLabel>
365
- <RowValue>
366
- <span title={`$${quote.originGasUsd ?? 0}`}>
367
- {quote.originGasUsdLocaleDisplay ||
368
- quote.trailsFeeBreakdown.originRelayFee
369
- .usdValueLocale ||
370
- quote.trailsFeeBreakdown.originRelayFee
371
- .usdValue}
372
- </span>
373
- </RowValue>
374
- </Row>
375
- )}
376
-
377
- {quote.trailsFeeBreakdown.destinationRelayFee && (
378
- <Row variant="light">
379
- <RowLabel tooltip="Gas fee for executing the transaction on the destination chain">
380
- Destination Gas
381
- <ChainImage
382
- chainId={quote.destinationChain.id}
383
- size={16}
384
- />
385
- </RowLabel>
386
- <RowValue>
387
- <span title={`$${quote.destinationGasUsd ?? 0}`}>
388
- {quote.destinationGasUsdLocaleDisplay ||
389
- quote.trailsFeeBreakdown.destinationRelayFee
390
- .usdValueLocale ||
391
- quote.trailsFeeBreakdown.destinationRelayFee
392
- .usdValue}
393
- </span>
394
- </RowValue>
395
- </Row>
396
- )}
397
- </RowGroup>
398
- )}
399
- {/* Spacer */}
400
- <div className="h-1" />
401
- </>
402
- )}
403
-
404
- {/* Provider Costs Section */}
405
- {(() => {
406
- // Check if we have any provider fees to show
407
- const hasQuoteProviderFee =
408
- quote?.trailsFeeBreakdown && (quote.providerFeeUsd ?? 0) > 0
409
- const hasTrailsFee =
410
- quote?.trailsFeeBreakdown && (quote.trailsFeeUsd ?? 0) > 0
411
- const hasOnRampFee =
412
- onRampQuote && (onRampQuote.totalFee ?? 0) > 0
413
-
414
- if (!hasQuoteProviderFee && !hasTrailsFee && !hasOnRampFee)
415
- return null
416
-
417
- return (
418
- <RowGroup>
419
- {/* All Provider Fees */}
420
- {((quote?.totalProviderFeesUsd ?? 0) > 0 || hasOnRampFee) && (
421
- <Row>
422
- <RowLabel tooltip="Total provider fees for bridge, routing, and onramp services">
423
- All provider fees
424
- </RowLabel>
425
- <RowValue>
426
- <span
427
- title={`$${
428
- !quote
429
- ? (totalOnRampFeeInUsd ?? 0)
430
- : (quote?.totalProviderFeesUsd ?? 0) +
431
- (totalOnRampFeeInUsd ?? 0)
432
- }`}
433
- >
434
- {(() => {
435
- // If no quote, only show onramp fee
436
- if (!quote) {
437
- return formatUsdAmountLocaleDisplay(
438
- totalOnRampFeeInUsd,
439
- )
440
- }
441
- // If quote exists, show combined fees
442
- return formatUsdAmountLocaleDisplay(
443
- (quote?.totalProviderFeesUsd ?? 0) +
444
- (totalOnRampFeeInUsd ?? 0),
445
- )
446
- })()}
447
- </span>
448
- </RowValue>
449
- </Row>
450
- )}
451
-
452
- {/* Individual Provider Fees */}
453
- {hasQuoteProviderFee &&
454
- quote?.trailsFeeBreakdown?.providerFees &&
455
- quote.trailsFeeBreakdown.providerFees.length > 0 &&
456
- quote.trailsFeeBreakdown.providerFees.map((providerFee) => (
457
- <Row key={providerFee.id} variant="light">
458
- <RowLabel
459
- tooltip={`Fee charged by ${providerFee.name || providerFee.id}`}
460
- >
461
- {providerFee.isBridge ? "Bridge" : "Swap"}
462
- {providerFee.name && (
463
- <span>
464
- {" "}
465
- (
466
- <a
467
- href={providerFee.url}
468
- target="_blank"
469
- rel="noopener noreferrer"
470
- className="hover:underline inline-flex items-center gap-0.5 text-blue-500"
471
- >
472
- {providerFee.name}
473
- <ExternalLink className="size-3" />
474
- </a>
475
- )
476
- </span>
477
- )}
478
- </RowLabel>
479
- <RowValue>
480
- <span title={`$${providerFee.feeUsd}`}>
481
- {providerFee.usdValueLocale || providerFee.usdValue}
482
- </span>
483
- </RowValue>
484
- </Row>
485
- ))}
486
-
487
- {/* Onramp Provider Fee */}
488
- {hasOnRampFee && (
489
- <Row variant="light">
490
- <RowLabel tooltip="Fee charged by the onramp service provider, including network and transaction fees">
491
- Onramp
492
- {onRampQuote.serviceProvider && (
493
- <span>({onRampQuote.serviceProvider})</span>
494
- )}
495
- </RowLabel>
496
- <RowValue>
497
- <span title={`$${totalOnRampFeeInUsd ?? 0}`}>
498
- {/* onRampQuote.totalFee is in the source fiat currency so we need to convert into USD */}
499
- {formatUsdAmountLocaleDisplay(totalOnRampFeeInUsd)}
500
- </span>
501
- </RowValue>
502
- </Row>
503
- )}
504
-
505
- {/* Trails Platform Fee */}
506
- {hasTrailsFee &&
507
- quote?.trailsFeeBreakdown?.trailsFee &&
508
- (() => {
509
- const trailsFee = quote.trailsFeeBreakdown.trailsFee
510
-
511
- return (
512
- <Row variant="light">
513
- <RowLabel tooltip="Platform fee for using the Trails service">
514
- Trails
515
- </RowLabel>
516
- <RowValue>
517
- <span title={trailsFee.usdValue}>
518
- {trailsFee.usdValueLocale || trailsFee.usdValue}
519
- </span>
520
- </RowValue>
521
- </Row>
522
- )
523
- })()}
524
- </RowGroup>
525
- )
526
- })()}
527
-
528
- <div className="h-px bg-gray-200 dark:bg-gray-800 my-4" />
529
-
530
- {/* Transaction Details Section */}
531
- {(() => {
532
- const hasSlippage =
533
- quote?.slippageTolerance != null &&
534
- Number(quote.slippageTolerance) !== 0
535
- const hasPriceImpact =
536
- quote?.priceImpact != null && Number(quote.priceImpact) !== 0
537
- const hasIntentId =
538
- quote?.intentId != null && quote.intentId !== ""
539
- const showSection = hasSlippage || hasPriceImpact || hasIntentId
540
-
541
- if (!showSection) return null
542
-
543
- return (
544
- <RowGroup>
545
- <Row variant="bold">
546
- <RowLabel>Transaction details</RowLabel>
547
- </Row>
548
-
549
- {/* Intent ID */}
550
- {hasIntentId && (
551
- <Row>
552
- <RowLabel>Intent ID</RowLabel>
553
- <RowValue>
554
- <a
555
- href={`${trailsAppUrl}/intent/${quote.intentId}`}
556
- target="_blank"
557
- rel="noopener noreferrer"
558
- className="font-mono text-xs hover:underline flex items-center gap-1 text-blue-500"
559
- >
560
- {truncateAddress(quote?.intentId ?? "", 9, 3)}
561
- <ExternalLink className="size-3" />
562
- </a>
563
- </RowValue>
564
- </Row>
565
- )}
566
-
567
- {/* Max Slippage */}
568
- {hasSlippage && (
569
- <Row>
570
- <RowLabel tooltip="The maximum percentage by which the exchange rate can change before the transaction fails. Higher slippage means more tolerance for price changes but potentially worse rates.">
571
- Max slippage
572
- </RowLabel>
573
- <RowValue>{parseSlippageTolerance()}%</RowValue>
574
- </Row>
575
- )}
576
-
577
- {/* Price Impact */}
578
- {hasPriceImpact && (
579
- <div className="space-y-1">
580
- <Row>
581
- <RowLabel tooltip="The percentage change in the token price caused by your trade. Higher impact means your trade affects the market price more, potentially resulting in worse rates.">
582
- Price impact
583
- </RowLabel>
584
- <RowValue
585
- className={`flex items-center gap-1 ${
586
- Math.abs(Number(quote.priceImpact)) > 5
587
- ? "text-red-600 dark:text-red-400"
588
- : Math.abs(Number(quote.priceImpact)) > 0.5
589
- ? "text-orange-600 dark:text-orange-400"
590
- : "text-gray-600 dark:text-gray-400"
591
- }`}
592
- >
593
- {Math.abs(Number(quote.priceImpact)) > 0.5 && (
594
- <span title="High price impact">
595
- <TriangleAlert className="size-3" />
596
- </span>
597
- )}
598
- {Number(quote.priceImpact).toFixed(2)}%
599
- </RowValue>
600
- </Row>
601
- {quote.priceImpactUsdDisplay && (
602
- <div className="text-right">
603
- <span
604
- className="text-xs text-gray-500 dark:text-gray-400 notranslate"
605
- translate="no"
606
- title={quote.priceImpactUsdDisplay}
607
- >
608
- ≈{" "}
609
- {quote.priceImpactUsdLocaleDisplay ||
610
- quote.priceImpactUsdDisplay}
611
- </span>
612
- </div>
613
- )}
614
- </div>
615
- )}
616
- </RowGroup>
617
- )
618
- })()}
619
-
620
- <div className="space-y-3 pt-2">
621
- {/* Exchange Rate - hide when same token on same chain */}
622
- {!isSameToken &&
623
- (() => {
624
- // Handle onramp case: show combined FIAT -> DEST rate
625
- const finalRate = getFiatToCryptoRate()
626
- if (finalRate) {
627
- const { fiatToDestinationToken, fiatSymbol, destSymbol } =
628
- finalRate
629
- return (
630
- <Row>
631
- <RowLabel
632
- tooltip={`Combined exchange rate from ${fiatSymbol} to ${destSymbol} (via USDC on Base)`}
633
- >
634
- Exchange Rate
635
- </RowLabel>
636
- <RowValue>
637
- <button
638
- type="button"
639
- onClick={() => setShowOriginRate(!showOriginRate)}
640
- className="hover:underline cursor-pointer"
641
- >
642
- 1 {fiatSymbol} = $
643
- {fiatToDestinationToken.toFixed(6)} ${destSymbol}`
644
- </button>
645
- </RowValue>
646
- </Row>
647
- )
648
- }
649
-
650
- // Fallback: show just the onramp rate if quote rates aren't available
651
- if (onRampQuote?.exchangeRate) {
652
- const fiatSymbol = onRampQuote.sourceCurrencyCode
653
- const destSymbol =
654
- onRampQuote.destinationCurrencyCode.split("_")[0]
655
- const fiatToUsdcRate = onRampQuote.exchangeRate
656
-
657
- return (
658
- <Row>
659
- <RowLabel
660
- tooltip={`Exchange rate from ${fiatSymbol} to ${destSymbol}`}
661
- >
662
- Exchange Rate
663
- </RowLabel>
664
- <RowValue>
665
- 1 {fiatSymbol} = ${(1 / fiatToUsdcRate).toFixed(6)} $
666
- {destSymbol}
667
- </RowValue>
668
- </Row>
669
- )
670
- }
671
-
672
- // Standard case: show quote exchange rate
673
- if (
674
- quote?.originTokenRate &&
675
- quote?.destinationTokenRate &&
676
- quote.originTokenRate !== "0" &&
677
- quote.destinationTokenRate !== "0"
678
- ) {
679
- return (
680
- <Row>
681
- <RowLabel tooltip="The current exchange rate between the origin and destination tokens">
682
- Exchange Rate
683
- </RowLabel>
684
- <RowValue>
685
- <button
686
- type="button"
687
- onClick={() => setShowOriginRate(!showOriginRate)}
688
- className="hover:underline cursor-pointer"
689
- >
690
- {showOriginRate
691
- ? quote.originTokenRate
692
- : quote.destinationTokenRate}
693
- </button>
694
- </RowValue>
695
- </Row>
696
- )
697
- }
698
-
699
- return null
700
- })()}
701
-
702
- {/* Transfer Amounts Group */}
703
- {((quote?.originAmount &&
704
- quote?.originToken.symbol &&
705
- quote?.originChain.id) ||
706
- (quote?.destinationToken.symbol &&
707
- quote?.destinationAmount &&
708
- quote?.destinationAmountUsdDisplay &&
709
- quote?.destinationChain.id)) && (
710
- <RowGroup>
711
- {/* Hide origin transfer amount when same token - only show target amount */}
712
- {!isSameToken &&
713
- quote?.originAmount &&
714
- quote?.originToken.symbol &&
715
- quote?.originChain.id && (
716
- <Row className="items-start">
717
- <RowLabel
718
- tooltip={
719
- isPassthrough
720
- ? "The amount of tokens you will transfer"
721
- : "The amount of tokens you will send from the origin chain"
722
- }
723
- >
724
- {isPassthrough
725
- ? "Transfer Amount"
726
- : "Origin Transfer Amount"}
727
- </RowLabel>
728
- <div className="text-right">
729
- {isNativeToken(quote.originToken.contractAddress) ? (
730
- <>
731
- <div className="font-medium text-xs text-gray-600 dark:text-gray-400 flex items-center gap-1 justify-end">
732
- <TokenImage
733
- imageUrl={quote.originToken.imageUrl}
734
- symbol={quote.originToken.symbol}
735
- chainId={quote.originChain.id}
736
- contractAddress={
737
- quote.originToken.contractAddress
738
- }
739
- size={16}
740
- />
741
- <span className="notranslate" translate="no">
742
- {quote.originAmountFormattedLocale ||
743
- quote.originAmountDisplay}{" "}
744
- {quote.originToken.symbol}
745
- </span>
746
- </div>
747
- {quote.originAmountUsdDisplay && (
748
- <div
749
- className="text-xs text-gray-500 dark:text-gray-400 mt-0.5 notranslate"
750
- translate="no"
751
- title={quote.originAmountUsdDisplay}
752
- >
753
- ≈{" "}
754
- {quote.originAmountUsdLocaleDisplay ||
755
- quote.originAmountUsdDisplay}
756
- </div>
757
- )}
758
- </>
759
- ) : (
760
- <>
761
- <a
762
- href={getExplorerUrlForAddress({
763
- address: quote.originToken.contractAddress,
764
- chainId: quote.originChain.id,
765
- })}
766
- target="_blank"
767
- rel="noopener noreferrer"
768
- className="hover:underline cursor-pointer"
769
- >
770
- <div className="font-medium text-xs text-gray-600 dark:text-gray-400 flex items-center gap-1 justify-end">
771
- <TokenImage
772
- imageUrl={quote.originToken.imageUrl}
773
- symbol={quote.originToken.symbol}
774
- chainId={quote.originChain.id}
775
- contractAddress={
776
- quote.originToken.contractAddress
777
- }
778
- size={16}
779
- />
780
- {quote.originAmountFormattedLocale ||
781
- quote.originAmountDisplay}{" "}
782
- {quote.originToken.symbol}
783
- </div>
784
- </a>
785
- {quote.originAmountUsdDisplay && (
786
- <div
787
- className="text-xs text-gray-500 dark:text-gray-400 mt-0.5 notranslate"
788
- translate="no"
789
- title={quote.originAmountUsdDisplay}
790
- >
791
- ≈{" "}
792
- {quote.originAmountUsdLocaleDisplay ||
793
- quote.originAmountUsdDisplay}
794
- </div>
795
- )}
796
- </>
797
- )}
798
- </div>
799
- </Row>
800
- )}
801
-
802
- {quote?.destinationToken.symbol &&
803
- quote?.destinationAmount &&
804
- quote?.destinationAmountUsdDisplay &&
805
- quote?.destinationChain.id && (
806
- <Row className="items-start">
807
- <RowLabel
808
- tooltip={
809
- isPassthrough
810
- ? "The amount of tokens the recipient will receive"
811
- : "The amount of tokens you will receive on the destination chain after the swap and/or bridge"
812
- }
813
- >
814
- {isPassthrough
815
- ? "Target Amount"
816
- : "Destination Target Amount"}
817
- </RowLabel>
818
- <div className="text-right">
819
- {isNativeToken(
820
- quote.destinationToken.contractAddress,
821
- ) ? (
822
- <>
823
- <div className="font-medium text-xs text-gray-600 dark:text-gray-400 flex items-center gap-1 justify-end">
824
- <TokenImage
825
- imageUrl={quote.destinationToken.imageUrl}
826
- symbol={quote.destinationToken.symbol}
827
- chainId={quote.destinationChain.id}
828
- contractAddress={
829
- quote.destinationToken.contractAddress
830
- }
831
- size={16}
832
- />
833
- <span className="notranslate" translate="no">
834
- {quote.destinationAmountFormattedLocale ||
835
- quote.destinationAmountDisplay}{" "}
836
- {quote.destinationToken.symbol}
837
- </span>
838
- </div>
839
- {quote.destinationAmountUsdDisplay && (
840
- <div
841
- className="text-xs text-gray-500 dark:text-gray-400 mt-0.5 notranslate"
842
- translate="no"
843
- title={quote.destinationAmountUsdDisplay}
844
- >
845
- ≈{" "}
846
- {quote.destinationAmountUsdLocaleDisplay ||
847
- quote.destinationAmountUsdDisplay}
848
- </div>
849
- )}
850
- </>
851
- ) : (
852
- <>
853
- <a
854
- href={getExplorerUrlForAddress({
855
- address:
856
- quote.destinationToken.contractAddress,
857
- chainId: quote.destinationChain.id,
858
- })}
859
- target="_blank"
860
- rel="noopener noreferrer"
861
- className="hover:underline cursor-pointer"
862
- >
863
- <div className="font-medium text-xs text-gray-600 dark:text-gray-400 flex items-center gap-1 justify-end">
864
- <TokenImage
865
- imageUrl={quote.destinationToken.imageUrl}
866
- symbol={quote.destinationToken.symbol}
867
- chainId={quote.destinationChain.id}
868
- contractAddress={
869
- quote.destinationToken.contractAddress
870
- }
871
- size={16}
872
- />
873
- {quote.destinationAmountFormattedLocale ||
874
- quote.destinationAmountDisplay}{" "}
875
- {quote.destinationToken.symbol}
876
- </div>
877
- </a>
878
- {quote.destinationAmountUsdDisplay && (
879
- <div
880
- className="text-xs text-gray-500 dark:text-gray-400 mt-0.5 notranslate"
881
- translate="no"
882
- title={quote.destinationAmountUsdDisplay}
883
- >
884
- ≈{" "}
885
- {quote.destinationAmountUsdLocaleDisplay ||
886
- quote.destinationAmountUsdDisplay}
887
- </div>
888
- )}
889
- </>
890
- )}
891
- </div>
892
- </Row>
893
- )}
894
- </RowGroup>
895
- )}
896
-
897
- {/* Address Group */}
898
- {(quote?.originDepositAddress ||
899
- quote?.destinationDepositAddress ||
900
- quote?.destinationAddress) && (
901
- <RowGroup>
902
- {/* For passthrough: show only Target Address (the recipient) */}
903
- {isPassthrough ? (
904
- quote?.destinationAddress && (
905
- <Row>
906
- <RowLabel tooltip="The address that will receive the tokens">
907
- Target Address
908
- </RowLabel>
909
- <RowValue>
910
- <a
911
- href={getExplorerUrlForAddress({
912
- address: quote.destinationAddress,
913
- chainId: quote.destinationChain.id,
914
- })}
915
- target="_blank"
916
- rel="noopener noreferrer"
917
- className="font-mono text-xs hover:underline flex items-center gap-1 text-blue-500"
918
- >
919
- {truncateAddress(quote.destinationAddress)}
920
- <ExternalLink className="size-3" />
921
- </a>
922
- </RowValue>
923
- </Row>
924
- )
925
- ) : (
926
- <>
927
- {quote?.originDepositAddress && (
928
- <Row>
929
- <RowLabel tooltip="This is the intent address to deposit to that will then execute the swap and/or bridge">
930
- Origin Deposit Address
931
- </RowLabel>
932
- <RowValue>
933
- <a
934
- href={getExplorerUrlForAddress({
935
- address: quote.originDepositAddress,
936
- chainId: quote.originChain.id,
937
- })}
938
- target="_blank"
939
- rel="noopener noreferrer"
940
- className="font-mono text-xs hover:underline flex items-center gap-1 text-blue-500"
941
- >
942
- {truncateAddress(quote.originDepositAddress)}
943
- <ExternalLink className="size-3" />
944
- </a>
945
- </RowValue>
946
- </Row>
947
- )}
948
-
949
- {quote?.destinationDepositAddress &&
950
- quote?.destinationDepositAddress !==
951
- quote?.originDepositAddress && (
952
- <Row>
953
- <RowLabel tooltip="This is the address that will receive the tokens after any swap and/or bridge from the origin chain">
954
- Destination Deposit Address
955
- </RowLabel>
956
- <RowValue>
957
- <a
958
- href={getExplorerUrlForAddress({
959
- address: quote.destinationDepositAddress,
960
- chainId: quote.destinationChain.id,
961
- })}
962
- target="_blank"
963
- rel="noopener noreferrer"
964
- className="font-mono text-xs hover:underline flex items-center gap-1 text-blue-500"
965
- >
966
- {truncateAddress(
967
- quote.destinationDepositAddress,
968
- )}
969
- <ExternalLink className="size-3" />
970
- </a>
971
- </RowValue>
972
- </Row>
973
- )}
974
-
975
- {quote?.destinationAddress && (
976
- <Row>
977
- <RowLabel tooltip="This is the final execution address or recipient address">
978
- Destination Target Address
979
- </RowLabel>
980
- <RowValue>
981
- <a
982
- href={getExplorerUrlForAddress({
983
- address: quote.destinationAddress,
984
- chainId: quote.destinationChain.id,
985
- })}
986
- target="_blank"
987
- rel="noopener noreferrer"
988
- className="font-mono text-xs hover:underline flex items-center gap-1 text-blue-500"
989
- >
990
- {truncateAddress(quote.destinationAddress)}
991
- <ExternalLink className="size-3" />
992
- </a>
993
- </RowValue>
994
- </Row>
995
- )}
996
- </>
997
- )}
998
- </RowGroup>
999
- )}
1000
-
1001
- {/* Custom Calldata */}
1002
- {quote?.destinationCalldata && (
1003
- <div className="space-y-2">
1004
- <div className="space-y-0.5">
1005
- <button
1006
- type="button"
1007
- onClick={() => {
1008
- setShowCalldata(!showCalldata)
1009
- // Auto-scroll to calldata when expanding
1010
- if (!showCalldata) {
1011
- setTimeout(() => {
1012
- if (calldataRef.current) {
1013
- calldataRef.current.scrollIntoView({
1014
- behavior: "smooth",
1015
- block: "nearest",
1016
- })
1017
- }
1018
- }, 150) // Delay to let the expansion animation start
1019
- }
1020
- }}
1021
- className="flex items-center gap-1 text-xs hover:underline cursor-pointer transition-colors duration-200 text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300"
1022
- aria-label={
1023
- showCalldata
1024
- ? "Hide custom calldata"
1025
- : "Show custom calldata"
1026
- }
1027
- >
1028
- <span className="text-[10px]">
1029
- Includes custom destination calldata
1030
- </span>
1031
- <ChevronDown
1032
- className={`size-3 transition-transform duration-300 ease-out ${
1033
- showCalldata ? "rotate-180" : ""
1034
- }`}
1035
- />
1036
- </button>
1037
- </div>
1038
- <div
1039
- ref={calldataRef}
1040
- className={`overflow-hidden transition-all duration-300 ease-out ${
1041
- showCalldata
1042
- ? "max-h-32 opacity-100"
1043
- : "max-h-0 opacity-0"
1044
- }`}
1045
- >
1046
- <div className="mt-2">
1047
- <textarea
1048
- value={quote.destinationCalldata}
1049
- readOnly
1050
- className={`w-full p-2 text-xs font-mono rounded border border-solid resize-none transition-all duration-200 bg-gray-100 dark:bg-gray-700 border-gray-300 dark:border-gray-600 text-gray-800 dark:text-gray-200`}
1051
- rows={4}
1052
- placeholder="No custom calldata"
1053
- />
1054
- </div>
1055
- </div>
1056
- </div>
1057
- )}
1058
-
1059
- {/* Transaction Steps Section */}
1060
- {(() => {
1061
- // Use live transaction states if available (receipt view), otherwise use quote states
1062
- const hasLiveStates =
1063
- liveTransactionStates && liveTransactionStates.length > 0
1064
- const displayStates = hasLiveStates
1065
- ? liveTransactionStates
1066
- : isPassthrough && quote?.passthroughTransactionStates?.length
1067
- ? quote.passthroughTransactionStates
1068
- : quote?.transactionStates
1069
-
1070
- if (!displayStates || displayStates.length === 0) return null
1071
-
1072
- return (
1073
- <div className="mt-4">
1074
- <div className="h-px bg-gray-200 dark:bg-gray-800 mb-3" />
1075
- <RowGroup>
1076
- <Row variant="bold">
1077
- <RowLabel>
1078
- <span className="flex items-center gap-2">
1079
- {hasLiveStates
1080
- ? "Transactions"
1081
- : "Transaction Steps"}
1082
- {isPassthrough && (
1083
- <span className="text-[10px] px-1.5 py-0.5 rounded-full bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 font-medium">
1084
- Direct
1085
- </span>
1086
- )}
1087
- </span>
1088
- </RowLabel>
1089
- </Row>
1090
- {displayStates.map((txState, index) => {
1091
- const liveTxState = txState as TransactionState
1092
- const hasTxHash =
1093
- hasLiveStates &&
1094
- isDisplayableTransactionHash(
1095
- liveTxState.transactionHash,
1096
- )
1097
- const txExplorerUrl =
1098
- liveTxState.explorerUrl ||
1099
- (isDisplayableTransactionHash(
1100
- liveTxState.transactionHash,
1101
- ) && liveTxState.chainId
1102
- ? getExplorerUrl({
1103
- txHash: liveTxState.transactionHash,
1104
- chainId: liveTxState.chainId,
1105
- })
1106
- : null)
1107
- const txHasMetaError =
1108
- hasMetaTxError && hasLiveStates
1109
- ? hasMetaTxError(liveTxState)
1110
- : false
1111
-
1112
- return (
1113
- <div
1114
- key={txState.label || index}
1115
- className={`p-2 rounded ${hasLiveStates ? "bg-gray-100 dark:bg-gray-700/50" : ""}`}
1116
- >
1117
- <div className="flex justify-between items-center">
1118
- <span className="flex items-center gap-2 text-xs text-gray-600 dark:text-gray-400">
1119
- {!hasLiveStates && (
1120
- <span className="w-4 h-4 rounded-full bg-gray-200 dark:bg-gray-700 flex items-center justify-center text-[10px] font-medium">
1121
- {index + 1}
1122
- </span>
1123
- )}
1124
- {txState.label}
1125
- </span>
1126
- <span className="flex items-center gap-2">
1127
- <ChainImage
1128
- chainId={txState.chainId}
1129
- size={14}
1130
- />
1131
- {hasLiveStates && liveTxState.state && (
1132
- <span
1133
- className={`px-2 py-0.5 rounded-full text-xs ${
1134
- hasFailedOrAbortedTransaction(liveTxState)
1135
- ? "bg-red-100 text-red-700 dark:bg-red-900/50 dark:text-red-400"
1136
- : liveTxState.state === "confirmed"
1137
- ? "bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-400"
1138
- : "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/50 dark:text-yellow-400"
1139
- }`}
1140
- >
1141
- {liveTxState.state.charAt(0).toUpperCase() +
1142
- liveTxState.state.slice(1)}
1143
- </span>
1144
- )}
1145
- </span>
1146
- </div>
1147
- {hasLiveStates && hasTxHash && txExplorerUrl && (
1148
- <div className="mt-1 flex justify-between items-center">
1149
- <span className="text-xs text-gray-600 dark:text-gray-400">
1150
- Hash
1151
- </span>
1152
- <a
1153
- href={txExplorerUrl}
1154
- target="_blank"
1155
- rel="noopener noreferrer"
1156
- className="text-xs flex items-center gap-1 hover:underline text-blue-600 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300"
1157
- >
1158
- {txHasMetaError && (
1159
- <svg
1160
- className="w-4 h-4 text-orange-500"
1161
- fill="none"
1162
- viewBox="0 0 24 24"
1163
- stroke="currentColor"
1164
- >
1165
- <title>
1166
- An internal meta transaction failure
1167
- occurred
1168
- </title>
1169
- <path
1170
- strokeLinecap="round"
1171
- strokeLinejoin="round"
1172
- strokeWidth={2}
1173
- d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"
1174
- />
1175
- </svg>
1176
- )}
1177
- <span>
1178
- {truncateAddress(
1179
- liveTxState.transactionHash,
1180
- )}
1181
- </span>
1182
- <ExternalLink className="w-3 h-3" />
1183
- </a>
1184
- </div>
1185
- )}
1186
- </div>
1187
- )
1188
- })}
1189
- </RowGroup>
1190
- </div>
1191
- )
1192
- })()}
1193
-
1194
- {protocolVersionDisplay.length > 0 && (
1195
- <div className="pt-1 text-[10px] opacity-50 text-gray-600 dark:text-gray-400">
1196
- Protocol version: {protocolVersionDisplay}
1197
- </div>
1198
- )}
1199
-
1200
- {/* Children content */}
1201
- {children && <div className="mb-0">{children}</div>}
1202
- </div>
1203
- </div>
1204
- </div>
1205
- </div>
1206
- </div>
1207
- )
1208
- }
1209
-
1210
- export default QuoteDetails
1211
-
1212
- interface RowGroupProps {
1213
- children: React.ReactNode
1214
- className?: string
1215
- }
1216
-
1217
- const RowGroup: React.FC<RowGroupProps> = ({ children, className = "" }) => (
1218
- <div className={`space-y-2 ${className}`}>{children}</div>
1219
- )
1220
-
1221
- const rowVariants = {
1222
- default: "text-xs text-gray-600 dark:text-gray-400",
1223
- light: "text-xs text-gray-400 dark:text-gray-600",
1224
- bold: "text-sm font-semibold text-gray-900 dark:text-white",
1225
- }
1226
-
1227
- interface RowProps {
1228
- children: React.ReactNode
1229
- className?: string
1230
- variant?: keyof typeof rowVariants
1231
- }
1232
-
1233
- const Row: React.FC<RowProps> = ({
1234
- children,
1235
- className = "",
1236
- variant = "default",
1237
- }) => (
1238
- <div
1239
- className={`flex justify-between items-center ${rowVariants[variant]} ${className}`}
1240
- >
1241
- {children}
1242
- </div>
1243
- )
1244
-
1245
- interface RowLabelProps {
1246
- children: React.ReactNode
1247
- tooltip?: string
1248
- className?: string
1249
- }
1250
-
1251
- const RowLabel: React.FC<RowLabelProps> = ({
1252
- children,
1253
- tooltip,
1254
- className = "",
1255
- }) => {
1256
- return (
1257
- <div className={`flex items-center gap-1 ${className}`}>
1258
- {children}
1259
- {tooltip && (
1260
- <Tooltip message={tooltip}>
1261
- <Info className="size-3 text-gray-500 dark:text-gray-400 cursor-pointer" />
1262
- </Tooltip>
1263
- )}
1264
- </div>
1265
- )
1266
- }
1267
-
1268
- interface RowValueProps {
1269
- children: React.ReactNode
1270
- className?: string
1271
- }
1272
-
1273
- const RowValue: React.FC<RowValueProps> = ({ children, className }) => {
1274
- return <div className={className}>{children}</div>
1275
- }