0xtrails 0.13.2 → 0.14.0

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